2345首页 » 圆周率250亿位资源

圆周率1000W位

3.

1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337741010263471725258000551089980879204274477838536427497206543092247960572140033066159793981569706136609839640552028766999172254724020639606096429945427059154600073536731549880773908300158133516035730111114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286585602054220670371568046350038260527637108239865979318483093676416563607907066052334341113779312161202058809514614377394768353883950472129452834986548086483788501946767694562326701998713318455453483736084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716214330796386015448161449552393511121218944302382695405786011646737366479565206587250815927530571313438356992004899961804325495020521955502061792779930564245836658721675351928175033449923918332562361626502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793375092142965808828322195705784317169794628455133096838246000369899618059298795066037607124327255975365088203863609588090400380017604750786697443325877232154383259983998643950114495415077009728226536958394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672229252434075060265129885763587813750085100568868743282747187323242898477335425815041625895502385448906849676764892829707281158435116760776172604891355851098147895084298498360559365937105320205997904436973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668059683733894119826500873262426696002409088320762261178399915744021058427898450630360141993392836245540276835099897204218596209020162101565192235842119488202091237839275571856055416562054553471969786612350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542592403495586097964340196646672175723723707078518464663837067170299541698329886912472818768027381254962938987607223408465709509894320165487604793394679468513437326303922309331790687303169941800740480006872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005871380883652304716712718220060186088112572603398624035420675212769089210815522603293004441018906372365919571195303028824858684782564883005251812608103542135181224715840046275105924448705837095408353189752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322337404979474085782776220482618219514282179811243726766258468951951069986737402273230026026150597064215274602326999497006158235928282229783286840199729036537816816002884117306733244966283840324353650413975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494345828804429373556800527667018000947887335886091364949458385268927913655943428817418645559410296179299581260809706454746509023426184034501081240335390006107346941209783867162772161370836145151105007720117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011830170049726189561183989816053909200891172772452827329958680838010737813140018760672501269264546450976733747002367678201352356732426247888048234362900999633010976573057107450862132187796828074343989648355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014922516948784795547241863827862758232782129939782074286755471092498218244686147958081408355004668755962615790617175902192718697237845472411298557573179374795351829558429913369281405884804215715380746853113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858621322182246246434350103632239859670172899284252341131543432629303907359534291441393387428218721484186131279071626858266847205954664035651133279272928367042153333781564897878724347231657710811890588115922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868597002601991541683855861557896701272200232200316861954197028924757421666766801524808240221111561909829095288293422784064903953396720086499569654470752118461343409778577773642631658691698762749541886831332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729394563684925327185891551688147209601141540566400389210281186485459504119005580079283947161996760030187700072991661348781038991897992779330826033333833405791933860125992663543506471009126063462523857434635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851344256726693278613295048517020426704168104239887877662828350193125454951010870376696381206031276179962188931877783052045019481204742705204573212548733903930286680853928985514539518307016773725339156792769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118416036402195034635732195947558600832082926751237884955166725064922072060974120312931357435374521855454983025804156517986227801646893748172397133811236953637358110573939105369179739293431977518803252435258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908915583817603213989264488023769100827420906680800437399250454122368497194097746704673167378878520494165644737071325437283139540962318133764738488941218277568760582754721153484064111928660919806142282295524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064445084478802766865394635783597863301435743073855224801180578551630030594803517023052917619376680448974551900622981417402254687938598091422858374494142946684056784478629968730373668633975101391007984558831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326610413687134472596294417153661683256929874607519349004367548712450125173882289594264322061718377059516656649038896234159034283659246762389215431621094739650098692570895075041141578197189457994851682923997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097572295178607339598869641860539956912742611053799648648272882147298654479372705114310364153995043024924890389871904738048121737057256637134651471541312220563195699529710744845423257854093196070374806243288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736162770832629644295804827975636308237643616154555406169800458196446706678102433478459880692484772748952982620451694370037112019129535311291971380175955779745321797068998107869799671161406472583557313852803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100365397889970941956779542290004143845487143488528556517630802992516764442476821864906215121917234256868516006058597808966236688320128396531227030746548182119994822538814300401681144503621167202444620482829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917623036263225044182962965215438562876070374218681400473863094501591091325421030325613511075755828734786562608093256450743463372334224085585816338537153069458782692020523950672724753690013980114964316594582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467713559958906322386507647782826901680360130617085698288633635339821664116613355480403703821003445838081505583034017971208224939095038566095855713953746347628324042175193426566863925591774337832554820703861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002467959739308411062725225415696493892368273581434607727598033462643125982788894418184917380268704496038867071864770831564787589117803543082013186565820343540734229283474557696514986839150397614126133607894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260193575557202326310147686928476263628518930484926909264098547249364818141283168938328312579566213598835544520667408958409231486257559110519622000503080204257370028996601241363556488028033999569465609588576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252910825524461538857766602779608089830283706877813984923812545171789875779067691651324603108755181479600121676201685543613887535111144646445965948986286850038429381677597961912729990459134396042836227821457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431067489386281016686080935487620406295314268367901622324344216250096191988652825018478075009309298961687893514404852784485210194972931491229336642838361095835911792669732105032865863719619130649857332086615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290966056780515742453948127051582786560861766280887675485282643534579297510910374324314804905099720134009387120996799226673274569721997573974983529556634445324345570326260278293136893889629676914900511179164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558149625711139560325150363183745061942587907329747990654033781293234354964770959941597021691810368147338333306415138771322151733984093817465683332375212452120426351494801795737064857482558812962411141464692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169748886473868243094196018928758912021387277096153848809506565320734420589849785682144810993443271437941292340729754793264761829620403614436411274652404369175428358566140595943326100913231448641642049764947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832720865705298255892664923127405067312348772034977998295609410636030516581681903848011147030423901820457583727316520859225399475109389001211221942666544590867792691371154950789666576676546096288277775199570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927042138267562143534059246720235020642585410968595512829598880167947485348827623226089882142602796694948833997353809115310261572752606151664675747231126731130456302101644275628278219148792466989753209783265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003695116901118016832699946612010086053209415790192889761397840351651115993464204441482768205455063418483061619799460270489648952438970258434171773190315330932147980542020896195125075929364901627814740773224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262576190303383417425184853854038470371006908765080853508640217621010156728291435673677110351164397836344042830234780735456691438177047450894587211787839154166530924726979519526863928233003716850678762078775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463076197396749984634936360975806725366155180785981453495358216014802602331762520150636639939135142877511535321241122515057065723115208537650284322101584061898257004704391718649072412089171456120249173004379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791598180109759080113272257843002501113788034957920439189928830051624292176003376410793371968133192067582991826078485247571177524201683493481941400539164639352182737104891500365804792597615834365135534943843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611386688552159846134450580330263691439417435599175378716668814004529689343519876527230084584655015656598952113011048528816939415686706351783192218559553050002986483254447747771995501650826588967139640889880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070732006751042625141429624471453687509706878506600593940265187786103276547028063257299061968975918873866723051101237949329259764957482625519592739447176400925561852118577244308889458931304570975272586707145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322744548950078096671196162151367695085308923361238666283481102939804607435534272724428104903280756767003377271120949128434487450813568822156033050438835175410814830375344342084122081683605813262345767754279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788520587318286600656334932560235908889835377725079702005054144021055946107207649244091363372278973994663975123411788366312509006141623227657028541048506797449812718146764308414103002375256537304952767275484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744191332394798552871653023199869802398398473198178817133310344339890837958000051319653452338339010909704447143479426502628574031518152035465072823118385198658029362135224379754319380198343291431250275776675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871416003026828372404946436034787690357332618811431010813218855279858973034505344033037227691514045318236187832171998898905508290896624197658559805783414287373064809852907821459411264949921965113612567773076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585668898203737054970452907158469737635558706092801201769780532935796783807950227922001052016768988732541083893192509071742888108107086232075510184800417696968262903923998393811623663847871308193201855592678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064778393248758500636199119677877532680713924689844038826593605108546523692226192724034991210383162262972411440835568680499807460483713592520753901701446937391640928648639190537573932945565367754356329489530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067216644803205310670913037594884345787343984737076537474047930809034382443397058305326958562998479383048081779750890193239788196447472813485486485639973679076903930252128591950959453303137975185298186626201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120272624773706671615372979623651717118309181715228052653759337375581282348642969322667847133869598876915809508115049936337356905900842892007054825254617689541647107780117586071432866240448305523642593775798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836534781106895005532321232310409943156697571284321105892729075626652983068346126881743502763445734873130812787853966825948045024450899453850626222815657206656259080710600907194741580643428961731315157060558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382188405781522951987895606499560698274532892273270385375845209270924294667346895933777896580676951285904490573991307948762539798998946853448670842763284764409804653488551209436064288937383710535155958795075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756195212674327358168549611969888258311261669505222402188114669306257495384708699586574599887892786847387198643837904804637462228161268712763451130947831661759970759508533257460284937400104364503455658044944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557477431542932903262953211497882620351598741254642288439527779549928956475434710589858515900550849005696903693994638054127440782720795881206109501826667505282910042864401159690915602602458721174560455109407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684807661718788752544407318658305011864756320301713983390078987542441102627774925945578726315160874870250480620381626062841567542997110084572360794368388317756971160717747601977362998608470922561241903344303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820294679958162439870593623917051175070504939244293712287520721004790036952035305417470268810031314275311744562464073545200130335154416116128453063638220620318271412034710573330570609561041999774412943789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438915947177796949351958346843367832214130374310734291743734376354415907377380776833554545220416075583245001412712899741014947054886472434158991296092282986240745516058914963102100059587134719209797239836831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353658524866103735524636051974175871823490873819774519960413516046880860827255906104828222575767463581916629034390705475970348090440043043333174134614234541274567798725892324090915108730592024279001496737015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629750558295079055157128977260343546722251875194722777503478062988815802764088305858873211408993562565445263256262930428543993328255032950289369907770549029470796220083902932214441126573820895685434478522535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714542706585174744459646823526941056851933737004914486237606597957437429493137628495423747696298423620404069903223286254828223354201652282912884434215751270602021538317845218564841150669394364364463390329462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258536312643708973075795526996850313206909183067913265420306400314824559862392657597573177591286253089465412516622840716337014979026738432530161901013729788646954034256945572630522038762942326480649962381630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603720606929534601536735130093516649047599690415348442284064946435783962739597969701199959968970550071398026714315391239146116135818340680876053466725530504223979280965662210911118477896503351900312819308140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347338410138588742805072514932018367654986544261906876750303979569390242134374752592028444937070321982409508528743929412781595864754303669533654646504381229553856960187081463036000681022319353567758842217066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779752140149169816134993044910420427417299073183796985131245595860639919965966899610800504940072963970989595175746349501131523954054363842477157673057968997809351123101270006068315601347056168842081862105906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005363319425718826190168520911094446230493872762260130096650980181502161161893149917554486648451019396408924245351858629668535880723702520862903963751354424084167679610625407745354397187202203898292588150488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521524754130038382417596775542251548689034984675846106631594198812117971334525092753070140856142635030152714737087979022966356830017879902880841938939224918844891176700803803875888780169770111345334911534802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614923135734029631365279127615262306104314092395653522974932610180235741449400201075752924889589293245803518893483362322662110704722279517896431135332221513311128130269965705654236666071242736067583376783519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734139362973234927591808942336565260939483133648102906435863118308259658785978471502344907874767879956674248520510401039997571039402206306917347420208969917560052888987367593966293674017209821954183371282339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139291043490275683817268404705229814089067131491526250441754527101123578680129893682849339139638336607814229179455434491680970664913188453781202579621552321288398882948309602541545158301556456231328450317418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710412739177835963479441159241607409649189238641623144315098433799999574123860845568790650179660465904011900931064914597645508744169170936159780546717465899301704137539046825444198493069773963033614330040322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190012845946074216074295710458314004620124639011021019323688746231874639063905184609082474661222258683171698906360640254048935087506001935383235847779777771841566927112240044551677054193107303883694387978890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093278986221595494379970630648070964941770800581227055933091621184400463589378563243586419106154006820478790162140445787717398102952607173000991217971137542433348822666186718059345350035979406261016945589487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317128350116775412896963401763368803347613242500654794483551600242312566460801078670258603760993908004517562600906555541309840427357430050066877433135282061707299033893705322254670042058896404652393614283079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717042400678767123685935372271091567040606219434726020409941395472013175524491583459442749191929135023558344041872069743458860538337018589765720622546686389914740617138440911140542444892418125280587378444375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804989009276466743181741931273879879190866705646017414104518365473639211201831272642135299075075316741860411390850791740441726580092889664003508561829937247213684341314956929570401981300160608754127957466419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663239728334225270656507307251890309039502297514554508141344442816541436441049217506227064362861017571711204836658149705824635780075504562645374462805259328415678857985069010580452797562628572208304783543668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669379948424210982489742008823311140013410440951609308313090546550315955515473977480221462406761105271613757998628354396966578355245670079360497518767958500434785944448348747345525999632392588201044528789576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507493228007094056920655442879928976809138532882392312742649637907197997852490903046095850203281301188191897987538612770509831126796867211781006094288603341607408020448532441414457945472105469892916649981941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264989015115562982779223043334984493678391519856268504325200844798554629691262997883130293630646337045033155263752040473922415707285777998802963532890069840076781896975635402176619429442475372564984572265506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814606174543313264489248037013462642669263173424435742705177475650675563413336005917831376373759203890204265171691865422448413609465986362677543332217290972806772121812294501776642327167331091927523377242450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492334460461527922287117473732068207379504077538070248751397369748722080794183627245792671586058756843738256966015288450159363605799764879554666897963172764144582671409839302605844437311832195273578242992380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617900985472078551257259753257687803418428239419301167647127802001324490541706871940608748642509924900412437779902567236238752134487546868018057002677165904571741675093585374663278466147170222912775381648935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115272252098855763180788086283744439537336386628913943990459186935629799316913207431084912387826967081737983802760073283523713057038353881201921780745570539213125048219766934063942802345335096980545219196416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206510049409786713024508960506363114749789754318632737637932022795300108771768440261821800385909060770293459786409329695112338532614945655859677117544246194620867417898814347780270237891838654750736725070123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227209658706300498343665718303094585252856298925461326079017237462336013820894764047217671021078363530632839185289426309708352418426880666397245435194987459495272368823511064759383705313614945233262990060613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119487461275842517254229933765619132283441361596884512305097922908093477806100012024307933675460695671886784758902916716281510479109848199687950537574761034383928929818347559135337283428884922853939659501645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339104412351279771742589499718132089939724094576305043817654202377493729292366664085826356304701889428471366217962807794758141064720396869005733588378323839385156436769291095321263095302372341887763775951325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356614001989154067719147406045020084890078521044898407155872491318142412374531473909585928549192619551275281540455554894860530439518305516386529635114358554267895788433224703032239846296940370036386670597551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663014641420751502676529987148414838592420468435150528589264835412959996419063836222550061620298517908079995517161428927433221628069635121629029650503454559800242920380661131224998757487778145433349578136558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276336610318905110863359639860709747374195529341785078013653378687767911514738332525130023719102358758867980393855297049983218303899853337353315103458044340257304227586826097239834223150176408033273176226319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785587565505751594286116131767395528348150808518520715479514392667287510574413867697189020877761195924593592908638396962005768650996293038181454912807341809720403203633667664994439199362641452271450735037059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218618363552047279035331753093607797787984708023902185958744878960745237490562837474189310268062804817433813001982212777060921847008152523271459867234378543104978390436493058607645357560259838281625409849639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976774099702847276682966685429084540520229190030343224718982049938248060751638727945668940849736665162281336948828583395313505021705361118175021010169609373728821746838926180687188721171220320673364983128125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711295479677781238623934934140085470537845837828515123279873088409373572110045860365454494530186810732937611086797828280343661333397805386148635943716350087711931195598480218289926777976940913930849268923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759156830362494716086505186322797429561365198303518971428760223750716059990468522702848242025700962993827914781801540664169179259696502306167496772478419474142009242977297138883251166552227303389644473052704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439056990939459868204985525831287644568389843421093658943105114075558384927893699740950138919882124799162098883924355873655545237536238906410726631365733868871501437667657439282983207346131403949526170953084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389143025289376673739262860646099166425839998746474341416395267773224693331340898922821352367160956282513492348592680407355181536071965673950270691353576343437674431172490845537767032666988414491148088848013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557427183847336205164098603931021959212112257203436510013963890649452967142056089086176982883163882838252297076581896118954572982581073394540172774978345406877641107780044074292966398079580266893129468908915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568307438429892564630240890633667606473897049687362677347143193464378269527837602861465838927893362323616036869658885994407170901438576500856237035707472881230042776474747037794632000554372747365847240261839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295358041284490195677174363265587334302844014814990754651032818138782109072143398374541509572180872332163931411848854048824761331564993540303113131971438856668338021766683608295032360405951367759271551656796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660782899695363498145223886600730147718791986416066143908057772551924487070829109767355499112006123175361847813176543955729503854529236536694133485621787892615474045615045230885311843897833507480699448020815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621809971117614689000137724070092348499633083203042973219675827894000846652350711551118348103201448352947448851886324133039606763958576623927274353864765533259261139160105897206949121604194384362769225020408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225129064251574535947961305271895994888478243531722562754131095998504427747535263888711892649770717055022010568232530711543895647583031225511628763968835143262728629815240755887995962098043946596889329519044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805722415068971855827765389521513585658976407301488111133738692458889098227602297339512441350751003872589482066478544539290551160492546556830179223635263775546268409049478003726847161026495088262069357484631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947432059951652915960087156521154612967354139573277516784434848645983391375848562505546017507922098835877193386013948967514833763802139034152904283626453763745808782815379047085445759676142103772361232961964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176641436203210987497172990814400037157392818915284083197422943733677477825870921871722529840693055569352258367862538776990371083298779795051691696299576070266248772561115321024522871797030937380056335405929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668245660428800047407292619165754409533650005445833313333486658197274927600124232382251718468930694085723246155423928138874220276616937979356634410450371155982367577143124912796231411501645288804409423900517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799569180129713172054038424909608736362135131097528620986224262418742435783767729126417918801376752003205633261892410186165130348102440068568086061104811294274090093752748578585868409229731577936688608619964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693010611464556489168050091450055613784940454369313485910618419330189545486385219860080820040286332226857792865947499006936075105780234742015035317737300836494989167289350909354212097520747272504366618800613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191086294136723600026941207127811308763653161522443351622669190123101713629501331698077009767031225923340995423527648984420891092439027564816170040721739272566024295837155710671685414187130035713102305447259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674768851145064913151861552462947924811159873110907977115298058809209285816227706527567771953931120357319433459343473372951899415721472276190367800430879590479992664242819620163009888371488450439801224462455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021241523137818733130015601121995657035414106535356384524396556426727217434505317089708620347654758674128146407197922805744695406849279599459045820901873176586616251787331296935726248763018274805306560029462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049953913103184653278383865626717476001806278875804925400887840392798564649645155278927345020015410031319050962710809628895237689828726513914081945116719591666318188533731279822794780963841863308123249343682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040774479919083761021111239606725071929979313651770673164504798623225519797029925665315101596604596690150887068882982527286405989514250476556464386139713909302025719458558252713927198113277588869554462920605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829678466860543779061338910206076538974678379909041982264282917135698004347246669699301575114953715204374031918107954868943240622909458623262452209667574495285660164657873688424654026560457697329001295837874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949497649100036934909550819450205563811224964796766249650785802327123689446228669796319715390249901099117672053296592010243274158366462851035194005414571907148638824694469038224568838850078244103925016359715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110773185810458946104627355807094714668352878352224424395195109596480193399728225441237291197533523339788200500320948307780662833646063246671001800870666288977157613180394453085177859979679161756236424579913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556572311289137915061078782367241706315742790860275826804832820482530595944865355305335573608943668378778877908835773316581566564046333631178965577553867451359654743792882443277617766529977537884432122626758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298942478242558064807664336180523774156314037893371269990081154608408142405869284464087423891245775193664669946373591584411931779500858480652805204513861789723299109646117709762971698805474148640403588839279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163591118168057356862567675748362796259542314440842686944417808465459001098300832470127327673251862965281011987566742512371854719174196446109963814369225276487686524296433284880267104880448880155910644769829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229615719350186325172175999942277944125127694916659641176453311307678394358755701511268339788077823089327672921967390656501679098849598999718362018377246697916468158884004015083264133901702440286390700883106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730559636348560061598496125351831074504282805991011356152764613718732307405486443870951037623912931744139267996447473236182136331185858040699365837776065584149533283266028778546968943002292685310193430198737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121256597621835683455225766840491652515707584146144132895209700930687290227163705638590610592169694573513122969929258356753188344521095375701735632618166442459183071917325928053735184818309872294562621725404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155337660714688158886146659370802181184864094912441578015869647372390959585803117354939639342323981218838583222690622730436915479647732903620310231584622821186608285896081690940900061896442134617344682521433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669981512196539671905138431353655032131380682424517348894759250312419248417525574038182351139026163553709368646884710152598668200629666043326715884702846725282736751363691589349857215149576969573937931293333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058956236518854268293985666712723058331747394679893879179844757263966997256515093350494496239329894118380951152202738593619916208931559373521319380127029848188296824569246640158910245224083340735294723767660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949116807052305281730869088268238012941254181467305845934358127343340746347109810169733784511370003614666147779737566767622118782539423603706549237225664751927002508248888604062234098115451133342239017736841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044704111628786526792010616132471999844823715233499783637523014313513282695539529010864942058186043961590530582597540015734752997498272309538705772100053964188697048745289735915687927079944165810494426879390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067322955766462225607265008320437346368920697425731014887778328145970055062112529709439551348206970678092045789009005563599319303007467104257017918474679952016450985381510153969617354552778043062677579487710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400180249473884247950763593696251658159800549011079707269532448861374349938844083661468592090201387462929729093845395689309155247032545649484834255843539275002683980891951243857147278892288180047279791059416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939570764107067895059052416329022129176157072028133796306498598823224267102982642645482279327154804587649921241321268182767230903475595793031158482489483014173171934310466356199829342266084524197727430008947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573673711721580999020989445373325540664924455565704797720791458123045061888066934773161154921352859808111096403564201032065031387832981444308563872065793894070562327958687446085284069806283901283199404031753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337667213835454142478713666653871820712848476170700280230771398620015232852846749805171600941770084830607816307406741291585704585798091435416092906134945970968892571056791005567529007475043799463382111921199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774007966612713823071408188284186493254567005047890235799834629665205390345267229736797112229647576384279533707030794156328931174663489962869105186047227268887787587979536548113309718525774883625499507808962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886494557819210247088409805488404942892027586325135120327683691655093337575687742311036161066838321580802564333464542717220249562180605935860577836839825461822364498335419919081817549239621687105280495142246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352812785194098401671972972706993221339071842095517824752068026846361653977165123457434030443246614781771199610855372824309171126351950119153810332261700960781979229460355260187876692362124863624885129035442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160867710746014327477238510284749466636334619417230160773629762889772512830025808468772653015168202925087300134621992315653871990410605507419303633901844423978744233849982606967605702053536845646427272703489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218471097204771824805672156192313199662763782820670627977864382255808727403553887557637225829990506735915414714947437264983978705766331150533421161217453408965415215549774624788862911830352604036873282202507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373598537269299262642666002172976904093229166457800802861573105013834059960521518020233746749329410957691399996766385217537464885072146422768364860918319733236392159249039000696788812101129746358373405258687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180433957953872113306464679928612294857139338563297616178508911558276611979023379998663577047496379682239935095795450820550511189303477935702443035283044283470241059046122468081137539970742874343512072417982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463632653061205961474109678643663281284892462172769906044003564831372701718432611076286907062962876782483372521816784952087018738888352668188068856155382102917938468812597592238717575687377663652172791829359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688929555879457553413146588128331024557479280502008666957169395778015341439067707468844437199722947314209624309846450531853965219060267110060566217145056523961676291582141003930733389291862567033371447241709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319576366026242617229242548005605957217481535593409253828324333447779423450894659468295480156164008840235503732349654987866217107668010625102744723405477738722823370632442234657130998335356361790451296645359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705081322123467368781442761854788305850058107851555678807693973242122087306618262009083050415060798786720780086387483147104679622180439475755630990862442443828090707516360392136097396719349408198200518930846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012425353942546083747346222496082982724724021875373415104438842714089303290396631705985272743575722491980439640689369083307046069033634037611356692720080172060165258701662092465653183217835903483184668496336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624682534709995778541481648466735735611338031920658221354967829629458379489925909065715085858992403687772470956022520603041059454722357343076199202003870342440222349094967180951194798118123176621613281265741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214420332378136469561291816090880705226927447850235794371561428549610330999701394772146061745007882475417006791781881337307355387867960101242192434173987328976322809867622937453437289981172593008222324624375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119023663625200616717734072684448767087078633992885187857488689069559520575608065535972362554866576806599730026961449979138639491376433439511781865616972457501195552713987666331024199364961593673423336765935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912072026225055993021055200593642720672067436580819591983894686241507538027516566228260425584487236963423152737049647360124729374705823518946377728760858627139523599906922325870359910709275360771787312754815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425079168966493653461066490303392645479826245075275297035511702938954939260502611673280508063619113504150387225535480524950307259220832129916769939385789605219190402265932968932015280538558488326767365756858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958286013592876613508856941307268952706221194446570901350002850781700817329693606994478080116508997746983832753354462231178900414244561256592361906713778221883099012620503871386374611075471382433334260661119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365413924603252815139106025806900867924694784641513774253049081133374859256590325210843787058369018030593385329700109696000874250448141845892598569653455698082723712762554004837927076410170208700067585244432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468053761252878362242163181476420476433345658692429156194617414792930326727453319879627590510582556439064127960599605162941055835770035365632428567139724330935998617848544097181817255447779140932095918405016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512156644888145132509782997998568283018302927181265875799749152594214260663844934761823669436130100077834745045443839405946382531641746962167963754039491521160083553404587300703416744768853863537241759119191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924975966878585576268728363857714282335234665679589269485489195448742419522285402758101327257258848460465495185162225272148589697272632895152661007419195971783288365945597685705772628478559544883724075791628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389817904863646490829677731508367769973355150741700812202580538852451953639834531876177812318292338451614920189467872021748024528159190124225586516987472590215507624974912267376594563307616602119434840323979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018694114212611703437224966747668259888183377748915300135800231460242604720552757993198994096431611442985283161148698973174864230826264934163168452780162228694521765248789069955609915109601587941691038845956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281577318511859276331001448478115773051572774116363217629955597106437427871640408298307104630541915599371481539161255478112643743890397452120735757677775074211505082981008573752383518383575399332029759891578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727210851684706739011137210182805804603224791660073832691454159319829243254337464860496339653422481729383254751114037593843778055810026790235933847989586548607874194141688407304341734969042406917428958291133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859147616695431940776934896555906031303415790944551975602966248754548790911175326993709371263806722567514630607402334459831482057807785525381693436480535680794520453868887221458052022813716526982011625061657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843766240091747190328339083995367474686131010932754508537010324881645635754895586036799189361129787619083567373122748237818270185310642630961347248714360549318903770261332912020741185702039654923368590863272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719196620859931129697830338865167585446227913405384476083942355534490331633000124757996527616852631945329309596273131467261926618198321945664800489127240421657304136383304222664897851556264565532197114472973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503015339059776478342890747487781517348157362688287288473096086418866453032947600753309358538027704926007328843294119520864829711317593752534438895881425554838517329528360113779153290113357598117475908082955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955781800595875717191172323509157871375153991255150526069594760593315763509091797733208336136807194551564074953303571884225636931711834397325160573650377473214535005635956382624749363822470583684752142607279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199117764793004764932649152190991777236255805271272577992841862212722025947295783642415695183890426186293194985023980882790182277086708707193539801835763828047217627026149024918463402523612956451260017975449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407909464765381655080500179673737431409908947484169143006508118210399009419171429055442874348691778082841271632833493337387601898051923823637302197650070299199840953953640819293935448443378672525707772959596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263982504447987947755138368875388820775721206353195865003008391065447149075492797115572184609015539457332518638981285824687769598008274176555499255652637871847498870632914943908030741726036758968025487183739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033326470891561955522356638062641257479134638253749259912880143126144362011718100610472258584185002863415621156884418566202827276600655362434165318617270547046018295233295364896057333074530647300773945817405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229299977128484739924791499752469757461676524013339887118993502919950725940354177678878427586317338620212314331223245499952102264641917059020637215636487044104269833633331382169588483198120936936835919041149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231919375790621178580909320588479483630579561215601056518207521648952936475049978364259687880476092599970186536111131360484481043431372673271493251764067795912827041809284099302148095745786634937792271213755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975531338603713165764078334088593594573767196740862525180978181788036986011661388347129991537711238341545287404899564690282603006885427634518962357355461815822221407196786684310268265573811519493713161823492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201670334401637519436130793606687706059615507458187300740588554185707771293765395461112355201773745267536502771236010262637114085024937545199723881184972004852954076053757550486334985176039343403658952960860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113469807153506236406048801061017613964306550666466714597747927512750131334659676463960699440570311860560878122806328967816576537275062967283576263974828384647295018917985604824919850079916092323997667196476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758311954624011266194893008382843865999999283333794876598213558839333097596539435168747702542038052033733823178938782825430477368592737723574788865668587360925686910563774468511315594786736516484921786038920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908705395262510961272908873767982224107476784882990262592141720651354432719916459983330333820509702367037918912977711390002179646455681701380894182584629598768936359243937980370126043700019545375320947585656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345060391086151194883142464773935945361134626325397903053106155154047570431835806988891168508827835754062604700813348942775641988110461503391081966974360385607326708715608776658858910608960720874715826970169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292413015247640415195327618247072352789772769577454314914572040541799531857883749810850505715767111058158521670552201100240312147171579846458543324890734109876109929564967615654471880624428493371942227474044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976032892432451053029825051224268070373121280839351220225540841513202947999805751376864933655676167849947133492695625773907848371824828315567929819728778686290363105606858009907222402153876614713644801965614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605346725549561541898838178560292676908506131365952880391735556024568797177231060321745760497595023225629419637906309379558104490958762135916778658295393030657653092307043986757062576067142706385260554759595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768547745929603359227262526666835217070318949628272456528458241425460630372804077747979885412946353979992464746913355243372318304535384890808089315251813576848527285891732859174645036561200688294705032047169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073555219093758657747362647369928888127978293339349986977352324137599315546363119298207065372747860725899731206930627210401572394384260875603932638706392902219030858909877722019855938537268814793228829223698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939761270556240876767140605906275936789728632046558940753192715912951170184437557585352369782060346030811140856162220429042890528709348719387536681994211967871603447511656321704404160535134139017313668946388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730184599840879909046157493109861431331591978406063568318841950570759621032685084075395110460713677431506318655681175045684291098593609486346869593672277580773060728837988142468100342685874419533203422259222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848043735402673868444648250945683719869661983308898587835257932328100478498000016592407290314660281505647241103452031576527657717145051080460305129759639033690487822708390133104005385149373537497295161348972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115133434232393928153928575524189254275336899367076736032707695340715397783176932998580029024738091222270247003014973214830993493324188082111825695862329465185756368975416357468959866026651728710637317821154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731562838649486193104350166181226630376959372676458853838094304945302303026801421097550250389072148424600933987543991538384213775459724640986873792660279416620470866328438766273660878272150035989277651707445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367241231536397295203799561405420265235573318226053603015161076727016136677534720210899524060190190731071671157213153131399108734604994855887930555732907486675692499177914777762752572153315305919154375764020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631047596189330349094993072843240900986604296477641606362128947695172656741692210412679197620262917558530596160588359815094381398881554647395390022108597871859240596478027678892392428047732324168011508809942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759022843450810248452324285061945646492828833802467453143600766539393253169069347153411102590915595098099960777108192404340081740190904995224169459367084155126335044683742354082912646538035494169538468719159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861375086965603814411544678174631824157801254897625802405672218165190255256466551041784031399315527349701282746407837967734310395750011676435012323921872173693956157256120962946586125817922599712293601560483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249254566092255047367866335359776701147547793789512216395039174883700606920832143131056511403216591497160545033152608756244303975120162704447566549744508291084491427532865125788432014337191619507424345854267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569167712944767701057362851752692267386733249041105761883634334373993174057361935369077705806991870011038755068258651233963419298473309667875732032904837005690335362168372869158682248493164586413099556128076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415414830530440196754581623598606346657273305740334246756825399885570038420395650977199541002683762829751197071569287780588231902617101475800897373783464992100430570761585953225073361087295702715074312297920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760119678185038367530347047000578748360997590909129630344182765505119842942611742125017453108837615277210320916233088335710208577216259509925298643641820689439656908564775124318290301835339510911467513718534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208543277081713993729713647285516236910280943949049809571114798735326336108615449092136210719578627182658984645459587009069249248820523435112868738626912529335695565624401533344756716240947811826571155954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055597917917858281975784812372478022962734271327380701712131593454022544168614641620641854955622017580271717419329604030724285575914037487524125583648684782653057902112930150460093009791132893911020928422212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008230686748165992916214204378559690700839634317491570400704911133097023046876615857483135080144475992852020727860406246909862458183710566318254920666633928689416422316813978537417455898355023981413476275686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568346135550888143137449856363777369433473077922369202328195126019883348531930841391296921034511566461558171845160918653048971195380110248525749893158647233999267453725219148787799788807562673750638723780564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926363064557919103281746224652305086811453922379034699935761819228384117831112734266093171716054723027485870001047866059835368762042349093563146793544370070867604441608093430388964169122938462935021661100210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227810793149777110353425543816635050218200475598457194707642967827158772684836236111806592445159528291523018180897167227176349652283750680731317414453350933010558621571973367591051672048856745415728163217259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712962345406637758448773140658050218144414570121613889442942543012726143996039751548809684175388778709977105315689605779553635967007806998565011955361699581910918533374036619990661867745865365937828951586192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844105959758701053837837669513414411711576580152919723932831823741907241827055621142924812595008621934825451856553970125840647774590941610778984486679878798360359430670508264698506509650714242879841665013303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857745381944142354918783809292297831844140223844361123221688505624335418588432511544720643284962084563281194108270588318935428845436505484535633008842668569356364289020276692308486633611829914298726387988068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416471971731779872683943602401052166101498152655416254038545177952158400249587987974104952480047535581645441160796496743747671842211835815737673704896816576186466844739957457386389528495665189574478665977781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345776878385607580956164533921688489754259830599175376101323206354325344240488600003090822619003730634184868861438763736494178874012048260950512759863390509770242472529801758826392293870793673252211167057926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035841298716228668505324603894356500230734167083751864595368025275824052092374467657335127060160117034908068222327234121408469596673325161565758066590243101303206411537511687407756787406035925878861719736349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356697808454878051823199575640739788317702711356439242044520333007609764367969990040958549556201313584805875374947256934033090917283239418369219324915186872354773939212756117946640185118001380750102777217130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236622477073584885055861960214818950756889614649864710858464453732949655233372641883832621271178272406932265715707864175572896145338291644891865204955272952633002810498231098573394308160225669817111505642180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924575628282627813751332708052945523221608454057654378540071799081276883669537497522864067146153456490112693874267114036215138204775875494285657227853366584872908691749510102375874976607230169518573650905794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082522858781476449540661682660663281738590646817084809801956309540191002303038377210748322781390116820825823892779361395612062162133915786407904096277774306239458871168135932412443371094483087422994896572704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004822149073557310114756043910764230704997141717927224988936251185377184456536112435366803341583471099997812750459310729492016400404387368910848900002206589689495098835545433034480634690683626426926225260480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933481726253378578369549688018197142075830479025045449329434408065470696670920819668718095745182237903331168666010658854646162225136807558072817839904993820325403522221479127873573379240505817047934361116046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483997821549752696200677717461253751774740807704214694980724656692103138036559013914463193378524956076512895884703956836005240560377322664848897675986472222368704572600251314653302789490736683175428527930436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167879517193228216048427904222814574555552585011050511185320512824817044934085006511105859679661134805431579901002711637041462558845146953150161376530986346793513983064421721253914210484840180699555558933864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159894030606077640708862153022528396306106149844929747045128120643925095268393316301653540689292805651871572657874119402174780917279954187411811373735348232049240285444372854241447866735317203972840999210753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072415453650425368635876511464557763852861842225003735443386084194572025780836246705161354412193605212492654785579790112658159199332255421473361025220356400358279085755073052788354315946741793742649740740947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295029918179570280686365101245445154413181429654184524519788730520200288020433895520952126242506820736251646482968883150509597010002264372135348785826025335789842849926425984938269865559157455227722304478367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141890917095548585817099969398458241888623043463864685370946920190866442500142370490706054794401636362244842049461414540733407720561367537799471743464186961441635564294715919709591245729889392338150010412294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873908460298324844967776765267144609098427240922194420872905077724742271284919986275288409545361224426081223673026362416664636769565823405093478650114354522301721104318296746118127124772674755841834739182964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069131864316448729348116247531427094795121837118954308016061368674233086520685683926148047844566474945748323298371127834849457568184823573812967298602509445631002138707680490430110884104356065956329135513636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556868010244438199821740818683080632657934450136606958831163527659019637109122168302179943178178115975625693348118175901637045395488002543869195029394842963338788023245402686831159207714726609640814729742564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782898851581890074068178835600338395502491054421913694943840259289757680416479873887544190710100738825026002505293715712059882179975190525154813512892650703503129538879739519680714631297973939885522406771074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426522815067530677311683499200307497844953331739235628772498890110498291353809943234673870647929391838298473650917415993442241801360907021853768394823719725514881388163528250823780875617730371859331023769015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111099523758782168987072283241554043785949364881659710601941701117753081977960061020610758095418438226377174415893089344024548077635898598386460044819130632918212125220072806340890562731361562825142597291169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045897219105420047904207261838945659167576624337481652334310131977778750626481447896237968544918333932544522632823898399552143508647239988246182346783334120349696963465231029709800703127298113002987487588451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381301906515931686201918396364388118286970411649458769422113657698149517318604394476819223940067014551279282540565303246423524190837891152091652075345011477513376176131603034635001583043241198303450459731115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709627032211967352066825688348737596450725120796914516873963998729508929286150574509391835248986417115156337107720704371942989785258541065122020872198511520119682006685154950907756992161931680576122550841079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563650836229040968772707590630759517373446538123581672056998615449337441355115808285999797250700054256958448290421570329632969541837206112532778185078243532391872673797539010604218982133356800149176292763589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886015842078104750426281129044255263505482966134319834755788519322226718693036456672710264959940051166308663731727404454569497374874852110331775493646253806113344743108068326308466220393707731052442799951374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976994084161606242840630833289799716187050576519624049243165999515189664975475039001147398903189687832645578474537251804522359726877668762428507538166167924880008234090320348071465228902223080614965742704477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148432273147350683717788157985202303528005999986977666937008226708804204330427176103604436021195740531832397750825376243533599258744806695231314095082672974200827195918716169601534065457814757101243294703404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243491401886858021766970655158850256174152070315092726514587358857716690741189566762941681340578424067733886652984335828209920927960002560537316119574865172971711404358368302333102692447556349630182678573511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126321617941436862387824468108851006087982065719694731531688727655829254841006002628870847072641463698145467602306906484800019508915292088347520029483301183570714748604600323180366466301137834614810208010408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127068704857905001700188276611540259896645638226952840861257000003120151341462146274358818811375215962355090961869348253038196808508496757130802652210017544521504388244696353913545222948382275219397816100630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973983167443812080972188188312362266033870753267894253855916918297728332731261550841748495123598915798601931046302040883658123282833932828775274859787053647329515614114298532461034302555313019496430116703792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659676450234624195887257359338615526808120477513640278605967148993681237120118621234905481712924548154302380410365014875356745431118006045004261307876822158851442673029620840482261369497426208176099993500334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858417216502492556122848670444079452809182539144469876181366331943960646378224508161381778729282783976485911046345562271722217817692297411538678621460572420158898217549455474948636317672274364708980215462007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974853698311136710708247974741971708082430169166617707713127633313638154531589133752541683984084786431775066750394884663677721467921121853612236316721888038066106985937023790963186922402591191463458461497417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397440246021297391101349926966489897822336465536512949732934154340689469433738182663778605034749343327029083756180110549346901793394287399056637969763478106955289619876461898507220863458747577535586844687233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963285143088878668807424981635856363393141947625230661525205658963070371420915744678667376833515582244422637175552905493953288236668961533263314935839281282245849325405559410719507137997035637423400973161309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838005063036825456630806282500948802003418002145584175546348018765356776441151647710438436690085370611690503253031468354371335818092924007680509581888880313192299660498665119235533344271599513076908208526629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880562030923121386657807216261161812700375605344622634949838625256665242292344365139697208237825995762610809984937542273567512241092324479307242828029176235375338637087638735181552748211124480024591246405111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420009125338674343134073422651959981448876264483185527327749412287856130622582187812001162857352133808604365252012350790830150596324546828189224759891328716943598514226757325815092498212489905184659072782376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211647477584390237574678913169570118226462177028945711913641268587186863582493271746562706728075136743159750756577475837640633804494482066835217833213332789677638365744674620172883957236721109815401621327006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920043759625134203063834294306097158474095380197411549530010282165055959259459194853348227327155444873521365344729423949559645304788053179455862934189010777934902760221808499185141257165316513745087503140146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686410341623679074185064637682566038955033477348967311334313629428543148876031247313354196709800084526427401420976313695876225859100931112997379360013553352920748298536720427612698476400667669866105345520728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609185500711535489241744407943370423182545606838670242052339330580317306477885933229299655466216870571281806631581075969880379541902867105158968218399861722645652372721592127269985616688430859683960287171538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976803645381111572086129563947096455742708238731268749887309705900533731834616896934170930000086168027800589567415228443663002296526507013856265684358886297585892712289731225045019397539880195992958594667444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058280083415867508782021829802912417977315235385770640677116684521336866501090644399184664729143841522843559577805241786922134390262097035903035025270328397986765487111297164150657689153935090940421630029212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923306313946321509657936648852867185365898542823240463873382817848153020920308831569726734392558336432163206608988845807113627763999664957064813332430080443070692281796296832861316394983415817887142621966549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879597967568283998310181525423666598572785888868064851894597071620346737035168045678974108321020687769153105056687668773293349200238935057443695445160234297945780603067189315767951908958081128270486867856517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360213259374764294767723385539394960803494329630814590799338159431146102374364826090527489260911499781759924252339697286952524166873150092382041212854261361635324913662513786628744172873692777326685338999050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865468606900461217655114103453283127120443522951001679479031335053425355678386919223431249052133279436125690468033045406425931433485989352987882254953185742488103764137541484499829522748902796950898149864690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309887919712372876169729073029530158633809543194018202669104693139303526636283583219629341950220558215628115100827837021914223186157752894430740125120698223625704135116212793447479373750708585344904025189467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918475843821185152491532108660870938947746555890976815009091552453184371101679704394227200606593472786492376559469584717164290257863271834360438706061526799319925178071960601819978896189144132968153273553656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211563806688873602452428615177077111067128514397173946256684077707258589195186572002830268782748806462486258045143333445413308616378682332572962579538006735091060533965232557596824150482795196197494590510082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585042133410149582854277180694946338138816824519034448050492243551000331414292089422576831348019510419539564834283831689946997068936123952993364773605967379563016178031842261826199208163486761966027586644711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941352536003306330261124551686492275338976533327508837308735465914111897983419770812110908047137442356324199743619581423276740560044467491569494557871493554792225417642982230757366515960393956787295208307621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178526513442090147965699695860332176102839832232524209091874975695282502362444942356873501034701874199053002938096986090876149456728711268068719599242400646532771157004612346955067259630156672290905445568896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392144404188942268166553489541432820615539268199333813234143139879087206556441176100519791030792115944641248229869540395866978962963602248076632631118560938170907553225965817149254580950048642819307237586533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629618258137957661952533777093959309375586959791505854695906008160034355707922057284184858559961647715619063376850432936554547474297930822840340104214779400494818065457292244834261048015204893325978936823575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141462158565442623752543139384253212757340745331911629551711879136992703539172350814998662377944284188433457149292710333226630993271591811777984273789750147894332684972051543072375606399877296166872532347099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769553714731599039115199581609495985121037453659944243964558662189512073140201773556781853195745001591386191064089978693283136483900961375710627234780052282421184264275528316128586976015660464318335336103972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180884700960607789076220693684073784963360963425095847082572563368126700642910298222799915761939412305010665619324385291312270883071567471968202186272019484744691477509958737748660296312621123936262684323153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785730492398625585661163352861527957134353145248103916383517055077877222976239792084070887115866239919233193364955741099493754100667968801426502073106663321903729688246980408070541863178851938047827141225654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921047134670233785151816822986613438461795592228922727247929512697119023249639138044043995740500927120818613254294374946808034952740287866386243934171088576574565098594766948921845006405465630078576018633790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313700112802969454316372351125088021191385854262210568994899518301809141719061592636934736495307154175906667880722820148829198820515570776358329567219112203577042495168506188295308898891337742800926055748231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004167497605558227538402785572289944290970792203734798808673500170223540288707487241568779150621465248917332552477018448633360423791742749855343362819513765938627640328174263624814720096570576172733932197137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786011756649108619427071829174412426544459813637859434402043228658975463864348272914836757909061246208432343903919234433434967727735561114213200143944432273203813690857297957363267447789438657748903859180992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941689945753283821030700597142644539014090180299182333664744077884707202162306238560559758221344837729629959883211943413369458344614783596937028326827141048481452882905261664032814940818402437682798083149452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620904650584483582903706278821795170109549763960329104655406069264586302126874027033337628709008636077571723127591619507653913377632919582215602395743429344688712980846121802689710424341709083309910985888888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677073036318425452933453097666152917523663236564742169042280616975156053330599250791768250223646459995703377476108414750188599883026552040683225323910587244894132149204201507636619728900040605927204249627607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615553657000299806435223585594633402915196557447737257745255173684677241148228763726800196358448624260379864986575821308051254867753671804496187001591044738793424304187854617870457854366494428438503041164819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325760225853194848393382061146480703648997867086531405317348151432465185340056408530192899076360160091407670768748649878661447241643842625492285981679108129205218822915194474347041036192619822496886501832878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040525693801721006438745609358563665337540961520993684410900642345559496789925865271737498298037176386441554083399332473281309549009091169442676470996060513667034017441183036622504899102028224104498005306393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507428457926919864654796897698574424712025026199362769049186893853796977482413020560763043389224736757475383147134175467829749624477066540938198182940533952786677289838848282991142392773632457160143733752630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071969679452722466159738660217416890391227225471338259155322845251522669469728173031755253671085191135887654254435790412982410354317442327643432713706542099632157063640609687138452462456633526913012207892078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071701501844136752913848473908192235647086656219503198651985556903747671094714087613531548718159302781883820781394000869999670451740058902929472049512466807390951722430551693010480382781475446419377026942493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498236900483738218263840092510215599762824924148323911002469278925362538480776998752416827751579814453455921809123520162309235618726203561806371374370501246256812488635116226947566896813619087391386116827810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035629609655090811123459904500640983146260011339766003729813388131614498624607384004103873895233467701560476564767743753091353036027730649485481818157985558458713627831537680464822152484180500243604859204248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886050908902496512647211910969229403866059091378266635979448407832676362544382973826316123851271358831895110725809941985723942638965905949827824178092350475995807282287983383670661002041595376456908759360820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088530228530142292402293423918474607289182440158403161965703700511650374832836121305179276792029495844961075787312193123627924907087747049402772076686395128995958103791825552757370199035639855128240294793513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476571047629262215263799117735029455404147197973618939164136467958250810525362210095673087070599535110232822554068808184242461329055034112463682062595644292917574019200970574675178378709497383462000351520235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982394526545661537689095003761204162565183010735370039070291502047537142778943688059173203027118577899176666342571642695371669593318314176864699203932928731478065454996105563585878580355988938253256278427797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648835230230971526389610852632841399355173700557015792433145571339263506491269103287457433680168470883210198318057258996356417499479991411764640878309858738876012622439291525135127431631142409165957985442311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942910611398818787978145692300825681635089337688536087849150976140767272201765263270063040429882985323604100024040182990715058209534866786585491475231039176530439244445196651342514858865935725306187893317329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739371584541654500461376347557269167252476102557802111982212191616769247994681485102211083546869776047065079702326979179446640582545878412351378391598786857658017471735758400554500216991566248934327757053162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072792733153880542657187195231461476085124120711621453707052346098735285253526398555173759886215228325270623317177105764683442071121848969716263292124906141666241887604178683965335208134039931999745848516368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268091077890548555861088592428224225927744773651178182700198138853160730568033657967627178457774291699979193696296290729972681030497096970617503617848728049157145532340248970086518250571841390970899814432108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988571097742034339038942417749608496785311587575244607210626352217999579448328249649817968808777035604906974060975581511209516205013277091078039134611475100496986771957804672823682217588508555121873788238435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421524240238973866144984302696436156975938350358000865252066344823250934289128159468246881311076706480727153921338085490889321744630597885811274425344881319621755074539046922922607786828636587515668094475047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592310355347744844271027727918126541939125547604844318093436796646334042828332733741850629865499460012090566860910949503520844183899163403069633435199713722340451018393656283949057157411991738814206864491885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771874208814554354356164303489103148152057658869444782706449109953352128432519104912469054321738051067941859880544012894251232589909962312324053877398210144640584965597415865952320581449885251037693065497489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229444385710758293568651598011790199480453582471723450301763989149022144948902160198684151758737919168266109838573845376528041890093375503234876758875765835081680848980488994613463846758358275894500466480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584375331090665942701325803295439815269206810548042155210247965114545433197115305740995493783836932001706564102399396852034151317330925138608298396103448375643485470945637411060456166683280263697605594107860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369780539020694898436522867928580781581080858064953263317305646816091785147125400088072257937135985919602032117698516618138205726664487971456050564764174273684189145067342456756416048290309818979175956744799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504013279951251230446071737653304434889758377502200674146778016973228005456734499425372413845823677596399572285545930783851914039504744136175891007414622681929769694988612865298551788024993319663563824838294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767430672375844555706643322396705837897501940110984584530312039741608149528633651224839511514265139521361994928047761456722848443128565961544973138278595330767369601494158637070362175658670104303586961145791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060040364605028380929610076000676210935821615488096827981804590876990755827971114967485871036597981779005599204619921086218833393864367675453578236336989088161935642182109559511009398375374775546586077865594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535519130694519600528949869404686558645288393239196124043995947790575543519058225812702468257321602699353123762173162563897324757116285960699970829394959814645468124291192894493216757893635877523658708312626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103690320984324524436374578928327453254010137873546087085784915339133018487965021588810929903714350114962119197243727036331890117992931009198972066058919499183852698678005809392309173781954298508516846681299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071471275560282552384610494287319949838014192749437510069479060959762757040742560527920403735132256437205320096902712617878841958243923433165252466820942546627297934824209502732777029535981564982473381806163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063573332139879373467391490808812351345513774071558682223545588457544686343337754031387130262607146224011717060240106522549119864684309641572194492446028281732525366703537230042424986606480531127501954356523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740506650512561669500573990832732506899521269752616060272524728366524467699546935694759472575668558118942585377725768098397685880649644185753871729087162366584295460006457283605313875813863629441043134629953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875224799849874991785025892689021482459578259051864454825308670960541524639164867481996956919637597196303980961058033546132789435981843508697452592000548590030372961683071957622685435364173118174509579933164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282505357057566139391755260695186896492503446866474914652615608550503791394202981994222199473543823178322303684713733024748559429826380406512984891971277312697939942446836813979719308945153130102282071760241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108056559187725277755480027001929461414415376722756825533214173720140747134788443436316759161438722559433049497719612338422266160489643962420532677970414308024116401196808910109206342903802792551569679532441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438419687672437084492636755070563340502683719944935473265265632066274380836995826335167607082354952985615834331195243922970039879106752683149442248758705971197501357168808077088016385784327781815130277868311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863989669574623157776860487972014803576795648458982197028876161231947013209559242144883555057627232344348426426011753223061822303565850804701101189919325257172054996292664129773504285043702622897235852816267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840662254133629335780931947819663929742350390848059320069789917678833968691319748258864747086279971313256137172730816533406139462568550590727545864506864656527768255534297214088338372788201028902932403132421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503029406692705805044006818192273514256346584354811095932073401274969490002544720797360379164669703195033832848355167676058310365452708576554980028239478223137188703965216420784140386320050168755928924424891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097629241041065662092350379244313926890303062203407870584752136844349814006643996828177728832830680829674748510726842285639503119239679399702278280832904039187942701256403173198670548090381729010938267703276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177984886836278290997984302172041753625222996727432571630803326267942700883466799312372277892804907269063435938633448273734946871808806945088824068997261658713437518740712443535899935749505763910550260234884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990473003987622256956952852270270070700223631278275647209189072366145338315064508660157166725030442531345730761424825299347355082009481110740264270328796135455899723876924388109759704444572797225595582148318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955582149616215804551632496152498462549133866615566130574710730660649476125925134739867240429470527139458700571144617743592489199997798539858915545801175707545841985707464441715735287088318155664906711613720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971922889061129439568658906746885822588883989165018835533075233198157903553586855155782065468218332159074291034746956756633924854152236453715003886217890263431378530266227448817999987385332341525005050759944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250000780185200769092799527481957223522490092455102100832943506047090382176234012352784838737727314319812353312167350741624784195463253446152082891223780469229085093862807526773733648916752751088671869074857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955508078778866728156509666916158391127216986993887591126886484854534528983845001720075317880961273477440300452416750323930383670617071013055043805871730675668335337453783036855999377590869513062184655285792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707365882098106057788654165147324898178700946301385079255922260729715226203881943748439143105940959925843344656576817396893261104598701003727543525116377441612272999941018619566051421596941206355131448597195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562276350127925849417326436623720232785535941949304500111524937011476346341575426409557473943069445635423620812122411763735769708677763593019356383644402889363050783332280366747439432486570798950852508727418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724417700301632550133970537241768281532351617690692199702556999620546424372653577547251024031299435538645948314701949401560266849430318378369365546618665662547082586074894839728251558916038553495064513847442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453571127711719432166046614310154741982155492904756210901895720806062349088029040678545667463724177248681190074206557848221929501065966835352086790875855344900927132510735378131123286004105291883550482825682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291314574589315184834205058542721160275207010530288121820442571850407971773519382644415143034000038965083547606952112614351514494096991515178332585172479894740524206100459840736384351138298293353702855164153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806618731953235529204014220009515480880706100745386563972589708030327985512405709675299487752503483811914844763960690239980085887510116129006008076911943810302609494806598476196904805932178521399828659016361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901935389814229423917941515613153979302514641379860895988767541369432304048702855541978092295804469899019290455890684659783833799449251271604941337790706486578589496757599405061755763293475680828922029111549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698952976652846718701072919337792928244353243138285206357061580769259282603222119402768779042924083653232321510235407534232109476053210171678047889604168510719739693991861879463461896797135467867224402905164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393164400215576294876554514962298494573570455639845828653901031203119955863297898599642742416545640221552693117618219340405280497700139581856995045062690832184422098580656036039665052040509265294491631122474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912004228297227192768010578564466733402031860657975998976736300451553441212227464921178419210429930233047545934081486957338855853118789257243599624701958104940834271300659716364375165746371024987053629169290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725398585320356707875344741018213449970395917873975349621147236777151075064434193206709784810139061194681429965659469499803015015050439499165819364340617547120060232533051005685661995398852109699179681030651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893876105442642302464412785966320148479552732274340928634620098405982453385763861519336443209833918195749629505252717041594110329416055200707970044527426550329106801682918215054886572979083065733200566711040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465112430180886283850187273208293049320534883490802257999620893153820434587462062523629681224077557166761470833253074351802801564661524123357726665459689501535120964074098799335251124236839325550804077953890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950541945450379091805163615808362888700153867243945007027498984321855676474032471439236648434111606209310196018250317806835398572583913357133449303614491708665979723338814530921740318117477520325816743389458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558961886132167299893940149412510356465833636887760906588376967418291919203119456469780942498386090416033096376452927942341930023017400543432258546250947435455170968354369756035650199238514737184926705972332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065961598933607786330701992223184666488893045271524055117461202230160366192193936615793786736961581625973005821281128255764679594940281466745760455774706739022001976983182597002938195414927590811337332360588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232625722472307119791823049444351403357447663970836106986071445700692763966397349202921834629764438186018937668805345127770384815690854061403280361502803860949033534893230357925117393530415841133265471290567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369068127422955027934635226450068693430774820746663687476147620022750181551796978266737414595043870588723873389632912139573039946630543402891327746816875466950216141246550370091265917983029038873484176139723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665442363027792854190450156664578818599794789712514811405023776902617289793013080656571631212120791429070542150888983795453659164355123341745987948092769417511490311746055224557854581355867021530900770319556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723713640905428985205188351003692681879974656470525450682683936264069944223117912997333641066781735915971628983274177288723020526098042487577710069881962403729127162845583584784034049243648781833724320371618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016882358765397504203024489864188963690963162701205576819699291549927751425437881294676650832503512671684664484445472404101245280642178327322277604369161028807835887184371005180840179580141083528163516360380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701699940143323110952872124482704720605460258500667040757911141368279069786865871177920435611489299687198880325903495462586850786451560737217153995339107054574208447004899811282899421602122209262449472745405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325629025888362684267844702983631329496605441625386147488283479816732288109784876941323436718833482975132775552098111835661299848568702173449715945581420516760136316810447498709163649431566670016341247315263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004155477759524040891350094036519708487007496783327432335886946312687900985023131720661411321086076048619570635662452304872049297016794578145820090361928067821394589374337776931269876868117124816408491052538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269879645498427712336025239601367889026391276316733486900994658881028631022374955359950171618779405954272032568075099172304060405924475934755878192311507086038643640016697693588444107736870284577037940928349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645118856722380760062998781844878270052720312938847998209719432022757136352039888007560979354968507222173819096427575684664407843849762359541643789860716673486049953642921576909269615170952825421086026688812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441215344210434543110428353361072322446109504754903082384976233787723979857646707148507270115503350791768894285532565557856891411105393768123007641727332335555556958197951616787651611271588023817370581258433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965166398578162708358962481375811285205027468314346218654210028735798453064197217331119032520073461929812872295178982451117703283234759864039562706190854550735807916589710077764022903519770551651463156954288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209326672093524453853285759307857205196311267715965633535956460663812156991761342710503579689346925609775922911355755004495468093959419880769193752888650248971124685916195119118057366233650749218367328395749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670949211851826806837103932976818279349090488099268529794978557333715456812291190828899996496173672758296772254271826422328664001327243273092429509230566221346977560274971311377496402160451869335895994334517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769182864723435324859388779733700023743444052230578338504233697486700501600286637163548072142572742363471659825920005995273502863429413906679266972379873043735393795775874670438709507356712455449660309789611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347583267944137194334777064417430687607287323860319093764674529189218392734056524491250586956517611562069812500393153884581844064908193055138220680810239336308565359538328508151852860249073808881939719741926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950604333637217231136979737662537789832914814676854754118971023646587793294524553660846298717097667145215393593629565084168679388747451776846470197056012062911196593927169428782001047384226912084203747363388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618791648972518386746222304165160001856431299654117598208500563323952416320466755350013353729684917467646319413499223744247224633022021859547406463788211882345939408996899586677663701142952853127079355663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135193961605459067259657242443886673098839494804050019958699540877610669138906842799356469502459908786561048152626194880291622037728544043107619152330967613456578986649276023103467080783909926275476450002311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207477826120950407760433388366358024308924484034883541028706147339632834646578357966974592587401134634576232160810423976222516895973476817428512737721348884312642986891670696316238734200146948985214230208355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136486977471509376122562844835142793387526367457072220025676912748342237943660613198626760944062105152371984859747379297406177243330777353802543022189439576676950956672798124850084862642588484579677193561466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199922329564347430329597913588943793800972704425821506927979988831446725329768967209243310967877870437254704049693782685353327799678176291518671277541365726683693491087292566065622815915263350446694975679229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472652351959084416370597622758052733539905727377292458984311346620894693568462807708795934236143426183573972841216652601954384817745024429687378704478184580845669859181675745936300712509929945590215797971267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044269327671783572823478402429229040376747003971346834385546406427071026117530091308476127357563889344495780143671978013898265342437760672048730565920693328169737707720506732140005736755344980895540538688878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589079006223704080066997920297981944092771735027012733684682086738310270794793553022082277521544609273562071517195538748966819084680286066268052662617307395592893243276656082055892649228114572078932587782368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073020986458629768965547248652624284611047366575090417717320523237414075658489932392708682167942643268756947351912174769111157754079997199926682888507939039340610310421329646825040770647705217690955724326859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866880646205847880930071167141907849713393914993995255245452094946507843497198103614287781840332205706946395154769469727677477064248646079392351956543663508307025207982465374274256996945775646261198738629434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150510636726914188760397883197731862657293142180732905509353856244448880870515851205561944137370328540547572214634071373693265521086932227094239075429940899442544459068675741143225242616723435219127825854388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883297012537812350567930508188185685057312332575555424196054273583194479764324992288226604355585233496066809055029052163377847463519347497130223294939655104159878397401675166185936051793389503924662052455112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216764415246954875581640843582125850442476706996938037585730039057901105154147795571791693127290959982213641159815952014586136789206666635321839445791129429493727464246482392154779756157336708957618405753220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433420690238375597658467444988572971001533657025938386098378883705596616566122618812454638780740364377558292593401364517385844624554076490296162202292447917789014243272492456246105728329944276796783144819346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122398588365964149245530812072857084100660761685435166635303413828011338196779122899741266552449513483389346361812822564990534115031791411670938307677687742325698034291407998029191076113965307761804076221944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324320559979983469262326656447019563573006795390572441503981642390821362351327177145861912103281123572699330876625534408941512051799027314738681826266444752804067274640857238015503894189125958937399265016877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668184711965636157137724246154560704796508783129001334349111362929755836090601759494537968615068179085076075662127381001179182930761186299116355745026020212756543609511385690948154244767226073400610373342612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696486541853248637794337805069893455538805052331249498418875730464447331444598505524739865399707346233819398008577304356954761698282658938100306024112186656859802072533716561353350992188595601078815219559929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136718628188546447861792435817101125518513178717745043073536450297615072923011083308025515349518692948497169009917303947697333789565022956148778780483665828348275402301923036903858197885343038285582730067215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792662633854287925897759586305806465044845262391335383426270504308670094670362204063397672529913651878423065839667022625805621222107335411618502936356416166557792377663958604946932445508059036179864427557412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865918632881763011014997372069201538698774186216557820878850289708567829701926958276952394082579589346666668839183588155490694368307035327632079349451093653994509720428367306703514419631552887532148221893259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979668758562594829420746324161481962682888498009688756413177902657691055508025432280312585899845828720832573588947631349260624962718322007318135424395364377056481929539957001445543839108784491441936804710651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938962173187622670718263148522844172794334068181031018384175349973496979013526046083898649384170852934692791583455942477874147581862606722466248117722498568622989744043843921840245603609191236989597824880644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051939005049504958701540034854277602462485884666673423859744545671611419843038357063974266667038555609645239035702010736523283527692067722136663585746080761599482575890261556442866496737256920804685117462670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827550950647597861562647423557864501138970419935099764066765571208502958421155914947290752355349927410085129491938559625940326382025249882249214444755882700290036795187052357627644235584183330712046012462993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486156130470981480247338812569605196772694383214901046524099815011833941450600842229131941609950099644961963307661716802799661459649084857174082378057131294396610368772726979043490318967493232166572331903721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445871244071873985131098072996000054029691390863266714179236497562971925021288399097084846804390717631982983862589760312738181027549342610128244583510397246172600271247264410283930603677754398403846237465571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336222785601987852448078120000922672556304311870218783254738688044091883310482551503395062370353459115756948715844081222535466146121336832914177138712079113256329969610586306388145503829307065076425004095978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552114439934636910391325853497773805380142494093450362761658136895003095126105708412344562960132807039487146758901016641151703939321469890302667266058467350596475274805617807867953935510326849129867665654263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741955965501092219356932384978162258751764655242092557409257176954688605190100031608012897289870528610854229739093968150775009659717371460086115220926226085270829883643736243877981277451170822368080610770774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408724500538827410399987019521262331698628280343884972691416958629503620272297488689849003974147161674575114133460273449742355058780721866552587350641253083245738803560851576626591008479072047704536889750719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553673453065182999775820146575308157940816750357256313082689752768694913175166031419627412271620957829974512595073689499764786513098304455391676187931636640409697787311715800412265552886370914062581788469239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128943219165489282119597622766581435967431904693189707095462549848023495501869231129366402929099667008638784004289044208624836617790643020633059339203224343651607943257024658684668977153432807721709879801181485515792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487629262732360083125256996543432189374507796744529154278947127228947044648131474412422116659008100572172330443870087373605331646830292870055572001906994319987064544655062428217271171245920681242948105505040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911768669194968381351509880852095827679294878548181584339038957648028985092572460862530061488862865030657198657936561579559825729918943289477161896205693546728054418563501846263442674857155608884433767767751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413331195799335404233357735889637805318390934442804922703521622308714944360673004231179796828639051719515750520976559027309967099890200513002263326473818452023997691129524606155729336699654182678756146447436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683683340341174172433613790860478805680045975432893327214060803444750328434411461171909670176253984282266864683881706100253649900743173847000861481761643196421460919937381887765482706997939841539389749094610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112158912678328492646452926571161151465300344961441304070786937141792331166624769640876354873990174775371020182114281421448246213204890136655231442441340428775298118356673485565936917962558531536751079806714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862186439586203091262195374593191550111691331559547339411720861353588405204585927360463219827022407154206140331096148629907590810331330659147574953943653870184306530383427904014305982988109686628793960684213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151978601094092210039466239381000248857808215305396412362630356804450233024794334321344188084314692816183923682018691893983933307825793915187659886158526588303130548206474199238611662169190459756562533363184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813841726621715323622710802784181377459609786557245216534926787608800918807075144517955918932074648407619905173558584889133032806350787970523131676769315773731879594907212372637992597153494224165049186095916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493355511406244664368942045355237930229556990256888924724764828569879277717704395843692472400622209413255549432923268062651006560671124877997880399882214586345295917166624816532287411553275264112489665623653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520818554997514915110169914127116084454009076208300514164618825529634620360873716790190582518946838954046826629717486680083930295126077669299240694352257774386318127596795069437001560625056278559143415124133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679866612332910595279610183431069077020322287162520836119564948117529971327497305978355285212857854784428618168525710739979164485073794630194794860109379383640540030350892499489138010893132270306436604092136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869426066361431450934795793642528207605767366822455612779788579850905074655759995233257680197851647322235734446612494779990642933510320292417061814769571050772801917271665422720280245480655682926562444571074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767061773311698549010053252658070039193322183255176221950049560232954318807248709892249330737590455348878518957734282512509676519718567996529101719951017464781430278133357169564223193407571376783460869671224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343862718373919938943796958561167126683833937598558264615427978133179120578291237899892276277256159512584275400014463204457910654686673241405336586191842804226258216882737103215382122900160538955574580481497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740861389260374365455710313573097870305157976741864883330833346830617761996495333234340591686783886452470412755314395794027884216137596849182823286006692891160507611815980980572296761164235609054782755309990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997271532487062343247393949407436784904172725426574267589518279602033436226061843406548292910969473277581063150058025056894921339837057106195538103699251006160450062319589568527763384145338709215687875803212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003933269758416152741868905281033962277286801457027003189627877077513728951374928538916013451181479091212455428351145074766206145020787405527198310649131950843193937940513935608624487120632823309725631065680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360334694516082287284727522818468777375072298833913187683690263824493488856434606147021410159335537083375926119354381437532583680506869265160213196385900424945026077793289829297493102574748519154758212368427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382678717224697734147003033770948629424678362291721791257397858895723049380035859123639968963121613858310464837079637662679929761566821198465934155933916744468862003556896518406189650209957879494750342134510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432822372098296405413984917686142541135780192328432235662201253375699710382103714505361135215808754432588751773149812341597900774841548524687471869828437164277567966121882258983635864612337270873161639587829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781158812544500275773489756610693699383060028442488304085568975649116156938287828620459017159206618355597055735021830926911960506871136379219891638826470030323985599825852973720675968502122325947960921370133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943287198367100185305221100049935858980934727278261324522255474466336523469026079952018829848657929356433410586192063576580213494971238154233326330818249633020386361806074300789362848049457274765559689769047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535186016897390037051140387216074925657286694144634342819342201078799444793152890807044167837208591403807871920204687148954042965778274232772630067548268392572047428956919167600520523215382114088732406797255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368179786182637137747761899242139647546815218023565700846506246212580093382393758939853525532473703072687613186932612577333372902749196950150840481799877283736652550640271936147773259880890814946394227307546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058561742929711699372987985526865736798162230768594917332186376150773517153378053363994725317379046703857552722373827813588564532376608389812022949751795849901416896634521878608358384118931384728325768648734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323101759183786254056596253994854471076202385234083415014218901838963027669086460628899731583050006054166105211261833245630887494237613211173832359910267154433339809030107675192156068609150992975794898470913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978631154724719046381308270269502715524345837771328888401133228561232764247580549141453340043073513682001671030489674079132204173293655886380819902402504247589799061997394494240613938590020437450817126160362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346296154035289806984981990238158813249007282842031664545864518677871817717727792832125269683229766412454967397152787968043476589576126533852457391513438137845005187385915329634140536894844397225508011960792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167585566502026142451755202310518037979241601868165327213490744741879263046379357019572546568707696490256283113949083065981392587716575343290518298830744220931539456267189136509327785275856141886915058431128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375735033502696791991003945764850313988998040534762079799510355628009427119807714138625374689420067112929037940211050993128817678635571212882205845259023298827844889728557676433765513209837208453651972735662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301752946970492860349352376631937758153126911215712505456493662840461315754932343616114386894155191795521160403279413870405973659682877235554936953672492603352744989288822044886844365275158954689558858907183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091137000500451915150705020857447053203113428375303964506837349474651525431616406958839656960477624810076981257623240276563247145586781166535633573841332037563285771114579477361177589109784495974871345499454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825941848515313457700649437390976420858957317742314576728829679067502992231525732869833026341233526316349020649042970821006326488156767632425444687039213337678948960012513626523547256517022255955699862842510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221231834492419076374715747446252159745764663572427527952228915040642776786566115191933191817830567164653048138101066673424591568641744576883906241920186541022526697061538909990725499842854841956681924545197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455144689645726938231665552509598950410934253743085999797137004258858340304497267109629969763233607776743734798788356730102864713845459287916374901454066475193948993522123624743661317478304868846315160365922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264134662722820936532772839766755726728973193812934194305723962072329200718638674667030636460133111116425468025122894305331125098538601201236070449699785210958598753293032771622679823055107676926800022074188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009565118632607917338991262772072135161752222552418296124339628251823286968625444118623812330640345331556016406957472320383651456635574987344116859941616551824960425979839267816131483180902534507164666442670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780014182019981018139812595042348662483440439211364872366629202063939628845314483748901026084036148407312006741562291596696366940836032643341496371209854547525017736696019714617846451555599416726373970858649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347272499701122177816567984491943322263341503385675308244677341045503274285611574553874214000719284301774473142300983657607515512777962810147220530668174203505967941050980466563136377825172470914099255524710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898010442935708329047220160726966046198426077224783107171439093492897379507505647105380291618749188699463530135729350187320668731150173153109129679486254979581512168220757123189190913833835344710236597944808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284527681893532791356747403227351506890987754721815574998488346694622271194343513957275609331877672157428578303301830422251704963297161229683675274898329472315069749788741400219267006720656772921310849357294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139925339921794157647985347081786361137720014085708386394377035291834974037418351162237004017318826939326308750548756645290932656650302439445362272791708003815785132529023651056809625891794240016387149612121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860623959444184972892872308495579260721132977121372388696986360236829162225464710880621094479132399015406678160289346942821550627212605417982917817382489199733829530168266790617780135336504718863397842735335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563048992834865561541540649512210466103765481806025067654913403327386294169117762638138347851183641056999660949202044895026294461684668551060662420883145374012687794781398595777699039877073994170325653193556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765561985237527447223599272020602389167187908147088670683027939897683780233375796837484716792042056118846144350842383697378594825884978259521414316768984959213193894128750695961491932711470358745336608149437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552529766106507452713589497334474072816739263486222629713471555329362444579946508231979087690744585253703457090077440815341678638701480996741240038378085234273977881746910805353305091194433138730408380430675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806674584246966055691076975969873109507845182518576898000939428637121910166980788517105711446695070312737069620047300356753682352058152491868239083974088092648527045816800639153401349373525471509235270441619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915621939545955585570093477116811798359958427981955643563653093890509419646418892434176612177117545737144294027293771776591831074430581515315960948263506336557238614139208130754146107405127413481388906875208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899755144190511520140241876289786882338665288749564740110724599055379921751556478198091849558767527782808038226298180439415639795617256940909295185774478836515944787206826785963694547637062382066962023966206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764285213215158837171464854288124231224684028390561577968199897855625102710706283793994319073579797536228737199478452103831686685214208220192667231558101173724423756091514893863436665265794260371682892815806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535070641885719005949744467974174202521309472461919502772132372470257029616316814647621846436446517995358777590480917246955673967945537349710322193694559627789377919383406972537884155020629583874830961954204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676982147531337315428622151551318140954149797246706763436976964583092867952120199414066540432666834408196869186229176544103649208078572924233887550618098365912226537972884111201306910185760304983295326942141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233799697074820024375803717921807342020805369357406187656641696077391209098134947021207251972136996423442093054784650692374464904208887326302261563579196063092369916027823649300034497471237794559512408582397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462114788603518040297656960584867175676366593087480160999279507871789131042038494789432860847970515042833265245718864231983999328563422686078834437453092728931460925442990607871117367669598496330621775148848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489501430231501469612254948953383627569448693046741980229225550650874297727580760951068798271091938371422909682687285963219428367272424774439090600368048527845438548199558287433441890955230992659295884828977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737317358162222944554161493578714775062703761924980363844001609136117137295576618089263864679402793656703853057799129885739447837576390926794433365054967707422859638087218703995827147580004402224042140033035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108954239270965425821958485866799241157884478152195574983222583356742267989600980320093548651085494676767134053103434998643497580002152868358357213659782084357326046612605704644092005206437488086840419995854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482810600219159446927834603798292688186777848837827131481606681284808747904302342003771308964647817855994618375106206884413586284506303464419139428937623547427775867690146782289070060926832522503246399533375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649889513869239612612753695920602296900874208347208408331884158268380193833589732243351364122443211749794047668241678096352035664154332541509645019779105414609437498159904457928380288801335624818140726114232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183584207407484465733978384298053471060023742199872117626833349092090738653379590749280892830301072075504724508511833346763047598206617899980044627448033701965550213204413964236745069537087816973799693790616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491990574782803262998612317247930503236377058456987857745316103866706755584406824089105118184290258032985140961573315387563114385477921529836638382158713588240820127783840973623264758443526302816647560799932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326423390945448086200283535262617529818355252978804650281353991128471612811534144603897031654677395258765383844457461103515616418092733462541422179033107147203105992949538959584368857734894952259821038315964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487247848396842037423097589988743878765428415935659735883450609361299244925874676915428045981328158258729991103007806315924817220522132060107714923366010031827100667272664889495509423368979354810557964237715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937562816985753529253902365681143586553982842832417000516419900517643835120057569334304218029315236854114240598680573897377172090328164862383954980500843602353585825546188559424426129289214341478982670941767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799148700185686745544123195735187123793059951482159548677010540478202585390833356406182622252080286486668097631561071376418909023606039541245535703806675356765247266803675176738455646966935960226342580015557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127382574325190397829954457674305752992830286341862425450224962419791639827349043594113958984043489575783324648221652497253318119305558561405031050765485899155255426528862875288955457736787420297703784684756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643672237512574076638075779685938518232158037901388513245670422527853876610135195682865233946040200356733860252055134753079007468945261436163812466020943396881829985725346543552854046361041312149937692163026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473798867079692283986937508881614607383824642000815393674001886257307369534997308367252810149430436456349752135453195195003507648237036184538497563616339744294309886387198988081880867474958317602229846725019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630917484387855063975477813979761471029748052589306922166622252353734490113539862660281419264762937097680131872041406668762554595422292493849462711775501758620213788767600298051574112378095519278181590820663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321077322764662315226993795825381625074119359925754347032075189639279292162309129902590445512172093189661799346949541502186833770152207591130088868902385799152826398678246546088746278526226814247331885885724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787896339821927111179243751868381757621347292273048411090528931273975665464401599108920563595395506226849034817783401638880747758591060473586645607299400942000631204356230811649814551496555130058546117355240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426542474489895459967920364424296652482735068799649501574046214825111167401638128823705492676679728005746329061945617997309444872374670630628346193769263728437102506294302398387471804112779445151821086400015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391071769738455787322413300300055347195116690125811352080156303730469080930979273536585649135747113509044127590764902991938820082621739395928612333657297066464102705878385513189346579626859330479560260115450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886881774062530570060230189829110915340711775171244237036436371589022011623171026356501302439912154042701273039166043485289217176780054435379602681447698747940557159937783563996621006692741927146810896204073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944999168309449469847078063675466677678253837230405284892911730548029893106132822852430139744212784010822979922563749918616190953950922923524038726563349624474469034805751356594650462503096250111859963630240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059683519608809915500540819116094261561779964945557389362335095602169384530294074153542201700885059341080215377441689697655239000700113109469280003444356063607661310302728738927422665249899098159012376515704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417928811413277329570523323399878009160267002892904670034550632113551822596454563655802704621531470603214767803873454420398877573153641972943746586782763362311198646746083171624959380516317910160217431600363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928314383120189325251667689558973105180207091561282127947857682315030996548701378014203423508621889445113091741552012125037797657263051175884455791816612431914793499879371889746676777827243329227024826454802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895875993816037392940818983260231197906051459780384494121855073472344404641363331714829781976698669655140051818454197633105563504488497134223603391300589797173467823734723292305173885050046360256819980627282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733446648052417888060677311064558841428743120553686450754131237892050164182455985291702855298234917568151981749535650404537358800409736931002101619740994088572336813989068523058021522578307985844449884900267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042460547885994420824018091973627117515404746563411804862886439875110526018600763208664032080058809812466828727691582888514535559929721451343188177166455645026663362751571422612127028290235870314678624273023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081207079728796535839232426576733921443804703617065295956729932344168693092018662571582035045922274601133491784768678310636302367243553709325626949823072618631310910501643206126742460867916703779309406696071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128376549304312274644597738111563966740927499199030967831570443792739641666751097892640931174682418788465392879439142807191372281945062111996049420141675675141552265693285969399005410111647767529256494404287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371850584279038953949613459869455343321733883804422922186848247101171485158347106099757869761968160124373302306844692710557893261660012959934985974917184503344610562408400109524903112915131020735366066991425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606244493185873512142860108581558715194193976552610624780925408142475964662701919437855071869834968769265751713501764020035993835301783027817671022024492886556546201055956741577115904728583016542256142005482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782388486067014463296368213637303317464871763201427880067424934856844572688678255255509250061546975828854921081222247668229027751168223695025439873245618612099967380501457521453467701080259152981604212231163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087861481652756934254915758254478587897790042101592801135480971581549325386490211513898577566392705820047833081031935861720959285030983719779563846649873345549013365660629589933126670354255179585895342556852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434799181485403175216153188936016989829712382727329618815135404187049273485262656664081364863788716802997434199218404526700361558020387500409637218865537661056462525859676231120914555806149237446224865590525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311995974256373924319368360663346878883664893997708709923975176942932704315716340505835198994772125986124659567580313640200779332879786511301194767901228493345593727454467773069942456260202388754930902233573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627949450937574975809402297195543701438592212160580810042397438533045434671191438712266270914012615384462773661088651827155664020489973871853842797408717803985878574872168926362934079370551601837140508771496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506394548386171545286329870074344746461465034144602561936493892557193423209623857284093622072055176469825304006432287560380697731469996601018610184090834745280892809833912909149258303651173029967654739251518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171581832063096996485147295737236946479442548250144837278643035426699644315398152771686798446857777731767242149930635976518135953927680687103230458025191560364641845527228861482514597409299719945291059983347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858717459600200884576448251903137554808601794034109441898837265231940718313705379983523443759548981321534240842874824428098988804719710545292339984765517177514410963503314438415742836080790134130163961579445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975435386415363938173762901822963330494418919406597305753851213398627564624984703279184151114912113525010468511900896117079021888918806248825384228364119065587480883812073123231413442333531444336096562719210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598414916399608724055940589740951851845370108423911078235447953897722079752261759973799318017660258416783458521545313578584209699130699520991878609886124440106074119863744715309935103342861637568094850359275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393676110133037840451130783799704331160533262199544257703071039684397527969197308128025112622360077754000513085974983046454049513097048034261383540913445405641341014621937160565528044484008804530396494929738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729738877148353842481293119168316060135430299784836863527731202903029710778302774738958134651942756160667428436070204002387686104592077696567626787819706560612033973047229654813734461913219885892321867439123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813679923869635567492986511324827139460731628550124132311737264877398296514923426741322472886328460210413669666442677281041495943027672387634286066448079048426771915985645126086187040257274427745143079017361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421056868786356840858920119268252437039035251766690092384082646752617092602697104070471481531020573979976815791829812892353041464919875936156322124516827461722779681573302532557352230229683398277994160348264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373131957148434854150415172347068715966588934687947761605065252053255188779427620006779291742862951480363937155624921492192899450678409720543460019562984744096748624653637113020873814175483338166165615185111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904453479867002570776217413802918927623452389391402805293096864556020870747502963056856668723977499859113562083485942647022385403313966555122940520677229821077169887490683123218656678892534843739289398243039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327676209298763615294761022963864003909946651742860527160651172140132509592705592948397361299817981025671385331771066750331317827873251215013278377486502070331355062275581304810800294605171798864186469383014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255027526969519670742351684211910982090147345534524738516054502034488652611948457946739103249460175460659491334735648784812681880187073525918380839036790727219871365126911287379537715995274134266740529860582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371124118334133690860407381821867859296600601526097920430269051432225681436574696554200716104926071055162136298793005559121326652543344723751548317961256407867774243070700876622029181406550213601916638438599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085841410659675196043240179858915353244342336299100339036772618991404668102761485787215430327575243593205031171651703430242737608232710098962149506384969100290257741671365850448982075513534469441941851991214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342304242040017305391395804503405968044825751340555490464163357843816058868602279917915156776991848385745819789813620129705387867266068895188507220074426102970737128356942669779338208780912705267402281903448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134526201769594003458673833978234147321913824997499140658967734474340283580315374798489967619249699851822401768193052100224551085786038469056876636412890897515543665065616506192218185586063952563520434789459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441902635580211053579886653626415101464607119855982928954907551481369440936071764942629103403817182161439604176985281732820882103690612597704683140598765898142685317003106627425740828091023311681597595865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466836256169083430972700699748178242457419426260777097989142290035008433211923977359095594574681566469478110101036963569468678903093375711027620866070878210655553779260881641337529391559615391062381538131481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388084101452159329887353851807306981009460126167868930860243784986072082802669244510981539169597360182132879440792230675841298484903656303436908701425831419899105413985226930754669501999027720119934380998096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838863916441375939741779799619064527740965797692825365348782886469722536557545252280316884710392694299440177441505654108392481853809722462655146890300020782127549450527915436981754966618751347831918657412558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614252596618790194047452875733438892990800297698778930869873399027324722936187651932972809463921588010581209173303560696088255232179700576000415904488179392298445358037974607129470760820065151683365645124128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890317467841882737621128226150437357826128239235832602350621502538812050380876107577923411020066388359646169318157504286066212124025308127579700257872538449057874024076775176118282802205700768033173143733222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991624289946664158685700335897100581727461170013131727201526453957506701723887331443852719496997537245850451851121245323760092430472399543989332763258474199660212612529805661849768230504120572683027889590129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068028164763767861620499087220505717926326447013802103274475785095981537692794373539955990692011086845727615873747414978132199221009794636168368837698006801932672463563313936198022844660290825749708876116126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216052865898969422570963534549240879532449834501523023103683349308340823516829151896416671575047629019534676550504543318915726570514987763841490791267283803179053794039065513432425793133041324948076088104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901016399352853501057299327718394468786490277192411969477667967432169166174018371906560463900076521196114835072075559291017853787705695420746007253475463298759180083020271502977497891528398945332554071951666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379848569368223874903195490049166578339743669860918339199872371947258845288725401284645056630547236271099264278570245829223730422001039892514376074181197679980049611584889031365744048147277693497933519690791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507858085348249079437151059318692320640496738656353128130407910722221357665482187805198585300198832071946026351214279937006940708565595872468136554341671216007026774829236204014529850560212244185483378259554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604065511839707202720208464020439307298630013905543486080572720871181258779384498490437052921037497010016639981519494762949998642849373675253631752188331308710888079788392417704627889360773769147013802057889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888374232113471060109204939561731748853780227314662884160388678815342375391560037740786683286939848348080670719236001585719202923111341735102217455941199598354445613756191796311070401804744803809438397548267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066265433776452183166172959235665505036298871193560120416793837252007715931419035192724580169449393893968861290001191170558851515798078321975863643962234115591247845187082904022020705526888567677675720843301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573319387182240165404389424297616591282596064556576789626950067545766105749703494720985496417221922641518102798911059033065391546659670220214954542925225680119973223318629930128897726005488830518019073656178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249343956105593933073782790939544010805851085381144126655161542809528681170509607828910789971952998934216779462002016998984965144055336949093144156637478982789278074171170977983171522522769101762906375367829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477167988940461720890124337095817160070941224936215496495754923913389052137928481325600654070872192952041174511465783621081106242854180781661949418458010948482260635786400953180380553175259088246744194408371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640000635581746899577459816171765424735821336343905574633670041826313143611418160332966762967600167994205533403640351816660549908972163789101933149352978816209395419682065819064283642662413237059039256804645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200489425440222386948917200466558257328802332499435398108946466293862106782615852789957371136482549194966699900465148330478673621389610739799157349933726567917382050679489033578517034801568487119057331503073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986025204337862773557515550720101605978712174650697369997748850582368618239740596282389906171845816823966993940423403802715214934164580665060942551663306049310716719733083603311809122267282616536491778154547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777885368984373003601431294866492623107727490370595621425875142932668782847880787628478186245956781686625830268203644597885098295089252594417211353558594114239951535124148861005811481337144762057489372241692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225118812756016017915902247521397691067986320928338406008610218467139811866120510377179678586471588911919780820651104987209273293674446645552278333155612798465198834836197608015831317906745512410020867752382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703400695921577615647642596347433564716021855127675264892216759980154725911835301779011021484702267325079585252754842316261589296749128014980057541492894372407464438111610968912792553348665043947776470166897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434293369193737263789168983387513755579102654529523137287857195672725035232725011490885240111221231522395356681417563608279688942019932324527491150005680661906710073056211312564018295049933428178361120044138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762759601990538382949498226841606942370746852851185966687687972298646027571845029912469206489946948977483050501351974592227789428049458889362661755755850166849113803454065533840450925477956483685314132206728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008278150765608155394815807462635927191062286452912195489912738899347689840630693501530580839565139440243232506662242987659239682694103113083415119675553613783985422117921941144956191653884918597957076432673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013324703785938655291405189485402021747743494118074693780365326131399462089455574906039769709495500802649687908339222077306303315271994479489978198182895663978726235996505384508402261607128870691917955348341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332293741480098053490197876511723501392603202828319381375304617438618548707315228789604380162602151932172781250101536609553959394826629785009647214769630414209285608367553697145767446582513779268930034981876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422290576167233622174163859695942855584152660325817356968734787152825385468661708317156789798692079668579385203867327936313110970175090915363971577478546692389841880008598498493115913728360813414373935984087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196441030335698575787971913718747479419890239855764454275317591278218206791940095979448898021655199474910767021949659610071343068360588439806250293333929180504378749584578395597521918499399156656842076444015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098959101629315031440616760330448713108889303292520953246042438715807137411333349675218946784204352012005101715588810140727903370901390608296232573654349022515857159734383964325496828242539277712422357476365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368349648376763797240301315465398808417396936142586717938191404814312622118490104771070020651363401986558245954915189360886020775433744258793923503783385025011677270527206099193802611795015938187100439454786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553862899585037777990447987976819174494142900098035975024431445721638798732593334748433045739408125512479377208382988604655248714452068120314432872021824917133324123894130322035955727805144049560581365140986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954865526065376596240693939127964089260841611488033064649940540746459731482403965686343215931299439370778216002709558712592639380626530906372271590302144540827890353670167098152389832704238400163481012749869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662816736312298905624737776292375576101165400655938523727391506690645767946392058971652286497743450228414035088808309344618168366673715725141638260562684009201088413783889207601230008640272331058740377923680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060712197168339517746845727327057830016504343852267328906604188841138250834136137996198101697052736772471979593261177622344539819532047244073394552129375484996462128287798947592635564711248098447886354857684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765320610164624284605754459136274080249442643024742038723113681403501164916738803397962812882370862631477737109509252116696677284000566965235533123572734471225058493342100065438046715335152491823178461651025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903862440744586970142059022198880684609651517094823060009646570143644076680663727968756940713515678279906490790632772090445245032485757928070822520326239683354851586069314597838528361694563361863149568957512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968030466262226939292423381761474062176943813018164468362506028878688263884862284407686498705054382292580658487040403556257325674952011143193754775407709196207953718148825061663069254831888871623685251554848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402303383876694730853114682295290092852033970729724784595032639730470969287727556674107879212706769691471916296467784842643755418575698510816587182715147495503615650037132073805452127386073713493283299506794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351228235903089741315318724606576765069273120754053562280539695667094045543310016992009340160301510967007087033089628658695481117116447222429564592624702284383736316827618263814545273819011571508952201669555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075397812008218213585045547352157480438705096537744614781134687165655588835197279213185045506835539430760503690093629623878364086670129443989385444418785088158837508762900011444690128881295585567752375216598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551231258294012367477151579026785466343783299768437518167132466395464302078876838451413313112004383627209472896677974394888903403933393477149165560987844062612358122351295492562595858319163624484491123953657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926537717669488632567738508113099293924279731126967745834906089590146797112197545328687949100384969406070056456723771053491890644506528029557447570185785935333025343731414420530358189472502565974199223900855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639017484856330642201175201778857984274579591250260727814703573118803108254072233705618403981464308667013264139910735002441887725563513180201251858081489754097369730814873054088717373474428409192916434244021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297549267427174010931339084400603177150398839717565171566425066140863519754573459747328546035257708163790805387315806922805330698661071761704723189417223854132675676864108506936197728508808999120593229478701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145518825693851635763993030755907074091779176896009094216626863994593098716651875276280612167765599179102906097798876029113129385895535018018282822842512717674142327943772490834468421570946790104913429397381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201688749824301623732901654238958880298757500628310445539487277012493083152494979747126764811041792369032564979086214759140723385699856848993207228126831503709899193130760222768091775960194196631360653375426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553452981326433742948397137157826634893888175852859964321524684920221705042364386297153170378612025782854723968550109472648686527339361327053170918496084286797306300436165421346267661010170035987579790699862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062558859701223872834890240573855246423443911993450272065771715210499127908992116992426409704094162072318039496941688985426561530328072246825542458111142700957323271901559885378957557116192459631233900138923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357832575675472246049237725453066312261405501756381159994319702788365614699745356186625199217747587896680220466677625977438338995660390403628298614827021386190536066366845791514514912966241491896900808153987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717648733877548421668073267934468273745356610801508605743399198621529578787611185592447235271316900900727602292778572040739492840810280038898566540215556333756222914589826405817184880903521959232298455919169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645519105336273179156006459648274765480572318894713984109860130286486656162666295762500981783944574352039379491631861623245084104361645553981702333968280754081606767892350510276470520409956971481930783215993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091846264871776509119033457230778731788048493776544253945247149424091479337073513487876314576985100249674982967257183895783784649478639854402312145464070231609321036055594619547608318410781549758552449473221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005517840370751610615086328433445673849566589150349424052007897413832212149246717980852846342868204470275783698828657304473701798754988339182164436320438360275261130900446100374779902794907612459938112405161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195111952017808096749067049765894282031932459132425596171141643166944161801552406618863311739950687964377815538097222929745986867436434377244602250082170131493699181402454209157676839550131681810740342830411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836118148504918646756391772863305837466512519099517627862182217783739216042843812365855035987768316798876917667864037696003396728064045734525975201932854039038432784751855614753102263637335938463979994511977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650020914631244006805066561821132029336859567547226664660246868542008039260740566298299662282788667330645065503288416293882956258875540969468070706581219805085789240566782073019132006706036421683649165256313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261030239205316792788614118329822645975576534045423461049029572239587533119579619502289460503083569740319848247937503897398279538992068971891296270970268160179994882368515441024906345037933046385059805006893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428797208483664107732876428869253587146978397261888103384503337118151711484715753572829111377136313197782120245684609697774921963796847374969109456442146235274675272612853018007895735430327535505890027607241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638751714439266238114553939004388678518424717587537903066366609326888319312103232072351409070336054165750822090603372016681138850314684644519169504365588661521259506938284344581528708712282931407275559336996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528900750775831818122670748616937051137474051447945461979530174760061067934534837739405521359299881834654586798258758604317340405546011823364935533063590832243916668061210292859293099627572450312748943909642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350609046146044130396871368948867998350878040680643816217724063479178119162006295777701399370934394432172497221823195212537941326027533674568558608844105908511230270606553796894861190333431182933910876196185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550983009513819576886151246486601910441900040538733356712015287826261145314440019490501156417180146235530033460802176758915614799503714673327458150272811272118264669225554441318839859509334196239859455611849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862878432225100374328066659264199306084693616756774847179955538224978574655672505567489493096000388111650259900059937401738666047062621238852848170109467101387683522002537004909446671047557900086274869986075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831235864781682863472397050703377015510803721686394150717589120252352003093644538161000890881305020391693411591082327549299699784135448332296718754241822465520037962279043106977024167654829394976164049500283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090230606750370244720033264134872856010032197236565201590949293414826212299982317332073064879601203797276473155636303760929383734234682091833203420880375831996892409927493635290735649847239275179648356460381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804641206810359198983960987271311506410818454904555799276094354218400671764535486151052824756829626859818060293772829879244252943870854120731025294049832789179127749003152175521488252603471416018195384541767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253618572246844860612887368699927202741626806376662112069290346196954581136434474159871401892116604662265826615905420697639435931236620455287560342165003473601194342256149140320157941711851715427563965172568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346351531548185886779262912725363426288985256854464698144974618924149586366367198140065068588860860224267337988127687969406497029915452452721325754281953249173115066208586652077490952965100753404049227356548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261384242227053753545985909932669673321651519481725345327473336027447258527245394785787049054847586331157183663323591323475882593406415210390728719363267963759284733131612339781549856507745957426301925013613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346849189397316733740473761021534979028013172233791279986391471010573645808824964037793669144260225224329182203596947965229632415046259303763664328408656160231216109902717797940482442374377242175453274369030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925410436875329181907200415759826234546672701573697113335704140320937934512660607079906558687961615799849341095409032124365443108731615863757273748174501786655737939848669229117599204342247600648597600549782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452736325306664402010023201873227819761486866348989132734701444820324293117841009152833330376911197051252511890297082942974883981371499778052781649343705604326005352698106918986588689816108899269920434547815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912737301650176958118619036689779275690467857101810593937314388119291474944356522189626028632586636519017453659212186387681077742091583646909091651827398075310306649980624484927747561884529732947271391489972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648011931593793515239417409041909841257809909038894077942046727049153450002486042745530730683647222075893082199445234721452184282562092914376814387802139693639978602212632210982207735714412941264065376526428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179145696657952396359686270645903720726805879439813400667670141176581252233481048386867717405879736896155996217846549730739340954660431458601540495615776456167344721264274687461408302063879359804284966224722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338247176021818683895300679750212076904388381283562581450125007119027156514434627064814950590196996139040560790673726072411292447199477028384835318633298176199947312833144915968777504290327977034761938062955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447731187410723527945608443549466760792882681935676466658916136214042478564279268156254485063166852683275246560027477652412794270534193482805462670281599245391248739375580940125919778346533655735625937668087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832681004195765377021192118272566508896682467504866699659885042041191615332089885672380926018142811762344795582942880858136988607372754974912130687437421943014866766259691695195368856911749382319697559557940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756512080771456364877728443833156357249683675631481039438968092119282337414507618630565777737794145333025782078879337135523281930667781034744878814533022767115982463014677391318064699017145323181957296401713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865262076294672043633643273505663204112521287225894149976280468914855507597361465051176412579302836974532036046506156923811972132510561806134521343817681732762841418102164413417024917558436568114547977751958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534210540491910305673142107541302357934877234239073959389300436891328148546882197053482680640613344760357465909065646098009717176995752043755635452168504422439082780834807215680031213805137447557386633580661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071076789657653044046336262688872262742931202875173849755421431504998907456461215695542535701520147462658735882915448693671682109726387703669298762703332692676405112356591787736324770461161187528378640880382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255108941846936668830380623604361689986818150462814543993708439467237952819530328860609963154780541105397983173910481917987933763099182400716369535925678358669990852568283461799920448492158286825542660666948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899114668131171194218916017937360257596321853210486874992047347029942678712761333423766834282256575650157489720280343180320624484957230973900571509314538918434494382839737345157998051562591643226270141862062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751907030825327384995555330449578033090259275316352218098898826291159803371125701721767669045456806492230515747468915571710175672403541893506112888730240431443198695865218667607330385490360277460963545019525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217356912288723948021648464737751768189421222071035655596507979484499008271935528147914340403713871720817609031988564587461081099105936917743794712879368950324774186485806481967995614643670824870899368395131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834073706478827406183405435707741216138320287378790378585893274553614956446125505055478266874544550908868894692718598894942344950748382185018434130323620046680700191750459262840838505364312676869803402681158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611157042858028160675162338135386305242956383309503201928781641324922300476117953582495605914530004246447880621302468978655969262925763574028799401356921167553904002699664556025682972369504959099602717097381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757832945136426006936137777440005669930174020113667731787704469450601292260749691106157620763789334504137336511956003290783523596465326574749743528672111629807567585108385016069989693586715225964630570091390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455512188188336519784318535596067476350722161178728735639465655434276140685594124259121417078116303080101925876219938098958943050939682518277130330334926648853295618795266446319063493896492797477963058182377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545413190137205600294567063403824299178075125724484463577152589347223368452680005049057940765926118340462764699835321989331271173271051129387746272008131726320867124724783103695325057116684669339199938383416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389751566585134060455290109261126381662242366899271064904188627001442112873592393998250056580064325060750945893585007218072932230824610825818587467133406733443268051547565276112290094215465561831034126870172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166749642361936898406356138762279595452151468928813282394396366129450138781676590929250897532471669123683482751546078272804451824345375965504925680648532309992814514753455092755527796279414245574405255218825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516117939219104261909284857816139051482314744553101516159178414599947122390516596944103972729574115833974593906205007758070959676589892496143734348781563774420837499914618345134117857213565765100288216534378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704304032195433016472204581397905745288020747285881031140858798747211863286489844734053114604400480011189647421657199931158890372059003146641812617920911940887850066778010999185461909348926691850911899853281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064510974333005997985553203313182691751915919500655848843655165633523507949744148699554593468266676174984193192323919858493142907033972490741043353155071618577128445270455615148720821787901075809945990781903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570869841611333843351915955219934239104565565973100823169947997845631959834114305637058884135857232439459993716084515443224733325747432690293211134055360526090724168837533543614128702342378252708953823576585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992427004704717253332642277426234756632022517984249524982127655951139456814127007662315485158257359633538267179226699363339180668550948028966397016335803063577792061512929958681816023327826828756138695348983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064957218399132431571758689056357820119356227777634216236724756676876172206101521338942884427554638039142982934097063768466511699684549774924842162345498790190059012230711024880588049920820267341521334526194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683313287432198123007451303144400768357402446278097701300214218712351188443907814286457148671303162743814053388576038852946905077691124396402844275392116011246848558859087111204331369833551298317704475439527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001076699302333404507062355822832197939121071633904478457406495968373683599961027055981093432754571822658191627376408326491944633925414125704727893001218140995028817766321849854530856667900703762657705838273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341784549495324847435024616682604908605434986260707695220684576930888101993638860205690810166450518721815005743472746924004566280135244242904323796847683264995978599541876796098882406497426652295844069729776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276461392157117740299135555015167097966196524062222914160997227029865408714690791932911101746040120652081190334793350740933967335438106677644251621091064097827740393472409226971399864193240183367625787951661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239660061747596602743647723341713211256406957304300738718969760826253778407616890456503696412101726055110506318058783071771045716789172093155510051312624885074971257088277608184629735156660641381318577569232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477484904241570447657365745775288703137087391907218250577299317720421259661778909462781073748939672753336694977597757614013390964005994959912477424058226022767434791404365977500711749068727626934563752876279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699683662926085657058390388235938311896147636133170436652976443607494016496971739566002324847531278261351162745169349859149728425780115663540112574883834495782054756513486752535339309492987778566824738322471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597385932001097038400943290848252148607855800720302839262481484210735676894365084782917239431353773078338286204525607937143479890247754480001573891165778949114366003679354363932067762630211052152101359215469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669263994450654928199905402788150706299036213505045231732501367062439410618076676137866141456378576604420749242292697703498450126514921671769633105167672678488372954900567865723978442763113473249771989060076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323442082881450433915073780818631937207838031136417583734875197650793352053542610648396468002283180323476626782438970343828285676740993880122455841828250616588718419177397134842495575355361542835106244832821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900594465251718651841204544327116374524591249405103177497432716433047861042520357940327121038480844643633301371529014988427523779498345747998752815119651594344029887214917065555918493963736202353463688821813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308516503821529565084208247108348556368415289277977777563665982862156502212507461167590321165420965414701229428385457567214173899297998005246418168473348180217325219882119503518467058280842927115925999701537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763700416603065246148266042831177932893558742055934518813264760502991798338271637395986023588785134609267323195158872972924667709763509894677014028229224590936493192519317428596941523665646599511192546858864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987103438333592007520317718713211694297373666504816162281397436919436021979331891137147757928460485105745428328748179328722787109615896826041519103216035886779474792592988509994990492164849713854412553391673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123053605543688879386291448078791005255598932825277335435924706739997269227399277565339725669671524096773073517612992214202555065314295490874261705335850333177746025891528937886543076661397186947435020469696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297128725620764700238088330825578637544806735453859876380858476365069526736280986119900402679811302046101019445980359274353057449296242273773395520169158005332066975513019731133703912561191330543297941699192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978979744054165648056210083302860547301031605032014574051888761984535029699992646579565001904482782417386095401791037025463814362445250887029226639233664043519678003566545443642503625079529648921390656484140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705271001157101716377498833787956568653934426611954407741443992487423206042266159771478006548964334962358396221135312572898201355984815657020457482109173737866280253930704465543688974749065847794940959812244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258617656838084857368856902370922908821222720834170089791292565435419407826899305573151916990118070501895885964740481390462609707341954494227067754033537102964836062032755617310215914346844155390956590974654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668672502570336348863158571739711603288212386637491874566260429531898520879176927985320596870827320607720490875624976239850639187378806361073721159075733629897056657468837735159852306207834856672673994501972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786163036697657292746317600522624881300262015934469599332301304443908514144069612949095143511324043728180378030527016147459666973182339616557550910094477201123130169927082110437284835364658022798435317648760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723488153921904520156617192555429987533454002381109748520270053711471238979747010158547538626802813231702862012903865851442364486492865523581713720293880175294101022520285691187186079645010876529842532971631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581640702090623127183448482230078940409243916327452408745667813673557003975514278073920034353313212822873286895420618818832914189042392958293492930594813919419210154303243567447699243068489549520239545645503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611248907019198792964232474948371863913292204033404762728529048057020058877226359767881747157982142176417664349005485153222335130502004742660842602758111430811587735785368141365683667133917403160705650379085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192434024867226850967122444228095486209670642071460389235934010684400475369638649751359735833109378326001909251574431920376122937708905574543628477384533513756498116412336892295228886685199915916299617867208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655318046152798030135889431096643822247543977162304676463531802819964493756623711511605197875870834292146749800015297141091672570579693615487561571782358311177101359012535395568712745799720175926065461900593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427554061455972705352382673571102318081972085394860182205482689866360286956681834866852454461440840695218263328048760444691900826696762964549075457223692332744166491319556486439945889933877587009880543318639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730396664474157472658465478065963956489535819557003579716689122694699271512844864772273981174181488663319289946594706008921131898942967719657048618527686134236881500004172380028297670052779227655408485543334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957716494850629815798946941714282042164165586659907286198493849175480269584619642294779314981223836415385570380897890076139010323497179696325471965649122745582635413234142436435745947492979278569607763591484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051236442547826435733821329660966973165353542562473080902881776113373972062983643050540861940622183850244985475668721260067633974373153257838354874824409780973933614873102023904533809474159776645603137681106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352432127180061053085517170340536033073763018711366935321769842826017611218600635848965341436067091419977924640972114274495469891463555482864340110401472230084740058971939425556775578440399365701263770092330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433461156729170872181169866958713126106655810971551555696334819844224937727899849001691334065013922558374525364458711315377496428451540053640421859769093297900720083629620246732239658837413175290586626269446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858136255070281472074410103228385697701212667932146472801159682437711016405882920381222982282550564885020009031599084096698014250159959742561022026318361725571114913921443611018533845568286070315766448605768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287626912567216947228774367226907463108534195440611336084871630083220781537154815435464583702594850361674707073027584996723132809601629361233574085051675867047032285987247398086473267940394913937913084973632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830422205470143256511942687039719929342480639118311471596792882765901606584811613722944199433263769016822243435592607990882034002343509905859139297715760494727077028309575842707091369770437135759020267227121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561144970850527050091628929604984739830597708931412041983770187000638580784426177361278758099551595038466620748481572501821235408254337982027525680745741779553025894681945776460653749932699328882053951518474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862593974252934937239229911260953527890147415209461916937523396079180058881837850668857882217408930223767078926490559017835733029049861047566240884046301744209164607927659240335005213697505366658033405013128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330983447962129663258116376546648089007112474028151564343463108144532733971543233454492686193074483735329034242902270632344509081553795123775716104927121798185353585099415538718219449427086114969262082228311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258673382120827201102361718132916281347693613362316300055518541699451237030874717693475306380949148828231811460148473591765019683057147047139716805417120760854152779061484081543527705471113866193551918255549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867457517411964259554732547129988784413376971744782895148060629750159810410965179248737254241586060709263434511221805151576805039523207983907038445590802489767512428111868311223535944953623328051564284509116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407914160424989736396223835534265688248924903094013532275982922676180213994468018996032067580342939794795005811235633986972790236701977628984073319861429708994553409037260576822344748869201029764887194618758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339155160459482487027752402656030802416084063358310499159313085394742690732347208841191820248470757329115072124544689852685531159985111793938108020977347381749339998889738565369940387595253362174823947154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243216564275828626964629870549437086474634277118529382480439358216019860700621711965918325918075744936556603190574210330697537073223014044293913607299742314821862057127972408432297422253064784702228772898891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832653884068529837501961002674327960832267660898243739923045838193599445520364710959082518991662915931963986386099844252455919444237409807650556117505789614643591992556426759631196277837512874653796523866525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306489969675235237780133601715355794152722674404383547747834615417136108071971047308860237450312138900813256243172049768868022829255024334939599178274676959411554430985036164313163944257325967461417580663424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512810696188302083787791753142473780066613661071255613809568754909763022481825473369577744250136333465052729624195150307001629823433990910006155502494673712884321972353399452938067223419621701616343292479375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232171528883297993911294665253847268640531873197932267770276017871515711271319022168364169453290451952046150335534734469787141522447087707084561412083149801106667165207465553671878728737469049871627624680530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303393597931272982490188505998207530280581826873453626207698842883892896355177269977552708928071198383271264164981358505660929746681941433220376360160317023864540103804193375688745593512383982760565299379694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748938593199284467970505014658422277826960675919777431422848983462296380957522453292343592235130441203459096101274485891405058274767759110361971874811262596027245866765571472754939412055513362289169042638208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957393460718577711706111845170015454508099885004059315587509512061655456314620073873944332743915654082222655166711498136135073739954893391748086374196648093278171002639550259140477751934720526936117215529192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550860024480112879487089021875287345392941316146620881482680861416201591554912204198602598488609910010089355219860042743405731012142734029475943567269776285427772767597954067832154999870802605838132869028183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081991473747433681644982432526608166696697336196953321277769129772635798430150971081585627795241014031219725399500985483700699157263817493342319841708678485963309129366977383562887078408002392235782310361229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539145396972670386570317296241838979235453687070629105358409586252881729281692471046395913765433977510330386186905416278540679671885645231462534683464300203066362430077280418391505048399774639065235270047668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871084408225150247944719876888399200357379260736576854930155343026843848388931402721966820387276849040650786414983954838623991443271003548414285714663675814108685756849749642492058856984374594686574480184934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174507376114064068959882929944645381868606647472888991909822960178929780473579124796321869153687036559529444334995425160580908304927359408810125128045910650504766496267582224133933158027094209234354824137545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896684699154418877209465300703443718311572870573206739875957821407940736334236084963832333591790227712682630327694877532004680184757705394343007951196667752439615916630827808395905383229511272338207550744153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582983600451889734131385796009297774588061424010459150147820679739436362919935582276023675103478275564866271218825552853178253586010351082258145026112047470924017186025646900684617317679905734901100727287689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846067830594826014535968762159670812495532305763781564934456525782552293824962657511707494988668765441038270533740898921040368677365604542858451695031402232363375702641796577852081754489246557099240813236655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214605557131593915751341973623814379449788885811963343728292321966320335780126113077010857215989820280124527014194405510821109126282616707080627427106208073756237473911790188063039151918982517186661375757275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829222517897243132948789737432150734138953199236450940330089444177994978550611469561529485655311222946235263060515601499246416469416535817179065975346477474751894490338863769454910133847537957012434353283214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205589354592147513994658656379532449893948072963453595989773250352242536697552026259661902239113744647015156377494681734403794532885953949267776387559086479724780886800681723558531314356329754317660439253838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230385070066019921570688871565313698645866717928365735525658627188144014431714367937481059691370932121680624247162372966171539343995336805414569867938971784889101598603095412935298746169109192523809742944551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736019455981528630627612626766355773597675811384216123733145970872986047138417401248888918797133273636262511311334676537629299840890377895200008539399763584744281979857678072104896345990778015426697174567542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854238873901364177046945395798118752712159776844251179958071694546686174982003891413675742529519923536302864099584773808066759416971558083354262399667913719181197456509501421574144502465594282308668548345475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418951961597709853098934159069182644746212429836075434644624346418375891269938235380143849573643323589088034003650356294509895717318211938753606040337502573311825257046693447027575665724602024343580517617980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604995567100947130736251175046568288749334511080043705700857207322750831967368410921087264603086269870121760440904028069794911183964366052184314923073516315889044454805679783225559628577325030639073862370333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514290924335273127869001515130558740539553595264903028131275892668785026838027753980878419695424447075982652771476368013445122704646965861601405000598135542660045553041256453856489931603128055964697097277176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328778606907005752229163788459542951127123641629041724925928703351812177724572063474441407104579870116834865389408608793464288581405323722052203338827824916065507514284988950267304733868941466577151917067007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985035172181982915553739405244748816084011428682985421981541739946151944675665399110862570266172891572116167086128078644225968780654055240840769809262297989089743886487188124121528586210714417131468273941512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986776730560640185899053575123002306608370871168691475791336384086232538434926718606613904668433787965167900709509607700445453556313624051358161617384399700872078005727973747669733000195181571665144821563406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495509471695416706412839424517141260191624738270866976931180696097101557258147853194625746145350397626055465125435021452414343298249241381217713203403237186715206273592816337441031547104639631117708345350154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003842233206328850043254208492159442373470693012469333391888763956241425406832442961396568624031641284030587825646523428183365665189585503699094325953094250608082468414255314370373906651098967653980873587499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770890413618963981467936090582948205418580676537456845215201141451358474004249171418349791085267557869236460840510296405685471629114796051660512986011642189235847067744783697916343692203021988896384901524172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761221295204640268425615740219898496340903610921847604312888296926638081824774162432149180517457605165276714859567236058544814854402132907532311933789705421376692598941462443758062516153217997346963717964554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627890695365185495918160282523112964886245466247414987802348961990493472819666583071475772532015868355470778367282575623992435546393774544779733829602922395391013639248424579908952046563980451217891118683684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152885528712794692079212206720132052809396452263227086822123147580066031785861841069345045525790977739566180123341874179413622157860500783390345912525245404857543632770893637348137625065838802048457015329172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786595574070960443029786093090797207307496070108155868501594809753435305272934116171483174733966100517521700230147990108690345229770487759840572862989418102152969007455565972433483618503777150550860330111505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382819394680890891714268678748870323697423698254355888832460845820284023483626235883643493266480175590460342821517219563963495304300848416621782715144945954090117944885259504947265569119457920367936540376113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268660889460469293705964951284489740485678003585270403993562604898282215255571996993525794545261740743270859891130014290671400225943274690218982995179553442748718111642117429343466185812595775017541353411801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646782329202381824767644909239971574846690066268487079269797454361050266597917187256545818722599567184718953968963563982739116945400828677220839735648520196059606726455519342925230681863759467716574716398510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149878813034739889489625427170463108520020308934976074748096952314381448595233628759639315703476429000525190908752531657407924492946317614112816050060433236781492170244718104090002523572907450940087541909448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497671741806522968128144535963077468399197436150775560849014830488152662261688754968034628330406849672488458314489610898411164185347246790495429842336879295028505356227380869303629064349610638902734239816444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607177847252459461857489049305096509795390542253069212360701703837910857146983022577248525173845914560791055885370470662930526861151496257016777566050987152218931199319086080409589327271465200315991180436374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881942427482290612611565067099069000096462286669193502613356980448499030606977087917964203449470664734358313049859323970595890765212059389769761799954609902557501292529505175646332819377848179827289216268839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729623985792356457676844465574078818475328003206204091248503790790336969679985756985481175481183866884928262489337313463656209623643601760475628848255746879835231668920327581208311926727387077628308791944164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630499003750245934859600321151449928406621582574367422744755010639122242188903912068857149902812503322293010196259879383127482079514574663690869011102131053057387506102876258248047297829759703788665270217441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791586909108457407802739901018725834025027067523492790845564584723383879369483932121937056631027358110963094423462935733587439546101715097484176032594835362175167124900482878786934431786340777895613431476530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723167037735800385888201853606077407859203091001307366861533205143094832971286108366025245559269732660010329761411191743742767827897475103029546503081040604842126629274922587131958043783255838142797282061046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934685050349218586536215611625607737850783368139484509250569703460543116890143456562307724317804512844149902118799309048288989666196447742952614868975745732046817013139309051170561296813362465657670327529978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235905070702902642359376892174112583357143985547271796933471669904524573857657346363234020958011223544764441723301996887594841115885919388026520824126254157759239535571390099406192578857624383439670825359850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094003588621450841939451102129664180301025071900414351802625839184169633428710839244701121728427303277470134379841173301244691377597488172808378086328358480604109242208657677287522099632400804299449293049868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264411241753662668216817707694323814663364194867908638258471341439078678526625420255079875005983442086433532034033854071697004858954238194164632023644992186969351976251487589536447516344494064161989416711341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545427521942413257040263069769465401613548546879857144294868030391018441086389041448112375443712853308239937328366819623130295691856958566274113770338858536646227471931672503361104073315657007652071242407975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412363267280845389400319096154214993192613364112255536011836627327838526740198754781876353935733949284710295825287103809975654397325671294875582247836268074527390349037453906581151941957264558587882696188599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791463076230156987779427994708000666933390808663128520372580428713945527569344186438283216307542493576743406689842924817540762456348435859978947995073584089721127260109801859131872698582043602154493537342282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053017704347774479438672703930952508071748114388066769440408803370027622892294039495464568694673656276512157444272755618547272970923160771008330327612046440019501088255436661183840175064330798789601849572564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142741416483679764597496100751751595807391647993195111269366016485848293907331879739169087881956186743588313735155390613140986275515212954448771045808977219105827633989474849102783391699522543776814394074186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867957512398911906085980795618977028617046714020263900407552116967903967972007171335597714677918457136111494079667124629229993314776342165412277835748258627534990067921119780603078857495469732841964644872481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061123708587326294024339098198386808979186012746208189395020988748831959202092020419914311024328861840438672146984472180588274776118855314334547759499157081121547243048811098267530850187927122360672654247225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660155812138169555771358420435493478953642023389746495492766853536201317528657055058809440977166826187785035656932488370061916868813257698988921537701642941547703528005611948422472985187487774953546599864731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867772961804953661056181453874745364735629557600768283850026539033822042359255398293284193944942050008998872489180621128704903913002948556514749543445752448228715834065454230746784942749309634700151432631241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933869699220607212055074846983132504456790361979375114510561099405972270610245531643418423159313539053072773643156367264580132267637726686186334792960994124327001774495398230432040025449854464125821814920560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415435937041294487067737642712638215283791146308614599688138515495896934947775300910908956450628879874949987918977330055395549969672231130329962237357438567780028847289642133583266974725834606152803712627432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193570020831617831857934695550625098741480850738372620144835846400353369127055621195890629893555627791783990885764956240379714308839097111026422589746293176689672234040127892499944003014646792202038304216198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364432479089882752945116320992753074993793818983147567944412459596372625788487798245921701280055758027161475792168773028767724142783904590739127392942678843857719239680522994034053347073573334518367251554265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170804303305567072752616774194630606087015556574452308746558396124050301480579106145816309013148988618821079382747513047641248682780160190849678442189011101839255967801588844050853939768387360141912309606008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115792487312650807559597284727869968278916268278694911524767458519228110865267700981927943533791355350051468985793823713882735357271717893830142216485717141029006997282353232884846219281128940817079740244219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424234188318035210991164028064348473544379832000036280819097685584925611752392977416582041844810908951268364708462474117396127148810193294558673819432508612653588373685599202590781539608212879073060653335449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111678492935846198418626172110925322160685253881591855988062776872164381835160495538527936421090313103607816243891471254331653700492954357313119180428419650321615780904252013312485605320360859144817671705497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652862252463592191750130342843933195491229727926976395317486223207878920268445083520412496126094785976476405051344616457799579741920939413873112767240579405410462075597015741827181915656118320966587774081467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615155399799638954573549956164209646047474598537724051945204244695155110576014942214459850785628980052001501442172360303944283424448708887381117569548458688101588473050820293605143013701045069902681581989459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569609725905836903591447830464096918458265475815349450077651607581956641240074336117286666057806409790685068438390865501366034171566121774136535246662924038527316315842924751071820737619974257005266362873424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765490565589220471496205252104012016698764453817493876153962176209981866956434937752040786704550275749542082834382652727990664040463085556015793541580183887088771405230057777479101336075834637081603741403358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468387344461018587649662483023535529068562088936705012914503374712977082985920552405187831056216521322461228800347547325593257117509161765941664823949729133523705438862724084837055281700296298090586508047949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383746866722217035568908425034832947667841503678368198974756263607605617395949590453787288708801196541878924765307820255412342152755546537527848511642193002104006960154442855007174370354007033593565053986517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969616129101048127932637456731347387116638770998454206702700296011172263762727267452101811865591052586145338819701289911963847350290174000706806314623013080539754577602872474099097506917882619283197164721284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351844234905871907533729443395924091853528029572010383942096233427756208747723170117527568724101224530281538795845096348579839104519213186349569030391256411390596412540194362929494919213530717153448409684207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631515629833544391644492580570078010616280321022019570475798656581168093324230005606648967369487624261724101199075962069434685940406164109057115534545376809232712872353999074435919539839737211013349491656927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739389313213462585038107319503867448355601949182280516773057685026884325495890895608141995075256518935540226366100848161462038654464771071218795163069833620214074612432738560733007417290853413714676466208233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620427354073385310054699395412546194734721703995270227035779385851296836644067889837465656361354447806668384669765176614999618543989623502371767110274089091939958314514687236128713849724206908095044223678551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445196940348840924340857899982771915123030947380554030823155608186071615834339556172810637331106060152649641481568404319462356043630174317509207713049088685604727385517309538084750144865176049756773607833154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210555067119131632626527993669635989238300609698160016708813443002039117719163070163778003830037112641824146014987041714805662603384977517560384954919157914179295368495970628632971745221494526436400040116851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838176185651558401746037289782158565908314893065117791985723171647647241893043153199908815499713774207210118331968619684944051847134805103762448875818172772334427215708740008524939194933981030831999522885426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609226777707479399801422580866214987191247013874698956765809816342407951357037334868399460740014838188091091227850498742256394710285890361789248694551999049171162317092974081951721636250623714208252611907131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129355194227781921470074363737351900832947336873223965494763299282753183518126240071189203456588554680950302630425192198797773744326372609289111090052198687553722810530557641476148246398586371897727977619373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367167320358804701580247848646398079995767647079233106445662603373073615899226178752674260135360072952785114473129927914524506233402909639717592321979580111914669928396066090546200798237452122450360169104115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176059785281346639469560555811845893980705011357516820680694894385529135088285447348281517609715423859522132730861322041292330776565586927909570047843039556819940159642233595945502281056543779954708624485590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604428373891251918478198500254982630358510063410344376334073346990312703558308011243548158661164679904704099547923812878971867801098152049788060504766682036629672509369396073136693374720367243003189666204997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287789461226566830643518956163899574507722109451279918853244493764877890405442242334709795872652176937776370796040732789702455829538696164126324657549210448122380893363807649499671963486155406090914159497678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407600099970695816344792336051061664600778755939545785813561911797348472427564395444690018537030388994721998308058834058367204730105933716458537773337382618819978607406745090629225548899083443584470718683462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112788492250107404670010024987554980352405636737156440483483522461021967504033422680901960919183676975391844888981030769313603684649075185192089980796748495206425281503988219929450163122444192907905821755002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014423391034366190912117514143224004338147146495702803681747815733992552787675813633597536055953938401768676743047462011227916421387901627178293633202573540649829431595005547141144066372802259064990772972153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740376544106287192417866624208821464827827943811361974467588435956400543384035329212785957488140007374970832504832785755627877386652839778888430937242195945555354368165329371988636343681790751801961273509345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299800800499938017991534491839141860014917652009555057429439030632354051291327228528953318386128009002420185920683012455768851599860366708821440361799497576930101581684048963695057071941618192298699854618110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237001187722488012189973986745402327831011155813888762532752346656497928456091175839397247695692295816479170577534606301700752743140171314093470826207580556365138365779777856686672314338997158540512838175395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678953450868562901848676091677061998800659230534436395717282508884259966392897124775740130935543924733240791820455538176637235332220935125401324815902989026429742592787894547500654994692121246662066260821434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660983895888100292388204924622971332292970377519931361009803526705244868532263744780463843256463010008144862912199457156447900994460842936828479652744612765333244881103324202517473862223449069723675537880339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079948561699112561646645110175597163799499487451735865867708404716844747708499097699794470710722164628013946275459233625336185844576023868690373404023429979586621889714158804575375650785042610212069743697096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534297708298332077518071528480882833701459951573669234089522074675311090200040877667734520830410725541593900525760346091208140284177420377130700842437158672936059348066492560890600621400735246220346694340437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229781571608629573746845665423600829004305765331541271689897462285133851076706642751110612635113161609242434665697007093299521780947571129105148114698468163620994912119157375909346546661760859252499642964904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028052592404865762846714121867299740770308393074261740145003221049726207151701671849128134389819559697665219201908137000367278208254808444077054889497735290074093964115215928130985243276068247595225330802824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232507788502590832634143548516877220099829477199602305243885580448738331603586172269203006710187874260694178604070699902507500493233626929932140946580996465314285894029505075993837424671389269904330889696893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417672615156230212428885543250193477471628043834193928479334861222057352401287750089411533192309765082818111896355024958467106845292644845557427712134742858861286553169290497678456625964182472669277834400266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024028731490423374710220512254210599660703538395064823345926097124425018477808097717267392473194016550396078670123047395765332806585083484125260088946584673119157291745742241779493354979891900782062130861080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654618685966633481647375637582530295286292373436789494660108835291361314666383280711983717491455000642982081727450617511533164317850686055995804144705051451344346613543491323777336900047757585040469935495286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835891513010194831142088683249433148178023376509533242995528594436834355197273185178049465583509919430937022568193180246844883186770873093472780380591552502312040642236094709885301607583705436778374146441160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964558842665486927650484032831218209192252549114726640636220307934550660398838572486005108528078987509229541520536859292619877916892215922052205519853201479261471085918843186865741159637899311216099897611097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800188040123088613129755420721536964927058014552750216146780869136607498122516216343548510063344349103534205339346945249747695508626569362762126109157268918512773037638397957159366930679492986483866338445448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352304739202146070349331910672726512771799141383722670503004288951549134802923632392882422079577308657735443007871499407960630325769589926239205966013855541803419669893243670285104942836217902424447773819256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156329516389073004275682540019235888320300191134975232861300651097876929455311396689555834764370807033156924647705668317087358183948045388753075171478337119507687976407728846486649791823184502315381055175873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664454613419706588440480395862840116136033685481345505093590314165725257605525869878703051193190755363634544025154523395823365871603816085282185007141035499360846627840750612368387644621458919217791425930064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728872035678948696127846918029884000770240461416843570964611623794845800243691534462319297027637045810546686186489200648185788447046137629428206142107034803630844111678006148150239136901396657580309396590441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113513984577478320244883860219680767163316534986730347454013999215982211167111512544258537609167343276999040058449743475905564206307694693472835650649910777679589265079832348108401822448911707496651040618759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351515284197270786143219658284170693904968157725682805012202075109236346551769315157232381050180225855175182478223413643178816520685066139422626534469728935978057557926078321667388980661251923880001695343252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017509351851587985050694639052319582925230975140740525459563140074366313653185988575773788784190261411868954456504216033706478625262724708543417597795006926490269511202750263095436740580164721315926794537943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546609026761822474718012253559968132352238667955973692580689597530371264802448204581370182034328690863716598337757108583301036874346577411062181431765563396210063858316746748091887170773765355898662202949987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067614277230922294728810133192963339978185503182934432632206469801012951704557043006325015625043150836576283267412300204950639717367841889100514252530524968862567387384777966286621649736240288369309617354373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450482512081375674376619867964264129860594311283000540888188123313347297473121267444431186759432091066818417810265573353262138773747375534578279041511593132185182858877744177229662046913866020934969425605364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072156583993120379401183244802015567141428598637278598469707404755436182348158796011413662352454806720345614756939780122895658521622561696712983690085390043834510362995911887655548585010382420007282573831915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374123417108451112727160221094193145540157999752575970623571196509207796535145582849694641247127262752026385688988076835163458821474438221218629646612627082674226350571950473923863507541211664830262009712767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588091376803729575334680677935046864787458770737621925305287481361985113857578454292910766542928340713435022508828188929152445277839874721900813143807204302072454679317587784666266568465288615076884031223212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223303246999116657596635615488804049732012975600952659882349602233294960423551178727855292408028587766780633702288000221810335470733819373826226757192925933563709540615727780572441483111640428020011737810453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785287232821812125034518205954809677227766071310177860343882957331820642358723699341009810617234963824686830091332565344923468406806939017473532015044406113834755190428877540607758191617811541300399257403786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946466667896123429109370338793251233773971388025498350706646550164356596853145826507561070572470299837409048601724376419814227043148037384529368743600536391267265076156807813142004122411959494039297701634281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622509729023421402721191693803271329832008372850667961628159235828668657609990441599158720394183682247309036694969071774570121777144672683511194579923576437894693565354208606297301046730719822766077439302309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366747623550697882318965569824146502867863189211312240606180938604883264517308401695014208215732606429222886911152502549936021800510419326096907384748832391402415585332601152850704306609322444248252414417460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337272642970668910815358484014909456938246216847992970706873787740628928325451342260408837187219903835552674722094123126765963381557250244846112695927469752381449321640444689895162240069283709586273806888336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512704030545769699668455358471455918192837712462583521412445812027496607847718105699457043360508168509589453746307951839500347172519484435994948544685268129735901906906535989033569560310064479682631204573191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759643211557534396621688271084036751192999600088624632199987541809436005308741339626929982076296680154880905235587186807616985560604341753925240496799964651760002692691655169875265250677395085130408053884450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711076717976789750115428087230391288788699618678930719828675499197432627093410002685103259296326881852414895791244327648721801452982185749771429294366689378364382229658591114179405184942073570645283259884591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224224882561677424596765412540331784498838411137607350077200856972776264873652783389163614249642106308834930890332084877942864404972226828618599466893437948513348559058282069646123946497574122362831397733819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751716501781032613174550637765770978869597675742214937163528845687419756069536003933733202065164936970814922958343311631037274090986625747050514702272309629622876768936937738712390204651672955925396375704229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747320351938281114420925467393367822925849653220080015263180291408646888248451312773062679808155954764828504172711392640315538504058354882187206324982256830837811447496727888333200287176700343696901126333771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918079399611289070751588545524699476508217675677211646636427681998522410096521305046508340727574484966197616146084059060741022144497622366799448483777754612007723490483468047995536374920022287112718513560661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158240117595659005350270640384087071233412549043005892552683369109471018856806309748638940766073009576591462156505019760734488992170674595990100871084361834433277876536825877230822334434543292752645035082751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561598055496179934882234043222837656531886125750264078045152954197194195477977406155462426767143364705108681554032166445251623107122601230893710475506825086032404639086714436907732441343984928414678828471479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472200841601908600007880595268182669131384173418199055901058235929020135405146103729259840892444057996292612098298196317512145353321039055651854357550155063302303939832174241638876581418283754957382481357953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924596046798855441909311233298527184462335677735993334804074703720532803470697637002715728202307305769614148719664204255727504919503663230046513954181407251089307094439783121107332766875928037765071725136087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386857045074414321633904078029992349058144656520449623351543572010554182060440262989131818118356521480138655484650393917442276899832095994734532614851533809088184406737269357842931940850818005411125012034574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403015890891283903969068237159676228265437559056160300204572745615279459651918250071334871565451017527723448508700166716220881347145595773312518768056485291054073928022211200328627810564024398003807019056977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991206217653774823719553245806361501300980865044242529347835698514942884633840196508628261926818181331453522710221617868856397961804255727094019690419527822189723711576046001639909088872571825104688428346189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182483077491232525668847561695423934889778461915757944227708558205785410061634879826139855509192493376344196938647024154343282328276845684142699438372354025409393730738046343438282071965531403267158470169414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199927230717637308136423894014823262654705509038419616639574583687476267352525581199071918362373584368718343059092217995449969222330034287082269330565446768367767558779608375718328106825559568543168045747689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589045907602969214280818057785601886552690999279221547127089592401794765078445144146455171727245484769416076624783260657354138944619885837567498476780536983929576326602264723992041365216237363614666403231551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604210338807456519949324586116048711164862799838024812539418990136377273111338342667785325923245333448537596647162083385374122635553089374439019515415756799424532380334083072168419947899681242688846165970608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044670519451569227393667324976857391603105431148168922251592576687809534620488181913512012841625814721027809659799919441603443841823262314480816732189123799465974694473719947344754614472906985885420101625230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107028369067651113380082719704304519247809251178562729103526279169742580684026273075841902146284409178984425616298673909100537002978855069858231909288554409934577175078784925479171378543226314655666153587021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726125552055830024756665571711557695597207311136616476492124100074325367211171819026986473496581301013671137322293076821469823309586260175527216725842477594432158344832516677179538137449644406567381383266457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352118066229299403801572610103842829608898746065630467985022929902092919324617716061603848014225088691237342485864417312671847466345121490808553212758118947482517859401758447229142593819966479033908751036666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700628127674422229911882799813572690737854690911015568104297173057788424763853740267974152370946246394346051216392451482105079760326859866094008732341564235356676663753122763480101077045489051032405795659667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032088677174121934951466676387126373728461160408770630158376001115336492121902033180685003246663792217379792680466363761955836204719574558817255112000804199114613633955520113003942391597535667411367022325519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487155532643890833837027738220743145689445864371754121066049337745424904700149039594657459437712378972800584293962105526750395663214923767298140663500612023607935950725002611882298817024409323060665400972298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166972148362616723323851117638972737557228116899199803995729374603221728192845340933258441169630406238300354268874290211824298564512457952073479846273461951045524256137362994330149839372911108705299695191835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211632576859825629672018289067811241868687845973133871404187297007119198677012931062930969498993548139218759288048398451387407586430276561571473351835440735062553123436649600531091488130323844626520435136290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280638614351303106384443343133961969797335615232426664170663902403623655935749442510383568249385430663695656283813497578319090242770499094451411112412302060434223288925974914382315759079844235177845411287242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855175914891622511780705328811704597405975986458300800561032233253843007509811343101204508331904228654685877994401229656165638908159592239403439222600101972217657362171163599025757529000338660227492594219355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705756863997454271130365918183847178081808417520100655662130476326752494668205997463936880649990764134258089308204090236323835178306322176172064336320110403440994091584051468783262604775680407126154842603468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887050874571658713959164292536144025978402908713437744417589566558113073762968893475271737113137790003100827293871224879869141242800845027251225463527219920187624235080278447967843370236807361439928590481111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952883689113746167315617024100451577570016037783703395725392613540532501146574192248012182431698530353639459885750411326222400541097051949162925743792819168762049267568477748603451383969467990943530558615004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353528434846388813323043979277480220152961923554860004734273095078678062530767364333228241961324270565577945226606569501618926256269482380056950336491504711624285796896829089690583637582782838928955203632239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991608331245276376749383219523349563178625842213416657482628877447179338703290836250399594515911132550505060040551933106785402214013928930774710317833410559482918371307692456979522064140227958467058688577578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238350663573235272550298747371571049578276193935635016759283674230853838573512761288261732009487808731297810994013720875321879621767507234310420409830054307545430893475609999670530062600893958753980300478168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486221723123631665072572186345317410723976503826472612065862723390028195090885740960057687874591353731461515897681028944673460860109973678031561291557189237969413783512316274075169456949086805441787597920036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891779357259017863758256938063425044305458827958137410756022875844478109654276517670622237069724197918021522914548339562562284607838662926681060526376677358438248733782586428850121233292472070960759606827560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726194484844951991140281906600326280269709544871657792318799155265031123235536396866845302430159619734922623522743230536042233756064177773162385607180504055918235089414216126043893732003497532633969317683963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590775472041875168042210488273979524827374967425882212290841842673273540506297473956251860978458070132276611517332515928012500661030784565522793390661195546769846706931144543416538587299991177255340758362673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594264174728744463849708875389243654826954256770519550050304857396719259369183132249952382903951907875007477419288341283393151436054565549927400340005147528601176491368819754058351813010642819185427723979888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602897098844835199959092724761429273847611342739427076465965860996751230503243760925283745354475985587192797451354560409284463123838891929763872245094869466433164585861170878840725956634464887728389814480697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350151086626814811080662676444881876373411910463014864339513331694386486719125305119771222260512927206628882836514602219447081969546319782481806230642959193438031910707567289113034166693906837665143733400982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581397749077190782452979419561688697223167521045066713791920865389367499863148664101700444576299589453219559866395809179418510560086861372835205544642033275428459604284332904254398613235909889616104911040370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779867534863300970984071885291772936383789686704544938022017157424305990922776633024297441704500745899447515007657427829025938963776349353159478320022542432672518423005068820208254972129214056337255815811271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891865197234353363957236099480816817397403119030930451000439618069123447708555149247296678508952198610901655248983577004961920373861655837363132652345982453199510591605837900039799695177706979524695229836760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676240154695788064729619266845275111600959053785483163671245484867788201725205463985586500358235002021508516423663500787760715198561452562649515910555074772785379815406327168195111754102288929837822254533675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710407220499663863587129905305552702841046772620212744667454521545772370823644453357064522514975678705171948005008025678246078181854875838922588816417620490361129043128167483207669348522857760679348464586576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664515098921044063818083056080401370100890741719376629584442169122790893283198267723332127920076809166102683872384324544206867975603948267365820673451550426763088181585580393191617327544295576436516201516644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854520418831280199780334878756588271058702370961302747991323482258137696121704622742249610167337547880106340855148662286995691527162633501789803398273644877428231538148290013432567888322876071651101159587187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874116541332391556510890877525768628661680719210903432650301463542749204474931246520147323197577036120450117479398628215253549720267179089505195085909795621538912180564878996785730688499639032778132294015207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256111987972086693021284995016647952381706495642735155258468462892001418813857435106708068039340064939802782040845015597431112977796802358220439971891827408195202452301617599479708280586003288928867410624713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801631652547472728540411178250031540494164953211474507549665480231018551844742049336821498678673878924957514706902466239047396630200661578109357920463627713503946978434359174142643778031190219547522692089547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742248960737494602029485127985592450773793569081333869747037415739655825885737413490358278143407462554235516439689046077958386649966494450747565796993514935135973200133033720811662891676509869480729440329917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192092945253931552743735282800482345750914485335424049182058302117366937604973842272159134835520404257616992806428547140193685561411027658280857040342325875865694650092023084983082678432727748692779550406611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326586975276459213374297141242070511225644949907914419244483283937913804206362380029700282062393180756192264853973949330832519708731384581198570171002491365252271986840831840478469364290251112927517669939886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113430317191685263553167352985363986776163506611968224723486403409681038585046067296014761310740240074265340243680379210684461534197080808812207680711064389058863421578528258228774367547014083100311384298534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751759704682954025507967730984443179863541346459539022765743203518843111559754635233045235505529285063631152408117678464547141327981340659274673208354528227663430595305473430938175037787231764648909649104425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356702782721083355606446657522809805862870333075787382108211292102103896165231228487920328037665387201958205185618250144240962836609846332252841101574173614882341460287377498491498459046298890328492560839573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974078126995014359696494764149318504962555216944452855745294807232433027736555745610429660883569742530736111303108238000315853873628688492109174918033905482850546278641000131694719989488942095308644650267961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174223305049530615852479196288967594442134623565193122194284407143097895505598588624420173628260735051163846357111878468347158834906233425883436142747938295483412634174168826028887355478166532383215407683590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372296799780048719102034782473949179717197672625388495281730513600892270524308556487450412160335515149310396418638089265951903435019795036622993710706109803283472869345415135967181506297663744309949323695704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239327977083871847534799854360306617746854816743025350911414225363563383883543544686001108638480214792763158479351071062272212328900030400855510346076806651955216865671891813348506806937700390687013762540552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658131112658894829177348973611017473924599639788237708464359325646405544663545645062781650789100006035789584714117881140014704556579246847933898590443560951939559830484119070859683908269696463010331291954054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115422498928418293096801627909990143910006516066465476572330384646243951138306777012416199103093992894039811606167420760338291759306566044008716224229486412092768005484026354604602128643129686176048676854587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631654318097855782577535504957177981990246125777284944635352521703343393134364513830425898151477362367919941816883285991871572172287651994703142482487875964116310081912766602885664731096116466676711893676347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201993378711308294933902544408454452831107906717557815800938675360038603557680639810642357510997331840280685077099666201399383021570574904394911543830905615830011301410991395832903258695837676197074489191132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275415677573385156334096892443014061797497537174425664734934545792469679930110261943376364486675375610876916130436137483304794412259526124151489816998076810184818957800383257633878043531185697199517408404042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400898611215629243641694725431356170181179200559592854391833343694519194514317154135007420063905060716765819058242162028976968440905524544700128188685814354954542055668983878624483207521217410948736474109157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540821053281311304880926255044062395575903919443171415265275408089529865726307163407322439503799871488151262446063128138524107414359794085766578525169438992746556218058869206623250449370292128851274592702137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056925069858183739013507639436541872329303118365816863336447793290070785745106113991480911099712792943849391367015842418969109386238027257645216678140223613229046809772487782686418812287799343297670716387056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031950728149118009595051258134475715705546784844362377691481917998405290667715479291174266933488585670881394734484862143811115954754498528040574225069514647200842462447229932157922646721788145206482083027693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310603687009530872724102621367887069726985697340022803635047552368800495586973590390206919312830707106179135567674215877257598221912943186457454772051328945878273757752103071194255451752885836334459358005524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552465464357701017897964163130386749523961082890325772448991862299651984232782749959589340831031293267661027241080737954628188076342698617617033100934680083065183477132870542549962326032501161928273021299349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168416908972295616067007281977661083114106186927435733553564627254143794098134638322862433641334789788909126415318730406053172477381035370826694106544406226612937662336325906138381976319401303989855820948209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441390159412568326794263957901827825455689699680322317815897782256576138716770132148021155272767311173416531189220384514736990231647764759388060160755374833823285458259506291023936001654473539429828766820737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665456826305546193147547187391279239721184692177837620063262466814563224968776560280104550069682815286575425982348340092647101283284306430256976526446941350270621458319110491793194143493017703487026333460168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023938815248759373715928383266003540642895354169850619922353038292186104869182552690255749889319778472061991980501797226224763718144597964137138462079820908395882118704801556318520813430516852374158421747814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598388409363583559011857427044826650563438421625360498340854389040285430492689930661353029562440020282673436728719262079402973506179692541012917537626608253968221806216418124621731189673347430942208876706063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346870673908875675394424482708382508788265356558197441663577849241763188148362164412222323635499389429907840921650996112353251201103142338355065493889092759611053693980830238610371304756676260555830927849435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539306741930233427583650496415686353883449297026988302128385075011730722531947412188603060660866565477142449026181091509558307427608294858110352011070330305870925795123533892215724742478567167678835897376761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646244585226052139312196299705782550327045779804485895607020990215344669537068428452178214452386671046940810750616731747856971897942787887160528345042902212243983433906947676464131458180704818421658186036693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925415099694766465468976921648614239235682753185096540881335332360315018454309181158979530096088238018229548364665073083461587537390946753112554261080409659275271456272255273501217657824322012822173684540188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556780132121100074687510492729215067733282463405433051464110169458015239281064871651193748496284714520592286022164309227073291131485055146260876549103696897085781125139947748938328842659805612121831611530304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299240863180418622996944159001484453489862067964505307736118399136114400730593042057496786395373172912778358482156291480030842989176364034258219775859099886154229150648818548939194649244244270734606536628241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734053637410860411682122328032144301845079668191420237115246394822017709314272988455433627298647398360676197355206465441486062065827311631505717724208876556248722268292666020371485112146244149649995152029735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950221650936519124299129890949673488691609975570841538563266979992872310669681200387350435700139029251245561252590033221973074262855770905192682914207816015920684685189496026803241645023217978454935003686853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590639721949203805628767882874309190961540686915212318936278924987012453882907430838160748627389678774537823637094678891160341754045508916975405922739404926662391204064685581911120898761302214445697256862545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592515016827684752401634734415535782918949921385910911224831818717219486883865713040482947774244406010996901563835237827612909596748151072258291813299828742705498735967748422085620675206715994218091188510214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885128243387268376641020767175712661092745822335229051299485282816135925469906691601850275940168162449823038608801382424988306996391762309396134854599451780067107822551932420508739012679549784401569898875079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492492127979028812424100884088477837315919361320454826303567474927756541385599873032159054076295143637885222986698185149670834860527446526449817637532110292306259036863585679948914924880896041265110733890966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211910823094237289686802203474395932486237694374108666028201747655631949510872258892022152498032458392717242795866773783806580166137292977711844665025011525812407307096301804069407496556849930872630421830015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579958685209671195632358035567447058723268627928206036487179366605594411753901808983779028084344224796870885659527161278836340432760800058045094816137624175734203394779863032236738284257194060583547437838904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837773206411466170259542085088518051290084316307150433107539545541990796465090231644288344740687197189354667356494568123543049612988845376092977089319942146304822076602353982432157616254876128425412106161133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912491721746410381867136215145716495073219848969572768726883643110536044271571542891366815712744283321333976334300050812739567187482635046210393143243199754919580909613656257002432016658070951887305899197870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010818237158690133941061317832929792041099132745410547130717453300472338395654618716344570340185560471813815780898159470368494257868219263636344774282218605964247457947217015002581733330227320473865732153469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400243370326559752936860238742696015916450956508885490208984849887625009506966763593812316977903451178055406673492287980647697339913892073568086405247056322186738247850716446114309809549488092473731800719660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359440100633227523057839938753032550721678007959541067981610512870123532518904815935617217032398625299239141178571556013166744954143136232251343090938117138972440195123082103278926583628502402959049404929415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199757974316901535721440668758086865545248500482735713085317312441357923209935819400847803553026661789990340016450047094910138334017722946299265642334547881046056477140301707861814478111616247962553239244068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939264307744563271909032088393518523660330523699761313173348345268257728496057439167155395158529563330081941842265634997617320668390993072216558028540545869711890122196602406694608294227814321543243657610175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305225048439168577534548195511374947189521246181415239902153365851133525354141116564403339910148171603055960643734286803239100314070941113262326323998396995376192271369735001483985838849714481681517149745907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860065608371404383030041343474639895484594511269703337758329055336412225359275249734553483337232586257096338433420359664089728564431789587613518100942754520374008880107278848188959516723126211891250019208737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432410553635545255918421354196865113739788666309750081425643198474037759145878959060984574260788578632023144025764605246372483920243154704271119003189042040333817000986422864341807477777798344255598930892290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540932085945466756234080461501354582155086320722660389340137673057625340655516981527778559929988241946426651676877611917362227020922783360525077048070759071803436335707563828365968139953907607270681813656575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986827177484782224634903278108854631415173718143297928832562499371156297157373901158363108704486025103004969469142583869370651203770466308242164894433580005968687302148524928795382422861000736420364967914869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327913849384648065461017890562764563556445267879731766008564598590457594504529363273229140340624093438516314025260021020853250028031418098375233896395830762373673342548118934277189269303398284120364951771760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484322902983869628251487394458203910940653280188754077209490747861179157700171903879128063762366174401440452070229245232045405762806965793085020398121837840206720250120266752955313083494353471936341772734063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525015924521197659754590876950206056175781935910774036258357653600808937653281370843694390227229865322218288437400138825811162971553457567403214986097554286886579874369009497050979860937702783572233883314539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713724358470994861372658713025494024495738558899660535370903389251145405558124569294137888271651990004376107967257280599874820479895678559388584994834696519493089781499727763473305857071790270935682275763063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904580838088498088166626185358835592420063053024643462899230820307080649410730415675977100775239855868675945731744767094556842689038531128494988018144774566505096148989915176299241642878000474138508045203295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708678795586416860452775357502074876714333770601191294031585743107677777952135902613080828983248839483209499884568307672417592994303402094399322708275483573885074199171369400498798586194234462796084144473566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574905637200712825448113557834029016048517605243296981355027471470526354293526481366238869584898195167904761247474468008477258871394552736710887847508425688259839636830667647664513308234299538406371493965512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607928674259528494338989676434365754823075754784033503696537687365498022398780119203544049128826835941953971843647255409053142105566632073204638848382768379261055003805739537940215136413662496749353732410440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152741244657762616754360947097433564007690414362218068299355151091385565737341194890321845622044387715270048211012761208140782452649886361038326508480852529514952263554264606718445430426533826668610066557716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489756943146572532979956564427538102595666725587611303086354595086848420817023090377601073137106234293378074547508237856054947987690213905665585892860091990456026032063782729076155397038311018008449011214811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725949942661704520723269101718680689315989500806239975869483897052416122301717289403904669984942721339295681261610046509028456212675739414392795031958650235048110471685635783540426485721275402638812871946209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970661905439540140651063097333651381196333165949030392164270853542280497980267149118956364251748913441214263615547808921452836708221694025987112632114388529939169630480481789296298820112380749013052942492948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147594346496028833289696608150563450566093781292361334905857805509456421035309073601958446371216507319820156424220132684566877418323310247319218685156434120327170305730660785175385097069171707917252855117436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763012791311995391762818615943038207783982432617319663133362063793496768750895240236424692319045416738623583604828374392788665477594859028920402019395937706567321194909910433528551798714035020307605578201914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915964431856852057882350103091076128060445704425147997589608880281259978623877435496599049296732208449724434582435036897803651849099512142294015669174534168383090352847796430676086115997636787204955057956365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301604529410281797360806895495240360664889446834853573711706079943054719216487594313141269759525166102522909575375509509337185449000729076761263467652916646455803715330602055347416205556683808723310114567060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056036281543727967628831238165774375176624564045783704964856909042818467414341076607549841146574215334379628252377393517758770399425521318169017399018616421413543927797334708765973694817101033181863768927283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702126264813042808389337706723982286543417317364814245629661807931369532509112875469498015503179945166912284138446463087410279878209558773461766677933200636161412998361123878526984496762249494601622241984818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681003715498121545591770828552690587827462680189548409854806477673225930833646432666789519813230343847805542571189332448803371027660806642619768000401457681926141234214210908378826034880398715896746918681275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252730570778056160659161544235891078464655473695634397073722178185912301094436923139522030101136740734570595261330293674379321204061599708906812035078623541278054168265823537425938569664357627109735408652303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579333658452377240996873579532275919009797415517213348453335786814228739938519020936782740215599914204564464383816000999065053718814849381608655035722706417743866297516789666554999878895721790262309084544806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959446613534398450142761805422096598486710994408250815132392521360695106267337367922332214259952302229364090476645961545055948420488131144131720464692670497597490599351169204390276051574466773968708032478040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415494510628158872485140345190055563466615244737496076611357787483740038862938848861019502812807817927450349584057529284529838909157649132473101056333147813464026504626291567537790921372478289700319632596891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640416033638472405464980750039300245766107146606057194951091402482327352669122149601607089722072205462881003873076229689062152629711142892734633921437857583816799570965129751212882470762293756572134890623618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365337515374779219624955179692200855731479445742882259242287677732128859806537046540246199387296499359435632302131108482424950180067571893986118972621824307783178334458570361181609413976344651627256582886168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147104205162135621754090487773302273969806564959009456956985365843208356206159345292542418929161730522209793524657122706640054135392126209537416070259881312679566674617093237174052362963196089365298444250743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503854441441271638476726283333081895855936476006163524985906328874450325511377681813053346646699501547749324209856865935049010621141299141773099804599788653998555997208865272973882165087748001986686031630561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212652486267716599659132457154139254001538116996614014497922059852865463119881458741918733755185509581187101969241766429242389375494516315947724531101984145080087615562644078821720935112593426184468303521073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556939326855402116655944907515310397083246234459570196856432675680385445193586873351496819597696008201253799008400105463352336418912796054468763570371065141356837155124483618491925094994141446246321784596766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023303482928876260637136445807371340101726992400314099962898759328239973248787138226525474190348822177498195455707963780042780145879194411890770714358011030266245429362515054346165151986079342385623906645515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027450548912822404656751683738409173741484373181971188226411967029514001048449736868836048926288540745371246015784688794778131708392027701850083959940135078751064535614615484503534678749015340275140901834645675419760454833086921693902489806750922992294071550692377787826669912301589909380813372850555299059934716784235078673905803655389520181114771552751613837266566870550325145683158295906535700608065726990227214337914923752422195825551552739047664151524230841309327935561940500532444145395061094916327038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757149771141471427950829588702992792468332133705152675643942311350262877689034464663632184445921715758792411319963298754131201832522267869678996413293411317636653889683205119163622399637364006506242186919822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747254785968298124948068606644449351918303748366550817554225733526851403898786503007040289933438197230196147340864828347612607301982226861441179898436755838915900846999131405413831939181656430884349788299151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360256626384138952626279302130009966196300323252201313821884482221538525312767676304855187006831468403992681854876538405638483192100247223191661009134395076785551383704821428491510169897533907897563233992177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457844880612478637738826410208618024951305733883694158508782319709815158671170951738802867958015106788044933902480689099052919532844669682882545529207870809050166148536753308133690700480133882858546165406413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282001878480529530447698632263662782963274163701153111823408178673987661072812732577851392113807681541894440417632946304900618647807598912642832572998735287161277418336805175637941952440232128885491177415065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920179175139335329885885343364499791300165712868099995155763688357969034499847234260419431859912204658274956441376367770216114312700143477161201646483213292711825713287910584135786193118937459532363102391270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244712460141784967972824936614589907255008243499708909680963641689156962089845192562671934304717145630443239981556886935433726230261498003528371665135912169317838230979648522206285418847348693935943843252998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447336541276334027058454177857748524863164999917048547694843205312092927399866107526313197643376538029522141637423602372218506779113887258057677755437425357442389979633581971403227793561397447071194611416517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650688250093611926107891124270988122269346853198517066371742046809637665572893641713249386443340528873527902550868995093761512046498450930848209464606417794077592727351875061493452818176751710845023652044236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364807646499016637843748410973573009874973387215572695976033113712883158380306249032383304861952114982623586673336359436081533096204352318069905867253166796719897757396719850563320391627692961278450432509302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228796675492741413814600656548508777948994478550508894914805288265876884445662729390819614400683983080524037256950641143899331811663770163075193044500215661609123977876500738743398612137767631637994991603580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746574409611518650168872167815808016185486410808986322233409912474922580811185326998795736203036360120248633970529467124019239868886269983543109200456227916998441698832120180955945505348853261754254953638515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668878100256983906871131921425419886641928666875453772443176144635415665762871405535364287851801766219647126689962431948273100939741710425905524374968733303659687214601889996692802582305000250494743195788736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304864955870476420387157706452758723677080818059040842352377577575400884687756111665813925119356731909402096142890110964899571503972071590504247857829641913981864645698069003883646798367981012376946322888360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163795087784593437287864151446387303443730098248049249554003322343437805888464426565167111725408902425165680743457602957148128224094784605585432107534563821848048375625891575170601371468196421689717760549530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821629828304937569597521339743912031065212616962292811787214991497537254721293068703850875650615027522642033730412161623496397880994352708041669332272183593224279111657363092546649671249929614399075000097635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113435638105663770354879809403265266548458248684582906755643586324591807534607758016958399758064881377043434130105968843929917931741747428671251433132551775956673912061135467364831151979354208615472228327585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045272776417201122912290611855951275066506498354602961029657475437590695555075101859350758837894692340808844242104044351784510184494697766022432572757633721382667328318485104191372257279900302301951988145702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126379666906266962228804105219437555359934786322393330880742944031636339297431845742947964530484812667242960554778937241659254754257272948183035852407989706013833901921881647311557850526432810671078304253827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282518654578715415505437681721619494162439802366970176458516822418482349498561226122052594069468684335582880004236042671649205198300304006390821604948418223179378001878971473265413916596941466285446072011663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428517010190719596899622216857242058270080448845866160085246854711766440337454171697257316643571299349388718199291759466318132864866184797194493997567376889688942187412505181286522654368902847895239453189075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517833405829363143893747277449678965136481140700231327461989829246746688558984335554557604277573762760912058048480271999849553952672342626971751222462169690127800810984444255359151750836095039154280956032294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925799843414159079094047612707383047817895510947309066257504993635142278626507467665960409187273722547794729752121567356857260978856646457541013819301847821233651569977226361516999711623081473538687445595345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704172860535162743180971964185158133463861786405808528993261626747920282290077980614873787741173358302761312079602560784881890468622896278439020499837036853688102771127764916480789399444390409250759048332890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035878450430168811021442649884729717744959410584520038230125316607870885990663037128041215289078551534221312154711394784386313780256937275762215857679289152126300066971699384726344308284630682783195321247975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066252450176922788520569067359008431604124592847480566894697818276779475588470103788134571631881749442899892987167278685725466553677372831124446176730408752350650543917283196198305056380900140711890771221329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686684335521670808965836820495433367410868993443622970414443439610988612701962123616829423893580447197020973891992082302323146423505671064991136035773195638847191819769880710058067038705725015301906153585559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855107153993891683837311092750205817019512313117767785184487776872680421393928603421323899581851327766693655981806455715585403801215929712677686438428537188809179099573080680102254116516429854798597801200530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367990287717942890826604259749491147707142297025251125860603900529602402545826248325755757561216131279581281215685384085591627805709293724661243672058886815767907693035051789575639340031112592979725357775442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728826595127539727333686941755084872178893886406183984600371686896850918522983446577551641562981490543467626842114452483994131230385258051848680195708892261883252235536436873645834791469035678722598255759755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436069326731670892612617013398426718889342124987556990243059505953676654027533075503094906893359337655573217538335664890410728780373174267309618140745156207212598314724574830121106609479787962949043813324270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841844138184923763527714914690697433608081450429276576158754217052493940928386373294735778423424077954882095312623534027550350571028903943133681481995153566109244774270469991167237898955163904637498396603242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074718298006506387389892625648905439739686679432127054939232744427995717336359106333484418514695342981280896868740832375408026260594329862056291817544122229001840210059258435570500116263341389111647224103293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497109253724174743013883031797018441085704513576815129153624429492503752616110118373210046518961467826972444261780434649844070818194648857015566472912494001832315747489212272150548567617331055173286755555513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435743080561559465242288193127203292340924903397654714651811131459251905725804935151124366891654022600627554580176117435281431489499916146718935238144336846404276729538716752608133950987596207785727789249855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147177421148043213630941487254781492630874667847895245556100534989078888984592118410223597827373165212801974854134198697705439538874973901457412211904805390085525475177691827060709796771265972488441968233810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062254609303845922309569944746489959435280359572812207359002148467487609628497018798980716170871860113170396984354371096843517664924795544202742247063771600035752294276137432881027737424376338465481823242545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178046249932786188807671330925433892842895473399804678267914598196746901983068398922634392903571857330959662853884503112265863257014951784436813918535839204296433758389492384812217565502103554067105827726887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391497616190334804564991698043894828487160573309708072050466548034875571233312222486247330163998671379512788679864381025542560425357927516241316245495529731023645919930113496142952218531698295710406851480382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440085956246876399514014714572246854340128078585643043939470699712197594064592144290107129319140574265334713416412866451075856458812395114011779550807321636781016037343376015731556349255659393736716561935500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031317607718012390587255347242047415200161766602180588246194966487460645638789963150712442915388404232450756032140477624258036526092051914829101027157745924142628710445597292699956501128606688546274875718766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589928945632553125425344317399853694598058360286745185081053313047647528537628745709777767541307714243002325347404093030694218291168164390391655747003216588110006242071852475797469805276517097274515302509461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503040166429701507673885504773832888178731212460074527612354176665768817010114942899257349101235646676396258065112713396498422824502730566937089237358164609535611643437505650299631516797453409382353289997025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658144606359055955496419820113969652844393015739310520628308914921806342871553537005900350470864609635410978841060965660343653544490617007078995831805614533906504770527431566417609721517919489283364812866046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861699621806442015353531790044765255822727670645936350572878042757348558987682966892335724288086806246324897918958416944579002959286322888293828009160324606353202382231247377367874061794090104138153305761028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333316884026997670244732749061897363345433278280820774402667097781782078312085726344560947085548521426584891018495735031866421748229856734063285256420887466425340533950450231027544934290191600084415039849520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442205389261099549442891463675389578760558424841902583118172885021588583788068989305945215392813746540887775361004235101493108460765432909460867969100188403841622500908888374112448306461237752331765454201486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916365374333951451614111072264561762822599124788490992848729888705298083065245993551737408241133677579727233568268033781163575499834766699082383781455439162155128563855768188044803432132102939421624081354802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579386079021129320328871749951452720450623958005426893173481835408084873470938873886190102136217565025959113514421270210116480930930374941672915936245687860034660224003395352251424491516060429976479424234983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500100320811594169604357882471847656444135133850918620897857462180539472705749147588858463426651824146838798580804824882080550201928877634902053551585624001893464332426863663411740303122342371725194337451401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076071417857800275876080483325967588788531809595965814816008065212981791958439859252951844584692724664770760915168517463856471876221491932156230101271310528445074810700265024464178587243567799221303996521838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501440513057481801186730872375965246520464350934313039666558562939251568103816946666203136394399173448967139829815627411988262723510952512218217047506862533992675377978466809995420421499113435407010220569268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873547549110776112694702987821125647656814915666919095529367320559577279295129820907151577300917884779633743002145803603144778906200771554904764805424270513167766893532669437359097224008315940237583883147635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702435874381211840974392908362239891253893167318426595596595484958814557352731191074691798283457437678588414439809369945323260657259969758824219293587914543693491043904226378176755732249873147569570134160414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033253578179240687001068616506202782368106342928741450813730609548908924744506622773308385268109020908132431315118495335969689890391031708643714328426824906481266624069267042133671604705742655313824243422085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360811160079801956068213562664092459514059419198886596052780459618987988978124604450752043911951087425762535033742853443599668025487721129385619101220742965112088842954685544392519090409345969976232251366844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608485728705025403965220624984387807914212329203806188310481723210930017201914851255372112309151571901612713740653683546403459090175169190773763122126257226586645496449591237496183719395515196650457314903486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222658405359526390985393717661971015878387327823837558472442882536372621081866574074402013077213982940343245984550348898469160893504606046029720752430522250508848409813445599990758681315475222046561457662331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290376468444505822472220213238638855714513234749820349966040662117777729786064434146736621110648053316143070546516482946603376435620929127032409021043510275954039706547299792721089618396731508470303622049840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238575142052254708190896349914219443174041123748517288954308018457409103199946112805564334422622895793405173650295313360283143297024936562201188073837965968669385630403655424493757197421024937405701936945138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645713069651650016227778852738340725983559673970824046315259176738042297431785283156494449545036956401109369855817985115027211915917638004829658130789859470397312065378020322760344162973296980120590668246901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788499516885789808814050968676482560815758716892137852614348240198670085959491834379968727493803924399001240892926764545234221922075784137853342487883353547493246859780197430738916781429610504444966285797198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109888930622886966132631217557575864832627968571141533502647214079502359859585276482031363986556281374476129381484774020225044508591218250956247790738896549452650203707851005311569656220298499374750861361904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051406820050230929661772701854460037043301432345251646866456105217206929060367202733353961577082848882372881358894045344902269945387687846572485781928755820170263348795417825355455575490682500699797395059504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987774123819889586672711142729583108270898639204621803453794556243397185624971271409579259619230781884045355529797774221068893673388554858810722367687848593822515403544099482252905928348478013601350091515811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961776991063339146375805203581547030622952772170351482123853049326570584461131965622545238528606444933091816747127236972720295002626694938676067390723574413268607147813063279625225213583451461753197073528090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023070223890981607615311099288865287256021794988663396420618209213160431768011778154296636735078724191834058059780194136413801628579298183208684244469747609594675465935139271920270860666700964469126425789697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998256456334050138496655764029708344806187866968931216351339668783136235117749794199305482289866190400647154359595792275442777794396672633729746627797753573196084347249181190210119294392590380260264841748444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174112107188413426878788829800210711931841547690632321330356647042801998341625726105167041311684938677002775094988441085136931695644486075931708354676736901777389429731545511459227701110360843055771824121223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791675253063490066523958044028984353925557848458072200332029250346597448132614017337334841522087264985836723648805643312830469305304873539059684897769410662489968164655101825562769089233065437474773251574823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830316909605856347865158364104095218542189253938453651900094568218823512196785349129074727334576190879527700714534296428857778919797005177373318942564746778705951416709501512543632545858505909277772235744136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269975061123929065905556029980618277579232119869045159059424907676014494433021447538110788616839417362682473795362048578667366194340183753995078873570769569736334890609662341520330327366441684091559726750606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534230677837450373992155604973161965453791841362376013666098734374056156461634598523847828523319730791370198250905853269294286401288966155623665336680867967626902193385870094706204085027017894505168178682770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669975884128896586702428755687731235900349616499576082923775226893655570763541340826557724889024357548539752579091134201798302611534745174893942282388277104497423443592282036621472973991367403671012159709430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658446853172976638859223272280239229572551621704395377986809188708511955501483450065354205895881728190715946327770613634760904731651841773200177627496686192983004847842222516625268124106031714365194567283488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253152483185016002550353002350998118745684013978413245041292489951063561883988605939985186066266983743068215608935364080372210569221706210654029033468957152390066799698439819719944948847363799265627137914408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082804253485451549448267335177099158651397207444535596290620297896514822799643822846241004949253809663171584947464968773242941714860117757925464809222939256348473448497344768767897255186768445780419301043588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803869359050038859150041822476926213916322211511707329740757299950592161419534179545395648258069575581914101054740858366976388974854435670380887776225342372523668586252868607011120737664441770347592390220540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061406784309559634661183009377235593155008408188204299011125362549515865879877793320160602302539963958208885785246406838930603148815511881851063392801380688294775533868576870062873818717550962023016789082957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191228550875257012485553034958425477551119231041741260896041764530473844861849598768824455494974223707962742522613785956150815270717355225140609247146628770765759232800006362366178185182014661299689732045067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064599523927669172889510347832507317813674423737276438574252177536186049961577845164056212512007571126869254391270548041741306290852654801964879811114373415755475499917082236619650715279722050896985205136490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462873702904040975367288613066251380909350984914309152013685940349903629793136440331259011869648801208786661412089289781050701755926315932894759333535558539615357374864732778846929005148375626964569271383010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004581338482133838010714011937050319998655891249460661314089799465045029166977232883060195184978556532435522347947617679257654458205266051679944760722705502604025380693054988610650921746556588887301788838412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547926161961736661796689247300318163307768429123981774002938069046482005059305672109704707235857627655971528668574058099115356058690572447224208349859427076514578043398793416795768137963620833903950832934495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836108550167244026493529026929476241342582563872303197435078616064617695101218541063220308171661124148867644033887297576584439522022196100737434541485089168713374426783595270561315212526207386933218305935658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059357094307672370243890053453120967003508961922242988160876864329829397148824960412446513280821124892241883314447492688036342391829666716628224156781839675243796659674581169914928136901450227978013597693138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937493406103684106738600541100262787008747059471065864514391969805597069505565050151233936665890571733133644764213070656757319919039388118938253075210882859516147506809468839245740011135470274786982168621274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665329718238417396919865871333134120710517073683417241234472371867249415108427049615549503795501528738224860538460676720392875868626261698438228056015875786683092512230401599897538489228360095980752159490258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328658439340262938268563715259623894744717833699966180201154788249913323652215956653404857011232582770818862150130715779346002743951689275243551823962408391501234739246686510022276735154153398174438062936818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502499564681941064704071227311004215441855491231634073401961809074987236703389974993439243991658806512836679056416957365216050282244885217573611331742947356357748308478330984929574305730604504128402971148973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610749091640443078052777297700938276873668269280836283467725910032841281289357876118865330379943915710991731308768414829814731674389241507081233304663866652688517152287734958086507090211027130801148807052510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097380223970667333178847121742166237978339505084945840564804300591120184173005022419629811376432555086259936672979212123968336262543307920197457555379857786033399361139731479735858804674826631905550317147510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755983130127803405876733811345178470423962088493582933994762948927492630761519594758086352305003906352697550897371963214320279758088695852977316219835944256689466634986556641828527840530710394603837055319530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129111422332742480710512027849723849044026429680769803440316010136598808564229607540695695571335080053565951888414562653198365459981493547035333965788049476127320900485531135908697471453536890157189698415775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936089112710910309973067570621865972967346398430619284295504292105466916091541828035178323684155218186556796340711124306438551541562489751763977188126209840873609829923836373030275059418770626263573784813688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127874191392722798698022724595229401524322084048175398124008257637136067030334477654114042743699620541251450482700210515174118908825492609774721462055366779007552008799892323465359252612737727695456712154449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209215360832603215306918572722599298600395392547343180646477064441544096308598332098942811738979506827495524870662827328053647924741072354611945944265379787498697959643221449501435206166327360833877895746269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319501323741964534289761658135407331302630302854780224851925520783232374548326796328907125627475246122929296414094248502905947415575992751242508506996634735376429407383918207419091625416097284459162561447272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915085368923735127485074294814451965416938229179315309180378204728722389455877264858456583583688835417610564721255643864015185687695779882751742224347111155262343697211707633450466532724766334237821195879117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185218845506821183608568975632511813875046094241955744326397198431078927752472356672288395527355236066225987885985396328772844546836949236760648441227353682921913245547040744216668206746126567079643012005535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357318505215771516084763131429710068248249139162492892556126384767386218233345228302857013815543747650578465690588394825313419981396295736250191985710580846679236491105929088055068338217718370944062699938269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219345316048583392126663772506208519054623623733732811425816643842498897985966795417592003691300453703719627536068718301376481212741056148244879598635108500548734902984477529757534939665530715055154410390938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998324269084530478141991498931107101571694749555763521945874576862963018389905824201278786755796934723185030744610603483914598794977948711391354629025486282224974389447438682661643606831812488598723268791076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108266360364314856355316050499154144130887215414433174525373210651396119733069487813913096873318613666961939402572004993080999953482194276558781132352187781245718342397646806973069793406081383018907785379227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182664776888667725021712329415228978446162910566285420071453883416781489134566744506929129063191356184691533158558135076487541321859455745770156486652616746620858010700235568168758105959676998901985472706417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961797803655471501006418180502754073583631210075848690420360453063743034388761523828983557372852602790109658113583990082025106415006848860377851451703993626938322618882301899591271000879075416628748322394452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640065209962960096641776937613082080687020130883472099991664558057470297265064248590310071846989531069017432283784757153675098497043483482059931223224751985485354554519808422814507464169325174171166032932667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221239345266865799204423861484757242890105114328883814583700148678228333016407276114036941362115737169985605841735445608033688890692524353381053971593150452592094012886826761957851131323839763615662128576482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447028222175648273420064615301617015673045186184377052127062573422587150628959854886176205229616886565215837784247149479866487707067324817990842497441413030772781221727570393898531076626569482761976332874465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062511078456579246380038273856860224589540614393614994048484286969806483262108464380743336558398688089988471514295701014512054966842896674866101866876512973139628321441026834165860359911438931807625644344609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291066611784943531672592385041053779311049081572958008218904109965374052294046201984820594719565468430076822037328399061467920788031306210807428878267456522279510397530185492450108066714356522034098520971712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216339043317628637080958285081909697417621207405508511001815330208171813671768543487272089172606743181038687549909642874280410652857444783139948749789244343537320188375097795346044005281197852692754424896325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414162494910515768227117417711932232945391974092136590860000476202432818881161163644928715559908299814543584037170956530527567900610385822005025774224292569773732296609385467336929449681543260568582340850739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322183356239637398808014246118755054609555094122720020016673290789780007096384828312446295596545022120743326436571869713451446896888922951080200162568079951218413160983309702178276860244871443361314459232060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415404772322220839208036324127217631162891881643394036869317135582680006351732097450524378305263342982051585729293729065144082252093140038334428600943717769650829294111897120873707840935527547594667607700739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482449203287338602799204201279950628458617692934934748645046491968635338391449569329353499139922453664188100631030710950568773445423096458954361418630876241494447419866698347713405300957797872079291462389626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741498133643427387980302577970218308865036418106221571029282021587181445626643551912892390746449491042735969276652311469566584458181144763773752350128593126592576075055650198433567754320917506901135878671619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738087137985338962896830262981628055301107557758978534823854812982810501496288588718232218048882601827461644879029172841840002936746970665260086282843883088133563358024351057763528593351544438010102449942174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617233660291719339926167882868980057891191156961286113730404222996244445645228811797471536635791461504943812179699911719553392915467985888569082819110314718381129967865651453059679813190800422182709005693044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095966444898776041743786038172342060790714371194447539522843551677888570909340590984262800755500248725830650557511259353896315171826065846001289326829742161791308116878212721039217579698337007055600479265997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079689360407597750180374094171469981885046628982630503406281730282319799125530918362807799251133065557772589580549721937547685450346607218411557053096747424723286992072949541768648905189668750773621842979151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044881036662552958628343438480462678122147642516601976422702036294508798790923068997762622023363411771182015399050173071493996115548403715228268577998385109384004528263675761260563984391352940873945574277648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686177696138805006592509070252900155749948752601372319426962837691739012328002602992780683106302734901011003140670779004579276982793136849451630895091829048302965001908928336498837214396180793208742328768068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953790032571643627157135734722510592958651109840684568971565825455725633355594576577747618020156837852364031497853809831566253185809425785105813904615465248072719832909577295805530088357643935465714579135927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939230896227344286671746679865568253732514537743009223721202753169385665977610782359801886307507560408367712741871458966983457027538487036030425842802127788310713511327727774992046483037340486427902258367600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551844344516890334624584682912414317535865749891247595560896040292155393977446428877279516223061246477930882654235748010717809152774016548710468265535703098981310831043094866753941511631676658281403700866865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885144100537103141831634743367511749232053176825839150342354505860226305868702779243229691617545953440457447399711712119207789915812180624709441550694727351401234550204629067783378176214191890146908807079818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151766201151633013365240268650603921725403434552867518082580104629058208364681107351833729751961456122525371356771188784251994023543962242477517373345353389150726288232132196100844063151547998599521588884711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121793285779630213417290584506938423127857447098281990368933332322524565878486499097175032022167285214998827754658306559015958435161855520548978267361357962795749330522011191610842080236996138900439932835066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244609551483125353611287145210743043635547898213697720092793013726170489082803939099983557408289800561303263280487840702588019085387730318818712730746136642050910874961241901769134499707745752836339783231561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513441990267728610496870350607337208935530864008142659916508722359726946248604836665891130395850751047449472699392645264605522665189249764530807213109352096231576084883113826036479166824680084142235887774104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215239779289206763896635896383566418058944214745396226231753265579725268146631176978012993711098245340522927093300399629513714438319513505731788056663961042122577872528013252838483308299728818250749885183147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053700772316581952105304731149144913758587914656238871946479845265284802689647131727151501040126023071212228792246888113632874334667237820558111794202721647922565370422448776329697012927691315004252022598108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624532495103390555419373115567810960057360469040879350621298748824052849743939646946584677743623702801414300304401661790116579760269790511369309091941300404399250566495624246838020340508948029000263762200578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639757912004701170765647978008566264746119214932018152685676334858437821473311767753820642489458096582004134726957162370383720779356597620052278022518225296320032536927653198445965838103755079283425278582591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286021403190196538623956291513139154058784966307201942185802070548054644775476955678720896015971790736172414061141977276502529013859928135313797092560361206849838882151922518132179980933359782131751070483806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246293327028353174928410044347263041799008694169287372227838080288266378013920532928677292804236565912564514894549289320084006096841831783905934902376205000224339124261918283291801084770695741558673641192801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752664453382030040955103219288976104028788257165434018178388741015541294894921097507774609559771524786912881124482928425719746882048856549095615768512861059352678026561439383358592178867356600596530098536546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136174316445378545700731936052197001517354100766869601305437275881607049987789365017422246617438193269192862429301061984254163460485330613122444410053811904217052950210203949284993280229187520880003182408337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708794901667727284263034494974713565876728143942654920526300619080005910944956218545217579084841829846693841949558812074700106037683563441033205450016151657240720125298604958894707972183425970164384759848658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864184914158697584986602245464927651310287275862938670400213000595178163586440778748117806522568506530713507342458944602683462083458031339214535422338754448630386070872785027777775086776299202224027107432459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450191208996690219737367720181554670989399273542199116273165262450694992002848523663471619210135317944601819327396072124887398157503934618170208223027956393354316765552788502935163273459472657951040114997344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574559615339198458900273971574375380224264155677787593079348042453601445500804634412405440897265939966330079979725921292231094194707838420418307596625539432445609635895414225661367379692854237137647495263375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142891641757385033888100786002186250388008817542820476784272595671960484060571210079656164926916996939208557744994249775621141413333243237951509364096641340808447528614157971242508505925805081064620512457221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666496491511396292448871057045643419978174371093169216647620690940566563479122208766735316201439579444576216638684660165500533947931580877471076476445478396109992723489002851457979744344660440511176045586177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954184083082629694214229603619265688038545999145315531953051939183455018588454934955788237465098560821298424007951804176372673129537115995329871379480968186645546885144362583503666244085255859306244147002018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028132584191077575505481596675431195699439784151633240688940704392660811215618619025303220713906467697732683681506611237692800248968355757137231128842582768928782310956781189966969774094893487241466149739727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408451818357188910943512641768469147790922528378375323956019474534909055101642338078115996634482620714158723813542032404931757575337079350969461348285274651377146834205626236321971729619991708666383043815049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705019712870766990024781300851305272966844060610164378230719136307049422049383419600953509993987135158792521973942806151356564313408161568884901747824857836606800403926759962908630937903111506727671941876882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730738778094787723527390164557430678984175586097805980115965586660818087835319300271259737913358957897334008763443118861486976837881121510877126677572310183325111391985166650796809644853255663841758311669493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978986496300568279073769198631560129161425693064781006989197020226538674162603049633997127366767957428955566314014881184615445820075931678835668267089919455698580240906776542744450798568453549054758781082742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539549957229930180621792621124071101622095785527048886053819284236085295701406576742213483133260263421770543730953570108907807302213549826362852887826558691568563466259473132585195659138468924462445834402277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532204691459692215612297524374555068820561736954940666273325260413704462908654461510442560076329179486145106922588794437481577891250885911134172233031567497381920863972206513520158280086982468765373753233446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208605552447339121171297976729814037989097286506976492032209927924040206629297956083333483709734371103831364074116484760050698520156744722778358999608425578842724735306117051602021864568180148423771285876616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594010471612965889159165679925544442250779692987057697058479143040118254545356111724273371399999432672127719323193391300068902626785230042044775981367284743790128671709651764782559460090760126770386665955450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012548206339883390344782848948625326384370394044505434363120240495681948503862902856933719155477929628988453250576597682076434462946898145244334205580449946585823750536595705362244038184299359354415068135070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420413852461568605765628218747553890252057850800740693372942987737463057925699377504026856615866168040761542216193889794638536338311259582441879709719549522407479595395194229768582513900769548365478993386356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146928331218471752129580119166422739351443766983751998453064578736640777380699652918703123194595004164514120225826972469814614881846289049872728361923812720419779161557131344799687575703393540193254612893602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650186005981164172743826673072895297840924401656957765725555729576130242533547909506761981919701424151665935744603959673618532551061007924434665329441818070121476460301248629639975333472474598343390086851604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726258570251121046551644620072039153746473932152920633797970985170747730380605362838981511969546064420171139295668853118832806264334317017170205170264852813184125163439247307171335549506051586713611010580504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329222427649904174047481341076368194957397746437968651830444656683983184841948244176059863821383782353137304522859498310101762249439405390186494271323242724894320227208505266704016110654929802726886299503201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476781940497301003751985705416725276470230859199227399842341493349983909786403439076922427293376689266049349441694715697155470599042174219258825753425929995659864267684514106123846878806544579177175040277628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943734521094285968471727023406450671007142874586355868678236996339079944880743760883533682031211373244515710404186429258794496377751457723511758660881749387826753877641303779519060504064763026806474269068794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725705270605470472814746474462082224540747141694065206969516760010559177013648971322784201700335664320555114622179331323222171193273734777157788658376969907911711317283537401935719863182444704761544818457702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106025662747574796976374720906354840294917347274873081201950527096375836074625454793529542341712726819813399026419025763373611656973855087441302411046998364322210012677286821809498907623686892633844175188562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729200985408629694713225986323131712732194289141354943233591229372423096601546164996985579627632755545779844544032230409049346593466633088573695960232857501802685021200071271420765556577264079830207291948065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250934418257134216136144401191522895306530077790539720033966289417946596417779835592534222877746564000343935264773517835159330557199471598121250380175595475777459515207139084336100115379049015078907056708818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819896052132336107052144317601499501995895358971833690782831386342368579567965634192930497698152099745288783121459736846075674766360600396879174354213850348953262958205447487692413303661183286891127783175460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416566588706989890137538880243275851514118584543536529874915727188653564082683272251101470090989862716772241528776898622677036983969959782816557940888253718376453740221818841187448133828794719644549375700207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461474910278915546521230594248610272604712698132414938149901767357489609411826805047717301316458946823454090750518616610154107017955417597598280422938627155510777799674591224661638474771460111789648586772191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588127647543438557347426328154927705626600665467118487652072673356547316696621770698336458358268302077663377786474895873125521947859905262932469843638246857387232842777898399257375979040382852977873976846638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534014297675082443347466243985834376148793899641444025141130024688693719521578304486934438407345590866909464481382353532042192534791688998014391786232376017552145946542744591797476063616652401862061888475586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587980348283125992532975991050207350736266025424310513286294034955417639910947632944854290444810268915259589521457320122663991033216800068635048620073570348589610617902776607181677068179366318045382379191259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401726261801820466737959946829543697194232579220647470975895251070020377417194263893464967571542725040469387188357277563444876944595084986388776168355058849700286857269280542129179585813191422838038713728275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124598867858957886370910482165298115205833227808177991560826384334655419760315048884191986084840626490039958781693294270619622974531271365326944415146362569734275241608734402697978790021463626962620120377533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927355911671616701871181553505823660985691939227000646822883589944865752267148004631656752194201966183070345216392823182511277834283289541424721726008101478758030212294751534403712723321670865724341810804779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159300300053391341804464235262400380739510951370111585095347324822374380350893528935216587780976003257121283541953122550820412698760354189007713651108604718194108088431110742536391713898813597531932334651579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415649043495962670656328990457837601136851326246834602134845575646260777352188360216622168327326752466009077868093484338791981564661208248486780506442969584602102930453724633487602599622427009937073587107459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889509680133762402481909558113491329791361379976702061469804350149070673315063787624020662390702718327904802851482956061154740695997256194929668302102119305025062268263880896540629845561979338912841975881135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563039137857167298544040275171738826587384991774630988127769334111333640702276667861050716885045092417768179812507691095090914411583370303122408506723054581245437271259392013793712989504976889641046583485074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965768203078846795064702194730980149497744309949779104146628500906670090421960298663311030110011132782301805889845558966393460875372851907436002284230389621517161956418065627000999956013489692855739326265725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940935620834941808448216518439071864548579354119886526224032719177493852757822503822693597054005494545632486688166937021367054984886527552679637592542953115273943389962168015529068835137032902484582581507127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718416809873141819585031564870772149478854628003926277518456650430912603414221842304210133140285691502890354177509096542281408332982473259563282470188681318906977341224009824572047781021244257867941962179708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775642325268634634396779838391211928481559046325726844298069038018489373878662677601466755693021431752909926805769995789731762891660092351933832885941822434444837337458570622675049768273613929212565903885590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453069937591596227833917112798101298430027748909358748945398117353381576846139508418563804583298672849362869287801275472398663892413528204505780353885364847097327544925680094275596516029103457751245135941932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842964223163531335034068040278444147520082689003786354784156536368956731168839504335456317801016615510364384488614982713956079572913905790086466129824415228134778644226453349015863717448862610877742837337586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349447700083734530619482002243872523604954757117394662913618252446057626009488669025658132931135067443779323202503802054350185299498077810525998530448875507249312550651003885719082485478389932660286033739356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492328219311058809736704743234405890882856400267975943534642742107841490615409296240833879108156578990949881571269023662004328021528958961577522206062145798828404918233836573512543126936803798726868475523692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420361887955138073173462244771235853672790530083551436917470851610091475448224060922455757610398609663567882894550033360433372084655672516489462327278693098950945586309830114378782588321229906713291819397652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555006719879687514630234571315295363312886696129887510461508593563383915070262240450567951168869460511094662767237607237505288455533235047477489980158288045753005046091690215964523830382629210630322585173215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024356860883266117880977031360613779093609113087234077209618102390157853292035471271969105674794704414643312131439560967516626112894440503663881934028642048503807286098791982980487313349900484552194065734654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200006067946154444738300958784936312325235285189985719809160006814191918616838901518124804643471901284000707041173800540248415993671028492407559303963487240301375351991157511804441626152220088089789683333245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448810446032143908764832655167298762199973683709458549393433833258846205940157298446429786277862823329069044923276593292449912404613383396901524758560101968276123720343055108979231752867773878201326684509880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737107940739990603683952061279228549713860022565446739856276967564477699256300949570927013119192982495577576375085942369144906834763454604394437131867956302588382681792897579073867577438197352081312680685284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525586481910612361767641145832369347955064737525034060992789723071950827784970011960313162475551008728852173812918560876774785619606389351240925078580628668215537123624648969325920348921913067134717109977033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692921084643895996928816550769582289873372386157832942848807562193230957406308380891462836413811692922908323367569040678765357616396175426664593802436019747199540348365085688712885529242935186799465568445132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399118055662280926495004498775277334625217332638938949491465403821243218073615845361140460215552597536672022391988105028468107377043772329312159753622750515723876452943634838791352898878790582155011110423358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918364087982826661910595314252866309267070173240595070622738667057928733882718495187976068532280614808818646593287994277974612452954095267124969044104613107390919211239694068351844696993047168661742405051922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360890136050472633749620582370618484689529986526746636302195871613693678672483535610994037381399698900440515388959039103282794572815113975877627474453184293053661363795169817274605208854646923204175911435001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823009803545858781164004553031127717926661474377483736623746020207353840348230968767789362305616789380673178566313716353870471587401728905272491252082716893043739822965883776322658705827681347353299478638582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578659534391275516020753086523653852745037888597124866716500398774192653741450111604950710018649301535827573069553026842287584834032104779305348522095490792573563977027573732045507991015818436798097731303516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125706449150735469297093206380290377591188187390157910382794684926286064935577057927535699984474878454484558005063460310194327718272203125080977502995191976880246589639811415337135068436100113109962982510923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122092196855252288491697344907527823409037934366431756882408319294978354314731449399148449444634289657179655332850400946759399635949907338642665621874810726324787243040629049467920253848591539802660863028206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746573081454691925813273129673025592058716565880420339131539744159172871948757014262221471927891106602750761289442732242913669946659270657251041936310238598175490798699438924388900893934634121382813621947180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960878087081358686649017724447369521944670349065022384096930518259399680394210385832160164007694778919242121489543593744009993796437285613036289431167437089467447379716761820864159316835618424004845427076218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189055115991626908725698821763884637459550647377739141580667407665009778341493484216184403838831093760153938893631063154871345972529048370368834150168607515857990254115319535607077038149712274469609689409530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111506206417832730909438642104434100156848794624469675999352470493084992705731112482397592335989864528277041548277629085165037960815057835098230275874215779597790045920608880043548743473529828147036766578453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765028525906720911115279925914212843554397575899852207175909946241446928463268626340215826602498292115869480107657666054916190877864527586671942368344343143419381233500212897771314250005292249716731077710017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447751146236967030823020942646253674913470340742458766524088261910336251980464113711612273934979644756701454581288427010677196263293691784822862791205618498280909007323886154644578857828584097096047744112659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453347773594284105079107689335238793554981878467812308125958197651326354256394023461702890360708166424177501440151789871339407195406803684014377753823023274168651273314467179277067541525937370934213197597040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843542657131020197144345952011778759458037507874625180499505221398981478459503317862578489997751009183675879921922826055038028507810017854415807312470071381244813199018918287915172974806315354184027249731986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336279283212156148810545073264464398983800241706849219912974800942850816694356492957834344123652616984823031940948633410216606988284623109833870141892807820737483205430749541642896324813950945589933704491826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679866531939037687765826608503687181035728366643365057717227866672879309080997221922188813671309348050105257264157381340641178162104806787143023891668115663107287605369457537784780650585029952691170323330371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466219974605510837665828858129814451526749038022695678115007030523761609761607516474358393341040779805577229347759913433136721597866105507342278371167761831994859302758572613970586584709868667953396094629188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286306749939427340324868374491455647358303787886059847569183700454233012866275857927095106789690533359734293614200328824671488045835314413863079762659740489308711076885123230786079342451220171545580184169216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339824635645831046924158286611788490100463414076094998214465414603928375102473505894407349196495403702722453457220124463687003138483398423091832402490157951865933785992829470159857959196859838685981944905441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623054441488582625370532082454374482290302780270657510380017108817832818651459865583258719554645852534197577697821772923612071333641240281634970014373150088552712917589196082897388980202176082104877545001333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594388364820283160338946679044511365530731423327605787108207926760439535354664225367818502682922884743863930395837400973858701426510863446204705175847605499045727257503150850585856819746842929041706716614133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012643813913756963948911084647998499767790629954544951573178700804071248028333711170264272301544239136020661853406307113082815207497537193146840097106225037195921638658242822894083649272628245596051552523505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666944433892545689917122537729840428963254728255533679890350772231031642222559368662240293289707900774962130957134962928964929387875975644766633100100120853804913657780486947710046538421970875553324956543022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129715306595539487832777388807136981497464050662517514314106466975480788825062108036930301495236024766871701778304594493982135466681201891555895109323779106639743217171528610129007333518011331114135668468007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926741016063023195786733309667419533263179154869008772125173072357898092522530225632265419023399141038030993435384580270680334442716519277258234253690592492756444995993189337302024156133921728688211168862565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344181001214934617230676752863599011280889100896473779245979568825007398502380775095912981555306692489535737276413238566846781778140576387723487604032512946764713594366594134553106314069585626346336897310651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084660936154885596579969702595623280284617474416482632048724128298949478102988228377461856185823233466718586883495818421919438832220412925662182136162779449004102238014024216582366043639132312295443465694982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021487594778160761885270838202084834997471275528202579694699665538193959379828961377844300795301854003696616611576286812079579716153560662027357626724712099348262911458725856610030202616546006848143871460837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092459473691441023228343634384103720771001346205794664067075309824085550357688699700784814367551040154533652214918883832021327917374952250859104094126462615872664616191769631733141663374449384885148595135867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214469555313966505481727640197265790621953881325350963250947445989891087859016969225819860487325161631487225332086811525038778390309210963973140870146326277487361999251603690351640181322863841015778913834548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221691146779495770903181471995224200489058855937464416153490934682109527381906924934012585401621298388823606711299047278538251093221267600863567887299111060647443854063130702691579329114716835748930860734176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548716717928740011191447262456712470024976224582240273977070270235032377124169131491308448027264009944972595720923593023069927300052249073651419777811827203052590605053664793101848708283976243597654102454719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517203668759109206121817157215013230491503852431276016026780710277905987836302849099513323332565542428323312697082604828410911646293553079701347159992856426889889700767442334648965004511482489448843811905203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702778936604499831675503334609974345390667968123798331363984458622049182698598018506280836505817585632828672397021647037926115754368783456640465906078885859361572607337647947362839418949283576050483364494011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645448648552507497994208500289544449953357450468366227668720824831641359948030706016118223091561752595284900289952934287376173510267424188159371599489096979222577214401390912722461788838743608051967515303147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178663600901647697454495895732314679554993893375139495643626014549592646737347216021885313265446860088537207722134527510310595262530711102355378856916499591169220838887707805173543839856786701509637808868647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230897298563876865112750727634100359941466012227948957495592036099460378048483855259599108171236282744204017849802110317627877887503036302263616097666758010603955547997874569981579733423399742444758845313933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442486477743878776517385347897501402520406932991135325561481360435329683129289912953561529040275913176773412777046365308522132575486307933547882996383406999371515422494380882406473326312335046138821594795169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685329640055165359978579130606640474557190848662504146276335720442508766033207641200276837147202583957757254830817635228170657759415327083266255391096897305850456225936898498975622702158265265280620025184416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469570486847004963864125953067376666038942176189387542375224018745815972284425229079773722925510180886739908398854921449138635625388637891615918884240512998193651713692591695779199884949414977115194315755826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756305283373094860238329627213225690073767533911168294719812770574262437522137582503200873637532046450005738917934659235577083622041452850139079464067246673601827537985447814076921256085694481054166195675264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390097609946952139817702841461088413608565918393299393135808195270706927092760772171777909876385463446024051690499497747577482873009339789406414736945719850482990513484286707099150933044579663919535589147801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577282287359937984997704573176117586941984674742904864012319967446222686363326007641107029348897236012621498459684160318742453158435205489185904535694196446063337988493153116954758361115749766774070315448057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829666069073135476364512034680880448544639479881054680984967013179549428668138827658444650585179771236814267458547557138229072663460316438137501465429194535993436082062827907253188657517973424574661225027443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153792322466645823710793214590444611109221070397604565101012869760593556579799723039393868396179918986917991593869470863242416010161030988737854395677314829723489659476714272134128400437621066020055056620233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724925014467120456547835726921447053879805427443650665491900369785230070372006141837257113091116810217228672125895948574600435329503311469579656490062446226953912511252868037826375208346201091939205299406735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519364669075619174436387489862636276503027206860925188097236088479380162529503922552102831859119520952160308797092230631824304905136125178526678309896484076261871121193856452332588015635845663256815365974140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756061744994556048405651692066062944190747116474057556195518345387406404646634465233320351037784476758856666609017287520982244711564504556724311091957346662677919503511119124849140645554352577254965663926785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514660375139149684512296745547842471779306074999924871503917371133105984182400457742575917866712195051742896119673898889045793126077836316129782569411368450788843444978664044958957817797753763317503868656921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406423215378834130050262017131975912486458792300685002533813548915131998471093397988436544604827289154971076037317445126097171706215491523093558078456283921799509366499044096091569942149387112429146631205469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086238789106146824197283200526150385110681990583517695632365696941423626101521553817250369391988202927136854440106294367264512033344244808295285077865022358866847987292336334526758265461364764488099277633165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645101205882674283063999608907655734436344801490488298357189816409645101192898539876088229692264354208244568412368752332589778385243845422759205676092607958467279386639764013337529817410380083971366987501792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603101501646447422392328672923717256538429014706590688672940694842542715905205340933901432108131385458259704348580931485506339418705437548201917022688231751090132941361718770058091133457961642203012598022043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878309713450788275724844899897349703962246511049877700417937126319866550424826450427132291612309324616413533039167689451483585692702166031906568999303527296694254093298585047142854083867108892734431087363457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069072075622907374684131198586578798855914252147080351784967358936933535007544672324613125258268704637563439646390594790703928961259764866705690718158460299360428566416523782711376077456210903179808657173199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250183703199851692200508139102053789839156229925006468735679795406627829502247459266561768688629321162565605008454294559032917372009820858817353746878318206447022686127649760906343394156649026426219449599972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040180469025649085325167271670951279005239342170274303288614132330961696475560201838621599787236096212275704210996873700071225799429518696300412954188779628724093278461798048647907699890577733886055838249114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818620753257403868480696490469827999122161138665663820326019135968402515649247906443983330031807895236961651840561410338434799376178182100474351909070654806403205691171664322099215471240461694247104315222205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839775086249284520537660993570351138469597842959544064857515050620849712281233606395414804523183037590392304193129358047025322396391151279375936015140870535146062989951940745755354886861982269324695538210219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058496088149626836546723498404814381094319857403683774663709365806373392945879466445168261148333459808948132301423449736300081770030290154167401795744361620184220760535776542316284564276440937556897155378728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414788143572707914922104355774546093490057376815968281968019771590645796605754942541814453299247981996657119645518856556568121513349098046580376847618266013737175683727413061704644380829243916537132963826165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240942869787594626942988054778607764580052294075703084063851604360593125556585533123116554638655410300726993447731181690786628011955322480995617127881556393519012560771128846947322636357783025965642326973847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350795013019542125685389606693125427932944450460414399751105930683075898666312089709178673814431062673285729135247335737334139964981622560564197417879844156021330123029600421489114784857526438625181429619136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076927834118901729401329462385639308531532244222768818571728893885168650075904844157097366365393941138141433007084179831172343974321289826930882817908454608352276168839236706701819377906387518688982678985926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453265098754187048260408504943289449671151155640450375992218315315062189417680797400402678059163735949230580218910561624590130191307342309220118774890541763475234787205095750830124580097608944902014228321517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894558935561294166787711514445952150728011245289783898892439805792611339511716337272476322035613413766554936091076077542886394153750911283550953891017569927348105802052447498860656941406880598157145534961021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184836408445470922988082018696435010241658928067289346189212883998058867547233822662874674898276007213969179081994180723645143829894301735530322511478911846799356943769256545351140882462644178781754058520462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974910153671404487270605223983274654434529356528076960477221503024060329960820144287406646309024369558220175148190212769591948548065002515966276672115626582703870721458114744697943698506765768823503506327908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949257666965304797371427626570535957448790876199299797549154709567456866266693317816026949924563786133450401286482682564546781442573431384860066826797672708278086896403276259416788405714594114804629164881285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141354279122839130369472625897800273316800303122198079222723393023339699024932381363017812136011313683103886773390012252524103762883920011468747397830196815162344845844170847115405630671221502524006009566845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264697674851191611783934195142162634345728069393696716440345231117981331367472558103023300335647091931311841549327154187214539550089621519955776480953224728170568462835256462754305762000017214990289645138438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698353547722866911672550929264234953591129778086706764009141760472511018422954289469724271931395782511177137364661288610993859615446366855566406324240965511527124487408138633958403290683016637505159378894470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933830101592787382664035207938573727331878722116006978868491056887673735468207179344205169186912073390602304035953144024848275524988496686390561518129135491333068919805095831954745243476885587738310414344539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276614545789111470718167829879548739779664939334049995804451114426378780550061812019428565801151160496597514709360848244784071510165688191515476308537089917774950031546779199405543023845556843295871228070339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954986664521514608322432702939865354711714611209786446464432561800235200048641692809012519555879677770712014158540324292727965139982142625427852383618248974400837646571991833956603365094970785232889745881493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828224490798584087005861205284471633587772330438082709137396889505684555352326182211102373127136881420583983854747049000536093865761777730487830785597217538818617272005256836873008672176915441262877549503239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645315888525882788428685588949650842703942989935442747557848840925342436759646126543810920255629982051541480193747004803579667745874100884131811872582385785448488816682771330320509148049902706338669469099351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765179296210567446002214133673754807986035969594685698337977267285287592506044418464357782403623776670298728323706045274425550681518095558886835891475330457011692173081904136821961979244460426499343848452732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679668656432669813031783621646465882083005036445481292288496446164101250237576828218945511845805957320909394620648677509380243791289601800827940474817422063327914712842095137010561943271762928685790909493218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149201118352837232791996507771558163406176196984072223186782701235403499438429168556505151743837735392032256115992975687965574856371399849841889818723863447747735515013535079191081808269895360125247825470432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614937094813131176126725029020251125017695385831757933248237475871601959893096899542945715238027789223568504876418241391023269149165574444845124608305145787417507387176744173551101307645537897887522221852058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635965341818542256059884318442721810942318109063106059677332784039505960669772102777361411827206434298538442465877284718517883633752819325425830054996146148373504141918616198629106706387911951762050556410548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280402353171727161613847452643425617030040388071688888421475795728132416306939771904869321017748493439522088977977460641321606591235428730663498564951384299151193754156826880464034407400319164875242281289908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642556241329569706903126069372722704973858490635481194665353366026431535545612762002245436501409287070103845024942299682469894819311063805848963834966842315468958573941781004780274310243436170639373226671414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194447793933862947820856539160276865474221602197454162503479486573308748696362146050796657211558568264712564019832368722180162737027408546123315314874653193936261343872784984098267899861969122026697545901203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916944124826846029055460248055663749256769023585654963056305499094738338682002253272751014765382015718968917643861760384669147127050209010166793143538898179926138949582056843152542717333984584967784219554228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418992394106466084284159517680029189967446045623476841746284361490524099614609132990782507767172994873799300497060952190291591878815655029486924994826388639682384956086850057999208125916980957625006325227429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601937093305472219047178616199521109291127917001976672020216396691842224134953526405415034347849373009481075000992303709153882015508200330120076040367400475028238121723533105469837101009657554881166142817419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321073122343007239955691422524643012627356668178228590169033995255886470851754284397934232749253399892584039232079835993252157435842523037436661389938632000800645747508807093799846274709665708094369299361070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717891131051578981248406744154043863432180804960357763693369650750249675465965351715008599750764000455954263701196268335042396940932473254073217465365771218978633545568241703910378182426567244157818438494538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841639676597939924684512021673155759406108501108401501493958481324314326483170638352293389835732862962500645396532323409016634553497614539777543545510180022729878166610572423124306235039912669272559398387044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103991987874499600566965311694201789033319307912876404500245292607775735544830851499121604626040796635700429294141521078517939512489293113108723403687549333211997169415582242253234526991651484270807496498243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766503422548447952734389296263521706924829572233723726052121486755901243751068863616862068481075325255190808700823937566799300052564004105686873213457742011004302127479640462677207960288680754533284461163963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623285524569201492338038955511453694537989642439077531543866107961725493579716448034461266623538041455573676426251445905719258022229306403304943177399110774599480518484341690301247105284001145301170159264176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818654512491561008456492191733984184936400789242534005288512740978260728184499362334439677783416430328617074655574470958871066122859798438328988827786089949825934445706255208466693362073645613299517534649909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411960330893060235219350237964753015141593728621182295259067018575855904869810336131061953704410772086023300066943559822989972003894205071241309633012473989889865016134460416369764129918551398564133480244010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584766380455213789323057235020097155747602593772076776087468148213452253163020878882398535566840846201887763338893823940059693823475558119660440536601708515543140928633570921594481160175329658341333471773027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321303561667949126100542012864532298006726890009482097075854102198848852954596019747306361328429698553852265238161308896659145091248868131259535362960576603197504295041188439397247053605789479862831714003968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577853287408199375727485219741371809429677774117222393641356033211909334407556787838113045199845148628980006084838694206218527192801877804248668080299512897034732944631709460038595125453386835579689058465172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553099484349384273384217864505139854273974290958570085614625618349527002281417325367653979469127529747013170063835415965446342449683526350594853447447210780561078108296494264788100259793187756392390432917853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696254039311749337139944952935680106037969445956859752498772673480790732676182452335521216214968023449292542886551457337565576594555709239533428142462903172781540399834155641983771801898211247608559555189995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734594639311996535056807332981486584110919944394627232845367711284847362246063313602859105963523719387163459869636443906854053223193152413546932487576730463381703029447983522602051814944458504961203269092337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310220632630169252370180120244226884929098195551171956120838155014485836571665102690866487173238190148609924699131546082001992705047305688761418932981083102352648281081024854502208757221283441343794849997279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128534165237031653070432582833721123713760969593993754953622322221974659619332529074042487602513819524269739101756371975343004479617825043115331506758256273534347625253914251527570478784376788524187196634624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792786893895387803686993188466031043633524373271546998988111864436701140284262026150473882358997472814933432570654746370224518872890612550302737919026403965774176068989769834566464705204716359214483070995843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923271016008982572238173945436985296547694901873840464656437307131959011407613174282203883313602970852614512349073071476245340502454237636666855757401206040598869556301144154431416969860740322078860031327905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408877817451926901476910300302349794585110001808866062162868011109151161040983273088089954337551187183173786558776487358854490366879074169182538313306362338205820154885449827883821742437580549238159729640619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476116075059710379436647715293534917186125066116367383304995648787793656979112931958782777740601075333724327900097324072560703888008711373096596344570960411750894447911916217455169709648447620461741281545361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906901164598660961567955415492157581283540920253931708073781465078832035266513457070655368569928112426567084480177864614974045492118431227621845224410884715075701908834950224375698850494542410572662460945832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461246569861605609094541772907364009391321956768364333299619997965424348026569406836986706175874131676505060271358825744337072164588195226133970545205234412809231730650519899545028585383522873787286982917275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389618948630773060274910267038839433524742434212367121770246101160240611185716870508244049162389434350470250813649155155104327250747941024737478192265205933551362553018121964249924882129926017740801037198842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707631894705895440618842131571380033984874086809414461845854230344951448521053991248932455486659305335584578277144237743385339208241277632165967538326650643063880695569156202622259469414290079987698344209146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753079788176133743609483928302233803279732038653646242498055114022469226478931592944918040382983649034888638697564414855608560537177228737148228236864278113657203947496906937239915610036828075141178473782562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380248421865669855274007641051190109545289838256348407045580809052214769722042873822020644511165580202158137220466347663335175617990500897780885600932081454176443903235241939731547218920920202474270405857913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001363603528432174780401683146726188067936493046865873646311483282698049202278762554540178509177497728294675692935451666098641948145836444789096038304582853698956080665666190360310045304720024226393881572068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991722511534025422229692234366177781929653313496747757220978430193818445059850750805649483189679220583434147890510257617490997582001234724410285079412318437601471421378295110218735899391708168680559881335469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005457345130587313221438462087602775184053489371323766290711205526949053003888228042048082108519287610767728145489279440322723628412479431926441924307968137038294820058697420150132353198720519920353877314215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862951066526896062414520844803403474113314880043138647317158446815754836531670512601746640760728095967213272942245361042667928094697735836383498228114766916959695573277028279120997926086381701765421015111581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926814776443905376111917463026074170414492241949800170623866816946607989247516971850009428744446624100586380355863065063609572709797349307096488907606301907923346170197456656248712884986738267854626894512094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261216103197427832103879548253917431409877065257006037671968383047869291003267483442066840667351508858609166297657227799692600386827334964187583321180809168618517134591156850893149404481996107250233789677989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308835526319454754253248458840939937846318673381336610310058114645515187730501413081566601806113226835296397114624010498314846460439520061637354258469826052125453859150536462014165930615241377433037246441039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705461422112569127225381590502039583051468585003602420054909455026826185095875426210973991322095029548958289174232981343154069257570588015736545351789274152712894131431826947690258885478659919689883599904388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970635003695553942259073453693326389696162384254104794629483793746381324612408253069026914650215171965524256788471272297526679202803841296615750218468110886939399252687943950326728700875818861049300859750196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880412030002270631808259318676648149044725799446704594238281114878611771247129940234353193476389778948446256041745478020529553081502542980157090392382147214574805502696844438096038016443726195300440399081842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770581856441322231887793921639889612736992400225160535128293723655737319319389834175384397083090358533308571836931136503700819056545043298422099381490045445400448618221405506052871683134142627896441695333980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606959061610443780149866699828433246525760882571010899195911118083503036507974281230709395198402548016944626205923636351071990148156774400012313072541025605601593168405328169973390707153720880901326541540840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392554944659667423730119121569104847330698050817129727313806629229678493165707003108305567889791232981303751031746783401120813530914660733675118762187223247896837038279501239544495396758853738446641347202470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880921180739792768314123086880946917176552671971341129027158146752944276252132950154301153369038922138410133788327539359202090519420939389794128938076595308702735507730422191143004325668462407228903402171151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916214239033889318117011389131501922285410738181452292592185148575252476183848077583829866667556762888310086015263589358635712742177728951544583129347098008471782896727341290370760715970897838993427926255738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982703667927892358788431608491838953362361576576833422289592702393915386811958152996066452081886184389697200189356785489494221651236101718473760460603829616442733117304025869985215372164775363206607206123292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003407215741480177592299719328271630397133938003492679133416508911394642479661320947250898195723750491133129166984273711489586628649336133970303624716301283210070841520262768996306818969526666944051675113293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203881357136176823477846310988547480314160751831305440342811270350719599014203058814923214884129356944529643170313190357793773919016569125771780698512180115203637847182328949534446551462678468202630396663019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505226719892039806465088098765959904026835458290840488743590121024857071905695585182299648163245701570374833507162561778784026024807954364314277409752046296007705952321593783926560584763183164539460869129139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592521531747809149296359576803641645315741984082949704240390235340265922135259853080332431785857740605690039517496624783114615470747101524109270990190694605559239683056148077265373998499618880204526136957223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942595737077522421277559627928584177313693090364594363844939823392918548955367647356087898997197780703866209274631851985085192685262453825870249573805010993816323870820228564474021890350370205158682457112552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159887904370477377371368502135393822653949023421710889783710051749817597020686825702725971239990477731332089067421121200821839867778705656294246938200423781349130666302875875209256477327316746369664746257061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932923297854556100790005472533051670818549550829573316453038966728057387828058258833867439567213201612236427190239990318506978094847298037705172000913056269672052843166496490463110313400903781521749243406714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700627095398419276724681021271464465163618290386785573635507001183672415428954047748343284348374756430452744506808442943288003263534813266047601721422694003496285639702572562837188280089547602386663065497470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656034688944098073565111719088416213133703832847527158014023337408746055090197337083604720090201650957663760378637218832003863900863187002521159432783932847926470562069061394036488309455202394372760011556448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338226748496581775235312719601590617282846213714010305334392027034513019491070344617456577179219132414373649693969048965732825756691327645310834456871594499005092022404757994214851413924545725326078271647130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595819072414641729115982896970259377776750067320383367599920898141119898575770545690088066735105347037213293489055455497205353010557324696610538066099500702754752262676383165272527915483314536193916719551030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347983888883741324601694849452299051071089558793216205632208515653007407950559249445974351034919044113379156636661772461772342505771351604426630343126850879654103973473927452905140551241030298362589336235834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473757299220611525247829166545756956638325114786725256097578274064438046070715424617738733768071930679719130310725974717095148873747469503491520242571874386619420798287288310571028157936402714634532798473494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001037969986461806802893285729725290142829019704050111709396040179940077279073005957406453592391666388114459764187426920093782970522564055698299485145116253966586742236308393508148778211469714515626421839723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794006992109272687025326458806166692255729635224420485867181204509342716663189051926245014908460068805223509444346582740225829051295030497996140166077255644874614627097868897325672101929230098245476543800864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306069517425895653753303319825137466974625871617196767115785959129389464190051959423116255426558903604042611724998909306405095319996461071997051693828158842491614923639600111384532591716540276495476617295659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724350146857623916565043387680021015694435823608634845735010253174638070912058156818796838583945104236795876705668608026594829523255942029210268875291154369222894717898363306284089773039313699219114714816289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023706082178182299215828215654017676697661208991448060059529906543762363612026305988951007723575565165921971451678367435512908451113629555953087586708377800191996181655683100455702282789191613024036183516412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397092955067524792981311566988231593310969899391225434479357745606611269046429656407405419288226478547979797445592299821353002931553127176172218631970898223531161069406848815755289481620820918166724813128908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445850657984792025456944114779663992297905320277130234997864403442182496163201891811804326478311151594681114816472645477617634978713086688756952976260303166684121463430262440794686978285987418395031713942900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655084303731907717669314552391351862236311427116085445804084750002479987582300587088265491462207872672680636374537598067416479448481497389238754728459343875279286766443272564795561569831372462510454288850073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530132582108608715627994119122426533013518546830147588361727164882181498350287788557539659788906106832228618619529827640257722566057247446559340325286581601438651853736161141630755729703799944665114114054079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280729918171305432277487592302825294802655057174086199252370629681498124204263776859881953959968475068012031703913507600700194920848368879638514240583538606896803775442070642716519419088448177490953805258104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105606244845612560043821227900342790703931871075238085638921136403935835401058207371156598072563030772823585173136193707794908570998474013366850020841298191122359596968222596454588321433935711948347789268345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236308140929955039458378138514377201135323628926420377834841213595082140727120895337331687881000034208405761803890377556602679235794264582504634285826405824664704136419947470546611833543879107633145242000537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537283624065611890799913802883209434331124691268141432182067023539066525496563617615132401567956891035488079558258253280000374072431650591530590694165524402644222655346570827097143842841856265032262749319629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948191301499938168390326408029823488774147168249587848181800555206691015613702532736823984640258918801203376500920647729115868497705912814253936463325614938138098819347295892191223730295843415750510217738760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625487738543568830057262497407546851550544779206649515963229258022932661722962213907725474952264621797546086820993904542065712223201937656293829780886180306195284931320849673872332603947486973079385678500759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098109391227546654430715285653966082482186099201307482570769885348946915431971656972247661616176670651988734448966245862862515222538429015608740899543421769517541033533634037347503819645696162086050486414145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392406620673366066435460951047803390531981705875771238273780252473499031335004611778877727476072034257314815970711634540909184231751982744277637794025829492137246161424412299249358946143400880938914467003203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686851718630667649597890678887068315052510880215627001700423292565257755357147488071703303840646594213132225602881837518818002778199301674099864410627199825274556959680616423014905837129420328352608681346582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358021813404365355789510224096323064467036239649691027401415384026186040025210407010782659915044971893946376538974233959444780941259644679388105954017706171034931790601028584817942869277680251606346981864876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419070853107215208512693984662801771110264244563807915882495667434928755342215336739800701841459689064069363816415346937335804134862168236281248551962820737251711644710048433926771290470954498217712459973537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782237468233565569661617070377394245553860213043349364007531953398491086996333561330849820046220523794212611273864697734352984061412029335747698542837985073142302960860064583902032668329710664748592802807062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596108921679675992162004777773660173969815700518930556320934768057520823924709307505648653540147096925863324475352400235795142080886099352369049792716495297330731217627022775828058433099277819938043921726811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924936806725671640937958115437410084474318079847981845622953378315920943705859879306743149584212809177146937159988393383659676333285508452144871734987298280228722459721110033706788519570863646932674715906123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351327009709343772864506905524832018864054459121311179044127994901780460651193462138351820079194171186947790208647877508811872244776343972876005334911972357654068682019368086771886415436808009906851236046326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439000785272578744254553882651665801545049441516401692449890426834573456261734020571401179382531553966917865085328616022779776182844821286729462937149110911635104493201078007237074496349256912189049313573617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383246354264136630474420695339068746180487426957308252892854977557044655307253726535449091655058544905009080736081330077728805917621134078127022071577217991846919996476476550010097766017279646966552244526699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542282376017449137351386273975389837428783645708577787917772282941837862509262813945141402838181071249937085703496006797685633696864767208107940134332689922920321079715285432230936878389824978469977558977758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142001500589327815766795541265615324077751183701666268023336345078784136697950895864028584925040484933796171180328045570796932170830887117625919959435644139714952826220987117939305641225493818743814308084727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388376120831651420100763183375893493999620082480099860462830624324904927573357191805826053249355127411073586030225305769820499460021459863975785058321391016158208938102536640432838562215605048187456596545074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361251426679434140746652063534546583922261146323557839399370970262019162213473885624539830201655471462084762972652574642687233863623153135535568166360519035718952446642375866198041144802521990130259589349990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827321349984841605395004718249856560184731449074269196457452658113570265107162387733468833725899778643672591741155701655292484206315218737915952464483195251598063394603742186735024198039034291728820585693526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251749229859571678125574842331673035806137323872079009336336925742457891953867586676113412582471603070894316874964912571672763444303055435879439672798391605502135148333240544829591240121878313403045929441621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977948184530344423147131244078498214846735862732653628625501039736030179463212553543423298346504287829926979525076211766041627496983635949960324349579121030004621920146211722288584413301742909151997456174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892368258611620666702210658425698166382179841203878410264487735566199629191877992434897623591813120793421262858085245471431809776763721364584043359927672555158766872926818986466457737181567137271273270691744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225675356683968136278189995449676285459172951332462312686271207307031686740866015957099166315864652238874562344964515990749792099459034313921494067984830272254572430514353045490785504685756559850314186308483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456812175616938935965975740429295571529150768297078020239789169692521995691674357951072811013584487803476120458651798666327827480150636490227523192057452153557288024819586565693666305469970629511442206125550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245577903536165344698442851334548386435254810831284998328941817291612083907139068486878921381010367965044352512042221465614364722014989420021438344201240970146623634385827269296108625255251189212907148360456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056316259536391996859258022570941304541646785723973762668711162282093474137383953097453856228395401248478081748766221827151570135695466014514527686148821945134110598019590863768978510290474547665743821518113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639466973981359366911184515777799264350643544477890786688566763655567510133020392064109944674869723800189018577123739333851891151761529179033570357835979595544489785949895424664715432770670827265189437837948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905392311698664096483735068307724944504687929063370538796371011704409037520385264029625703004417508984780077854740069098315941092887358718953394735828847351202477751441528641433301523760202571654663931351516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658851911949101426075596946536884456188099014507149283559365332865878073446563488103298867967164678135738438860393567548126731638346326081522267743361034256279904458071024372908605563941984409751355348193689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311753104804378870682882815000408270466690072446076608132834861647163816967844605155176165371188763515235927858975553158127353916830280196887220255186609054347841455916346645871317346752404232051378466514548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506976947910909196918431017573132250706433908790786086732900306398353516515980007405308268960241703702326706976447029760260469815761395292209643118412199081244329745349697140355250428613898420598735576265543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601646476625497435511923723190337566403995542447783944298351828774246412327916622487261166153119556515318379303744830710564919086376924643039253332818232102651629843824798894081615315260981783582054204757574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386788116744077729916542788044678413562009362975545691518076713312963755314816579909072931041379628475994177907248909988399465812988705098836726884172624560065468114480637174295084587982931253382289570642635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100160012097380658520602274673984321980195069095331623045898291761625860113602182893530594673628712855570420487403580738017522416010536449207270031358736274465470777935266484464080671832023727942014344723474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630531447427801085599461612399029562865316383085174797943117702616621107506672591136795657312610790687425271321020893420430686442656219088980102687881677586333919879360681779680015207386458111864332223002760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619974446116911030486059055319970563600863393574676825493273026102929726522199970137847456683369278196032684120538725039677338741009430233106594985975756289440887494502324471045141157592838543190436560997944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324582136510949286496372790675667757029078810824521987372794038199950249285273634074361722349146013133741882615777539449981758244493738170620495051672294242853747166776178806443475674224096592080380341627847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191594718856909961023256006367965097758829543573818629851803285928477041372436648951461450501920694469100554517531628065330522640076777089331089867475923631142492119647379838595425577854479230575068063861269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527296437171794845104623856042582227382057466941639979217811594135596464692984830670920142577974238009352953076421311879630325003384984642860363407249831285559398096274868244319578185903888755009025913675504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945037445941996227719259121297396187159202084731553469808229179455741106929562277074646829225064076988440475901917347741466498926352361347170216506656059047328036496824398368514816737296969861572310728805030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204999445924747765506558813098857791532212534825426618429008335815330042553324053214212483604361281922172957838444800154600298950501182389646309785607091078801026493793765650947187932258338844608895546152946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083687385076860449558367008844971994147118076441320231950290439872981974058817957555924943246941547994050095786346491078935958277278660074156011277589271569746691856720880461585956897392923464608651825973480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810473007464831253068075519706380791066795589876645300045068524334584450141943807605732159724289332940953577690289281327309503733441374448424049652672649123074576028003390297467260071906965178930568460857048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257526878211204779567643328875396972624473187903295250147526864259374561435487996402355502556241286564188871149563905477942768587250411279911978525278635555326054907754163728187879421667567485785614162304336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215641243296548596040476034010896079300019701881603401870668767349301168067625375834101944939599597517992945290138196724876429435303494038404548902069081145170358019381915900539925385499042811644320959810429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924033280178529096715912155922079660592005166471511308401574719857331559508149313274438609677728968456286694798136503135660944529386858762164723841947266752648279780364616646165460093843200963866510587938358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787249367226271401948058072089560729540266035730001659184622869442970735359279779135141545723636680561351033735941605798693509445930764592536435012949183407465682210680243295447211988604208897044877259785222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734729777928310221170360078554576950931364786905913019289750813682069374766244097973906085819570369479562173390922423568787195448887076554041753864894947001250532659549065911585793127048165934568764771061383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841513583749649991446718312384781726612783229101190230569342678897476884530592788790534903105077614255429962938754841751963997912067148771056699673222538913932234015644585015038358971663177969650337608726334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102806512980545469553211495375827664971867066319707916922605079089218874076177663472692934300002854445172960164718901564120699430998616936685189833401054866295948994656903536055415702937086950368322581323917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151174226890239632200130165011170089640856609159641996020206039985951675993361646087251610537383060830138547011469178633538023410741772497712969498238933474609781466633088906239419319707976848862203944896652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405466374700138330258893616017150154888689359105694404497217202113924564847498885836600119303093340504248190948084678987600382766921817190867696601829782035599207189778042923618366306679457260518896053823472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312243359147323752403786908253602164629481320488457398705136724638246505998731146037622534977822103010145429875113822448213673526737210704666777974242250838584648872949096005218614774771519966024655226069621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899195588147137993148152932958251607601071166249515565937202893034513965776120215825001792716582114749398982521641313983316292159116787863114903503708046729113467566457367760316704471187228697777493720498411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114166497492276966387934136055436280135652188591691916012650170347349219857791215599655450788459028002419792836146886166968729406732657944855141210293316476780504320302389291620949699409462681126884776194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073622559728294372637748776839928637632345393663445058464032220274973415024875765991021519544839141489452822383268148398051997076559268898315447157695118315551061873006768568040571230783243356862781303169868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999054746225247328128667550756059266570238196798544369738430363475513530101422313185966598355017290912266356068396272443084046523628652842323814234990867660915808115299856731882700013109382157619132965931457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162154590351291061800153799212994811409282642152270031879995958336372414326471243780519752445258629866091397653631205034855196870142616427373944255387041040934011786902848317324446696438392741321758809800049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936574394130654178468202190033810503607149529696827193408249954082421616396553900931007144638876203134913407756275562058777480798439458119495188200713205259403344213400124368874611015102666890106725161058423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463584698847810339146678478547087315150429087424592394613261089291950371011825492318420721043794200626722449362643509595503375838171951054431168732796056753298291613125754356825245646500812280522636814611597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208879767292696814797485326374608211517122721743446121372624336324011843291889863711234758307389741059168181881668955953718239958310915895586515510793911051537159282391972723851893459502417779055151515726497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644191147423502245236200886553420535485956209777634859173787806212255440225925273848307765179996373823009096197593801747525783079615632336266463730838957384671116709275064415747632824210968186670214207763268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035915735922758911349256900935607147977688700731954102283427174875749070918716304762388723409696302534078247465097250027224145260335082791705095244089375733331231982030215416350786778265509321713781712313716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346466963751432715280802910028162934418264108275919524951817369371136515145376975746303550396881557703938983487154988401323876915333088608396152038792659834262724317749276862696354131068465624484349311650896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689003510874585681745497070497359957113398345543688948216100537152614530056399124244539962580313280228578155567533705179614335935483126071990025851110866754290799917035370060643683886576034328421346749363284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384576004437560818745484730537879160685430938408101949720610599381353773087430936080254374618360436914874112722209890114767287794789539517337789411265620467480077129380534584076556161636714032813645067389621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917536184190105725391023526100666128579386128482872115114433121748164404005618360186728632793253969282324260140007259899509705126468119851380702881169297470365138827816180181143146872793323314543151025048027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139078432637031657987840807613470059542315330631356291972347631112370126374371698836456993918020402360170654847410448271684991511973761915708006875431889672294915351919561931247877010488364900343071220216932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271997000837266625946091636911918668340876039816053457187304488378784459945641066194649282790298714485138296622770697710186797262748362345055249868433462175825351994893583892640008216042578581501014868869194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118088856865797980045007436559961684910508497230735345599811561675513166841957334475132922964429136515799663255383479450766103289684869876281724653418103830016943452175880854960747849007567303970474979941243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748377933405015841980710583153109134517143956718801250305988695063116544061961806470807361237675368395022824398752860510511351814191973795694693638681274531652810635038346828357384405514229348007993668210804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187473119745962143444787453875567679230213614859728630338941823745049891769740071428842397668062831729011908574032503385452223540337598944008979329603741205460354384182007632588093628697893595580850949756506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605262876843710312085978307077429889423331966599337067247096895252498544582098143949212079393436556802569455922608937043796808830592173549902808187239423500831667258629898918865217070485809184394517416456009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229428177602152104935813182396627678715737149982841408036881971422738830208745015739858523972510668956996234962835492727345082689120271475257042705061118459464718285320545427233451594086986241199063270746182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918676790667856947756213003776080245180827345252143205516063315040369941548606130675953365971680023592160894781404681853314710609546833691621848065587071341055193617451037101599216136199509708650137780533897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998578064053243409137186218853230491028901137161083086808748672381158597421815653709296744655184929287500406515807192028280529922444162735432238256495251742467157748268961216185256399893656944505583510328185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866104908902147878769073115712614123453649639008426994470802551462468087502320398977365460713304328417053734413903893234842503181688302691387388458847942035579891651177287920689338631682700432147008424675785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518402277518098790110696764581909532313211287890901497686946981263359885419545567175712676678837155763126702761525977769925616437210301084993130354371898992470093957528242987296922410711118009672641573072618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661421595958912823752483606217204449590248575680996915586234438165167146316331004873922932262219431953654657677812098448625420396083011277674528313406762294368841354220939496071825983260013557530996909691637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730548733203749931817038992564161674496493569266521534815077105717773031882845221753638550909028760052076444558521723466926597049347060455327562960679060663231026724420595594961738355220588146676672261525390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085726809450590641548218430923520598808493156199837134863086316081775309934313568261193911313197553117878918315599227750248461596706646640528488092119285325699549573270133662891020185295971510209873181846394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362856193729156026563037485196337983124937125125846685449441793989395036130563585381465349742945202428280473039319639196656867950978121194503715184948395534618570760753296976206042126445050572723736239756574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805424226912067084666956677938084288797590663333851918316580733312886410779699802773881216321646181972297993823279225034392320715570655636931529218829355461902365071690769166585341141620278688145206333435182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236650480074286645066723197281356544204314442205442795569289248165106790636054314227622982051060394683907359874274419025274298058005737842467721405075868932757823896493302953931675436558263682933422786679969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154278013157388422626909720754930123834769332599468506448850358448438659834930060179435497954684711880581531834838854670090003623901656750909851974382608917629705175162644632104682240045354860639954363499876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237123237779981704531349779534409755378224041468783103118732043028771398412667428430830099637565151994256408235324995905280936608017708154802977468046987301844281722489133366907642573498314953015491797186038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492630923299395310213857334039465464313803932847546016682894570398520289897056199050058566331681025424796122497994161923808081718695617683355593082034329171118611940661424593023416858928325402281122375144878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934059525840044387691660888998376929711576754644468668682258216315938415334021845430200445567878616535387790068479648161154614774256766434666786165714321395605805106852492930203486311187697906757373061308658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116308357042659878493962774257427221268652608755377034324279721316247186562181502127210015338143527640446743840817921398524717656064532716663053443606587885020021620083222433975474388465690808482297610959890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260932449104071616943112721693245961346699250726493583327369223637207752705679531859869893932974519234065803202897787347160231747227460805571629448861637690049880287681783446200622032710191351233577036490080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780346589745658447852408819268830922777054604946355615841409745355423947767342753050083936054265338583429240886791409368144232858790092230529152799915905009065192474414170910047708499889030338563394194410486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061324505338954523862725524564400813036863468726841379219379578507749890278243158382732350331096708993301570664195240164048025986195829466611465708789699312666194868191195168899785713826088972016502211515000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214948985427598928757962681408284246202734481156377615885856666062870759798453898588853973591506784666774407355889621176490263887730463122881500824148640352512607007505904268551545873081994483614251750096919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989531725707278146698392546761505090113385627347482282653535901008952817868923851305483370801216375706186876378595480214881006720711402705172446818076076012994222575783785152623729804437548974460375910029399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452875550670681333011940370283684631830050668075306247064752243618574382697783983354212993579342251352034923550310322632422449618848671977535580316521471061995841040622119083596690789796338081213639892843731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836954651332945377557662272524462050785169967201989999340101333507207580771040382655836481700018825204873862694727977686819841244971301436744461773836037845058867731041552138029551148294138196811165301623559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698624228453711227804753731921404895699108618357580954983844456601308474652765120152251640460086388254089210102461583536189885561567954555943415393774502910066121558706401665298168145491504870910453636023369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864750400359753884115085871236676733053671651766723592347410822055662073897145896736124428601318448099009966194185512659140312448268215050509682117223862123115265230071316586542736092478521373501526308736450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900677955395033949743440651101402668832339813840729952577942686050980385710038847224848237875870249233921727160672323783759668280655877905336621109097334341997978443348526532435072253360398719460987064301678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571812184970469239746847119409031628654826727816023346641245867553153722069865707588845615920039276376761595539143811410641071280366418273848570213166476675524075009491137683189196875945945767797550505435913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110615981604106293472125903381033962210769101359206418442727572563624499218841929692845048865571680814766789660936346427193755563009580265716674060696704507005597645239753093566926721347565632231052170979726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651844747814978850715687141423536244332730212268108547082779756822570093257014058836963664043602801865735583944918479033626350155432400879444552885841494511564094270922406588405815702746990628262912354038024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756508018435930996339224874822734697948078406477677577435081064813113854120266818014621696063486386935182283330213466133693279168595030799246911478332513082076691015178579716958660185792729967194005523669049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638119079736031587212198313819620344976981620642398507522832773373258332437288216059788610987355191377855881403729865083817511632667454759408345296967092628169980844889010443639929417133550491721853044413612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057905481562736693420315336593480354522123759323198928884374803732410786208605622462175566914066496560325627015246939470098514711600994089128351947568274832967227217668299349444534067907365525417174886583901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411855501188829841586911577081853736377506071335054326871353825913285097958561423027436039576496067859801089379556543087594553873213235007603007730107917896408379918870861963208679051158891374126204838541157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497629814849539646083874849543969458515257951809116266545236733517450163608333529739655892210921156911978316729184425792575755004030749046664227090664322428513245440807605030997258302179025792182169082377943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263490668336746267965144875760421649004657804566810897623735246630448651394648231966040726712639274053714806002028814119479141742109645063130559424100563987780307683154549550715730058201479251595904602466115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155706409262296585461940599098696476507408909037102041073773228330001943441313189898291146076879347947563792607660871483258647930931942606503765031220789605973721194264580743339322946456217152992869877572374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527057513081889666990390251341804618791396391751999610688039579457814086994355792939886140071141724989460512023152862732692324098027034403935721351903458402887798823381422660989331849667478892669887427451477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273782755845600317812578547257973901689044629670212624861217876626477548370653350285918705939390177804647175942432362408204797958379349852045596799025405159404945477441760839577973686737690585564791827948871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977814422914515406119505865265141288187110649187969794316047996512884740365408399967083236314679272132449362698570740704713058434826329318845440510586619403755873250257315665275392902152362207415301446575930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056545369126825579444878042588295007696823218986262381111072368744992142469150404040031332186682305915435954967189013559031469691373622407761443103122648603764791939267717493540753416257102558871122830098045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129147809703755742924808981654174485509672708892033514269360692215766563468441714251418841300734634211770913388497281568269755648308409133263367172477250081903833257398187374366036429341681541608528746458725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195343816866329833335123189264153753902689802092306902469188086616534259713703199646563655178418522520774003775501336093586141637044909219989129808172359620295384773165945159325457512762182658826965023083274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354244770307986890738854236551194035529997686151218503691185811806196552576296458247439549463884952305229390431920834700408595906247758692673900383856751959635718838147734081913671101305078535558976019724131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896302610290498277851677349656630179240458141888901686110371492187075536854421284230029436184629978447099023892090870282586775997932900240687404128958781800155126238506698352076101525810292220691850589879780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536994215541242794024288330163556008454806114251973600079468367674392891368037545225852503564337492304061188134789864950179120395213927258935188503227479728304555377830648563922152548181723320806672527665964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009232700653873512378118935558807382761431387104773213306585242921769520098652215583227076240478674720185383578343770223504250814245712843756571479689310363418089373299722019185677528387336013394417726381562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401698834354341953169825972572703237672327104388502145755116078107849036727341375685054751283331828168180687923483942357902830465325709099698933929319568594221510427531613778589133026238399572492462565209238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238313992268355061730953776007733441551971134477801136367129304953999001983705760561472107745833441235752258798197320154370849321291768820404507449491093051786970567117701141965616954874695699554579466490245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568057204571560030883512548354531821670031202098881756656024815643339856121033521803122203872454617649277197607561639899925558844824712539754441995752875533816075238289074957943408478409819050499547223491767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376781127049916168005880869983507642972740292518890639492218318736923256039915873045117744833426791251685385329353340557406954661639399223125662373328913082446605159607568186413772904955157885328899061541234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274241602664868431018535792010934148995913294012970080979209338728524506836770635227193756121070552995770056852165473956309340145995070906849439995261099503701149114858356584035694439244018137587295066820507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228632754357219976027958550212499604293420723785566103352134288354032472088407536227477076722657032216145985308480701432711332327955896270335331133019138930987426335720748101442606041221949987395209820431409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157325681153660550492182290718208490667306837347413540876864688036281053463660636396370508400603225944423680684070109041479140807437243253754204529454923205488540944727773308677289572844835199306240623336014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712339508180711265203231606942139435044164221180458659728470198747058770491745236140621664718268422765043098722130253292080624410135651901924297683194184224795323048872227619999813059343435409634087341494009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218303715570495661114074906989061468803162745650430929296856492049391426632560049095467246245060386702779065977825588642987245795155182788954929379136186433549495607479606299394332898956071018500741297402790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469761261208012192364849601319145375873842088703277363104544410317520421681702024924246854339384818323972011733672714375914035732497421907662839518726209487736422890355550709956806448138539121394944076998176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273455599927565430849214500589594985838897219490804800211031010774694575030279867204560296682902433004901958656561523385066010860852470512592510723689039144260448041910688569171156055467655775413133784673435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441517032330354680593025545980840181419388391309913137803951658668856405344250459768630684647038529304228125371288812406383719196825131550640458658212202703344525150024555697185204494271266175570977907652201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964427543970530720101567866765146256209664985206977071028331992535522210179071542554910668909890157143522523208824935483264058254433228993388181433246077620211927635355605540181246640118064490748656792493045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750510980146316239573671434576541180542227401565044111311050586337680869378330384195969453861337328924716025322293697313224937997292800599267556724797579095349634141700203866341961453441828590549528053409997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466526509293911805432574169027595407190841762886773529998642546058514480703245585088002374921985388998257635690469402036938827446681840139984177397803802254291492591957492773178379574501072916189699932883137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108795055420743526441794719404034479651091027244817919032055597758773842727381310581436032811962348249687706680871902988723417289527936418706406948463980108956431535233422900314798101668431369479196147206097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759759861120961707162675773157297613346857048140979691548600125124206029878855353376478465112312928998520040610540065834250345163468563030940509789836252773934123544691012936261701989971395671039397745310096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806103438118860330575561248673326845606941752793440949702599774350146701995027107914478321097845715562188832741071097653063416812979334593467427567072441346943145162167047337673582685317196054281712858870830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691578406289873447376709234225782244945434828081265677173212580402386928936112556530820450653066340561490103696865856206381088416211250724374687218924209263026533476485100648824018753110775238799051914751301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439374227850627165326171004913012764765858878130048084071184414269029062542006789764961699662037240749990183839249623080167971334236069975708749062665937334634933117472389156734441286767762850073286742893474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657917119518927091206931157006078461310486009590279729514654677233831975300392998202306775086147937831034092325166793058858094449717802012406075320584269045332099732793580656207789144551244404825526930353303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933552341934762481168750783337505214486412300469359127245516840949343564359202084008663972887452644764168122243197900574037675204113145935690829486365028866513866718709840191265208719382146104962917716056112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882393469613295460582355961688596144385517732556825720040864066715726142874215865629365346667650305399437264337771175524863334654686617471029474257074711452408406935745933058106647910587257708703941215958349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015526548330332290324948488740174871625554178432345983583131736856741194821648828321983039293782089006668641656356329990025891242536746598742757842445313505681163336650379813616103342876913997790939565375874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511581133383047832465845377999596422451105520528225985513579954331407804687382883091817168865047464734200601615944581759276487831751006154057153340802777001733934869159725448358499570311690890502347900418269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578681115816638025428639454882447431521714465318821226560337168643885527949083722967271505859983902007370435204519621300668261863897112457539798316748358028660902437533659703795530174286017098228525434662822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502486152919425838074644561247566303293621119406438535126173363837578519909303377895635070998487264756328815771858778297353705484562184061665163805211633553595615713655488304023083904849905346402275363505322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841407706427789821115503893404172990784288779139603190909475642774628234645049618558957186727089305050991750825906016230356085410026150659958294094188223171176685610343109409015195560359419762952715191446546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455126197261503356980467429465446524107479989467997846489274548144629270461024277249451728542720251707513725879735089028835651237307514021621311702640482513319750428220989513845528136268841773267008825254317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488781224447251861194100883513137555490494181672864244172188026388165627539857333600411059599433600445109382525788027664814425790955484257632566676861865912705148389804415975502020223084423164817145782010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850676760927015601387625473877555130821614917863311075676996932639836360199843056398867930350363110146212592618232432920230504873973555103880618396303383920224450218778063418013902925080016547655990603908806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535581813340404683458712039407449236354697080135396702968920564153270576178507436941042162002813859740994458039484371712237808591610625472912894185014337332011394192377699272849879216795704857208482621178953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825197784512923995180948027615779051505299624564676859410800319655247777844310184875368377693048120859493475149575363519083664510383481178383040200872495432943598018399096116144252080810246154834377215900747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925532640568047587139273617127439049444206400176046596009726741995011180194421994703076386808201891521069608033731147927545046918070866330683047177127699388843497520361508386403092367707966596240746653032058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759535272565530522586777874361969955452700888850431275909414330236429519830928170463636710577004082355626345787874785234482399846943780739800388210355197146779367439484397950422615555306393729577597612139082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814823643520144900684490375525495045287112775902440268289660239913812266687287169439142423356907167219748529854906502866938531390027800622281054659491949657677340871738526222585319584765741013650016883548356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925466769707042797594707443992401921713587689294557714824440483700282760938444366726557959205333286363821183436202774646087176456018236920499752142614111949509141365939939598884968732539054561689863096296277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002184662365260252030829905573599629412128403615848769828447672166506050843093323577916341259867252410741162855560887417648349820714209069639040582853918262162289982686959759493805904885753681523517451496466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058242544441864130889629668960333915001324327960992277835339589184662575993194526690242146365986846158650593407148400860403033855263822463815891581183633596643738185621040582013281656985403167355638163019680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689000970360499259145265139775772983468530585536936351824757233378044007504755143509075612721952284629606722106216074612377151537118688504003714786281788426461390580536475028946907239289094722636256621257205691977369329031393413587569782287912428335072502728595632347802504078961201978921641323874369299169139774347271497800996496729789539148727048958122750145899044623890586964294927230354129335323876189211564588764429713638978164132213843945580346265579131440291412501168851998922870799882033327458850878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948191514649529198853619766896498777534700409893333797271594905193918030312440938121636064272059749937430095796162204706746117408573410974428749024072224071920084911858181518124276338523114088091933869905247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621201603586459098001214611081297486526766493775485550163800936391440387470440680741730711149120395595564763786368725212586641996518155272682610249104716189727921996372881405772954371894830012920612558250088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374248682532213362019148473697626755507600478474750713026331527914424648458310542617927325595978995021636498056801672170239863642215138491367894696651895996369818952892920910915814558041583029638779178693541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046080519291815736507140605213243665711748651865109586655317669933181738303448325237239280960676905236851464558272384358920906669573835462780112429104142056474580713944479048166588098158783472998391031027522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600759370662369931528510617800162228001306895034828243805988974280780978633732375367387515639962500202688917156087205681980381321592713346498607978324698826325052172467732321585052767727690807395180206332392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689426009267552040653336553951459594430336472986972522461302873983497304830196186945556575297910677872775472113472308106665122026618370236590083531181275297824104741768120054732854088244838854668374142336505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068254965253831583532577307988741429846387393058843241116758545328754899971955023003383521326423565271107017507937488068307856033254146019433209677063749357415395330037478839909900702531462965980415264558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822506753456264515252977403298927537561691817485375550733716370480511310820927684935994530695581210082285314541817055339623762767685236462658936773733428035587857812808211157430619791553712435643547688811631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112801986210384988301577437087384108280801447372876668190323709674289419709340243364458161318074772282133775375992468949488568872590487141814602376469599508013866043470594351749860090523183122013945918488907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639209469638005567006340478765610370824098048678842658505599647762752933451721794819545507384938113304238594644463901683723440199071880860774745846502332455205724897116515037354612483953355037071663354695583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850083632859062863381325773471767970860082863657847710142436557087371372940575360685199619901423261535191218781832403826601040993227680387025182826899050139287494337547628268055926443806446358529156983797510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108050107591342574231162743886126499208689264393552121508479061673596495341792033572993192298700945731199911697842268853665105393723073414833627765946108202750720135484799053771977521102080214881391072844348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420016078368342775492638478125557268114790797901786907065870634749514416252532134659135416115937735427112748784426401032091386953545141751045683594010162267754683709086779176383299513414680468895693528680453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462601661707365201502412509413289171747243577279364230528420491538431367186886237867006886699026954982422348265355688667764379757582173536817241785261396212923528146510190330402029598086319943328122202989858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620284920369110801300451065828997688939862230200298730202666823959834337214834359411418680094410242394805971295162152859580318258362458840738919247171307562713626974288333595200543374022971689775651438500239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224733309128902329783915701654709899025909633775625832771152197699012720654276736343144359633866983789906914273142987712102809813540389905181965902575287171101772553598109188971805969066534622525599610871060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878696566364760387833095845869521297413602123039262307275831620171532709809176029470213889754474404764535418138440232395192710500836541126144987477629576646131529273040826246467017087921767316215590235210339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184371401132639953490553916092843649937862708149230848515856910453657203421411183827241925996098440307151328839084613953670714121052722050610253405101940294074975957452717492953907938586063863227169758830913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655428426022137905886102004188339197317863254722606967863498146897954811292456491956275748589910851167660235201086703572062410419111398965080563101776254467899402821164892062993099395041626919363285250565907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310134022518229251811450745324961179827809809090405986688873946543453374152928352732068452037422867061801875774419308457568459008304866895218185054620583640072765206482316024479229457650350271610240236048276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077337600915488505485437349191072444887826850797672742474988775037169509964568506621052359813315597357709655906404999570137621979292143842319021934015133733714638856997560257526096919920416796982308783513389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534202742021940010898234916321433410966455236456415744254761628061499486226281979471209953326569288357570768742314825654762139665761587018860883087352063421381805508095387106264331097921834012391015587323449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163770669883912653893258830090785933097325279803007139032546111667906126220914849586424631374604742928512122584090588471531943843113310747680446329529101441178853360841472418307882287955388926542866644843467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993445334363159572110004778061319562566494190266100292052756670249815648374796640972093861428742821806717729444668642296989806010450055271820474193533036594764842861974188173599121091811051783171735572336204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842776790776195747512520272576345924105999269154185950946053770947153664423368160345377494478203803147994524854190241582254730780105109221383043888730097415958976243928516827241735402495335256497883617447651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831585990321764218085761179589830507631045793941516754013599164596088966112035636072409926071387687035353083602313716182758794943707880262354513499947100575161658408314018141609641484855569557304840323932205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565470672315031304636084548358457214462467208837762651946049230729108575517180870401192629859967437399667039842997856292449157836794560501938232289199784202291438461928771033981179532791964008706484999927364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607568110387948042645886919236548593033626064402769482209740683542342439780194853171920260633603021898499877395705143192427941574283714669171775653622153838039556125883362532556198988813839413151905940783614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856058119852043609907487862010633095050398949713531747581834943611833358525756392124646558514617733143009987470829349366305014653167457492149127422582208884946092094232114334628251716078318242748223680631197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936581773539678475775385919860590770257149851997929188620717554066504414367406195975690246107524513634966072493582493815286236865926413923632758445954235165302660337023066455584086230656244569711087919783006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651497009872703284799059993478928185130602369007493095737937181386951682139546812959146498623414918326207550263876824895095674867632026469345517551029281824983911964679091823935241871555252286326831894208769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369265243691936406940486516075632836894857192461337719895892533652652570482026720647698022098371415108748082727121455265654004946322613711755652255785578543862048439727451281124698930395385132755720873858613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678326072883851651589828190598366244240984123976754338199564138877339025561910404340709254058733122719515004390733257007402291089271063985702642339450723016625621780326505250808879203903983023905630409308301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925518417169030129907212012965013335062700714227663549741111999219819664698709566640066532421003947145178129100001780324540645368945014739497490056690622425714606805692549462264794670488663628935046253209784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253396100728725746329776748022624482511578553027500586014154190875372211315288767244349548893937126811823576507975737559186226095475879390068550537922635207130175199884858141373912082390955291049480886320773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989298239984803314307134208898676864918317664827645516485097831831275719666859409654673991686667380311428772560547672156667644589756821784995803697938800350918275358548373510238035096603225525565991415554441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644354019814710729774780115502323050776586429235572979795505513976023219507014587792644147392121187155759311788108567349467436775790869700486860076104855396740093966826692529948537691346709983406583106232213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212390575467578961132002146388875142770428485161410379085362672854329928261900912400426930018423089741947233718827707653645996344376750730597244890946843733502536860175083172039515236001787907322728885243637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721245414573378488230382467191665951105174632431279031560874148860708155483110213254013356868540558834310188708893876139373250234088079659382014804830316448112317620154024345025897217767005259876857529110799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874948829242061696496543089442346341753064626206632041270524790465222259474852629882180166510377391520956925717676051391512907908330630891313846707678071360829899189944905399843274940243889710601762751648654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605835065216371814375812035946389801353857890087538637799944252751397164285764558538815095998654259961111212635252183537375408938382994071476719479556565333810335609209165135879604317564521490021087374521940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642645711070748530076249802206736383779844598841477515071622932192031026050055150907697894319437834821122313171976968730832874683832939868019319165370266382003482464988882800995308021917638041975946273043423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459837143013400320349765295216438577834202480497460481356556278767001411676453276570915946987857471095170775617589719547014691405289876238634466607521691840515292037064341671434458101488124590410883667693696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157872176047256284368744402999903490723523364779561482607275430475073383579416952085411858141421163366331884361393046086404438120305008737474074303519812587955651210154379618540181768351639553142978892109793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368933828748180808311663214088601896279333796917967023892600395108849232222624879146995246944822132220716228187633754117440717644082563597774910049844113158664565521693479469938534589527648029861584022640999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905244379416476766531363703816495568807841719706669088818711189296355409708944935083808672087408738589167828057846463873013356329005608175565705186898351828853855818941876184643188554188353220558655149196084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864821959627958273728438493021076517011141209712718951367781133634522511943256406092909203989203031142869311029961628971574165135312265097656638725415021881894576960633826540252017462748433137865936683535892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400316307779313938878812426373994576617350578045486470971336561226910545268032335170946578223513263471197754156648001216476189153839445438270741357110988027382524358192945270638724302898388786237397269948101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538332918569261160013609052698074850778808097199220790549384644912998116044510512482015768134230369758459793135250764991726718978359204624413558353968020439011298808208487927059939845208151455527716045554509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347642256640078552027123596498418147809185247540517829859835871945090092645620322145679360032009803658914036592480297059704238934014178494089834058894208281375410845327194765940157849180879884127867128834697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880899788249617457143265389593198919380945373562006977956600732920737598787739533401224262824638117604665529549327760151654443398797796575964213036484953802973362973405409536566027156662095624204018972541002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721028038863079884248647959934426910709807053082895065139289872456094740899115049915932660761263981350418642126839879243828106390190244271673507646240245768175241297734377047211534086168041782949967650685806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973559712252757150876656596645027191717820529388510936944721032791299729978949595372179654148220468484710797133152924225658106596490768857512128315157570089156883907751592339497055571554396120342875806175188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099885315922357683605018587567855736374585771484106340133489759087774905833455397705795352135901682664773827250855655781354887635988320027857706316422404683951616571696563311771164541224971808621652553084508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034544208285371600231136681319091964102873049208500417437038337446281046462094277696378558093427578759878418333403996601935420267148826128194886255395043815153360888198352817494735425296130520588989474529789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362704147497613963842986391528708311459385176684853692245247913397018567966189810070204722123318045419230799439221508991833972212946648542669182478057987878265388133877917479992986271645433393042460911284741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616303273744980446090780906403046763494443155886989737215023060224087689628089967772008295400972862196936979990856286378189206873431243425191257166586084885331322342618432605583673517357559462474494240918913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610298886287149302046792275251671037080716394391237431679286682193444622476572604070545998596828789594818122960996644984189543550512697462222284055821601781563848932415629429410235472447440652982759565085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224784085226233338425720816810073396534603214984320697266393091865149254801370103838705478495805692390809071470146803194411882916774100108676071463670346097016587747938619865572514916032126199719973803490164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701311488545214557527650034001289474274223755834032167742658602941502854059595734178734907098015908582653022046578069213686344182383358550580440690789048769469523016824226895303019503849045740947723785841308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528774632307639477366220502124317111976697554070733311267595581143076643508377661383937418821198728140243019592577233992497745653599173737048234552569017468386181605906850252368717229255820454717814319918580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992477364265588541429930289457142976436732322262923602401555030564320283705186440270320700941330893074078971459341135466306263658728571889770055691796392094089540494967577669166831282615198053868579516388745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291659476574699341543271014074745772892654422996600802191430751632012114712233628868911003141982697620811610237200462099132116432607069198868028640972266780902380740359354214499157461979683557148136771420102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056510619675999908569487775939149115942015050991367741964053191223539274975510275226212593290315929202063227431563163988355989476949127802825984508358367998620353352020685460559216786552835764981566953231585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707412208855744548038615549299960111090089529305615092834665028803983155291889086590281766493385503602113010042614046121856202729086358517057052077500603308295180906193350336573369268872311459864004662237348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565813896692543928611681270286078016492471757947690040713838418710229217335189894076408089714318830892216393659687537987014204003784913012750100361893552864648042380140726687789499470242525139568329366720126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890898964065884653827774882015498940055948650851084658197861933024860833800725503537057526726162627120895748385707810716790396321406114798575892731652066513874141839901415240806942716415312484146575073671621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708504476168704764247062925198421823405671193175977385071213843566161200541291487091099968133185503456755250273948056094553333242616500497427369923689595571203234581644450618398094463681201084189262133146656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438391034187584136241967457994649202221979834593056563692756849359777671093103041411307312539564248638501455500757943604266544947470225968985102663374383018153260704636104120350698291007740247523365758424349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273846254259781523770165393409066396161418136993626227242206373381984306775264803874177190613456070869512882942134188943261411559837419843096506180799248248599557473975865979178350016251247911768205661124568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820705023281591771107908638599432662526833708351622186279069635134610001892728789722396733421122488552537949623348050174564571416968863601005387174928821497469289625347403249065911079477469955016629027142984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588527678672465468225260139414212638002515110525362020285088336811671179131453518274582690793621433828736367147855025406183150742638171351310767393576500651872257966213558484525199814004650496644293694462643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409378894332436367662102057520640498600339476261177306597900717338435086119046672830919191405487618249035409603611171758738428295310712978874130067815729007187202852534737368305268388208851900652888992067114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134317000593894546477780717800755411594479566368752313028096856384976646741642397940380978024006822393043975148776185510146807492444313049368424027979663806970107218594446946675695263158838285262613400278056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619433993760383134891953616522198571734006026268164233315262753256152699866044674282100016307871335675641760570610365397244034349964075523914459700042488278070090182478520476973060681827286895011123040202596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638442370874909562441301959987563891046520966754587766008659039521526930724947593463765524999573981368704682383578222135022751562771743922399554134549014307806588887145132813370761485025768523236382933147428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434027966266307402731316432230471242896578160810904602256804488197247067993494893743915075505173557882736746630113365128062806763873894435107340477854284494581032402153026889267092892734321622288665308079172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766038353195822125838995005317567009552936485078884042900036232460798510809447041187766965698527002242365421484082307424965912899096508885363087254327321514159891816287567811307051625685105581512671359344832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255652816656642813369025930758740440023467313737677792486726102625840368808169386094183043542160512328994311377533910651173174257919038774427555774666030406620099040630426051492029870431846013273895090998152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246070117441657434325499611780691764675964746879791515572781516247306058334526364851289816778469808818991132100393955511186968360232676578194608392777588773560940755982917754280861145433013950045524655124291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259149536037394115496098234431435109320221809709359780329549759598895081104350136062164200304054253525182009155876233217544217588085941929940166160003634391015340094039861381614185296591895827468622176004007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330757727354406667254606385566002002468570446003727540392329608743253281392448927596263699974608198030761215869443681254346476005823451709865886875789643460227054800708379004133051417219265941576156879115019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014500468628214330810028800342379908031603885040608297629418230827838086035227249810236770590604646347730952402490251187179864243391902530458957320390858507871952255017770376521626642185281981740507340026663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778020551144835864447823011547118441835229325114932572698861749122603284020727778843300201824351288952626434850401801176692189400301384623039255957312898153724381695307731589478556460254890123359844526030584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752745873654043686032392568120396815397806203184411751734063549646449468864312900565992397103980260552719134441217649315767012502328215868291339917094347218601990614994727041937223244811365777364784334202259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545591894888707730437495867207924838385743401098250062896166079971094418369987478443956767929238886241602443690271546527600224939349036905471674482965770830739242100152832723379609356923990338824465601298007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499970332980309505730194490517681341165244535932990515291198614709570353745265578742451856888960135130446546702707588099460903301835695366013279171879444954101560343692286480222247044767586960903220968422563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461754830545368993606820580388987724741195238929242163746784562498542798503144932995331585543002766715402629626516695809146078810174714306991744199865847329040165535665857626308050241495588477533489852364672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573602713021329448208976614103780709193655802622181784957122075851190422878000874592867736276332300969043780313708952520766671757271829986143936555118371669223725419466798082166668111039566043933750372807554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791838338588827226166775683455460042038732166503756308540835999973834420318792535151098838338539003290965874054873988529729683799722936601292312307160205509733930936050345903955144350530779986167924716144327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239252966766458754894673447577273356013838273729005393896656592230598571048482774398049720583821115538200989209661369468931771991114747170373374826981059627061291313996060882187721485255788982496057151197409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758699884109287359028743120393437627985164110324412262926311001109691495544503094533576921409803315676548064212577277675625253662101808506368182957928716083982340214720353625982063645520085231280580032671686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237438645179469844576480639489491833438525180428786932632752902447890475937940428598452749922277972100023891121548938382391382872989931731194761739061150447827928769110237647550252257173219481814737063013088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018558649870372897272343345722492789153260922324770228772629642491769808030278236217239379885400503625715548875361008901145686498282437678150512482820550492067614725271465218966300496885795997677522593974060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924195715977601971694902399328727439746588043656593649688016852863977515522475999764941859502680405006409698435113073797110441197918005746465493078021521252981008731406046947356590646892418148391263600007362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525182303891310399263375859652579616496449908909552435508658902553027859907755325901273060023553112413722883395464048657778331615768298615178650924137474237208870130880543952259278853023943092165956490984077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922335095660072754793914016971072318582441279892338820023779406397575365725162501335163672644359159774750611925713016230090937345100474527618016380709677370094376805966714229413589600824755383245974803932060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928671233251337556738716057356380028942990248851218801240568679236189247556048248749553282638731464641642059885385147743343317259129731711974000426498722243810614211032749924136371337547432406296672518156579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642131946178526062604999062547968847458530441305937394727793077535078193557627344106921558940727573628596944966388909215851327061017106149797620538570852812095752763294985766777194759352152421676877868173437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074161787476243110180290133180972231123824004466527025579134333864823384782408364150914263032146655473661759625616966594331206659851276704614504355650567632319272380345140253542128096185364065860659568650090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783894033915299223882332902538885726058492433074205048077496581896610609181058545419793248020379655682803999261459692054638058771364903148774404809112742816548241917457211102449742316156169247547908473075166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556997133757414465046934783022432710038421476879322142485713565646283401032424128263276542081608944807016915495419078899085838997387070670154166653384195835071697145193419203744574382051040777729732736083932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468605036883440776084482397002567762132357213772691392393095925237942205667698370439260789034826737347545283328576599177610125695553501926205517993980215710312414311453023069858987010303589421288523151506444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129918634214765821403830797952738737610527302639241822426415421509064600988318441525643072600146861460116194913024036693824750171418942259202080670774549157595384542378138860870217866424786028682455382570607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005701788311831237419981786872388251010597475120234906541684015733501431783733524819386198287179971086117048195607925864281956197702496700421100095380047388039200472454678730906292796860054268202283888668402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532035287764184783978631665070737509669088361316739147668310680483001761136059412558390261849754766696217285340358592190345237671511643133726006710559414359332135805934319651546323178338090818578233195716802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666669893892482737826454263142720386501175530970761558733454310267608916815162421264870580775063592788200735717780569088816079843345659706100924240360984178262541720215278830719157976674288514505877381337614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048307901722189787611415267584913782767136404814522241700976380245927541667269859014203411158804515183793647076944899216519582332638281683336325513023426351694440084457734264891932074127715509564322610386891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082196809827976707749289849712423880933541449510829425629732782669230041011618064786854216339301274558922324247867491607615769541168830213454217159658460908480197196494872285422924913322695771899106521926823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355862262499468390249780248231061077389080430317290598477045224303210033049575696595575909808971877355132748296339886457187784691064035564489612527351448682310530027781884310676814363488368688151979359194805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074186345010479544484728043228759042785327989258645322429852338633257207854943441007130491816007509571981783809560002874758275571459591214237982410344201199042980008348466798477917366763391675598123307360449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215785638215061003757442106878698175908797231054718785979450934163531730971342755736848046549368460858932795193878054835351838457955127888971075385264812591819795227144673148897830668144129480904387647541720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716999882546853183684501164335422424676631974561346008496308560574537359030332058584604742117198315800728930013561157562071742314893304796447468064963812931642923523581139029669949468001450688385729504988003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696968441265206780502194204287610736288893858850387324568556438816578846280988661820320357823033380099305913007233341323450960259737460520043570998600298145509578462832001513573592546027351596756441636530112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279809129711007700450022775461206617166915591398097656598227169631737132380233081894643812813486645249599544573599602734037495319810341373545859961495498360917612628539530787384570759463293037148822519303817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990520879677994407822530807758169956027111277585448684402760529394514288800290953802848541101226157784149158140774999841496292240198891308317859666915388229009946947450247844902571367356972639792830403286063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322669545383299223940456133606017821411886509292207929496640912160035905115388056492162705446419123651890820653277589199738922293901200268232222369773672330039382172367465305265074391406830947473212603208840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658461138451132306458337250580531679344725994305521750085317786363398194721774384983941664621448550518877066168902788747419777507278594616784819648879238392429701230219526438487691711692941913676453989753022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230787048299803447155070141882053104142668229481600816095024682359788933239467695015594757502235926020424722638494100311367044097453658610308012059308927527610728526394257529284362186377642535427818993064800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964977400488412357566686571614215831108473609139345000273200513079812815702225616906552683303083665638141347007081942216648482210415934349190820405640859522403880037807349261650300231717999314825929118003774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963573145618231904447704954866187160692280303501373595224123316964183487990807480804086899822172755131619587809677521653989830962034894093683856539421196123081021103471051742416434655171920779277138529506026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413066316801746797335097254146260959957881594107278065966542285301608309809482798087779954151330634185197787230301266392253999559413949621100419546078252067442508032881805033938921875652444516995541376477841671637307558479723386593926352240182260803169276708468269071288406191974911765628699969084970730823375647797687484667530526919298507928036681821437679607305087380808301446429759825417007864397304961083418619696619596322018403591635634118435818598205141363191530912517440662404939092451358851907627068893662709905594646893766800692046828363046250164021027437917854480248512861821612512114570003573467406925367903689095025923989154817162254182524520806003906004061554058929077320687309580061749971920364712097884192446667092044497498748240886590526693588948775257516401354367423792014530722023535768345446812068659513932726355927699659957377744110379091071568358658465622085862107139549354539122567328062952751900754940904896394388806425455707262211593631243949164597256491018425754082200472288884663451280304483190178400740116764773956154364713952355819997693590108417752197336203083262576165968411936614585331142075321195292766971704206705185984249976283460412316390812279089005602391472762547230446561373891934829119845493060944629450961591153675525286261059127121220414468417749781863050111297400394111935081890835733329055114407430444467585330390819867745858706466753105873320444866438195473708480984019014571108015111144466295074606523305173459452577257589307863700719576792849542202391372656825993183849635737174554050387357805408322354286682509834074246191721241065928405281116620092328296030172136384928510477358529839208709892631698435885742206374457995610541443705248822335802675674609925440227768400935931817775078576733453207311853083797369573820246047450096045240556006415683554046864181064155915986925744890303471460863686842071415295195399688863994416298501262198265478995063129214796056471849993133924449529728833783355225306656081139111557599979071382892418373574090519324118083275321057583443407862876642948811335953007811514259578279640928378127631674688525323298028567924732045320938542101580714740180947946116048627767867343775751143759233304925499457206276842336439469327017336108444018756535693160788031270156774329211095460374669864630589643299619579908391638851073583655397358685803947562940402286352096347217039450470385257108531336244754542001052596712178357874633359416592323562570393312801881979934876980850885387379015678885924959933804104507095668197806890979130475312701446911990817138057938235367271579787439956478915490640769381923678366723218190582136399034973143981196742174048660691965065868831513483401876813467904264395573859006548375807152818128951074144096045017043965485359053827804348135830772445160037860973737431472179402649530772942955247321642858586419313390462255573142876790225334478786885637977093220704754382447137072108172807262161922034516766385698542146002937106613178446743494946034274590970779402571198873753139912381326000956320636823628583078987415322744621275917935463121492158563100688909580778060593728283740660451733814756940668968790744643728903240457174689316227991526076700874957946365529810800605632053593234614913221150818691711550065566655477454978755929060742276192490131286777580134210840162883087292122615776509522101508044663744032978226504795848394929088091378349110527018915866659781539522433630203819430779722100749295291901417577525169929771479350013718996448891152064736296676121821839308489926024600418991546699738521967567293096434216988980634192953311166015202689067552639251081017259294741159705724670208362379144576573076310550469479661341506294987476166418457078238555743704747405720187095339272312325000336576544182150162660235171847267215331210750964015851018981377491426545299866692087088903694910230493046303417508983514679902569728765115044510267583560834962773334541439538796196861122862718377702626499995437897566186384522424473949249215054851012216707555240510210387330028459361318458442786733823142617697356364270842120283188436738192834713195087173122191012031672114110939589992288467480174165676099378781968770763447597018787011536350704268062034322219624818967910905627992687206315734435950789785292306967195110433305566783849538409612527795838910548796848486208679717493008452144359425346200112410842665667586897808277627684013469829419295802033057400474913978971059122642210407325578913140477467095216337310954671071478824347469732253620897184341401689515209329372895796179900974531322807631818289943318969568953047237039953890583965748355015081947010033649460754156809390948275449981181003115143112437162060285082116771605290150303839981778749861963500489080522089690682794915503815722397466511442040712132800560653624460196857385732581380945079434740660360543591168103854745541390100521085682696417436459269757301112314276156916406438293041441912580970015014762604508430299473977704434060255848315518370986210437182444909324499909412396968072735574990974754392902557984797093482190328085059102331850565958856934103697521787966167710423049423523510863007281287132147932780402066461426230078561408403259834892557120851189853822385136209728791951877465064186101050110001523921401988115501033319067153914966127363813534906201898801186062648881416943529275130201207444850693949715656963700528104436457965400855804416248425718544837208664333866575252285810948289217257839158191476913646032684476202255833788430706626820136562567060429166096739937396333725598175402369018835353007990159396724928774572310017813388850629426776845236106426208547207080605367376268476687684621043656625525457715582096848955125604270948386990045370602363886713679104249114919963014756467260027940693936292085268041593916556942831013701721500246134125553880321201748024661994057160259811420538497330990958586477131121900577851682135465676925436958683955395922697911981510567862427873863559696351596525780100887775161394859476530289336591762402297065783698536071100495347567572284079338746963969820527548854138638091280465567957867380247796245580749357238874918172010300891988993237953392756249295143063917541756523620565537533747840354751434991801696242127730575175317271408992841799710543799766469304839985765697038891618026889482866498396473822403052368385787917654987361628471601522751105553564227093034129063412140503747065387611044057631277677687955828396936068797492992473055757014507128648776037216713666399647951681218150895635932214508085348626452441380423193763653355274835333215583412888866477801396224946024358430223059175741552754477847166515158060159683143469938602241167033961033143444142152378121270529004152968328358142745720548076341739976854032114278702709946582145669614204935860051783203074959984999453677596390154433298372959877021587984045304241723688539565431132491280016688614321335901814598815345115649693087226879981544016379036258474494027676223140583830246323278355589704912287637551609935228638759482647092345489660404395528296934963273296194539263412540443583064912727969941442577153786602121596283848008077648600684421195128428111186065633816275879668504679093930302438194147134504446109962381417080458893859796343824476120094314750139145110290353458464233986653377503403288751178445621701907008268753712348942548452679529059672899114162168717207252789541303662531312161687184002908491401088247419290331003958533280903056898161959584146403500881838354477661617640834335657628291603652785505334292017344423999912982156065639233096831232606113498474590475348175724793522899893500943495075396373482891154711017298440790711638488229884179218542831749857560164435622264612259464028308647766387359459884245047099086787716750091393003821175198111842564994499619250193938047253373994593337731252524630640434299251006362772644042522129335363983888712558650282148393519537829121923251329550479427077479817573069098139817583642674915675638034024163503008997458846644559510526377303887533487344021772585481657032600335620490417735579097347598439475995845429765463674121075351507013851212617101709438816386818003253445607801138931545723258763168759141418393365682229624660091462055145978337911564647926663543627823302548582197820709974731091603511064700974874000731522287664739629127786218446835550020204307191420072846279018318639787025702772268782391036972445486411058889166911105922029444932943627035413309880526880087934617095630484602882766011907089407300282006643598669430991288386695237929866628178898427269704888604473767609420261537717791790967751278719747104408091559906791907723417208080859904286004545456751422771384737823411005311824430632388715284408626875660506972347847736219620237658441103372159043811894698293130692861159856453139893139948999833404400924228379125175552174621891287605139468988472677187466504785270664362574831916908491537125880541454036326747869539649103724005746130220293199503101987750602880237975002552157499644642453349885915909369543958084528045004936639830563782254105626241683217301132374663650818321551390498019391996251482034852336035202979892243773111150091658570103260035364444751774246989158935734705658751497625632680396958169694903975994610639763432305422721308762466857346704606223493784199198380130993928023652274191986054264249711792282050370537587427136667271485530946080779629080935838546546834984036355521684570343035006341023502853487766353047125068844087232667590565579334784591133212607890192869809935963677578312895726970428837993551303926951240589199844906046319277629905646039476875652776188987807508202115485364253791970754729071126344281360599281191735709921525555198027605603718090518902071857735055523271391396250159427253930237186445017661783595005367424528353346296600400846807272853318083527248634331602064968738739216160955927770747209186383619128575571939484457227933909841306594059996512638479997333289827244713523630011731945879729854695574966414860678319364121215726453407658070668960253185401478248747972806312019166738072237763920872324754210132174021931705246883119566130365670703052191237861779392569076272238477050523927062222837494238143061034403779823821088774143963139015107082031275456607954643371353459928062871969469725559248762340560859976025423380535602919869909560761373682770704428667046412247405699674920985983836128293650677449802452216780957009937928110107393230867893546477556514877507479466500875692695049132556126428060059883949951551625764082779816057275574439612018147497800451321782129786374375109974767337631313444066932216989790648141522459605796036374929385390580458098260355681952893952216695741564220430366437229914696760438644194213013675900169324226934913049246702707782481845523113461103453489273315060001230285383342303638247155025551368745632166936656044414642455569818231927411945082796887046941767029660195074502498516529806186805463813475251438433278991996092710858122008935766222569799359869922149925464717682101276519959597824700501422174754586194296039239459092882841814687748419136141898738281264835534324101696493465526295345563461708335109501680694022867505677634457147413217775167306207782187706492244447520828000983425570457784919191688417677178688630332126895491976457394075370098837140048702542926032963877928754377069560437339990100294852638150032628997285511301036985819326744885052228421918054554082277475276074653898905064374798169834717774907610376006282890619457639678129928802002759672944986154770652047321954189029670858378060569502688599152022861683177931813811133700846648282316429401940350166748929939240870575647942513199958612783309735265384335938416752475309684246977819186243437711155992528282731329513697878214074254516312686452327578082174391542146889435909773181565802205796404419421225370147991892788537903377743287340955117413783520191979152796500139386884855693747482161292716729572785638473863246938584052924674904022413438951883238010793146018342916216331965737001597942739004500063841651314517655908597002647003221302219852249741391577952987929096349728985117601811374469220942531031313834496135599318178835441647145038785547166597698246724797440311660606198912250415690904476466245712836382061667427564702775968974627841810514767013580425903857530620365729378401649166948271359285692735430676917886700049220273231626404070255027956209349621622733861948681106084493589560178708588313384417288763890931537407240007280253256276428402648656501968697974430425922584958047417922792534005525247449502340839265617239093094230060936630323480202108678868089659181684792736833014327146956844570493654212738523641976274894176037602975201615359389448762202357391354683427259462829509057651431942095955160726127413535983319184123578419642134288725668738970843831141046585600376882203246308656515410799296469046577706523795053459602461494020615605448430643787299452582262636091970063423456958121081018804294851368286739852132534519851986806527920161753896561841182522425296893463498323878626573832248821467182212392161452163325275670017042893990524654825877851241251856125788689455531665497546430475350319035590232143812858179275339840124608238907170546058359605867719902183465283057186827751076250665370945298883021196273029318588927084757014856899852966505733847103862059963894320941335957796447699221415378655112464853794392540736219275246848238284997312571864576555150869582415134979815701743782733663799343065090606498092983863033353942502182256638127320974354662244588764349940735538863587706720633681111322942298365405268821561270245962885723548264218314546143319125458331181255979147364840129146862219867375818977195188232785208093327828052850343881380195284554650513932469026911560267684358544393507628566726126650839453589830932080370010789324365829155080132238129887146480913564402924712524410024525254450802324615782206358687167110556932854380162468346196749237552277513105100126776057643879915719948597065176021389146406317350223384643458394835435027981902728797303202850846884019875949870378146179668646287546670399896304248334225490492446701329392472583236231531199712398944621765884271933825466621610382140069902302774264438571417574587943978979594815804972905977772621874827919154213901567104042498796038383987308071550425303932011381726233669143418847662675503258634492672941635544061641605812600689785048902465409536738448508044199481231522643777835892801077052872357981319176422544079026297752232994316244056822824048979585862042095903016753077009841255041439517370577205755550817551260179018120073513341772372476220812000860440795123951426598964340376424506082959966615608890385710684640291412717376571513488794464268910769410895310119099929995630930905035222777233262914701401786445146353118738378495543882500856927308783947452874920176886447311783104110199160063149881892999061015277816870842162138183955707918405119806759776959987531377577268878910886459165446898313347423547929805191092151468307163238553510387271875446767082952974905345953765259319251659451479336850638167973478663688327078954395966772983270966800627905395999829457773168238326073880180654102514617216288678835870661909367729796642225593369082458671032121453015761406563848832046204655115731003310627177636632725355105114011372947974242341799659537348942142140023658440811338831976175255058900924545313775605884224762865238760627246990302126704707809451241471629495570270401899866663201798423005507008440753327962569991771876542652570331254951397086494471914527294488305094601841529556251474040952579800990146338379776902129394085310248856156735060633863492368448950752823340100752025828306207113719059426781552141092186057054209610307132937255536822579473558746256777651645331092982287602837922593025131851658133770605209210865756174301233428908469922349735151163142174525426713978924805002517223209082124574110776116353591686046523764118520831045560051390958949873097070872311142547023121673320381085480920178739148793448883726854568921487783039001654774176228126058072835541533136900793139630006376970200762535050726123344151011142807093681940223698999130824742465401270194011322299993204833287467135538349457963583689928862329043972258449381710772590580394971625950663691604242881282548386971596653055474254354559734332016501747169426140864138038046659532238806099596893049398139891441778108044017768041263118730703803284078136515237865950551008740358384973781723210016623052721994787990743605742314099283345866153030265910880284894388262719286059268854625261181150655431439186047386383201495201419924016510173976740922604325484294565925858177689977165202674986419890749336425882430300822991408842303703349200032109476423574937082515388359612855402857151199968412130951329760106062238446785330430360528332459477151752110913218469296890135992039906751746663771754089316263526915922316675852838151330957335182944234019485759992887571589611373525007335299446864517727781072935550662001116627864068458347421220153546184274562778139563100350380090185222039972627590546827269914375360065865512634531653422399403325698761990327001829322904538021646980531553098829533761896730953445713037712859925458180227261374655690582259578692098980461167400939173233575445142418155942790416484050121752751116222484137648793952894876891106208346787576323688199506508172349368185004920139539693115045084063183316979565001151633008378271107497728604641519331149777186200581721183571765889164635570184488733065674121671104599185285061221968011073225482951877407666997960230384720072533276005946786952679051431952573547714111157306283794871723879901011073719703379511138790244228576611951347093824055168672986987094588552809896555090500583947977681636213599589645466936774116795236559330196254317145982816376377348304158535288710628200928673451317867057905586242287769770380335867189664400760452105077801090263740143632780046286289324312169848956969268126996557009611629781048808333226401158444986578869198915511649877595008201165471079495476162725359744314069895014347915521487018052440688805318244505486151055750824583348306015305152714103401346158717620493273768228117936382237726367695089960600576457607434908380867249533034011936473642216403187735017426283830918160337130530819470054814566633422929439437912961361179742997959789822201838204339375151390081879567578084988196711699577981480046861111020299855976962841938868761232745152462773308044657336954636549384040081977760970663913237654253918686820356685427661932684390288591996788147248350231950588774756415910641899124069125309416312561954109543530881464234340833160970495044930981167353983129373553934118732008867086710676292802662313136660983836430756156824337100324761286608742139189356752130595062633620498264655008206650187746333184048109653726939935499250846093222363891818790058724923861078321577979026003556222664391725444460628932945945429583100156730055075437247426211846516371207702459968277475890212707746082328108777465643762205089221176286259492333732230679917615024643599135638162060740858439742513315938986338310272411438507532080538973380115912508795623407291394530386270706817801468194772402893961722164417584863020451648879583761092985067605371677640104122787817955001823319726057461761188377946845473203989183811701977866220808018101648347143140329254503142495220082111433074466401362422531925987509157512173913243296534940120953928653470846315882150495516801442870649484831563843727263048169479579203556684457786382972288953534411852061006954504177044547449259708669886360993447006199388647273449927912722231658528362329253648259342107355249952854844231273220467471078064243669958423852863743227324420182834397340003224185901923803059005872229289610551499388306141350064936910473902129154397749453605108064872080131190490223110707230770624283391952893722091148778390879044959631522298968270822053048965601639594558607553522222159573834959609286492041366112049876816520941632691258940484528222903607027727550910423476071510260847037204995330735661652016080315883563879622431208900709419217345047787877409407146870679225942590522751818094928229533182148904042084393337728589025366508426327725814394860195937648754924471152085966166588308595533616071705852042479775057905952120494899134627373339351797353749095540180502086242529471556100879915414706965354572999224070932580384255389746776351480895187698836463589425494284220731203645100502716078039833613170002276335732205805047209990128777689353375985741664585200763921687804857367539294950338409822939797065831425555392829591922969806877722796639729390777908217851732476108735564189670849418232302926913249449134037576977880000852120689948851950118704243081970477677656477051666007382064988485717104832272345711925918065271167048969229098580751536275170955052842903922436500482488074481318574364656698445218053666467548379873567916422013296190351708641479733715775410615161742404449579958031556111579103087313472099035301894999465821929921964771056882282986141014201946390542328584438171240836332265624325123838594776356730120676441085014753981446342859310494968693638264004641625964695149031961110485447759191706584392706760240031145212717647083332009417568873875947770632409980920684630534774332419452200217630004662282023808277804197794933893918898522440855068666909872615099934327559421951361489460327548540028247463818557430386722484814571204128940220014152688477096246122211499922887643919191089940007645004267363603359564464427081897852741770774513395840957604462114327655989257121246407049760606889475217788884675365773130888483170413084708302811779259466701208771841286594199018778750963200281102375514363561230486554615329882829990461745177485814776012313343417313877109055770936706573655020317579004306722930314450241991977428096762212425199286327402583704007529728174354804106393450637326750684346881838874833235411216634188042412330340349096757794165377908412586879828861032352788573321553381519883058804585315346904313089809636940664181370415485931496667115981308994408254571535523006525082284961728723967465082519004532455823574868772006674794971216360282085235430278386536117112453214864879424132133170085231543372774607680663766996188951228804910891117659551573649847388606952471668475237514464152133654892467276122585393614841651438581869173841675434827813176631429116937855646181716609663402912720536530254447638306533550451146415224708651212131290099900196815169592152430391022949696439063552199065139432163036534539747151573501445915609700314795373825072228643267911802228545445051006686838264972907481325848087102088749505142696429373925813677184169065452156108761573780205352795800446849136136917468253717280353678435036189012457777583386467700487187551541811503714129454911427269687720886195290311000652148060479389430426121125047463622256753934768192222192006351687668258215068279880160735706110805557861686704947486404202700061440097794418761478549764582395624980544495512570910640270832390814460092511777876520638039371357117644763292216214126564837394710745132290507372055423326208635230121119230099328216475364369237906325033568253135543303478962915330449231153809199575553294498705280190335116740752763665598147220612180438573003072978792173568500012562331806742598872401099689698138523973061919559283369486119032394925359441583659581613839121854119515199265507043722245110633671266896256727586677388238790791336450938651172201396285944786544296218326678451700202781884192400936490366272357443728744856331087287895845848235250820156274220792392203392045082819462261529184460706197582285213387796963236786401331304109955645374774064577757684903513791673253218265004401500646241636404631178277966053575667603716137442026691617218914299163923048497382542894221998545478689482567054577120830606966401517547011398438289931933635228885729811548286913596032428511636219222076679819006388404842715260865907155370497185933522605711810415045793473539632763998872325606368960841031544136421487826119285418384995743044276868385145914918918742400661902831447985922644596334799531028630278018311500893000765762808870776888556671136106186168996249963879937029113619500621550959100266394298058423177896496506627565297834415149733882552363364465203622013216280321350049361959750702691727832370138371576432302888101329633287393824573874624509689508223833084417619240847605102724686019144743039151080377748192387105291127959055174988229390755127440803641693282921255378008849192870285467542546669735739705365362454007222398956201306760481133915634972776056714496409064045114809482486851179621640442806897195762975356223618168885002728569433652880013184412121411238983851952785119481467901665284068838218695868306612959039774599056148703612289809841138200615859142471286229860041718906453010082032794088580385760890512269876008642460648269485048618629651722184875183556528814663127523768706746675269172441672973545695673316677184928439431385995773850485061097313805782920944994446323943060687595811900386026190492109839871969933647463311406629451114715205569480402798735824309185973826397713404114160166237752693577223614775634790555275216648241460998148628132876631187524107417432987436275385045777742542057576627393156984043856772914383783590182351736877088048034374286323665907452288539522835778681347219537660500846861989626330050330936040997822291481514752577183795281384891568049192181238360412271358296116497247108026125459205952486511422783391156497546662744867185218756181629471196471380668777153608541786941838614660748536539552580901696623778000065583681884719769824445873229844530886990299337887795265719728089915979394193436752271866343782907936824440320624639601866990497231903150243625040813055353383065316109237895273339143697925936907286974042623404247587033791700221492583435241015718645398347845451758922412361367352913626017121554410849303321644230075969711058854695869571172632037985137192940144871195015371587916332125383079389694412746892273986101183720851428693197150286469098732848172073873815201591163794512301010196666203644541295629190355481051912534387131600152412478550452245480417085800974416436084037596380188386074895352662695035328164809681679448801761593992935630643145711148351667475654627759421672537822961337952004829042288165999567050760734870429085908499684909529491046326851763652246317013487998937688779842092948512962785230159883015336126834299177661463925494770519302050031055605493677633916328395389557886997769714313544610132496189019170570120182066702116577665414605136853434511733028437410975267518355759247185151889091689894865760416453321241702808114846759077301327254794609415509728678967187961801220443350296879621964404832788637996040983882536293823039583969837394961017123582184217743974270364691125810751594526635546467514367886879782290229559947715764306712652597185561511035747661042096417841247683015840339793601121187811200823174503714075700409271083743540108919934594983756706127409717699213954110952101250839813654956204515024366843113398973858736113065124745242321542571509170983114140086026489053937071277441244066907683167085424057300361178690524323205442682356865003270303065015077480473870024026729241448002051530677327019111454898739634929248920628971290478304492685380028314875358105997056148380692737300968661098886378902955732473773218392968237265964099999476679557605307182161869394599277816445253696965812245009356458994432191727916867639855789253996966098824872270586902492001784902712148635395532805946828846993357856689685299143803410528336938389808106541631250749494609447408886469083652165710685290293790114001017104187582043926198243372615611135685841730762865206310031274971446997819103881992609016646179754069102972565847469045071925244946583352764174639951788616905673265931633412458545178258082449007188501785142887176672083115995559292672621178256119044595069348961757228325071147520441276776575050868936709803366686786798668095854516356450456700098282130467124423758025533584949678345502763107561618567611024200622908622178680112434591564775661362731079617325234681409070011050097945863457244190266200577367179046123274420853797609726268687700946422725868500716364595723606381633847494349975206543190488268758253505156910742713458684179456955827177098027528168620203131954435974916468654922876308046662143131853417398650352264519025805451724237931971335479894431301843024011898085682842876356115113592545051759006609029317534197237037316626763104552677057284108266195395396768023500467639232238198895390409926916785915668921976462053713869576979999088841317689151137434627023755761356023595321292951339330688041066225809559753015227590711430726120998040611204959544702529022458298103260460366610790784614562477180721220945378224379608920847836988153399857843835847623311114552944993163589565451707434941008645637568236524522552890279717199986729963816213783471325388298076612871462553478352971463013937978843229852958454395196768038647708119996215817080944398958038250707113582707983347809856610300809248363340106643785171705008672856057256658249006303816659250276035940142072432533503290715340643720991049554417219296172851893187876675409135877109975306839422832961708480658343497111814009227825302615934813947551736035584089426644749330958461998620681292484299900690495309560199167359270034227705807777257942989192483507500026253575382687483236342276724808711441393032576445162636301415773729913585526476183106154750550543500397887915345327702159604456635703067706610019201793214017147969716738469733339707056058598922830925312952649427953618367607928799401770860176084753039347911247886123969453298233627503274176462432178205058631210032808102535309052281121335769067348278937719290836686403502827994706248624768867044020859538534724137046928259372275289596415597499167757872687009614379339091219386991136301973189710945603730161110976662442440018178065055572462339859256865538611682612704334070095180088689713989492131948076545616095446512264314966934969743616983961687411240926925087916495101225186752483635616057123486384689279645666764984846476716504656126699086548540370528105028232541582319648245828614979004180345759695865716578935991202692404754468625626567071441627711432070572623204570586425486485386428718325923588272100501781925910321862102525429061064196493219738482292467214508802767736310025106146589875281845672592050079006099263317935029302633914975478998055915983874072282012111603184744607313092642236057201406831874074143684735669302813859684496367816355466904575253185482659911617918864750699221326838807888021781507987526270959165282807676731436874076260554027715833284666790562252441503160456864894181125999979503530707283995418800406218376904052860463782206835537443655485694778361506263598993634787027909030997462772184241100176482159012705671182087668782275764676994285411305424284697967712936556371908112434752499188941044238998876558149098163133828344398678830561422069948656437056345681695102097143423812653705290231148917416269759846890675493815136882312553178553493746115050458035667819443184768513482917267953046515495980756411689982379368626545225447682319382165559881689756544989847223360804023621521263789857002732047970983507338475588088526560046011136366410695357973449086862143285777692977138838668754917368355359148530578245719109983029831395137570525256209580954017897695413946151720261764966079521063305486458118903323277535560804209288079548131044308314254117564693796449370088051788439064650598699529934562288497813679005684246906689823480376722839141414639383441970505255527456615243070311689399586409521846800689011361913009089342682782883757056395195330125180182350049293106972725805703196643197756434141864919570951944115202257960157942174332998712495398481643215884016823180156768220588903344340576906238372620605419470830269886808831940015177925067757175174593722384717722050820930704159311736220200038813060788840091117739664188836733320446529646445934419768596428126244512562577886323153831909565428679230834512402761688835965251028829254701745885087785467432335413143581398900523422703880060771431783425266802996652515958052673968256629757854112732459999634827193710570217727679088300584907363364013164799368378780942754761608277906353980263547708948992177734451897291008461649056912644584004920708308526064556605541887941017689160277283372571529263391248090560002823379201775264068935118044977919973237802038054845153464214411215740926117175317752534252312656527895654799495249996613418668561137172657535761612467563936363465852902198835935831392192491393418642454135934428166038405794303405858305951612584120866417970404500557090151031427979014579958567197456136453537244757325971762416221665609815477651079243328459730350221418019104377848724061746812837199614628391664253480309667240241178483790511869883383917902679307649564913279665781977169564574759333133134262607748971367197005879051641105756086803903926865826348706345405515763139861676381077414451225941285507544942159529485739898630568471553514877119332279431038600662876069707269223883921101042205418231418783870028474888838905667506331222092051480787061361084283744060089044614667973715826272029111684229324748247891789685877780597760941818644316340028850264536445513550671213401188690785557499410205012020584369359438338431421187984966957966712318296941911718158049435257952406018375850997934371130880264021542881644344306720286303061244985371567180909678367412752020111345413499839171117253538517021424306732100031441372887105544078958247023764904752320309705960620761202742331730176569032003677492694227330322757762751700794150691302352338229522938042374299195531100137570087357404896049301491001310514828563869984292941736475578552941533379493920244023171942716029023127159436936461304778015704697510260615433560235322727132552378164940552536518894649839034517885744396354358013434976027147384385511984781089286682294577257535978429545434990952690776186980501260973242575667396516641860943350384149618387370350938070380101695366304616092407294362211337355372256317992452086818271670641961004506900017835172681539217865847481240698829943944692847539212047696704008917516980044735013401137800552105630498825434932067996417341838113208226066190871983360217148256562393710727708004426030257864375469141406467379988133306274980434048844433937285851420929071406931327851505346968127345232046363566630091702633597632388614244380188240491008510158252293256556727930099661715167571103702279090057724322645193485395815336762018043079066346938595228276348528073739266954153406812865943469956911804724376608938315621924386564103131340589115080721932867391688323814944776071992081035475388423453896732654849684408063510671575237120307503288768536916612388601773535404009108803958927512100254971669370797871866429220140145588245623424144670313230350128103244201632163057653771387099052725968494087829811861525888492527218603289522182402628298323270081763455612997145774658378547242967461824664384902978653007763159379196442547839488282680655017633162340101463270947259720188233353881335302545653904634831051730084970426153736764062033013790647873873712146452555336583558282531298690853960026366890725505682714100041735228984821717599940268074649141888703063814711532964678955931808651223026636997204711317478634905277669414273422723279580870002598280525801378538783200311808721509846232270743162776152941280404273173876699769554819153808427735709328137376056176693707288061211955806890081599398264876451200332178564869843209063760256299992888973076124774122838326961611075164891522825064454626830641722718033834317376581971246395144787832000935133331865522233895566025164708101900224467477939875010877461626988940950281310748569751286370900657719141437702967548562314383251595038525173136644265502859810576418370704824060732078711770552954530969818351972929411541825195835308336347495599789876319942510417438087738564230771733254051976361123906352198949174390525500247755923939446107776141318676550924068922230286443171562375620553253594758883418841103183260566160857078012412132972749166000048992747414021583437012481574191298877094711693311104113046464573198787106957011354876601684723955558088729089717469122036925118972468059171125745739439114565180610608056378653089578477353911887809522439697800184582364439544824465655627892290237229846083255470549406822187880347317899183416054026859967487218008132077885533824305278895252897097708026085078817526844197474750300894424270027730324729381969579912766676269025359762295246233268788313894840039368170446872185101395713247675408223230437822817504981212218492381106072004410173724029200225719476280314994515478334470303346453163731315274916269277287196580757976562490296241213427394749494996058045828871922218243736016280861644682942178448664330819416549098050350619393537344184449884818559504965026322264508622520870983941795161372926156316664116379086259966195848326953820640610268251704049489883857919242168650982917047583952932601194431057299970094882000646282506414298088578461198438509317434993315875405684618443087248169038284969445491491211283899174426980355442566720592375940150852875841205623818670543118901668180971789190221229351887427909219551551808886890313447708457777145492835784529617248746573332043166606413022240780940992408614861966164617915731781241135208581516991824554105441256762164334410701735120323683692247023947522319864680946657670084414776271127818203706739477302725271299203114384513520199463470898105814668173287078775610244204807475308420410443016348726332678834504450244842310917755167367076052841051752145229349324802842648388484690020994452862646418420347221657095686434779811103662204260528403203412153418624039613679265397630572391767808239419738793739699311857904544687873150027991647682588517407844000561270342803131241594006256008060316896796077526780558515844477375732040986866150895683261795987193471910824256221882689002334105397189176036305647134218859359916610040431195689986685470952963076078686347518088766821399004676927370948474866326257852632299652649029047557265564262817106736122779326818851162138242414638514198006184825602021620796477460122499966967228685245060285138006176482634185967083763616017717878758478721135242571274834527649231762646257436709226621130773355520568338605430705415874024492900357561116555571699857931310006819332853800182877747232509141158198505769545095128707200576522663427177149957535199423758520108327557255910134198306611780920840327015963024197359149660681090192953878864962912091547913184092762346231311444102527801585364435130263119592438461455078334368713210905114872712309587577971222071836071360236141627933630276200661513014317558424364472527128448286083347674941120679990018473193190469613014178604322552671008309502966151612339140072324812740694337484813194585701844194851954609071396254069592655653623192382949857221286126450946391949541107269221906175681772129328239509816329423697312472408434620676415165837242952236930174326841387410209413223159043112309008559178089809863981147242343125977273072587496545079884608503649403556360642136024636725029758258821423970906963894751585219601005670875761743422200688184018678289640797134211987989424200542623226391091608083282217206238321815660095637661311507035253943137043847640671257073659863704705747299557705633292492870667671578426397484164818987464420627326291809186345695140821112621118307784231880550483902301823855961986897258663753836854851880890027567239148796757475871447704496390596664763884055513983208511051808694673344214696438893651987429294500796357933677630658354791344094374984874917811052595293494608869603961792375636352705682866323356938754782849604914955943558112337629627949110896272845630669590312923738949873906464548234526530112459709369166368198429401975703961105018093963707677695746134167365949186840715979940977492129514475364355705104049071822680477534689219219223966559889264013833854256494287750824045655818033979875280750093213251659556264896843264720950845726942676196203246524253611380812855410809861388993231752761000593682748189193057268792705270668165094738441124135225224621640589669773776626694722306047925937658904054510890872719669296026156460569223470830776597249422251734490049588103258711734985129334074828896282286845140658705958220885463566222379692684577270800624286247083910001271322746693291077595784116055523253942755096006076083705334480806961357479866100345694290504874288654158520571824749343029266450201290152285085761374552109727391108825404901954679022537325594370109330222334353367924791554865089056103150920105329770033114909933191441582540393767103856151258970841315151528321798116250944078384463599269824851477998262383671542281850696667162662017616097056709486112509359420925767250273704083583389316097505678303544284000039700202864233335323800308367275769471670632072715632881451354026654528053705616337565756556156045683973582112723349302665713737615780888148416954606951892450897761458277305644711560367234013737512391133422213509952010356177643077090804473048268999177976468760034480364441486413463468999507845551020302988863338483281810726992000889828571936841389153981116763523701359960477679432735219462494183398303417727528719732165352397478366615988300018701354800725499677948156412225073198207773749493693405159261512147252409133124328535226609509917886242062147076181444365168205906693702697284844303506025219140497755126145044657256971231595797642958217968313207204976676286570471311714659716899414141941558552792132916553410803586453942360439763461695335289846339014437097710317188526335297860098669308669843526393418436970318857439062865471068519080023824792265970669579691292282779776008111989619170518765770471548040762342014690147470123007236720063747941465248848800218697254454637056860047232674220196980822142277847213930550996393066658835120573420953623270683351905374323509642416928024349246375291319682400703838920994682079708205085530265060841729064678943292489042266623714939148718520453336050928192722002667835450900672192934483571874004864525843619500945520255338530150193608275455081483677629431734666870183989663273687066717388978381705851435561662657530589349283799568837156619051174693401985358752506727461577175427929766541124306616885792146630482653762362917863634478732060481168564451331963377597452108914206426210773371687162905791090473783763999340317610132958656601786861508413202599439184688026600919412070156736705275210446025424647662225537968562211299822221366194969278051234613589388009378700644588895530093096780802205671222911732449621946663360850150959491680911944318831887557272880726049204842257269502347772736256681742643079240727324305549238831405486394592952167346120593473310812267074435854430639051354861245846923527729555959508163391240344880846155748316511028056596912604738220096242987861895952287301938329285962799349844728509583416182154386610869136544064259089115896981298974427147086063734408895081120792563243439121604867098037269298223248558249957089431108637654840373752138369775403725350930868402408318659218947543425465681993319202869736416876380780559427264909405431860868835870623993038093248937760639588088169278821723284010080077874468552849300953561681336987821881319879609157078006065875120413681055150138991407216054540732098424457112407869027529556371764996922732097345339032749384224697177560429121963794004392913939936963834312381057271231601654623818608034169377923236080648416685167008845800707990539901913898692886788685012546791682529572979509077814007758372919595259230778985290095374969314464885604201830724836681645348889006164184872131401761979206738425388528296023984285540130893392381411757012080830155418887191011712203543960412588136888048929394096629476679405622656481939225363716863010600798228698905371847071955248636144245298398605497226673813992712323269791352678194750815424751582595707182151747793330838053854225259358687900112017697150694846872323977569602190530277291344179895332845717225695951393984500808185505028461731209346332389767439668678411629825366441222235054206323638997861301160460642764252472119953879776525470989913875733370958754446068818103330791592335169400268050996900920168136950287589393771494933112157241590212362251549726987858042362441274878998655931459382697569314305549817950653144186683273288195130275199567217538237057152252291788997389839063017399172994785964732882451480573157662397274681272069283546859972049158200654932142637378536537776577631054256491563772800189810994441267947276921150956072802362828488060198203017705573603550343134769074127602842407027856245018676049368092179666630506285791925690321609215503829815738436504956833388199142037563207628943768460247661039435202294481010140411684096352222244652669840429640253001700640703723317193522076178313500357425684523102015448618474112946240496328898364055154538023000657624314766841533398052677981987237595528463455943508759753081225407831152856459138266985406198907598592026853727923008414753034616218457484881555487518028075008701148602056630051107952626218165099970462460938200305624610355311040342287433668786969896589571460526360133947402955027742886004823589976160326074985704712218455866713227141006978846958171262714993858982858592146253686919607865356133568450075766467433310863247115800710250863570422004275510279692222982886795051603903278422738873811183032977329682416042683236925334343948056151302774756556422435386312834139392655972966202638496945337587293946902596287388740148807094633806597996983165111929088025119256028581730499108412164179968432523640204120266603390613564414013138932212028730629445326131983133356541252058211952929321494053648823003371378130699337526267525734272054718259851934397122847549742322825404076626173085591797748712629887002266741047470611468698028702735148198879330690780405185216982872231913175583775553832930641934332767058711857276687145649647500467923706677199070691387000871163039442974822989518150941074191583828498300089051563374997092344581268411890557203901380937449267263259914733455221666514058384741593179377470138831092920729725748072689274863625450102261803654579949694183630518520334858306138860891537475768145068904830504743231041756725444567867754056535324624426384501125401588113376287922791445769993245490207100571938902433231581806774444726672317664560768234838627921390923872430415110888337404826020756447675776852313457857843464984582933624074648014159794645214350928554441465662367260070571074429471480899305462524615053954667294574547752230988593834922732118140121819937289727478363913024222954228322658127299397886975817429336440054623339798479236619185224022625456201012629622742562381753005177632863755395427686041957675848786829356580164847516468108506725307386935018654431860678211748070671023860613289732571244782397944323926851468558707175932678693358768547160344896167761171634129966733645058979211075460183012363336069114496418838793412184219493537874996652379751539176305915964610347152121465642747239185396502131632591123081652835029486819565713588747677239629019169319916776864587305875528874759709015918885841340231494453516371582046119392953865006309019687811487252002463250058595509732656697594088092488527662674442466726398494549409633358854494438550708277866043263766955889909423392133453243745869236955358408441578541048678823088765914992585877613493789393381723956612673264586058860998331302388177066929334834048048944814411828434656375280816656029472988769848951911289727995059763032773051776937678299759925957344752814862839444189362992099002413580600242332685520325343646493589775270690343598809038877648352811417289852206157665771897459969312690499427459585774890071501771028005051021850874633374802818267238663761105936721215117891006644603828092457244431417385808314417365876863724975750172418050556481564588826944241362569737929225594590205061321039231722794686286895619967419234007390131687938180418212831728509935919804705998908531525506061112902960745527654160555432346261016708812851520318516352330546845016309787686886251609553921820193843043220857880847407848236511516852457920537636285830047248894990623220277150103893542479206727218039032318085454935230021570322404830357516834614195045183770461312945022064049232543372082330956689578982080018613350050687537855173898229608645792613460122933642789412934723737724118347105671994749881325566302417485511254461353073138250801775959002057552568829353541033294058247633459548911914800263059411228562902099198297089226752024511822200112557157924073365057461275883823812394802411040449071889793901792134917798575028751711212449707103662889052674505062509392601996539954670766856145659300467217310496756990455624866338937724735088968724553086783819397974149839080870071248444061484882489613102697330738591249879037418706260010514215839040887612370365371352029294878765054888518285342824841003839855366231337645767092370447705443448028249088623220965866449859194336311920583162054531014457848223373995095568172734145085035650280593064829271852974721285323881753240007762565488990111484683462321804607071758237816362115737939333656351436126557882430018387059786827453486224103312709824869444225463205182429773306319378288052473627727901023657515838777044573638023243101059133025223974603254422842530476392499368741225941252534427457191435790426198559803235541075551717960222573100794037929632241778553617780508804949631587383212867555429706886595155552168285084918184671511976087907235697860364620410919720649300412315018883777045831139762918700923805268182097875166508952119937827049455139920444798943378848423122248762725989299789548257466434857557926460375862242308540160622023123958379396790618608202073848623338500638603716795394641282798171911311961478216700083080895078544581326695481816638625695092523164821917822134624141759133543797902834142377835388892059566846197981052319282576652938328809119668761048185889645442440220542748969112069333534552351730720139527954521612369056345572702560858266064853839180881791607076066138641953390753463104231631434614551495468392152545717652301762790713467029896411934810468624873109129058828693056154855010986571699431794832040020461502892242832539872040350919383645420568065798193492377797399236164339232844122291241613102368123841230940085955594392123890261014800241184367325721856692868521171174389577355671369440365534188266303219673712204778461396724242393438206557571014652108390411058025499057430927093659718121325372945327612925571603381159932729512007956007811205331463611272220893115014719251795352428209704638353628132373305039579921425714309960203390688005783518739818893141181303060737189155369873116976049855114076377510951304991139839324182677506786129309334341944600471092978714189848380110311027418843783292048283906220114592454197652212689145317872121451331267798784556044561595952497545298575352221546817148984145111384250814105501308548962342436284979104194400095354198478294098804365041833757195053081693362546548668506765948602108440320888369791785745623588814599483392712832581756647814893076301831884503175187702543381512172174738086474183691780511854271392830592551520369615442655792743340951740879029284689484767512818289936936963800520966258096309522447841141623347063886751542015041317535385000813287716280810470018834689655555443257656803765673502026726529968266884467810665749563509998596178894324430751583105497717634532380639058204773181162089074001240149200801923869544920213679302425802464651769831056714850197856958739975556787502966173286707949082756613216383025793652727117235764937197729881838765016004696019807626071729733871958649870990996872471749476111410147825901880118245361021522042204981976181635300339885999787260560375797598680307331475224756400757151879220164485890554090220069215710067763592498572399552763201444121684915435778005526595484999851247978090199909088142554531420111741169391548331482057382804145436271804646866262913735823496648287522089699583629003659621294068548508879007970609715361504930307097144793566401490311205530808240950244384198758241647086058648990739406875441311017445035194648723317674626024900661157888610971626885032390425642166579301971423307771445355387862843251433602125018990945261445400526852137717787667494322391925935590651440122799532365738785963366718867982100511224848175402924750136695005047596708441801263734588010662253040018506698181097190490881302291872876366011259816340730258132566262078794293937730883405816982294048034393246806755200085304321405383703681196744973642664329903378153525502252468254277644827260490649082697721388698375592442072377285780670194840754825024590313667177787679458280971200747091410334539792304070212470478959724163063167939042624636533153824680278462999849295582970677703673617809127448651096131947837554214734726097785221422069774417333930237588915451744621841465888174063321925106639986263693688001561290539774891786922752271866000006486886069438433416956897619104793155040737906994805414239314034277212056417610191846519831622755248470937887500888830317863573072829187673035632713538749271862784783688027045784857087073472818436550765235117062567559404561475108174628886513889489019616918735866440178911396503312482862821277323414956625703814366703949649642201742696525412503138667154925779242582471839304062211931552939524729565961088349107731184650661085378223722765072330072986433681676406634827126596611335519405462150242795988260339343777851368966589207774770380912306198797675448538884934886151790229895133551513178169447938984480551016044753872934602081056423999956531329438181181794916820664342298614174888862468891091040157838357890464703385062422545091526178581720960154959041901980817249863332365323996203529983358128818444003123166844128209215710365003177932767165548592678876429119443885218233896509449510829929260775654351813998833350031659441874901573825151534911730252921091190759492242574830715970710339463947729017711117954838753245430821919571097116313655851113361677992674500225456746172702619265822809693016765263536797856218150440685524250206327743120789245928073083160954493228199057876042271412546989922037225580941931329073979529846907496688497302828612768342445094025419733427838637133216298271886802877048859039816542665131221746650688390343880540662876132415147364980113225683524539644591778808774654570209538890575598696204337257885828876643040148602881347856677752231677008528156703135170869936872283959797761427043044338753674046103409626598140079595373380376608206680710192988098346461125352172626474614809062450843560918326623328614765717887367070432644964237558311181086135320630452731355013389325846980396507589459952787098686773661665652729409662709536189923808343523250645354065363667008123808431421291608489392606475750424360773370076978010486226866973272061313087712428838079513682325960493546269875478506976087090621394446709870504353997170682855777324556183385967258415295843880954100363797690748326392232269676310863039981067968923416082594660541196578250833791005176430719600669142267780803108635894954912666019682168984872798099736518826787773105328505919123036083903834063911136575293847387327396475869511903909612921446578009656278230854852576498319237213841985818804914914081220298366647625638953591530954244210238114009422010543587336021765607515378419898361830584080950957923288723131448256881159002930870419488419522251557714253601969600071163474474393500568456344376900335741760282554910888521532392506087844859788167278966902631720010672064720740459424890050807628233972035138346041011685589515018945459228325869990993583184838883333495905712543219713999285566983682627054269275987881498938895553277521957161988467584092669237122724294525243982523836417638668895023936487670293181515076725859767848492337458449430892319353106512504708445945982293233904494552069195194753050359746278833569846132022212993897490693428402335529626356027699332292725089430202063972785105589058443007897205048804412923489474672886783891502622888529128742952750435565020962942247367934640352551269544793314931432012374843865246657866338104602907702516740675225470354471781686148529224587986189617232446589528197151406141012192732756948471047837285769460924518169168799535580404984124110491975743929251100959314280976592191588701463865514029775960129535847007686116829226443748883090358961861126606849828180729560094573218650739506343957012535482591503536895771466916509576445043362651251199168204088534882183992149037468832063892195839677180721260732788561951313557657524341345366570848659341598443546453769453590903140796550810660494682247214518383466501317890674110392803618900144192600451772699029465191226253027545038060324885188360479364632249905482580495776019740854482383090288704159731204703163934836548926547230251529080407727077303618518251961201662424935513390875866910423295025219622274262425667159298289304043119006795704120100840947826597883650327603103028484313256421105347720758350314603861753293827376171032952138127566993973744418533716325063558390500476440504318465550507304089903892699362886204694026958443150631088978643382529879170065955281987833755417779176288761977750252490672963806218479450140143711027157594365404088338258179644194308333085998477598891768522529027457842168969003684371389240369032563217458039652881882758186777509035040778567728215280374417828553924639303017935575994696195281418099816035856227245541275974536963753619557098053523451326657464468262355483975934275684583454305809159838250894738928769210297688742998711895415173204358065191585613271735168111490983541922118283470365728867448815599802621633472873434300014617603878659001368802558127766026346001449208170959073372666103607362423085988438525246934735966099379697569178349256036933896156460246531209080086702727847741561036000878975336766394492456229509234066383358361325146393239122021141047583736381538827391201590659474884818049489836365636223485421468944007752508002307778637642480862819102818203471183174373034933442617797543695377194812821564298546505610964355938031147766430355133888829485169813786387513074991074046317672875953236553329126594764048735628441175079713904740055133239389619555128569785980204776976005252060680548352054715812429473628012190883115120816936817092279617805040894557835991309347632280801514996988913569688136111051402341987841705950776564048246311888590148083377611155237681938306357143194096425742267143549818473954077948135087788954885441300133174612510004307332540107531424253624326777980106057834007304622567359488688561912669235601232984355772650000647431975147022267052828038895005700215205390805702685168817909665359775812636888591476941979748297001132585765878572669679968003208967718995220502920349071802140169102005628654772960086926380272911146940147119550677284396877248732715812748042859781030245051328997441075754153570752061036910290943137069230002758489532125119784688464230106804490373289192260583773886130912107117705877528703187465304552555815403887856524173249573697748876076701195049289418324591821807077006224950287899840599660972843531403320074981937074803208342455636186316599741500158189254372358414756584357119349433485975635464919175251174560830819180438633576468307192414107500409488685010605996185014204586165368969551147587396066060761951716262525023678143505929992743236542178715953380317592362788987829491326901896017961588736995835363153030503048325861920935222145942082074130397798738379090640621247797034395114163048800821786819413639283924963789204424567103999952897567048617902880627342384547397844728193551281160733812632791742199283209721893969611128149769722842643702754075034764079013453331331324564963028811571355381128154995238826309068009825704032522248214189545731194710504933927455593513204206562153689294936646864090563109585365986127655029652850490850254774598215669295127371133217455907531571802909943258834053869948164099672325312246083210899317524899234438119482066431676943205728014253352052621878287214890835065610874192721644374574088327016759943094565014599538832556482404066112833332293469447382298147582021317975355055545776242963255122256361396446854997894034439749368161016591941235650173277012122574966526646311730711573483666997513141825911584614328108578758134217376132983820767519555975541957172396642226764547465200211986278228782024036452599026354617705964647041183230009657954902487137117915631899562108167542835268880911798918327001510089430933502265509880417268148908812291287082952109766415444761833098113691278977477122980202133212746589852634671926624555388319277144999140834101059524872569030654767321855578141002838442058890414682109669054337555206532913423204111494441007724598556415289012162258426352551147078595553213609880932895069644837618776325259427108701314679076750276325987325766791190434282627051475245364942311690421570359226975853210231171944589747868172321561144409284498744812255972316167944415034458684482061781214268917234825687477876627836168367743249408773244948988691063112600380478865818134246210720845544736421518472876874593713829842803509208275211768993845949109624624375453677491827465418467347459270497448425473396257541989940808113988809617887011452014324499095869529262140219339730031606517359189393323587541379546540821388091274730654354517356644909327584900617263889764584218459134590451977008403452259990961887919339840288954323562790608249368941546323611677529403826834623555194286330995651263696800115648880489294626619364652318434098834586027305854133387446270545353835020397571542522128525212821830130299332661790412226923870614682842645748068445855575824866887213502541730937126041796912427648131997461140265341380050202471813955693977026651364840094792620145897591381816690481772316593805505270690768397746184553099126023123008399979841076047829385141598878724798422390914376454307318765451890953265023109477426368636396795651027995433045501962995102898414290991155800188855761777033734674454678487614755250966994450659033739301500313160838320599729844570358016495399357568734065602219921218156704559208658030544608103653688805197213057760336977912821309760536858063007951517605647629964106247398349695899949168518709749894440934598359352326346812880259885425319651316359589443145420068157243560539801859680943714942865566944149003491115569797346153042368660689450470004538919216435945629122204204541554833978183611551289833126210250769674369298551683203785418677422376337169514555308472609142939192564006809487739878753639043132845210957787024572168036765425369755669337691689372159682642757537449497418005416994427085677468627943345741278193459750892923701449925344551435339662061684616286946318834116381687326356609668442661816850878358302201726827279515949196298894654714150300669941787908569445027324080377784271503413853735560505077429615383765820055942220959407277510193188046442455891294859364538378440501595920916918099209322085122672924749205144015172216109792122102691572302365693498551243092306603059365779850296871735291334499724162964734825673764078783302942775073652195965175395117328425384809993466669701185413116405189495265549500814393148266488144464640209407832353934236123495389862481501646262872514068441540323241030381292120284342758340771587145838104201688625456195295922502893750379438292604020974002976591306686065952755327510698794454143399655516194986920940659152382011727678666162834438312481666252038836576254126699845464566305626956300524145350816449079591479909647782002448130287670724944687100703971599113759347014971086244076651521471989330630186021305048086070345183800627956418712285362423280665412324259297091097700292972121994744426228543308684127337911626984752085482300415690572101220265546980356715481577352519046914043093788933407978357663892407945831053809339861714613321315002679579725818962290576615119916240999193263215059982468159612035086196162185140955383507737097381655129651352026318952939243562395145390317544223633130657390191841231458942990560684292537598977918245736986947330423936923373521115413358476203818142692458622068160517057737223332996119298888705213003969668000446336718096923708853050360875843204027557567729670050070934456292198755900985174161171010498958797084469521957848116947199891507108449626352546703160579177421169382207722093235260057182342362393439411167924584091526061686413002559143056811111779708277736151832307889385667509092809708369331327427004104019029461443725910813483549170741047323029756221693280169277049193289319141114908869724389042049221875825979970675643926559694021381142671289816729574280407646858336987035423399064120619089258734901166405703082400764912261285010187293510024604618222568315323826198069982118384010719482289989607372010907570340147326678500305625838998049807198497734231901917472465983722720742108557695432505903407033405048224226143087628088834201672994184495616288695892134723418576797210819805461815839733317831479781392885064825825088189657616971791871415017060915450039966398970448413092125469123200475844245375100418446477104934773844112579849619665499434168902643712951268056230282085270878043999881177877526438418231405761652466193118860690405132423239531733139514493709568694609307469314164276161660931859705889566352596023775307483043131652545728120657912367284982185753474555387547682602700226624748154671053178253911427371720745827165096276400991584750433634318265463544026404059732843711650722540326513665539498189050993479379819858069782186550218132703931536004981536976329865055365877436341521795877561245185803483099483370886025489091525828237798366834873955709870662763298057251921879145360285571773767137829961577960518685217746247279774458945612549743742831904815350809536033451762018622246012604624880226814489030208699540534068141543851849396599038459111745869040957358146683360303234564462806343052444122209949711134702414560239693118152077552892874878936396189283729487007933111713325796976022839831774557754586129931105181072396948765794282037558844620777071732341338904151955540464755763270276533801079265904501991399911148631955713222124599327298591184973501322417377527672498332161573711800569092997008018124471868966578772680054555115368197971988268480789452275424334870367231884210352035048530872411544593847549658620092222075697993203380369371970118620686785419495255563324660911586550421706176765066648772023067335212871229572864628593292686770613076925551413724934001927652248539432700595619641090703916208440328327989866193987592464676893911495031828083479399860466583725069502132569217564902388765615240185217012211621274685894817898502864744778728805223523568228520359372244127993663796742824483964378068084949230172094688777742518660795932453717290802613994109697676546634094312714343688065892069923889663399237781474789350280943736602759003646241613009187349859596342804784736956735049651242784358854222294503380011326200397158461145519604154209120235447053382014780387410007225248623183888193780192165821037441670975857353741134083939552285787470682184294374504489182475143887812334555863450776262702177165763086242091747050040170866401275592307039259902570961549547425743327576518018968833828549557132288485916402907228197474390843291625499233603130937725911624471648741422681576199443246160572956060077755727121477555028219570885987610308616526997434567736849345330753107855095203683421538202686763679904808755129976825548332690005219503130028482569368881011500900708334010090541605439705010448801241231425172792669780942466246160895311361541680530976880079062255312749586495569879991888536255300611324583354828575063694882255737304037192527978009324019657545394260194974997779469639167367418736987987825059437117506136845125583580071465597991832278671542835371934195490622248935956224872350015965515958203602782874174520513574548409743275382575552195680734777891272429525285475377416310543712273922030540663165394607929542801194972285986886262095970577136576745769464229858567404085499316146892335485678633144181922122136886299706540317111527979213893436282996378841327782939509892054955684786747301183738455056131478157054163011814605181258318152660993266856564474948642723611100639902015319341288259832107369494952916086270297793904223636251591408247034324703681924639827518952691022795031493373089983779927924543941160471591197331541232099717813372288860153630328005321283493922821942798595545541667925851085320640320984885062781566162148812846676727041620168984368806948599100745257530198237645384205604722679798456326015055493416189255332635667717529430341119018787056822355471201598295028936095633683611856083769270231506933402659423041956204596724407701136473169496910613049728321764084695335392064815005835018255851030854903488038337481831944218813095847742203769522647144417245993959341190705441636307972141768559382864112094716562019410130765693954697559964008297600535418866178823111020172715573022550595290335013740258692854277197466984463603029814118345183219329346621191049720611973683629567033419427791676238341546392166558972067100211039085968668390528173719652781392134501547568786291318332843345475807220124754674876828981892346880324971215786221858465238181791603387622054450261053527730169177366478088241739088445258913852404189170539301360562050253228909091314659975223046546496264872705050427985635524999568943548465629053352838905240747682823469442512422052432146049691151599502745119211568291361987775744299750819945714978774047543664667121836718639985938647758480497379574310313556106922648893323794188621034303009967129575625060330359032217667494155356337239116889032366927392379605559478222318350257576956904849957835534199270800453710290967308048719319218734905095783279092933409790112305095355177878797425730259126615147330971950212836644394579639594272143484791826563859652532019504389724159269468392524242186038072871266166423738352176839344656894225000557581315184030850597256194696235696507258485093481378292837221706822897942641654257844542009284748645428513828372778381335135819408279535792283988973991137735931487315643412685577389382827974403739403858089054758537646920265681816610003762245923078253690283197605974266134558262895200074717519866139348452285860670989229139860073767216427450218418990687512821051640714206606389587802832431977581088443726138355462961246061281033813110128147483064925001565512390649263760563155724150594446447578971934930991026680957081484238104884185792550051367684291351141125175793902226258740088453641633871277575302581962372271590742555475734011936308352925466276945714811338665484639021230369169058049540678417310559465918598303503065831399068316976483876101199519366253613888976226616508466733759478466304203938446589038464883472822845237953170699411613641081944696996724440746928392364130567933923015291910836075357808954407226578423150840588341954782356879973662184218680496876430753139516367036626375443913518542939738639303504732241669528654384395492271047001209217380103835760953115694497464875956857723939594612549508301794218645124976069095855328481413039828332195744156994123083932663795175897709125491779731184593992615345221399614109834910618405773674148244441335724652915031005080446257502537452754598551539294860423302145828071311737531913940893517121551804301704622055447973766966747893173096271481780432052415373985016954090511688306812531486809043952323243760231622525043883668986857066165306618190456852747466558716177265851650734155065945175613667842590715951852649232661198941992769783302883777941111750144741042290808902366083391940652111393237267613597885389234282889008977305473363126803325171091298392614849700054268616029942960963848864440600491029455039665291702342363466065042222960210987858800694421569857705366984484108686731050696302960906193423160663874899001882894951256155911024044628205315937709684265648034603378173148140538450449907592035509064459099090914452597256714953028272645215273966122182604134614750102864922445726576575452903240547143706012344312177520657776455271900115395334250541807539121915059837985261573370516229544119703078887431739989145794825349987158969437877343737675161566395464762435208186531597510366689707775832838650575235805017140232362041820853877746798302950844233833110374580653641907944749706284770654767948296218866925906821760067313916066581607858328425138624683306260336679546791249223032388929568772894761215153639603094062765311976690109113804874054937787515860827573236354566858067490627165972159902992186708613896895137370683173156800919554827792046505577775066888521186692976521103907786318443369590672352028399996432396387686732036137916466867950311217912679120494226863196952264941526031838460165370450925925788004244059443494676228555085452556602069422687732189463339027671535820222547033122347985668270282524598801234683953776355174689122536788123818919954637844127033241873737633256130422332711844450749742422378266197046104011122653275889557238498505763648049409248040111162770871555279884079036125727883591241446081033368567697834958256973338399561692398900085029353534299965740696377950214085190300644954777473548411684055102877611086419856726622678722878593933583970287883595451263588076265414634051480829780026991158114186054762951288199430838665320484267405555510253322746134221993103619477720495243388211785032250462292214245695555003313775842857102650520168844871279318563741260727741141786989397154226727632286584861696775818739529467092943452537335065005696013460731802577679099155134503484158398467526505737423974714748125400935781953545973458470765007447097325493931035952440878024276669846308426444638673638016286511939259851334195630392655957116711230449799232117360684897591755826316223902262248984622865793572796249103764038231040804819749428592702463212739006905074988773173218854689364243894209649285664424617526423270727279330815571558866484163195316141173690908132019027389528425154996722430348902376328054372916139822725299083690889249738852299592377545012678088732611954616362090049010456572723812186073402918544779953528995921194551880521382956261774080412733037942090367807531125676008042604950740619056487808050234373558916155389927465633076200800996912907610063205373231269372796200739054334374622102589957213978891909703175501973559378692404636111602720633833840903223989418916722494065846038688359912725214200892792743098661635079572837905143855138729527112983667896161918139486407368579422616671178599051403823472914009009792249130249978704003805414564064290663790392252304492171609589052028178161599011704358289134091358894393049509659960511332429448250983651074985148901512823058472152580251850119996729092301953415910466349751480976575854195444193866030102393289408190947927848078304524045296572175086034722585941757724710712442707798690720995580682225197899864793298473283077934323740885248180241259936076280749955223104632199106829980811820415770202403786723523630415869096428133036466253394949402426868625765918335222413541020048878505699747168524067286575194342570625734736675473650312557208374721707773173242611280307759065469239502290675828206127673498471063519764466442716720938461560725568203791375209490395388168627203084219274933011968906502185542429917425792226204508851936642892877228775513009477364630006424109929900045932466773531374440548668487587771578864754288251325710249958355230509904068164634131457314484939386983313477742735215011666976795032349208702667063334267712152648808795365929937351899242067225119480731326592334357720796452977775486743842476892616068173391692812463591354946096450111565885729253824469117197557285107865529845427871658302341211115530007466352555048245234541048573187791003476233058840725783349844254988058458762713484532692040225683831642322237097645471405091236413440636195922050000387149001957833598078100859888605597284847911653207087459343563080218716211148958962680089733082142060670637691930990581223716105016338135993918359318713030449261801897108928204261003161499659858596679590094337472123334438951788213921316896137345600884721183405537041739088655022155389774248059789541723435365861490158428369474900604308895256061113875543858496272691509108623975548059013623804035826260053073574512487107741426347751250977397730939072528233632100264802882297270641095201052883807867694620371563957604766114500580804771764272878001313127741324430272340885129896856038315246574743679823704601279075780608924227128322264403079900615323141020797123800533820530512191173870930198385367908173470015597347513283321602546122502724867125834953157390056206935329540235971715394692464427438802759614864941292475277337413495071487803353778663631185623061534867577670632549018682958003825878848517645563087087772192083183889862253677915514040364912819332723464641041042088110931260983961840185584637023543594672485749153090804859418312609672994066748441944008425983217548033459861740020043137850828618329975681776571031196315818659950490672379791787367219075156406534377644763062170576698567087492270750280876724620422535389447414241343631101664366396998808785733504534672454066921810426881156695438451339196056976913074521339412192950876911121752555502502270789147173800685423650303237374867787025583890598936305021008716646978571180516617315670294795858844262719841035509462151000546726532666861744293511621047567390241977309661472422087045241117074333885178666262283897595052031288720189523544821739478219424439975899983500607804123879219306567932572487287019768589246523250669611473973008800477104433865437226884395682500885716481309468446127095654313955754758050793514267563138193621702422973187848122776831895740704846233538362165958684330857962853761603136764747847256586609266766292576087452731246222355044158659706369989276817043499411681279792821296922692766507086672448008802330978928203559308288859785353411978502118214004684250546740254977141733336689523049168314443762977348272050599618427960138243826409005405005054389956220325769403114107296693855412386184534165135716337686204154882263119603753953515796511561579168752008167453622412708438608227154950444416068767350715278673616499068407910205043844601230826219496186924400308314293044784092563118632077751264305941995949177170641308906867774638543917793819757616446811106638932358361840915953211635978809063329517326102817101486669486439611310171755365403322789044470100197631212341076463636245830977326893259327741919571499244985596469761730467291526992474055576981593496630773754704071040347974975517710849312135392429329973675722029345975758802576403917756905121552802314521029313049965333937302320092050540968566150405868034163793425219738612936589718569331253741457848278270086059892165403956081731874297587191910693275712179952087320826981863598460067276433876482068156113679122840973794403556138714059739036867993047423692350310653421466641916361401970239342325752694299027469339644081593015791879515442905334626141049155315688450125585550009133220611127010184435006952174617306595986416881093816304249760877061545783954493791871917977821405022579049672212207781602380149238129400854632371404052972776933521421226846185978211744358524205910970289419846246899952324223981655590466771322876361960183848743194653729812296335274062864396104175916247182063541974356857130071675436810628538358587361141488327923310460061344514130864700024719564721679855282367690019636214043564985333197688806488862002046177902558022709496834234610834925724753544521339268873693931289850485958822328147510381188809460451439780369235292336510900341393458467850412291741350494370619605866619482665643182166566296456063733475093289553432517497273791362242708239356455824432730660077315547130178084016931960752234418399227001189768898484463505526607269164237837900804794161768433438322845853768413811825116775638388925839402012061356744691967075752780470693445818276915779568602324958841160289598378405115255979783881841029014784762345089670289667288889647657977823069979881927088351349330445898170864681797111283818200204419749911772154103420516542702703199984663491469520761598650684885220316328732259038150648355010008451778437545074361450592219424024187262824903563412652643119265503040632025753660531509186269423040093331024829860919247004411577693505738700428590486697364230705586127356402054048267764388090325802788508769099480925732901733117165305467839238783985992084494944282354551111075567141794156706197119864199564089819746965038359856000153776319786594268470653207291301834658782449250781987830112350426129913080412937786711714417436494170413095998427749615238523119521635415716204185542617257732897542748964252455836900805206971989783405327952496283264156934156139985728673098742262140288518128600190846032317501333078074831236164178261380511779337144704148121189959190980223746787772812890453035799593400567204305644044935478026963464639719156600092636864217347411761939064145402317939063173828518903652398629007099830986252248923437122606098581030409576388510924389509763364947748584167476644141210442699677685198498165067537953954532870805499052982680916273410272402610841956946273759163057030693604930495517602916771452567323503367130957078176961089025569013133837451158173426087208091976896237615824723279969676265949176968903500018108711473857434983640990927933694547181562903452870089331778646260018484583502750939465657435197966246939627896713327530010336216705802806020327174553177354932757128128972230169431756595295821313773640765032582412095839422766174898757281848476302875186074619815953091451776753761422878153832469158203968556471318706824864146943554341864240898653402265297935042531053074556474458598776518827085892094219965186703306605540243235853057412498897188396465826949814140327296804009856740944722029444144102681929134110942187415132828733107982329251450661078279210121801031119704277690769430354497528305709508933635333331851096902389069806293571634303881507485149898279017106593644127074761129851868177731370472344540374560028621916791322136578270702407950996791418033482196255862669519743611248846594658272876564498977159444421182349275517498968274483846421554452254335777101571115312646908838680103921379271888579610984245440176035892736009257986197434102460936289896955972601919021738070097558023753808355062111992331474090884681435199033503297762255410262247665024469857171353572652882185686112393022122353021905162773569741286349835408390327735481050807116389655729447668457921741120944840199655614355306898308612084948698645171066737076918157254460466820282052648523358699249990805955192782881458694136822989769294696665752303826034310488580760551170830091971011984925364807283615697678187742215071103739953692766152452449653509100345288959777029742778854153397858810660715689492621308277949265494362107345696787855068738556113335206511000951672238444435331586671798353595357645119668095745274000424340154400490626661379629574706527407578371460940023326556772078370794501025269804793497599536312147248881206599950447324540529569491611354376512759235712601428038891439971320628419546819688588417529292266886442621434063384323544903587183699050534709475844958153940545298839146518631815093973623321405450969089453531162350231626454242878880321886191725362579809217969251069766315534866721289025535342766321179954188944080231117124107891063911791380111690841561471043264120324352019466878197773271630704885109519004363450847138672677153789281655621250931993308461735522700918562419626104815284640455268181769832360332944871799050874485624405258466705707820296738438699369354654364564447230044536227375266531452992196223098811764568067671397854379165847320950469443043848837077186501843256927011517134949617369807824269408040645009225068239337956837176121539057082385854829100457156285405230944770923367992115848871886152442294590478039610523547752945184329182177647040126741902556257847710396875503365299622144881793526405867813332621592091349044189412312552153995977952657068257462407649548661139248146700657227719602495734508058408702213078799454350725560360218895109924837033130076618530852539127407692038969809967691756070148475757791425271380220941593877488494049646831202572153355580648888199949024491248744387026964819045617856715182153214214586889657263425577957562652700629297845964506174896425300021092247981808889462516757327350029677147050327998757989962912792874660757819647948475239203522264559406312628324841753975481745701065709260225931723208740932749140097978186970260143742147863179385313081557116718016184198850077060828811446496753514621719552138523925110419841081641404822044249417827953801735743096369443649506351874820396050910708920984431416784064461910936771361505772143004751642927846276061258793264955586447186590298481822016021004997719836180377821189595651689225393418263501037136321157781214602370936691063219118839169527053631999425358449086023980831429872436326258410691536617915011710034582739884502300190025577477431214334215609102142563004729295216805128221564798791314836123033461102775203382979698476487510753086209628464767863531202306860509871808751282265505281989169994450545825287427459706340229603356853886949799382828014710998600870595684841215196473343476633762743513560052413635371901147912029922253153318866025153770683310154889099953699017173694298447066677048279322448234182065674258791467811151897477490725584891554664700433292220398950649452770755329322994262674332988281428255689657332667865756193371959390806642919147503111328446751487396357728793429897564133604265814305092134813679852888292572515952463686670526471898396196359849211341569531986380455814847907178090786952927279184045229430102942836711083950634842506382085558653923276545286227266488341850748741393854930741763027955503102908136770694302897012025317701849418209149792382963165602229836198034820405795231938132665460972135883930448521662872143525751137236845059292982495611474226829218305794265334692259325226372031701919998447675715410489691608200556092938804385615393938861080003889314155142519880728134675709393315430052569037837144515997302344291450569986414675950303181271527278942502383466726331733374558809943544395003677567031091909407161141154055734088483428335359931921443710600685936602646993465720093603162344426382151424428391715961465813174247317051563253482379314749449200697954801646821898843327591528070953988212683989364231810654890448048927684892185471067697886135033352449811386163739573102680251642313394115498106267049750201361285327167945064131000846851005211213639958390314022619108072899098163070206354131115422666078695487177382021410547401402403263196456393009621855171291432652442745944144182756021445515344045400287432495777058449408098403302725818096317965249173507014948466841572546592899494762363700598048903965763138240276942366626226901514789471169049802549490252587822206853726045733035973090775835393170308887085423495312230318022928795990640501773733442130627431431286152209051808992390909028791205122311868460241332786097500246750791712605774045752925643648232591599931664450989019146148028600254823438719690337398705360037631100238503088551562739426231573907145932473869850297213477822607116809960060440749909341853400572171993409130820882341230507612352696212454550842224014986166215731602997904014966994917274623782673017894094249596068843773894743154058947327147016961985825091282157140530857846619186132280610365034200390130814037928612843022537881128448946883053710330312357004346231659076876308980839541591685205458809476237119278899074678575366992814235247044117166525289100360537755973558843542542374651769418514470731452547687692899700595461349680397382329362389980198620565056246066813102252036805483248433496956896531003852375466758785679940094642537266615054675709129876236192670083598762678555030286306687993922650993773988460839066820820662301246129973037801157482964498260524705900201388562441463341058145336313282560532052005929264808303132120350787766295846454418916953734242813903516292914225048390362614442557358107486834892518539656531498196305571241999503513238219511869672381514583393490828597559919669721704534304327316193571896762686397897886844388611904180944185825869579602634563037552477583111543114762035938698507377670742765108248192897681013385969978614342443000676843942075955495740760932501678239929600457403577583331065860411555508146908508483995958616766251290531530322439401172444887403452240718053522187971473853132168896260285312534875858556725137078186863521169633110572031722370604678119508611426666560265806290848488172315565972646242491374667624461437195284569352215618440020898130159548600299025188585073573071529323123181318499178936373414539913411022035565410510107724359860556317482778472401379834746309724538260700785102526381660274367109349768677960974264539232419633798976824844220980191330548596452868142462908735370534116434769696472966752583007869309307984984271168790440833818632677597338032526824224332968073950641806715656027142682112303123429485516536532152694576106468247007076793291110119601654687799208741506218692435255860566081435007054636572825128990898652988276265682300743770361058062226645479965700376271442571577258126868254662946872399564065097283240776143891877042497676234221451309179368774606291685183902468031364398974169613588291859736553890645775130811934551982918149128457651522996407262983389641873938024632247073639276859512913289625226756903128989820889247134957014294468682265559575277458228284299728097773832127325305141699246552250666146559135759865547489426015712380877942847279114372236711153038274775334142424071794886020283405775938586047439950943326511364877543242214726631364859057771943537278581043718337900951798179631135089599605570568421753214407989559231848085248780836755006834594839342478328565635247641894933649224929770885816242315020491398043590449810043149323301059449024747184763989316316844434740475056811723746439216134318381268547094021092795718799369313860000384685143684582116680021828201299917480926398909895665394058295888600282744802699916980106424049242658107592127246906309924560742166116941838972040284553170733152315111420567850949657561203900768315674762721070457356617187840296262487211591769263270635913876784655361999859831823045145540096974268503775012008321332069588601973051218708541843880610883814334713432566689792627702443419921807686310016485733840408240758539913655790811783908542062933068122947293355971639367946203353915270906372069467342338151383426947141024398224388308667689896244157150644747905669323318085246429562923101600511186409568800680522593965491379781356366627865848254046068731516751685658713053052115870559273837534786890808148447224684033527700001191254671233038886156296696015872181330247282478791621978491164332860672224463528831053208583604580514784985209442235498471314113188173524407691698381700780317068336361510531335515330958466236553926008021258336209667955544462962234869224431908474639193517496015959286204453799127924439547619127992304158443289127305216912408131923408866168091854338242402945446101708827516088104274721924920945394697026860285263079403107069099130922043115964504298191085799442609001524514242833415815488227675820036415251050279035800480534280923023699820894145946331693593899070015559835064469082244498619717044307628693201445951564848777012594850115140539797963393010043840531906790743647129958471833213887110909982356672212638054868387418940101075400137881018393159148808747865878795001515539644076162577508186358217931011726144046668884818219456044051379248831971545712438419343896724755144423665893647185182260718836387507045929451981123641178097230743409552194140524464220090222166686548356081018514431715550874520307066813582038843521549879449603949472960654708063982456273947063974406405137892953357285866899900859908690670394343487080081760714050432569032008815369471670760999678083787526081073299247949817333213953183877832823591673701258312428906473547421508878255149841414235013016726750821791110025579725174276007393731921421039260329708107698190589880389161813825799144434322105291569057878847458211103826605498946693764305728200945740752925336116365750936006367349850284388726581710725994107849303081301175864861158329066057327427060306999694824005860864033250510745707713620352068864946234411905631680698924069541256556398194247188892203522432260972317548885317282667739103757237101067393376638089815158426760468520362036724078914901879273556180766175587818153830714572203881772971875938956629614975056785345081345976592828371823671924314009741054372978445101625754395876245790382089029349315014810483645135388892803043860369016426589231622072189666519355916274979550480092555159519046186067918808187226970297962202088800248778717791258102117894250727613197954310962466401977209723226100268637455300186190885982565656265279366085407822811525155118261704821756956154162785139637782479952394359312469752436905921867794263833307337392092318903473965575739664909820526187772708461695587361455929521981268933164433823973142384726159453088525408871886577640223851051087973101722522845299769476173758249952632471411817301602018331119181122281350885698210048181611461676048518736999561147171048969514528496967581258345361297803477323132965359652239063357421420204990479779497140368721532807064357987712128372358671861232848101428938668857037620723484479675929144219538642201210820779887655110250311529371693291996515388780425162560257463240850422884499776238946926963152865729374134301693600760353293697064178277877377930650105697394561162192403366764030907835414551383164348894499792375578158750144552064869347130864983300738980880568943460652073487595248873814528563311886966371772606539290129962451213621618212497585510924608606703292781986026525232632282648357227323918383492582021275938940571530411273628188361027150253648154993700996249826124488262917986728249764948743752377218823270232860787867414464676075600182094890673465740757676455255636422430212091679637261321178552432544516726617845496108737903746066329417692646345850239275544630030638667795115643109766170095008053674662921490319228931546134479522051756730507822406654121643097747251304495228849925423816543796406991093037267686443698771596745583878817823699939072913629511356585921262470605123799207098445306806751021923597625803820917959940362293224160002144948306949888479840257115758866426014882617247760922755278249318006124546804432703694942805199693247405676562139868967945410457780679381898678743896031549308087544850870841396937769738770431774286581696401871131875555139837434149480436738506910996892834084554865883150782980444429217813519681652065459628859248994721733329206073700725483852165986589889077098835465950445851468112519578727298313561434878739357789016506310758644069444839738465088854412407993571718927238760433926754142118240462413909054293870612823904674491829046176385817767365973869331068507357006883922614400496752244109439386794743104730175735221430687079113899275198337431708032830179968893744273125215821356317063512194580243208618521125215636094841086274928276882562501686289940598158930419958816428678871076201109560759741287230522131712605071600536828028137772342999917730050094327364174874089319317228940480334599855226410892982215449118147136348851808329524371156096051075765109787038763128124395958783094617349039834758336946605791545220589591440569186560964276508524589570587748288120413261239285894873523560338104314000357289123785627432502504636500743890095572740636949446188365286660543726152454172205829830850965936482841958696169115725932419827358324585383144016706816148734750861264875198978077618791749682700117124818918466138987978076114957261378239841534622457347391337669061778806054634749248021501000162411212171394543562120000272927378809068638911983351608116287091044323730701597837680528428190952153900899546814560480934772723899921077127088311999408311819022041478882923964542865097988111642859821695566288129031070650000932023736562567548443741799311021817623100802014046166684899134498942412244970191755576492854239923972482065041525370392288105886341191972034439414870165759984553384786876567773477091766714680382367313401639828407880205349546832959001441780461553940129223593044699854458941497443909752401223342354965425154758972141848937914350277894140168852816498143955298295540112830729059554776122500088200251227256136937374376926594900873746044344756874791717024790073562716781833766636490104058900490891903746456201786773831536991028400082287598197485352472502014372421047928487967599705577863311114044746980788275213095399080803117091873922137847363226332007664951635051082589788722053445147150516363923455862358747744662242736212811092579582876119166254153684657318540677262662818074645612365270570261399929161653055198046526503055454849917940375541108398913905394966914995624130865765744020383965166355787306178906142079724617567147885358069361700198445798435091165510200227365198453484798249644618744625830476746482617361233386321767888312504912779200926688484238181854808972739446180692274654904673210947494745911730963142655993105118144649849164657348892990956236056918074537823430166274316235950034507637186799869307186295069833110875567687675209574031434859002288112378236242261019467416930842492958188229097115975301249041505839344052802235065103086218445972740352939276989646953854696237284285171887006227343371697645499882868235530232764350376352044233031219185947358945604266835449612689909240130899833787013512452394879538459690393424706092469339833594451428338166876839060145419707922473108628216859276547233642121807873842997293257587252274196921100888994834956422769640231142753912447443241958951046868251384157117226630817803408346944469160547679329388942043396620864727227134058503469476983784811165925615771535228404276482497291625573147864088200401471973450965477703012847556814101632861813732440985906856266371605889070719967656969369557771869700083478267984657239831280624856641195835594668646336824101470663496905455558926516296221007684166189734544232485587531576541157523508244197744050894099009451558682966610670967090242188567263513022076946164741961012483500488324399099685855418687667730961363628557499053167283427905552087494170066782095830556996249477733433635071383166500916099445860307019912063620947261628162815430505579730019787551337883522833593019170150243774923829395637935896295495380106173507005062115379411613692454017793311067313680790629158577115343529063417402733746525121883693915935520571525480391410141160760734932551286532242006682870834932947027112382304481910806367017055551681660516170852577538970942707296686930226006489657414662072615047086137372372464532543782557590092567538422619308420193014170554457973751975300470416861185897332422455389379399588897257396558578662120421137705850100415363247338063484930878170556606153341128860737674343207140406875176845301024918944788228924670924764545357811472726834119812515793747938590136536319222853772590745949489165008906353103732934604820812754766554480334689750994173377227300800883513866121639608769508033277446327520211238336638907570173658688340714324957376376131890231795720119331834684075713003556003589101914426717948486409750703489157155788012167219481317424387469848401936835506425753888595363540645784595258026348940536848524566120713520282183609121072824486035709848598621499110720560382459194859829823543664747724431874436259385244319349885976950847699830301144277916640235362440694889364336665191206330022706964314289141781565157624136606794086442773931508764532782000051431144169384502136024538595273582412808228405148007249950595042158198022032119117038060227262285315277822507982816018484804463884542381877821710453476165937626072970888421769980440600360950716305937923533727603256790842966377149031844698075924229306159288757880937545566441609888103227332432611609552152055865572880841228200008754923083828398024930370185292062238770987704278101256226828645825820748937450657346805895735712702446993304075235454486384826117949774906522988066396915491619456757341717414665666776155891302285172493749891423154404203600837602319326891099755462658514424413069169998816280890748596904830687724150091092482260722119536627835626888806669171455147204065469867244613418392754666639492422275787260538619426620379390926492695130808143167659282504876472104863583938056093091373069208483881377562730641491551091108441252688428224477997658280451670887896100155962325457841694603139229878054528721555967498040850462270826259860992156066567760591964786619653501186103387301206818626988983175553856349333496203625458890583539704996418141434400220806029988614134685842391393401535642324721425301428591205657638569356277624708771726378207859531814331466842886144057787948439418544145539011896337566375370590242787878298698149149790489982181020529068797424909942843227323929273792293589493756346044711741346181187637755675531713533286944678866336852529977913388840625205355767274522687590942502698802623029029591980071872715439050757092048947427880811216175370570817778606572327394436896759719613240934977338071774850676806611000249709483177585048961316817104715760132811599797966971179648937493658018282931468853266706863564738459193816300614124738538845590045829273118304531949237507394953597139353273415735585162108563929472189809593934148208358495693346918311894798014433218146335283910776628884496086869637826510737550363616449216691808790491033399484824422074745087379193547456961564410207232332009042650394967045947946721723223141046197781792322796891151603338708596999475128428050100075079366668644883362672503775902521102625881334848928731366640495934702802062967005570773406220297557733498918427780848503294924150006562102268729921694084302378690711214874594089050476760915559737701406543115136419939101532216931977506053626463245629378601040851025972253251730926509659234796949922483311768116594806088000826189237040594980770400173967458218924295489507168771331001039785153353453147106859570944506053733591953658617196314970060182160151167816445877799372327454843702167196983240352158951685355139247820559128279615349166301514580517888411480971867069842722647325396278568856218601357551480258411912578616981540276091270507419511403965637928982882852274086014503953521126538953883867793995172958629270947841273911524331129259464000726134649249972681810945151440336063005287128811763455747440049685242334339885902991306423665017309231172549322356936462708264736539614701936146564880823663856871274311814628024296708416102187589986096496923503129824468202286241015811833808695873215776018223789618015767799892633527484089573104084610685377186963984413185846115041482873050231180669598634179338953174698177066866352511778784457585311149522528920915042815749224555913847113304271589135534111423495667324043853073572462286846922284083793734484706029169360139930409506545961900308183802527282563082209372697527529895207663388958110039346705019550272152540707842220315869001599513082638484197487776849916923922196537231665447574407641010099650617126279590178098819258884779270810165459373325352841280200757510482591165251375783401008951847685249101862211735553486369698415740199556028651242236187405834090844768789715421259530355913270720760615089738197994811856383567450625729469513436916789182630665079524311558263643719976037744462018791016135424477006273647656549196267616444680772190922929080866228112959884924781148671534257155367603119524547561565236967703853704768866046980213852480305611763820687575067581364128628780137765140619072670023309784587766918228333916512907870760866937517116891741627690809551757279698052016821027162621360697060416091561788705305407209797684930266376389686627360501139889883673359135139603154742889747138541696939293183086800212328963295993812716537221185295145016710843207469420490209766700742282746672221568338634130232860911046024015612304984559140952392104609756543648344461508550374997059553366602213462604839960122732736419106949439922465245700052391362273333832849727557393356495943155230901233230563434152351056962822867788210930846121568661144438707609582840671518753498089714331027439670232072868301053055854740611207109035935222453189737748928721223938874431654802090390081081088526692277246193143825290972586311246157795502759822070616687080487695005424198755620466992746639886393484868401422335287282144403954784228917454765827194543973721716746000608536862066597343051524283327289391251077992281717140591722360207385278926420803737929278643557802115835757358359060207378135471081449504904591832117553015450198368358598699232679936322436043562460202847050065834538669263343147898299146785381491643329373377064728561197775471780210572065624167806204924960506810145055444000836915853863991964055830272863321210271592547804919890670890668715121943494416990158181216296916452965667288822617346469987438060666365012549193529951563426706148368629787919482858285181278413770269402216755806828356762152712510027225321755011753916761857082441000569786355201545717750960983903500128251287302913885175974609715463747851581629121900284214937284094101651557061686206462220736689554939314543518226625017737147979968920612065325275418413914476113922152134614069286419355821654479670253694488544417123943334998602980270985027141815954167802543245054515169222688322276807058416857108824894008108059824363880693049401400360540588251472745588258232852976555436600609761418817454395068351899430644076770973415827497543346074110326888197363251029598689127139183273239406546776520570126856021583738546587562512867371973052008354520571151156379671524228543756123193671768567009006373542503094551019185119622995140325974379209354374209118431551168349851325491586543819283995573831259453672482506711473896296729908788858488825997010742272525040354818049628522570520823634851226938315628067283671474350559839279732606684295072635138275104197468897676725913690173065123657317195324310128695610725805283363158900958266984173539638487201652004906490640354985449237229427418378411033080777386940393450466333220017422240536339407527505982935749108698818541052273129910222333976612533246907300802700490258911978660954614122133412138919626388266617865561463442108132633077176078663806363424319091832541943227473241152377048775613809279604835764996953687485113088070624761273257503766591078316587857685506619883979458302690860270196411220225736605864073929143877225989074073598764473315527068466191670819909421086085140332806017878514301499679947363423662222918206903244530152501557857601522884736715182349449265482885717976992631635275384557655764406775448906682489966134559521800978142208672688630564291540138296534685734899671972420171760414562999130251414447524884878859521922268437236453296433880788511069933976961277826916254630973235354514622641376521392975068099247765973472612690939787221392807455856470999815894296685155627040336605876230534031098345932290012698322692050220158143430280800022365801546328825529047068250736300630781189568719809407671585126103344019382962718808600861169707239670394318126130974247111717901985743012399075403547165062880512649200956055134533362029263066498091540875817634021299600161949111034937515765588752482721423767972642564269773681988908821722699265553049872479047981000650468434265519305954864635159658341932560199539427254246373171515176352439514038074244238577247656596152456746699316286028264855040685912246340769663976942701366938829185607675820086694383375631459329417145519966697728221814706209062034976317120864660306056756149331091673596869262998033651598521300888024046181683318608779296650027792213476011617481352000602598951502189632641538513117752107146410707257793497182252726790059933701865961579327800661769111831676147157964648741069522453761145688792311508863036238407176919599890035658075472701071991664477592277306588961119394275860246657291646477829595177925217284078607443295113156581166361862904473631555156558233734102054109705539810551185877748472553177016945619773274000762746629160155781498938499154800670015880287271396477885553340501525788846719648020524672424493955186437255844099960063063002898185781127353194003444827534004296065595089225351860155422289176429463530972839057155251922006718225204483456957283024858158777835437195126859654267081696079823466167925926073561893989559028954229820069011350119992783370576175407125834805827806812389428561931111141325049331642605280233039814169006798898037376032099516438489058699369606830710123179615266924530464923746322846279908242334798330374034450178644803988127559225902046536608469102137948423688814526296968662135664767020142672532056443503131171444137713514673671697265452265465106144038202743516102254601111621957755376909012981481368832862481603668992773908339405147143384874769201164261948192396449463200446384746884791115170448439193867653031100824238704981524520405573962058183162486945032953509198580564589890874425683122925434507473734151952742364764180281995487317377212901252421446754042945855402423906471702257004464248759363876636706774796202442768094377854825766512843776900931420986660710187029338593310437732853034371688951848025477991273331396336672506976240044439998428715482735400213622800363878357808619303281309994905965891889375075383442692557033208903758324628467949947720161618492448067072606642394323219232071760037252313600260079381178885240250457731492535024973994254405139909972427789185118923895556724908833225321079886270815640003225278031510976686622833467773834941746122589454209800002909329690743772601386909102791406259851525059776681844010781670669340007514934828540555614304755391105331437574642294862097446790844758764683631789277308598851113550957947449542186298667749669615947444409273113200669786113808590545317626494590167819697149861399492269722338452705143809389513504644375512254861117089139668089366777973099438488086193319091043578607208496730738259379239635993284751004072727938626271670447540757192025039341919725451894831172790246140496689551790799869102537648909648459816709017139351206782839579961226311973314913377818343384193185236753866290190046334332853283434182492107191609276730801323536947264848927644297987068112565462806117260460733219176304741215064030201789320579568760510277525053043612227096046758453127386616521424194086834083758914009511413392954577009473174811688536409418352861099710341672355817860282349820203149986794017404171914028393621051948060481901824518008170137104219745921279840402426896300533553685494164008639217745676953445865088328629821658460164507800003598985212901239590070420266074498878506271760776222550606390745319477188925099058100936729891954099576633538658378098044793537799187712142977461976409472721214023532655177723616341966074376391538660194501776914006240684127316295860806350676293775125293436759607342719967513520158008737395483897343990123825656829078591144258828521366169201402990041314621368063235265086541121808474998758441118362909790891983411875376649604809362648932910439059772563295581388776744695461815797870419159755833500037728672460735185350885495464202930971585636949785764048374150555809918840209343333512819551455518573334888164916769442778240555433697731192014372254154192745059760137984144373599420287605255571893780411489261257983036183801077110050042392392644156922779005702794740136494229184793369253543248404878023177744518417795835582575476184254957539587854945834308480441737087984926741952893230314895899160068542287957892948159000687353733333338638139084209948725511726171087294408886844785081163455852692141540299672098869371588623222033148558174268263595068936234481342247378693946092325660075472125674141034218490131189639676547329167424718993424330280290926985075229490797094430092386728774393625511131362876159197383241349167226826122826312779381175080740895894397190025426412664947980176442016454158813176018972659624614413913192067850352463830657764016522973204708920114691713372287863037038453134194264414249664984474404861773851352937310809985947281511173650719139881269307482690614039286422766278494329558828593837214847507077835511989622491195588237045064582005610170205324844490215022945617655618592145743990095548229413751544136132915043046914179941224609338165136262790282788421381220775894240388406229433172798925941836682936792596042241845941770653019548643948170335524102874704473117150703477508343237333116325876727636834685844486562539187239460827324713500448957086803150325038676401735315079400345572855037001845602769961506156829141611706104616174082484626703351891525518824821272600725957656788991256787020149786679084710663107487646730989091471979879259859062573364973498235031260983098734686162739358057907354908246830497284097732381167082491516373468087051052191917620541698826254760544581771117993776778696542169925785577204263442443042074495489703390434507206119007697363517401952656322139282583120528240037466954590928045259687984608140870719534254761388363353511911214414314850552012358138062649231353833876758091889237975855157320365883176242411691675238145885920751640352366843726791759063705392197981126597708113947351671962999970520901709075898569163890664270423570074450277512010490394814832945744380974626035105789819540763987060787581774072491184506978842994138342060812428390148814872599854181480292949227878324356105549156410917488770670678201198591095890983868839511718380134914825499274914269855259517765361262421572662448896096148297970308420210516027967147856159406461363824775890201102519923421532100601752302574212237542107495918728675189552155329945322689425188409422826757744222275528207615607277103947182566802471066067738312063031466284744338620474325956850568928716265329083278784399650716724220613829453291660046380872563059524153288120937009922989600698139627968627956763519874182401856293198492262333643189930901704881995258827338807953265885144939381241154327320589164578642294526841175188081840509569046913813443077848902114879712116283977344305484614980793562435496714129473332666422483050043644545470274917232078399565086801876173270331906565795475395206929252015307064350471306881289032053854556398799210109566729828730479466100543163584623448744155540713381432344131178842419601903702868696242276246502400420813713504640159934720532755679503533906712721617790603021623997804185763348100544838870317307162552564799599998693531968130101562970978711673069649402749166572674943432081323146138869255334949294118316387788990325940109341115727429801331814578281687913514243955787342059156145877368988080791707114551154762661682081777574724842787971298154823852036895916524054373052466728731303019258295249876393209857312091610561357220176392716995986861088676061338436496169518654848604616848482407438381180741734222448394789399827801473422230578654102177292648209140948503501322415155999901630714781485270516144322582547801434401095336602393626424931385229405475364168364670415743005583729847040181455710029696234698505997788557369980218223035492383187976298941569772123638440889178927527752847144776218920574254531510374799777068623624218990630309628221177321970823034774545506023858591140389896916662207787683260123961741999762365506363266016990661168908868774133378091951614977054921417118191101495434786938206209808278789573132789906002086339112784715368430438149815097030477088688163597419253413412219139628745781099342483271410917827631765420963125071366926365882135751199875401157902802850780669833384183382667394553683196565717031946293364109272667274244992747322913800983574450913407993085683604846778665354210586680052115426486749723953793642156653587208185541259819454742751611841693662556324193591585695088905353141218336623998780221150424566001502364691081599741920254437873610226712941228298888053367943950329404804961677110728788103161467730371502183528902414648175430954905944887541042501680406999981967193798208277334648558158591077617882849750546856791399040113845624360403574402461912376944022007604214335733872603925372466408966491471465473007219529273741767961356523306780426820002423074121866748669462805878878738299523278050107066101385402880119138557309113805727558936819403093807188637937582154443516265599120308784820523937493518955971581551828048148078313105350968235671612355096316152866585785901952871775464250641298494510573035332433489097997209457291700958784083221404405014741143817095657712526715779817097676384786420648761367939457844238586035649664463140131048667056134627690174928322900432711208192295641589481528265584221926189025305138159118034231088514912266539179448174339043227005068742888199670619606885006733283536146804985960814028791196311274825466404370384782884007981579134452321016686737411212944968134510122379842940219479469166481503124318739691196021567121142279430682010408767568093738982054684214785601427768820188071717414127493674678175132277109046730015309467773069223290953495694491601169046818182723477816197512572785153556986162922029188474530269830156638749177021947605094174866841197276604440854832975049890782580615390200301035218027179209950817839121233970070027832906193713368218336961540826520392716151802279152864076831503299740609280483105062551572262871313276818247801169154937862483224017238370727160886419294211817185646748118569400870529961131410594582938703305286297918826493247420179551244232947629034883495272292830804012226372276110275203800120937520885624064531125037264015399643712337079037439512032028535025474827798093030202196632509329094488190574510298521728306996224219547101651939329769370654576333432433256433136391221083529135557700812650539793164681494513412075121883505473968595553878091947374656627903186816171364161521554077453543804147984545840634474745085680280862324126969399311229640560327310927938491691879333596148535170018149698261648003440278228139858790148628521286746175384850348068386520168074767440211476655696438739675796644295886409577559154192615071966537341081706497482220419135035223932036927792390736955880577997552601903081435508492475981857797980298126412519269808310756574659469351128562797590578003419323476001369611447290131137293265188773146721410741275221010515155865713493912768855730064565566635935253545094573789688358002770721080754685197902156776635596085899524492722049775299815458625359295568858655219086203488574294435488340176616830553266024583599445433095297362056428294745396641017593878078757904014319567264450256538964052007148706853706562711746676157191810642280464382686780641781701710145579987859492981028674877471679017435503993169683528592116481487861286289116375992768471088743661617762393098294982340641378280711217412378342224144069984863288239240656377438980846317043398141901704177045856467859934941137671018510482883458475911298599113261806311665209771093260254577766404781139798120273962790521780796565933483031963863726360548172617544026268435726451474111436197474885328135254323132104065537475356091405133576448451265031599499398475912338676258998862826742421410656317028268420274277535478527849806255477967309562135010751357010814376712097361065693389811287700643950868226352419579899875244531513268435771252695511656842606249795300564134236794032686943202212771552845229455906013166300233297861842729369705425640895722473147960842279960643121155722898884134069015706079169855397062706949869226131550595458162406654276265360989882469228424022170510920884522641938004050647235141065446293973629500626870691857435034689078702526688990310590307332020997707019556267080078421417500402487764369382704966754069144895634000929852354991296996046540283212995128817182931733802589343360888639561881453054936332102246702371234907974068125687248833528018208796868376748932865951563500158437345427148615342497125226151780864718350199049932178199155353873785623455087143139050384328696513876903290534015238428243963913256867292722487084779696809273656042151690402300750173661949935854471440415221410647497242161523037246612553017965334543540889800869016307189158808455522198431157422312945196703758626058776263336684850752752847903442501653764916331792832073572043631496293326217198412041496939002157898758405506883631318978280327068182062011470970782464776027629635132451352251922427860447660178455463586895641834408259553254334088710161510703674682452922046780848531852956030260393369987912529602307327858469371627037491448388916337500526216973323321524007087580984856462897791809848253427212024812725655515050305700418119895186092167878092709372414804711203209275216382196930053667750846835893865445281522353475575590763802378521519460182724568236395490568125932747289545698934471141809813153649597485154106854609786330324864298777018635531367450811076763860473346402957688211528898135664493094931043589036451413175524147809925350591481309531471226234135406460905980393007295409692136945644985787813148498347106185885802583353800866348220745875475776920674100675717787021480249068099354034049780869747523182136878867192069420344186215299004686685357497787101475284582152153509827098635277035756293849313931604238871689907398239561898872218842061190277094299032275736687186079770707721559232641813601697172777407028841345717732062530298816172640649801780192696415503872932862487451156694400901469103714665895280769075063099165801904028249123963456798392695655715947613669438739333006837383081812309420441592959517187192492679792971295029491581185269446544888160644890910857473849722526625613598337391783194959915065439983793983509005174338788171829551618447325706942293753652551534711785761849774779733167716071499421452638170475227272955705001733744013560297812168718861307295720086827047281509944936557613530068382030072487238918604555823405676318762623625890434079602395529144081868873503916372993471628157658628534654447671897796640094342024901643410848630536408494091288771199650698045788071379779515912042538025709198604559673886019016344148290099729713922827786387126308017669213704934976904380819565618801297909146507544068453180516940496248454952518633632422222614586995009297904562688659703930983969560235643889686329923323765908114248603580354516978206769488924866383306879176594263820092637789031658270502911378572975097400493867535805163232169847363385841973520487633945539464273928852497451674899046514594738849778743657589470771779435627074325722855361014929296756502658510060032181461536129285910693432148786863743429770205982545109580541744556250811648819563443233555509154070228734506176634898004928111484860336673588052242980276245065806416616460933096583227741201687004618647087354607594600235537343636685846300082989115932174654321735117553157555101863096588560274473288174361764536559262461764387774037997688608018414576447643035712983995556915655942311745306594836250206036438221735440965535395090457436938651043129342716658105214647736285604104271523729397812487106059859320178075773843670656311350685930588860836202347780649879758531784016729059787657028138758026032333379883203038968539991452029129125226423489661976339718268106023709597596629809185348190125040315899625204717076766399868353153196608687529125423115375034755005153674068684699567677330577510792350490345778778263396473876429056401644333168224565090395700668568009825182733058190424322611289485184918822142539686131003371372243018683955964417346708417832040075715124168083755413148247924004524308125367729689704440679643179742681593592031358215146396789238533146916848019237856136657063609422132962567182221408537658070683461685834963756556481521327880020825169618079848404748675428648124718923245727848809951784920023813214950559768609780439227213656679143255838729396288555753189851339047123780845594071844832836115336157802570583643859337129234780510580916071579237173588327126164560656794503480990799720508422730547419077811064940216016666629509459324696808278858738268960848774456118379844865730454320536892684034914234508815351016785757066687495637606663072936364979840910528400845462332617818149797614121818728612686534607116650955135477832306274118114820717164665265427099148478807776892823457954861106715049473647399736480665299537367799934023532749648010344600085639769736337322294714697302776409407753962883901258246629396938987701586208937991855169330846381599653959133926292450056440676097423169030780271559700744418327838639200591504192666472875278979549277034150826391547896926883308166047956420911237931251245238262891323911425925924887235313534140371673379930617119964803740766444036108277815093719892667899588375052554760929420018430744438964934968142535424422875482634672599399787959797254722441172876007712608840939504811921596748873955586267106549030213240224770792652497769449552051080564104822068021729276356152237738510636020972031378948389087608773044443391070371387133163749092821549212966094355995765425050659702392398001339719254398835335819326042355334640709072858048652141533903522297060471220130494123455357789547124863000470556288945504460862226648523847310733172230385641865311802179351207883678931632431925806448500511452822769747028812975567230419389696691151684034252191266686056130038452053893369112100812050252410879522034623660139062940958680638104861567034918952889959443421807536331295702241260765662837857763105841332497008021096395134916086420519405513798037382651472598999021247513597282764870480302409576924624369255111392235317869482928421855572437473618265779560035189015876875981442665762658258377735379880116858111611885458719903282377257659747925555015170352252043295945668950459779859313354603058046287121050992002653919990220328029855134990558952962035081185191162393317684154510610655162478821980694146953140216385429484650993057590184254772587685764147409170800507658641633769358146607818722445058379424375762870854540335011053709267102160168897425190172664771091187734019658761319238244016778669447316036433235910530463926925486473405762211664842699383303050481743973119350053676164505084476304732563764216661398181721671531112891024558516207319700700311254050520823829089312875756421875416786156917970097009380501429846668521200159151132720592321337362451009271857273494135289481232311599234615896909789674454130627626872563304682335313715965130004061533200562642138432231482703547358635091988446533835684004841684653835147529872668521047590091051673159246264853570708194303523598755049297733307531722035573470236517079315932787444549816445932473938377943652780031092775354373492970112030888508113851103629856205948834696156362320828310842502873761364128467264503679574982163446945992440232038663609579652731250489120123599962848087517002713559088212824459212365972636236261931717499306027800672703852044386944202396265943071733875448439649357394016544694254389183159395967500993298475531832019709586811147403411464307749078732347323831843169775800695104759625347803929053122789720283171030770441520409620275360661687750953874913564865489935285108137546623023010441644060787433799388659434319739727628098872553596421836886252528684292094076693531017467606143615040224106100657518385781845943097381666527422822359523265631560043634606066179929543426812782469802311078319221754882824844348942155905096249680955168161417840810580681730090026315272179607472345797447534390082662384080704887676620125669754226324768414436029961270632036424767255662395841363346696342018339637825422544743063280535146449208028401169350717192513434491759163446481547381600589645676084057980165902557489767118772253952700017838346180768335742506196377939729071866416577565549223989511605044361810205941685054187658471590296259403076771869386054624379389529177382974148463926922111853547905990950972997607473872962647276052104595112827435631270960595023755731806195452598765319888191583707806094607301046153140796722525757786092730919024691929884517398716315076857663518649379762973806603165031986181720651187867335919765239567443188879533652290886520080140499811495657664501357148699739221946031665890119202261370639549215000080968080493651561790444139936547321194227076271680662326799317221812574576091524551670509765492798757928496616737619368534354686042600792782105050293510602699110772925833223313894239808716540504631465861786721994997496972905979157918464803703518738864382027060980493400455678609307653826192652631811202186385925165692586594832744831643461459403696172358059717958882905838152369788533168230133145229299915405923022740585503740628535904597657859645738065216002631591774288812480183076664637707719985469471432460415430871067788218769070796941313678460577018382839283094791609157762283512933081599452697606840265942339288587110544086830636638581020473632094496534988776275786269905353915532791188119263351069193127339766674091486139745614525452756883805182285266087134963283884183684848013626458289540073065079156074102889083454659625380869625526263711592359482638454560872583686037619817067263374481287637268299887772294454040770678994016438125002755420169830230695451162998313431071889909862541016002935524415486259137615974787091851534025688881301989218844566111649106326888324234483096288804965797427103408223736673828255772507677153051860616483063355980193407109897163098840874672591044598887595960530329248899363852119394909682837108645713523456015804386429710353846683059689879680835873497857626785565888383649516272354520708779533467658672049161720879813149141698913756646454569742166633880288709311596552908909685832466209423687259552095876586763964525810627609539552914917651817376729189876677984251192168075525816004692672892837696502864920879878222442107140464673074851974371397605307432234515525321212358708516162852145380083686124629515480394533296837736424862964570243581892316862264994992186349832468121494673751199481950450744965970432717604013383552223608153400047959819368522309258814575459795669694756238949572473252484866070654288256287673592883976141961905913290839946916384100532188918694325657206677652323824731643807976960444572969446502834306166522169870802617575705124164111092073577262039704116888594037610584331302931444829065955684296487296377161321950732199716414417025654689461012703082459723841828360403116603489153716076232863966616561856000946715549151974673084232558676741097334029846169675642107632231536789799885806831989228308597633750929464903879107437077400846349362362400830084950073558164966916759777865808111823047707424696436047327935182038471988961170359008300455685125280509551066769960237387823537663727822677405205106153201899838061149198595287500266294554227352605814894880997940795238178862244330133236455432574103883704232398092141614963275539566361768675243817655662510133743046480820755285156491167182834541304723879598488899915627591908215219594535894398739198788544787855883930195317034712402500720728681966631889154092375629824773736358962930373027486492513691978890676358246153690757238118890003868340893039793751993065381722873667753851141716182146406300539934079367210950941233283505714265283194967469485021225058627404548110939587405372888096652279949131350411485737581899491522734135204022017717426975610324053900259385589578491549406875910851090044566987790296358999578580439959472228433554403913845515754590510122367709490042907251632725064389114149403143929338160492141148298696151260756811930048851604289256533437306862399621812008375911431730894419899802933772305065225027098497205959635360606930155405423580935622219990176155133694756828973901009351898868910230562033456067478159556373737243150513104638843684616602221058076605501633844395133927539050471981112677893784252742930717142873760554379041535781461948559847060404010163365311893068369659397595008458513327284730880048487740393171839649232121257591559863968310050334405605278988766114724308920739067717133448999590499556528668704313897455638641950652562633820072560532502544979125893728660693665274756954585549379365494669059562648221660110907222716643362714785994645999926749049549615126423085297640404369503078388756766522322785359375567721700544176152275789006884922246472581006854831676168705370471402932937942957597129456134524552754565682494397143313858049509737206075394125741562910110232605185216108762961134662379674361123425177993400596014944329479641646003108837766887059200488620180196337697614505829217689137668547554193811607470643646183550950427836763844727462071613819711917704444879751377889228995884738200829650704622312728062105126991039445893607890442906612891216488673293277124505955764999531645688888539374049657657168809130392423485693764450199912028784002735463631080280488390398644628663159407840102917796877741898286222270285329191455035549524356674461195336689703928030763361342278481300805902452322986453653475937924700977123725148559789622335055037140823738855989996357257681528249857323029102096633655298097518691642928076192749832296521944816960437154884759085527235864404802017581425754005293438794619643196734902934702696186973283056021266285835941429141764327043883997140379848629650744072265264163463428982919154069458223840053228719781301203428465115000214159693875605989584674337883215104458173349102931408492619625443010694755863267361339601315493600270288226537550169131948172167727277488797907130864591251768962270234348267173744476254036044361238342663685290979347302622177434409361004734383259470556179624247014795775993839612828218670404659473671346740038028868906734350560654196291543982323319166341577275777262556671272875677647403587825186324014293512309926524186105365262390689805767959009378267212512205511131583478239251417189326668486967410493386288058933141258364873085596852364870957352273551564173160005704356833751285864867987776268789119701741989262975037390169668114553105639638913349194784911260028872720224362955411330210328883125217903860915341167857762338801385636434712302531331275834921496268168434618056550643768648443216916009932979358869713263459480476580167302876236263754046417737117123337555290761684576098412031481490671265447881308749669265249507283763395824831279554241699844491415609082123420144663561151439878692836764403819999607361303565876406833411029087823685230451771621814804943262467842034037569121810020485713346838603164091890493318702825651133422596513951836285179232653400316253031177685830439058553031434700094995404289931062006909384298598494625764243642747550200929598219970537138567540242399582249361468818357839052925627662578147628254905215311884516726792585106299641121890474290326898290300195391955649073481812466843389938765229124423119814574662009378080796511082080920250037221765646622654628516780697561651229846904028763819653602313563613649766389022197923617233885491819809573522970142320454913947600203098311826513470831957908274217797322911001498110420929199727079391310541688430564766806828814326393122924847528035155632827952732656083410881616979610239630665231004370268230915339990110185178408534796664576963995643862325907256630756039470551358975851270259376353252345454607115787656777517132314071984930870727417259903834799083775222662385016189000136966533102252957386519369099362589633379104117758605187819207087776560999410980515517605243383814985788441580214830037738072942220576114221873419120173809741916039089694570812869196186877182344133397780597593991704085257402459527953589551683671046122414148488235070420989494640533461029814818149838496287485469500407432484301004237023770269359497780909390095551642812541683795122263408103402400601731856228367117879128635057651221052346487547089228654757979919866349134336745731780800010159228032458041560620405881497336905468838305683111885642692744666825628260569318271149711079080222167427372520560852398097051928761728182949170796810849563420922156800522265765905027081010596468960041915941397134432079748752006197036214365310768194923146657468333019425617725802965628710574635667936196429335090417591547605643722848231520544883264267630871114746063603473283432300941904208674812321963355980892981390137432172319029440338021383503784665824784928237160284570901850939986308768974636121392228744643728222306898144271080876739847451986859735656832475850237902290438743386565016354309204949751394651712042399638048515240438271400499873660922159516794366552097162467190287849723430687941462209330654035151465333534381762121409749952908133436688742196085463005629418718571989796549038922609940064581345769898902937525260315947935205172873837166700721547961956375740701285592607563335804361178569570327151086097332660021100882712319916375934099712303202613810988996422209731755274142553634130615972948437204856730536334535661832196025697236774376640419855390845866547731334424306172126008629760529672078593225622923558462628463331892928319836100025921871137039971505577493204875978319767136286320184428233653934716363794571277158840984176877770551144694652404220885382028249892963950846704657019347597460108210900223798138939388917366199587023532221962941499139604842992793411658670487785711133726534928566536892887508962608405860497308118077965006010068109796230455954801189768566196762423893127565241655983194566147167582205720515073318743864995920772921715411527070251573742932740603038899701817639249284449614498921199600874145592011971106191781356008311793943700218567880801261181157994641471730354790676703916264480369152300163809750954986478577153019332075870767280738241627299798565721981668444519311512147215394626062415474788449253147452223428981444393566896520817283520184910446850123635346659443910177128605907892320369817781441406576579531416934275662744275647924957225617711224415082059057260848147140459239530795970604271724592752165506005137153967772426318259343164959994084881348962944398019280504469903074332958696420234779944060855529802601687627459481652470013204750956993158251056595655451124681216741044189201497129170591132046486929952189360787257198954332687027642112079711125806343717907028536568681881306493152903586491231366257190281160804499253317309331886197389137211839634887920380921481773975151215550607142123784782495146494932858500089951732313341794491957195493738102251620433558509640442999506549482181749182982098028501613576469799306791322247849851295874198976234020482642870620205113048454320745643630546829858997903588405564610067458997230028648958952414533037922186076757219603000199840534610423696739484659819890332264471364177828858318615641089981063332566958801490875489118552944475487777070332542816540487011452902591625351980123874140104360363092052813996081857821750591992044407167990153384458640154205422766039495098525317146476566588668145884224627681547177489770602016193969477385529779517920639342593819635523803884248395810392756705640051774584154536477920170734268207895378424193187181125134001913549075223018853664245615188640302650415206225875269746448305960600086648084673975874694031004430507110080328575618526003370683321783410069730737036403212982503954591566451625180163585488925018864904176713086234741645120009780526716591409458666952971943266261362755466627639747988313242076600247082565551686346541573227303798463349743541760533911805549584851710030650471465709174000822022033342084271621025506998295166962322792052067901249991059790172386421758536906421361877237109133881499560018522736296536092063731683978473714984116231404795457163102850830964929465614289077736030956891413757372422008431953676737207516723402117432726467077757072056644653817086104304913019933047479859635164887964619449295289058257309790409506277206668356944279880549619837512732746507601821215205334922080851917626617083613572333425100696831041782079718606502797325776115716507240273651199086137670389886650327557743894227581566173076972183643680194219584768114175757657802259412293693762854837615011371209444777267883907263765061893274494741092640586931989590585599696009720463567109558642594222507134228108316107878545620838655268622496877558956742840096517078974399836452194028789699296768855225099245481131679811960958449994512830174395658645542534924673319276992922114986442884274282189623437770714914385776080580848564273037171353764245306793786945790575233507643881521810656607927075157252883991851571052600561883391085362212756884261536867998180736017087567364217013332426353061934635454360172603885525567745806213146382054889977943799486592528073247712770153356672430512874551113052270769226215106526147981396130120548259553984982903822165854000278718281794527593457598160626825669353591091970253175878958507864251238169022868440885550462338617680937438712550030627677911446042717502369048260534968220034680627979397528237235197310708566623247325548156691201846615653934486047540357405735326497356594491899073616081176313352491857472402949142219105534669423028663739063083795795265229165823026099765074091873340013305234310103037778507875206351658346277844835368366559027055834947961298350561239433902475739693050522951308110467091324988204831537894226132235566343098114183098668476810282571550286827483833975719258734740115366467168262937015526822442127711052390917969319239127737977176880154224688349620140099732275759329391772408646348928364644435387618113834143988823534353062371783603772709222067901491315749461235248649803680609448488571989384119196847152483689960814722241875431733533374236949008176264368931636788534545428571396360327509922895712580324146305634287293186997117594565836310361683515735192411529174585686548397470920699815889999713360367051251783221658704694156520627129418830367286169732775954748983270093376170910380551593860779751831647911315109183280127525159365150488607939884858609930811934938012778967091084784084709431548945577055045503618218115460265023335986626211907545728433334065465592365267796790097240225590376662770157178745301067836845974624241194146092702551816535744964080370763592182048070317078004950305152791980468414802926237591441093882117584542230025871050989743405380196080967060017294461315943539319021552498639177030603251093959660382062356444137941788427652406438997872152898548739082541948112684974003413805877029331600234975233143783250683468323902948629612891771070449877062308584555830072538581936999562749473165520895617944627647768827751115761470499019482284323868027347074673862814752675333720121010716466861961600633771352137821138857212155477397216933044019471665348302682850980553100367604179853359108399121356009460421182548283826080594511633337459993309854009095675531282250406764600734126635440624826166056357691252799813016159259426864869950047247753327706499938464441139295589691465220429908122439062860004650357381269521702256392168217733673202091586750450047889816870364609615184600485574143988172609738447212746441954501983355932317688295578306458020898295276315490735500546541111137194763043626173297859028465131916146665516766350641193345758667137818109841564659296236576908362716072233814788508550638863177490787234919198767989674636254547126044095416819779922071042764025154843319647739055810496100016470598951578529439919179851978060893956786471973638900985242234000544223763116403151864279380217952656842997814288383213895982439395887701557990783944892067091706552034967699860541559021057651477157873786751371254730446603349942396378779627117683623689624459677644019969786930278957043516744315098022898650128774540393407397242671605002558785498888940993842091001681738748983584562893527517079117054900054362196217064294043278062798737866767302228520183704159213524224275962837503729973495914312511292396853190129753561162967230848617432317638929881754024703915228062546847910309796282934304213394022884129310475940434608356683432324956136475425798625445544988963516713644459379357350070277317673488451748870996682508104389915567709984887401788299074948442331678830180605973715188996429503241991398806477821402001041117774789688395551080742111648042275079877931031511511084338317728872525585366801323192752339690786930159258085241915908837680453626089750834211044419117285563214646123720291167406146603573964319013326735113831808685442753061156822006420507762762431630907633957468027315291779908101253549436125914719887523866639937485253979788879307769281320874570272961219939081254625546254109008343052040387108383857226421767563029049301769295115288579085478954134272967908455152662497710743422153765699549216931190035675588797196959360894440560279853228297459230057292902250191869049960515196346658738457662861655837092622954905255871509887801915359854417167213573070063569746236645069994385958653045816955766814151886375167295828551947025681486752161213458539326242521744695255070076927008328053505369516383702482620563452119086436094550878637455568841651474777446606868027320905274568175395157132037546217069826261484759071069250556887184036300053051386810957538874806334632999487695537434810824541310981083736907075104526381461571373620350563741206115436983956431136731850971749634340583229072358340161829060871658710160130421591917139023645897059027348156810722898671953025796837645639897187692251759331558679733407737330432167556539107557542389161607021227173759207005630713684374782121352889897986682177628325725333451832303927476186540391920879656525892860819307040357396420809893210894322008519941676117175273539788820266187445622820220531528314278483033868602799651751797558198833310256254382304160189423391703863378357921032037786682180618908632648674196620083453772672138030048353496696010662241386427252925300053729177370611623486543873603335731512271393004752577030921799026910568336986814700700466807131900900638769068942035418676510749733938247585986386289190118498516056762720635681836412579224498280289965361861777668677814102903988473476271790234863835367198841815377642843579068363587905670058581213427848601734299273114985258294263813065849793217196027188839888813672103025293737306872842842526768184950327932957470704537523032086408891882046920257811437470677421043931464527865896380704085307448240780539431479682354362054098652425446130960956897299253200046937227651926452523471043868061628441502632729061257192725776763140224201856235148905903061312244081943896347125981067222308073624874038823446428048391759971189069304948686931188157335894633373137830646307582206036072722165120394083173607712722910894553099727713041310614156773024875503030331197459367823569692069290086840655178435506990979613012085913420825236538319721640025784386531552685180455950652762182978072927001626238075398453178749321457176744284224049806304873363455955714192165559906931601168545680475785694458258146525410569094213041518607874243640505075700116978451599285143636331419198562203928363637698073696424802317505295501373358979603598744425903636907172462752084031212380308926131880232071030140461195590396734783221472762103942851915451503469923928686060878948272040131551785488924211858750326012076622758794866107806199431669460231246670036640694569880337894191692790930563800771255696111385511106823071862635087813016591596657199561663926952401328193712268673839971023130237186061442402816750002785237013297428005731412337710767305263002918854321849520377262517251966548985863027520198580555286556701741242478139844114794561403613372359291002402880016954282527637001726055817408445343080511456901070920068537510749800562299567939370360942165585240126826086201398966399798182668381464268876294549868698695601835872133246870517519561716040850360702192659349072702510994757252219108424455952078308514342748979583140906113813687321865624780519973309894011004757071818985229378443814143454127508270984979196457929208023550364363535096012517177168056554998278836687203057953323354892273581439095605122292942545110596156659899801588064005422943187694927076222111028476180826159644660270430972905492918095775775902696247824342719684252106673708953912879269571039131701552419895665937962888409428690519523491907549396833743385108678868311297484077425614288802420254564707508574033953987674644706472412244050841574598773169274280657938451080829334713697457317170780121504655607730879875787050244201825130662513284579379669342674659176754473212872979925532293956541582868358625639296227016169581436104796463370168169038370025573649440139581902290259043029179330141319851960060539395930151180348550630214863817390059278659377962839746005016600245619242505593516523938993857858329225917116476018331586739589226917986771992642677072280445165745545012821713074850073677934454702487148837188476688243781859855683230039182925072221247233954381450812495920572738582163867174121455444072000774625667799993033885814383952246841860609946505511749493126247475454114900899298880244751171439414717156204843166161483490190460011909296255685162877604368512092217653725203066326102792604571211234638430897691005760760382050626948945183133681297570084946503627830445034242988558033635619845445054185239483989082514808667971595308723718732952461752619649890592054696908404522519746654776340655367050839612952694377982971982255074008724675796073755929885119227004014089922309976925072908243725293025365545849629334370195169448316009981695382175397508939318308818349025619452689772640110604134908045313145010713937697105463476654293873327884965077889115704433899875968620677669411702353257219697006335598012767963217354057017373873456002788461555755391888881901579378055441731521247110485252795976660872618979299145615755209797040480867560544694283122745402563321911571044554296315225230436082636308442210335683371003474828646197343120322024724439322933802978839273166096657341966481397117329057631860775941914189828747832911366843302535292524964792110196464906521782428021658444801194148375608706264682217052788555866609397308492117248898807055295004138866907636839943008188779348037755411804546951933743693074015004386915629027469361458814570456637297627949440616093119931117418045204492835456146997128768235017514453738928383768007204168069639536492505786930809325864323795839791850836678526870939433960987834815131423664526254152492755877990653256163320812718635364405049101813148648797280648360849666502489207356975362171904757205540792696638443542621309943524325188309713530823407873141549480966574879196207042981321762437810817966000036278059616864585833110248343312510293526638577653971473510052211816165672635135384136775558921388335613754616690150611753776496372976412757297961854600653058815433746646375024676618736828601359389979661048870373212998988077189303455828424798632586508329716478813687836934043158699441584056073105170080740906242322983421483645937540666898879902452967750380630886424623540006792050169402576684226733377623470073850861041947110699435804534455704891685726842546490009371256247610593669638899731278465862443799144139951569466810839263252231819117286400745587634104562885751255056808152522939279259781486174754526947763804476995955050607030405723074802347057423446724103122965349505065170116543132428521975922325039634918024654316346612918022256977140890212339328788604173941013526311520369111453920038754109001217400800370764068065824627805087557204105425815704573154793095847220829190461794537539554705589553490462381008166373194550235848101992227192912016177520244466860590096640142655724768436533186703522065580145891365214214884279565586627059338874918786393912310949856121262994129219570550982159041459138611252665621879456917858641408418466291812312771701856076429841403475924859795364139295700295399600044765241741180636090891070329935760123567450289489667243683113234827356381370078481809220454448786971363944071406838108537502379067925491990743545391118754416978797744588070612794679102610597267850687549686191026642898726604155400035593706209614687774802119559012974434756190369015032298765074421165940749484642116358360774214267964398310275681555461210571679153107221777930254573228745372929891949546444430214743494433991526199764617560500446876141445197137848176211789772414355467354670242507347836422189788430240648952846314388163435075296533334782074398744784424394834378621580005295941201695844997595662195314594638517065744940644541377088385322747539546226747217816410785971506263948291174373316912308779475584016245243467316076527923038336108403393227859230437069614233618515120201630037106473392360159409348761413931578014737552099930571439690936141780868692008127299950126894063381545942618042524870705529369512012093385006182670089611255740262928428939779819953658533467689013525133165447848621138975793953376384770437896000543746315267922612655403500132944795933203899504403691234100895651264183332718963511651306511767120225793729061014842352467437854740469612582211063998326045158125475467792932216010039689183516686733683039313629853299887287731336514009920077181159495852996478186606788956873041297968193338686403654299825024897608389872787996832247994861290621538119527811750653500768127034638069985321345239607040850382203113837312467354408540035498055988976284821825502984175192421381995295183553440312578431076669819823628904985956993976147201950407415341828849716367955572998115769289902945365175441526532860972531124706097743100642810215723199143928724718284093996741383269759137019206039345242446281820941620536688358917458615199461028929758611633262539363485791650895497475561088704308265783353395487206043619313816874211841752981800450246240132138892154135406316330238216156546453399121918866588028283036730994712897808165487889720625876819014748657643264745543586479660505441931400783305815766575393391766014969017251101351930327641254379081724668999981078707432988286063210542872923068461896542162578575560161255234030058019732943125553442148865206998097004301429834507905380923445824367943874916281483401529428782991908462113223908762350246378918770122675476308791945324149114109125348773470452902228567697375702167027235152036832281449865303019336247358246400226530178178623061318267347574556271918313859370386942322406078341585617375014810320379510019132622268591620758399992841425836075502370367514373472500610845652123178206902693232717071701807175007667107024383008821349562114209666627925762947535365612231196303487297992396129561001441176843099144359806556684733183771111489825166860528824315829668157736742930175053096196635158767553864128836864640168032901020983641453901361820123106000007757966076771445323744903666453819033035659640537748486377056891952143606796432870265114198205871409962188495412759055289662717437163787015463118234995808051672638789869011697057433252523306688114102309063716096539338291754247405722813182485286562201408429483589030543317686693886272529901374301298828533204149259647248708428870868121562155659055520118766992099534928858695129349256205885299759459814735055255033151457349813024963566600571562129412882016229998481452915802727452943367134613398954992519726142954671341106550874868735678990505261841864946700362615455651785900747434683022033530621263319828205481038832943772784801543529854234069099151220711408191653284216286828263663561083432356662184583496584243511408252713418446704388546056408915331118311239118605398781167627676137036584284818073139200562490471623282329910806606066470626403542859190079697347301887058565429921291410650831050249211811525610063742292432939047324285859043691099780873687016127156576086252725630413794618685327159089484682802764387819688303469013986309935348904399396141313859646288438544854517861469894836359302502333888613866057882534938204297542053481966053943726434779791355298709044097516714256549173418657402833105637868993037656181566235182047554994194349715215489121425206470792904376212845403635654004264438858799154465265045884415022083481899808252376263783493919299087741863311950233355350795095501985044294646003792077032647231653837167797632255104615083447057278649843104069195521190290898190955066437540036659891571296690373826058688622094315856762141694627700344614655883709614541838367816532646717988704751624200276984105681049934797417474275556623834482187239492559872480817902886979178082113078266738822717569953681581006834944177014110353141107098279679604574215573467737293131835742900988172510707001027056816105909256197738725262954967064382697487631527099633231538978021419584628370235855228029775802140619125039390009549720689692293515487099579621681865172941430023651007141027555894312623499945262174251834073149518226654136707112054359504770529840551641440823160400941485932276718335610410319523348484607952364661069986963176588502819331709092775438097502969129282902871827186867656056560103883625974768993319181508684635102020444319141590772364683025539168088913774267233213994712884977597953977347922967893621930992511200663011566173906575736837676365937189211422368499120214755719722305574100572545257245385556505686460537112268226795019296310394584417455806521223889346737778117487711085358563651048040070235138414083943449149587336317033745247442076903104658940280706520404901026101806307144095089011836528291001042631126121723016073039142782998260548259374871970789455908633421705653769115599133716964152529125865507192748345937113075626822331441930750599400673536365037293550076798042151214351972532560562264394541411316747298778368714099675896563070199695608246280145049119912407121857480537069396403892123464697871225506696069651615068130060629410740080470757013091617350773347556487725473691225215098135033192993383343821078855438332361873569071608054558098436700574350850753199409765965336872104349332228061883499200482787381125275030492088881748464283190165396006304665029156208905322947319996678910429991774534128768910309099767188148030932716269812365720604331596496493420535930974995546353415998438238620494250693932014266637836894812021997614179860830589838293900673951455175735499971707538924803152941090118514926140875944737211593932892637050695832991810086208404102864899234632603456423704248242570639091293808017046596536307241449281837553304794862335063366363758865610589066033531629111765979002365301217285753662018901016498159777247290540226707862683387773011170094318514035776219454816762064375319687841485184258934481405295839963849702539597621263597859456691106370601332279533419105303795404259783041376675167497687874652996491783423364270007454754819494713598668069156666458532914903082320598902812058781268157674309307210176135822631899928879732309320101492321263732671517964955489689247766118431545671617574939384016165229078440894231508766870546652757932388055491266616937775989539255610804069381182248000513508093720466860200390550091411653944819959417321871903409718825590726295842837197700858179418507010239247599882896135737787564358854963425611467807833405187109513125759999318051909219022665615695039282619479016017023122433057544312606544646250086866227480438667441944201539426038115578275400004040207121819013157464010934273357483361014694036854512564432034707528448389317545617646315722092878102799120290218922382824703505463383094194477974691308829245720502922062498555235510565416430457629886417680620174113480892342272883474543201198072660689569258822932702454477534721765528390806174300254282815982876747135983139248677545318468446083804815081566354194625658132963595505948290763301068156449665178803283777234426495734762093975759557930638671004777439340064983405507236218119894844821271727778513899568490447627008613126978157757229546476033592735563430185152565958292013820915022620088003174972853899821503906535593312828283530229104248499101040960080812922737134515814582959625143817175466341676306580012467619302739397496828271609649437231135575629078101961242402981117679826186714048395466852385580727594056093297312405555373044799293256493279811483183320213731115623240409254441936217129357321551955582693070362086939103095626257928849446571817529163361050844013855636792071157188857988513496298042756138550082816695303908698962080290303553800625563214036681779081802116484387794827851293781711519531292060253499397876175464080018854911265094773779403380813851658217736547421223193282082698080401490534839550396438927820292472373482716964374678135415623079293493072403367516992521889224056696146996814738788518603142897635379762432426981910159665618186293922048809589153523367722568736438466816976741773574492402773244271852172458249037944402883067384456400185365607465417560537108254681792569364696441802072207679501529746750838413523113561625499529176351416883845818879384276920770036330816674413405717150430764455055708620196218750902138849321558849314636118516681921933331068710415721922258451362322199002670838022234873215757971191139682680384884040281459269592328395964188662679614930515982037118628310945019769133557938815895114153272504224953588864505295251885697664767754064198964612563278225970170233375585208862221826002853592814463086109070674171612612300225306229432694397803268357300881624868449638061833812906317206669825392733974004947585695873513934547695113481873226417526311905776885921980237320935229881724959823218020514164654233174602677104795738569517467260280709681525043733589820550474008030133017558152271695309675197201612009205662308775428710696458634713742806675167831937351325652214838331736723081198165342239802624743765589476756921634368776691564947998944908953335482608637982325394916672689941674998347704699021464089968375824950582908145331422006226370265889085675892630506217725045902749909993279197623786666529191863955876879356638777647427669516078960839316235252927832503641558467802461815988051429269144069896524719481933963231368546341865090928413827172521695383620063230092109962062494250608111814867512981608654863784916838914202440746125373499118074444680045657807234762101130684460779794221320441751848161601019084311857783736923028533939927561111606255009383801593115111359078521625604853869143238122459042997729469643222737151895258029733660453560070753438041266967058679143693280921830411392517937860772590433010536938605645312282575394317372233585221168154304436358497427720836342278796178301536250280185857848442597198671328342485127694810821482898998745431722097792403608326198732536158595601419384136517625882323166497136618714988209130428155101622439116045249633842565407862054039684759841372950931581487773712401871797783804789899494365429776732570157053812637852227469724678742413007936423284978184783841870950009202723276546498176971856311594683012099715472735317355702526409742948625381481400785942093756263839468673716324465006694756705315994726878112561704600640744455807429019997012621053694428071409221661518213079348698972837001195293081073666728548798578714822353168796747873575266193854236240007139113056755503388529014237718541648922941556716384588614111063333831204110852764582840261025555845472259375961872346364309939638012344489255652989827202990036784391510418687495824429546262126155525198674509444652902219649632955400007038521056321967658248422650733125362054626026868452266096888043838047437262323316166601591279368819959405025719999329176733931027100125953609469437966385968083266431931649658496339772919441451837316675736885364518202302381482637706530113911289136913462491327912603253534591991632345277581424766602795479540704330509573058571051219829120944316533594324084681380748875387297085375441682806609884935066699637289794431656792687636706605922664955035210430834357140335183877561742096308666225048152511378485882570025040515838618361645076359197566456471215061989852062746107207788534090089741333788845290560643246783723784423811624539607897311433337060960525973019965093743954562466866281243275277881785764509786865491389233961453938720160995472773168875997332167711844199589484861426103891518757536353139008447216715931361056590552306882270163900604646542371934043098508250773501548519931747183573730449150694975724800790842693598291438309313898554875494232274494916279219117441681762258515329230906270288626273271727137367472885363862123221521565981401434617442086412238248701842176211379848001289184611502913407235104009968281635515588496259347022842452965644631458122087796414813974052131898287854284269657822434892186212453402142291873824879831283655208388110223504587132896511975297239395600114252964021960676967957581479359799931418498120411115428221651323925590709874816323371019161139791981311334362875608519136823562637758111952015928301098024561701102225736721118075378393997056197834785899801039586427329468431331010946879646342978777226821944480569992455368546016753353994086181176225929427764715341240000276901027411761923992248717212932198828213214581558330810327676656821576223286102357888866495575706551976714230950420576201061600927036420023404509720835648577181668241511926944850681518629351905611712803659267821369850750877498220731933486197900725897758266414280631975955986314537097065477664768007258785006309940108789455470972063803894836930369700269745829254188935682769767592328677671016980350973276936027288312103987040472950733573175722327139128868230896977588125791454937934298535944730061655931505590245069290180294939653193727641307597943503018619518284940068279455659277338106214901644988342847501530408357214322458926520002752148468861352026832020123565045190191187232355916703723297903459787550694692772157114718237996680746390722945122990853465326174679733821683940916461117621210756826473382614614878022120885461094160724950146164718017557452315757256491655201696462797061834737046196119470719316611275377707519894464868916112464067799340622219650686591370531036233918759281965741610783982987951386477074064514224493029252407623686643359498661139330968200431501561171744028457058929342504889972302803590243885579715131545883284619046631488813005446165010619163392539632499566891885581207683296137502319540263309630469405124798684956587276452876970991565736177473391905312486844946258722691209550207072170716218796791877607055804810151922950743263378200279183115536826437678875799119811679688739631778145299544256657730927567143291248470230227864752245335402514079094918254625352910143935228966648242984559934255755917775857582423523389737474844633400472593135729262448398487770176548131880669706150228893096106568820300579282477684565057591640181294558696880326458117051128812605060822201102948137886762347888324825282503946688656047914724349593624085753393149412855950658025762800089063568814923209519216400318809729991980254670328632185674487704766797400805244494123019257706168607933337726166795237231022560304560734945720635603131707037596272146490194250879542596683656734967847796401786277500941708392596517921137188850269605808592871546564185389115112448280957513693327438297878402591292425270152380183942827764230778659980071499001127186267256977974935585858827620784419210115012275557417797638627058527065459889378332964951877011526441421644875208632942410854193186111409682762851290143784802343912480472466682815277274311548964625567080291229410470366544127961945872451600591100008959934764826857346824604969511368019113143213023072466341637342509019213619905879348610301168491367031251593211223143289163231551486390389204907304675379060333848146223790476336372022317683354114329733331141893942473793198755133365951923692060556418153629274571724953820445747470974338111998252069390559257390707774360691544834954645439455506517513046593883516308482474634109905199496236797103589927135620109785056162499523189050215581468446772463615546978316832482756963135717558314707897091728778337180485198954598438285966997768692505943828099531163809644381799776035011308707394485192851625490589031108723329631488255920742740143440238814712545595907001193665470967389125872702735685273077751939688620387064305373419963678594085215789772443560955383209737122234993636234092989901253196033994721429578747514768554321732167127462276803323300056382327072275452949421725751941251053916721864335859445349268769220823873314300392613546630057296367331556490979598048992472669386456437462022496833800005055789826856676967114280187672621778655766491577003524611009327946825636771615396243792771294838137972344729096852205312331820157895844795748404966542625020395674682354733532589667464821188622077302441641396400574395899344512407081002310766672834298600575549363747498649085556304880457349808974578492631977514473595857773563077254678529823332546870200957197489619002324974468772535045331727309242308890578830620727285549856746790484861180492665365738111300318254729987787422632245052354172183013256341795439649838679382945641196752277218079707950556444508380435789200441015991008710562086545753586198813375442552127302894241653075803033080796360397960666424281579324486052872495607487409036181364062430201765226239558683682892096274924609118894291902212698768197461064344788994633549049367584304851434998064609544967328877300152215440295681234534489469325923497985578607921934790424873864420679228419251327300496390538838157937479116299593373471044258657372191835913423118924681215100564175537835673127527720339420845773309322939337741474629120414336423758453227800104181991754841646907988966638034903140420857975127670234369730901782041202312016332370681609809619376238353166428146780856607220894937814058508265825612064156690803913301450378737470086191634207868965841313273363314363382372598692478567010819887206149431011600932643020534519436686730988893658736185274628304684865086589316628441742815813439912058343184793314382513612576865309377574773719660808241387978909568631924278782136534145351715120124156321455772612571711542375752304356111855891966314442308693667051199138153403226210621594397427120765465231765198966424475262047151909698917445511843743312560411206000481062834177449518999061022134126445340065348576158006336404668827392202261921447571115941454757056524353886708217499556288908901677082397310205194838871835498343288088860711036176903323107813796305572738981129127703868279932165904053146896325986391942915207644121837405335668958199426520915206072234787011150784945992637942582738100456093734037384700526043240047651510339744262915897859421619027654612437100731415331339560670120992357055893555586437332466239368273381376660988561386081756085525751881822982365620593039848026846892564831572720381963427502449053813871227283653813817411890381862937066879655274018351601106777215442748763186693851665268919096693241241457652517547713861679070746876905028630836414931896559562354278624551587599337404868888059363509476404640422669023739434693813198094553983059637952785004028188017151896873158310682541473547504832093766879887868201624977207965462296599869709286344427118784043263484658241672441603790048629063352273962632643689695218637458554773792770810832099800656037854978617928168238018443737773965967582913220601255392869706131183075749736498210147313999513780119583630465784586218819441497849370098402756006854980263357350276903501334915999410634061547078733290603707231161240341870550788379000898176947025974081263663402332052347594946286477202796252113686448377842127754708906075102553014546480725459627611374316793083227144449518251553202530688993058531948318061909762818016677230361216606781369517176487597906417672078274900447456671143903026184811709882218889166496393868513193469112598949862477341922210392931856537346282447189895787586796112815110996593701003783460366990836605499539314209994234926019517200560034985940409635399105472773946979904135787022632069202545498416572677427946396129743913685217948503406180772850987428122769011413681640284675288754276648347172854512389859157160621106210386115041453249787913012138068893780887857411356940236010861172747490768634586796259736100199117029869639675360563303585985059024044857052314430822798558580421066760697846685856139920532524870355545853701010773500886495196354119145399547557065526277584357657458461258415631074749536770190450884604517896103563009644983256798030526371100903483368327380092585578396397697887574550409776166609902795429188589308917950986812311563053892116814233795813108294191301853876649838432666048909688018607869899694639519523554122354444951091490427932659316891653845246476121029773238049491026972063197314457687223018886454723103520336088032734518925146042837827235737381379904451396461458772415780099182945276911489256449554457820811258549746299122723264649039750796423060026194526098123860389417285256976447427429289378164410225978278080809381188489828665645075046990355036823640457028786192640078460831062566896721051510787599806260533102100122358089908786452552773927454483894942460977309768103288181048377558490535754369854782487209796239602856463370367224447256026531392813243226027749446017801180064353804656177241828844153793279733031656426254964457524785225151403332921802994363668920045028087930145836265592745303693208581992368582405824492867970470048929341036743249680787167805287155715269795387317616139356132593003098518745852607460428071453029533444248363527863091514581116770338434981090347138086879895128909270471036033367710778140834844624686061472549883654767143507897165014452769938600227922887312461611888686514548757124587583194866819607135129780973428900934829960916137217184080568891284832030737804399029801197767445952608724501787884827582203141607966468453384013730036339352239132617464228397146920127293410803224014862978907413563620435519583015124060878235799054599370559833996396427254288844432193508373960444126803498854986780142412013984799469474267251345750432841611528318934336257825555762486044698920810829515812130807472484883173797144065755237092962046872292297505739043255293584811980266329093403989497358092902735650265209686282787669265416618779365146499963351891859198281123717705808512908891479895022969802277536978183264365803065946080924008017689072325841441297192824247203800486590762483298432666125302685103349902657657857996330572857815804481506534147291034011865107527575914621385957555798465331746524212479703562965764849716996877845984143281364150626588032373537267205100203918720865488940491633392384480571756388725093012313790697303446402836948914532187479689036890800919107696487522679319688397308313632855164428485454389551192351626705524166101161919395623212154044745884493177603326458648332699995327613115608198673031798777096885473206973611106968735230086661325732823554513288927073584038158089593409540047766863373882209899947758887252513928947102576115811305813730792569508911106036337471430048180745447071235856967018761630440248592810294124481653304300197678125184887324291465465374765308407856299090453737847639163410697134948316414943177259257359898774141042585256506469922575333866702293799929902483384497963616582601770376024042854352514689293826677378840100504077814980106515655297476502302530481848290223516634907089449876811196121510650807088452894029830319134369478860719723091087906545455929044269621024126508962080023775486379219005822137541799451367737550293442139478343845408824968300559698072274271475234618638449633003720110584884442628228471835669510578364180709087118119763413467923048279991929423344434337452657118519582758172429556975365547653558571537158788673155823731791203581943368590246116895493584548438102182098056456671152278111152866314879791224104671503454122635917402310507267578156516907949753545695466102343506351789262820073876715784184485323312647481696410450093295263939107255140263809723450742145266346791248799219504249506398350575631670024222097888845014235493326447708542073295642006479990456728288273089736342401635598151271655857087602631934760357479711367322844254495461412410314411213653295907318446626781110627401990080057408513360217113291910191481723858110359763233621594459068606885817458272106636078324721105539882285311162308307722493207187603142835549723999909543867479119041206409581635030692153653952559398291083644405778947686559064269590785558892780148115312960528297396378305223965687979329134158295623155010561975005747882584350683894802720131680054492417655413415536722967818672262975219357296762159745729299827845769995818570124704106527552347093167602108874620189498309990562680354732391917438803528523945196855902262991234055623668168420261406594601661426898163648963226705671454527615520840319977552181122228306946402827545830907880095255382670011748089440085824422344840901443930995076045874992960929194486787284244655294260355040153663048572784575067890334206375485651802605864654535049231546366067214955979231996128389256606862453821966213790956141809481962680234837370486445390985796041171310701243314722770694381624261607791747358930604032216117319023629010812414634682390910147478453481264736939378034508669020117854092269189072113908427362640084022560952795366222687803631074992951896334937247807842462077385456462974698567818779464133277559594959198587419166844783018668875825985063358095304730592627958788266281356695741856635183662967796335366162569000658834528478932612307942533321209343130986170013940224515939863015330027588574482615552011632165583054011090247991317443186094788894424719176565857393833615293891646315787775206926098992237784272107622675471362967726528338260458031548818429183457905620558523138467486880987475741829951436089527571148969698465913305515718249017264063469473831622484570295688213478321860050219757949327957537140194691987103391921503460117489549350057648311848003832107045510003197299460626690817032846523263802422485817403542298510813693111624820378156824026705402650609276295741300394590674452791979966472993327500323878534455218203096952772541183313194929837454299674345083494569207945583308957219416697425544682533864656106651416194740273233068918055488714423970148248814130243332211602822892880315913275460406393144756504510247078478270031008306239833790350592085387823674384874690715910716613835270975585158434913210350122255865928574296051076914689252902235938279127110071779878737897902060104053792712655426027857235385066544466670386663145087099165571537120692078442628725803234558565314378543259039018168386005327549657925726069037995759888134730688880747447547111932240148505713258006452814851064945062178797173665367581241855617818186509256591508967858838537346006935149766940200854142411958615773819902618019957555810622548361640410620763090175856074573884732645071333857565460417325337113028013789407938579364339953362780923121083970023302836469423386202991033137697450725192819304481060536148898127237275534536451517984386997375729723447961754122638543250152317808397255726878502256871216813534253902834781019191542034324259346091331136425107319399433703843238861375880568271561648549365380237850903934833622482273182074099684532966420066268037268782026486705782985119284503022158150530356417568937754210631387943008169086192587428698754675509234944739615670759250191683691129303774804955199097039823363826364891350584303996481957236211574077257682336990702374463935429270205346044803831023144481145913795384749239157294312780741204406080309758729669731071819844106693340826049698415157716592955194865581648675779423393689882775900357894212761604704734211672187920488769423319638405449947511159325479617623938498538240196477081852094864855924228773249668730030102462610446676908525456097605252767542609722175804231532157673532907534815364111375640334493764477315701074417762358231865170035472053759404317824599133598339181781909632989815139125754319138983372544052815081545703102289680299577227508331211659770422199826896583246941224511283294989872970025288692782008856127159949775135621524144621201185726015252469722909151404640753192199281734280327618599645702580211560174620906358907518617575300004249196720092148567640159697615970405736942590356827057621726980826125845805961670618866332840263385648286426103859307490073261464768345904157879793049982050590432130023886393302978738736196275533218595801266221632584664077546476579363380854496495709655491946816120511556943910807968135393846059750067179506310256122479527199604657086253843127219194520031050931912369479545856122379295846744832208038385192663153238284507062223554163557520160484585957877279643566407928977315177892543246016374195165332485486621259981179724635762805617849167583923257722366843923139046362506364023028317230013785538397844059603568332684279926654616067211095960638834242950430023363651087339459142466082468786791422410972599551213534391932339520885700159038044698266311069545853638464299547406804067960963340089659647612335011815471822156520259380056259062150272901222426040414726158403427816260545987338572456371477792160474827443344111296731237676119862978669863080241795004730990548680786839290099752578360568423252734512493884646426117437845901765446954096515947087299765071127626661175786960190328974286263834806460258351836519591472871025416090341710762667758150465169462544957993828996178666609857273572606855066958690375723054995572090626217139470396850395236312944870874152476422506065216697079552830412810868604973922953659243154172599393270748607956674145938706841232750041669086025761487588798762359367347546293045968347057818243392374739992499318213776303837529903851510492138626855948622828980290986040984011665073222899953224056223484778426908827773333002520957071638789137572836111316150828240586774806128378099765881224500975070984791439925240141622405328598517840602677533819228267849527886672456893337594516073195686216856063512035024630992837418507807604204773843053254838763592412557531636452293163511786522282328964448319102692474163633999280535309366592617986442495494884617481328995681373139483095949958112473555488373871125219033700515468040236778326154424065669062240436357919958919161873198530482800619742223209883669364708401812321417476276732239473306004051726285935485411882461399122545993604628969714134165203093502573559361261145139647646649021062754457374977144715508058882686031359661575978888082513408417512408423142188759570263961666676842178850151166502959559786184159605479201785548116465418583113141209127828459690444808181998063143890380522074970999644592680426847344541557810334493205950156320196305397621418073990862708480643032178002476090143977156423120072263543493273799157315518591100652472774851997101984779766556894491967164861686707903757170664835628080325964867673404584205686501819370242695253648169558145909093659078076868124386399342565535330465056785065548655571282118381739659983633576780308871040572972063848194704823330793522090608439862801838670895297949455903398039750568234493536783744414698853888045281008136062558329519311211934751776284520665192222527386696926300256656057137987467747226321911039544639384612184558577569269211274469656540715714141819794922961446403902152393652171319701682379101625390563079628676903703669998720101055197275883904902666193971648348114974239117387042271429504980391844092035353505646482647090883162717270439141214238422921600927129123600670102952490482688952858136084943203538041356964515930924338277301069829074003637819107214220109190692418721602775558045932649015215059414233531352862778826912685057008770944176708211117803391613231077884547695892356286062676906368115480861944886505985634982420785224821027355717116828604374279300190532421473269807603593366348559246819120239471480921233284186050062585379108555395006935143257214182173424169658289168710477383110597050998134940969399553351724534645472530194525002197042367256339419925959139030043726038976533972333101892731998036678696654613980753800150074994058963965696044446341048889101877254017581364829927018989318743514757195119016432624565142006231074765452195530622094090762265639677031822328595936090281625230627976852910671388077127464190257056024461237830789026485486006490087858777224582811024344938706614774453567937320714533408083249610368600316487116045576385296400092889905659038807872015381686860578453602623953761584365876413156895420184516680425311250906128057586051851261261263727019604236219016699129075528914842550002031663943368032040571141160423757980358565956312474994695698495135867617171614861342118764921998574023604525815531400876092991964744628813382907321688226913157355514901842172781677852130383660376356129007685445315638810905871806940817781907895745143359593839035139959232215815478747867262033422730377952548101343348870112698825270694572970442925473858639589403162524181768010338837389259782856379513349072256643982136040806076951229905479422077455869779933034443904419997357607975028020352529286365622716637530104348154145433270653391650995946735871134933382166989485670557380782200217312093915300782652612868451424290726599905709582548604303545232999965155578146176895285778053665489485926317291170626203829798016084121593188188696290282871579787179368849040257669196947891197016642307944711630047969166029633665411656714129266583864167655842583466265066904169951079819904156389709616578360678034580385887549043983668110794625922809484398900347357457657221278020507663612424745302728327791975368709460269211026412850520464771511319590975978475200954067737217411843995901350727293059963625355275183651258426047228081305017016364582988795296387473523944228984041274230766926575389191293792702273587158906780074048592164839630908392340398840095128732229830618530714944412455289744543189585611874000180952752096285137117256845726219543878785925627372240011892859210973591774453090991376018571051336552689960979827966913016647136456697073237081484653493878889810099483298222045461002017204361275120315381165829910151186943049114475937441511992148277698846672390919809215085158244561052008871854606987301372553634632995644554638726445232695578243816895531108965313406984204121863850069053799029011296556029730496460548219601849771499587160160186321879285776555148260986889146641786743554863988576721640798099307846447004158925298121200807754694044486902285347709395086821323407338738152117640444760483455529305299958930207165021318455760851637824162907159794086617952632265090870625000097852945988034121108255776072014188772749071012838936324373447553276610994629820292478457279595995866906046000101825538486745656582757507158587296867716751114872652122065893051470298169911459357597062405238204272016760908971936440310471427018901122919727832816021135597563255486999922433885045198582826291038182261226559925915970829197862331931668810629752541068411710862598703071440860838890816173401839452178676169102178400070572151153318183463981090485505984190806537984039319676526182549014496282638131368683019053727762902214082282532050315758144911052149693400800591718428867474232818892082210987075100960942227179606118687523108651305487940730324755855158572712956851667115026585753721524970207356655428748048188381689438092947193924970783426911981621047130830957027914404488752944652228809164269322120891437353263434701894141865498758085443897837542761116048219449857339919464163451058827596415074970868687065333087674685517086367220041335506908982270336380872483247736238427671272998279000472375033656913596485058948711797177358953752351727045329880897687060371716893813114926117990763868175722778250303799481053099714133210679111769390824978575950173473432748633566843154997425554342879813872888588408286655506303116923034262400651924618208512940513841094383383099433732356118408341561095254744542667874415394527438085478157481718055429230172577082542155145523116898159841576303310410248678593445139563372056885889069057119083999697995213344839522875922839778656931697054502755249860375938138006589525705654871539925942499971731716797625183078071800651730515295633826327932127180626959480634164969102111602364643235890477243477665172504370188262115843764422666620475127825235188702178980272672802771182277315210303587264208245289884331683157916664992568216114499034246695153246391357047807685268989984893205253372101246744855945116869825165086315065590233506089461332596475857404743071645102198896466685765093083300456818727572416807670592160435546810092925593956489533295027971567218920273257081506277090717387103132384249600991967666572621248871349920569723586933240738111770557323460902157984722345213827715795803472205402589664415390534121374470050890338715383493907836511458079202721014790629798992357303403249969762406078897321843108824493082661908026220499901128597492955627721746461146899392940105949420973381759438287802504440996875340190388601771701245912276768846757152369655212200577242450365397376969028517858272010843359833984544568178406257490431917087743824104031867141420417203681142989503677256546071050128601831884330590267041359144689996884717833470408291468124154743093009981538425850563276047390876890492793224924095349919034162115446082138983645436273452554213715789152132060376564346128773346423265279490788381923864447557705950091194441422576047487273346424607959246298170464153460651330840957147648715521286086578470735295517681275823209533816373144290474179840268935951138362336190365221936869489539292986105606543505797027155112426086430859272820573203824528633753600405371597766322099134912226229821552464413415294565515770151918986924072986258052706984831289548079625435319741712858425766114028200953496918021677875090640963889389104845046640865750372940522104112800095473196600465004394421684859422090144524292722255849059366382440277332836264503030533539930969877703430907123325762494149601610792428731668526388452751267060300570764109526142989664881812039606387340849855500941732198779667532749962011869772569041446902062477656553506566423759146917333072748915434058300807072214809831677481930217368453700212286491519944808643918607136506738526628029015686800738658482695676254210529864116593386924825383378787521349222969889549770334204786174098071621018441516177221481911004373337116936743087732669730859901037197397794961028429161868412757569913986492114247878143531088307012871037747664524240630432837083773152561194473055755237910984617735312906442410447089451669048806950914607318268944927878884930939500099507022903534353921332558947652503280710528542412429468783066310827995140399264853819433461802956014311243285648469653171701739125387897466609714539422772741011442393879589598789105456641042681478911626857280359967830398709786663444404744950237805374940891697917385372097470734527397946057249275908249278258335068256908378083545693636681739559150054891171229458934250193970208963987204233608131092995278188504027712873857443547058197144905713041591925075571511856871245138617084613762199481388155508293884837569145259023563970063111260122118004370384777070672157882914472504703857119508588093475506374838293531777538088558941174192632937495430008507222483922287543944226262695981911896956305252790993462946153609361635494478791750377713741590706231759672455836853259984215588103162562444276554990253275017631362943127796011916430509716959532112992045271774496546336026515365658288419363879337753552210007523306249938917088603055134982454203328601498822518924449789713654388787607325839686941239838808204334626611722043799813307423513678499084586481666628620111016787728549322725897317962900838938093783688622430928160362691807321356465371535050488691647787791858427737908188613147543573704383964161086684544778605185698836435455394146744883622569075822976566805177777484874297315217407172224089962520271344638028938433145251698363807311799214678365333421747888059772842616020358430828924451439079548741920599467031093767769273460011572635478653303787050882558626169169547527360426276524262803824771112903565310920613755010415351635002947736028030426515606870445034565865327374888313887136360128083391312685040569730582623675060661853976157041742174275940940477766295856099304644453696935713123533139018447310167028536689418035023616326193267872577312149724982450873030342047625852256587138441719279864813496990033682366359258820601075142130599354051182398221393595842421288680155694960131634265883922903517029638549314312026857517209243416771675953673854595891563041515434088850041606705334665408281307008328977614882496962892401604211416151036179777932102971347626579979402154699780387784794015988160852142135353041497943485318919528301157500655585264236187716442360830789734582505232932436402643759245918005632908723050762970364843550869676213310828770177163493776400157407706192909977311832715705372092053654029707767867266532779330859965800109221736238904135842795193350888221454365191134340143428094289321478884830738725770497425332464660948353516657817670744653783648028470969261013186450293122961659943735558202928820234450728277138137353108738681566684680584165539524063151157367921549112632477501265298070868653207871804612867924288077555706529278259419430075884278012095910166377504140143144565160939204213995507274987872445710941355550450157228970947059287154785784237549555530688277162786068182464764719997298003673328772074752265359103975496408864254765241431378861906622713920337483035553828434447644598243634065327813631957808343899184020729563312274240406329113697622685654000106238986047816686297777840312794899917073967230675221629509652878963150378284676791610967455848873593475491086691961722460379433265367175326679642757594399604997668066120400165330285049499728607042754250937207738586370041544102605952449370758500363784138186077956760668064617234295007523977651459432948967190018394508535071152508262845453452737577969122483337192342761582030801462801767562825024071460250971605630931767245930760486882487900538471580520750744820305264966898199940251579494232115902784104325425835337177788899239517463665743261372851811005292757346641848185181569944340408818037687535197406636304783372844055818192994312492820699574561423826653050981344664300969883579889993336482496472266767866094838218200691764477995154100648314950923402313298555020760129765976548251432214277265806665755782452114351183573372377304924371425957029585515871156388807799567099240416783945078541847459790898158041308296754681520346603969878439383081839237477162789771382844434051340951168427734092176907252476310892244466478911687943251322200736515345623118550138742152335445030893885398610146110690748910956635966294815046854675622928941510892372943193195614918231825611290602583642878172194929175345388235279936285889636367951806699435539473796067883863943299218278556841255867799549795461330287862146465157139916591402845873487027052610698170625680635866012816449797246668164161969879886773684747096351963496757677241171938898911618410167572490652812301639681693150030825201489745797388900152682402377798309724004631085064997410591209501570775841414891805283246730618351409517491370788512597534824769265004236854623584360159707296182804430916802637005785921511372201216585722336541374444765941395496439553132516160965801809920877908352579037577267506223225185883060756932318956337473318071536686998849863869143703937913796902175096258692842571691290542002081554697777269088469155248117449993657072604850439508091894328530447493989630060318518772745821052465577410812254858746139841024552315469728605615990049197301338745304316023246449926512501704259895981825565238875877954291090967219088355357772498686136615280495876215441732619304117924969971423648039456363099307208351692249539620200838815119183724445227526366889209929576677095667383518896619596160537535008602323364828721267279457182592717871773248430958282735739819410794665642841537352097892288900210373172027586642901183835024010382622694185545174623600553905336844479903780231493500910433515559836118650126049569602591345769365876222655770632075180259102970974492951788854202119297169126631041420914010786425238613208134763454729775317440856732210322546073930167741895602027299203162479753768627807845971052132685726453736242255319250951861718760134511243376299053555461959175254804303890441737617913169627434487853115501952536997807793447126384248899343581917195672961221652053462230855341045461753516028530353170601408812136373334586374744900712868341362130746643149919626458766238324794568554952649366465017373025269911908734889383808220490313999050562754439889044634722325658585987911886688740806970103202682039916459653939827631397675758675630661191248528924856994955452747582595838059266980566909315279118773020597897063137870893388322070950897673353008555615294578493640663912452296012669596009626249236235435006717356575093246211009787638785940003781112255481862865919130265466121607498035325602344356367631241181589646973856150829519318006571541263062289942986318094470882999697782360083731932759312453730293080319708391679211238220377593869128205704012577244486157978289703237209824314199521913569339907013764865723794090189731026773146477049154312463353149231164982846119122320443297987988654550488550281722412719641296214255244081433833184835548531648915655594728454941595183299317885179785723333498219716745220939822794703894830938700688809500950017601865107568261901821225987911067357657410237188662724699351075758553148758506068892653011018387189835211172154353512759382643296902223394938045976378558090731716349568750327089865704509163882052480794235222753568708256026031828129257727003799185301263523799010619425957035219797869460379340909076816903937424032942224485649062429240690413555579781762809939784678087508737889272173505415721686106252435312971752870170021713892652686261966868712382220018081998105567112872178866928665140868573073142030260294175800614754339699614454195780173471307453251846650248739186631226591260156602363786266520161741609131567212837043023831858011836035956376114402196341988517773587153802798083923962306959289445028812707711326597922053836475249006386505384673526547127960139270574253357239928439256682119007592076122827272386085621382765349933921722883132892944445541855911852332513183003512791379252076038822932907683177572843476710568432799744762007968785459609023037060154744372426114673976376141025089181934278782304188311556795804541243119210344135149026909550179999604207232260994274936196212594458470157994267384082691680703420037334281735882422048034577619180553844186706109278647544687110904276564909613367896693206186509904811679659860550340492059617415840318373662444987889103504706165000925499423394566216562460486362752367571958462127097101035867837376285945519035694807841844204611642743268607874808440542518712273222200262143479895429528267493240381500981848046570078416191838634925747769264605691767553183675482278920331802726653109312711643679338196228009595413304787068427586157839815966786353122126491074162834036375848986732387826613769035930136232429615603116634579503348069604146809599985141673315641663661063813593337029105580951861002596596933585381337026672093038574257421678642906364254627773712451614250089638653859527580132228918653790607932844115312395719443330597111674626649023894326671796113079458231044119190079783881715223000670094400240063875922694362285108398908252287558339675045354327424126564539480106648018793370264779678643563015419592850256243936980244407004148981012850384761255766532196799894997511651665525680354364260473149980694157671149571790870619144799725227147952932796307353587611207582906805645927075287717611731266294567603663357133534836225749231609088499733950008239080227083401844218602397156226894697590112111641763528196178800201355089860699803555039550769601752355717349136765805036634809891766237472777944388920986795169389361595325081576104264980771878858319166602587545585580207124960203569014360241160676509441751163995525117604635545835455868373332737835385586657651755653238466588986398386295793497986580783912028837322165418055101504518391046892095056442926187130727188975971985224621314295193673784547251284191391728084319502081487214486818091226214195079624858367872512008495905249253663525575397130128252266631931267472711708740168740198182053009569012107994936932404638634100522606283359784777509936197411021609915334124174563222729142898453154604467932463165850820599008444304452923568356130595857276984976510035763738094889043789814971338944112155340478285383410251586273452209298137895801512526795905016883811079779373785231407545364238326775372591139723168587926879041195675255583255894326247463169595932379328077397215234131651023326955510042567134781656878944325901020307612993187061171311147244684738098761661329821589523733673235671671545614175551623880797120001523453111994541783387246086759196531569649459754343526241471737702735162352186908458816943326495436096306903278636782721734337872342122012779145307361528442917645937575452766551173616624937762583412326694703866180109952641614144694368666554121465355725108823132604443020594782957064696420840506639720639317365073513173003880445262259603654848636596942695148372191940537488664822469551380014166175344131094397669630489259497232083175309962614307845299331801650845208032363582644210162743101366129855870542291846918585358000259657093610688867074083687084907612579947164130996388859772806057254383677775945949487903959265587631921103227650583873043998704354154077217081533712281697253470848046067848153033982742535460673613310625536480782351719373197638292319760687931863997393970932923584652592525487847560669587367260250749646865932053476033302670225878939971559384670734638222108716543115987110832363590150691704625433514220561500233993163621226931614164516346722487008908575597842867209087050350595391102855612564991351759644938784685362718801645021502346566085754400621293280842456354780667137045656851925933592247464344496813893964095728803007741566740902382614245016397148992671505880621404736388771776520916125774301134751954522037490896163122104904353465180190009099352151964047145886477356021465122479417805900423518207667965078580026385108261666788485589507491586451266193098383058348262969071317067310717197280807768484805796587544413799294491070474718297280178725901703403330009230392538061041675484669889573135068038686174263992443690005077832346982406924270331223442533816869554568542413174368857672121852339245514519543662928877490400439455946655074084270251388154225801277993624948276125530109575941070155752457017401978850976999525956172086894340915972589634928359294917641877073511887557335239097533861390461174419754910858237894535948817340978863945061700922735583569004058562272378064911621799257526358767717337825450819281108102159023883118495295970302890454635523927760376697180464550093663893952712937566183649877213557432275835211796176974028937456777117102096019708609988891974822781834064514963240191341985954666751863043821782298053647680859641348784882765133590607031616600807385645023674086326510479565555523905693241365906176731915774394061383800816228694214783660581227966013786881036422393449289901558277560476721452887526965184984097572531141269697999683583131116362301667967637406820847352207648198751988229863052801822887374008463358398398351191797700578244819958671237440728854255425882067330386593512348849979702623134280932584612061873144905739334295261855568315864723465082335631116899039298074623730185896175127462011024135025301650473598739129966877316578879331468114620930068822230887206158330968583647938117175872322118804407563604562665101608344367723134148461871266939435580944729922205809540034174771169249485722497611316668715094906013042427878611700218095472391317944418416770245763014022975018319380448844816047770140408137418939545475965527353961460351911339301223133299133292565079896523080905985857406951069192032793347339726614955417056166160815429521787924208501892615890842770899908154102051635179645981575455968806942601800130355785547027159876006807331451816194078367221223851733177317836585699996221593848758839224899291106871277741693137472569565133430063065227379245510562669218808078118325867313696011209077146657944366288330014408158630986317264190633304404450805822811281548891619832293273181879995885127378387293850969905006909581505599686237771294231761972940408139418136027240514820820737951363148433542279393342776536861035254077258399965486187460681108544159937826344218383938448584852903530456971510991250442313825249252954008960027765387386635741563882743141102359953392227466142808950302357630184738996956968785796476148133852746260001728400766103533599700110742958861790934485688238614022120262810098784194778556695767060208297297284932172835947885074785626883541396045205032733900115976899759234882378960037047435094401262181010948157151330500526967347505159579302414192467718837799078970967419856206206033657762606620039347514589512123138896768052158583214858756210049398274337792910008563459608478727443346055618482163033872291055643309346721926478665631468981442003818721109343897389863038172129579092991127430767197772915783767485462892852180820396714378507933637369500772766426675585419995885697258889417188547324570412654538727929383555423041284137013213116316861676495031820781233528078670360575316926111114131927428779044645590745310830304595611994778892976495070646397168145146294531242943635554886863612488265612400644093270462720991938024993538960597443351284906593630428301040581746061232043944596786199437588182107887055290972403150885180446976720704932193264273274749474657352706314008460022706069559676968769935816122080876142890824382822508271626545101507650711225487767831271048985812589031480801153234822354857562501636134324457554897084018525624878558411615590629157064001861938267871916714542297842701318556353007592339174371504225236871430802869738972306594087472615583200288560564305436754730126975992391214093078205163473056839443576608050549539129145864564189519842126675570326140401652646471819168255617805000436626398681263260515677037375763228255723722403373265634399261010727774913476271761697800242024174542196335423683421089982050983996930900966833517291556051800329123750279741383363465570545278348537476157707297860282642316989566162153641506119169118695850763008877398413314433235221610864807537627562795357326192768075059179197538220805055360859214370642558820407949945680532099845216195290348747172915878804337898027199175755284124951645538973669036679774585106049237316474933485138913107670478168931509280056525080740033602625587974658733895886504554910594418711510789894764277239141320085902731348230514711471086256844244305561264573131797594669083041340349698418952641280813039237953542339551451643685832971767270338799660705027538088446666132495208470595623603513288763569283104042351423073689830225761893982210451471164975086495793133102305164007027404187229255253125550507519626309014190428815837860801872268853303342603241887419947430948709809007796896221521278204036387184986911556892852678851436920811198966991991759394422276598585296073161102727719303922875037352767460313649872860148590878010890276964810178419250513768363944327798589783499670751064591608079978149867462129594299294951034556123952851899664838931513416634256253872290420785700310050576672387824994229304331876293310759921633410348818530789457862130438446990225971510953784248396404519561395264994091054193480278333814105054975038632521344166525325783462410543137242051343656100709750264749750601879329897004952635108038488001221708113442311592330182506552329000805329609505296747617827764990338046492756424607844006224775102298409044645760882840084383965375725163309086936595011316680590317606539941304678318604500629809546411793222760643945450974640311900040461013636375665251476339220564085394881156566515641449954699979896155170851923896417350486164401960282283702310531954944557157779195675885975303666098822024968864962402373769741490896227826267171647090545458964342513581072155099312787001810947933780019428811697138455978130343759117449830503972720050883851002048645276691759729131715166904145869909482996397885788471241582151819151311936465926550224699522520658612371086170777529724800962855738111726435043977239915913533372794371214939748639792624792457463092688060161268332810801373076067896388530352476247957729623303632060797531311700321563157739611414172670968457919889678233174980250090409276983988948694658406197088371187171626789505980379928186879083596767443867394110895371969861829767384589543924411217443260728143441568333778396580093324162653119758863863145759699162822606077903337395378068615499543343966625340413723933605837613571366314849602284656753473188333959769406024258503338228269671602514882648376703139366150304655694403590997958808653064775272076181214153941068185531517358800563179789508106998207123263571467145311627582525008062009835302998598765345615877265590577677705235068007347211604498064883912344314969945662968838109923179375961515198326501205987814416179328900586332095639044967327409677561565792169512569575734306501117727944676997548463963676474095197874698574050025666304304969303782864673088907406762172081629100092708410880219803664690320066048982952654419736165080870899913997268065256227964180494645415644876701280058394443003877713557078046564329913218706063220815142750622404635739633230334171292053079551861594221891341743934642698600396304005080020428704157295937353099577166776152516245240929006876484094452448708296372347946634083467678892429045159840508607169534168927276857026100718961752877525160511457579234875828968827250058296434832572501948870491673293274144146938616110082120730148945094220915611353196601506009515300421518796800500925670277461697526917366335884789531048751627925415229157364741848801293707600826420065741850241704070543171728758494534967559692560581068000917355323392465539765805611506266857145888623136877825027075077938929852212898376757339444061238960194625480149686695371667569202794500414657284567068530994311959103987237024927090104353255259805011571212263284707450745903405964385528208729191184983955166804404872154753233912561994593028105975250334168546567651849453998885243277578350372083477741274638187405458639292544711505554322799818208681879698647010465613411868005396513134672323812494414047414596471311007233355202812338522140507238615369316608946059307567586266790750537016110407034090926282674887750285975237510238545267796205530602752777436781940577953384076593719123390416122993896587754050420933165780695965341258929276900210583534723405610651455542932009170745043947019956698366277022470228830426650690455121943837056846708382357301181632285434001843049497985826217684156199179199351241530949158010079374774040392763688826938414993758057175171344755815931032745774187576371187757132246892272242493377771139575584843469314320561935228175997645633844635236679326941663652938292994731554160262278104340459712825822426701976096925423356800253834894656311249517014689940046400911880740870773299643030944043581834084141758018478995026247389569075478192665221993496740541728819110503325279002158545943175734588732769586397741338302654225157488127285818892732849776969110852593856521723918404258258231447031064760464814502022210286533308656374402259588047132186945014436681753853073158920051906575480158234491548443177708176712520461196493945018862567637414537686456006014215126129242464596730642846488510497611191884672049866454759999268017756643379003400568470375447562878249348984087140077023629650417075010454030069683112353172934030263172213170861762029604344548209543486763695249394153847667538095773551214637499080503829564670902052304673985564355823807120013405179535817759266117929746014869213202630600393179956484944444731611937253694206234756374504782675939732127033728057813431266211173872224928063336398345193036803892593096889952092520352785719809923805762361228496065232769709707647903913942314021333686903948086876847433080122688699462034708237163097247047250281060331416470144741205421382403081283471910093086202697490915360722527512865977495195070144683595703426614602530281533848272776449790077688980744583010805807625802826525398467121849904439425891880218806297599563142816384851120947134995242272909662562131057200278602521302716524357302013219950531711204193338562432181159685353143642809886601095854368526010852934463784118853718262721650745414154290924125763428168346424803581833399866073577309409498606570661584407016735064684551083448304103407143306886135064816123133500844233624141744252203847162068581577800344074422408997737952507722722425221632527079828648342393603199360077015781454854997327914957152420477718325986255747117217600047591868613465766800747913882388825260595036961456375550948364552494331849375795834470825651120297713054890598588936049041984366155680280639101693150794123984426141463145272074906342167466656220820733874054410275552773264257266626032543414164518064646201359107463690481409139488173491501909058878658865756080546331911539579519922691510175261135535365480449153805235243092095683913392366418602184865740565313865858918038882901004954410539504281908521709568970985222660491497703442563415201133543595601620804833457056785828475182886943264572847094155070663900420218474284148150729321142555253848768239840596403694675585587065077805288811843705437076685394020436679087947275769976742717439082411422515170231955326014929205324852331644303361410581348081211878445401680049841863719537750791225098168839594398437434905009276907430497219732166826907868189429886554326039347996027915286663167424520499357683219759829614090609600277500754116118234136595195436476826597435387250343355756076030942645937176844352565845618941330436265854933396448813667814189940353781251863618098614310938046860842389417657170919837530273529460531821774849806764100727806893539487785620807660764628864349757813849167549694801333616458553592342187444390487282202327482790004380974372224090556657982792540792018271917640731568687889908698234433324298461713480779415792607894378693787932181927623832088562198256262053706157053365099866604373352780043029785385825777258208143493068950997469028421232148054362521441099265845132086983569503793412192787701548376684625884851480353282100576225953123843954998455977183661774696948771337360294902432014008936954352464284670390628296129253331756090545801524153362697046334156094771470387833114080455327202669851691655054580885262347227009185683811529132516075575147329831048174511690118544738905002707966281357373328915219473513171507142118196223950640360662507937661011410909757198751950627907671992084156183831262327870536779495872093480853103370037079676981443339865319473005539550361373716903540441227441848250897255434113291414099210105027940607813434527454574891039787039592557677197303266292058500218412430561101471172665885887585811098013622427191783601505630084506126095803511462218689703926560067677522712781150869182409312639832388951433073092080618183670533272221996712213824392494133845030855374291395100606121406401527729920472162474690601996875361612930959443531967021387026224274713425295198346411502152585217190733435287605089694898596618737246471484457540042632111691306610800075901992768527723122943384537537344556192707318420770035251888198510000910588697024636141339463736403629167648502431395922261089143124584310802491853376636547379542810198006394675491656738822093720679550224539749527936043218760416737125294186890416787560507158191846283974995177618984701201417284922531659976424913961553463045596737003669827139244746172240537756388452506057383117220633099522461382751543842624841830545461614239767958075757928929553582315837910599881000136355835802538193049608748484062324421301967312857279756963808915891141510626829367132533904432204439351225627134258357193758075555470995280586509274891485606150149058672218630181453955271543377441157484301460454210472371065909374589455601850747065551250496207976349526296285857419106119868433743595990276751351242842162787382704073617901822642116190565452355982134650098443468474989342551941906125685394712155093835778399733985359799208044091401401301969205884816241657792074385061659298842954287592676532576461278658136538693023064324951487229156834194893397732577238311018607285992138274399553167071797786946310241209656299251563690707097976574622302248111836993379540037289040035528138387916696451463050174466783026773391565848513133733221345559120169428199446355869119901046702572488630391431318926902723427880765595671435508100852332873676188833143306258402854461381790916491511389868861020424410969493039946188156434692259238227154237325561865763731911138393508298447375787630908881906697487503462616077362010561476491958588895261757302986600028449208833098693563896669357365831543219805114630291803035328239125122651457960451129136204814160742634836890487253477414604979289686654718043110963702069366180038156492646017632282354675257725100634810833246049639745818948562507159279851400688234565876643286169649944702876172786074016278793760031340305365372001633610673119735402165742745526613772464146797016342322109483927352053992161846684431657805148578748738995611735615742292710799789378304117463423317231236870629887993956379693234381409307730316673855875833658948792192292991702925321953131063137516995648955562792077326334439956069913401234556618660027238644091295776817456745562042696966397914924854631761555583478849112031329808109382020016670821426195383939135194943324558741577258369481163492140484733546704852527626699095914448570908316042386634335523479952419332174312708264275715015373811447046489614779234323918836597604173276069183964760678663226749291933231611318776739191327131564491305693705855153395058229226297936692800988901273744011072991307584839194837251638752515268120935615506896612815652785043774385673706596865712904074504021396786409805016287163242664226733761382152956236522040211884309169244962016703983772402290077519119901733887256549451670248842314466733016979564931389538586123981116683082572022333724698573778725176730167468852701156427758200593935709812258690125889277275347751245969545250389826116680212877573805636856315644421994581874028106568017531855645652955822886169552862742002819640306143910590032153797953969302185194232688079468527914072587719484690411764169152274721106824390965834936817407243912567260141392055375044387785097186906128308954214450904545348523815226121360913632796256187136414316494221393554422060053382734515307986723066880135629301316501765553770471630091506247921237391937057541387260377844094217302591125049238615493819007039732269827084459330938371631480611283411794863130846199594307896849641116870843379334405700795264780255324299882702122395890715726215449188311989117964922556872579518737643726521041961886235970807637082519160197482234482099443332365004015103308033450987342082127921412004204801805010797985617232164735044013698114855410588119726087395394254908628737839037468098832081722147968307431302693815436368453784576155752019947911774123367085935717692095928402888000062917208716273797741535129580502970994424191380762872308506357855702200290134327092777298737515761662474840473928515508631642153028208352650155756311959083682307340304392715181050027526500337086894984288132356849650072493988474010569473433805637338402382436072538873309111373884076450003773447847091001864804554117110025614054087836992886952741392619379085138522929789581062839805904499241387273763985719482912844834765974014041432598188502453910670591768324622694839736115718148985287706502379213217892695361163793044646771025399165684431444320202981168593661665925520655979568482691676299777340317373780308748208117848767254586837334246334524199414107801536921241598778339974669973954295186818200906496976103678215280989529876069957103569096028371008599789898946334872095708021792336657487071467773673609724639922157532194023698804256015000075840411757319574984167403330352603948097378856539028866590990135840319648037329389860459420398689661622275489436550760002345814107089615093946926452773942351146940111277191491369254378585394835272648575521602087204812491691018527179951837560732844266771847679540711162180153539879182477498161858356464522803086323997713849928359209270555307866515564527689591621869203470156455573402876692638413257703601605964596904032255123102029559970989164180907129145748986244302977071138941462836484848715767856779487814312512432935502476872684689469338789309686193721724524216873927185950326411718319813570892707560107929918514562750286621924369798417811414045403196091642478439214390278338683726417115549439630419405888067523818774291085517880020788117679147787731136388027728566969401182727554750200093592740494837691964174174743764309935882811490241585671721186545181954032744630850849001867213652717887423627513368543825843572609765763398593536487906202036888810270158500580830280052905250059204099540095599338281560551578080569277503764059324228538216945892473083726933480345155440890818030000971359031387603695064629525581193233191042017397696851107854510205884117474295667426408627622606677216076333832609244311716326610442814595860625069986860747754290412444646328607846279208041631617188773654072051469312121432516923429453543324728241729604332479029063540574426435510165761886887575528924905830732266885794063610726347131451280390967940936849793368148757132986978132119247305994960140277818648319506098399949029248482264519690766949366809185292465402548007721990891772919609315660548678027148447837660439060031471464522967233738210187250391731552458699554238861364979298934057309118689822968756922198783526788848165620121799323557181193394789972941131625038237716074760122507890913913600736981616449615507711562475184867186427418752220983699262511079458767442710260549101837714149395384601730899334493604769733019287791380270313507073210981882099042177479582446759902008357116817844883047873914753449351938140117520881370598439846549557055010189474633178513544780605002453222898695956109812744537200340506843316195198363031817037478986266327072440653794392777506117384377391003701560450854244171829462232309874159926137923103063979751962906214954936751493482955342557326734057366254563878208772478017012519108061380763294191048376862061550399017105775493794371981498602274574327687358665472119372473648368884738636955047230458616875778992624179919242888086846632765621548945377584642693660170549041069679139658565047231426979266889208569296287842331651540087970794840446062660205914207157264149118427257725445185179225229922899892552417931329556162933387610416084919966631744230877940588735083947873072830991697739834979436847746344801579069104208387495354926175917185412293597518990089222621721914459306788619760356221881278063881322456355560680694152552978974969052102555871166688039462531658155902647017179900039902483340191847418611177914250879578322003743133899943887879017493217832857091362259345239879921194135829648604238718240674170986228121901857333681568570323594309199084131003274241630856070401839676454219756598215258342288679649061753328803833759251880213557889351191633363591256530761963446885955556790319313426753383306631643406076972503374612045657857542749445605773180947349044636421152998533043536983846609846137669343084617000549083610123916548740215520180743832046374678390499993518567810792289725874690367749579133853503513360755073213256002919103155131072831771162507725515312573049623272208602252146484022028427985932928366887990771408192398837850356220529453361568028203753139540331764315894056325311235868239472892104281477709045295704912875935241205135868760328451425827346944885456431933445606103927719582129219413108746666766592457491385391579446355239886906767996953556594034008392663094891563705155183329394000503226417088488994601744966590766868472286681018342347335807481678608256992636145794143415773796972761953625148160475046445713935285259217578395278564412027696318595151992537064738543750734841980458523109952456640263945256711483053596867831113800408161923406923403260989704104568037934836010544929206927313239109289489416122528772541725880715769800290232769299265396722223125954237897818796172973692312698629041329406930477926903407960859369695530828706334988535898063170379065510234555035981104722630784324378875026808665286661970123584310754871934469961351102465382307632638598946857435306560582753001735912983069515639541943378121211180440701536153143845798731666720361840466592291400072861570470923183888837125901137751101546728156831261731358454449555693404016062515912214452026304007316786242123473984156636061570022957579512596067890949180714872199201151338603342012490334326901903152471111177053767490379250704771080007807243797219997486780512705438658097738366084557141592231311250769943850574957208447061617646428970167342485313072653113141132969224499732589869379336205382310430468811672702967817935315147925262277150873178413472011750829199181400243851651872933219223671393302183937180182843192346206861224877124816144643726238466722738716927043432266762821335957208657592529933570469301671377062937231618402812814665403393929976479945083556352931340448149974608215731436782770602090362000236561479481796166953389820330364315197605893882403131045864624539039457563768870592794191446351316565638530341380551160738301152349650160262898331175266540895142764548739436429000310464975634186467063383937026404327199934445017653621194183980914054354312046611071022949147957282230048881509892880052029822219560313715553191807236758087351573949415863863465924264929827124687428737887107211779609342852822185075176120316328786505095678597846969439706685743639441733419056383504407294386217526100606739944657144525650821851108112347349770923533060731560343833666812802897283552949783468612079306536662298488684458973023686950573180717092710488020936988600525942346855824214663237148360334708879050834675141631859978731821377113609337967922671304808400635712740447619016990212805036249551464937562857255534722015529162736004842071745078807950761845913606957788248618747949602794821468325536369648055794751958042265961817575455372575780063850078828942880154045147286645076936364292616561464092376099194423025307177606647646097489013007128320670095834441486795964288442656533480626985008900143585979343204954700739790197624021831864502251873557681953846695713070062888292637561603278764215965593125292492422161329574504065382201672623986186616485814342988831519203159057960073366305926447801768242805793775192549911613874081655519618008061914487729485116625699772451508213714632819036518087733473753221390179569455469855894609950994481976623160582738973924308531049444078708472699064031783593529046138482240608140130673921194035926589229119690168304343622797153048445980731590371353990852305554135850303305994263075300844749731213292281390041493729257315810390367157343929813723660967707037239975647113138365036061040548871609861903961849936105390323056035908952716521688244120760002937772054200549345059959328476579144513894804179203585085252993874450064907705032042624603929134791860529641815140735430834587703620162613635647536716676059747800859031429361333792933191750084855096043897181104098877520049212223706955858124962571331447606650693367882768887310324454243982890773510726773326678439323322019262193656446632205485521963628598869821245905948414538983552431719342491299006181463959235638285940616902975647631126229146674653662658235758329722166170996892121526322495409725300927609096890929815398547781047546039704805640970194386112437832161330172173520169538667789380518472999961133017530953639202007972943843344271324196298010719595118940802076078542247534707659726795708604373801337156148493023257101981328749438961494854878373297094278163362544363330826939905579688104948920375875078545376405053657575719555719402413921082687609088769052263686540301870822701883547584723999228940340790795136796379635072634422455419128095770590315877255589220778969111186865369280723830240389236271049807288831287553507175113342480969287697201586675189142171434255763904895946985807500609279810043909249452408176625095274172741560161454315945185221718557495526847527727167389139029014720235059895496157417316989042855399440283027838377623650108590936919201540276948681440882683921593425318596862968867707355681783603419705184191167919396618337297000193822980150272483083508010971773091110587089489467230542892715118246415440910664532953239354505193052789909317281149964927253060347021598719613456500206310713361365178616544164970357368209762583749438630392248773435717559667110116693127919204620889828753887107153631368815546679590155314546236533727710941929274840416913145419700177540191661941927952326018882537303377523360121961711612555388978356176708377387852607563134205865681970192980420505034509501358373027020583244706964639692236906385933110811220139677100067477245536145173982465787334364145518521246858040728801878105976487177630797893325464580093215613548419484217791755933093578596719469919505619129316799344119459729424346000102857975899404969436566619097579329566805424670138374499909488656972175297862499944403863256488733167600407677690717691102171332461667136933577677517966874823798119741641389329665109832191318891230612883213061753473064594326312369021942487650442656800640372373565200124319482373191116415861199401623456107055588036662603162216687847134896499772571443635703187500753298600633308289970512791458197779206078069420505494926820444046342562971575340949274355797251601572079797266070199691870098612224188969224783312230698835193026800133351582348097469113783697448676320781546648812639240828418651602491495497986442720986605182035717645689499356020430710489295815865063951917305638559382217514301314348075986693326504874799038056468350956561639841602315510479659885931684745229784532711563022567963824580570873833598486159426999235303174720562022037261527089760668460260887447119518675285250056178297288871967524660489541310791051300257310392626908884742371565183099163546737457239943835000925165391918101842370641827844631996490552888569939325282656262824286907604695912293388882636789052588962979926004365835129285916601681627115850385950992004502382880525787160799914857795117410714587892789285944554229757489266391490606122559018467424204898306960326099241605373198039930958031845874187561196551694103025884274613267715286041675625997166890091974462057078876061938247144306820078699951582186915234809462059947336728416187438018376244684311462271997183540419908572126700675220557081779080207642238770083023145963243769724843022813747480149945967829765245111164756284494882391126580223207233939672487353483796834709037217278071821993045796170874846683226075483119464636316295504614289181870344025516066109960439682279760085105109039362910919942119388266551364311045937739823375470223489709893823833496062224144588181571744869858007680176809831354488908073098010459829884067101286138185559779131126585794627976344020932540464256523214487854998370452126786486295967723599386702875890628269927949214888088902597529717747890672029936712367876345198659570801187477179864845108982519553391404526404027575286220156098390974367883923433686902937949023880629769925569202312504277051089435097832023702609078772210288838691730652029707426870592354303768898474913311508457272408927276852932025683038229026985498309266427981696215482643789646128368380420732092446348106248237628678481958108547337889172165033709317162300827835446095355000157087325853718296069755081704358349922043478239737270858232696362370176097674845003041090604011687748131236415722492541367350659699997435146831130004790437633894683811507504479836224977568918706331215982573656934306098101058107512832028464444446692258358776454107654245446160237778278842301432414837607752722866645863176868757284362034638726464703378104558038408699001847001329490672016291067320866560152720035703770087723639337084619152832048823114035058253541286718497691898740183701119711247408166154018970145776023023745038112311099710264661414041857261089563696058312446625103344217698695531230691835330056188518487114675653747128425378375360270025404781526769638680028149067082684714366270449383420886829795605591530914319592305379389709091235016831752315693892208172366779477179713627192414555888808601903804074946015109518157321992631630815367277863953398265037693509319621749307103605468274638519238401085893804821537960570375541363419453179102144027724400228595051052507885300563625487962039630514167505389028154839893826056184605969254309230501184482024440573533399486462324698616427152552041418394545883390645070021120281626903764372367863270923848083570492855665422565700417166434679427056693169465903559002500981102046159970692226960430393134150112385202084330783492768521280232291152519737913751743284056717195786548200968348394935498706334104510911558023997896555372867167199806356218822908985971359456599565839007199084113529007032127984868173787637691975015965034762104926792800297988281614426247045499318735873796114461220750417737680384233088995124892738217191170599517713453429945729725215214038343046073402932129297183599023367167551902048367988934857854281307409171121274913518896650388059503648866001930517747973772006038594794431466501041077192351722447258169876135731553947360636102260817195494774873346575307697623829299706659381130355666982838308327669547610966886531811220411325508888982062797980648030112172279233418196079841299972072008841839387221139034724731085153277483669837824867965448539605467332451782821837371290684884322609750319063553017941264823895351147387863995054860224600033576913603183825695223930439416276778650226367159054260821794162606278653413781787284203815659300744636406739896675492687649395718490313212113656202390261522984062873095648128169303501869685037131095472329376747222478572964170819858940521696598105253378892335031987258494889372864076832966453384003413973368465664299812962074532556516610754825373816739692277169563653668258137853929592804863934624068004561289736777656499264445275561622239943174891109978681413003408786160964068909193446601068578173996496691929407151979770619673556327808303748676242818953299379935017437703304126784639410742390004075198605918156465947758609699994125596896228698815789024265778977792045289457268597880151203918786449716049993622264612495868772143477181778272154033157908743833318094502935381915728145418326821124819723259721432234940262895469574762101080787425847657147801608833404962554650632414744423711596789923705898277665685897719457925992692904083389327233247930254203274120827944369363547913979579720396366395782104958416314403965424093860475283325924343500781306594917949907703881670567144856475901470819362884606343870830873013999253725298366891041033135943943477132545251112552111092798727785951382708916366590952074170927525129902620455410308034810322700046208199313497741033969935705200813490694208037872203790464382890249902401221380463397980242182106839346850884930167918289662130425493338799654874386109320851491053327587732269026724129296625673645906875591489631205017424394526389397902442323703264903596852578213780965150454498931866068559097566323944226182229519656421572541809032099804496613813953120985347967114699342694938245149667475159852900475180527661226007197757224967081515058039143461824012521809293563442697690775936654520908202506027804671493363267787205816815970250481840076454284365495003371942335655317061100284423030042053052952933086763760286456546110382753741547484910093128725956442056976109993020881040353186694892623960995356572233574757431587861845904831966429563222726105271648198398546337943708365729640939488820397486960694333315145791639720748072343344270697628656850889473094981597190683110612001028675230952011106399785970418819427843873191795483746036719035569303839940154837381862624892618158175467230946628362055651216917470327887284570315345444858522369606979868892249345328209693435676167926010847238262589759905263792325916415032763625594607746274170433254493457444889477216876271827727072947967992940703725682106129508999370246217199889894467876686273457941352264033498177530833993906702966521338034698372728905324760066193925458206592897014152612950727426292279324657917043837162693207536501119601557525946940619181818487377713426834444240529306600573344588869058880393177484511774102397358775282284385958672028239874374352959211556243224389289630027291056872887268161611773035695272316977436959291424844621189894575011690312957425148284517441987133717486576746353974745761595416087815219493803821906317197854636480687724886181039189448975073053855804909207963214830893523184803790906668134527178233532246612521949926765291427590890922621175108174670500059568093135195284008043900757261786657751257452884330535531748414291753374248775094899335437358359554578827060373973912922693703012439656897123773945167318596704193173930742310205394492793725566951434978805545703305908340113045524208837745301823471483685405703839803008349014666157562782972454384494736538947399853428754328227478538137311632469929383670295832152967629316901577016376459707311545568276634901948250420327162355437616062896101031778920813007133134968338654865407252699942438188746548272867272278105469899924363853838917100915927170823049066727659616237816864044108587574547936667543859698670955474999659120236471863025134234286603123083288725426148465049133391408455713489742121332627956375141588593834370232883676361427210910916326438119930711805813705320521818716890340408422833149561397141000910171509937355016250498698021280775524186200458708968444383063445989495551440098765192200443482688701270198303940692242853914434437692525690603785633163635916959756362855116855631624525027754537619629428904366194589680239185158067914386065545763066653855089791671967227739752076358291905766479671803885645388188660350645431683355124532052382832782772109259629794743650827334190694841174771358669416235515154189766502736524377829273750109051093082586789846241868494722187945092867305656472937265721055693249737530172030034298462939903576040553269480197521260030669803843503995362245864967571735364486622960867665022114761971906683670007878619525727724960774953015827040191563034896276315535912935217020929815099957118977712469085446761448508350541333397848261343953149537191502413214925257011457627010326835919788551641036147376475962509762230288111889540471348042461791153854163232840054371084642690950362186833728775644555584451321260709365088896899626104066097271490158259265168477635062365733527671953832978920009067298565323545222748165410194800740749839188230279326391449423695735288995277041099533947552827010819433573369718431950816575181773136178920372220046232022502571019599757952402244477732146208376008348553877306273902091886835251019639767078418503278393034561640141876545693800041666721878598301833249780430668413708789977806097087513122453733179210477653219632269292062444118602403823939582693848769438647992158275076780160750653635601924781632884895067393170475081966462719511896879259504855981422537353491882022522322545270640311004505864934019626832439967502709419772579999621126315498180662935407155836102749719065184274065659372545125747421356527406125514208736831953589153401830056437614755600059018875594324899873423544185362988977246414291129851849531060905307036852909517474704662175927821270284427202763242218865003628293273448127781908247371971787331228262452933903310566123136943767215970190562786251023149650838505178495474625792863354846764750561938956048712724763153542713060257324619707305889144995762866108051940160877383993594759687934206306164976101628938474378762708398093652868909362413539742230974044012337734528350622583007681949535057372712472914630242934201182055942858754096729982477433299525328938891028826238500291868606622306007695414534401415437802743546527798112480595010881568865390958105517925178926168594761989018512885485330019719136580509343086513733915671442531069334558535936906805731112135220901489843226163964326307761140249595727575518017958941940131977457342289223309973919624542378153163739920532476645534806101436730683257957605166743647366202346212054883257962067779465896153466662849622512559988373663561545738099423982234139778573181185266945092193334002783956605221904343907952187695286295362583451142883374188013897668334834519923543727595099724884754998534821287541602121420007167425273228186584713024374038012472127577155173543806869321781709846930477213869343623935185177209438091902476791912350163419749830019434925143922732839989527528454309800613975570079141708167825793398258034505303504355997163018455281682926422796379517399826256972139310348886952365033887672353459179213883115787976624404445856862661187618660778544234578255621751391515121750699702826712148235376167533902997247943869400984398033723926082575914971225249699909162516822418830277064831538112236871275612260858402325217728238991975461696687100468066683951394054683014706632437280971730852617500405405846357996438713060250466532450985137113504784066696740812062280849524708273677848967506686806656952046159359064032782602281023655208379777490999881339305724930668665438786938362894312535175161385304765696084834268921637953176445418916273051752216789720804110223722838862096566304326937505381260580743571556442520301536065982737244631942002726368400072903913523216097806820898002503971154135638074184333838437755945688993432757328763589953934333013215225900120838600512520109318668826735672604998799535122658646076878454488418338341366254221969714632518921172825009741219838894379964774246111828756492740080109580681071631909055544066376841992483030382445386120476391807877747840955329367731266650623046349154209455030131869928385870404977694987623086816011982250603784077829331371486931955769041248096002894285901471563003599521187511349609284646438827763668164442908723542365626241849131109707115881107599568488241862765942931155326435533657810786249366068097352567283282438804714953365163044632204199356237763659235469498248612224043693305064454708669838194561327173167062872112922330882782287685661129367040431097366815821566525309531927357606575536633813081141261504182742591979158468609756617111553592650472452890139797307483656845667637660750300080388682744809256019525018228778677511683518513900923990735105970327066961915407328728911684660750520909200607145646383935659156554266871106258607999663404577588827698230347449917712787416589237797961170443306654990881949703719928121853092042455010101872809707443290433948270288632007292968230071606130096726729562697918386254192392746603900071210997349610532335584725675941583353650389695788836122277161020990818078499423562309210965202007496819097023368204647962109385232105587621508865676768483543211634698215738765508378320373381431990074202634978428101168489575401021897545070983266542762146933390803990467531115202415024832005665615806359792361819323007628827294668878379078853974048969533931470031131324493093227705326130028850543429077890063403191002285599374199590545341982948388657641910838216642991461141910541040721718375771550615135153927714008775520012284097818725816627089312739645464772598088949046387444120338340398470547482648434216601506040978703871976045332968159456039741792770386611691754030605604275947492737317580608753112966079880717230218830918163103554699678999676814113223840584872150451109777541309273348085613994313891956459179137461296122743264902894505828696018397663266768184863672978442961082457532735323785581012799169576075366163284457154796775700222592039479012456471885952733235380132049867071615509158782889567274613439615495902481052675789916395615629228002473414729092945654241442384279751348945730605833955546620662702100141027670794584352116489088168624369796568234197708223331301580282187684116710285191137349625550441565003220132187807208363215672758328941194293009420176277343107493222163016969037110211968178145961129850803567824717557225952337646404023992449941171332270648140922089039340677416590793358224796176127195757906232160753334804425925247216637653281249173787913554545318283886538707564763973408162444498793361431231856965340138644220930574391287276338158138712550673712242883009985818632101563534940227831056311703310767124990400513200129348970272130995215492391507859042140268931300460986561523614052530392725431314097867037236715981350870414441556847409342428580682669188705870133146463205081915056248476004435207080754087821149494621150927923356416767368335016422842786529339283279284533215152892040943012000817086185841075044157621681026060833568283697384319713651082936212468002579767991155399907648403804992817180375653459518384595099340093392603110508797537641335490529395708765991342899729770181614294760801328372843715905906287968664004706149178465951433808979790174722888221305314151452675047969517343623347261533030009304974265653945794747407885636678194708758120346048621221197326839850319839880675123556072123142248397682069335797025454114267856882868576218146166824675502952377526614089492621794102342151635411775702690729443076957090896064414965881671742121668318114963709144779139340867791720363604718337590738200996909450123084402978243198983074299124747509659505402432113462983344156393868466638451130417168804680082835017990969544557428581327744030140033636837871236116275322391852009315108695478540406038514296753370514492285816823175467578599332489704331947481163136568762244209211961639847807493990632550658610472649946278570911848293076400523023957169404530229774843375344969347910427880464975509168928481102733559380944046934895784831966191619156876786647442091767696146015961430071187637115981843570948763419739913808562861781819516833566051319780945322585426552516534052564189836041918098775647547009333545646386374588183707193089927774747776519400712100160212924290428843775188556969379841374619594878664049528851797029944034170922571269836434779234200044508972401956427768435740004691806885788296382555685769552433481059235369632377665412136136594165896489360126908303912189079669346387826994625689894323842694790019544917649079925967283332015020405505639582288322986542152012739038571255115833894601478826796130705936844627140731766358507487735153608785471059945081573750376872175758668974763714204508585934755203715928941449038455518882477822488860567681794844885054248271176560204127562510816987302947899169290417780732082029453912387288505780471150279434067819720679870667734689917596857017096422149884386213172333014036484090622963366139731205126785480197514010687614978678223829515530144775438800942091958111908455931728419128447542459302404344156046849603652232207039181979547390237479288943062875587989550434633272922942658198189938496433903901748591900745498519432437746889715163506178404476581726383698089797509331606867090273629067967365282770315463201164237555377992984746403323273985355161097777810752126229689498605135171656024102871037724129408278075558919925350758497154770214909146833655432231086547487771386228875760810079271785897902598759188635196306045666633363192174079445303345927730124049043232891698863107254908590395013066665927301170260376629810683291888015400774006822293021385957645423568417243649753033910342475954667977697080027375943580064715248683506681994620785001781035428128258352865340395212327966035363240822318089825447710520475037042522647972286991591452243000708332000742959773227257950376529937676872026591893146678879839618766508408972120716214708050532965530683823375864780997017362177525182662259448897555479107900294328073777695412037888193857533624535557555386215137215790485645195524782723839043922555586085459837832420422489960586622158423688887828188750328772057840977870899101239796223592813041542814620670946907294304427637357079519463824063853539753893251455320403986581318766650671801285529209290281388464944991314896215110965735382736711051946125607048321120628812596874969053325465166098551532847050207218448979151303859961827075525350830941788153307371333348324728777479051810609940065062184695791416090258633376537026950336325159012400610772655185040857437205040286964190345060154341482587482135948966805169716220412921890901365194266163349101517770935418782341159443425730184584604796749773411239673674607693758490635429993974545300717430914967401452185883758079084100939528251239939418878000980008529832501179715524696629805239359426053342566834841710659646899602406759318187300760771656964600274918478453928375977395610105436229722833079671242759581913381790783409621408277302609459830241168133924254021024790829584271922720912310498777743600822820404793982383576317324431719483156971330010828525340178091758465229417473591973493722187334865037756637694545173480584127419296480623788474696003236329645607187500856199400629019636181432769610791010248477449948177473036975189922813557693575014468454703817964356041927482029664114842647553884616092843173667326095117141455146642087759372116066400571318718319403782493035660264211455546550963815617175988326306606354150291012138175740705460347589437776573433474433136145706954995855206815968719207955264670235032289325886926552115837404571767926978698309365844160521753983979691416469213052887124734821526840486335441603666716454520572878920653903968965700988330392782283124639883225936818488973007620295019139221746963919008129822447578103017840712413711813334742069153806373196342037227001353128231561282092730787333606573188224330352677536168514401284814216046927928006261490423726475295528980672386898011246352617089223609419514298318505493877642205598397842354960683843080444630918738982811032326174942490245929687054290959893277188672788181490220518594249649786437220191508458725241513773308659016343738990369096183941846604804764128577485733960243288848561594816539130995078432615276124274373041981321913109713823323536521962565656841321009977934658671253098091631236945456552408670990257957373786907357079576233304152045776015138834558474196237479266731639431708110461614928063588389189301292776504366428922229524865961964742501563936513045554221841369811550560226456922426884427092190824913879746046884262153522223215969529720460035628448018051430923514649064831558147073373909909403306351628476364524307039902289069103226906335776036486055194090278268031593780882659283867885892833398144312107432421057444077972553048758075438271808973816058294605104830293838632112044063237985310181200968004784013121041931723115880198941289995094490518235202855017478454727620598636970700962150536736780071040186618081413859627807691530330859735979222742977968064432368930843822216161344502909244442413428682045989239144100586494855598206028492271624778702699558974228142701436725836202019104692411143248113656782388531661678230591013029577237394942182206285322925329662810562789429374661505175320710232540395606954202499821431539771325543297586855252724801325259204962363918642824022950565291717349820738772748645347449926663833468080472843102113780927195036693983708889807928735328153398474260645007408084432945021048660235279258531331296531322453687733089541670661483631106827794190105286544385525475882138943087838755469743892676454966213807228842572393450520834542156644577393590327231975817176591609149922300536477728381273341666225338414722426299424119246224009785447297982912784403926399816969824983199881028202402018949606067126365661007469397089206468940335704923809270107051053509385611794273021697988253541628015272720389796835160423690238188359887210402920190710560875100167903711110517939171375466236838325414471785938653029705646262609481596059731112820725571828111332460761042177477596454839111797136188734748786825398458668974921061770350321736670657082169855598660531527270236429296210603327629512934921752142974883617498973053872979523177137651695656076009410257209652641367228047189019484536577305232471845768564345313341809126025754013903941163886109277630735614771042982037148558809988280770118207688604358180555697428951349392085027036099852913656672420004093406815626648000477503692670100671875654983026784039497790284984080411286490427373187873235749233515777926654640587552701973317415255343693433358781774394766769865341090342418288560046824427173558919562996250797908273745606776538490242262424341394441051476683286260981169869629957329189480313093836578772030544063568880873921733643168563019749588240778565646911005844850632217485602786987082544923435009462428781142479255709287588160371333704989444793554135786176777425930035019948788189354645706998980238842859434023529395735903638779955485801844435598231690842488353550065678400248622885397790591902101008326643914042378583471415392112521196644127196798500140377737816113954694556263934396372291698397034431618022638018535077274790383583877603813757838647012136315206550285043820926854716048049446724877051115295639919846196607048019909225438759193604899417764243237878245127509762457528554900919496634300563250421582478503943865657347030265069800272249653816227554125812383002246685055927019280952766320805532391360748859854952576989950792761407664345764642909718181527040843411686487519529152425069868697209121972727641663998948035293815572061036528542998042279339909846309262878679188844745822818384915413790257576173055737219098917335808706095211813913922837017330476881808509917109050444013024907362722374529981247942216588118589638088129678928602717350247906136422666697096556330601017905052265542575044259197988430962928103065781734716370568213331695467538525704127557040755862586832496666639996077175071424542434763807349935092557265250192876408649276184971730458976251487164885915989512553752282229553578092755157717734942544940646365328643887343342175307027972107888439357840805194777569825417393212928035281904328304226608115277615033728093222216146272802255172759402589140495678040276685368356006483751211956556037929089017497056882892495376800055117044514709040276477095266126178911643527084947663336330375047626681813493831684698386036717861807570903840999441668188850885715673375085945238160582885059497191411577351946916382663291000936319693762626563399714388590830624050022106856248393754516645389779526455014543848991742196831219314013729951184100975097941992374688409542501321236476707532895687164905935102896844431703315138814848447542911565514954932398604734701430994530959296573299640696179056571891557139592252223779966163349292409269002121723513543080937580132161231377545123487290335614609148164275810499520023608713598549648012759693337261148782204827141654286109728738531498106973275369685591326889312465886397377860527964731457744387037551291438363101480880102554975018505634383742326494288403807981432555780016392499296908528458983639132925179370625401502266817359646575985941633224415157573672662192304256955666018622138261908801925812037238815460077600385904490388617664212001571276624408763052928397860029377083531090043918658812000874319507410289980656593798887012309731006970179557992604473869636116078651598376486501679432859334319628128655516084529190591426779204939904118967887787866743039299757616764655468134247356325818313412266269003748336985031872001174603213572511554875102276922014334441704147593650389209545499769900214280493035695458920060089088122898084805497614642398124170653574543043763040631682499554358976779787290679404769481126790951355743782017524164675346132975800098129577909972707119039363809449713956296258726823835894718541656384732924275869509842767377721923321752765396866061772823715965708211303558103638151827913256944611930915881335319427340665428840741599708194924029183884976257483153393752546673650828439655401138966301676390463017835475369478652393655479832094346814763378984065784724561420759944989774128751744945814534657383789979602559586269280739502699277569907760849202215589743467392637791753036664387053071485251947022095708928286369504935855848932090955868667023345755431925451442518128800784991514185003301380182835829191679510151350632589157356879487674191838233061591376859223498332250831999552784862550590848674550469516024205215252356676382666432062440113462461848355382319190307897904891564928816756949512976060226185159575090914427722463313568357223509941125528091622824240694113223256899532000390302021969682173861309879698007213116386203903272971919955577059189465177709310867334359701908675463750777494181642136624587122836257130969042522142409274144442862946764111157333902606899283995914207344591821012987893827130475037383316679578727390062834881721234327931679007801792778205762794247419639511777509457395274438958633533473679660705505270121425442994790804913464473573810923689307860356623664611507441594192307991226358053752635962493588388549945357860888234906479016662455720947882310387009991721086516270017412776478931430636070317268396116681796735997405243721801206234819404677351511011501357530393553613503983876540463630317292404004439345422288665043755952167963855990474148107366357622269326643306422466225136196475599479394475167428303938849538786086663136566087608674016868254243859509309839009508247414611518279715147925387823632311603910159790837053267613356530501089255973694782566935222898154208014466204855019765323210218161662195303465718412880165026448317775303785757210757216727037351922240314148705332812556025237909652855171060447447911806731970710020686033490952336928994351734601699910718450704909528695777413179412053056639315825980800945415945684740167337619934446441859524845857806791846718267214579330271628648423325497020868147406915857052483014262513491301317931897383824525493171754034351063059441518585179933228918463985687661286780829821411290668500392562077476960056653243485162514854282704856142333971063396132693140524821184022802087649328246007079295186711877074641645736456342222618471812428438354882660565417559049879536936295956649725411837193356979846993998266970823283120991093412559948081987322038686457497615007315013080359405040673405601232570978746962918829946496700955322993288831623762277023446084161786295841810033059517722906006608958130305831313955885880482762259625175518394264980631200451271810019222194970576697488445965926929976916207972664234143396980960850145452991168678452787722580150857428597643180504071622549465121526895079761409835692430941746765451817195667472044498428603269680371841082593827335584974386855805135952284552875963613860275898194531001707608944273324746872429589116478218853620984582946830304075110083054667661213169494465638662336973149053630487890788328740420726733833969258348281353332462611966397276729576987444036547136001659167477142386181991645306272289815577356622922661089717797715008346279464409360584315732063783476195170000165810602100928784044356820652019452702856826432217607135816017522219734672233277802743989435971155978038127627806526046703857508556025560810516667781838263691621120275954763575092735610337565179769946577949596114491162131167916004607234256813482210917470416102540842483992404235096219691263681209164349037926693492225463510174034101546543752831620706105390821226693539714144670163871339195724562013513920405091861473232182936195189123645492088239049722488287914257299133977822247818652101339141437160107780810007161296620936804672633770301940591847858596557308893645078579360008786286866338079763689028078061985701002322447725140393303221195720569671864238802321863347761125994354864992447475166117836031669526375416043600635663238710592793579217568711999822811110891424646101546553565962127042099944031975873515343983331956098941730938654745465140999389397693553922458643035887623157615625861587462872818781337112351345878837855804216977643985259927890499624290653889621582122218978878116258382965907363248496977987612007130681883372519003703774034872250429734960993476607284864000163199296066954370714271183192140992442394695825665420541914512045536142364884148160260537748661498641102837595162909996220912329819216783392396425613907277536570773639372511982297369678692468915137165264869759651344357671228268583753144012628041840462286935889735824637378784844748164121073381675877592282230791549822108047959043483193387634330733994992519424337213632119153658108725527549390349701179531056527436888894408547466647272707809098080469973094052028161295824460656291655076968023561451397859995356144918568579496089902281540993189622735210747582448567245261951004826725615270172300934394302906880530192645535304297709997828918871272977567312250801215690898921046206103032654195355883084346331184232432667935024698940574739104932355738728624978680751440498738143435118385255825859650848619765348305165577465354849251847062358463611289612310634756134878291962080802902154188956716954705784126360651280509700448653394569212676107464890218260151360021764042075934304251549604712165606382690726688106032814204741220088866734941517997246444314878523028195667730092434525278035472371332498112111447527196051728526390932400074100850410135349534043775070868269290958964505677769755051816997654774249074987137689708054222310307369986214421344497048083338862903619246209941700659527552349945608408883527711995125641178874877554269069537890166583717050597606881779084911618570218746070392004112101273866342584584512364593848810490498891712468573926962218064811341034779991028533450433635293559946999107974838607309383222418565543650497649458385709575475892418107954937764316896260734364589130152744656521145786141557709921049334371327654855020781975775613019026316273124397224267414660169404353621126647620668955718147149979122203905936045317129530955540122855108112121026572969756546972317828275358932526338331110696576581556117359486795475942419029558201244575090753733704603536226154971039544311293340778323908570180904613579628848552716340269965063129190994269695966225589497975628721287757198542419673475301587463470733050737845796145354542520644230878240841408078462796736873887889585204470927908101071211987798727835924233933557556193713249979593876098414779898213818265034322401306385745448854935897070486251427872429652100656649787070156838838645399590365080171114364104266278696724141998326547334111284879330934395808667890754340702026793784774345535265665129290134337234628978010782011552218872393731201609370970406863255367709261919003989418841145926153701166686589563673150522163304107798488677211494160046621106586052485041079547948381425140499636824970739689414424666717487367463168517045635775424231051505809864764641739106287459904737924888107274308142629524890931985495762898324171908961998384100181546644378082375332840225441604148959931908730084724728557488183769758189534793908801984580628942112361133354632540040466535717316673238652078450308016619577080902713241189165462019807089554609187238543726113874966299766658252314714818800323795003806670118598942195994821840489226045885487688802337594014215791542952871235682271939416595000624391183593426781640483541623849679242080877099637573387339727138570051017216390102814006199640295555510920514823727888939586225063582005762355860460670033354514888308803206990796123184492379733390033115058829483802068767102409164859588883944324656344667574633584953224141651880328254882089918241029406831822065117122105635810950805267608243003755064833828150365835077439401630802437480979848295664872770213417005589113966218009352304353954888255902667090006571188533595233013070087619042828655767907621690733940856070615889361930134878025952499670315914362442199778519830043798444145486551659082820414113937673181040877195965789360890060092985718784824543162180245386116837858586234510782849182169145864330972476771131495903082734618524789221595763617619415803413031319184160775944101215743941774531300010795056442252510930673752322368854324279121353055759262100311221186203829750275381784254173117337551711968165240928436766301402843312361032923452318918370223034445497414188639739865083728606861694362513165598064294041596095582815279474489407960067040156066354233056608882241092462255818735880428279346966420627411245975215220276131826209673609273703418630680429620948015190112156463233546199496049740834443545314211500672682516687795066725418216964868333082337244585492412921673190981802291517170276395390765960845015945874597607378223637182049117249030372172847521476818938282858524186640140709140991778837139569216170769790100601923052662978421951009921840123220629140060482178194901561947902646631312875029083244483715546624849403861524853532736635483810240007269503753672481333156495813195298329582489456994701540983863588375105274450387542374163505345484390591298010160337024065091419654406408930992874563503612249158486023751328733731306177764383349114167974279563535826432656509343897438769712540489099543976103094470122301704959677916134546024092072149464971044874803825509647557923378408501570469654092609937529297506575632445478640178182086899760355012046052898752372284096564154010430487466276071995929003518139082264656278006917499381889757550412455262811876953735750525012728015922292778267737194613719216516400180711103260665465764572568399041112655103269898477620049452573207633661187946685468075655577881616833650598047997528938859344621827274827697573534811670385110008812060026845121931613498729227973543514525162066264467550435130099588759986591144348733027605783273860610819603256783353625213985372146327137143733668525942897840927984778786647466449578835896680820451477672719070312628807710771780875944659287949105828127513178451193902192043621739992710417481747355300551496807137461376682610245822978890268640706208716918408059066840210711797550731636097123210429979833192165994641187673904738358239727102066913868675822234076837140251287860243360137545695612101211186685695275760983876242013180600973001510948770418647501460347190956001644591325816011088700342409510860065966824661861370034045403056501560321089611195643279401133232062441296852718973390029304387526826413252372811818734183772668317079822366819849255173111404842922636004972983664647174703203589251119031455263782036974827376444746579634703436277452109556074920999706859663108318811970526754076084185209907452641268309014347673429855065555504958367106871903849244388501716241895924159706438955179197612480105118326621083951809191931686471500762285491546332100294923138434804057097770139827445193483922197130608237016546337256801393503481012122660511497687829462858623206434741211262663352782157747324524831241354286604414019190563714456193361673409966378271496009780576875416953445440599479396181489149477288393444938623785445710715026668290496140379849969979904177314534985205251546802967974626481966870228616423121477629241242965831276366150132159956875563032138349578504195023669392820440838149111506865684280960304485296973825380024172676987094580558823876675088046999123811364649817803232713886275399981430647461240477541717786963338613965617885964831756351902365389428609879813243105964107502022049060393598709159547794213809864179132509391514302291823591945291150294344931341236215198182158312032029486003940276690126632207066257065165460052747522401019923873469029975061163166192818509767792260931005135445649361164596566028491128455262247857268747061159462603273049260387319098427270223022793637175671192685836471857815155133520340200942557325702413567497929832606616892374772379092315644836993982219062239598351292774874049218848651486180067646836474766349043546852270441815032947346688059802599704514719086726975420909271463724793987242908001465960306126644166022286040507213318150829460988850709805662279815499892792431405323990348617380802149334102633155051103722338875148162043988162961449937118414730654397256358037320605374193767157215516252026287912434751769566274504051833871608859843704646720497692571862630681746111178965071273389413431264004219002284268846322192496026992853768096158931948902304258339012860852902135855253522872936927725731124839805870962208930684664626363416474317898670004740615668576378571075842749474296485796676254876979594106944926811657656925791063739128091743329342766008234744512264681724479134541128328974457551465078695658990528246653499093871511116967951536432826151198278986688971093101695910417845024882873523192384486242263629734975768439282263112020004713218720170178371097575668553713938247585338118980568055245617589253290124104460613862625297201449551884592486107615753201952379210693182246551772858642266047786938398442151913918849477120401248032226146171138594797565685911745747244418275564366755031861737105312840615915488212497193717302126743920082041117549854683639841356774608838167338674171004703304512237269963296753350355683742559327885052848439709953415176590329384028506921996426091089906842903712845293454949079349840370395015943656344631399512982458133353138964830395468537774238675823879959507312791666339121357622930082381374995088042414367706341186794579020222525197702359954488429230463287549234967220873007422618532623944158468650826153186560577857699729253351807440463828973043612131248741664955773205830319852649228400338212296198294000357218896092227607689217373213756128171401278947680860184617347613358304779955557011084658991846526471602906243268230972137919999502600200767792842812801021890465503686449406851637469474009796705228717466533465347668328529930583917529192568422946133303350299266147490355309970592944301756633438343223044154343703476466404927395026581091264882415178063849558473212925984863914337804053563760280606861278168889215248356454361916584590511206537019448479242546205587901558333354325586591018391532755634325304791374070246658885855173264155785108271162140919115020187616175817025131170079441408634863148319055296155411318677747603095539999860807938437497622730370371697491622920021830001353391812999182960402359294816224037573499647898156526226824692246618226600334656315544406919091944613359229476476175309840144569649498541787417212313607795570046231575740701647612827340963897976977401987616019415760152910910925312276183834786795185241937060797916559070575151805129542831018535917318636529202913084205780739267574115631345641060048148590659777277558923397304760176118610946668393831705136767659806086454653275384417193324821035003461438700642574999821742521821218920424698345969460171454108096717354784790289649005709369565850736027996266961684643111823719819499540175555079372487801969337650451347412370232785817170527287540676808677865733191918065414650702346930410760260438076498398418776243353883813581831396332297830451927354200012443477014391410202805835137615248683465400922414855558907372029219460949678309380472522542715397156446139320717562051057479473825563034044998409055189312252581517064469135994549410789766052839379950219126026120477205145883687727742039393492746617423169661272448881420286391420227812419353329742169450946795452067395697738280628009153419557209296208702178162359573153985804940599130964597843674616880332762471313321871636394671809366747344033575552621977254844202499963393174861668116858002416101935718158763913937159153107634250433840677491100623988859795461135553975583965305392425113385151972957150725671949315914454388674809412700929742577221170197678077755411531464441588881354640461003436754633954381365737941755202298370463378124045276311595878742915414204162066248912616238500777039286348472623334350644174622655488896432896084716921233108446333350533714717333033190172115307748181597531874032065206546663038340247240443641929585156620772019573193519488591629815330055105279952540010923346567985970645405142910657105043026284793759359388054120084681207165725958968277943629931119229046287498933815161612418075418388765972717000319388966533656527359657047298370555651002680279238516795033652066530917843546800532221181178456832436800443266590254628594599103854757965209123438950325105958302845145019453098923277198489280787845546749643627564616966261836486662036715578498138398682528761956385736085204193320257641086585308207834609373542674417458791798165097760674803423587943788166111998959566679446483821547715844522357513096308613259832304456646819209725029344903578658988884052055288786406593898270941098662152737161752449269126472228562674431790670660513250331457206783440463795142601733349592062646181273287377940013015357157366237612685283211039112016619481155877955040394086512236041949757935718979740811556373467207427424157737740444109123848555845196736483504888683099313898234421248549562023391981900603548985180440671358033140872413265815580856335529235650556243406221738635871005910916669020110600851921062061521729889870836133794588258419892972813593784638640814620973215748876458545452905648569347625409289910669192256024642545291001498200945147538869058507821574990164238325826612333030842360171331330197402643659281051697460061129741349954361141507789015523161636275821160734521938551112723008960033993710873634008474458582811692917284014715929271271973822535539639876459247383693261128037429940138758081761750693604738088259160765499660285494158397942913044178937413498128512994331756758244076734176951024244331173208054198122503155476482578701650865766702309785271213432609608282808472227355161279802179432486389890602925191544808852944924913238575321489641284456505833651534398394353706322369086818474891634082930268567197857966041601215228834098644950300613637984752788790195341774348444672748004363482761808233991610087405112235165967744517830819216702751251435494699668726687370827849191991682025903711477659826068464297168288715196482705657937945663048499534258282710020287457514253134878869888080123918252754748629359202579750028182197510099462917837851103466716091576507689424057643488232454106255171455768523557408154552326601776743209479015645205466875325651052514797632011122660267524833213955089931268326349301368519242840309426023879053232047876793848815781799120758839989511824201625492439937529250292683380891296512472328149902698230237888614435318987992150720017872694765932161051852405076863648912351751671937073774216243588562940623594770431200526606256976250968421781211488829880026616044059222329331624176122908743379022287804561701357723750619521603426862806290537864968871393385712562416964079324475831369885918272999275782949295751304825043666028532371402054964473380738245775558257092700759153582136224878739519806447536509228338732197378945098948812224316665010698739616672989920964420596817569619231839866191793408474257868154615941458938640602296132950038120038389767450208633855782667988106569036999081567827785163782934599361943366980652979221522153666288839940268038621838784138954997920072289371169507757061724002344872898683808889469325821863378234356912074028956871885668709606127386219349873263224096065960699176020054536038165896602143871771287553098370990207133084712303917975574483810050683280951189329272191231654940906640214568359874463216265575739792837308702860612939772368385814919939258415742549146335154820414128505256116414384738621579485025909591694016701922227152051592446384786736844034101976022548505859620374520210340195867216081712701926460704607959928713121074803511882506823353044969812655209567080884541941022535199131368352911597222819779651917510914125749066752719879928439903727410645886716981183509101205683498176773100954846991006642170375101296402795266807926201346490826570837312730887703498538168830180415910735087802789781444525165407708127488473796550331829893602610515170900920110222071001669479948606498841609925577821033292542220238243161693794552445077116612781957202899490592371787630713791620773280519004359506302783720524286071686319756831994495359654617582379331954922183557140638217262170118990624363016468349879943067324897484029900626756368663934498668702957463295592763582274173904767366468327098725400825658274079373013421250157872246935933602320278802133447547116925472442788234788572020478481096682495732594650693818393289944085629329548452346954732470720957681550003136286818305873597665524456292333709800392024465397081980880975167759000829452339338253873797516636684848199061917189230530293275282052288738997779857757464433066738428466834238197778223941515224363898742495170106566785302676664370854624061450751098238265082329219231169465936055216243701274300239492460008464419137134537390881710543297199625921785958368900227535469344199270563544994464648463569211473954542342093035095619125962942760332314028381564195812399216843570592611552186436729390811404988429954013503045826166856151191924704248067778748838713189871896738261924739749089221696564899815767170428901744966620596800868199091956648398712799600060660098336650850131726705066780738105362533240436156109801108476755494877494236585163719465279328497990577018451049091701533568613632443894879659034367590349560021664265581524443928278722717359459483078938720248473420322290052133606846053129294097497598893201349050155466399788069991700873715889175956776894727061811503019647289132576784816190919388459773052888173913796341910139122828818689576669158175066401906642575911857638875482934362992117191271054977385373015577838101884441860657830592410452724319669227643946881902302936603689392914352790067834549205228896117886051875408310491808917759260962571182883270864363467278181627472557148502535750935601944533705704297279316518324369707363874856092728216957075593521798282931763040398854389505725017946553411966438406118328171225805809313865366901632341550423553948803977100712507041056787741620258599084007176820989414486746229922762892025508580816217315083897553884053494279190567344876604830970791086659225293101759747853825571471946452962908784519565174095947894396337685688784133633407353907274376637220528022445916053457375406618371695805242171800321860228583753225978883501880423178875689402319751974374446133525974578974005546624424324975934404953762682364015057347269539801101002565825131195753891584938212512967996772536212764607639106722691844111059166671823174812066194772280535025793861898710732931143196219558359007573254549265440534485876237997048696398212906230465260237154569746398218504024061606472122473862853691454227582815893032578671920038152313070301231450016203835585597084636288728568661829588038151412597924271222800658072175375995609753028168132431908826758112139786458977991567077123341300614050720737874775422713347772318791387780604116028338928073229462986109438994804268776309041382820082493276437844569466685596913509728092965602968378424831906376648975894022974765233737070759029573229676410744477902854220571083318641606283483284039376713381480941530810038363462098674092314162577259260164241310768383853609677439389645388121987184708783576028465758500662643013183563775983439423256319567388921786474251153914648306105617618522661484986211735299300394196267978351154324719792100999023599501018504522633621366295417587904115529116300595092988709372051119953209519197611911117856568563145823742527336348744262178943734255594438827210995525834404807815336301231817250476112098586213911950381276857684222706022880857922802278992701354502689828981286708469480858690773687310488241352092533779928151782807224730432956057066223456189965692940799043010318005588385154956003710153628833932963083886118375725134429296237436256902862399081808966747840721541648215364669852511183560937695388382477926820540355622931033982346172177499287611431071126186981767165101021328174843226860492899962137442648917874708005217789914597936832576908254470499557365460738332954455037605455616938462993526955598254814369522745135159635012844381657623878219028344778419434849167543322089886572510721638012574559205006261383235333100174635632696788299795223122133592295598777147842562152819660095824803979607418806864814622218467350238464996209482900237216747151301761618348664856900958044527129241361077448550164540165882100946953185167094965320283685563439427552586762309399026264688025210023483988108103139591567221675210364031168276980204470846827510216007652912859618123289239199898376154654015288476402389564008009111707771686632584715188865213418100963097892468142777674442490984819462072099118606178378827256060277489202507756549609224153721848981913999493043561686936215964291771095256950970699006323100610856485554482317681694918920335382593839797795520178060026150453846602234805842806680800540972724248870988991814030172108374085197168446555068686682595762131761853474144377640981168974620203712113186150318053481637099280510057939395818396053815727990531735646204725646756465733752324960442866627542283341194771011586148225132905747233696454593507786302813970350269335586720254206532019113645684278522271130499308474015508320553450220711151829250378245841515954238572909205590931555270937157304365071391970662707208366050653592578075387996624278296260271908636785842034261794272927838720742270392586478996988852017285437329638914179856495498712313174210781117458478347148101130220066918811713906332237746391442787135013391013614654758235473132163877978594229259092873266039806170514510518935261384635649007582348632915202586551031103413814049101573516178860757643964618834101756544414874774396958712593182068392921811680883559712722653711952674639135472889090102527777429906681680053198706232475569631647941994318772899895890737174479138221069168303144302108832718736937223637159824851127773765854395220664987630276981234613453697621047397548443980664968551500182428724139629300207842390407701717530874006211038869812751613311076710422656095342065627964803091959171222256860508660697491958719528511720186301457223111255958058030059590451780162091560033927158135619396152450582940942383067522310487602756833193139537061594056900825467163407688518738062028393764941416952247897644827415924393890738587033683110647482959165636319407597879773893685682536565679811940555829468907562097486397051586280616049553801992987901072698852640686948961003323272842034061884542128979432188689707273827362778501372701149638708846640786079426555525554856648253672623885530195700899094418141196819278225214743673023757726479063021362700929435193537520244824650445028177473530313055878404289052956536166955757460304468400201302583472857878603479642966228563383909385040595996338205201313459775949549591528249136758265577370863098534310316569918647749352355876985616764025694367949650826595164936185639067761340863449496109230852815957594732446929978437875069577965234066270348934399220039331420221596404753079877248547192899031903311360675387409926265876145829524546296274478253060713708610093256561091062901593703234578465109425415658486336759717141036824690682136459502259382358689803420521458424156210977125941988605174184609810521802330913491593055323640211801353993827390760960188127085700221614994202352285301197851514825409266951856567653410404445485488177660629153334239355883040977080382629431894438507702390408475017104093236868309790449784932389215598500214358700771342871584700693024716766312285302839112029615848332287621873127025440275098869777524186719725803984567834528672337262681942591376892237327986963699571947508280574929908016092963856488757743668130599330030106516567168643311600381784331809476982492426608263925647221085630282122858435912911420360327206018252323794629310925410251245417005166491749697850176586800128632544573787252932671277451624334360127340397859302221599617751736148666793967656332219514934298376790374930825170161852849338344242504183230302641005578188318544289364087403203966008892343871002340926852388496732284456687365704234315669893811311708549805563342411090390294020698788366865009641636917052815658583564774755048831911648430645989966327033980010970627143154871743704811217006209186084162459632196275818916875947150823636892761717485163145845180705435637970723278957450538758447100756455874737245671626075875582631624163830175894812372734658328426433498421199067903327699506187886673063449032827837648590916868065398440393171382569665959236573482235687609504600206957367369539435373448928789454142994492422965419920687071717990820275112322883020637409332430828407680236599622307450723954829132510014623152283856699636464816199306108035011934098551287730815954501549790983261007000843516322091409713166839050930777067825793848915921320992865980751664776274042102287069580316910197690665849294116301449041755241528407985584192045942224722408579545248996614996312956745993178744978341350197476002485583093556978815369731363214452511408292841812804502491992959845617297886498365296717374065350275757846534187078421309805735758509870892321833860276680968786744587673937042506105294559344800003379484411869103438489819927217800456984088256180027740246971556963453537058177132496654317079548795257766421120685694340740736941652110453017077751449502966420150856734185613308793690799085988881954177426188031441417486935293012862868769796349716441242177380019690974862799608946093642530679104174593571283190402983113155059303861120619275400347429960129769845672856800757478682568526558880550446502824723406212267230987650952467955511675760755189736710818664873391355547303871771482599249820906556362463688874428163547597380200927033727972357562058520194887311757364152085688799839625539506720457656370866786849616739928990516639547348064688416321612696232140430043034978793765895525591261273349443137493187558515220350488771542061283232155425010369584201177706058113108574067217688447392412151890674297679952843460462085104229892955901538861717778596259659024537479964480573754259033955717369017939751600199875836990940353460200600611457081297272864924415558859750242749010199752785695834533449432500257802043444408682890750774396173670553837615787863853870009535733359025946681197512373898387266536879554300184150448072052764944570257994686803499492941686747104745236313650471152698278105520599626500224544073428713991949802538333850588539364994173363696431899803695321146317461717020388070866349064786340422458469135590424245140281425972094336803940426469576220351976052537466919686468405748522732221411263468200732680991283596804337124898651248471333865999581557036241284311923713805206985546305223962860016932609247618752321257009959416454501759791304831585226900924405531186581531978459314051354967975019715913056364079678742743886974318121596332024245369509081085401074867453223366948874174475845601897763958449021749345971047703154197947217559031048955150713033750922642894743661501146171128540489836287823217755403355815130890086002311190892831719794615273396398147557956104816547218228209282412622440866173161182953146270119621366199594108793583564320932964189356289507521834160949562866054760820233943903693829441070690737842159371100843550809934951258480556142602794888117357782314109215630977556334356892809062401470430406809674541428500105312911014407193181060055619529375994409816126454374436773978928455823616806573056868188932905552483777388697883384821269003385525577296329485036257241617945606880625056743983435840688586527984713205682033268015840118612253710729945929721983140398249546430136414120937944647846329673080412403157916714681071721546579759508437906546392689441643670202671733332142868727930006752568089594724605400773921436623774703669370647989280683436306662357354918836306740896905345419625492185959482963529914425068124219578493976249362699766843201171783094789764534282159211054419253956738906802587429523470246253627205862445299161425787499201547834925160434238534924384341030380727377077657014743734358079845112149890213877261130749312518484971289917459095003932190625680772393254545546917673500211427825159153713922475215102619575181255589919223775605562518625777871520402423564300801544064737868647177454853375685133039577305055429841027452084882456380181174324411508866694172029225138714052593329218903930234849521783732353344653262693777473250410920550827627013601076268805734928341061501432117912584109328122674911529496919441405798335403820079492052726207312385833278588756477905672110416544166147076128836100062438413053105014008101079875557731522504246358724208134651707819681326647305265266870097539010235484005431910303058505073284856662189230736101609798730109604578786272596971821497774593191217242085520383223097743733627260091079170854159065400695404757694645269352738958908946566093553216942712942611401893368175582123366092880936868361084129593136897668254634161807973379931143491994506197674140383673959104332508378960976546321634429684475047180877538796601159469105846985693463154671519673105401894347253273510123305556649244625308979855259889634444538294144883825709671236053389198293136490349913321228421966087365757136943286363383874965694154477107061380343673939543299455488946044328621170422810297576490108461303625809885204445652889253865618355437466905075794821106981116094362272781719468844223901364355582252243301409371154840113662138841082479809005429724928690877078639433835697580891344855483753767771965895936587515432750294934011636286284193306048171093923998791900884203487294343721494612397017034303370791698316245766050613624590549183588052452030731298424258801870960784918163583376321417765526484660862674494777513116337460985326156771682160131478190445605770892030801852154088126888224610854206843331279758480921954444388966711314446178931474129366512819879025932919456527368734483639889338998436121168068986579756748851654888633769003537529198775769308105735517395144379527270380044704900728573092526263167309907400068490459975878713209353348147998072978030685925274921540325080620629679368029096365711965545474983265755760946724722924089206137105621700979339927932066567094589212083904984604758648011445523278136028145344579543873365991854029550601001878962582320644671450963980891996756614659823701412873664688038594032665222408750886052884106719799914085448700729302201722026030478638071088617263141531392374899477819178104077545255536936054590363781619286394200226696480397586822634537581285355079620606463620227634100156253911994632578678836087025243725262830330102104489432622627532207366765291091628199888719161678669769861721068950090236405929175721859458476306892124704365027536328350650043346183189703050828391535850605251722344229331896294372577616315222687395005813591563799500907045720072609689883738753698242621863149512139883571673563880630056290325475145199661817267782078962727991656377480299102250947244094198014686901886252851004233665906643076501671002367873518980417508647603805560882711984788639116966057125758111614332203162398619539960810644891151299038321892449671151819857985027704469785184162807329531875221707375427807836745060608436887769304983023041436468913983700826939640606945628816416952916654437390847572819696146411957158066368813124848782960051923653816696914413164378212808037745822319142506653727318660158555763100054588191460863415120134066056861830539910928422209722277276664200709987582315907629439129515634967208380989724723042038732783508601474116048285204200743959607793967665745457415734381437629295610953115848209200019968349222746222332034922978797720932593734589318530363220021852332922660432632777386992952544003746065480447629498272404229146560052904598661490530533034118423277471347528763241774686005103519680259504893354161773876502389319108406652138046674665296435771960522892728790582333626717180104787074150978653274415552281550979015314325699141091329952502769916412184798903534173418028880785943704747003746871669807291369878105191348231743199718175697324716934112404219323832375815834075050325121024232721599976225595360817163965955459215200626349383277938717450987669553428787897746644363855170650265044857714758789516639052612618767173875404593877592449369724687022198468051519182603434146351533751735439834658403665007800825133761958111253960595894171880472178746360466850775595608766461497997590725725466930950181226605975633832045120846386446499477556747110488258186245181148216024173113511553376394180161986082932584828502972156412493543549370147221837149093135274651614042298840347258735848047100304971036786199690396640031890270141021874714397393047966712714696745248582196159044358857504747116108355827618601159886799252327767007791348806270678430582303768443224083728557775850821627326777552157538549313918894433113709718797654930990630437083812107972731604146887410442732940307277743637828844239775948723462917328964323648950423030339525477232852922518209786329412792277610699764839644615498030391036874763670074420720134868042097834465670780850085124892609127081572378968179538971471665316354179274132493745551049067708830538291046609861801335492736471578823175170229529255747672943807184323528278938787305850717216987840870936084891275829673184503523300910082450089460001683728969855347815677089860663702437991818712713748359424429636432094727572711041804433460130510702217782472919884095444291559247296793147664168646799094563770460369988700796128573467050871763579926726419077586482979580150961497179864393231187059023097451683435712523358744257165025130783843967812489541028789968672155583518182197672923726750882719132592890457053921699623157341359810162606343841974111595598712194855707915404099126084315344947293618259714666352094030430179436126307970778095387707949828645366676326353342206894534303062697485729601880846564902097499552566734013380282307886298068187052054125204011999043042891991240154630648960755234800192945487528805570650554523548791789559874402509130074164191809399729468221035701898118676721549044950284462599683767825168872707929533499355139851172380491169556661244188049351821195423145457932954973290115497632797004257252928851676055670695788818916668926496278266068428178885513568220105986486442689731040420642038862021415931334335650607977648372861174785410131819538820963263739781867501567020103516138276223554990781670817625800632651909072309731132612645394806127461576397469729038199157580630745875385173348334686076088964622701214040165795597908155136431792697143278116000395092953053015664053854401446819567416891439500506012989953252062425640256999735405633568511706263129378820965576305578326756161629221703945185899593927795463337352050168898464364888207314613992856015764619060882700521838829449052835018564065043364175350139349857051006350044232775532805166325015553600168558606321618016788228898592777398070823443012187649829882195076487937452732497757164679437682597865380777090931582686989321856754102218113706628915050719169240557175153729798546795477169440460872858340200716825587850350258068980279430946184672580186255717699914366692567766247888256367102390508929757982489522270941846744341466441191197624863088675226917379560846434163676355883085129548653711250744903732288271992572715199660002166693895605038279519066233710710296452611253548201808162340593161238338327872154509090544271980320064422532360012498934484363675937191423227785159626576845253075848553735830841651524777849983556099679145290553712899338041735803322331380434826019161910280534759866238541512038956061132700556496689281316755512979967633665355404709079398886689530685781017330266056885368956021180772162258921919924311730489252249712553122821175882252826509235822912252041383700828638795994087533142292025537883192590178881759789430772711316048915678508678373881223628875585526611865733674460226117363328802255620686149584672266053779357525558360934098916382963659980073078450013699458821205197427166295188936366178872451938798839149850746367011614623559091808914648782476983237759787096345593154570680055282070629464310763848171836412428448832224163453064177764928060031678970019137344145995290818130082735712024454178146061237267144018753822527453515155242450079079753687991871156710284530318732656311281918735814205042307746297225403696352335748306562048561086409342738331833463432735127159264239390049127973028883783463744236046441965815843840531910829032323939150063705253777010659429219076639318081087876557596907078407317323973235506344135855674600292812281944826263869185813672160413954633187907256169308154099694376002147684823666895958338644584339139734195773954458947379964993965019731801875821543881858049244015386570718876787890605894343970572439680676623307775021542477708237790441269041207606617175145832906568124019088806520592144597223687602261730245554637405620748081399377467009412522215327344884170636815244358256118696626136383402928664497006603799675017937631676391806943767843386214908962356182010564061401237788509883566708473114371688891394268479485387646650984117195433702892158483507258601976515246041543560676274641178103795805511058527509424472965571294588954450204682256720106209862067718216674868855967781333673048941388830396566121918933058714047784551328767280301432209927052902106177139212773759052612468035783233612231672451314301832827898769529904655069884850334348398335992274164810683359631797050404801716357581169611089887526505039455450818904578203339888055273361740589066076256788760234489965581821950713067982798437470147130567036780400279088826260968751798433062161683649757733948961813441882416886502289967808162797562569227498087402088768810359436929920395726561305068128838761441195918624002236445248003947999424405825317268246513520948959665872693663488401509928375984646475342403056155906510544916912421860787811768003899307609069048350672795121403003404594882920845356727163295012007112146837654494140706925962143328567874574683801853930454624313698559873264207073373620952682533002246595654211021883163555532210223258354198699266649135319296318782349014915870014774992191089465012801726186584241199577478446380888179235896723654961582275353549969841302939493205679621375776989665420961561839357548510610187366314026732506199565814384095884354592710427524744855320153629002887902736371511709761157510447444857500232585814856078898512835095561221244135323878162333181656119292576209991851687924286242308017058600765585346450992122213862919320062916671040534441325309940503148420160032899923191032840172480360326411739587737364393158054756344611667442195905341694665636800499746089176326163936997268005671191900811164600029600999062976664950801085080051586703858197181305523173246301735287693034978985330460761267069151980521041879216938619991131368284102584387483086310227556652408281412368889519506244729375224036690315921818643234026919293237688715177080767495238989921492457417629918580433486296060893631106258100141380630601231494362793068733268768771474454961182419660371730117322672115488941447158076434636447645759070334085887937938855117519467423534045394122524064570712144659046656734809242615388417502636499676403979640395064536033058467106591608694936427670638418752507639689615603173119292686338323867446335181133083074391303543372279071410307952822716588411034443485788218090802820829554428122003801952660218635952461056660631495761270251582303335224947078904661050788518613260070870531252100924188140333110980343254472187535643394322040465954026928504488556461425105265479584721663057299456357882715607728021482175044787001124779365707056730989211387219305929058086497839863194346632579224283402027520796201076674604694071705609535133339937607492713011765060222240784478082149383963988120054778938005665780359904311487101637277035214494728448065980210246296286374329333750053421098402485860977159460346265070892757684803201836190549885228928095376821315150435582517203728601695960958764251395013822098404961222624228173404340280893997262257739330366102986819922133775791637356034537807550181325596156935501032832994238499747515243381001151950121317805013879646562849154332489194337183269470192681676759606159187889763652603208651265852264245241199590189818788450828769443767663184922384879924137400767229406807310528039535402366035209984205504305921203882755655930480839116597306245017725252787907988546850842585551738383833851994344288915912253644118669644171242400135887960721910613494230833029789663443088271107467000523629974326102318027142266222618750572543969077381474263522155244832400804375696699071029472640517803015161891026800926358769818418013034526647105519950731606432675504048745317728164797498493168163518881132546149964031831401208499997545056544056651148358387174381071044446819957363462868930027137176430696041478322732756789030508095769143478308670354016162028184911441232008439992821318184843322881342551248886686544852708423042840098831385549010037940264844762363637536465110550081029406609915248147926317308774406420709539199916755639316762475890832242707294829544328151229529031647506098107151709493216616813022200848999073351928484090014332369886937917599779238728056448586363560471696443660204452597048682215144197815912322747578772163986575276098408998893737775089374040658456115404534488982635679449628642247071613265874995955834400802449400525647531127582945824555238339938861602167095409039509622984369753605794438167782815663517171901560867850102297106693787721490988919368454386725973007974938110342945358118921302910485720499673562211673336635007643262740588295448615756961432047896330591725250029655954680487653626281549757676580277875590236787348162504245315702741835390649972371430862395364283337985258809365635808787587211416735820002378585791714654161211202603427255738422155180158746305776779395293678912532977700508226250081937416451141684737365725226777890874579968237345277327360629946429241699671550862292806080316787715019020416166302049350758837769066186746162964701677056344183089676266188744032970517788145243401251222679410412177617218288850815972164208384793333982956699403495937907282033978008796049701378070294014570618322752960348530283719222610059395644991241509277875461366823146128946998167258824711898544761466413597472404001167264640338329990401502635271218579913818751838215422530479921538890284616537929472363796333479312708466427227370435410768537912131903433119245063452076733343809168129039267109298757177148028222733070858590225913929052589740024375710216995532657613335185187663860276199700398052393052742893370901691023675207451770169640472375386382876543190430290357981930446828632045430189142160750516996685123364451883139431581404652068503559767528406209686484001463298802638325495627213258275734485355830002225513318596228864977249448196664152819040702879710950567775583836470750892928012992146550898465270072696571688974013243287957198217231190281099092249421069115194270447735875202660217787299739380432917832163467212887284336979031693485924557721759863321692291013129964934565694568312672848095842925093551561535868203373672201361285171957991790678887948977874155795078582804005198795143793102409735137542445229106658730078654625141882080807307192689839135049253775437442026570165148549039037849153357835239195091842294100795817946261304621688184412174680622072287104625149387649178333892585359415439913580058590242985408557250448942910311306684106105252152943640589428225619515090298853496701185208964643320418793215333668475009093794745862440500944197952593058084705730441714228077856570371279475809345629087704798834697169323551696059155129039465464919469769565801044772122115297178854242063014493599903647048816869639454598739566495684468008279740648593976288861542063449595204778764796022224814045187112205762128289512096424262439769107779187598915091696748849690140417814624882189920472153978970100410044519163746354849377767240489630561760857490190664199208564988244166592591364114979721105709200483463562191125920531594952077285728535022771786911343170950747417740461125977105440663928887571839332360002445026038759995174213594979764940400041440939868093193286423323138073107260523470222699550297533641333336376838307699122239114777055859977842874256964525973045897989161844009118754738104698043805595170062963032943375011243769165920722953015125432139405443377891627819140621551682088473634534197999887951611726102841063233698534566227140898250206912867044411690258204796576506806083389354490862114387382565994643497880323272175829269451699863126735875109548455878463140759717201962433708521996779288308204170836282188671042940242600584400437735875331070418881422192092460714913350296369058466448832031947410173461128786735179422094145466041853403015518155623214316574733266610798980310906817008268873210193645956178585173450547285898007872872115417256740244197902884322531541019214013509123867111032321373145940511561470672128959326381967580376907231303216158247304070138858933463663359767715470701977324954881451714956158891597270403164434951218597470414671715097311329473848085021070730048952123748421540389981859513224901441857291935709437524159215545692963115014493847033948930762435538342354395078579177058758873286872636137723131795763188119174939973645829559955961684714478441518985430774145594300916272777064006784526222188606338106724847269024402642674133907219353005842440622594642539483685654784505343490529674305897486495643892935250696872825573073886534797956973796373941631251221135723661242014026468319875234913753259196515806193872666193916051049359265271321692209622463969924533949416814876975945022756931601737297825225932113922797264469907870797211292701007289316414132897554051129860713004542449721998255923017335593991966625886284890280161029774147281472179960743046863683943583762096637059217800358151699129476731548326243472252980038009595875555451363524852923366036661334521578492026850615194920345290214617851420324233104228486352089687974218454003873494172832011762737822647963978467771365873511193020707222560037507494078103946338951998454416631432297316080844049828135430303833631635314540529914831642560125106820856569001603029729165846789183221058699489100407801076924778257280672186586644935759237706601999726065952554332733642503894798336601431993073084809345161508804807646366675290866716936206249287398148879904365333871639691167273697027312653742840860973486972932552788541993019041684282321395857966024873754065439260849531863413469468678923583360680339445576185648701132596427755820263192568099715894489345407354516693238449214991185549338282445770766882305254697961282244041599668923715929509392373211954789450740806774448900380624434575224611555723894226838593051527754976545431808349023872919846748693162608871792151248292476158935141491415890423510507353496796948749186334430479362520365105567215698882395203498052301531223852125132616644947370461248186099014395654637271017556216112211047224792650608818792187856456477020191870817409827426388517851782319529341904819315715640400178260080474641545364258579688221314712021950687073703931215333223942964710143388176399181150742155542260482199024500820520315515880310767656881219857503845120447360279692388489439850407766939191917803851311790463726457872800566499501595762530276734247490355778730320694669762067937109531408787466090719090054787150227573861562284031199979360148174018140726855934642470818651372676127973427764124089407024122505759128332044876750838248233549006224319625729282648056600967750928532573038883418242504410194438374908292890770441518151343279012631862709344102805833319718393808451124787757790528799614248096853758097666763701569484348743174757489914638891633504338362739885110295590997268995590471511291794555912698359429306738574304869898985594432619896425343492171171761949868813811537360119252837634812218777109439259322057370956269816464526459305254130817680476849179967094590975627099457464166873129985177713155886207655433151026302360849223532018400246442694982220093885619814174235294211012044888786517620477231007235577371175696454026773786987829323848846586854824307251322459971819517637820651677017349639072911973231521104508388963690034363456497713884180568029841405323097836878788733235745843716778596231931182129965442642274603311656218995807385709140748170907770720601258255372559881825540001709679090974133855179150503462413627962943375279803921216124494228573480554092996174221867552670663871540197164959258041982845727233943587273849129806250522990823041441796420186323933597564085626472114098710275684232847105442047692737227958693432551623728706130624894831768300595031627353927222155596037191260927056320900168844642239974599076283603861451560114679086719522744225341537356304363680765820929448168157562440758354209445041481836940072478719937160807471437048052724122720576200148265567384258527615204225756167756634489083551590403475597055278114985130250874121655616058542729230289933165473549907915612178664717813433928249941590501409236320169840868059967723646311800323091723144906596018394433573246799472136366714309332268725922769959786634219848604764038331215159824633481575389136213747050626776094939156543444966503071575601905256149343412398650086334976877258201426160358764218865753091740518241749178412153032223830041880663938545588917876200687881404876692760597626388508418767172390688215137534469074205279687593862965749865441776294251870300911496135284438920514500715511087309466495949907089979305234012957349386688178592724423081521590660649960755027237608127238705851213727455288861773544544959385158956877519518026877985648252026624094448618828672705420747504353679984584680211816124511917916408388220977886418275681058507677565728648482836037024932871581980604355587998037575747633172000054495984987251668856570630335287606809308159018141059372137856078810315129253175041105096097516542537103085517485489928079279216508267024775246374998378504723411487224038878779685621658918415735659396870303193507502981382895299683035730430607120754662998058479510773229041914306816287029509007188141342145828415611632764589797794318524467033357220151830080677300984342814598555943657389719903262861007167469115090265946427923755624937423512174450803121349987410210504026254115763114123064033738402302484473936132777143177832648722787200003132437991158454107320083254717655335778841973881119878308116128253343500137910973264580456753562692848345510253175697613783144368252477854306937063143255096407622494270969727621061679816307458647731362102916913190193505391736338772095930772880211384952253085233564200914758211321508141634559373276638164620996415041814279261478485611225096974418073994012186495761708774298539083941990118885877336373113130171013577790334756204439526260767797656853850415178002862202601739831535789490454442716570559649205222318835447428311193469603711941218609396474369683521630084113092122137612361931555091187753464456042937379215166896202425471680377818274638590796820735640934299433427179208028875221125433179011414911600479638960331877220471455192593058948693350499223357652070639336657861080859200577595735770605634693457603884910805066955160938106943662128758827331613228648314314717672115704619235614650037740538721762741113660178235855845173100298207789993646817768759805771969044293265641492888950616174327395453482331666399791748498402747835405359120022260943990531207076601966727432146673132505991961537491912061092648781953777906142535189223466139609531960625261784257158699243782660916171746497163472047738961314867194294824902919894191675830888923397311741555417268094753310273779799709817565045054736022767862106975404505926143883778151617925379010606402291673802696257343430464530042110425276623030552072475739306792726393713188722880126958554904248663228307022774015552803422055731726091592927513287204433777236381546602242627227955242640479069128534664743956703901536664482511862340278040253780886661135356644106913769723882365405370572032648513307118001886217776805979532180654367532102225042800043994061851812889536140733723950663115170700057138631530213293685538018489869696302851089301202179506470724877503209994836756871724700290558145698405144674694507188717376368028734735561968531753075661201569305703443098761497230689528664441564074834588089865256616643797202895868442203921819431715127564111776147563714059368640001035880263891259692381706227637167628748062838160227594105114626922888091294330277664959472497384473093376327460037108435907859976671800558687028730183229667292566511959261005941581003650892906260399978910764693101952271744645199443616999155564156412151087143820808868075229785081480228623413531843920566639711524608904813184451923149291063281540279224893782282515457682716245961176395668864617423953715865744626643996155478905163732521825783332535644589892905951926058659798671344827447826266678984191962736059352022149668157043655690416708257527445881757281160956148185722436954647505083028443075317077923557132934876117839081302910599183552262237468671157570593774909379757938195247331632266235982695699804734334402616879654751304293461624266134607473252695703114881469691642933690719481545481790829291072069429731875971973101542619933564615328361822870151559033107061465304217006688253379701323449506071416835268609881312272205409030946646066185857999914153978144847741564082258903540644906463510615433719400401386160350714559736014278623451486573479621797846757021898995133336443819291905300857739950452349349571896846127113768895759793323495332089538145398467702851241091399996240942861535615495201564188996212593005126442096865972528994184350366818804807529105972336008365482357019198685509260350048765737882951629237418327132367686584946400059670950677834536100367442594918858195595926902512393110725951212115633824158960673748007183246877841307809693824148291518956042755017542065174420881340145436070713556026763499597575960041036160961213773621820223563980101455924936015689714897933365854991863497304103495007905509710373294892197640588699532018966493350820431004885230594298486801785556564538971529638687139823938927886283130538898704416338748532366550562543023828613176831474399344615609310765384947584648931621515835889893391956732944334790390909645002015254529742236093348737748570906018648070516991257559332518203044120573389116924949793744441817210180048695274815824860757712217241382985252976703526885042133034637032059011127692708423122473740399034467618957001025917858966147045611886905543180001357411454538480916238456019398214576980154036744730933242141647275552190877396917417373506414595184607851240181377454588376298517906609425179969503658723513291154069411855800405756107804357919105154389529301786070568857811721742139155095320721197089841522154253164791930461604981176009994043413190991189215513651226115501813110735194067489641860940284869283055022119924343866309661229983761658981274730669004071331315325819303202814967455702892711980502308342949072461054910957995507893660263469846566281880554901043878989574409314152964143377690260506436409832682176336287098826272397430230055063851675289226483750950886137219833353460698489068556859024446788863364396043781823649316075069795253661777044807862852104682093268266828972207159109800819778019264952538304724636079589391737003693289663580220506598028533870299680922286754271291338699940266335773608637540472021149927333995596386713941415995063555038162271317992876143298924595866321022805072720176632829028139513624639259879408411977424214784974887928534813292261758042969536056849641633358836124647760471766303398537726717373232324351929797334237646067007259056978477822590102247186184955108700414015527634922430585064979174699941224701667003101044327626530993015284206842468595235910530969681058431185510376080853681033317095349081348831311722359377438741462183926501715609032794028189935612694496396714332078290473191666678085182551977172880062773545399159278903401078628896366115708075792637125157532125643458797675822798605621785390463443878260224769831644730911677313769865439441397481344800381829810375495058853983542914632275329122606239178293199621398691881771111842441962771878992305735044724577538311943385179322128576603521216877901140477658976778435696351365329151493096380391047545011699675878027999795538955855005904553329793563702640770333481120559679109660880465445819911756967335381794020297742084467140554762538001665796195719912620080781668202885915862485723615599401625547770791411160067640782608077107894734372899115676130685073224963159123163419758846276472881920236762716375194766953325420490891610249164837334965917270800147115271012908902961211040472462065622820963283626670888972846484919450548524147558133923773626921276628090107039603299462627250947141176912142913353975130151431774671685840290596862221708011103666071463020620642207396736740275444511153186803573711970612632143552346855544382456532551949622309244222627616181076353271218486711038748633241670789046885223329211115019790098723766740155479167534474858911628126868673604222994356076826978331735176394113756818731185310939147331613471464295748025886612098433336264478923277992171893811049025750898332957523113851163841181019244991329300877847253627365880167927323911956677377346029231167147252754387732395409644074174493088103356901689944732650629356812407468591689254650921109142316433966434965355399905226030471148711750195108603621437887928407449825270332425169177953432393380537534154286334492005727579681918742184272188588466626602813391591226508703295562974312100608476462382406120209740885851097134502445345626967484521749379519983660135959959804421055339305799463541215659260373954548130709002681616473580753090700579469859512185766928204335931333658021043935801610790827942664487820352801574984777718753666388687146928492233597970201859216375263706470723923280711774975523653624170626315463270059026630402473980453353020409393130497397130791718151488632385160351409187151727259632060397751818987737942983354896214929883065168797261732334295186029197912354209146617618580812065785097554051812624547853587142349872282450762802185554164393735572873413177079533182641069580231812678272926217247904786733132302602879014764854335809993244372349188499585994862583067600012204733634466868003021774428308956732120657310909298521268530829353520331626096123871927047491031694115164838847479745677123433557442981268446143275337106037702381158730688628896939413236300606050428996520045106037486769613649172511721417104539723698376574825092862531991761037960505070047452751987069243830797208133651074580862533987045295036577394794375194325536600142105564641482243606164677079171658511765610859235634609485497644779621165511318700969902914073151483903908991815918578332650277953957841825197056152467518107456330457082959442889150666715929760412803354745155100439949339911357400368108214520100371663337695212133753239590644515065233379074750428578159695275696181784704238178420315992417112157281753138255289908317222708031933401849974624661506864137178679359480593272851964335736880274143158690076520872345466373639831869120209656207541348874115504351794570520219208662862157046501295951312793744072467620419226655674453334447296817148735449387338480166542826423783384831756543833361744087321879219971430971939075615289979919334816845664869894315760143802862633533136185723793167236606367549438005252967139974035099407121933737585712045559496028444564046130603362226362162934122457615116541938791684813280962469524445695462125087911893539832219637899949870575517487718861051045258709120015502718111214008330339459997728658704523419166730406855700471728611726335884968271071745003538903363106665809112216112279535205973563154238786279221174002792992766027230910087889644867197751064485285423676068067832870271602149122089073835986791677907984654684765443288633275459268997647136118219193637197094309189760958933074195091535789981594562681740310911862136112387032663287459251238017221859237596420397178011973301354548630311562876453973330103535199368908917165821184472025394047093178330601239641672709312163693791933239184259773052761479229302123013163652956137623330528454637744966783855724163055532861053275520784389404424723308700149400756485394938970856366624723511554968426370742241985340721884331711808624785109999817623225805812020490727023675155996038558466728397347325959612710449694899692807040872355613550188348609827334494211927951159638914217013371362540595915840065763710336218594354090721495079719264247416878866135096201313031939816564431842319103674142051255686332809855207709323995574220458372892438309481108423300876415366308472416897637519419399848086392769531790164372780297768880616249084193376410364509612604065127369473343213647516686745418754235332490452514001261991025504942206089908653489121851977852080353829793516473616363948528497562849714885627036425437615253034856791421813834154676563036293594327156888851139645341755011355523422660951773817818038938644309083053992738653198839237082514434976695795125406640558213249534760824464237959520467403716910402286506016440118821281688727839234273692926062064096409195961459043145172341616179151070617767174151129700974362635716917980979131076075544400727482316585363917076912591900555112850732808167705134749074145011950248108427677735773081036084500375556502686582708949066409611462996904292269838084349681389149247988622487167128124089262797006509374129142801201881922065421593897363381932259127071303848942162931911004907149225362821862035617644685446995943076419072713387818263384790269051413488524088341597040931667176458485165390460010963472932317024526860807864918007702454260533859200916633150792778732483259016044217156687494057915189677115913189275017804451824993743874329932914355437468094683402608346425268170735136026784411711754768030257828432741271295550926710857402304746960026445711893018058112189257572500241791066473020112946937549533383927107678381585580887567061329996499158939499040874977823550392105136301646716340862269365394034567695186527752685603128680881568916991604601367935600028878486501738703611861366168233700637624901718703548391653008880657523737679906815547888893864623380433678814473862636975144463533151364503365250987795413093994146760112222850127827345575515956198448726728886216911391278644418265010715934333181605528809809313757602195448423668918140487612969835740368011755189133005722699475919228724396947107244977040473296751338485372898919851448791269339956272762863015717827057355238450193665288694250301571288649098993055897745148064974007108137602067660610028335398320724359456720594945121684402530561416115047237679687125269315631930981608232979504258981667480087815264867736414493569584287953879511112090041388243506999888209156555403289250228805141696787929926626862224670525490667495362501326970031824510114073519298152709116828763161525453362313242268045222889614970917397113535255440123608618815454147085320467229946939071488188603326828261722826964785169840975561328091090492994205890209975868027011829714381130616650165606940509417447084136593172946036832314886783783401584666526277938110347185652734290112646968995135220438138835925408450875742934048304805257026367468199997111392499430823809481473192576011528538247357208314910527160816992228141867532991179552447748792024698247835770179058176843376667776890217764906219369958965467659969428721801097813692136744622097478300409271819051376356123254861272145222616805180293256818310931413966592453103442368843397067352872663830004541951464423032623019071897598561247023586500542075982524898199075031653803249502601693723058314817314752430435942498914879189062802634091227267353344853777985327688970476167261585288351406035252708851992921713307057857638749393745559400967615375217782801162690377265289896203441261598810632168253206443816406129171172120095567473839167222962355574612439015599054488322626441625687126870485003449211415757614315487883822624493825719072052822435654030668643394952786639197826196621288902931708091506933547609363069503877964838065009708771258420744211499716985561589989747876513750578536272453652178066289777507327157034985477471678902956663958351111997725430882108300838719703001636037548232031811034519634199719570801626375425606969661834362972690706622306143131863618116113316841849516129647994635408155166288645312201056179623810144384620141325246851026413793411662166660443555433967260839002933424985605923047725430160485968987816153242523488947992749956804057508785961584656399688277050582480803752624440992284265581071965313962147422223415350770031361866522902424242733975223220119730089596891049854054474276975638059626226908788476436765519375681951996304422809024719659779814112299761130996689484065470304306161542840528984605556105277431670945479765425699944325615151270411776840247262990518468739384403174909227786713746504877565400352618233613582209691595165310030299470261213798326995515479430045282504041161789922994791117641217399269377416582020283502426115579535771019286950264605435924118006680782334174983342235251194039578690357868099795735556646348184109235356638053216250587339612730165179209152696307741603539343614876508656958944166875931028197227084213006069890327681248136434088291450693535007842690028338969289003676630651962125691137082514952641307300205723426006143479478418466207633742474019652349063930296622337730820640228704088095403944892602375593027578381867271119555903626438180369441026989560997022402685189290570563411576345663453530917836449127065514652145274516095709269601981935148250423083093324020856938232573732465561978380507982367839148964413212119032538371930512612143512054346721380249172084457240675607838911836144206172196093241887871539065311934562423143050595975813896800145932726803699031531485898178421841408627035413234057140637242334416230520114600537243354544085804784915273835605370083298419441940878577289428942989055641118489012798817424271309417325022464998977618499584448243196333877136064170050575881120626018903546125859345154561817568409731473384201495189375815899601208752575627603329500301183188095642910867929936491408742632266721386849152241299032914629320268237349095662579032064280453385167557256633596432829836906797154489491441442844573661312147165257729283228387225191227818503331845753752311813889104687301120253329343303322817674447909206656325018838874991783124527795687803251857087877108213218175422991370299903463408243198220018181430169501586756477231845517351601935397411806816255498633469297427936383683122862090150084763296027154205540923472197748755577372771253584379299733675504135390096260754601770478320092090000437030477206239693112361996923069451921228075128062610903396080855119939362576645605845474892984566105164377632302047629334883313664553345734804735715674449977347178219815739262943566148533256352573800753734245856962732264432925391218548350084718726153761193599211755449468751722095340217149673323008543031277343008442170392235658052374699781195238474449333837385774851142746225220393467572123278506610526913279773063462887372622241958467166720221516808291000526702236415126522740776004619794966850442414929033037526153247556530093153145577415607854888437204157140600876512807613311400021517609289824898629450626479863972781208733447929847854531512329334051406847255746928486263150354770925719144201422185887802572791283311779822123368077931168758654777139994623954398600178217140445115877933764582521759199108819238300516633102828372361341272140722462379539129338836418793155329932894879874861538613915230746891741006626186077722679134871363221475165685084419917806948619546019340893708192321419263827753375919457032645023630434756871734529583995536709739473113745139433281977911222269397254591249383798231266070963822259670190083814532862904610606586856320978015085422334848110590617385229862052817896049500732570427222020393613638247958310354325985507262140340985962778601721689559875030328828176804094685209388640336365236494428576533381097953342025875230660994737779174834099640562083733043167671087592982666684354670095997048589537484151152214502249945441528386578029285301765856291013881441726693837902070500341910121386791346354652287481407153382029019192351467212683827510001739480517922357591031062941178267158381863781954648843122973630207590729496131322642355108491026499847418870181274039872030679358312315482878780386867207634549849519911344509912442473105052272527668320660348538056734851263693194665299251629026264658941634139609150972187236402755002697010883868324941421257120488696456582963616098653685988378839028020706070296399620892916924201175646292127178414438660944484153071327538274180512475604700845614196078604954485925581307161527176818710961041702864624451063869927990313298023938322923078600246111212562537492992069623605549739779337090550915061599580746264769307061465473365729538801084659307737092643932709617335897987551332985173533580576198203756071739649512102605682421535394322065787806543336816683791839254310296299786255831381508429023460414642850633182078026674085750429654935395449486518527564708814351323195973497899171415169373256883389331628338964518488703226398930556894518391912430829325156540236753850043094552275229862193634999307995606896844661874598947488234136640851885321936731143758946356570214222303717414812012726282910573318578392273347952606800413122404444690695700343265791095617342284655138302877708170928004370327526445576200902948987017264718228932761788234679959538966801140286687052633670600630426129946084949956382755990602647776521970253758306411814612875438760985782899634221059502253415043982609618760983521652316543316977214412517700380390215981379748913202929277554387117033911632248075246572497296231247650935179435674838114315286413330290891237771466124690448645511649267993463415562118822817564230240516948954442816831414049043805788605901073700671829849936504074947027855738627203271084260273269569006412015558094691371012984255290544957645064575600374031494587908210547355911363990672780648145919170643387069714773665247784433863025569838810258987930950197131284070891871969674939400265719405722159295868834578669810318183594938102719311615251530174090403194517238322459633052678626421000745736336797264614352971498884605529190782295721345692646383479217594057805130367348879544947334464560679667691278267990494200362880699002603522166525266488097224672121294616782282247427178341053585849093818084382076967122622155649252446410116006638391181830873085635422672150172188913491114434074231672018580154409683941721845529247030666331743969920320999137230793920870633268149502702418363237393557565948355864342758527153036475346746011816231218086111379932483545148228986306253693327937473726404693126737565340199730090761426212286501158568944820803714283612048583161747503907712876046503361236135224312142049114096204585829225543574900902717114310056202779664273282036840883514218997367661285154174170155055966929543355338498868702324902061064458071692286334339185539443465974183103315453291025913036064622666879779455734904546748823275317375995937232273103710445211331153382893042477397241957274401165418484315564894048921358055708557627558495534889191385643791638342408939602209788019587504761416457873384344319808735157516674968200379153796102973494432109476073270046363343661259071179260382965776504898339968200528464234206854494699303871249646642485811604420004666933985741685551729836982926358491044717933844683250433844717587252699366862337570798586379951176474378774221029593262173881717992112564960766549050364753011284605971998642239727843391967774038958231917557325994193790085492825980660767894985484333355330520442978146864226215463907056678047938913177651922049935761663882196322357224138758048818728755477834305533714162429159181440724910183373607258613130585839379636913731605046386537876161997656835278960391654122119712316370646384350875058804657553196720080481063208311821537956138009835355952609363700064531708064420288837726690826800942475061577365306953699946473444264179908807236585691623899636517578076237318613662803000677595254569830359350209310340106654882387605906309667152580319027018056510774179659964177889506640602788471706807792755570351022237147306795006509607538053426398202615407127213785603227432886168024173389459790505032137974846614903095301740230095495752617958896983609703142914084804583842017705933308727898829210653986085497841770226800199431723125607279669350937846167380814534710813293763452196474416319331178690649982482372761620561502444394472323379106960839688560326743659447613243668623910583435263725870265527272354681097361367537998854340224782973219586473847079849851417285386752779230658409174320605010991022389298189386457216041689492340208559404805979888719907538994483624575918179587264785482436871784280511816570103599948961675645814411774359994155741564054198094077706078181787327808839235166527298117294704518248948869402539784970404012578501708525229480032644855398293395410250493410544461435613045371236961682202427087546803225777224676453869069173584632909965978927085724136068529472284189988811197694925777567347314920454188249935386075448538327349316024944583018400520110059712112248818992601409033905843014105055980718844415476335609338929558270335638391892072441156624136346793755416738908930918686080312637892309129166075500989808404308771738687684930623853335091504106000383060163948853687921061238941057439403460624016371854842521771675451639760025505022643961152599429430869349869074629783759970161295030843803660660058922658529305637886695846678487572600253291839307185472610120143531812300826282453907565263848166284306712414091535323017373577722317054545331857330398636116290928079651400076258029586832521130356252134998540067832905798100262663767805172062475401635370252168218735528720401996359618873606934730672840960812886498922816545218524083282791281849386363527220300859827544599898999583511157436878788812704855717381485740307803629420485942064433415790169383959681533585277508781574397192432277988317060546340053309696115995437320394129955177197409249372819386910424719168074575580541317281683365537965275951040258293766006937948476305024368669308749861291151557902990891475114714361655097781089168915938904322861163098089616015436542397071317339876255613839334927890605747145381691569264882015102621472183250340916562454293531173283968374175550697887724604398556261085337374028770997288047611491577857651047529089113817806546922207217132541594679780555957405449532558779284323247504820257296107211930542720344543111901843265159983295119242549956886629245120615544354851877843376022845731855255302038578067996423334739432832550797681431749352903653552357083362272954029760362245967870224679610872900653691581103297724112719687184631712015310872022829121678513683286828899841006308305969973295124018343792808075866877889849604377275402758952292936685392267513992823716159644737329827017509083756802744666915911114977994466711356910889243791993094247213080730819842625931443479657908567008256288588361144633070690191063606859951853870417106238568043241122994069976976521718948993497188045038643217598286433134023273173503448755279378348641310419949659552577066904567184355021562018967279397342682162568608592248811316664734142989101387571275704830514594366360992466106272011244098723999710420756543915068631020135759846014673026511990342986506396760006966879582828924339782590587485678262692633034683723321240661577602951565372261068229038366133683415049998959342809320186542470360735907656081621959975934382017246180769581783472212715039912393733080598164349462313671749599994630421176381814783019102133447356926562588057101644687984556617203758742814909984339304652393122000356442486502802002210387238150855436080610859538174278532465497923110151018126674138466294626740034072909243067756491785793427751652950984600098628219865193501486314131133823408186418101959888722959358560343722423672396015146278965654853353317400741984242601360667355298407544025731777149540219275487625663663209795134838923239847309342827299390954922628685258280376257104081404140709215337798247121933464825207183878537445007238525936056765957622040219451924792912413075854648591812784555951253394853773274395465325201686225053728500130453724000464744479074597825102944479047597268994937537469280893311554355051420516123636834410073498429947070865348728261682611949954445988885035960791436711196391393209112009541335128855089924933928537947665616415925452758853479068034859304210143177857711724511374184624321553372240565412149423223467341003286409237227571473170380930584666114105286653492921570438437193875825489184989446589748921123980435592536491908658906691739080886750091323305426654820771573640252081624830165898730360865980837961576736411773627346697615666539213482934564239912928078599798788152042922151909141690785497361872516930999913227000674997233515576579514366474702374876614964404926134860829976097836260492782317388949792246852097759950804988269723924957659872230646951187677991605495672699690851525822652952273858854393021734274755743918744113766339941285948312343848488127945760136710066761659743958963255453067081684294512114091221200910866698998915001020556924848523722554213107166139198282765742981882917518337208417523869676828059102315199253128014453772216474368259508608886364434672080407995745610429010196560880839309828716061604912163604586908622289737564557413574307159108936724233166447733282968241883149217164949725140119493690567095296152704329196175641010185140596083954221011253004320324477290450956867286869283797899445334732540783200542835488045130887413631936955816828746079046566945900407442884187381232567699671646926799869558860520806372983832112386246812028817043481558140629498830626345933449988840386526057374223073857866400023774153128859094551257535393369408694442939407522182847100107766580951275670201477540829825943655390077790618030037104030191092185293284782411655189092287029012404160045214931709357753608163420856552332014438453889583422068417138823995322706356387242611330217236088753196924820117906522275084815465360634684320835251951083321606843173343658468059130157408787018229598765822830020425283556693204501981988171458261171598400011723232484622368023378498390571958420833941883302500041002600378834221148367305474960967792429704499983799479044054349710896265896766913002849909603860630462400933379790920357551625516664005711218771723903001503960954051845816999386430449804010399161286593474495582760668348248909337338629266989646970531741560892296662428914381927372356726030305011034159701503907594115991561792511656228924417675577202639271089785260599471315335700459048301245358602245707716058212332185295875822030519372890200177343206194287342147523788608300702997965315568103011287992589391833877964700675202703688772405840664369190902874387633882097145801017495101346458402812780113168139897806509007407674642209638998045332620765149608259774522758423904134502684618616814579533717594622683030636661453659920280300843252851498178817712725738675355028513383679230567432436869620272756904956947214224246798843604119226316915567882764842223911962740367145989741445431800616886293376356239752548161092018062894420650865088651743884451744029361570891066530518191344083524173853908952947331269090022881476173592405472755741008722118602480706552734785464670810033252880494872818846476645138719484647002739836639678691108722490689445254499301361359823021009664966265824979074179330260447961646789612176304735470941059054767787436276981114648195946765395331326021604518805685201238185383599352509055867304816958939312668888710724516375807869185298046443759849390149864088672912156151469350544680039277537716280028444617088728346133201602784693514171037189813592856544404738893533643422529953563067148643575822661507084722421213957490588123647260807956653918210780697591919627299613768250527190168013501825936503904314892374222182997294359105047665101984354967715836390356050902744094547376200086625518953798973986955249442094528368937291622558644588185723220050973402112420242701338138097506387073687862241346162660761418658903675756728049468513929492469474976704482862785037993942832787912203329713975438436447227794195248300533133083265941268165481431836724185190716453711839456188537671861146345100987635561039688240346932274316386856389366920782628786664631623058656232080344670332241489658442908620119179775183607898117847087626296153194003478154640506345659858453959336783920471778161961151978159915334832397561116212221045289683087138354599880658578013548593749042639560201729578681154940798878998952785944953129124758248171371088590969140706193303618003033238919132168402423711785594147938175122615373552928204846201190878355782410767958987282648380188363060516258745813238071702127070311601599319566532110559086844637230112193935288299328435695606597198930148418941924696514195047131003620913846840871436786883238124871873805822177969166872677052869491723296929757412937157650310486149826499639425425153552278926558176593281228135199049986283389176950986498709388528652246416241498009133604809416167206933424250017253335902412245206966274283806079157097461019323432744228427903009219716781979659790595491272105538644724076008310005880818190724478703436574542794750466602116861532820793670422831576774109787065652889958092151207900910624889386465174860336630488088385858365475419590635290169607959866719791951547267539998847762188847851073660556792237455158009612734637037295470996414489544035707005097959712497079149894057504201650307392100837573941328165780857198028511304247961345145042777636660548705739016497996388006749276335699901742142470860427633687015388954255448605196615601145707431101267836061897633765408595584416739699898991714686664840902419001493111173462062958230778705794867646385567587210995136468309977716094546557201681228539377673740994283039515574945316920658203714520458277535783379827116157535547547595988090288825001513269030621837535588152280080499462199263139514759007671504441201028640422323467572146522255433374645407695544296373365183294408114816553112317888568534493625651092338223250887519700640217856262405043920393115512742419812786611804575203790313522638215002107721305024066241830028624776559111141308947497641704427632877747366695141529627972984736229019636223154363191418417996968962803592775061551398755785367266353781400817153183187933147980316630735418382498547746143475821220350330394913462672508437397313313461349718786522154847952113280655897451002032487297922392568927537490270425986685614904053752845046626144264259912295769949845956168866129342741521686045369508582771055380684247063968607781328993106285511287995439433670099191520888614455564574422792533094751032786399982860866477824697766936469596820933063048325230272861628840918540210758575059523354917451756350558943167491291170862073846960048789782639109056257395994874924959790110901916146590802074849626393582792650583647676708383011968855505051861579809721852980782027546790777352845948855486420957184809577355026418379662201056062017672410164759618231771444198810096102794777608196256246820854574993759391755772555043901644270909099403336820210181891880943144687251194488397607261064289476377050838168092847287045308547161072786663101220366887582906462496532944215040426089607955960284837681158331065639818871541022291856363755468086146768060626175912547513262658963341657062651172681705493010940658630266922042298948302376443236714219463649003200189102951055373197420393993038094287078665529147692881385645878149664779808233148266402166554846713406240185971412175424409787127718287785341343837382580995377745556686390309700061492840773024700917201995246206245391985859237134507423999851718224954288951323435031823344837883192959553348790109921171899225365294293653362582595390946552963581374497293699746511875338537487094217708081745701742251604090438846121574124452850202379839036999113896967347788049704208886393128438915798686149953572063769482149209306281251312280804996662625532242838399173520256674525229908409946325864683411130420845898803241428782414860826210577494753300377060215168255421685888255205289137193877249869082025393362940473047505009970440709469358919699005334783044635811964910483163816068074323974751887377450485393208011892092176200325412859001921285078008780108096121869972156727878783603783428505022335910473861003790033681958215347953124203321923791186979738109328501036782788060812745282883103918315704414803727152691119589138273502062661678813673893005894349871926275421758678377586169291156419695497805005027174414821422531771664564897625594375826764309491260552928577535565273114929560879110821596194017570249204462620779468053776955441637902384442862707600133588293722905895613531099244879237739700126380103906210362971005400902332662052868551292388936540076639663983925724508244968989262459924394384508765578909028189856834334510996196384091164376705960548419525350568787230520679162057973980086958750046561196154504016297677700965470185284334977644679496028037224229231209258155238064515073175826397848971659561076294495873794568519845906093691349732270242823829358483476200972795732039739082440490265245937396257295449117729608598859109798319161919237155743147773056132758650301867128792233399940922106267909462585081169282796692381723798551276299352386088317714689728571559104796911352900853677375489955124718689039574466000484795401447802882232082425670184511475458385946399776041212321829451207207790817682331516184554219598749744558901511992706236051896340735393487564095315603407069359582576081667695587492098240480666527562455192322003251452941755396468271902352195763796378975941750521586754201928536559666201450456338552783571256712051282275196092953909245784188554012712828606220318403041625230457334991986203368394185491917443128141702746834805331236365464080095227986799808167861438767022991764204219357703030288924063382337118831666892347256653147154261973692488185677444236830676285808035577667085249394327267591827130580282047449868310923884518396569291282691413580228508792026381557594458857783917630415382477745027363004796768568959057429077532824031838874195328472505758236998984185573609737934792621075648001276066005684856289529627036503340728499245707682166060043085192144993994615927401867906702492509188084254975382500057364115276562788206831683745613611646610594529609876478761781065732569944130069604044127574848059081543152521914759307810414099180436770663956672634435356245619356407513565467271679094118794884808680923093832873822500428513086155646738231344891197653033059034948850709043640855117089681596818853555968367767082875926959001222681306340790521808314175342883875013165292187663333574314371010163477966588836188698834998328981164007025965502047611990688459306411880137433528093795109830522058657551902553313247393551842157260882310168318176409724179664282170553923573318235997210559146758099096015712545362591465735834510808497696708071726694371830812496641392852932420581483522627446937585856957168703450223775777783598158580954566745546272979473079756932050856264050352830255672286677544482840862099813897930370925326425964038534996170546386083723031489481001371999013197012628010849698683279080599525074937754235999978783744657783712375357578526777106381435613678907947372479242618159928019155423635840922410926951949867583701400806912594594455592546704732039280047011160015595417020287950359292017703968601134563044492333977435455716545727149517353452904622158776693210397256540533868239130580966002121232483113870490726163498817775250633988037352830441378850405352914195734486262214803329495448889085450792480542683741940669188555167572166221109208997318526676782935266132904276171207173433002345258919537355747509268743152936342844964077178567399584381489421046285181038496434277355192443854011056003640918609065983002337368459149958401444990129369372589395288983481155645581061030794545804756646504893576785275211183407994598744205675506984616282974816927434031957448112126921989132435503198370546644424960963633748486558714369342400084268306946647268678216054307605555515711301054996369421412014528605671549281450356360885793542044988312557195995587078583365330551210839284998411268479057129722024655013870820524474927234191950360303939460347677085153472543380769135430210323311827099410525437316371791899608133844403673509209111063173376587401600018697304252984202448885270331725146924974753931982350352522617616094384809705351245708751318689267370050744277412070979040734631226205290006391892909903319643533353377827730338009564355202372811893414222213163841246621876265629262131653747440952305454016919059121029833254873844314996900817917666244456257105500140603668001332495809064102834877164193564714304095505763803857385220987161679591048522208070839544381665295350087746068113602730824885662613928667728371703032378323346716406418651059916248176707063456531467640744926589904002492943382034766548273034152265790423510131092975678304848136329763976322746732729909893927449638572144129084870644807046616306718326269730189550522617503670443765606386089754748091995263944035360465439982377356190246502693129589140222105988734088163222562586861744532441158949303555099774824741515073734119475733373556527627418519164245146201049878262945368950884462321176358003511841835926759864297128139853841446909691719079951674046781893587502744350355118079967776249870628475929132726168844888493914112874532057248359162360674161634463880131235116126332141573507358737890898646033191010479049510880532762436343801953205313641343554593647041984399732731928183025760085767530258321696714646834358840039142037072426708260176162533902989867152675622198130603529594844646404039688560064817661090330560790650387689684467316948543438918368935379334168987646104050602410935985553266431299975939026367969692513769369261591022851172165414889215726223597736677014639845855210470747638897225490221795578347385363008193343789887481568027697599949512125441570271376490277515078779949109561489574262273987940332212825753245784561955271497177374892311071758004485261087533971440933423641670007394747605338766380254295863552936913034769868990613336245908473538052999169523740650576570393490154739065565289258081944696284012213924551119876038074056609941052311643601925684722053285107258758837088787835407461779760153173049500582938124750525030217002361095736709078402235116222597238130144407984791813303210544324431102719791005913738093483775863613997719436720065592456993814702761918466612118042961718665283106957766092437716159831512459361728010390163655204661937092525125363139655920117782142768019428047658653485815874703119926770979133504911072051652432462312538315744875129541560355275026367961454610934441685357810273138996999546867343518103443255259516930023300505925727997815904820223589052604792034825075042171734554664253125285259478440684213337897972455998381452902491341277243424509717951186446150628152839286502372129264368408132689423169315188818953852681800476310307780389924412151871985827222544989996778751458791602397076666044133305940017725196828827618138902540142141154032221880752214931387303943894838634880488587257312960544022675401194443442712395569023790715007138610641985838887956880548633517280844464472481327723859561052130130910151062642932763162472228598525710263715946299940132265505188044657398980037754421846299791933040060517616187986026555760768914956796240330209203533823006419857512128054908768126499986629682021600839357742569239001450967655189683001149858039500662463386168022550668707591274831975300014554060154119807841134948294656806017074182194482694202914591931179729442535235139331011218688316780023266376919519389893049565596364430499826362332222131737958633752729015980267624382084908943642831249679621625001635299668930446258458041672490710904142795447432277640558606449799377481597906129222029306198335261800426117966549675805482901810689473722161202657162630436353022821293372450839435343709678543243805831288950527866356571712880369852845487149507985624665557793170507902899868597143645930779735070140152275447669341982392638989294535343190218016938758502877868797020461682319735199280766975865127606468238391696014867111500960384593882005106152664625627270863739947150257718107230896204362641552557152127904583542959059101205185086051998335829520276445242512357735153614513291221335783411967187075856606350002976645872189965684680983542255567976997861529583162065743207372109968440619460852752139972077460283796182940677826598099698358660897438651036562425562508423543545630151219711116732833655070583247917273565142769410984986357066618802528434536119774234900016041091359806582532510477723487375858846669785802999922419736650411551196281600473215765070051662898453996379194144719612753684963848418407835392194951607607529847670841382746044030177075799966676756861253610514003917168172567805013897837186583796897615017209848060227215120876367111635529356196130402092739641852869360472651396687556304008753585686831314128686092282555124226959567993035024901136677093640349903748458741989108901894570519857812478440357578671393197085549893809997065410579169020959889749873844727261372435180656164993163897351119703310393978040928094799734337726502122497143409823782365196589288627922327799039418205068569837671166237721514412022766337949173743734228317972794011937453904905797144617183602567322140552194621862859145438965623402489453798119559649687070730218607805131930946785284844420212843249930715413564423079386272526585208492269484399394853053527270682335863948608170577407516973852120210628959417716079254130699134608143824632866935231265907343036680953859560845016739322909654282885409786377872218259072743419564661165959340871344812029957960400057641468485638419208402583268552123795496248911586260094009876541358587061925113653719481486085710770837602097237465955311440307339494234844861525237226662531720908162269400021122759183425529828168997196876101438519190128988074242805283555533252325715485875614477520119468011155094405429657310193621595918758219482207475615307833480300854994330873982134027070003112858879279673962736609207126971151381953771554641063374555849196316917552555991892240897978331242735453841796027845958986470600952841808664677110946415984315000959749470220759587493696093489235131553087952267531922887519326905699269590112428008437808975802237272111281427715809215786190314382328222158431197363867972722768495813632814701827652361699870383165480571461752017797801074900520098622253867134378987984881044503027177386068210671823485666103281598409185714908477074125773721529623628951428193949344923100247552946876881422826882633819921070500314822969078127068502360967952456156317625378443908683885454717662505486886145388589401906509184101588520883369612987731672752691975623864276095136945838426185218338957051864132632025229313913483808212879643388136298455390423731285738559006232871979159091218171033492088287365725960067510345169173034840664773124728536498697032255058028512103145813971655005402199912584671247522962330479476204174835733965129338846259860546690206872743107989200936008629962585264955692634224434907588987120754055723917788898374740062831103598936397536831431637915535084459949981517903571916645957972640535635796228522323209995625290729565968625666476118217436889365526584209735880483823563270384629174104274634032764044247217919633892333004523529200287573013563038211172897133169436372206175085815202908497246369055667628921842626517819765195385246430364256203212959160895853359815407065024525216570882264388969553200330712386017719942697998742711966035304852835818441460854913450644431713086666567324744794322805473391376062758189042836565865989546648856170985902335718936471102219155448014160810863286526572025037347796586980289697568759695665517157299781741491255194508337794974466980602686431815234229243167763265101550537467770920415647646247512496723011428848395397060605607246531422732188958383550139850224798061638234945366128994040935591780926586823606419849478639492739255146759621855648434028716399842416564079224320499215193527094274925509720983764055479950763696237008961585314208285497806440657569461074012428301167709175408804880626657504874497001006448172817033718571687699052050431269126758942354642426321926816126071352559377998468768487666374637370848309130230318759755192524399178262640279966163670943691125300862843502978866714838773557009540850951092542672370871628508720499100146666069343525439681324227750520412084311778362086425913741403701893905849130885307671803377759779815450406004508428169265395494242417343968257979429633223312132181078012932197936027503888526310458725788790499330172493716992903363545290749651464056091275487528815748748504665647881571336432427015771206508826472570911545293554151064551035094710720178800179246413597213842994871045977552798427450697742656414883406830080923054646260389483267223960406246465945742025221084288128266889675278980243468265578962656266379745368910929346892092484109702357131627533023890207698673143258427609481838812458575873401409706867189561813112229470021978448241581544509819889152942428906934660562607956566439433934279983588235711675751163292556214994709518352233124581091315865577359175847036941484881503863264098660524416089944214237244673185768540526164596080359046160459477472320562878910886992342019575526455549151862881037098556289818492084536281760741755782246663879072604677554834517443481890496880563765032503535926271374514988624054829562473693334496233090273911370810584071237265540394440666165466698127940161174380314425458361131387001800510642225047421267495399707590971527103141655363347732005496354914667194992566437711135196471224844213383344829914740191692970978273304820965702365744166216404138597571994011075505481383567509753677020862148022476905759312845796120520106065272215959974558956392927416101354477714866027222280787891903104933048606423488894126536509198046804726679290797077022905020257671384436845815634829002226658722453892420758678126480742598431037231448350739349163285687087989353089830355384383950079707801508993166772121535578504768244806681206008160925249005506560688200539439752940429777997773909548121823388281599786284393448937918615556384584794259298949054384503736976473332256852424021601959044724016399444925891545222094738197285735608141629442012082969234213675190569210533735923778160066566876364146366579043573782443665166851049351957765790791933549005424537483625826410516843786445029591835898396440568593688826368637105027687838531277770566599560300157235823714715472190567142601433687966468436491439499957272215058042899218100989507993449442141990214468925539286769175103982467582463734380523973508302806871873446064187629932031217040704830461291642631982086285078695172901899700143428968262441780781916264417195044507576668563242456745817551859136043599958574598825035538466741328204525370108050902351148404819530588806416040823552351294128140484544881037085694262600027163923010086037214242484291264957195698732190524275633949016224645462593474567030056728375084672498252798367349561770898365165478278894261861051832769208503603621780033915249337148444550141579116250506890910713827580224465050986098688327677971183257939187162167678835622419886753868393157565897768652016394528273886744065178756600689498217355748074443255775906927363784818051335709627018971520589097081198620052276793499133040582845672035856647241058894553087522364618384396402596011254852876608866284830763601287006667228026700036149423026125416550458296169931638437058296750705322926910916119674936127372916312058636884790525095273515438062221932730028959924079390744385736690935294925868944010734221780243707715281612425319088227173271543382374014745436218433325680295994077130149833237045109699654532027453350702177037070611381910516358803074747708198082653195105524034346189080408772855887102619129910922959508822518192058518874419863486251882456654507803295363481026348433030837241811365562783019391016183517403223845097914687521623877144239223232455763641079747001255398324712260190530488666649333228486329053808683517096435404402568667911688444342169402517726916720054236587952458648729193194196398370591083465955654573745542747225256387204919648468045612163467555780018391145805072029104091774619788296504861235552872697552000423820381832076425536409632089339245449675981523092151894730501978535100152995735305428112836484236594743595960959569801620275302395941995334462820826497923607942188680411060241587415085751945806156888083430185412537819545969741423677874187066721584275223193527707018877628030323374028626604207305052378520354210425772442559140427008749076435248269386810716376693073037272374171754245852247735758270295996649854102311510138743237047991591787902994485501682558654515388125485742541460429120123228556148895327177172401226279944108268691399729874382556815811126238732626104264249191467303139324078996737861432904142084411467415351674268973370321906902874770602008842219032125165528911717385674777311366153734391751962707954921617093780054340457873789689579406584026092226706663974706474619148511446524438074152055212868620200671723263684717967231549153359492453428928874859317664269936209673407497745053070568431410133263287775921305762314700874373845076260305875774978732420714066513617994956945601081928431937367328417989351895954235197022893472976977104975358649956731850469509873966280139531524733606745957465367342250965950109876696237341406068393503481983827182118684406017615765602547011395373572678345269455960791770944971727234694733436780387223775747916868955520413621538014282548673776952837038414279340044001305689783556227986071360705966044685334333224708199605172761522010806671065237950190709749374182163352993865189170077889883476360923618805269060064082807971343497894275959288720261078515554112397373046097592317883468807253835105908002186604490289791189672593675521396472906857973507367571821697403667069896134578745061097120350147956537516416615312164732544167892775072459436281923825623362981037565328913282392322272506794170946913185669962267630084749332949237724820251680550666316199034578005029621609509712783134975497484970807501469286177972053920877355735426344654046917507878362978303712221263449953760458706825466567329277539722860367819247326075875375036396055575515247044790468927900741744080991621535352379551593168250391708411573389472148337705878936954153482731607170302320249290945466553120552501263225317414273729408935823231304140359670910492571838352019535775111030301893738736672956883475900280466901502804156922062794107897682809626966101213748811955631196777980468124930647837405316274760628345868471645943824367753427608269557653234427605339971298708052089898561442065934722157535135731353150964325686326997601181676887233090478473878261088300271876502608262925233194476909940416700264006555597136991814669791135677806574510572964711963826438069896023388113530721498585368708628587178926879629780160894163936301209416355230277734299630152634357751250413519834118736205833454731185380745726843372069052208562550105061009379428561404741845592117933927270859725115288005694028053614114492402092462087948741836224854453701673479359020150069908947111950095477169960645156934098095760872306116798593054474249458559276375426550790985078262274524142805641961957947016181410188593967029288408817507132694912645147924587138834722095701254537628711546135844710131132320149549094464014760003023763285717139536547149001355586963306925811264047920053172809211791287009678813893732959490687691623091782228643533340593396791602428932748444663155945748561132045178306464916622418132462957675091859029883332306551450236294043474054925561176422160938847117341895740719985035273669869338669851702573938066023027910628085352549353166194585293885401347619818297901927026997553976270972133207752142888313638279403779548104363968462169524948229844322968969208533555308531740953971002744873252835275736247945801278044550361060645585780357362625255636064773490568638324600588264572996728670647068819718804899591820953876986724126105812313371883281538730532406351716048837318634831944878552453402131059605432697873627899027362358152686677286484137632175406689989734882611860180029360022362615884959038938183834781502164731089138369537380868316436990879808593012837352876220600536227587287679465791680576358143240925305502388654829492572512760977104308414241327149223014555024915380116515701072599196608891033445877802018420198687255798348589279411579165489841807965598165292440028600089283308995984612515413473641247553705658072496073372896863956551034497585830017188013929340815934657740749168731401990382842771226233324460588756739838593500769513118556316845738386555122929408030684220362567245918113860635048015522616706356496428673234596566937992435872932911668849839364206979703901915931945597036125926270637083717136079722292448389736599492632218594309529344551705400945927487032843519938814026708591528949635950763638073234705346230932441509575691850480891957173919165310002415714293566869097067553848502610804074340645742634283252211020710345037453834072171927286093079709087864027403756034196203260951802333194466047043934800540635869102941831438198076626369229201519626745478890548730085334220881597403289253567824780457234485556638842993651785938154287147347054077625040798071086832571272096595247028093129849059790306196750805994442179885069831610963804318575734932089702792144339391342829009838902927600998103497167534005535026657548513582069817189431736521873727270386652434205926968399585877165807536293049174582102753301267023622273305213709274757549275403224866536323928428878807181194344775443943157463373774219051446263840148384522306013263650278845147170479058318058348940856949424994415155483863342377204069960193358031375344976028444995154109011381560664132329431053540356633498250090053413621495974752980282398461972836700621058461397781582746765798260178472965764639589418774249633169588422839119159056564022819349680175816384013942920814208820454690299463765205998819783175448012711996556221317324427160802193166446071845067024516046120117976382723921134833943879896290584017968636094325530065062888973239251361632702390752395982653489399468065805948768646275141094064993115341987321729914312591009777188686945571244449358286138125976463755113427984573762023435625689831225304205902149070999674160321546707538816502965863991553151342905513331653248308850347019549055674484101032187658995675839455823828688310814186283547319475525274711575402543480466177480387868598378715694913427853082947288735412043190232090595295432861066132697607626692661135211466252769841277340852419138268582809550758375787518294419538166996475933805810974419704088768832525737438561825911089750196431479372572070809405896055397098285800445563078599861108297845198039988230941625098680263516282280756081650704834896441683618365946329769197332664504433270265296440733260835948712972056368036299922692205555021936131309439292561689825893809531154348132895184916542872546286351978103023730034903799179307688612204532651318101381689879195678466786614433105801438125991279141588766717029067599907122292817274527854431917637751864885446905521418294754607553734560608556346420396176670957528745494901204660351964636873577292974282347505496786544592736062760898924697824189071366910300926678191303055919511695693178319754079624033842110466446524045818686393260964635303347112921315436957144220672372701903216128316366068353535914027988526095314744197670576401090753060472138657067665499726561399562590818508530304555928407614124652218099654353071631850748864789331371598040191058010242554171356618961206011069761203387121769536277481470240462879594479656892916665615162911773694618494617768316635945285117164140087961096558671942116381654578935594374741659601910402650699653760891088490540908807662422362445253132852178568721171075072872580243702749583566462456351397720596477873476721370969778743722222285444150516258147590016001034987342164287379415209172808743852870687452996758506346236156568380656846858665912883929939874919280450975993576219153034533964024162816375645733798596901282927418796276250380640305799822393935095892199527851029164638047832936209192780407715041873006891785738178253793126532269564298480575057043385936993433934560449623259372433043576671477116642620566716193777375770182049361597820655177596044557427140159585062420861432022102794700328644097498531194933972205256017243806783980806301980330387140108237370202178023999196594847420810041624631399989387267812969837139653343697806394667642860024152824873785639412927935383607707608300750085468836684968344738138000194809994639279397254809261755712323072287991472949962782931812117999531191393368291421708003917108392039962532465712426711480762187323888663027326326051022748558768582482996273785630375020526294883169608949012916313726348858049819248754553524887326239439367504501654768934020682145856556617105077511943738058941342569604131394758191970668230263242340902445054095883410876889880583600190580085619949103323884501331396041945468828359061480627917027425505698363038681904080769860746508844236776170546226084543972221940355420265203310445526900704688277458214569663667446999428841734711480702347951794307783615275740011675423810497822651699679327017909913253596925641310212031767596026367955108692598919360515293161163999379060522162182625734473633420263075057264252255255006962503721338053244844653771497170577712173855502140364109117838972141797635473176486099732370208765716623286273640666665252244484423704743126027019405293253920388124561167839226071478001195718475045561161525038448220826918667452950019454795547426703119533884633675047534119243051728905583063960642730093178990339713439315840591610085863938221382022717081924757782100150391638486660170908139091359533406190146269042409568052624010705647776618407365199659831201591486191247910453282084900376962357904520492814748144846581726874291601112567800981177269122209070237851486611243714459198466857630947375120942433520044650532973912516708301825542971302260674660980052603919627557983895090692431900473756401836074549348591017944755771628631505548876102867291818675864766444786596278272940399932099053354969138475743042203580266820050183524856515170342099431107260374750821643495885414321045735574198011829400651638459077831309473009929939541827181805997731995522537656235226168798804828472031495890625696894424278407617197478521211170867529446036705335557033361952699406435233081909574370804656078412350061934156495100497331738362040042273443789157896534958611591918135897244495607070322322782801579148558088663267009240423420313927164689630137056221855039903462294679176978329701524127573584580130897595258639855021546367705090070332907975583265256973309925199423352342674324526287834348780393209901478697413172811254964459042777973691266877075337938105295979219560094519647245214566447811294088842597399502289315673204890035956531488181813352488448698694800612536474277550005042040462103442555588086621442523793246458613086709152614396887816336773496951240900773916726414094124216456185364620858380521948089887377463428514000439792350670242467066706973079235532297655668457047629025632259783196183339724915469525525143514347973072505898539350344143010372769330828701075552612213237948915324248501547845700977456836739570646245323167834271605995132533503844764618045298891008925761423645689209371216233577791901016985274650743313394038605583835605125299114647525104974008392381880409524665697821906750077451273404137469485989032430384217737576080925883639849428524916612397421340306639968399457315314592189561854297369416392912745866021491932560629083547889453870589099102877684263449092427581953822771544550755082820784883600938857504071338064314464351066357725420010721512821487380127832552194772666696435196399513880976645324332723557684264153138097822980463213153774625235404290603580170561927446884847759849178086745549832965851953461620010812542242676672446591985003737246700094531418328513802244338672642501595675921141474962451849120472064675609405933598879179790590013674885386450686962065614990834968225785681134556483957272889037685647348587027874709244378417015400337456982748232469221776707380599850755861668713787186830968096765583702166111407722078522106402682698887307289605168437835203674022500330129422087997280733552033208498251879476366174290552837591285641649741372819365114332541321596654479750889663784405834138448245573385931223675087756917458077706663761431383703360433458674650157199994935709263149831353947601099746000005376581449457332674586106330493215029738393935442737099386415060481731338107605825309439419878575323657233230479592495750580234655485760174078300407648946768258640951038804374399269553415069260955209966849636219609754199025668927300183039884115526354875841019186258565195894991754367013775262962123556260890759814472451063453168437420392696341251225494255324466039223854149218025474882876575364066956656854499049481491528050382535285564672004425228943146357459705605413211134776183459143500680409751657893967117854851652292067783571075255139531452823122246077432648578021471069671258249054953252002980118743298038560982084749878105162425738536217494683456079440138680427259737217799597613484926836925904945447285453485554767285509262696633351543953191992620902229011791650354053205354155732396286587788501001210509448364369355456565298702510427337311270368643270185393046229863901849849779085270466381007410606419934676834879214901823792623153577676004525398309488349953129731567381103576713809506026898810326066044317643550299533074351217835363742263073089411890983341196386055152202496844393942530531427282384519772446016604039958354727913725799487690563099638920470629376050565218205421345799773554893538368033652820760812514894362469001742501483694891032497863941911460054023062161855699086102467315486460988020278107347373777049188343981529606960617171547709155804539147213794488630702751062591007953739995139486174490302297892181523395588210157649640209459194090016061165874111119807343351033819020401202992932403144329877164721941875892567634592321990922901557239337288860713694061776164509345671522804998274750927830263599319816399168556260449567993519483203844703965009899853801126586133337947755213032889161978793373276844741328316215382135050223298247951985584253064406273275670404854215795371733438301365792271697658152542272531902691721583563479065501433932221184545774337318654527185594102106229488252043473087838122229831687235778373373445155994823292339269578929447998242009493926642707394323274713200971603475707441072850307963039075727028380502095916175507000501662779242931812450523867239968585193177959038840467556513325575821494315351795949879017593995401869958616206697153893332575600180920779578501271585250132437026798381532168315105880273745589398225165079655680674055293358041645869285231652892506244103450725475174669695766475991206556847983177883862444164695419191341166383135950942698407897055494658072945983183865462177521063114551043363353661775730503740634292089127750223620941830938203794204943018325648815146217473149531227249665194033266694654817482534172522912474970511461616005428188054035419894723457255907901419851829814814599027140514326607102622963491948125934214533789872458309760486188866958513039072917339207722568960983652091279311482179747506446559761340387575922402239603473570849183378112149892582953233544437853183336101743721712707556161914380532726602449486684750343807525183922459239571783023471419022350350380794112727748728950400230804740722455600124762073159921250457886191338649903391268514724330910608559436605624848676475330103363659857748963154641346528176374126158110078173670124954479654116012249009394603499330999402392749438135040080294489916879393667610867550354692386570894147039461647784558930701189503601696843007815886653291356205568916972515781275439554162151952105300131336221871938145719744354678463679883187413333055129221001574730478222747354362338060820098336645368558689256331574692024315168312340672977314170507985368300211465536273578120633869732468790648595875816722867648874376546504490483805651802297321117954056543794461504202156340664560806217490834492965788882953793035047260862168232015498493360658850369596066660761363412546677142657669669382533335382968667780185547637587413756149740851683629386444454372825282127596573341880697804038637562432135935333827691436403187220519444882699899867804379050317265195333242884761680065162980299075023247883443424065678288128860769637406496025630715656767505203705308391361662839216418450982844674305122844423983346413015302739217504201192661457275082813903767336357639254460529716017653757738989469139770671718421230296681287204971364532552899308640123305232260540816113878892531948786172327631527480204769970108414222399792911010289569196329428033277083535253890351431858828631937429265422212927628526004225453979981005955366783999892392918091503877736140092815308194078606647484238225957635285178492414744484368434252066821565966919769728805736670362156355124994436122668933058039480454627750978873567271612375825713839139410872431955195160533765155558925355182697971475606689317353105319152122983591730230267583927416493142243938974431008744911962224480737158524947552758284137168733885684513971935717435137665104895239029017063092712264684066927834839988628595942396793645641735587184019901875725463460676207062627896232203480537183635179469108776385199110783793669022647896142652819899498944095836469265144316565821247179207892033514059366782849401779896529798150547543580317758562255869061012302340109361295535357635843299746307928840816702336678897012814595884742819942874986614377118597010460786118312228567494691319004482564302826200724878752539439790125220351799067010886444417333294270385047776295948438149909989126253488800224701126853866059437662227036508267221232223515725503765038540952531017575868733835311996936024166003965092807274380713754704848445688684891968721231098199098730747953205414010395973619696752305244216405619005267427599397913726868627853543055179125750471576601849237182239348493919692953944998838019657266250365175749403311969597941172125762371383165114796260557917844027818812255383408963982704978907257430443033411791081090599505417122077373797477503036812582030995844119486799985794011171393324239526270361992706377241703397811133323827156827734201479054726165434019322671442180196105337050263337427319045518794871348524986266822221111131891445576221042289834739034998125977811080901318642567088910367429803049136365142132498203398923826233114577540076316382512686668485031584111114115588642679072134604092217050745982472070245524314035201195653139245833100914253634958789790743937136597095527255566660070242028391007459462466313074544675113059937775120411928055649729151234915055327810229864306084053764409891744431076998717276003815163442860652183069210091799279417093193629424774580681733533597017598932860314853201568769791565212418967004030959172775708160301869459714079982443633328754319221407359969526268303856595845208956554977810132745394340864386526954140660420525015130837808664572997492569037617093002816162250318700303273714486051251640723900700882382390681147399580435559035124122182329827436677789038538586239181478158835325813789319130516472390159051500732925827462042891439266753495215494292409278561294142586937295146893142705444227000932416109334447817626188849164416925608135907757944738620601592404012063374998954252911634095244853142318247458686792135102696628751705210646078470497466615451881415103516734981578308880506290252472784913288358585719687703163300975539049048845664489746888824842250422741076906915478241586198518421957909459139269455393497074170826012991361372933199089961244761127027704388927170172348861763196368502467208266987608481975265151178468397433083172604878540303329427864436091148976287974130203367539268931859458016183291794401009583249805875064583664127695292859826577033300623458265495553231665323056373735121952849214896392942381059559822709275997303299473750568744987281293470260662447761583466617049162697571797587242929114187975074878217153341997452680557322560031417046342203189757820773023738624697850416509797584452716458522043551397592875295089546522806626969434499014880200418118642039774220404270266955446032990925495943520252796488734580054345846849452975353915837929113057037617736633757952397710873933795473321185487906192685422400839536103687789915221045210650200380051808347709316151054412972685089966422824644897764232319476756024380976946310016887760572567989369280086502487446760824545957501328381000122974730565399913766112760678583451295803038405025304166311739822211379220747439396630034070496076432882198733987733380285979360982153546559100724317097157060971059686886906647906795150810115197051363575163611207596373863757385849998378645305790304439430129504109743783727473215821070222676757039661418608774439690962477761429826812572551820738210629142917928982577970023307492988858235399319356394252680619486420670833245104681706704055421341876516419219776188680295892187243673912979296702170026047079540759988069653829470682629475007992091780545010872131836710302140341239939886741014047291317644420908011091980352443211333653582852718284326236725037002411625948225597448808317606737015485628911866544655045630521377904505732818512019796654094302700497446325461212241411283293664379403219844792766561092717076355940122055359024467307073784068108916048402263161316537882261306234764932281552291952234092518396017149557062533930191906745971899007765435853945373057085876733937752255618875908626655726071481360268430480946337810894870533253346931528652281848501503993800336638789733893411288434577352332199976257543876194782906084104923170869792726685650177178453576014440687171686900952806803431893356304270972778706508863333729703100159320223247970041018149467646133696884479094536114901744629897493230037580253191769550524162500655284261143730762265420826822134594675370336621842181656644347757209630013688515145967947203601213939946326114541444682752648661586756681602323921704745125701348659061643086005885568792084783360624630419584641747083033660653300534206204283686318888324266816035175214007464026900758761089479463515084495961700050182770896682426327475529391344648268756009627622242507296272188378746955853968086987312689237481269813501287025948529870938537227129950556301593716628582188659160520740380572603304513197216792914771867563052935572768823902922662197305804873114011753081338921701186180117337251436635308756573420894170480721933598874797364268619879410285421295294104365480616664665609535068126798608377234268522061587747745045440859724123572813629395024877213229181447460352824090500401017736626986417021816703518189746705120427960543666279452174941485648640342337595905490601360969309168410629163679468923218912091274019517061803872122843070879607731137254413060541729899505483788277270466638641911377988697406327767999608103275565628709067701614858118516715255720673109259432660248555938871841243042256167746151083897288342422589148505084729051760618997775830070656525208474082088421733739107673981148807733322016588911410051585422388406367286567250897128850384529403162918837144537878661305400091705011115471854363558310332072119813348586311534236019202937183043526169084401955004814506589376871523847124185820705644135304874205156145120866680968865536473070145171155583996458356780034909490393274451441177991637963103382544506126729662982076892834738348275637617138396079392508938287519388908374248283953342256640130058887766579178359774040670750177108719391145784682542500121104011567813812956625725510917646036596778057996130862820011501251679248494760484988420373339395434686685902354575230954073815304116759191964033950082322121220319485821924434755293375301739351818146692053006768354983260897626736030117845855487527030732200353241223910296706648167195592545322134782497402500270274805998168376214118183387608348792580981381516616041464208075202053745495801305135529753878317955606609534527502899952843052599586314977990312599592685238675997576441360225760470651198719323526264910813019359159967624775420054683329136080933231845309103266426957027363688615868419863558986966216126369423462698706529516460365908897763094369532892149718025971263107919863423433683379854278159243753610595231367670588425147268669259622556233388254449153389514807803531600962362723626293210938381213442925961689776071296109653285812638563528406918707269095087199084875880597680615434384983307862237329950538595446528725800917384821639524761866919428440920203252858635973427365210841779240653376994870919040065362840026579910278085881694281124198678032126766119082120687694390256898318550295073581362833258813293497875611996570647703233546013593301573718699852759527884015523130446664670070445701673747302944778425837971339579810234192743011416633563104720020623034667200434736336209186074063793874108377983726591022622662816683681746145088810586794020916962370702672270785567024669662152359232489065565411423216530012306683158137095011751649747417707710478671144231270308259649702806523097265225953502609376032046418104012825702971529099663017972874967160781873864346043656031260091308019905591344969824305981044812142232391988323305174876177610603802422486933607826983487990531871201936565718811379882854700036618033764616418080056211065665713544573803557216270206698706659611630266928133512859723422734740435504503018436615705975860259189729717629378207585152143663005844137543530152873638639375592024940199122961478312053390204021524957162375177139207404812163206956168783744067514276611819357040926225442812572446747935669902240001616279356999773793622293288995109667188147254724474423324508328161135885062617781347522637741668930679618906981738542620711683452020866172255402151315203014261536352924176248872401938432847031453356855321163460324119109690049806616365370483004401011812918656108974698069557691913585155593833791589067981878573696873349166531702934832744826234967893671344072677226840840390785044733709169016194834174928447685766055823894997626657072609591728102611237088220424048967417981761059712165243418987697325405183576390689675246430494598140399601983368186282170586073372014699356972850002318515413576999413002897984546387206092599165675004257455772138558216066238188184326085590864884230577290245837548332719465922189060822557719303102442845088023804118245874545954059911879389866524346777606716241118610010104090734913030671369690732159434848129745453214650616117015870792378267767522436635663919196042731264289021440187347592854707425670344996917675233598478138865565705899983318601234615036475938171158603856970478924993590444127976041889820913034833021495306782619690302406082509918409496241117147501936682547196684447339851530387850051106979020064973535455938575707883336768892461107934627144419802729030596670946542694668000365572482505385372657003464552984375485605766436548468959198703255509085909374209804862413099267432372863561176180971636873658852587542928998684070667409131052333116913901759061177908405550410409730126750877167686004326404717317308748944579536828065166828841880976387687751677225401507003933693798837135823136755015852875240337553986870947839756157946308525991462120723856095229220102419422643655009643728162123659295649212034193108558048057925207056097073311003610872573365512443639741726877515322065422563933914249879192202992430401513532618304251639821759987994032717706306529601965946603316609193225213978517420275604532822558009110705570160851977806571014316301211880912558064986030948049146676107720745502634506956158153283070441964462644401978953041673808332923846545153725133316840331525638965894711008798811829532364680046133945376701491217704282194282850506622188463050880409783570115326654916255249526385096275796749475771603492347359628017615562674390623303470044538119409528697550938580679702661145684844846308991494315152488178024416974099890603908439441850253047357246937305616185379340688294601425402211423373139724085744945862377619322551855689110364637684070516003606140643570811847797770405995641200104601413000890788089377595295745047655039053183599146854554075702541944535881728230217184087340156065947706698217296638659132127716519251666291242160026082404556418182824207155593041412847921238148595144839965671505764602713610407345488817072271800832968140120396622375240917625930501196457437538992864618902187410750169415517307487965557943412213401861945711114145143476791105087385843795432281462392510321525178061022002985061171511522924684406233670927089226453241078178623493002036486152993070136846970506636958762130387191849673626286128773135307721316622088806901178452231994936532272443177479044080521012426828275776057685207211032353363551733222846585385579072592997658497868869011934529274642275255585048782417415962774392726950863003739197232432809642332098580674697455115723670387955932445758453122600239564518634241370010986150265195096501276333828196736597643559400008983705072192268375625342457964215208141538140352834232745745282188653998454027744122254522942265414501024628838852570646391990412738586374723771970181661501559306552580402449092982449535013277809532564263426263432798995168669229691978769462307638213428791853401663826586138981055665067401063420828539478180020453642269679016347991779681426970196243141837017933239208206963911456865343575178937024664269595259600654326091604270903277334124879376220897854569431847419434510620397466555147205617061019461222686681596904838394290430992831677354144429372219257639217779234223773397148488181910169982018278621131812845363263984386215655096776531988541783185586741582390043053451170737372867280188233545785306959967788067417964300979384132540544812380831903058654085153227854231354283742353758721688236322055070652706495251356963675212104632064184322393563779520998965454720016968351074307701939884197870709476949874864200855470745726706021712740956692665431438337769024013142789997756778724179571357223060632305238563514763132557264467597733776986284175094033938121692142673563864623543402066943063507513940274428897658237003075649301065734518698212694757885041191961361046093431644074153374395772435885256502313780947543195773054518785207209863861162273043345329587547485512733832797221918503504787189788424928710689618210899417158677612083801516188865145400128585971646301364496516055149382279283444908376743281989211429104310611108686921655279207982016493293745813421507655118784892767382548793511783235161120855178410837621175281500785185477818607679428641484323323319109726685003293412891404585820443155761077878576257742383848993157237395983811060781246778635855689965273688452409425287045964359207605793466843241453255963562487488211791208183970347846417549291422486198816983583681912923190240717129570007687463345058546053618974136529114874878826670127663175041210072031578108892437664036773091175530904092817119613621053923413873342259376787685262571351224341348244924378633188527682753743104903544552421435713693138564029040006569936253681779918785587184473077058252974350574866412708465442603847274453318352984893683898897808289018623074484047084490852849403039434295546385274085475901526881600037477252281178116115742371398195074067417534318414635054434243835745192486115808800396066834394019089873781924404002198322845207651547921136925507478741658366024221854621946430775152186135581519887540463551761409590543738570052501358093904859672162021606984416156907877168406812741437661409111813963108559915166148107954451532495992136682549963271237356256841474541431231206048819565493502823579799437677757183566590069020417993369091728241049062313271244249416014285160962807790636038335841419927091542276842581774992219930572580325951237712012994424840701227968679444734180679258265793495891476788837891544093263165670060889473109325610561988030860548652087745645452474853531540501116812428474957904372159415539436702907125778653689754228949640116185024437131408434630354358064772127114350431362548438660924361550031965108550050907158337041502556889102458400418193352025212449845716767925568221802326639623157096458907968699494137343262118149547389785624882172010558278984533333136548489450888785675190404459592653195215811924489811352902213455038356598271936949317656578186760047007731691816455034194766774380181590333099302566595666806010250926530115150160622468616389719309021432141704002191457726858407865209722168098063403409743086907298822309751951983100298612670489081778827687757961178330223290184600190716087476842315224050774360779330699714208266188407940469258063274247275041565742546714723309962603957286538590552888005911222577468976219282389040655521371974945223212768338451551457684661127766882078834758858600648865735763165275569994119108346614456186706812749463392864273661511558912240868597078927007503394219875836535973430041069559226761035533059931059176312793511629714079606501253293619401366506307941570050211188043581494533791320858732548430463659635754453470236895764075477044155714931768679302277753119882184837301911786289306940111589359951274829912053068129551929824938272147795541012944377345175642511716526216166999185835646874649357924097724551332802362936675709907697852514226641191193585434501374096079376005086552834228065726478022042061307951699639533247616622891546684694096914515252563415426976727096542892366968403192535094906738450902029724318091231270182551951383460029378821762077676614701791056987095327706600308416181059206587486560051483952184824992543254856132508585197436417072553803196406928071563221322173345451876615575526390318339396568420029460701119129003740322343976701062591895494110816617775621921623121137090313971995109300060103007153333452901597889358798595884784180052537960087983471109265787548954190753861066220189959789540593437873947063842367677502183369288728660527834544522024058057113629600759746651977711112630969469503423846510531433667095110760686290587829078822087133464200364390366332980988500851337814963166188577108066312558044324207698647512216582361620834681484140831525275396050627066696526301902593848744034126606357473771924725215165229394066955245342248129991832656594423759120559882004728642042067074222872759074097139821572379632145499167296730802864864484068322190336849026989929710200920411865787025178591835750552703347688775638585462739607509976147400572192898182966726201203114582608158553826922251013825611025429443067962436400899781005440067802134276707642549925936710102284674866225941175294051667555818626941750593997115376753996650983301615736970922700557309695955649272385182575787553417888752639788555964624474923264074821628542338036335949374899526806016754142197883509023731057687503281918259052125331849318306100702202678580527851563024324195553938565711330622522462341479711447932578993736265220222845799230346011771041574409412468197295002911413986761550352599819480735239154528581118222981815649447927563553322350629049623760218885772940818935145056394333893533977655456340866555282658136000816463334525449484505955566705163107708872505206626022560573629214451674721138860169162930054205124206415555272401945587359509752625533729093899907528808524234255268789623261274535575780817153091024596353553948147627719691641984261118275886258905804366154875620681637434080047600164419843802937341468286777176160414285412606425641580937439615912924271363136731776124458993385917773061133298846655245748283492523119458706998912381060083820227026598562576333919033672940001264290699668384238179436127469866593189619045322223293603166329601494368718280932743049152389322562551911147300753148128807206426842226981136185520154479808760107287609450269249454061487952597780986360069669101377814123490020686919838926415376722551768749515204014883031204113020227806459645894805871377996768873493918703798214391672064590869651897225691698509990310203096657363301877215791078781426445725617411584185877699635635291576611517161175561912146377213801136522636271278503521453330658424042719346570805618056428626998831932727372468508080637253458677431435647134329913610845871145670176806024156398745240385833637939835633934944595030714427694213921659335151610028068260018621710802758990916345462460226985867174542310977297306019504557502121786672926863366512580710505001747213369207269807192779063301291903342918220130117130206861246373615361763948055611226790359599834582073680303215605083664016691546402608726050665198490757496212963311920460864247010599662752040679908521111887393952622217171839456743584366250259407567787455206883177021018226392892933319946189556214339398753777418233490776385599354008719353215578106343492646921668019730695877934717222544807911811119639263927648001235177257192747883057839711366906064552543319190322289193609549718432491009045406627292385027405633838548590188268149435843645843980262611116171765842816097957652506787611795116323992635170032619534150929750055340488664096583519165979491935086348821926159814484369243754556511220419480552682307533247697408847277874354523592721088040526258353686891993198446098971608446742636735916800552847863406269127172173171756061677171463475561619807884390311358477716426051047474576636143832085499367219745739979786652277503539806189140888838590932137437527203362302578779561047292856386085130915778464960008736333920310489778169199045483721157693261472210169373395677086569137611108691532783540556894860507108229542480918055808095852840667352878148038653802146646757143896547580860434512955393551309586932110862993111060583993942496576010657495240264494636552444240730599036528490896664804046794551760568902763171719187687277257489033656717785638232165305692129115050326412815732707501138355197893094089107488034261090882741413711940912309437167869613636072477657104623486150406068547046457718789166038214014347509730536910311084407969550456237753811982755215952136501877563397073543958012047196601951288251054503317305162163410905181922605255463122643553225929574757288200162627080823604244459035813619904596044916754037553727206181988999514777161493276079799935405323179303743527584995426817187213747300025933561536192111129261638916218469566956203356497059650933237168855187842033304180750306650556062517416050526233166409192522382588709552189028812957505217116559791713082534046084330797746547688166691968144768973284839179217767764271032151745244795073588076328905416731603181192610241700381775659611825654152518096798760261634301727837032796173292508134704765485765605901072767352138545982768929873329758329944685365659919272027231284196896663259359477266722350011371950264673084492628609598526205224095218223592003147069826977926672250423655929192492054350354442390940880576201050465309269773134941085727997638011304927973986558419898876583320159334396104687507963520178472987317304408427266965840609618054654656319302505014959888401925085596318809233280147303879129195795825101292043776533474108918075807247127240276166629686262222231660704487522921471507146159607733512382721669154552729130788761367040033447710520770059428997271177365919242991321208097064896312558843911944264248345550207274615226720992564456528346798994906603417413684761557731344073469800379804214122671320372465321073217357376049193206275564676654903913028689978015277912027247510532924595527398642066245295718008680915733555397019651293100483231470413504942935965118265724049820443139756703147053709850613146155991545967908038206332711270539764389461306833524669156764448058479053185626495783935454683629709750886407255782366929906508127064320767425390436885713810940745855659674181134810267297801287659770581626728457561593281266064575328698356754169437335171869154494298039532809562532967176474278419217105496385341428321986214861895267914830400454230243724462494276958818851304787948051509240221847272687432602896204859856831807437521486290992133913992180695380744363471106230210202399080166428312197903931088989028681277449139877816012369634935383790483373886164973988642408564038860012173560371256630282419328441393715260355025536500684691379951253301570881693176198059576609611328145362486381437470813760997339279340713871021835604437946559576321085972638056113173862779961866282810658000636060566965160500275463200064283833990047068610621589780135918708023883757689557911171327021871913861244609228509466217880091235664671425284581316883233438617026345453106357326861714173268252109927195832490783232192898048512298230337937859269722693195895033354126067763684519202799011294351329008525896049061348176846124481858634526732494412395033702428955285667455763776548313039154490724174469903334896301032696085126405368878222121462152194238250907818894026435367515689104488568329212836025815748009984583205487653084082425613508935972296031858838858038358185664412153867087676012483101046308447443218801447909336747468844785641481744590912453981032300885920637101563587565164309596112739640158617697813140879507371428831776043668981962641347500697194056519504550516774239794019689986252789008523744580732886706974177396357254506098542345678985204250732286070942026394841828669256606166544407204577568393932312265407812478316668801803018422504520053551868684850558453085253849754261205794305353308074775082649608852944557278500344139558937933505118403022529870616291505964225999600585648957233653179869136696994427866578912525684626041479811086568557173907213307893310852590333311371858772870349262790271567329168662716674908199318258316683282850015757078016119316922193151475493775515980465409283999109493742010371708560860588178544900570410413604043513764246899815268060925540112346532950434918053747735616666710469298309567892031648206393173922124840551203478063211131681337322406321645541558823784609194273808850283831236226654974430055809989829957425843235376429863146563505528356047709075747328263677043963097923465629794934456641396085146437130393213677421247090445272154068792154263064259726029201899465529811514261260490076386714173023572727683904155972345066669386646058829201247114417883178223482153389187605836327618181943322769555311258190484751746290562001346899644071619823205434718461102051131555093022682510749199014960817856260510885903658474515037638491513400032951639910621924055728300810352176197961683221398169240835763955621165712611219290508716325525855864961663825419359148218187619592329205699550637645818268557522115278701180299433546741536276207749785405413330313633542368241010846476374906388527984149007646469764854009479635895497546144813763697059163569983681198752505479306935320757076678014844770142471624190816682249007420711186488154772891718653596776539579933503342728214605416964960098470697958559264304287036366471307131478233061157641991322242064609989883076268583605552740990478467610760424178421506285175573529996478625529542836742987066457943375801014074021161861448432976574426342852870477855630830963143527878304194501970294657577773281674685808745393160393725331589928057943463140873586086177882633492774615118491165513068184671367734882334108513640394793920887688633633946138235834479408156961091429387734713893423773619109646056424447477908207604966027135616895410644483213659808293890972961891211834291490616389638610693752089534688398334446718982124347807238740745769755450743684674713502485881839966556819634452881194183317263682505061186490039412552057457120360355780251419043526718372192138482990580322469584243231589844325103965443535053543229216747040778614684859762557446153511880031430569954927847167454497269761283933251838197222328360707522781292813010656941262948730634268837338181742170608647548276394242391402753218042951903411635170469807423351556057857562450999253201787499636640473477038985587306507603870997731843128109897898820854355955094325390237189521682023344245572575307879263398550901645594237339662522335164875058955694217297244895998825089232112034795894154654603037878617591571661398869326873749684730549653293782147564810579380828530053244708050656929422340010959348294614539078890661626402150130735330033192074563726377077099939992288621224324880206263485088853036010723436890136064275814252839878594917997961121963797576519245218670960880921371119775000878159304307293448839309575741592413752859777972918934538505080383198677459002518657917237080857416429715380788406071306868036198241971577476389507253468404569192759531937223702229015580065607604738547359904477996748749969769427137668695533195125337764098587096683863263926164945608684140374568420719405950701743035469182150900466493998551741389385197573121568261622862231881096729747606013028331193716114087472706762558567775119956667486151964912970193318084994109618139296492789360902125354433273750642606242994120327362558244174983450947309453436615907284163193683075719798068231535737155571816122156787936425013887117023275555779302266785803199930810830576307652332050740013939095807901637717629259283764874790177274125678190555562180504876746991140839977919376542320623374717324703369763357925891515260315614033321272849194418437150696552087542450598956787961303311646283996346460422090106105779458151309275628320845315846520010277972356129230126058635360116492099025874555214039697911534022415898132450572292323321310453924699836611275091613418779722718702577447361243885140834659320312487281929898307568923994938195983218851032287546801765312653489593799464410392567162713737656709761900378241779526414034775926366374239012488538183785904729104693198892156107924714332756000290171862854251396340045758981746655521146070799322839961936491147312126919453014677556232618822547421749259398817667615127888878297907755343511217083990188345223321969034746579455094476892075793069119546690082595717167592631870375891663889328889418453807002953188098481029972424809255915504393827980862016983205763631025648868373336755686757514722339378639992704370599383505885905560518365479714431322159538287932782948909670174607671601080372804103484815226565648636484282454110489941301527089360788248063011809926914985159054102557478702153678847784255173468635772333438340641758901447020188042201840600012507928735343683752796933905875830688990009866762756606271358995429469308807090000582369577930211088675243026358782551205631158193738423127416802285193252239958929818448044557958007538435635544530549237871254056381423436492503917622787347124218919689138263067310285220096790864571177165312022139962374313447908550450290073334991842526110968761380816288858011271883411541749413634513886808895678227058134385052148043769385992525788500678470933997326296029510766837555230815570484448137582132709918817040281219327226091076053748935670563252264896078151435549773848855717534831646462165193042089510780627895494908321437897375833400535589534254573711808562301854434109418528955130957596776958240218195434554454765247142668318980423668416724058642880653310486921612725505410924448628423604666639668761471058442272612748119652888115150104806682633478064529062180680565517962983818928715069267034231088336022025688323035170032176439561634050510425712258160993154751910436263387588550920484515067248387554494479285557863259774663672762465576457203194283340421030361588339338442014678672332779849222091520522477275108779736041834865833364314027639693910707237967638770808907546031919152007884161495776373548646818441103842416582396993682281640363038878164832143271534195250075515717529298633693673876694583251651911954657839364602234078986712387708866611046136264095763991965562029622577182265962291181767717394327385248844636263612564842206929984050996765666480122697692586314888779549006013849424629865687052490801430138288336208180973088463414632022878144574683756759398929929209044648259965613959262840771041992139254182621674302425648057353550318126075529506816246265719555655193468747593367177879588084963857130129936670260029020502825440110114318668471857989660851854950027911740055496604444917756097212316138327975952868165146060616507049100132955077590748034464458179225738884946733110698737408627730075510436431432238284028642893281462849412945164666827257099163967168603040988961680699061510050101573551409394599018533593503061164808685899495455366068220086466654677319194784154098721069571032107114435023722375908981866668700027840681613744150683004747040999881210151085072876859141533016322105853973826200303779819932544772553819305067752752943606945548745667038929283575998706031107535422966867897663526549484751497870237453253555151738378875711267090448858994909530192972472450151416022253472709119546922834528977386708494507316500485524630799985937587092766047252126453031341092422736457061766637640186350101310985588357857223456627890217454796606425615506871043232433174650898274137593932795145966624626310606956233824173353149578966783941402323572768771487424998521587835651717726256612722365162852162878596513654429747517122560874325847795575848100169536523943459425076214284985318446296217063959904776547107547145118245044650558395883671520068686047476834090093638627441338935154650481579944414980039526367128054967737799013810767476325649458244630285907394070071862278961549028832720817736531538121063513738634543388569755387113236078924099527435987678512930742336314174754576107543710173705187180291175965640068583068897919044003205423380977969343704127755048421234957153910561928398380750475075525548589155129754634254280510958098039041045623573002783738965902450821017158340451990624393005610202431833010657224613588597264214623326299358979499979984954974563307261860270402551989769543286975681141026943464101030405691456495493023251959073914241038527741802812411574849168259614801100886333406009721253401373788071471084826435529787175241303597174513741263952446652422501823811532561864435030281936870105157095901635062588856086504191109266488052836001971484852350348943682248016351756027941398781809758944630040145065353803694557792637082499930540254522100694195266139183643061940487771192759385818507984706807766300999075682968894554633045821700408178409478089408340297211371396228829616165189618516494161368127173594994492901796151873315152926476752946060740979459417381198417215951034428636958692377967575071840252999107663988376648232073389986243735331471754255166959993578429462222675489567699873882202422163214678844396175251110807107772488062188679365106069000271759988741846507531301750360431203827807908808281169518561291385284417921456286059614313537257853971423262975098416252856711598026492153526674588038739185226008410275445621709806416158144331175257691853031067140943776552118100559735966662087533088722479169498652464855235512195966322365492095332080570335116627314102482403074707127600663791697802752374484789230074394820472043601958227690079043096546588119486439372076997785468465426450472535665916603616887109084179736587913356652291142804324426813750206535712219736377961228656576868867107355143257291226975984177459552199800024600110470677887298491073634653607070337701566985943533105798281903795621642264287846591714558653591571960163475439813437764437533181654896983978001197827632307732844432414509320821252171564125605400573661499516243203468260767872193964361713741982247257944214797591283865187860548021946772649260781417016176487047994721849641048956840695128962886545670422327893970333093179824839265707535376076490852677637343771271798139278696711325706962224681953393625901274224530538144136593040244689429400822274633073956184812733628491032785685035291138576823640257107220888044766963002835703000992493176385295030408919742229164798556216757067652715662779293930731971643501613795260789505939758293573235221521700010835118475205165526122523986817137416247506636699064483921812706750039161977998631821119951022715297178805342544024032186814458412375185698372169913713134477373890992882411953800170626985683412504886593043209003940894345243220305835804705299965590439164297364269872140429312904901552327595850790269245766509641500777468487888617045486921552831604955840752807092063515161632150059365517639604990036479646122086510309284041575854997955137118799338623784644865138292527834226593307777774099019516209256931994862390826203781770762703955193825178058711773738074424273943326592128136394538300455302417941563139934610191363665101714019715599570802423842130326221508437760611492688570004574719766247891960030333372552865994309419950450686285294910669483317218422115755039118389965588404786119885592091122720144101520484922179057167180514137120688412046393296112548510791197668900988192837944815466996035523492388625984536229645671594010345259606598228608184234585610471793085497247540678428458884370463973906577326286740368394113959586263345846704528873863969957475361530692944785088314844901222500338677612152286692760366676486056852941788509079635936355051558591450337156077403845017242990990921540971673855404937930383547519975443848348250571788081934009356035244332716969727183924935282367564157187686175259564483150040155296385999802588651983012675244686885633750296966070642258953228345172729338686281632626768063837747362751759459427216639470300397664018943721097472998185118690735624036237461046195808537789664484253961312138464042546404044165655112487934538730366472474633033297262265900974898501680926545253666257148822034282139491355002869109181942859772847243526372736781662978433804283209527921457357238001170718759348987893610817810821055012712250887792868660074899150228629702706183900630383267331338569554570448359055350060739705083715699067584755420217499508868342664771156900087785360159248287215028009701070358305404485597388227680906516930505007802752321625293529124747524077419103018936303371234121185083950865884646450228541273411714534629009074415300502585482758644552996127833778202623981711790815298307709581253453317897755073339823920256337074236101309067912102599903010902925584859744240594976594963032789915963530956883289447788555218060916501091178268322067452463321625984701111098141659306275497798173394070573064263747321492421508642333640720672304897464250455544127356269059034606739354548092556644454634993947736109362583263091012346726949739221628786393653511279707264377283945265944327834747857933940224151373548303176497230532681055688791229388587917864609470317269155560380228077386890102991927335975702378192539126365901670627086059788466508599797335934892647038286565086176695374104368680660832549320465317678733098031961051240279930953086470186688603347155832415896041670535447552609070278768660913759587154463163034543772606195090326500102830204576130046829364805997761950034616763897075062688235606725294891220219729201516025868393930677983831901204632088584477721678927266913401724228034855894736134122354357852983507785005812273414700572912493484745418937576926401974104818801066863815406318252230578215338439772286423318145864170227701802706567589675711955439945960824265470357609965826654696395574502444640349704049433992466806860301564413680144689220520065515373239354985266133775324177932779108999931242466626317979738868824969042468473193034793036133330579038921616752421053830967821237057459965108091142389419428351220744552892277758613663349646287249061105239192283994767008430913312885431895317449734063146569079128957798597531486368359247518147864696708607125521411016471677432242163701707381641456787316013020821300240352421688388664313373068967764419634800904219968278955538247455768485069368253812449075199725379830815288251646745611988086752218984325435138006919671638714298746200957272067702665413143328559027596605172807412132406805056629912445343922059911203765666141798195801428720323882914368231222421799305800667819787164660510648962311688295738297571747458834373161406613106615629898543028148045925297759792670256073249881587708178348941446617047955140983454474402199456559141819951378598622156277913474621883099490640375857059870598516354053227309007624541756275111809915046903685716773301922704363938648363927945873366322479686425105467414223618709587329970132319892080970345363328647900745160108641639090619838457155371961788112620013178656811521246600427454150776848406122279343992759503833840146069275930650191442748978469969900278054668816376282344756392700962963496106667963774232972891267342198938144366095588915545921332955185575133831142213307199926756765692041770862976468755092601002634594212170463838371042204066561654927766674483368128831229179229950768064760251862638542465784919023213093980333525042911297811053882160653445952582701846497020603228151867629804759229464523870257057360794672895598592509899945870498620482587701667357889490289330171113945297064491612596068300645211390284669663975481740821550637741855355310359465981440594412875746338578735467215297851198411402884649523142111692255280324937921582747443756892779107985908241713800514217079555040316897780086821418318282031515501055811288918475995555665098418348358352265533096022298315466348785710859698324992885848795339479402324658702324511527463085766132373109458754402712053719866344962853144227458637973458617262958248197134513168966637585467624699956285200225448993531131837004046262964729692772755893135249341870295174114567863880441764081946198779610931646028181491197553793280843073846363772121996781206087568299500377683532390311636678994163565205699875810843034524348863106033012453292496925253263570588448631377935223966685141615661808882271707653362767587605123195973846993730322265535502043991231806894045827002998305737840588233749584209501769263344996916327414025419076385010643252546688325178990718734719586048218743783683428790065577196394577270471047225004935771631904077278688762769801887125512642704431568907073660692196090199697475526298039609831658983789222485363877581941597318068573253292504044022034369581952559844353971992851026555623835350784666393710977128074425350498045702521378692100244219067982911422677209493512827078375872029890077471924704185898280024762665765926107234844056291269664772562244638231242634329459405188323790166523618778058351037224035938802377986350174507843896619378437123775121344376308918260461808538263165249455796003778909383152756063513738269465798518555822270824195577656186010665216180009366129210408383913808947794903659889211851635118258341689907670621836985226553219275942007601579529629829329698668269163337006456290106830103397762204812239838066589787873070737489123764669791488838924062433483747970836934801963161494246091990354180808098440764924515633181348794822240219504731599366315996488297261645540702403622754628163301233022898592218305040496520065087797535255345099356454630768300441960048684990618338836414657346446768059472863391986962947699522245272960216533121184035436647582700584987119841419349096163414494307107327431492871785085542960158553550779491753636716299124327163704664914583385155390033035274330632890586399025315709767953074599773664852434530629331039327039154560572816933372510447130338535270743132252960364087561697444054566252007842153188024471582576717944443672237535774016234894726740094350982530678563212756095741961365433838720146524614681298437734980658675787965123309040801363015553082302480279312895914304309227778344735481527709713058351544736771201611924716961278094885111586027226488312975887387941778779249556870364618401732276112526018411453181859662155234432518068293027522537791447100906630349345400081374053685654091857686936070607732388113167414820147410347390775017857163599130121207389453666261930772284292947334415035942990155081225218887139452119471359958249362850138465340291904495884986858580286110454268874892608319090843900976031873953560534360278168319076565327982658940543527630214727941539306258938916077374893031841769269656321051850566888830372101974425618623393804553559043664737677126889323480575102040886224621519196926423483005479457017694533824248350202002266135895438813745065539335913225271852426405993513548135546890238009679943057486370261180491198370888839148270436238458230606573795353539103773384769727340062851566175365253712103997684331162909100598719711030257373199223071668156157231211474479234860500719997567047104967114372361583701755598217995302023885998609825095222942483676052564327600587878593538163092397371035415570786533451180661458703446495591610973031525044978953999842748307959068188264680473928756477884470612164451851808016917622472943304072593942531189790769223244272229495012816127585759889027239818201447967983853804370909319028913244941655723419881305767037586416138994434242242648771863670143179163698935730913490576739567330045205839368730571113663498262743975713958614667971388420492949953978973761936817445592724939768275353547975121824529257324217482771365188548079023383288082329168817088367323866714388285662894388574812954617023028807299991820946077457148967624669324940044922821511515186829050574200821027436095478195951085714703865624005915667093223503058892552093187865280832717094423724999176813797982896881265650377773622062247585686891091759476286543446035791372335452916585292703983116389836392304920553763222996643492749226296873999834427693363395824363444297361950352956697217986520873761730730926272894138557695819480552205981590273874932171205073875488794240795071505385874227637947160087943869225061369550569968293958556578315745821022009579842528708598177099181786516709726567196304090693115995129064620855420137652578721779531428088883286326243019729985451805618058451697887815954703297527396272923352234192427780565370162772816121217997811995778894548926442390467623940581087739474030314096543112277610953038498830425255212818297947654379518769007805869350165005832115075876392703930594537511384951942081163008209133693480617020255257566229742081363104094395670276420931331971016627361316169855469895536038289049525008256869889290605510278894858608764950694436831220899352949567575197658881738571099107889343523098181327241709049057810654179984283987726580244248731081218379593632711619961865279149450810551736214997740837010856669513451650771578859538097285663521573303581406372585044026993985790480798160140333747146274311671287059864001593243707216238176560468026013515093233252360213222770336609922844412772435336659926848965849363173020662745131694499640527666066669434548422314481214662285994365715842174762153355958821687915991261552288363572166738797793617074185458625480960358388444546351537882198468695521511115217086813592411228874165060608533828811315308584538120433067907891175197004667076512002842313143585598958751199181712798820512115967214014107715757753080368824228934009655176974392460085149174716888367059987197891647254512751087131224201000535061687253877189586277277655843169908969363496155900677454407582601617237885945869893392376952162141285231160868917442314977748164055527233198234571206393467366187292384883510795138149276958091227903283187376336915282568308687901781914794889060177918805963880881620912247423165961390818484554272679659076990147623414431282590705785985061223340549090189150040672660908137614353186072631849151730520651508036927152853151389076946009237245291887727245644012499234909226939665218720252359395837461787926849639724928725725642672783274869898823742977142534254135423460221021603197007423402938260086189355665735909722639583620792490344526595334233559235599995395128203228045645576175661217819488988296814347129283191337928657115521638260255168090488500140202155050477017987128627218480839766341195735801423439795956370042825890442543361783775265274188202210601322913863650581995260996297600131731332175563132239214809207266141373849644425944029022136911320544317405921925074816999759485279887980177571383777440448954927883067476875288215171174861680992082203228489045293712790419291094004891486751716103426814410009756012935123580855325651856425207457766581141011676453649401679387993401128404865175474024787964316290878348137937057399423275540871229687211229289913643541279979212614408628316548738408603357367046486291006569365250453809462051490358267535568212458896316074046362032627461351815233311917857084758164977690587463691806828580508411400683666791306277652290119783312173213865225655004106623506580736858103928330174006587962683207334570397698126454549193145262074946209800184280530919836642620732171778541444098292293691028115751984446086900504175255483363076670159297395602093349784796731124335407916404927664033153590208744607684266907030791812204865261607919716129945508248378773927964772826862658092888444822789375151347366204033927219608958148631628141801769532920492925871330571626780298146681018146997944661095694383599597997610034288902188509798469531497439550239885566758875223172085759858484665340792683575165237631303876224024971778911674973025442369981540749734624474939336060084750047618860433531834169276784213100979381299333127718756978145788297021584166213000488101960998371876505594148364491375193053936570264280526853605497536530298336272318970636398056035421717753452994025730929970574185799777022728306364154575021083869362676390914941508964534233705146496867780380165644783594077891166075892685637199898510782290166561216383290432773066446529074847794092518770967617925824647270625831151992477180689309342670821900616365729759890302743571190612993682208605021909247626151702225254215944310153432422843165005053592420948557562510364768952962483447792305058130108482147008992756826069655136334222855410881505878372061376348413839885340330717897194841507695774816619166702703872337316905647154404971696551741366762266195767158664979020388244106182839587108824265373041334414157407754731480687738478989708436312317959878982862288676573177553096421921294697283833728111292697676476461823091807917078257020680050019986404858228478622742747065288879350806778337192193817770129130485777816325725541486619946284478987235282012994675292555743901056005608038022658061265529953622748658473969985272252051543174738173865472418595298135295356550593999451682394195653599370431286529629130685061261466436167704355208427142913607028982994314185797243078792264178516518749885085728438484606048590961877288426085194577590003606103138354595087334097226036607562051783484739539651866860287000358317941896808143138110431781812843589407362477351713334737431703254278742895817302106624801472212499604739979518003512100686804966640557712783720222855745578931944520549046159672201602179318226181416303342726584458001409243376593140937875315680262467325422121008757138168087179850983130787965509827315522592798095272773286823064045920008596619924994755249865543234784309597858598960465540329901189924703858791681184009987388194386516487154253710985804755839229414224484761662468948961552091362028975236327507437835303738627527086274112526844073305370884514959127474641776786397763669506343545260739691139847415892648081604748888292180633580155258022676283509899306921326929629093602832593909137646595203407499483530890625288971018242832723999542098186064052034984943880719702251787957731617186585125372304762293721319280195742927948094111591916652962186048369727347819904856674842624549790443996857027952414178913011763509866589702465438447497384811457093076870758601643401121690267401551056401879684018037754025358733795732912485348997486487371301561579369703749126886299038156506268755433710972587379238857336571198814648821960528051006427964393320224793894209434247100479385042950483765793868093328190348132212998992324368570825713711599293812145274040304796457536598953753765347091467811247119554752924512299993484943161098559153352265235625081541660505791723660216307308648264216548636985658726098809020752236224285213001975396670022513789304831037668231204237463650443720475196956635244938272429155470826146530420843085855482635890251932483289953906355083147853305008056977837548565261675974143535277757184936847592577714544432436580947731733441528719005993895032932249392898688071889924535963349231833948831684633721625612486929885473233048728619419873766536088026512783076773181103934845766538960701250898895008018093434970914456709013723374955670331234968084794568050129545929778648190356974656415419721459853678112138378597053149164031024377421399843400517200826286869567744505532903229592960599659845552453475546314765166197149349830687855136182603716636468218421011492227196970664394324276104327147013249703810108185202830687750708237028829538636774423797698059588483205261294469659889476027060229576246667262643243346386380426369125524572272369449032610414355295626912178923580137004078479737819259220069303850702790139741078014213427204427779357206317616528089003210667895154433847893712695462803086475219972514504034643442989708921199902774322226127154742349444737142845530981874165411894217042523046711961782083288624669088555583479386714984256678662684067593042116173471274451368971209659507879554842513648828508473245182244994817918890148906431412506588003385517200424598737540336288483010275150763772143359533910468922480474120851709209392482816121401148839320849984659465248733576157819775189529679208569066977112285409583109456456880944645221914295493613552227685651165302911662341913148423865356106435985515314833008463574004333119149307884577935945221891170380232714570209713271166200152148437161958927671806018799561288273677691830495939786082905573359040238751220485454939592746025532474295896708906505038246434961113248582463066466518006009243250343062836922033528728251910278300111491467184158862534683459218693859282240356531789257337550068811071361772721042750480928886066500803573904229450082338469422278019773994856644535820009164088490737492948163523879123101999276930031600221390871468270035402570814591991117927918001293535137803430115817977767826605225825773165529176019810992384419676646823681457261773627846275721923159705217771607036192375901298032240741874311213876739939673802807802127991246567677891005672215864116285488093161690216263100724580072763581710484025710572833216119506010435680942503707031062163986994876496831040514735622422926123958728593225461692812165818333737891153557817012813987038194764889519140392857856667628234590219611347536317776402183459444716213823913839551347554416148020217939538966580507067160607626420157770333877927651217352960987650830967577315535898943090218930381759584488023022099327216142058101804468439697227969995152241558361784482319125101965050391464467693197096928390303922171623654227724931053919415964426272887874025688351780240907800270585444451083451781560676882999953503565567147132763706438716714740110890511505262488028185275081288581347723514215903242907230122854596391074443013868570938465527935662651503993181367154609398912798882113615284583533266321946613500137407907722264067254543381314914056024296285307731783007766255190001890674754615308854677733786054150148579900916511616275916083299083924509094979619621068909304446624146837101213134962906466282724981043588403173374585972995539929551272032093196667117880603069205260390567136890047643955579856620363217736295576985839251722743965545206855080038176983132599282311028482262993376819395042481940312254075831587584231027356227140236808702912418873129513041599950675687827565554901854312868757447965786517884334635501609894433070831565320921403429563369967785573561100278722223171846905722557571651822505390672686360620626385197535946238005680670692615268938388360026508496977958022202585460209961441183283289337666787509641162419985619143871095180320447167300762060546995778924809895379596166375980398822872929658181575550579154280772952086310817492621433586535560017139826495832437830670737478392019901010909848962907587354144785041005335691668971200827278972828053393664926430261030794148596776920448167380923272946306797550060969185092686615951828464975111774209678279132161519768441487057934872279799684008584432940408003263968889531213091288254681407754373581859818489445050730731477787733960733615237094091407110359909653299222459263209524699195632772718434767824592366520044034801557634902960375858378660884782775177372692864249269552154372058175786516217846925069492795256970984036141266477189106880594513332277340852525755260455703708585771073635126486645413288614591684721913861939045265563544273067873870105273629899159346097671569346465485820206166304609676834701038493665996996503180373059110222031307156593075298284437306021932395369806233811148176142296518419918381019133513370970919339857865801300754689078179305461677982503138590703669519066105270688526366796418284457807657301894371616280984336962775169625135730175232085562603911695714408974349038650143835540826388039318550290289449028755544414191675994771038449975009775880672778031487152722003842986393477820607381624286338124615180535994483373150374792343884254036505319206504066194407165578021032010781883539978125150523086460196158610504415638438221563613914792160041721285742360510643154749687664278299120425874132936665911672964933382259893145846963024276481594617763502043132989360911115118859491698922510626485024044537735233584345542387706338689602069894325073104219421447985618554268170541140676514008648845216338573634524043441135573613786975397381822357763573299017578369071999113948491185326980236738607189920170113362142126526187285152882476636239579048272334945839378771503789271282290744709909632640422485970847949238201468752110029115067197842378098771313675740326943618209558977567929735458557000292817349400368711147910748567910751138459033418897131419343537002049237070840527379239100017484676360329239764254099530922524984121076700287103339378098525484421198912417126003992598061421201537558627080524774769554117520690730429147952393227741899860743429133564541915570259478729270444963536023801284085426864275458434166862201304093410095902213009224491287345244973454078777404060039007312323960983410364824545075063969563240051821030294691782009353978194433247854809428577979002471935334366099383176662589887227960175321537806436696359397295112548132476059839414050844526023967787690256683058007474681162716823179435704872661349279972686887738518809364362546551195773355693647029416608681018849697682067832645886439536493402634070280312307909144660577875843641615379507565678024060412747003920106484314821620713717935633622137497469295046688115546414653050966079107341458706102423132525546370105654777730110318505008661459839068629013477593919257912267907550010039542849266025727143097209414851659155528037017887513674492776916674573680131020439136322449183759176834143236127720675055951972015656679512289973657689490343738307838181507070344877773167517461885977676113490160837941097644364362182803053769531922747855655620608871331498121476432396676948092153873147944080400977430495554355429139521207993071409722876692497360967851686721284471882834513683523622645218986232750818391104625723420387544771684876082878215800824918181904042377189406395430071181985386544782636963174256352109665904045223527596139077057330591098680184700615077984092215440749283140946694015151920303026534558307120266837050726526142982231035804800085126495024730771198558159746939752034606824181846625740644825603051416788693451106186349265322567189860506335443120029565315546976142131836414249449268295757371690778444475527474200559743260346669763175749592214672330548342753334209021691920028086713381815176513467272467856018087280698579306251639181590073401917812633772062943721758434843473856737645435493676445202105519641320419090347510908955901073392685076899281876733659018328599607700421961161531989230866884156492873223939193368775863195753882828688024322292857490628346988003180097821127834644736994306858927445935146033155405216132391804960285110942009200681086096711371699016311249577733562888147577675133797500102148284243497131448221555694482442512965173100528293300075968803202697147143055799727270240238455669320030933615340013463882265128584960494337413651362017590955007688725723790839967787710432783236182180792886445129857047229459188763901774101621549252944340446633455379603581525908448271650471421064949433905640296712039578893652085873568638485640382340124732647015756828562676314894909648637087803773653705622863242274919953296809953760117657356070668896233406547363462875301740013828933569656414197624427388065320055935719525992941619182500885594298049356256234757638767532502617681051029437894828003818190940163338536218482447785752111419020011572215489101412657462340940976047805902469291522376920702150430865998497690772584651200546230892673044230839909852836179808748821651750139476883921959619738352190253782921842740026799498683550477986708874349348778842634911357741737937896380326641216608786401510266935385392911758675398207045454009915548099405559477163022782682288199669119920777276856900425644534246615945519124698494091797131276708121635587973755054695396020199289168686901316782253269982831188117652051713142403031036190770344860068576907125682991229228904165141843541221518927092619118278907203864729890283124496371672262260794705890773015157923706650537735573678542974961412832398107256780544778455033380258229990061432900656745811313837062093345138272885095100589428436400934752582615348154934333439232027840190634061039882207240085957145478563631442770935781864687003138311506032023901381936738365823110631942351137522012593022164650677239536740108346072473606001873233595725967425779257787534746484743855833667263305797518062794817415455357663245562199067715436542876276921186539763055416677273711847125568195374298789061231977976823813223103609987110744116377824534155593069465287064514371451825548170938674588622599719320022012567947708034575534068559395647116603949755093689074091411408198674034297308977593195477584940320283592528368682656012853793415929581760342834661928132736009861098620532510203036543891476695814561258705285147657904483312632612612754759673706139294643446550239856349906904417168129779315604542447811815168432399733102490408612023203526259945513809199439424226442073066994223020787573721134539784091892952718836515115772843356507283396326672727736552712778351096064883491611165972964770728339788176207106423696535857600017861334574247471646754795605576043159921159961710531000078931203129165921181455977363212813100884599685965154799159673348206925725869446510484090160725430379479374399249481703540849294827167393538793091891491059402738825756344267402920436129719690035532027807460129970151677645661660866206509831490651839908134036578923307774275792888178539747842534562159485168992563154166538046086193757661011592827191626549845992844138091790934502894462226987460623691249102226763569846247298755530512280773060382723147672733392369714731827465082357064936458574165065275280336575885001867983022333615307485677701896215223777280786629709971384601245641139335352311443941363113641250630317057546386716492191778181887278049986514296236920328975213204416459482311165156807093601823257471961512839811824500285735941136689936300286519708643496801583773789607073405017110292219099423567875985299106421979425288807159826854389736510199569855371343563448444999480662387115598326800091391292305213453187109334060548528805280234800919819520640837014652980587534088277578241971909668450925727354229159733942096677216226750328380168367012683270877181974471134164740423336433241784557514291774795539732630184782237875110334678428215747719977187249078845692878559149788072152762167774878393725946676974662836463643246368700888911696030640080133212255440332599055107596013012178272167350908708303678280695356187982432497585431583702455110382229552692830876878972476151756345071093226704875195835438932672685206251065234864298968178512803462571867365773408403031725441720605626132893067442822707278189695130427136933867325308350435236226806647236203653595515220046108685419560150098518077424913752042903188373907688145110633194594319680160342383142947011779073399518805186322493633037374289876663955730049123115425474456357512282179603149319217553621559751735417714962705786666091660401294206413320560198798864791910280825723733440978065500046760846590772132776204853442887306410752163580085860428338172699554284407360068699802546346601446586505870179666280113750481951274647551344109412975444005173636150532331956140276336050437148499355009793396575569347283580789327015176166870716785052151578242211819772305961027180221137605577565082245107339406234044035224592324671329729247295905966076584916776797581754555006292897094580711698462483336318504950541360324460371225230028403664432705026829291212980132587048554518491669371756117069315752950026118072998045738703280334464224076245657530910611773426843639747423842078249339613243588785114332214396801601355506695004915950071295240971484183205240547130826660002894069773746747923577832795676866182218311645361529810432367396521099012861667976551304833667095581981457301609573195278688976179497386647311258136873319825626672291555593417622508927887021519155223172012576187946221168196312511260151287866593308399728702095894444254838578134034674752957098479834867910095293931770677795952829355869338389284017888312658340182074131130590123178754931326003864743921842024311425027179344498491095382698041213378063957306455949852912075479453433788218603678168691624640186017609895080057570400076136175837268692788894012793708791687313210417674927481469886838669337429894529000953226206234395570903650053470220968367206995599192069623103968348888552467906866171002505227356319316229164801533836344066693306119163065233222096771750507665265069289452671046635962913975704179519954076385926914352972739265258583492260012812105943415460904908966684483534794767401840916934408211214375759918449789358879811999883781043954505822092654781530241924342875496615298727520625124216456524144337699821205757739769792554529792755483110222274978041167232906505936407013268381169371178617093653361146617919588958163800858582272731463988125074318859306285404772521973255201033150211221795206029022615081484279871608877156830488946266281108751657193158034837913804756099811927792581938160134638205676157919476888581119779465737313714128969404258586426084613567803638095903049414360129765110869953275569821200441586680428513514859462800945026802827890783661031331939815700532357737098284196261175463127764001792556633688684101466257872644875401760933624924421055652227728432708656381452589398940952862994491263898515026399689252807897143730527117034828786325493113514685667437455026380793312338909875819974463835469828884088679583614785720041081781952672736307937019731611080355133075434263197583266231258734404718492753785555056597443476414671717493416231399668410840728836912399290368176248978338423049240869160493335857208495234157463899959025559298464841685309209322394500998426093536507129610382939141783840596736013176901421922944688247703433099803826633309107613579535670316203201565299426338363899170315529671011571713866053811109876498091422532212118854978583754526735435970669119075827734271657083110558815782026577190557165552299172259251994171182071274716352202241669326272042945850076026751557223645002535798389514403065670876896402519843620476736694762472132220764893531852981348305661572610046746160902178203680927898035844346283316152968001442943834348132514944478364699710943006278717519015830549752682497066819670842400415329314267072439109192690166027012275499726259006695890636410201968031505214184000146128131514317046292893612604513992556365990870351118221700920487868341381558368600010221393171629381751614814220454397661283284895487924514892039153468735641277938028229456188264700367261381007292227892438341432891219576158468258895322444912623721043099592174856936003930728755977643592782572195851732892032893736496956548100152094067707584331961080191915269703594497282054240992177479488551018925796738321907339554384821902139135461039572875641470097962048016790318232711296169188370558652942320282119677752110304278242853230757658575255018038727723119515407308430071004209223183789525106095101467448023077841433296539691174855263749250181365167016598131693419695168209638648809219300276492890878559065782232219644004424438455034444715027147275661532604984379964910463732987773094665524160817455277311884016608169216947235615459456398424743513107356211516122546967311337547203210666390573959454583578898111861783242612382583876294836641978436934559414738874569545551068795338941134987989905995433288256519931844892339119891024220727325033047804434824826316795383188123453643203439769410676342050740277620992504416285987380085420633094044908408746295011804387681995636809774125121478256414581096054639454835383121207411339670965757611709217015691940467030052788338501196068812854369142591051264293797635963804426144669369037414470240987079006092865914566277473707054184700141260666367772569706618539982818395183869351473703021708291438668349189557395711468822489438347680151473178420884309080146588587691877121656412048383469507991060788242585359629689116479951397419027253785046319721607575329924767020136194879910736309856152434702774832874087074621397897509229894756287573114912318191927777755568430213796436249500938508557513062449461612831580630849859420588045787040787855152897193604562826448046872045661728809314651670287522832046570474968458021119817762970740911594207914930237818584131232075582365998092652535242347569867842897103121933780596048969821907502513044312269983151564509579791438152495573210358535079662606433447339812077484469864535213439429913957840118814590167260946888388559234870550321014046729536290677008022059508738291808526551177563186735954637459158453633913938017889260191260551034593507579675339839908298648224232131651780114704795334009540868034207956954164131131355056661179243508226385148651928029583710946261669673429528882096959271443133827613210076214978556634536975988463765208106403928386591435882971049907242414611899671171034678663061696905037315431533850414414444385775192812120821025195260902569857127829193814030142062026106833503984994583562211591557835607957635152996106040515482733366176773834064968564492524233279826420098142189432917344357478668103163025384420765567221901005928073090900785804491918450038295602919153834489079644615711200182221734275215058464277513745146778852349868183025136923826962951770217726925287009440359405779341129150614494752588236390414861857341418332902201296878361591765239906398909915711595593556764590330768164144198451299418609107155261732194702953592568208311089548174887328915947608745948170988883101900650882042221866882291063273703608544710747108048925473308970523075383333841511089730763020327359057898804821078069308638053618855796457610576230188446337244696115979696999324766350840466059203443217144257127739230341150425057086304957251198767701938663709206456108979381542243977383360286222882364797587617414882777009624895101823977141256930222006313592519224889381937361905540356157700846532975265555030499385257312854038246149598793270565585319693247835218762828277482736939480659615648919253477198405538748044276690925968559560207278983002611552092779104282266310104541888652703531667472929070856425441722233091051635608820861099048206278697010369486558916453992191183454022803310421827484105905671505860915366692325634029886335184644329520077686430874196752809376432643266722231122165568836798264617847737996240300491578030602042026156155069427447077514156996126979918891120200185202575317247316673427630162485781032889255889572865309670322755305836553346251461896995776292521145321211017390565038869497276736093836107601616001403227460960194449995949795605845055324658672681551614099258835596273852070776371529768109106483479807161440872778087897265351249040624816604721977283038278748934663245172861192548199464836384149320489628695983060687335669636905893657100360753718322809004650033325494518954530499043221201885163642176733533804936988983510792427388234011167822043692732678971762890529007227939134913007336213604600047168891662834829164515955753785392706145269651150282686618277589598981226616078817517242670127940038297245809088639805812006846919124730479624333502820499429062986893797346170335498196955459394349734711947573797570756098341031804969216510600097018904790593759736181131064977691545235579294499278504653265792607308076713457658650296351930093238621072253387688923757122104778355461875031800747267981053261728555760862820787061518581086077233021868367967161730079398557600389969283786555830219981198326975370734239039025517095379099817774513735435524107783011377151069083549357244965201638856963938283311508828361850112035121926359054620874009134200329088678845733586103227626548085556138270899775005539073388865438134074679823285836220077430239807912424635094936623474476378994545020494658651051482244184871406924733935046241655857344817439928191382309057210848822359262059956889966914837691932184875528823310456884269718079068972064120112589483964159531559105140400061348636898033004100779137187362290318097750809568592440434365421699295725172841905944432741337339542963032237830731915153007085422644453318865773407527733093008153017565103875985611326649674277794041255264544702666169092836314406466664459024249868970930424613753180747376554494572218962554311473668333665486112619490451730293575567671982841295744805857914710238263735442527074154727467592067538013354718424340586628927623905870315036910695787922156195296617359425966960878194005700448519761498080113135796865292992573072660805131631384337508662018267050266161705174896958074541393053660564289783735831074208257181576256422573948855865419424553332708360216799604770831957723489946130329886724013738156181464174199335828881258518510035734523806900841088516703848225975733584537598243322733712426374790717382658724353832175905484140391613490764122258542137412492845023443577827562930924048292178832591821586839156375781993360781328798232464411953266154766873379674218282149591116414822032069180732687496656476220170978358792279100589008945287152947382509345071395759066563691858736199816680033033088359427045476912956386755166413536854664683872819415244932380321354227705612736377686330015465533121777030610994491781628759414966208217496168914581409401005188413736831797758691611173769981833475481933436438972304668316198940913193443767128330058462681486605460738882948403538739755319023161358890333803306673789641814701927990271976746101468746788692272031023216376036787451986914002587910800253545038949165118517718793899608314465164053308952808759362152833639534821028788919348898168471212364418348364469295878263271121716758668171530750386015749677745105188095791326279231444623449616542104834342739166665110354440051346213915530465150062607396490204446652024145346464351870226723819153119898806885013107679665535004103832541837286888765091019861647004187306830145240647261275790260586935594517410365560304570561382211533167019903303580723907292310612183461687990951081556409036260237779306012512703657818286369814572667049875488700750775458963467601983844755849404694784120578224104579901330391122006375414372800995483794490794386956555283954356300721451673256848836695656404216150711422936024490078362808257246007930494528685988819782780764517316175134160522087172796471282934731881814855753521504253265580544692413102820812497463901901301062084240474026973379393108483833785818250802672190491254239449408655586985570899283532557472520440893183357269410457946386634958242401529996696162957609470580926926918338536418957917984372519346888515010351931312330069735678832016416096093755997819051342788468950443813923589490013075706751073821788499694746361042456581805423135813651343250405811678350267703010184174139886761463476714141785425657491320512482012269068963579602701632128916591040073832308779864622499026103916519240417984792961290144188489857821252350021953825051404344773960554675933831741409409941026540976052370066982614340207495021136873271644112467345648637864371930932293339285469738574843505737814993622669053137317583943754324037641979100502844852477475865285215942869463860792972246228054286442102948259781551236514883928542010504338490701337679044958206546123731417017269199840502869100532777434957463752786313177400309465261961693655266913786341328578116863469864459688246374375362062032432976764951394978154477490117068607341379875247449665829779007280989500035329500810354615581616136530540677826294036955681048193952256242042329043130353438127318842292112184973384880802934891859296062199180898525587588950455640749175040544817013350713897020366435117030341778455662861715726183087575986405297882583896937461618343637565112206849274386106885440931176778766043957868848464803460715431953892091876301454286285192122931993920952960301355835549529195856524260922530085967563671779017008445713911443138431005915768167509458109710469660009262502699001509699186995946659024728410354837882332221672081793807420119043394047742592074193187737496804619330905554892892977082229576320054003727173883649474312089854339235021092791580295737012226070827460864117478136412078843029482600655281456503267702735722247421083219014084499376971673989664208571484559739930202552013752279196168476881872874581544323790611242982200483341596796125848120524938120192348900099121292016833089598410871885584867711645365321824536554699631802003267767999246836827715429643904509333017333020162178192863661571711599405670895138983453399618639397063859452821069490663407506104270913098616730001590961576730250166828842615273237502663208448639214905217807054276264159875139394023308809341319504426906535261303398496284398414283327961691413355027672201608992639026742587562095391936012050464928617217777606559627537421682221467909588005674143472515860121785678661283968786665444098373884661545946131389613943554484554340388733992985287836342748102537524920611526458306235417288550232028622782482072584844405508755132706167527015098261856366001323253481771658029036818180099951090080719153026385105848092583246945489897239965464123216400921426819190070939622211864603324121491191668362594440769623558841439278057536439205307058465743162910351785528258817796420214777481568382342556500199907075304295476539021115609693922804101624749073533170994591637429204154588882515333953945806104743933266201557832073768056279124512390398725507937067663151083180530719574793923702500254653639710941697921294430888523204264210517075880223270059117369864908147999361347472776035905226977040121685766187499980220676093174830573448413086013884473148697050064680919402569710768363155532425516835452800654489293873573567649486016828597541095652272038487351212445031153162771217105836965650096187293180336991702001035264685349250743284759745367204742057035945133751104383959209819042702130777130644876878954443014307066720158219070280034958635150992824576704103495597465695943371094604116807402983610303589240237535332790608432643138680594302916054887481576203228627009276768849573638754433846087369096283710114765283696967883610649717552499232054098098299546742579177333738332208677486795537026945042195115597244350742340809133773880659133752583545800378356335614295899622208638868950300632379946591828694517752755052414114930264497792514631711951329016946678868573871430761511506023155864191689957642981172790596427207294498150247518725837861210901518743401988100699181899482383363837767973923937175802730203531434381032770044741585322027477659093928362541988355312071760548423435339263600747742211106144756226581638905803061512294579020578125548201732071662663605686608222385162581350483709472117531634370239757659808906083031296973759963471054577786909167542695963462511552767453884311466885887305040073444604326480050029505149408644982831292774399159954006878236069502982401281283707507367922389283595339448345797580597742844221285965476107857332295572440994308353674943923382884866220315426553444945604240095737005319381115558302771753328425797445324260534722324051709765398847335785570624202007542940996638747038605439038581484587148780460608386508945332228903050567729758295373617510796579188124418329079273278516485966784167247646548263376189338823050029685606317215064352067131067931811666321630627178134780697205040629617328699500635583391368291020578470357353182408475368205644948652997173410503535573461935035925037330594670409294688468829370027268738988850093950286655346610611772581507204269583198270241295117652979838742662535557285277554802321863911984903844104515440418662772743778782648385294391457091033225232946588026771192833977167938819672312127811517379207836849011520028237375959365617350589532496791138816214275958210219030910934916555101452774989671758416416793212159750849869158854892208561611783228659575590646254647381649976652193950392950627687664135196903714619889911687653104680343824660463079390197056818799849381530648425135831388593589232089659420083659242308462758601527297968945475960070101936051913873696705865901738010809055437167506365954351746535523008356953584806235831378625099007339832954623958473533053034455418993538418029439733034920466514243519485986413489343610208091029720888188877697277289284043174338318217615668415499336633126440490240410152971872653012535251478049754464726591139442309125328920790972135830981777982817814944122568869820416676461395341297652640262967212253918003016628124229519805006475016146285124954396570511778994862796139448409336175457158189975560370308027853794303250501363950473319737366294112156481700750856044480631513706355258429176618671222930199064630305306046148700450535892686238250317049729898795772933423546198804963339137772701814550091496703362308412438540998384370581248102025756550647998355130412398796548969188850921616031766492760214080375505707638989460592393302340756550571305291367057725316687512490892062738843845757813502754789113567071435152728962172402323691107565995441802718843698073864985130154795481472693488272675018915108235863739817013279909291817950645469892515256436772048644176935382070440721618533687109295701921369820655176920567990302162716205193652803938759392517410154336509830325524603012778087188255683161133211800967129509504060932496255276100692417548974012773270252217139053915950155661036497877769681010577645595217004282836956029593500670445650515831933073017656569685299952610166039106865499892712973299402365647757330360063081479913745740739924113235917123136257314732115741610981993246798117565005159827404354629960866773917177073482210414351346202345495672259319091786791153870069040307568506293505708782294716709156200908309704555688862404750479965168109042223082388893209146749128638346059408280333786591319083940106829794861475909880165536520298725098240407196737665662349066768124668947794637112967575519232106643437408700010369948545985281035215472046036844229105199670147878678309267139142522348161962290383266839286605822512173748031137869735604474044070259528198395232037983290044665980413938412547428805211142703871391563919898411771608309338295272975876222414476888520988664612373500108421198526862886343050006141633346007129827204743261253471952119118126125930262187099254412227270818129460606878887877328619617533706627880370870222581665330993280161147670480130065698527719587294572706847748055303818103470542503300210157551329788648111911296169072524155002877321489048129450868655304786567587839909380908331605880004058472298562663020588539031193777343481313049246366468159755836086963502537860730780283080027822180581188897019781526872917299973245635669647233879896426431890623664673987783493282487137612531061113306300997942704422196661124103777299463588104069765954260152063373741995105558039399994013563276388936691162057951314525727112662436334229901002546890937650478390422955050942598715007579690953905086725517261848636642771553604812557444314198154577007585352415153264888804614006903818687072075876848242859402024925641495468680654630298157112852853342952363123372791485836758199810746085587803749879224624875516874487067729596626709887404245564829729396871358456123127916471320788062877085669419465130191205330560320788777896441515774423953797932837839398737015861043598162114231820737031909016171861098497671318337843739206288963423087093022981264622627196327959078225639761473096157419976317735092105126961457049899583779218070998658728824833984809647404556137967457411763600553104373634915601013503537109906859167657191139634938882777514660453754794036917702064142715356143737055008377314872107989808107674600104896087076935722190109739897903634815121137456408777627996393382438243417292371899197321649264655222792935744812474605908266215666918376700532667217132116699558265785900275533433162140987895244924067203808304034068283315489582641907121427135787265023540339521411494397118160340188667324831555167867353282375998382199572520643703918901785357658350476450296123492773916517894754401097496330464922938083098897273255184672308460217529292883778807769373906694488829532738230480191824236117408542533119147931548969592361162173613489609775546257602171445052283884719960091603063710321112368028383668726291133229116700707830319560488715437200574294492775586804932123319370949982988979670232152993437698279637773106815279919738189739835620705597326488722361033011402012887728755334415974041854932396388628094331054928155790519489597621498435808172775960068957391063531112569547440583265278294777092339799871933829462705538448541860334462383093641719979685544558200674693775350661607908186217405984750455371833580544345089567167232480006281471542994459004411657271304042780647924787727819476075884965431458675224720815151791449733935082380995494334634926460072219198962958450796510720100602635533955496129453894113376188701505238180624914944707273194844938086088861281292914139518376036978708016526099451775078996324381967533168821388950356499308919431399822647993805362871351402626560347166878141327355914820764919226734392014458839645204329529016019201214529513355566078274372379711481674182059411497058280716229915097787042490681138675852508768385875411793387076996356739866058123115622861065602045799568187674720787838444836699977863461138068494958413777764466151567526975088654908087814781468209376480563869881520693453394136102036998798255546053644067954328148630987648262676942011706553996419152373345125321821772171378341634878473084268306390414460377030790110279619745135491970316681653146327039363186451701974586536213900181030477897864645376802219529897436190351446763240118913438276406785286368172351601604845192845763053534185041817369408418855942854094364069487472893499498387008463399838839654828714959440603919788468704524438729085113732948928432336422232831382997503524254271478194298391207895010911646909239159962602936737610886319525477902068394191925820593612042846056021195120168931584529357767047962095233581982717065623719085335372834847534525798398547303460837447530796296024777732340226976068538821768417080168303794630516832234451567552229170515345143426819110026328353193737575886855579924782462325748112494401999912740274429257614751896814622642659880995098791934450994922372492933786614655144606173950271432279932978487584483319293644695872167282537237886844571539660566415310711951642092171341693159415723786230562947512763767230819715256057602348267843840156164249987836403212716645330205786699191423008591879323764028872864656097146112894579634855860313794514018114574053256485350559525014327379679041788169694813911643478909015674160787462444767724964163407464144016332458480363211387867371374715379358962001268807963942493210628179588121196471247240786446178036340394593354937982427928992114397040264213050246848032019244598820050818775164902645092700333464838323817492844390738145348621810405858437077422638671786600805594797391113288709177486634536774856095771603509232375403030684678817982104214743143725113129274441740976833774373593081710787661531993990652361084248978954073316751877229627430843000599814932694471956665656149695364615843486124294087216462770404522362705891357471193652885004808172109365289155032982798674512301795201747205914974705163801966089929053421279260735482651796621574414444940723891717596280196723435228401496680846558702644525412331652745784588545901452819703721185028010089712575528916867059233943247136813020525800373004451892154554396979867726026063665817179342233014329794839751069742432608174779293292394554661400307078087970424116123110928130100014746095291072041147058893570902655283731572856699951119769402986062640527360622172560105985835667115033250575949067775626827840742925523135555330643525781466300697571215527687551755694999072921546738036908096356146554869220087484659727384375579113645540994392534831896122905259877902166673026380751010088930852078414329035159281606944338536082227306608308901131698590302806540231628862320732917532841945321875942059097192474618074608463515805539217777786858177131809006852717581817571426195467401945822095333193580936474111265995341272719468526781652946102124785623862744844473793385193774489662530099762337522315920254865560605937103474385417812395822871046002206953324292444824995445634987002863024597968802214336033467453043845393514172408951811508946942016197250751709907681061395136692412113297485995923462662885718786897518731503827778619521462693182843243121222305870168044269510112732298638109581386922428117527273952462727767755021808820216027519996592381365934937588394850246554065796176542497245700133992291971122738200859208459451950485138855715151914945493517696325301928569444722193887508725836939129146758095758079485362736173371344390846692148864939826747759952600882588216641942626193016910628234373684739067009091812765439197027063868635063407710917772169457087151991495736809219626520243174067447398317821488947354931245093001369191450326810420265210927679452546614130979409164538154173664798613366633341180907766752089388494789558497218789342214439374716295799216248097305616026031360856610440033591230384785802307412801996574875280418429408042146714280492464864716155347344800739849881771810943473837012272225529091261265912321877102109358861369603710471410181173899708458838264720160474757692430338822880040134558404283177564527615240997469369691523545346789503898535250363191200980696033542675112730395592763115652210812237625001787410454068320211376682674720388418529868035531098787838975627200676423954176376480970922883129077194757186714136465986528241304612614834061822760008350705017155782656607523312228905142522240695898570940787309726536437931935946076076448344617366419104011159568547579017557847659402761838631455896466089016814208122472651134239255857365439278260973565369224201294402661821886954172247006959350454909709420518669006761689465337081368223166778368073778732756766680753158359111964185375317344180700605506801996491973190998286182248394885903491723450805287999817041370314001238440334969105226115553427432081013587438291680931060610595881617977290747956564717363661543570469923131319563264190971343005934047331151904248188957841770948144333129242823258725557839732685125266263659501885074316824377321630979159537123742112519514637831303991221163984647897669930045366035543814152865075930664858048641232774083941402415302828426314982196553955868027768782466252967895887520246584393099581781828936510222339920558270135933680206111391722568120909408394390182917188642522085372889025345879843706433743987149986239408552398417554307229582122509830602634449054774432148467471267513489395884544550636462892956545634672545957749934629641662246010847675575804964860638666894734557460693368315603285846111980272255818909510992530355620425747406762243812720440129413472303498470007614701000729922713643610078218149374607401162693254190297178015984487144831951930416647192440152809046310253753106758965938912207820180655383590310704187385639982673743993289335979057616303243561477403999260348961379789563297535162496564276463739445406219237608078591366328838200292938221008221795616077723670872115628779660167515629317147595592853915539768579160944138985124176833955157202249251681275198847409398704413861679548861224244603287354532624550445467977576218006169305221887648101379640001759083124529730445570663889464909067653071358480308063472482239598726874592291427404960372281724540306479942900321993888509483763622082307511202899423760598515745831184283176512347687611982757693241608038529173363959302219245172156874455449744910361926395169637471640173461185512661216957915139231201531638030927748955765317496644047678927521604817339633100852390251639663376626079342911920411225065372617787559647900137459779862323353968877945768717799796021809552915812331885383998313614064653346095356894882448148337698707853771824478666198050090850937905021863532820748765808766634070380026770013958763556617585887460956151507878644374894259555645348749049975288318589058031552659615398755985199450742136697182319822279907038371656449075265377678416130204469767531810257290496359810242963433407586930535325038828297008064482630778601506704264021011792839802372791691538585993339946090205690942913309789815803996731691374711917085444150206211612845792859724715351273549083880180860193717631873747209827886835596112623217587514073603711587613389437423907470606310206073955459925323082240438506450937366421687404711907223496281258914576269314178583085345786809358257596775158110201425567101916501342866068891461789865913381916896254876100527175537924697794959830015158820956064359447956872652471478300021050800765919050691368710660275739368196238746369603653561804487923367119636109644359036778038697569870006612860090897276378417068101102387832750955604986343782504072939871101241906268118475887177821957566871639109628561311485131026298801844548398356334636985896160163883245164383377399251756153821419253830928472757417935315797406077248985434243843824535587738806436843643496204622085681770842969823440204711913618136822156773120335316194541054529891554968447540059589205305702708123626437709634711950428113633878047429414010662718717664614340099542067035561333627325344883194252235266460975178716762252833328171342419911292259616541391854675874697896062910456096076086985785164005078836189331289263035967313579881132281547013497032137291056911886352743379874640009871908491981081775842489637713149006108710255073636447990823086322085169291078110582245807009800937930345942480349069554973999376414714329248518157485293857114229214980903177862809058471938051564389672315091378915303484719259995802800507999798976826316418067099908329962095757993557916740696644511505492599948341498979513543764436150738784959702373119932405267647245173982593364879155216161986655388041165056716373737408724703754379390366176951929572954606131776184606475029318018756555550339048825501467112975249296042500446936578549707880489043773478609994261212122469120034657283370608684076991732461069789491066465431950688895852069719142684414671302567969099179081618433439538215763593231735900604760183740282713879123119306652173563825529744418554615837618732156815755359431025668465592383202475883592559515663014483387334680287725411517236518064391845426032900622827800379385086868618846005908371058691649444345456506686833171446546944894234919585204818781785818641866526282451157860070003467779678115281088734730703407380916212062310379070685826526388050989600594571511909779878154619856839402245427437197690482482897688680402624325785040784604464840418453510051701878692361984444961221520629066920491375160872977322541999104281809722624031985721914739675013938029671339053741418913118261487834379693878347071913566912805633601675653068317163402119461812021889984782349581541666824075773197657319003295687415801491282232936099288078553289242052876050620118262511970663627950806597574213262698793409269264288846955659575059623251309845360315323064457925556660557395497349189752078847644019522150933774182611058780277663065753233392404157939012000533307466897704907189553581845106733998676146864217604731340745596266437696768921926790886763787097574585620779510385568378107373048601434832490148292576697509893278271797550873135985365373068660169681651323898321572822661747677097822690467590504946591374138633673863954934176019108093843335248846770965486810407098640575008347791903267116299144157645588639782760004038482874284244386149354651588671573127192176204817385775783219410156468123330827428895051934995772965690178031258271285987081981802001864264052940863759404138818547208748879074383575801022157053751210787053560293121170315160243096313190265407535478268782512305209739209265874610390927533003868550558209391899466947087271289465953701137728783515543084507660418712543551006786270413748291583395745006019534003602156436243888183189234002639092448592681505503347261942389987497669269600012096553757823906210570059197842077050573104785683800693154790852017559441731559734709183658104342709163409422406068257125558550117296310420098566701507385413876286083484410903979949006310768652596262877469694977071632888268782876500572760060399395274868370068115168419542379481144063048116267469143274130219182027637224888886681075091827765989339388568766382491418311780019544408421962707025067083385235636514201629285555597004867282590232098766651335543822476993781097973767224045392016265006255971905600219911749370266263671757771922665071459650725228634641843432317107551085580466621720093080282515943627531830293534627884413315275235159487655988799504617033885609505488430528673728617376999619752966347644379233406614027408372299695151031262113108894899546058890545976406074492027642444934241766631345970595584835524922144526717790972136761079437801630818067919995112142384230488657845937227450677869242055546095839385512881727623676115977821772219678987500130135875735087392879013989402749898134307206843798075458451169245996995237223319161937104505824383310405902495001090418034019707788459213873346939370408824226735342408403002406703294622699399547302683397404743615418092749528400911436367890945352704211868751690397363536795173548055241543480420844085372147835584425478301365861106240221814614292417857407679950819707061179575612760678875441316102702634382172000974073015834421697899813829394941696731693412281143216360304967927461324755791555796940213740141210149416696398245265960406349282064535046476367526500141260748891877174281474403099123270480539878920439587635814395581650317062585490707855858524765969809443777294308590867934248108350086699035929209839511457216353259777703601112957141123648801678658625969934605439498033403370857150637097214660636035379224182831982577004609235948000760364762098204801701596798816117493068599171017136858325714206394466288114694612348802202827466552440797936208523255817966601822701655492991914177645164743112944844260248778147840967215091080823985714954525587975727466251027772925519048729075179647052492881803361545405264438094324523882509102240937056951560795446523023867429727272111152337762764444077656254443833125017241457853671885865739963122418132765151467670140685078733292588399790721623369538194283216604203010417999461940402596388192568506535981585251820983250293754688556505553397756265244514784729869557079686760558472638783588244689447260063574277971150231840594905974763100779843045950657175266521024124657826888000994374731141287585465042023627946348582933804954775847023333778750304304909295945164458139971286032334134858152616178950303101764851290318278155107204461600893467310096625365823767336800081633651581316878081911698529964130715229808992685141188187840183577543171037049748760776158756141932007768745140685600934802389839089484566094691557296353130844187375471606640069643321032717083527614480305391349722220351947688543470940409705037663376576354950161509224242985770161789511882772437075397902031003139943631782501300917873842367222072359303607857809690076833995980381669335000748198600141290885069288969663514967091221055528401392988451833774724444280455013068507833584213224090902318311293730989326322450996808490360092428792917308436968840866690781884081250905140197412402584360581253751949279871053251698134064177138066138011719349447861123307993720583999519986923826447795284384659819042427191866098140842649915774605820526348465864744618159424530660791140490859660087216050744282586542731154059786770596499059515931294908376092024767815080887914730236418722892219664404339039539599938148964266902239408859828703597104277615306520018645788904585006784917279238854215302892474569689345740420283032926552177603760952265275434868633871726161542127548018416307222796886597029906363579299477887397819763439583742539502058854530449875628873252381543371543328337257900189472082851982069734614548854111862219011206989849958592907121905938749915006622802708139479053809232803995768358568034828985370262888254899854358846951468805318817544098507756280924382118179136272055060942741940435653170878561954711100648909290505044257686131770306755392533232205433885953336208030080621113408456650736950967364771052630814903756883602355570782551012424705861848767193730430246403450999496337370550762176325394818092570459946337932337963736703639303026461903621948616554295021545142736900630290836016468991858426431193645874363816394790627122530750060931877069472994852650277848846787033230073910948210941944821956370646681833975484013717748848458450902465195945830775210844245832771043938534529002732666955681739920414769868014602816530721099228524903557823750336075769812030117363202428976522832925911155567549774115379875213932504775308700774742438724721021642785062838716380326194323761356098693696923745005108053591330775983314772301875175293407558221582659747088906983958481596521175678924581650356668833545037978840623697726804072011215541581967841750059190746934648545965782094804370457582900690962624263041302820740483922446422850525458315634848704073201594993824105024400410967757068398922891256749569003302476109988058475366605674590417173741597250656920119582332148915584090823306165482379343590203272893465961287868455296917411340632266140738121658602337234591739059157015807300717420023114324897450201043186117286546695576834890343313184786273292980316032240730955611329047674600967177819873131660047991956101184328934869355148434496650958737085179470019445703965671607337175248059260672644816100187275518071131257527327047854803537719807123922632032296920009123547353154473393383780529948447760085824758864065435488425274491037410867702490243237761559480009756921658090168636538350926092886823525912750534274562449421572925072953914946789088796417237697183617556155645414538193187838799592967754110460203480172403314058764122580872222043606314049061579883276191147289800256633526503339174612236843129930182903745479616135232040814617636241086246905499499238903361603145771278047587072499814094666340619812308639660245055405683311052791949117227721260613644169691955643792123641183078867986658756250744526586855681841469901845161384889496774033029550774070526207957252020522124250703166152956074356353143275002941867854678272009351674322048940165136878303822053516895953749758693308070727189235644356758331700461107838181952255814370212106752463368783207674511196337479551912893913862597764516491862473371697772094108515213995336256756056036788688258654958612209326829139315061702419541085877446390607966694885970042034574054611942097078540742278284355795390566592942008080782108181534974788441794965838618504995009522967995040419188810986764452250412940174610333554985907692417592570150668706277040901475183415185458278244216838383182525086973439885488350319940595507054347599641227284354464012584946794345869556945947098682192176511634878245781372242240092019344270347982125048149285852692234671437320079667076152297384452066216057832572647866142924174456166705733145070050340650173830424710535802793298440182035499463342408544573270264992470863548021670243523349053052719303606199599595778466292916417276071359503824391452785121845713116007340729916128743867302614479549097910161389224509190748049969276859120022834431253364854010063434973047225720836275375954381111237057196861338511533383986825535069975782004271494929359481799566222540626900423294713886947124351618210212332413121753247699551722811035178979140137753538729271368617563839049707045400312211880460896526647882549165479922392162805908153154347113037500198306155061180392218561112640893515634728588907092288294019652028164469389560396413019101808637100337488241486468032942876871991427740706874777715780481764835291005157318105678924131441894389232268706760651477620693043114772305855958339060113989605341346382930257358324265585502444876526212260229398065256177790159153198805222692846026414579178791662473416577816028930044808384786619984253644349963812393015105868141864765572948352737367390245820439934074119537494817765707985672478577803067649173641342322510955009427032790530888176826917564305881627937463921791740444054136208618702680845945498487083372148623781214585493072579741549984620564178067920449078730991381177055880119139687829886593607027023695408197071503915144985541291398769956681785656533562697752075815819159575946303773476826589073133701616131907867109757257361053180963428869463388028377172481735305482523341397359634096746286022474884391771929844913807503598813952125722649701948476960232735246864393101863338815113934247383426348526035806727022962664350671706026804391321571392953820453109977572000881059343615604115952449926478656967028216322871255635342273199150504698851101056466441350587373909672456510318462858403944819011901548034441285910237787499217449698014625868952028132446349593385497672273929998297830759724821244430518803831913202634409262305209989755950680971387124906577308629219766255267321182825759339880101778660590117805977030526918862433234762346439638424789957792847642975805045664916904994191336057592359678037956244021586305224932983652716638809772866037386159508222419897633231763707314665196313350670799630277257987722539124213862457867874916547526581681615091292102231857177531647607202279763018154497384183616007355197596538708595975395903246290602909377541176551063346830757365065190780525116953827355830968035707483910895478134379059241439765217681115511003977958796719613199472776415213003562482439238927837659687184548460232186471504469995017535767523149066053066821107763578405351917896733177985631452130836330246206162255696041850707932560459653184152174685426407739747718204099520076145230032260898176483453677340218867398008371870637793002675058723998121564383785994948094822305648452215670524507633689565072240413846332301857768614204115561923946922485069256699036450115097678673394788932606659815655494225885936475633747802095538117317989168804735378226373468812365927204157581044136537987313844140754936057310450765055452281651659825644171211122477800840673048288166843875616650858263301720497917762294178358275520205920929375167109462356271312462203899896229327831087733720572051503068601871255715497279187861190670433569050745154623616599995627648263118766991319311129378220895756640553753714918433535656047796960075375615010114303546544762114313547253991530850491850883542179921098923467101077554590691568216921995791163989651355148532488333975029497142498329816422979742533098672782339850570707582779826775517385631434267832402671611051889481838504794373072688488026193781307406208449784528641355858408226798534853647314679277803844831627145949666487724627818032607381280864853925285724589155968117999920214014048065342796377445187205643369332633188180373654711456283256450651656310046190329346831770592451676424186369181840028128899322534045891069066256010452736986544647282545401935102333256844370331797855601937906145184708813730281387781215379802589345117391254925653431904330774255101296728235071934748372430803268666358554028883795354123592633334768962659748179356554205999621849031067567403084167266334624727405942811212067772197693163013787524593766073442041729083341219087987272566306342868580569359047927903764027966274426712482820565810241608681355494216406623511638460466220981730092135013622552515879182305621045418609967274847654456065025523177442580137861082988132796905000548589301902654292654855308135035368425276479519578569749494705100971609092660882643785070550731382222271862024881361080011822073741901214755912024265580658000226493068961395750348566224563455354085254812484470256262348179097351440528175449286683563657769185126473441723682476370703897391224841997712697334292661195371095884499916378983312517759868742729081500933616696241553507618293929173380720445222418649422846167817774046142080688597239263472218333768224628346040286344371123217980217704163582011679615217804367409118910627981540384527409759488726057878961150746302552404148136650137833300279424099725240080093025310180278631901055828166157411121718356993186714484479536225127048052341254590399917301233999292267396498955247721638462206173876441319841599532890440405164019983789786323957699456392595708424797403360306888585181566186079407562143320023722439545860210201788861625413428370736108094933305242842259980381519214699984030347575890221481124333777734617584927543083681048349725836409767444217731028532476839095629450532051941861369890352125016365033892642852426931162029929103602864941315060856583847595817797832375232874064555543747868683639616500793221580667927342740247415156005583815413582322154691844497379405645009479148811005575020305504122724480711512229559506525060782758872302680212051418006670743181655597358420436134225854928009403004409416575803981943288881617507616642635882924900675670043466740180051851835881274378669689436986543668843402358844943138911880482596231345915867548600046204332342474874447449401478269039021268387626496386790474712775395535469923773988671719484246358635752009405342381339990611971606220451290335479663003159454251369808811089109401113467382438098940952153660696357861036316321337620173817084800373246503237005084658505560059669309999894852339176174564728100623746829110021470706253244547033782416191263394196011600430192510726092264467479094438009019916717353484792860684906456726004753775089012551246984585730733018457233001289582598707319792102160874691054484304171360111511135631828141466689068312804455309154690006729042100207070158310255119652293257301410082035892791472855532455413934658829417681307965735879523173691480286276836657565590490494630000593448240154152349271196473693816835659725581418895273278895392343211686429979592169596513074281764734736235477215118854718669978535770711431905188607926848099987776395088574008990685706496414622858752358727997449387566454567160026905394708631615513924288575781293679939835174835526103390594543125390351289574215386777444963846400670408415290886345447509812071506457258117103542305165353845050451838601487722476284996828622529402827709124595009061289383677732523375673932594527901135028710851047775341011026225782367261485211061759790561455668258728710214149732362208837091097619088329429567500122276591119514784757213194872916242507842350633285167604517958801878664891618526934506845943209541117472332603784181935820392418503705164987813241039307488403924222702248338437185363436053333773022945675041209367706797789893454427349821321449988383656673709512188132291304764388980670501738430811357760862539052555760350620704131588907782001136684499922348007048307033395655697170466944248788632468409127601817020613795215125845664117959334354406310335185913449572325936756454768403007140013856208166079163004007625615668732781817765178432937443364531700076041095491845678700594384555348816817684433117223053809091637570696289419796751432722876426331891550860423821754302880788365587085065450968692519105735791456368503854646026534157507779101898555261291620025318195195584941532513184978394985998993539008267580606635633138132401073451696526483253443649381003720804166176916871616444275746114737214921855460343131818451724116848321186631962423328655215888544337389236624779529519544797229355819219533122765113945764863960522276430403572778728859671736339920062264669273576921423953372917384373924161350497225358106594179192191789333554083704884995590987122694057182695765860236172988350421048277689547586877735361534690491975898607606470256547504860535210054913910488982566180907377983733724951151862707373613668998323285748740820900152194553333411108442738883247452456818054118099279581241619005378880922604118492476355995363852402007091084490540424662287048935332668269946291214964878010879148340729665301322365330301190062359462308230363278194976642340589831740225430965731170180547111570213562825289330112059030781854833513535790318240903187505196053560094731885006606917437860670465614703403479518273800528275896550420027640216734192051957656712311736641975317000277671101249536673216714318974615548419323016838396115985773475626133650955678365535739112077855745683042009796686200258942868225004591541824235893154143685021709394180313290708899568531806877453021272357564392935353604578445802398101053528131154837189460191536897488654978528716152185363710096489390223206443796285574565549620872984183217134420383075284064200509437774612912525089606430925981286024648988422492334860747599643725741006583234923157684318078524602254333495054748277347263355867397025876750934976721561626631440437595407335648703771346496283341930712947426929453838546597002163629507480016513893979802726945586853911495614786207881259376985998075733717350002985481528025602033187933535413058738974412289115211772642442001942238316605945383222760303624961604666259957619647340919889205808959027458461998521920932611067843010530545320119146475427620844017644385536547981372525116586446189776345196840822373898890443061196656703943574768076468597530589522254083033155324710294908768646155048250311015228361007435816914401464249647280688204952401494561814208485631762551210387531420094912469304427343039488073072291093970911940075093496018962885047614245745505098138065652465301439910230815313665484694733472638765160061138654446715707507501987762443754540132689941111190033557133878694871322654365891279897303460083179540965994959523776528868697254746048479540483268326807629089913022508280677325827197957699100625785436824478916600634523953657974767121560161833187135013387003994718216489392728936756958837507549694203902250379915737579069757232710728999144031640517984260685379429929256806077689964101427912964799750023817204662487101758336888929462279173427928418744293825067086629013717749557549080445910479853406955181221055151181599309702772982598645427622125551587562118155536989254774078917032151589565130623662387933685192491406823262230020756910127836800857401210099218978335724557807861970974717561220878580942384782427254876688652435133585974285526569148619196038237288737117800431130060586353988583407596798377698532182719377894249442300792265655913168171693677803097897784930973538904436222556666511119350392897387485579390469537429104076597739554268542632411171160557076504058314927270934017807867326974872246849063062257534890819763213101710432710699644189012958338239045006713199902945310579204686246000421905339542402682840691320414320628657640698033005955475902600533098264270068023278875255774363463151246922472238341596010153008340022144536619734358880195842196444159546032013983441880205399414168427316011871806352491344743412259652030453198891716232475125402199564826143634973126839344520498567514192302051143539784991664754309216004815905207938667953578857851966555551782578362634497753610787854490624571610179971049551079525961852291814618961422359012197262596347598338512363848064431575221337985491502621091291738440520811547684034053016925385928358636865211903751136579779563622182667512131417355918223888073010392116736988881721611136410490061580527251496554832097661525645556892716818342142890963836729177581152083052709747209044321260722000853980532047976992564608338592623060845769973298387248214304584888312164907179859734074131350872792291253166957966533758527452736335595339969480195028781410033542911604795723985879390339883337066878433042784137870095034294826742398490301639459231934847290791440790820484102605080996917006905649031153151837231946456628316393094539670622697774699389426927523976821243372564526255203891196039665440302344443384580376790453799928166899913090302982405731761256028275632539167518859818074583448324246426984739755332964817981023045968935913689153194834869765159797078322584439983405132391679325178099608395538498385059934620755590916638231416091853000890907029483339852744991449746027638119416256903469470230076301308443961565004167492333497092482491965313048539872223028663524648739733242503052370653238076725759991869521980928493009713074859442055400885448266574116628533855152272675925602701956098516145006718320003581961910623496283643127150254061015565384663747214737167422682924088365723224683670396544700593670208178572739530441532758474489095223988514965841080167037857143583295229460817325283824907962384491139766519650755022056405407945069868748679314054463009092436833829315369389075214781081104752896416079151331708642959720095654431943472996671315172253239743954303619833512587513091214103845576168736273014331389575323717917143026704260200445466533756171929572399061634804220202185272387043956291841567582399304975039472401369115174806429416489018811969148646910962510142263020759883258973313998243536748619935921804071277549624998942206612630829612860646857338239179724932481341791608768271940955639995147908283189485229371542556090017843691099545014654063368686239519970565168451923241886061285326689347521540326054625513262203959692322165854783879308245152196818815064731593300784233583096027341424685947410888691372090855180982483400420512488018261118455262485595659274322134571710677257706355597023240410913420651764225756914627061296919303514569439726438781619388811847116064669827996560869801629475838651070279315447601478042451589123253078872915046415873275210230919862481535285990149161806375888734373695841277807381049509919351375680058641846199518354062984583061296529849659527953554817276997259319496993960698295066273696877641880659945905303165802929041358041129036769357663624678999706133797132457578593359634041379093908881783366809695024558895010381395714658553593406534502789805528243620552276475403085789019776549147016379939567576795638752945191637018760164237765569007864669642027497646238219017547135532439820045704976895960621515577285041569572578379711788450643093252151570619848113533821522051153317232761911986438956520230634047348832228402208686195236760374360658343512150118385443987115637589536710144114608713987855723847393657100269322839726753223483089551959877668956904102596873365718914427797385537253808389027276157385850315028696067003785937233061422129479149489089284096342723522995351109057872138923509839380984086099285058767163153294570226632847508632990979194731247205020132162783967154099761349641013942831774380845596816044511568915139162362328369377409266302043670471623018043557574664571031062771007257004838721590002155556965651325405582112233807773949284695668595325174259468317917526369088929663558476305850748619938826782073897739592676422923875629426877322705666725915271133173904788750581473077201844178896231792572729828485068180060121634247063345605515004282731334868581901311692340705460616053728074901147222389026238368799091676687929317033236257732723549214560939305520566592907862901858979252126695559690734586425174324603041215383763080398614577771357538805118021184339793803383038974823127332605842874240183893862004820425817721285327093937663648226009636778071804929019567244792051912001577672883779762983288375903777656121587936981089644264966427429564494444244373186680730861691665724083685696281242302950451354769719259887332506356042689342841055926862192865179134158535479751401139104549306917949122611366971962881580704754300339761613555222058945173469489535231732914941089059600336294754428458813594791342417192740983727018155851156510572193094349177566810109883340734990546352220051625547617852584485599389166205562767582484155930326638112269452878739978448267058427723070870834097401199501380678723768142758361242210578255540790376343137120036903678121340457316277386507348484280603492471467283293845285362634829824480913354186095903438092824189626329689255567293591408828458467958659211045731337635660442949902680990434095384933056918511233450659201921968185654683602430163931716237010916105011275483810530400822057931770660640224451060679258767510782098228264629774678251717323804955399107549439415976312142043822848645288191884571744536024868428956888337774500113239271908500530654327409171280869813800301730232665533220372070695079365052589263503185727025817233104561910256562804918680977100068941711276889399740589840925702116871358149456262637898249852096613279783911965318320484415353016083370649959311833440726719035123442984751092649210744907468304971485667504725750378597821826807887127314253856229085712763064656445307332943039358733637696540542251692972081297183441848801989458722128352965042960274668715646313723647425126492367796314319941458279839994433783506965015077553547094520814934367177032241132264614020184298893953311499123341936623790203226478626407560622168172899129973982970738875742557199970839323085757870314649347336033751233858161019783462162980865296237126769874894908981732342003361379294866472518478857046388644630657074283938041926454791779609749291863310387862268176637907912442508989070254414927372469863627848408810462232208952673175599164725683789443025474616149475869213677635164017397137615448867138232657007526427916118591178915155981370205844475710604662978861086645323708403208529705440409311707064780539070400334309965611486239069509864433008303093980923666625103612633776177705536445861251911369680879355946431361891320974606645573546244951544611996273576361416630837514989650468605962107914741513777624337369384676106828825617184940623774208844535110393451864405633811459805443890988827302360575825875268109545540227402717867340739515321107265453252866957153093765705488844895400125070753551692022680378913382275591860496250159687450469223881642267582381991507167079332025574533297091001126463452159809184274430862362767950135691882385843213284946592504090496032035378971226663954433902878998232559604846932896422862685544586173820579001711528162924647794396113077558315855122725942984114257216393071857419348993025350506655641315322994382057045235997700809829659617566399128264468189221361167864726747301211519738480346672185514002226733514542447312826471403641279429854625507512643707108344403668874901291695869836786733237506021571912332757283159773725994509194990913539891199818461302201522454603990134728090315930290670792425453934702595110308939348889148612573429689293527649118790961334901495843450173690774742797855140227205927394464832830433012895387505809397262504572921669659082736596792636501237150932110343050384843211117413403306851287539660287996718751675897479686071143237159491763820275053534879478098095954652297867201348209261454309279408950659289224239135707770423346009404469899456055327952469901233311655484791848507189578821424309044141477076361750635179827864764848440639909121022797499364241490167278201348115617929225680538083424482485934011100769174175437602395440562780773105023621117472169123875471618130997835137014637923065049304025281167012872270893380416455940011945938594145428746711393517389488438455594432457029608625324632698412879453108170357247253535049734649662025054505871264089207911563515336916328909245244469994592904239217423416398323498557173250354685899897353683546735862413516684529092360477103165029245941179490909029886469725619809373376727926485088684817445132131713786271228062193480599676845416569871489193798738678666078081816722471491098560480543713127774333681543843382977120090013126477255840128766335580677483457688108729350359219682120069763319795362435089011887697942024921732719614053380380040848582719104478753572704037452070750942765099560712370964723750629663134029300277155114811754934450488206987786441027769539820804777449952244834353217697952630649733857783336740341273188169470502857169497374107677775094397778590564012531873600581925449136144397798442466270642957492958337209892030775656785268605374789878823802548384569059205608648892445459994098132891098809235856021566224173779410489515092337001554461492122179492957067954398808623143998449628648416800588202447542553308596166386957542469246656684469353410325131449832219615104030379721227685776980654661065854037811978472781025667620716115367494637627045070405117069943203518894155326874380393182712827523353679124277124663320355359623724254876493407778852019096457415282610300678349460636542064136452481471039158396169936924551214552736417615082902681237316289987562905371959924379193476902141832195467760362457572102283584952984480242446384400716753160023520573331251698039404723223988230724572595786192546527517725920732721817559146885559365600833148773316071444304348758131189551734124224169952167609340894481531556053231365544071766632996902516691750109218274348836708124699932307790286053236788287350377894104835438543879020506321118749230620695207388680842947199394302722463076683468524834617544745339204848804818208886068839689355123956641593543924147256031406691957286425247041438082156984840746062621221781740489755149348493880242678705980080915463260467001346968410328231824491609303857094460315321673438566550919973932752565573316612967083494751693781749635318550550181614778977486679741125384968974835980515908908661389250050846726148738899195738906263170473704762098626048999203639022086344140118337732313980080510241106201978238422216534132947444953580463851309532707489219507081341311939055563627664060315278211719912492286511919256094356682728591639360969607019689634686961705279971350885162184609957937347787496036479041313789549737471199518107439846128995001206503480673305798952395273716631111736400483701925227919431529991966865525690197285686661127150724181808348187785563933490688888957454166742450323097595908477548439181190809493902003626810042053038912344369539504057923484006631282952286638609058697348445909179241166277301594104898211470567010650235746734267801482688838119198096386003869983358895960249267076208851423718403747773865595063317488471452577720734764458647378971958168272640952551331596592468454458010979301264143956760327629363126016983760457060278281397526607976233753036403462399060179195856326719580324242610051694733540294250519814891005935021846030812122788742029518275618287780366389626420041959821274042804162797228232865316127167644737088063771595181508469561522587035841969455011950234996674027708100271240574729486812202801260834294775037655805578078375557016111494736167592061342237574336971995757988104292838533787419057132861083577026437568293057481626338899690233511378719292616379501172326604443833178225462333712023912320554889938812475337013328621146722942077293293238305764455775306369700982346292319970051088647557070171755909926974493582777449239850628225091636956620120814455742161654477840776475072158611395227861740748466855000484911830953322361835145855387446443055764612852286900206255208555168852154132262818336439011368349073503462563218343151421501090546740319773564306343218245197268940979496257871512365242289707443457175339450757861047263896730519677662659063549289293659438478218881681368630162466923401721666616187320690161503811965993647178941382256254457360504857869504532569649087378197616710389280114116552682736084027587473918749759060034553689671691070231746823501730896352986869463198269533656129368215580435204112635347053975336761884427521970277276731544750087261922423159239558638340323810823044351492066429419829614466241089938587424430774432082239583804928520265082155987528723716570510979210988679145718213383335846790529324469199644045380118614184076644238811339296119239532741963286082672384878302907917636543575037234019652132988948730373642397573387546682603532310358136733613238887517531706509986110726619688457809263343121965742351159528110829027924535903090162441849664007482534132883345772024577875806785192100940751728140442421223419419015141159229799200832217645455960809696829527683457663867357607412704057826079547058697420637075870397207231034974416839031134675144699691610066059534561179061932031474647408978868783029342925060214659825688549635376073571051736320371766645764143385910265344944376016137205741779808856964554040388772227994342180365201888937440733144765734509324539018344001444803895259253926186184814641577741950059578485669325961138804765416674369016085518374290689812087611229412758935932116338994446293671948834301553640258378514745142945948066721512805752355762699186211846967270001277211321054995780906555763100561214015660054470935287340427232893614350545742826966094072344768259288346380007505112022459338852300466267536469608901295715849277931131248758173451768831839093592510046726125170596009583397619287779212844055689957843418298507915104781389675654942021338859128575447418638410945083946359702319356425364274623619033740761152986825899779950576149510716264707541150736050210687875101109243152297611775817859576602250264055378416402613571580001038237403190824906625505305212057347844600419109081331583821651144659611667161963258147061182762187879454392570310514451297912982931021184719677512628193721326625282412996800012306842441527931714358598891741439697247285063303968574647866367259918139125746016822354841310790720631814388206077308543215873724686704153723043523421848713334262646232858388429149109453728109298025507477241313609023812264864105515137091621438909398449231728932381973654344397726768992185145509738293322678829564806985043624703191964837558339144536863853425530176406538628206767721685385562650836155902737257514177102559911821987844801679907456830790968510380579850822519940106161641754175389989134692091846791909280598176462348124455506804899449401345151869446721949123983645753021579590078068766890343668176279418748572800218344985698731335442542933776420906000653366005172199600338947579199304845316358141048641892269343259036669726464104272301038829997656346673798054557472238393213988896232233198155891124525379410999751923175350984185709697880264153352116705825058871712411965160816019073379256082766746268870613231825549375105441626224769635067472743001779421223984212107703502783962030364303721132789435911410248800919965925007609655336997353457124204811485816702541639270804432302110123686160349672850028923861479982148606810209466980167372295870839561860703028315006899497676830406687045750652938565648265621294122318610372016837736071194713946365138706905175919838768609348402271142133477003787829253200935881263802120877136966065655245233466392205932993771003995654536765306490724565393237128235900651161668277622688261647902157078094199818991910412723233646104742345720711495459214147221751218189367041260488115142722363274306436293426068289289202517203067331230176321087230377765326440506353502373666098095976459257874858495042236078908940574423315489617844295933881388486336986007242775528552659425762409933092616292653294846208595423258149313614051316379031799596751684964530082035895413356844023223772731876146003303879739515341258194433347201059629750463939594134632283676936796035140840569727207084112212984523390292978577083882359965188149597737044315292624216058139601141706054684577521101650338984610470232749540096382775182590810643402401746415801718330639912213092815203780589068701197502912420535019238198283757225199866382735548855285410929578434267348453563873951909310036943319005607593375426325993347376316099412641155866941111967598730990609720247559718193082433482198706673175450222163466152253867394467896885903090220827142114897452357747155452905234931902821788682192407617594997611312466597080223718362043543215579149641277866309788008038371388942091307191684443942529392071152853580543050760819244452577698938154773371865336918911400559505264611641275235683203260282382992138329032757878078111542108263443363429412546954888314369942618305314977411601680819442122220156996192083422864711773004686440514027175527246404465682676717293494223252906934447372588303735544565469576296067583975954098247867619944809334170578441249120642208938307474088859906674213304351680780996400277149088991926830027905652192653110831161066951637120136287946503201514802779685073373531627374687741693430084389106521099490819005546695440001990989189556679797602904044697166868125669292031480003297328657986535889762433960527195175678619823028434448151150859779810014281382422298329622552069524489417518144720246651470618019705165531734431245643242069998654642918235901408046369490676634526899453206186634875575115170149709765645712837368131952996225061819902594987763150137941846124013513300933623870539656535354798931981233214119821615497912619691878833915669510646381503656479379158886382646485023101184460738791996429716830023246357005622354990301517847485708245782334321499933335781735220887538557653888060349446460224131983534202724258109780372706016931266446122283829801585423168603834094147211919440664006202615299636981023735698654219798194539627134291516683666314781769164409791577361899367320841277014248445187212882268020650717861372977670499177041616703342289257685361300998744935136759490113697561629929443057807465317396790219196034726201936908514607332899504467977559167725452246833094189715837906818039726959748721048441559713590246021795150839340624013594576725609174717120104677395300759136599735369941410619172131269477738091092168803288827010493748685302802103635631591979904613855404221627532484523978786440578071162944967127086910545059140689323298546916912904717960116875436358257211479700564289887817734003420738495314625717887880800858363235687376039729413365913571803306375401680153754394111519450394740250623654766416616579036897864792863552917960522031060658110450469924105739078934306729897385315513054000542808506835859985986808085153972705182797660433758046916384956895542128394325313380722618185846146853166154134392203581018858583322836688659540383700460672949631980853720411096941740044820597715380014349700924750059200479417649902572796057821696446908092987037681866474429145936329614254201222415585281768417906277817033758763894944521210648288515104036566184457536953887191839936001106987027386131125368344176504374179353700039170467088650008581568453947897678945255284622698872103216679431448775996785743646319999919050079044669712805322237484701958390350988220494794638191409999694327030206009580724786706196680706931040640306451764620995969439463052420737779863424377516910914015650884319809806981107008513204550862463959575817401020952418844957977369970321587194368442720511279039815514333709738229189607100944935292098261884197502258182568891644092161859270775783970937047136367460652334090077403970347406989100815197554658326549166195418856767495043038875031327256401681872721988801284638458352822249927837846836534942547890107247073192977104539222350719151419241211307168688364341885777178892161434255023866248898569430944942323552676445171331583409932493790308597777260443724640965091808041720679516081811788850437313657128099863491940472772848220542008172110383933772734446253254181807807326250069087876573898742816669094152913291623252193536815896754462837176950807568521729036301465726353918549899170409469580910965252852713035144672771710624382121453216616907736602810557566024360615652092531716824713536840781200043408756420059161832224744347048259008950132529460684705938993927743787319132197044930649993657597872481125739401858337653283293368698694654607078209490369348421046610198525084353012566919756508479570405275418294213374374606577595630238629649848640615370383343548732772212052906019321878259363921795825573326713408258580093177010965044923968405292042302766548861869779507326228955226865595137512964678364562681639196908717485250581564757078323718148627411673783999756490942778277977256618830516202706861531513926925038230835615422220289617137909206208692455378907527880716997796175780373732265145141483863624133569772760153692887537057182239997564364654678381275147726683816559716618880080468765491175200648391172262085627221575817813849066280935173582185840974988032004790639585132691441878988957754297802268396739747822201500717934475104551982297575706392871760314285277460668769197591474978904369863575729247262034225123566850427123178117658660040178299867363656524489322932214893245608274123236868845329816498226010189841155352077820881418490039145326830187869194758504778184662598522382194431871602321859680228963756377287865844039724289784338644144647387584734654258333258319235049525438229115406470475152443656438821042187942682226604529287927280475497894828230001747619444575350511508007059571359705351233044057337095776424588180776791746923820589308248156415349288731445575509707551219781501758326495902373440928478723736527000648507040159691157310463944701040578227990316798382765334407776067653495066269395266307431117217917993099571845937933045289896794360127675418435705926131798963744330655006698202141554805082039343922260935960795657177459761666224668242015211686603986979147848916321933069198986857607773018761848916965093836622296617717688324620639064528885061659893755545179061620457059403542314620828727168234741629618856094228937648329679203514194607777282756866968901661615521986756501648093013505097687995678491205842869341042681462661181691963121922607736955334557356565576626850186007843223337526292590957127162134087938085714728741576472143926563665800772224960707815606677802073527170450162797752712063102586021267731590187285814482076170907307723159832723646984113649253290485882417879223651098781042186862124496338608365841880141851145886484027633300115869152276366614879000534359277080392623215444992926877531454121957491627852345781379872847678584794297352871172924687636474014923020873730453248509066228167061090879503001017279980847861479687412216861836748233632502732842757178844885225423166448187133180197907589791675704125862639883250772274302469508654132955928933800338621624886914164511573708848218322464261448445811434647400170600789839009922064268699916608937370553347668987887279303331146904759985715729533576466035402015596606868669614270607726701894709469123871334211664058661293451093972674721939143658650992438921405413054846704758392839143416380059397530996278333338367135188274091860511433750290815152675306537171849040622063776603399714533173431757440757932222879302336585835963881982519443279571249337342752853335635116964181975382733587212789984475907911396929659225164129454449203350876691926177939347094645792315693631421714783743056977072046629431946220501931374483084671132706667729211746035163206319064751906534972567141743573460239379384479839989150924028030486638120052983409911849041922306282542069028664140367704503223771318903754117525235399942466255633186563248432120239784073626471324224814384856549191066360402783976711365343977673274659930224336518561863649221332142596211239177680614126175433362236575250382402487900011705222987910791984030642878009949399944552941847515873124190705258060070636693949886066282724101386155345258612116000496974482516129956310686977646684922751408361341629736953879320446176365830730967966666069641174976952397716486958354491241164352950547305153777771151064571389087510536287805150670540309109314347489833140046314239948497642213898014579910953994703394686532823679511470120872592071052320930566090695964333212561110809822384196341749390439740273767890481478865095490267483425627076431026927941166816604679027174861638353927036995169471067454465446232112945704728811577154537218386173236752314739451004682020608014592722255849487956514666676331539972799441586245584563106340238343259998310231782680118400995641332206663777979065537969604881106919718876137941543824315213805899313005102164072253703588247237487920996489597055822426264441176125105491482196848693247496212921363586991591056768988064872042875444150497584598842144547367251568629108128697127234399732602728681836234583631292839037448153559736406812558150343646598348027693471031756714759880766833496789762225412587701387371444004225184096006997415855049836992139594329266133437999767592438689358360263747211557897699330075480477118692754206275921953015907092759039816386794484764938522729760187425775125138718890594810320998821358208167504010966096709033982120908049896464816432649303451442201001710895518126472576443348144519229371320307865209418834926092520279626573657023799712716584983953862848909820146516340398514754885138173821113895912474552654705769657864833742317692822322142157979883598577797831567014292129922830735066560621612653424274165967713782777476314990098492554099044920724727229704489381601257264344449763721733933237046172526594543454170823817821828967455227320492244812873163903932036828261687979361939905519638345478601977222520570576942031074944185618775631942786588819938437067556309190085112672000089624235220574827011529398457320391490884954572302089416214735787436517387286226014558372241028638028323745676142224516470892216242376609532258337095878349174972488694673114012314418537532685049820324612183809286752662869835429765941899897873038239002253638682592986329988285992514248204322638437781518611532294033747170646279233552837676002999738979710345793244862917676238125309601222246624681798338786223113030268118952693603163854278011421535883746771602797277853478956059443642872343346396955373675045706930880289937325385838410438169633885730813705216475393314202438843694716420435128428084114179334520578779083827194436062880493831760613294884055579852636263412996649822435283260452805187843574353059206612333610249583305618976931842555814654690493153018817630164322905414367861792887598171123180074317938973661900982813879863739133575731592830224790305777139864208912948384984422345280673470136526132886041285188606368884020721588051898112989881721306965567735353378695494934364820375613265551560091680062783817106837468681306549811483801262056371275920917217908230104651973629855143377736524337948407140952100465467468199087324482541330453697735600035497721983956774195205262155449300559316666456700596793755913184614098790449972624343965605482896202402922535577436812248366731259319323627577855190628292091875325273656770297928714520002967519657879792342411261859810563078896921455337128178317444384829383088727359836516793607279567919598711924558060173568759897123355020795889814318551136784181895153463043740841601978705355684249686579711135626822713075044469835047374486952953233693572372080589280787002398508225694575366836440023311797918479349236349201636434455517780112139457685413107630825718760239549559892524388948127082553686513328942039342671331217032279549583938410457946378548431703970250372339797770675999728123886479446179714707031482630753420190200834006922045570579673145162523436653998766472544608428926642260185517861500990189324734055047106356684571185796111994032602018858408760462621547797454656645698582250176248327086752112541283507024795171210007933954388001887581435726566844999583469405321148812837623169792768254384885813493377513562006955310702604266323130029385001558641722497199256399985737994939374989688117533536578890859138070685150755198103976746934343268643288597681307561753409663255532767268871117125324932024281239757488540955962507205073465958765176205759514649021831073336283212434004399038245307320656965246600902939622368111365997175520514563176984484086936599567326303368662366166133972321766567837124985679686982678212496678477453750606356570390336212891063304865264212066039196189611420382219729443726266183349452295227576790617147470327129038569065325514474883481464610765159686431098289033443724797126937255688135840415970852453877482995407005016494279283660690044310244365444078545483143689790824640653393280315372347572192136494943301289126313147005949487896146648936471986150500837409581818834267880021610334471160575255905722622867372162394450204876369804177804163479337679550828756550716818381311480151469784752057698942336440911960291737389788467842637084816424219328835049632999744175037605760438268938210689072787667381512045358103003833805301785921596211947217274363790003262892322896947376594577410792634448342656967098336862533939279177468154619347822168835581051018225984330593093708080801592505958089157285343659819802958853396401282737789643331862913983692003959894699920129124023846153763572764211611038890017084772696945854263734794138350998067096987206171209848448012955413495228107712228864727368645128585421964154439692694848660651162740888727287309319791267350850998128067003086489451005506026789855782449021046210578261849952796604351860303195984625080746229847816674175421196429946889832910726237476794111593668167362884320294624879612833490528669813562952488611553519098386735621817459362953221208723782061250428561834732143154100029946139002821938549400057675422028750308221329348541494769766507860474500042231702247419412192674835332386722887247409829311476963912277822886715729119479942359951992988333619334649024711240146680541814687270503658408085864133588665926857104808631008942957590449957282329200055309520805463529695942408589947893238115121713342522611188759210470137540817879267262741929287909747702847869933163279876097285701694792508923060748980163178072508367979383915377279423514542956088410571316975981581497779101895247314048273325453545171627802042381042354312286001184461399469806567555116044669588657162771114819394402306112907009976775634245960145442262085949745729379094443100197859381113603625752671437821539122468886247167287846197413253229737542952627800388309292402005739539173409774185879717890213345938192800933185155759721265255236865716619109318357912099480942578365235621164424696490645676195658500587618184852183489893730705254577090388783358369794964534350710163422500582372823185155160688095214511637288443455821945913809853394502209022117412010051756951107451710769101136087779357331288355237057597617441420754093155947999066336348969226592435391231143732908775811682615376212170890867893840277685849810437646369152744766791195861867280314445176107026151540029704481771904502614995204722351838737776856890330389698033495821497590656595880362453374966456758732459902001579239237600875534289018457456813396912395277130530100832740633074460707422246859306617612299471041622062392584398821481081958958491590671221319940779684649114776750155585299023058314146575418096371383286464489780493439874568281811948488422329062097452504900548985806274120600769741265041944129452052458519300518839554418603987026551582517372054525136931571342076152706425732825649815542410060179205789599528813471359915843458797301160995076070744967687358207178814349145284063214006843994071453490499263525723513634000799786438740097510452332227462942066100313730356140722157413007198081338391339027076564343654167472672561315643373296841995691809397351084730087832840382930016997818926877781146429239130938508808792052758510019848634100226518574165161453283729284678643381260818454476902457914538594373585047378827853297417851420512190800174950555967091841939241065763372262303281428304786591990836753417408423570451333029098908058014406789844094612207716118791328578232234459651736264147249775192766170413154473001180738546198015422010468779492351746647248942404914922939955142760026684430254919149703775060575658631176292217156526573812106158273697440196177479498181113174200989349725828234789106982526404467186205833705229001184665599650101266874816072466244832902213937754235124612162988125254310316965560129514959643966789397677912319003161803287244661320910930928205319712474701030267791024371948168875484301003343273926866937194021554978302283754137126881141230860970411069159044082067436527431931418796178360740471927827444797749816813393527828816486685489611800177206040140514859266008924538912035635808382226626541267695649186869609967676234188564582450422255843016688398464487562525695283394043731542966230739763496167987416751241480698838193226310397901841088595616120134072916582123673901373763694083548193359114275756256561307062566355774737920436746772320984319955939964693339544559253494680504255873315083211379348854719001500695081178504867728729377469275478452989697621552627443259335741379109001733775151494871455094481496181563574664086145822140029177144813365523382265974705006723828021997452143606663170463016743930485773920162237251474973048507619440582313759318777933398464160425040162577266611529981522159000852962485737939334587929190229168423237134692511023709355954025174249970336068911550451772025120239284820169124876943425618693692819082734553492297223342586873228527757745251951654652373553514349588813726914842398114121881646031928242953612540543973751809932008510464515159463422670189888064048270192767577812345991809659390522840465367568231490856793986225370814053515115704880907548347326132166993213674103698342725177483614238990422399297852356203980988993604136962425489280421034808148004117169674123137242880857557091609289260030645279073079894038770321802001475391879008624025496231948288659232803907913153792613027205754996151502347407536024714660853214687579913243834857320277957308310118312660754471957749798384603123888997960697846230391398026184805799201973136392072459478080934486567642594865463227307807859206203044780815402129435066183416723816465015390153956419308809944780977494399743657875671577659185990604584268268668564358186210078183185942235869841892967110743656609261365269145869812615888313489094350324284175286181270600650142434200473529913382194377406707263917710571584828833347963960528741300490987285440650473451107728201134247113858434938742781097718091520902842043951577031128355549935554862612587623738412516441212698495571320438710403705877548903089928355911206330693603650220321957832435742627101058161889974311179225296608066832937497807219231137456616483392427604966113812904340662570682987205621808102958598339020104009243516223467625765415202661891347766800505337402326652048031041856856853782477947228883202913637789902955761922093717679176394385221609401369812319661455705088079550470140159037705566773568006520262384855986376759375971888329047834796769899772682464789457179824949833966690743652759541859085250695219338112260911755552555223876170674125269782883688877547748075865937706253731130312032830021336361640301629761181530630151531776660456559036898692105834091952855232861334135328882237174663718836322962309819643616617074967886662084312573681731273288016467309763721237243565529785362193683114967425305307346808176202494241715512992855819554148206274942285652076011190155778729073110749297589837106170670704738936107047741837156274520575362173941530877381594464369767073694114347188379387099597016728906390761627143540696355156569081760540899139341547274905750592556846834590036677340364861162973000611093777624906106498011712541380495734915504648084114562488225811379088613037115511265446981045879867990197174033431765007970938344009849639049311542947954253055335034464262180366328850022505134166895099912776124537808223628289322734754085990368800483836115872845613366616158253712468145433878587230473901579075149631640982048596559117285267197076262462137644643324047288388557534526345654497970118257273592028449752935632512085101260617004440120202153850538505845165628904947722201824170691224130808514291479879282484809278125957326928078781791839974362999461404867316054884667900688653301465679986617082200568000105449211038903778312536746631646129246191735109674931587428070496060152004471193723590682611150433875642590301774679139209974649229733214082710300687587159191683746929229616756173998799364835112211663093100067316094229890894849490818119079393679076133349317876278771251249973137624575885686349370956031268303337678852670141484445256625399760699419043786415729782752718750413314365559976083374820456421994230469976302347796015771019987473694826716861112327072052720558805262958761496290869392556292674150469732215044886244360002716402675536234526148294117286823201017523617724690911551703250401908882267609848372798760803071026834476797995128452958976942909441307781876496471594156447637715295126659052952453869176770455537161226897035290072602805353465123629363377338348586805781270998838078257521281960092942673813247997385601756658348145404486392245782500003008381835006029295029490579040380872710703170616834959698521325909908674240380171316935624812510131754792369634718957419901250653838421516297773003000447761095359885087229772684093262124752440938013237748187579955151222552190491493754118109543259304110755460477747081961103656808789666951747871101384036722199389086261233065192550780249627251204248623670863355779687133939062126498633073496666505416622185531513524515337307617809160539151880486284215449931978042784521603360120767796705715199793450694611645389785961221347635351174160815057179706104640264067955127934395591959692058785661874045084779971097798817005187122244018568991701189921577469863168727093449051868322641401459334095745611452806743987760196874052713060906858599062987798182218007814482240563224637824624563556588521322747725683107146237288522013021270970694919567697872854037391720532630236080073181793728357244066301998030987532298577700903427119304873085626436930917247501100308841019099320185162381427568409596955295626039260107811885301990702549207999255743506054993193463947755889867438103146103421457587679059203254273205133237620965479754529499406664322774308750397259791009309091254061538453965481541807275590407289470605673222213595289953489162252134796003003453411914094467997123350278284308106840592690276735764491854015698114803566210066967750621073215573148488449441725211227970769703105395114836116710644897513050946182598457191645255316626093815904383625156029987703751818989809786316413736766254275074334546486885887149933510723118964875109630948901956192718833672315583278239366505818010884423960329652676749183840875007620264596558667262757709652206904700452254805942282068416517112147975447522112581199302003677679821358428266767854499793321188322617142878676561276672668842090884743632606275947623595282393910936345928559025506060824999311284995555579708686194709154920719378044148746998118208622292105886581928375647513634505009671083027765190819651075229926510858945583431456769201182556249516682331421846250788155317631359217601617441843315829207180620659095286982106926468919170690677006378885255043048469143875139990356590902922011822268527858916718427421852039639419249198713547013325613179317783465779065451817550067456813390641826944622944031535026620746520471772712354611852310940968544272383416109032474869188820683694389049186168518063234736877687667026254132292855770169879858476655132201364361034499852829139140687530679648383369564932399063706244241992732566292934577969307760425286622874549336242187956158599411178253109785027765373439787817938254091808203724533565220515844824771387974368127825486982863568177259870709420103528263018153154036873280425329512409327445376541561983821069711708492079259712090637017670840681439616597861773890104748324881648313048621125273250467785835015173931947220019996931271018641560950587959754378447944580962920709818584057556077850434009308895402619338554356306394367275276667029303799005086270946441166809402786006093943960581430434874792902583630809499728321912613414752687474272172190104779935189053880863818095069514210046137066747999192139422413491737734178563150428258303963951486529434300479628988415858428871969770352359451058350637611514189012395897769415557202068349028813263024225498339143164156457517475092455136364284542652784413131045529602562498519546045270313514513539725421481713147908992952374170916516288632430171989003736802677079804944518755555487483129795149152023621078303432165091407325519155074563720149545871430744001163608411496639062345800388855208912087675065174057733119133721170702254563888311739096533957676859507534896595572359404925205041057570746626568925925124009262561749598997455151486252499475413781705181604746979653341391294171228560247846867693949021614256831212509825410468196064187926219380342431299855349769271394168210219638575679471361229498693471136334200104593069842688148092272489128723861697617362974774198135867780525180186280982057473886574584511755950877051975265485962508032701258654789287255556554466929596142741776170176197402964539285084960381266618125057798430663299066043460487582852821640516946791558984819284933063034878568864400254484664222172514992182603517271800970480512393523721356930125992738619633943769575958502690572829758839294820990262078675473123023627435425941069219388562648224378758270195322116024379936658943467747460264428855474647708155548531067024556281982150484289533493075299136172502955428716477141857411417513477315333981283875568127993867805965020371631207822016080277212661909786838263301321377214766329284359120280203945908435720674591393446824809954994742991806953036568947284014192616182283286577160745375274134330080517956581197696134790796374191200506496066964625579058684058000127320435178652862539814949010331151243283186617991568988047608509194791554090843356195853331763925485614509557977152366985454934602863761192543894801097954108189648075505132504013458854337700715901517494159324953045589042446726287450040553257427100294632343363784359653846730888343198253650803152133683687828979777556826564768855025864103021683875588357331487894923925452339277828330701779813896151963025310861602768120790939430740399915446161096925495111360632857611088959402009925867690512620160013921860865196630715058529796630777944215993808194621198479099593011851677749019464367877498920196562359567212846986675846155924123149699756557452852063744297537000331348675251061728096350446612339174216894607908620357917676654314844635861823674478518036856930212011096938984525945583324613266390442164774543998729905373324398288704319885979119673491485597739774905119216966885365395724063995606571705393052931567441640781061791890009266133140858910842066055232425843227517236252992322204127678844342726682907639599829488869994022144900724265009191132678768689410862377361797266126553211071192235346868702223148867437197055679098957933306497270548617894440190729474349833448955816907283970739478930865271511090679782161428745812418262858963839925128054370541825537047766559915367085379953550109107374027191507047980863037235778397594759550554075286413146428192849026717603427271815528158461888158062656936972947918187615069402602929185420058443404161048982489936769783575644323167548233396871427416013791822345301267305960806435624580145250342795180819496222646166300248517713807436171414450558999042290342743446068860316867471829589990051166171039967186809156223553611443917739391869069502552313043907243598517625676364322154128851855894909832105889349951370105627675003847668524735032033516723164383096109537015667528155773892492779920126817407753790087162257907748210190511262671267678812334866842936088825582827361616130338945749629364545913305022719031740551563594067940946333333862607210066841469713482579785204341577778594068815674457070180531191184736080973815577557750015695685231839394234475864302831172934671320917616737575146554747531970858944938267788308080700738817541178200846083265909919493251884954133898183610327135003326818731046386409338922933761380553646106495897799799438930095743072236110044135887314986599727078658970757425294791418275118595628345193331278437997096060670260489778810660769519740913860288600779889958469230622989592312185580407370525381731485546556540200965725235931626370581446127415224331402497877364255650523117115734776225645040538306838131170678184493609676419720759151685858096018032001237988603957841593165618182828362927229872529278392842930011201684674273028241164668693610520446398823207604085077963101176415989535995514816052886754795069682799172344482219153602114648569238148747535558821896460177192179437595712297236415369509281363947474970314218727837494540953158518965108083617748453351677255576232747290658482078815716673009815251958017035970339400510895920249446491799740389647267528929409310871567714977826563855802329625224313182921340649842664722957964215966229082720004443716067531344617152876523962653534579380297733735632507577201898897186334199614307964326631256602668907344288218002860737258977550964726909053781275077650481404731290061375999592673162632933556212038499814164383221221931184746936543242694084760134636495340723340801103651831824289088157114783898168054884177514993340445724969610032896047341821328158416527759720451839819146022398645053567093566134651294915458233197561794758626398247555984672902920718839095235931335279134627358791571330033270197930248945056709119654702865477004872274068869700963788426906957257094046344272731653910205377787020654654344252111616939859320789979124801023567992095319311960274257593311582955243726517252307778287079523048511980065293453133396309955803112376701293943069380851989579311813737916037259156070151876601884214598454398690884431696113119401116353108540183257049035471680167568543829149353323425089670220853830421893495470898089448245649652256730303830635257165893207804357670721651255632085182941122766026091716938807067562556008441345810731395316901851091103744957952598073909561925919936851415587304458769182084366363682817705882571917409796958226060223918014252381839958743486223116657699875494908281302669112700685014279076625275477237610406867259973639062242735876472477853984588466949757352876396338151947041138170456044508175637270697171231616762455126185019400971330571402128866854083657305361137941397538539741166402616362708303885953069312500479848842579118281937686314886484666834812496300308653841363085456063328312320499100483559301742842069515160347342392785901034524982233345827419422282637301338028850344112220423059327856314794028993567556614118480275995037541599276478242441662160347996929716677508487837496581102841423144664971953123320284111752080183212460379847133468109147002816273559572019262711103184056474151520126077880658288073648337001739308747676777051273868428715663973268376638462741402942012213797963936721921349970698587931882008311760826208185561043502334844167891372382607005310863618435491731901642360106877927823200842978556156144199628459253436048066358382453705907692568800201158016854668029919609159514431939195241382628555336216743332593227704323120123861868493952941404247276089765563378626810052608963539829362126582203692506684154275223086485092943992818193184803206331045331139856092076975117061678254936175770025925453439321366651425741290149181752626037966675014954265954374254979000483877955828407665058355342076890063602360552348545794354216106504706084294330010763076740105420352867333079258391389580248024127777104241510944655739894427041949938648858521394144305870019392581411989459922114459717148263628918154705009015258580570867655522745882723805784675727624295505400373618815518260303652681384243507215334746066118564272596998797018195510293938511307546194089549877368355663470471723147979341131194467241405591987459620928131804544240908906371950792613242290211630690908825960172898275834248174762794483525444692897207911808075952938109212750224301593591477532686874379215058665515326471137305942584802039763229943509374694505903467249943668771681505236490190706620335386937184072879756006039390019708996954003901591994872333181790600865534837722601258685267189452471863542720176484640563039133928757333298873781007610807907642995916715149080731367479873701960873795141386827451293541675701288721830951358400572522514129492795547292275407889944115368101793645017758153947309330463038072946887044283683118719241689200188334675302136944220305842169118700758207740871118857494615812994036739553018977588018259272722917187887699549088557425510977231455217601465170542695558311463582568142628639514881300747920698222680922696910894697018656844902770483129939189545649878194449285337644660499098844807723198427727940840974930480736577578834356529836757128447687443544094006427852673561110549804736018162713199298225081427857042345798077569147650128446320239553009882946994630548812920577919399220887248265989141029045624024569112512481374841785665552043280050736956210318920127394157067823291984377364746068029807491507502269385324422919338968643101466443037589854782136361442848468866922137523566908550925200498609199996696251920553574561142555926506282549649964031580230678952545391574718244939644602562794294063888023869862935319268617530778800582927090450967175624101200632619183221769185125106154242386838447125416679566374174373559231421625387253762486358425219765042893099381913124583648496008807777331448593913146992880995025978878376602261062371206511094367584457619728803764791001044476732610157406171285476248253960950877962012656803956601086878305167905086958995925785698140369988786513068666855949711909932997751932642613799924870864425844155680656661228637692583787143048463495041795279951284917719238618070280474505259558421204513768435843859264610058891724097801140549788431428655691752893198447107623013422996951120601060767699175062161062404001786717000095074787274486596055579455846195451758114991306504884611067555212069878971378601390538738791376578481545524367732637763950090796101971495615551438007365635275767832855492681543042298495163855020017894845922784120613545866307907231041297295224570821771996399709247268963341333446305397245092478697816708541382683459199343956391317763939857500041315681572335694642545600414617245401651298231742692927695642456803968590328411905166583072684922956735723480252026194711545113088075062159159922338748647403460140316854029366391560077486718453943929914867821248591831779197451494197619210622919957866099908160780623608879891232492554346858518882677295464592488616495628044618999222033928333331824759510617235688708318179523154835356777178014350063108524077168217836097519448706209010322139776032076320717304010694730193187467711204868721656366316038128472842278976766336673326175176620073314727778061508968270984353522831239327497401691679057990182394444143082383047250971643185753084245503548272785581116342492287143351051931815411300154639003717300348744288494327043903585852713716244407440279778569474162366163958161465426447452106173561418850701880839635991169065880326664697487069616258790831657393554525374052654119249976547969827702577834208907113171757620541600810368372093963536623828561175766575327019662444273549818339751787437290716868681747259377370921545303699715012716188043035255649193345043876651846920407133266908007250396463399379596613203368223803793794824572573564916079853547968328767891356112714221071892685700453581076252054679596910685652883271634117291591396573898391237342788264492396344733086028008983947096588598652623535713268065665410587266383914299824855642727057878969352132309938095288757098605998890116668094779594095886870526454621078797583914820815680501917636374492618693316525997546730046959304536242694084021505394677148386402201488646669449889888098005463828311963423915759889411451342285189589296402822767959031376927324302935356732564293555195488244366639716377680183010899362147956788817017698383243166614339066340503632978937924876126649733656509266806313040694108390369135912529357309576970547107916824395410887324028434516221272845943764906068485388747899266501056748922155205301516741731755044920406934137418402790645744560898065772660742737902007409125675041087374447188026934496325186022152542573120402665825241909888982584772721524033411864680890121499367088434955081043869291104445896311211214233686222692706639046587419124921584735500469509687552483014800476011104163142690083865862307810339609240679808604642346745776020116787778488229347429275269899720322047406182761368235728284319603458082652779631109758400558604348209215876507267228165255941104077936270984827241020665312997988594920122178935946313948652428026753607116490914512172859372477611141875957420128061162038461433480204483256724170343417970265828015947791827205567998383344976705138397760596120937090034322012780595871311940580334568964202787388698731505537945144594261849628737418600466410992279062932581578670715335085917530019533987111532658004293635114337300185768149717386529597344180995242039404566064196576133713842555114963983539981486776577008243739863198328779140638093350230979439151611460301301189558589717946062817535203527483934483039311825853819996800305873392810957386208887720231784353474636168525963030648843202519221435872895242545800968193842433387245180251934525354887728030059970462124196196184700961757704543926203347358900069973376485338483629022519261199594116547008183046331265849680870490511804041687172027317332002671314014598395866820230080310306643974016231181938430353173983260631850362448769378669330109043194698875839012098031539523444154051044933079940823084803611270280340330123813762333480514230433769760880394945064655317241152778310462606976668680004413450895813404440301058304988141691439315498202463848642595412506978538742275031930680023810070472167876016664161751676143043771968818983261823998886289610372882602475934522668607201540959295981057778291431454589739446755071482773952888377390526758729272068548386767310773808379740434523212706335578010932652377599837439208177894740945086345873779077626906212530330184716599436713971097536341935608393169558318852416415306056642989717204324859092968911685126475235474512365036021961153430797560351447804242890452763100648250511360751611576322176559470153130773126630973526433967990449070608666869395467430181054335235297189055293310846119346905420452889933278739427580301311395994818539941501507733465443182048836250981451976094434326690168831365551124785852931530071239316709398901178690015847385873673817009307090032620837026131535273497432773534260017889565278971268312498551412138852506926943311817736328741718168517685987411409395267712378525969946800293443026443829605455999853159500326122030774210774928024223083233133368917876420111811981297492988560292330096798821373191590071597106421634764807834941069075088186295784653907148622365068490345114823822362178976406431269206008665141109282906779521300805863928808543398569944229897212983737033726640440987591872984700294884980384683502928385003232936053045998774881933716878134748929000873998397076623566525964562392631738587610465058275502806827850449144108683460373568880555021933308792934581509355989874089821622043009677245053193294562039174086012764950764521165450573171766194590509416802245447196739226594295178102431845282031694998206483093946724035138016307087995541807721291715517569524097191970688660462012365910882452992653203151049224494974594920420816049031826459080814772683055702653109545831474439512585808552149038953794636470266860740860552886641814276819741357882068879324373038846518345475665648035275387298388114144830847484030777926603200278028839645689908014062558392589635622673407386259810898807786427939276352602393216002683975854433296251292555862966085268583413672025649445281228921106792320298745903180925233120971923974632231229809264565538274668814624038894154713979444772864162797474922198063848725098173392753123056300573220781850908757245575900610761619015621856388246336022793257841684510863597772532122268685935559510899433759866262400714909669725193602943710139992495229191886891340113398486195929831622917369606116978487526154837839368297126454057460609488229481949103090882598396992216437228941743748738066073558716968207249976240396329394790605147869171176545185031064574790266118829067939195582740587462922207495197540375583437275098394315811775277463059129465127767542498968177105554759141339630599038680421544945810159959878334781792342566956236084483508341753977188928250025316734347767791124747346088906513479648038672903911850604667237327568893685800052512220396441046117276744246162056830456875187301667248884547086280384376567577917562906551908501947424390346048555542321350824898448736291810381082517385266248680991716035544803393330518461373716727356208698653162506124254153931589753458483341431904471015595562150698897416508373317450827688734283984242838945449820675784639861502984799024652283293022772596502112225050605399364999735641071012435256246313048118379587373971572411354479635301123574841881984662267398258010107302154697036563434137430438520563146546593458783409814882442626072510375273480723593171303004185264824290626995092772432854555332639424259836360164407226858530310112441220783260429055307623184318103936177055678272380948982154386150786791130063188898354704610519953566489722711039887210717933191502620320464275898102480065482347735597194208022636458097277933911956883053981101899063611277152668046460586686320944337704533787878131246158662674219666881190915923849990880223081196988581277943433086551986287352645067271767691484405641695265939841222778343607989827488614528497242004371922257270824686402540819513165603850602989274319067575066267855411409378917600384527167072572443371112195684213951592429320765362524084608257630544679508747036064244158286589116133464567372962379332167771835936398282237384439850214141229181835457007174391397308636575637721948724713146186173665243579448063400217903495092675744682239648718646295607682660390437622849821539550344999992803947853807275553724249143895539296255210237738618557516520305960271220812314239828966360768089078944967231826651380365558397995534022646306884107092249387809640016993257019012504135358147696675226208651519487411823362684427679042607682061328433467530421383540984402132591739661378103564055366041681576169088912861268688523023144960029322873850887711515275791976184286675787936765791868762879241575093527020980493546111605609867484771206385821925046892354306114200829819084399459061689589267501790198998682040272744581542332721905078223976592524728184077463686005347393229267465096323064659723847600201899480628144920777776796641669635279212733779136423125899141415084925610405971928605841767686503067380854867588822225157635399436911841007165424892092876777123933109288588808283856221995096133207499408023780412522512314087932858148047997697444788502754604186348979204122490901600896740024789029247048967261010637091352849664760509416132251216593292335552651866040702979380321762500756320838154768413242271387499827750318617918167992425286983367325704595733482428088487950936709673890390460117085068139187692161980539879091550603454073056799689722601706883276579217011728311084361572532686105885500351416773393730583158074814009141252257929910723044649925691774988664223225289756037248730708715104691020044387368017429249325326862342593697148675312909743331175929474369777099757770597688833082911049772042676748470394132577636206707952370073214395070218475878420096961618899838296938914944426155190892876541089868664116744986701947049085454606619421013134387801313814495827011178998132205068591669717435017517075675245687748233746894682097566520759601665100816035706383236840629959744744817889603281935996486351855758332148188344279140809939010863540989252662830575258476401406532745265266456945197998474808748383503884996549589037323730530574226072435763671155666747061950925793610893697735896919417655461680615026955759298070303432877174083900375463811357627191673476483354114473004390313096650426018947342203518754459775172319230321092947529695205329725917275241147526287518097934700655562466657384860030934498141303982789093040412141887038448013288850156799550534096531613796261570092412656512767058586817027811712388824855324761976066294308091558736194878042637752541677792159567828581538077068396953084387955655160199412023766156531792745177205856393103604061700299507806498448192913431296164843562728174320908509068199392481427395325898959391676406132029698520613086960529492546447443098110894911631053419394104013393033959726009278047947835788015861091268214881469273252006250051024059309494633540510793538300511941164742497472297023745778031499843720930882722599430809755881018881212490302295692143198235247004078619561810907994806304468804664305078515195771811469317806731685782590900398839343931557063732296120596357702530444905310439028533146357424403369843271589064608784046386960831414227539907547492964621459753198450684162139837252270165983001306851633987988850181053291205235246399247501943303546714020452515102655695145970243690877899149741546918657491815574211574755633250736776308380137464176359980120049839150536777249054217301229390594789188783112946395233571744212120814559603200585275316461558959699666867727945560733564227442818293034414414057505141916597915445223235690335336338117543989341523445039531757758338252218769996913962619706103506605729829584476322506223191653719338090372262799610018403186584959729793178759621420039703076898502799304259519864083802262785773093082086737299450789297104038317491349357087338903399266995243231036262130334788533725406357300494415489086154855950653481630444554092069982942769890060642624751221910105713508775274859526200913000149455191816992608425239425756257402914277815660659672766188122801832071316461566605910080597113178362476522156975968841162294846850070408639902162490892111423579754493680646824118872505563038882110654572647779804149959822340382882434215068893357397426624430415326891472320354218572269148976906788523319403567279332437501593040903457167936313419448861553041644835126833414759483854383543960940145113441227141316484999329199991344574127553517005252172160429174962878435015601106964701869448185211179269598889051597338703932251531263230225225463192697231223435593416869500559774150429526339576585428615012334330298541375469423930581201383859568248882375384477619983944900108465279545647607739484054706561991915270503040123001387185853055973163260369980384796351600338382412296388326175669881825692022401243461141227523875235005261669297711667207337558370388247159817963693475756171656712707513541793143446967512486677699921238849971006175217984852165399227462137317305905154583489268058510344536478886524209716066689088936082043593512662849315481914424290985437581597474699220199435577222264685314122604361214985170979871405041342094452236598694665669710661416898504105279743064957379922592283831379896817607827095914028812698793807304871809180226288954123417637657030501406781576097811166804457307671373007229988787828381440919989428643091215626721171587509429580312390109613478744179056646375326481676931341973026393823630401993296009941042753120960524210242914565426047832242716811102094541677147064328648124800595824916932192175378615993318673020912122063996178125047760557490605307841168846297283192228662204697376157237627171679229836038029269536251424265455571447598996665442205279154293781853245478669163161699123627067264945121675310688301313042512321459125409439841579551191173986179376302312143827092453404428173216971095213932740504459707362844208105859785910771175282660492051901772574717461592889292407073010659129096748289270787872768762934755936578837340647256807407199605323935407497367424259716577466941119887529120704188562792504949152127157118688451447331136028769961922467187634912717502108246068876549727065441230096275125813138714704611217944938089195551322480200329152991613900402565162784459868032321701963320828167514842441792258123537326706118555942935336923536122624703804449852737925464146113336596659618259082135306166547461045310957816263244911894840520276462587451333483567765577072854515758822737909122704473003354700900597442719587846544489285852917118988002515710322280722995654503456303823763883660626599385949902023522656439545034396760242651140508718707436915021239506728324143356432628554461483173641332085080384004694686761901951378525544206377202682728275458749637778320529379391713368859607241151926900963853315122987224412759160814155754092610571108084851484282945915540877820171515415873294210277922815848472762112817007215196889636787219282983913937999706787867285221269657004637555788202115444031761226586267734243540883868797320378657765314942294469919850366024689045544273718432496385827747126126096880820987962213872315961354179868783768260346998269578956934183647116950518377642450762723765981890605922775001652940955821292784022497911910002675943780788079991472555520105931879914232030183439685422472148624906041329719822636004777838575890427567994368144368048956121418287186949176036747958220126146656822821872224458151461979773333477012346323258853051393188576885426205290280951981183774679204470820489362474600391598298555235888755653666382005971395805348491122545086748010266402301007818289190807373143466500967233249284840152109988631906076406597703900923311198613077378159313066186860765345068350171811283922166626536419257609742051494423428046349337851906900944832566622957455172138380425703083409234939942743764019296048899109805204024433287309474497864340349897676895183650616501991013394517379030658800385523430016734651565350853027153496678422546031760618640383553703915531375855148638077068915849106282933189529150157907559425766882709412772515504862365007813027397118234052932941609418146424327961914292563544330738123891262375356493588687735574731622440914381910640364100972056735339586316132635272679152224819702881518286014748079553144886061055078432545149085678298713340451764776710348886348868084262073764130270810978445406987610142821446003829840081793856021760318259973197341714414953518926813102972277465237553013885169642906827302043026116781781438871143821310445066144770678393136599831865489339675374462880048705145214715491162680068831023305736123310419913670929079826530686446497940650558021966531769719438112630381365880095635270528790154975679933236645450803915247675983455310235260597382005267820867742068945850135159007424487248901505698338043245448620582883455251962884620376862633077533160905896577109949486715401729596496034190089172533405303944538532590973540749985540632070304697967500721467496679383736607694214625864594150962747560577367376700097117698870121451789027978979576914721925755170123809967803460626075996193917124104890686202397094143603875317397998831852398356397543475390040942034091806187096900040485281243321842770777100226201968011636859250359936177133983355766952687628638868777380126697905421887644485025260830181210182577915734655533836169070858591348147538106177379017446013693679768806678262050993762587507871254102433411578967090495485032831487265510597921634979037157773251369924900139834612671778556531257707725287120890301196712277009618737410724536143956830732058407761896904576527941133131979465792597795326936695090106003015947690351163962698853386687210283169587063275848730165964658070369137298392963939109772737401929999648634721122272599638800976867475309931326280516485585797020290567782552536482627190087631834432639363961058140487480732489870806529792107788442990433172108962447103583387795152118169824329036332266532810602087853309593754942863315400316188424927648496079516077370735787872489340388547743387889885676522962718754987536053686008745464434613152642676878098315489685449159887052411488455481698896415374086202739691513354843361629309173539110766236268290917989264066618554246199667447005261719722469299728071786721850095693635027595417472193305112656433739586047657094202644694836436023116004038620332077087155525206583948535638694586664539978523796467624848664975285618405237441481999275051045682397952577614289476331521980129538073198172376957204318306519837570047012276753420541693470055154092342391162593539180031290192470704006962447676343664277975979164502173117928739024833817276776655500330187803075539948552866369479215480812633917614845581480476589460301056152164470938918340987399098385348619238924828137979119471557555772932083354552275774021560469252699380501654352446384893555745449139296826561713245294463787188637866250061095539366477316708677731280604318392901952115900384001720064360957259010738249461353241970314208608231124471521038504459905859623839925869133737452393625343556785572734539097750625808027632237328037678437608485137943939250136616386589308582619854609206709273165270890445521244884994082771977867997582181217443255592776178900550485953860549865403801926455560048659311113521861760737684085733742989526447312451945956004881341199298370650018830554420141512369054963337017613098029039446309003081267661437907222399182278175711756755297306895925265852231359974727155139913879560947641026473211835328312145701961098801105401222875394947763648598887532450546903780688405152301584014443362266571758544659073600115700936321910258879526559509785526561078639376816565856807022509770167910180267938287108673359793230897059351294212840205459484656604634789004261070428377056491576617778686888676003675018017185813814011169965792062288472348581429502969314419351072457109320817169040874315241512887797722079439694371463351001133986812790790479423181845387500600418564363110909761952789252241192494637134078013640099488112501195254594535460719665334030592797755902897724972541236451160969010859070474539241169058861467714229502335196095212431143499709652984956382855275414374377283412610261932646298605483927082708210765236660265245284129878178690111231854121865630303941473590423090829008491921981851535628601547217389260583227266607968229529271190770563021424958261379824277351579235037990752901828667185716141664766115348180474428849385209089177305106239499750115247774995416934670449743664498497599031135874258435487170003946001214420606073167126915226078810655416383881255669442336766181299322463879778354459825993406362916108277258970535035367908685437768473034064670842177962277426905682847440314523942839786164476518899913122523191119242117719974761055324028733583628312181065403392121199870479541172301560311582593921001375722720569165294408529793705226929558322801740297636879097502979287009200914165670865257770047024691131565581787001235167301817002220095785097866055092904726447860357258738044745011686018615039732532941647499265847880841777350948635743039222880032814106515474943360879429054802740565971755786798104978349766073528781238929021991147952236322158929274705893036461361734701506545737889484514580342051661635668808611632067350614316136812902238075419334872545403194048235077692684980495657231071932157210771454314416728781376722677292671321598047047498380806806276113093928090045977679728551236389464013326849648438667323364298941400582087738938055038075007769032077661578344904860326872641945576077161656127511001142249069737083732469414111160974842158505699074342061971591654471918000405596124814029064299662284928875105651793225821487393463743565618452857832153430215594251979579035120292917533918875615198641340254656044171524002883937201425739407241210385442319376755036098439955634876769122773815204506263402056806304821599026964026013038122473111473875237807794035472847752057801411858187607656693013877131204845126504752528890918568185491992816430716971949031393247358030679967810130860625238253754507331912003517255150140622728021310579077376836127551559391662099685318454108879636535832123195943024901197714176244866337375114997050972760007925123879817773040018217032760456299440103901747926799667240140699083047653492655271182155851277607275898017433012661906901821056692646704709173334522150155936036150516115004788343635268288840664435099795108020834422086025782843708176169310184817156603578687929581386074696803933987315458569593980510528012584192756680244960184064966561126351509111269087726587375936056756186895543267928805835680971704847454108497758007890928350724086251128040012438663026092946170620669636582312009191192370512232928945034739566456806696021067325892810840845474844583169936879426285309477516151148675897603866399060333982472032281147005390242578573503840236162826585133787734512423679127446229546798104746535384745011646538896864940596350994438399912093282560292569872966654485709485829045152683393752667636291215906955616728602343865097773911671538322015521785674676097247199922658768681186145936038370379489424007927538052996981472380234881677979983185497469635634323649628545503013244010434764041726766094169073762315432414839216786942091090446449465866588448587667816188655948713895618614679254565478730699445340597024395208194918814102648973201902174788107099507363725404391818436752654717226207342455677315687530905956000238267773089523188760221375927498664534754429655774479415143031977542632849938430925384857560597146569099195843202185102795710592840844112131570805797377170877060020929835906329150490445664136136395407940428335190330016167769227086041885744037300737804691132255422661323164148056252348304084718297638423450924967531603501307879058721864216997040736575167762595397648824092044711780654886253595067626216941866551889288008182806446226506170427056437078778234253938487548091497378494196549452305364684884292575235061410855860876432577372759570955456755553622346209079352442172224133686721373105423195555523182231809835858455742465271871400100188401620838769835995927860356291993168776549304361657159071211750391481588651173229886181460331279268132240797003134083889422811003340007696537446549022916699622489414960366692504504008325252031074595409129326134957000258418939782967016438998579544399082857163757107580363601269859151420380388741390398305511150286846004431816693971607986317303061955044431868707192472575631591743226992102350626844655237600745154482878479166396844025482131338566966690786186550118224348560018177189316396030101167348912892507128222836895803301713866105330804579337750801850834712142968489781253354462621519614177901482380665067386567761213789853037688810009864211969997620486412098860342389466091652041469126531358300077795511713418055576627843388444442583989822036235424127207541551226648782930834623122933119203828868244653526655704231627219532828429234366083700061251317400815576919626726371313672917238269803214499956473234989374081069183893856204467985641174876707971976766975888232894571696474854418035063172730254151046477522367354369417025501872337772137538027627475639748403485025335845522225284727238545777294815842631527978696737754300710881980499333228045878629541199908577573966199667366467948083924584404019207875326280304733528679855777989126142625770984898208755388698482281679089109841704159820494227856867540296728558902170470581529343705207030900537561532124301641588670042395669235417760146264945273805668089995631856709037049206845118799450070319627274243261677180288923431157915206100480243967748273505617588787073146456562139768568616187495424979930653094318173270164497807430995321207616651387593509232831334828841292998946771785776765942375453540254557250031008139781839090525075975518008413498436694390758341348824517559848415005833821202382226099035623799550887561700990078125412701683720861526741859309513906738595210670345891155695683772495819090356920194131974323520862038906149495962527198107107857861027799372291385660434401539397325302488440592914049636120963139289181015402359658618306696310038992575568125011034881204624121752489669525127259390371153777162989561614131372450819312249435876208637388684606398430700244444386531040438555557608173510784215039447835624715972529846729851594263806434765031570643609120186720482219472069978991907713924158091547728339303090326931497444262613774897623330643141225387695137253497873188674335991776573006944046370435841741040406422301315899354271243092600898602552597793716314998900129036783000597996988469425584708596972428142592181558286204439972164183749849887896163620836659105923867104158575412279971015598970512953094790120020716763991077026514986514066580860256998725144384508416294026480703060805139528932752642056073999560228358014651042748659630426330226683054698769806234017629562664330225471149050743114403572711669388814311754902263985954587478408280017966204727621052554865041807228167092144824329689514371182052080806655192033151049130747170283830960706378024558958953619284737542374623058986842334635137925517362899709563059089683955866562755069691493680943428311355647333386854288759999207771673906523894791186769679716566434490524047100424290870480335183611083713202793250493847551069251864540045254982263878897741683989574342628424112249598180915439081437257628861434494083282832363353332390401224010343145144664225926233506006360534085902062427657032511257855991295130572577871184606325898873516980244743295416584744646924408915962565621311746681800511689659221960979295280820075415932422424497262368045787254692836723814652011328264577933716548141006684486014867602846646336406069767791998986605973847043013512452088964288026497888415929643426211592631806539083097304458542408349113793892953758454220982440666994094165212591197442869483863992166019666280976005144305478793038444102922168625979596929253051414889255609942669164995791478651827162543938649093063307858452536700800566022789856832243813769047870288974888053814797106496672874081744521855611082342321216601167668177022448895658810274192795149204071368083828956392058088711487706476931265694908841623477085258670721630811521799739331339120196434504138489296502198058461950344640669275945737187491631527540518745505598996900835982591132215365188710981252791270365210847420980134646129697738473780520923342892722735100679303817192176058759592683207404882406145908238913812548971647903775484380602827044563554122025214737191689846723074192461046853336310699127818507952126939052595082527935746473687429920343884624866679152421876938704967806623483420804196826598431839570278238866142981983146361009130903161767342299883910479567957741064897463196204218662421133486195718586872298436639428050594679619776338710895445829493983507648298833078010787915183909475938385703572590633025620618719464082361251195947505044206108652831399129803276131992557808677707584188325254607686164403108361164606543320868652568720790089471809435611247148033264796833347709245134340185022508886048436917935253970395336833826574218624491313146340963277192747884072957633151958450355434681129046176964945359688578371713009060289707249828453512200918408528500302601412541418575697317406361850125670638712613390736627769178636838405853313909922681715948317377613104529664549172909091050759717406016451603298926405923367695692631612439569239036706249094275949871004108467445360577160713042266177526094438023704860244750347120474823923705591440723730406728829513781569188660316877907569384330172252360546335291250184620212043953307013001082159261270843240996149540186461672188723979968889543655809550635986899611215373227660251325715384571066116859660078280155427880199068769386802098001939761644374223573772670546772827375300792231826193314284574963040147640015574266502250448789097979684000342057565616756032900648118042472378875152432287067860890862274042048344841824641035946736749714994695006550772612457218276907393205254034479904227501215575707038025455544187261803899758430350488504926210229455826105183563167369865953700529220749447561486857951876241261745552337960275600762619170073261225261922956377226422849667717944416208899540475585709616041654666772278697278060591216302022023408726856427464551919287208679525937689953736303682532090901054766277837901072622758799406749596651723173078208856231584988321587595154228821758312400115683536986351271597262836722941954197194541741783655097638115734139637041239477160974464248912397338232332148532618354712686733817441767767198146023689586664832195965289864578820201515646909701359091827506951598470336288745891905866132378497908816310040094863774293754299135537539372523928609275086547097583644151531102242516223314611950676884496748460404342882945305568630557051412720734414211871445191808652286857513355245510907085576316727542746183333904604848009221303159020613148682331551982020747073659398717545831301162645516329405907306211814128719707370535209338772265372083770844067599159580918460128559123564087417377624402877917335077693319304002042076840597529958960632566396279385224858332388556504291557502906584158290565293483069499882386979843621583456175042982417221538558275762536145854027664767077519562898146829658228861912215290797859909768521440460033382677151028815477437739325641848545389446650000832497483655545005944363389888190817014681476870774349437425348625324640381441741741809215720454735963774050156236743025586063914433909329901882646711941993091529913141449288741356917441331639383002048927933211285058539094022662340212124846756467208824422162856597680208650485374172319637848818520253089142852160598212798541288009797697273674261549397838223630414673124859990414540205723918578663635643253400679958754902048927008571987595314514367005285163858496049798077354930758119260938906887171579451307178773329872038936068713186885320831569225913004128549863908822339837491363024319939634324623633870706028770060249714489645296807370692466235191315992309688759878156639185787806858018210215712825587293097031252369865825186640045704443361696140932120945380796242536042664806813494065926313759363688242925222810070287301466303071895831350372915820974445915482010962809647072932725802256970528524537686309791557974942575414985127522473216914646402288777627928229761892013357887298668947159431267884070720945822249914574083053378754570516287941494283992676268066829408202279792407481364900133746291030250984868987297860750007720893891429400035385200361843457725985375507092160666996168934336436341134216011484845830414526711805947202898454025873367471384078106842375891249653375325142147973541221877546569352383979815608575362788772486327807928818403995046535011894795318042837039563677338213656049551663587454365369386822289898532325175576266818819141730978611066167148550268473370929396598221328285089669340608239687737317318756219037204970498174405833417910086082970112620968523456176192483000884469856110561598462175799203089263466480150689949206561768626596154784805202570184428471276758688480742014845934267508147679496552063216898701392693697331546747797800664375006087239838691053687893371529002153653310957008254853109183395764014614424988765017716247508390589253625410942100184384153084886958312249360835038624279858962464936060198375011319160217808935179888071354720479884465166495179224813150052988288178947555454589299425396299825744862260614669625575514813051882799733506726720201977365309194490136024698525836178917490957971992032704592180331527169209221185411024036482732395629602492699738647957720260627642665983457596099901680965361952641750998898441090669611792842070476663937603024012443172815996160990155265720899980986543558726018797692646161377673637176311043360658693715407597234149417564943787028457493532413757398759918492610815127051909003397125974305143057029752395177609958370820871619885109944744530614265639563796182853421488867819193164871509732077859050909882491972794598852062212654382740489702946605473755036623676250824327781027577546882853078608884311327603949964234522441750602930632640999681991165570280414230778413223812695319885088394987683473471829813455381690156608025719153043229289171129118993498649542950774275573752744383096598373260495856856217227801357826123563761553095227462019382082193861997453893140765700387284126841941110345673652344957991017459121025515707062751584126901814541865919333208013751922149439131139032216430781039834549098409778991267102730574958335888411046076247402866281367170630859189551194538643498994306572960672744688752455201975931066004257179541122473503023578692947191136164140876947465284669041335197371446828637187620413607078780914967785403822237903132593370741671337667030007417429788981094207791760370523943221074625053656121089391206374800377785298281039996198236674488865485896217585510337960268903829044362011793066261410396857385775732946618792041671739871032624787554322674707976609866132882990768115935656396463327320474173978426536919919064671277819469114297696011851147123991624643858174696162016532038069041851662283435164853280008752728912546568562970120149042391843128848838966322603326649050462542451421534758411608198094443837348883618696588170616957640942725442813892694234777051574762228538600021294785887209796416284878482340297862364515765895391894495024129195137962793203303723224217632615584148495451690415048159488453264532655365328158485236149911701749145256502067388146556741836776601362288418139854457583817514921679875362363022498665042988093910269971884880259702170448590302025528137614336727300023931487629943329420875393463751047952166375936948592854529669238820611960924010892194059370350390088948956755436204365122381350461223237238286685607701214708199340063250050401594447613733029311307264873742886534301913566263560985551764815742058532406091588945536883380125970638292717859587913487287514657027817506241144623276165355642880761385554669534964876704925982639004790239851570011297351042273498039793059489321773137783589464274214908281896075753166353047413291676672609581988136675193856080070834459796944854118745963787957051868838841002457530069790206747022189524673306296533034264742525064377036653579617992723514016808825723093319493223587769747208083163235503230537287656751974499124331073478710228325154346865314489157001857271471357139528187057440399903549529282198419431217510760123960685167155980095924811323309609727752729040891932304513819214059548690959863615639497870052099940045373734315673549081270370451020058139440750019579839815341237925495441268303351010098329406869316763148652218421262975035469631880383722969327319636974355206493554143283960575776149687684325507182025989669001214739663412119016114515920887272250823050793294949407998303511743913998356149952831769874105300919164637115760803351151782354475289095166966867720560107494972800385989688969017595965163208359924965791871531665176554961233053132230049037980289258156588534690559204732022044858215739149424544256007687487596319638337195489218034842578215146743279832462671390115095547350384512270674416815879531468367990096885035267228913037050348037255164751051395011206943032618884483601293141451326742277449020584356613572022976025692437083244147364264168624636441128214866823083278818849476257523147597591460191183026470326536435104862872330850301372987131305465681671971689090558799197923923678360766106913972915017028536707056917432979167349700628239120958214193273327336132704638497897116943686363174287598944179597000515026594840281155336784489289098711127427001455697718603768366257891012956324942173932423216835659941371497063446393121030842651734781946076348076866708780225606083399819685270391391888624903967688462013647561842453010941179542827895066096278671598416033383556051710663685639995451592029489790900201637036193913366872011588722735360170065696065146447112034009430955193877936892857165797994570266175980675065858431200709785880439522089931561072558219037389043825212085589340529626870603946308386296435704822473151198882326496512339260018745058722155842006289564195572363463233173613353963598882815416324582086828205177181267423000996714555693996321100979208927939120619892522787251770626356739067691507503627904959061701902639885384824227979359566008446664620811785965292002397001725732129538122295857247548029962280452480315147364447607005840147011161575833015879860256705328696025037668589468895502325739606311335079006232681465896006105918344498176269468436062087463726002342873104877750971997372976122204844883615329681410408419152731530290984810606591052412794720672167785763850341333535295376861634764939398220611335116701808593374892009856260216375364576378087307987944163031329331689543608548188271827910802764982430917005189925637772067190128259564439681454972119877536246242858734836672774138854707427898811393103671007402604580950937400893191455037159643002207987099020306577794806331507827894038849602768786750115035265999596539119038509957541361864607763827610000130467442037558484194107547431362832174749969140172562745801909830730814598956426371070744929318593359949677845463975298668233006626051970529583965549347879340768927298238650997283368873094251447752933255301092938890950596216635006458516826456544784518042152710266414547255724357646741259150035097344200414013779642530276559580032779210917233890693802308357000745720207750705132076853676727266929825727880655807739181938652629879512717484870231133907881487970756629773976688674559502682113872485067326530876962603263797788381703916922596707028928610723469550137089222737241574735214631186061683329642808942710932564521785775727041741046337092149047755098929158365623669635871700225474067206709319291129850498409011874970825565505136312767619511823739310178894051955268073831573270199847314082301012598679864024931265299869837067517461976129058641971510169190381130538996259154405897798318811184863673351806109642522933420237995079874714117972413319497035212039022769076169399866153924732308774393319938473934655496024674851459561089383214346380443764296744780604454286117723562288123545549385493674703183093863005994808100777552266409858069097887137899895377726805593106261583768327022735695254816286839775405983132188107209595734892572733360710017737373222157250624555407636812581820994564333156644168821112408202963242492715404025755843856207997248137254314797916450934589175282303779416336623459540827035956674103420583006512596606761057123700196888288333578265256540858006081247617834612134347042659907647188529178816559876033666059572297206046764145938405605098500386625720249999162834534760121409575756131137720142222537999225819263094764738082492105366727023375695274751246757458565647543718737029320380816471618488175749284563980703605929985814172070523914555816331239838604164837220815508134083848989010836658422592702731864958873014915475045779865601579496098692585740728091612374576120280803782896973036847055406806962314950857658578017945769309546748928910724172699708782871079067022121405375334899161270948924726757234421019299571631725167720268164511954116637913872902026698945220226701687847434206535929537165547687146975220730865417530769550287747996569442284620743800552593542623446811872966183544752173259547240359911549903381098929253833230110812601119458291324789182614565900570919148049889810641092653198641549154390637115322616801391369207790311344117904493333053286022248811401118312169079855555276527701296897079941529344075774448121521583391480732658854902773929189469443022306033643612435270176598869780407299729513050264336292299768597882788072738423866434105556186732334052433044212654225809220261280793778683168093690965039307185188695755405355192447401018894341851303637710237191654247385569772343454416429294281841213550561603034041519730517056720041525484143048003267136493291551004752728863574315627221212482808039480492339941483316881684885611424639856277212489980104692524650984297680028198873891796716159975629949081031809457765499300335337276602898604130513720881674965579893856464931254930526179415435793243996726463822312799304382502745704615661222802116022529711119147260479067911433461053291629113994181427058595694120934870532985957733245015235674497331430597803470759811810499626483465849894290831370288242464076704865819455401122261664006720974934773543223660789098279362918017865975296691604913318058645441864901970053127211094867289216110450499928503392382387342772749817106863966255165054500777729763352283919093634166268673028385977628548811906376571415674852290027641300722846462477660407199969461300871230969816961177640245880240401227741871190382814536408787702140506349204568803866350637582765214828725284091667595883689512561474401124381058414816929696894230826977245882662796879700654122374911371368351827381678654994990878966706944223708785944703722874316150910959663144646620116407094560974798490233636899800643991772845807016680685505090136287236869231137521753195913260368549107927085228322607941334284484386964553823404350736751755279284575999389708406534241340333005965422584519774354931565252539490407690549755357597428327073926140502902553135705903277660247287330937592327818012180575487015484563232154881882174822017593325954845123864285456985243794005564335924077573924385404234367025366309693429786574252670299085732345216756171012326144905951008922023440119101762193382553485541451769492340416785049481308110803742152508329816631503440587820684050810797635114778720314049177933405699624557000510069303617553867986210592211374960174164785958145993847272117933910233628898746710028843602105217003089214638283464201724933775145946184517186469384244875107704803310585736274222556898107835950568134407812576727646775911266161717140547868269222133507115927757111809362163564007031988615279154971581531862025581610360220883314062233437540212794423989111514826176145675982849412918435038143744040667213202736965590946568877186755764689593799840342843924364283138499936106455899573082175240957519804075632248172783719391203193352009579679885408662885841715865402475319461984784491563623794227800848251900034218297250036807797328296538273826827096457788306290732576969659258502247883479900089277375332337973919948498007945620162683435293070826113915081540157386358747910876868193306223403398361840971289598187756260232050900908302327612607842385604762399411611431991823285572303502563299623098798698137219873839534950880051105650255198307663100161926979341137799650871699842950607343859928742669282132580622656104270929855532353319048429705759791802868591124267813327892000130663733085016374578996392684184324487917504059660568134347300211521273649038146014660175280495123235652332300882293156231890747249051812031716773402131424782038610674754918456813017593633682325956294151085066373324134586526263304427789203299630116647843105578867496556019363454066610798043443310176040536965878782070117783536645957977065009110513467180619645626804589285531392798865448871829236174789553813548224322788613243887453757306392553505610802203556061801658011311046665551683362501539697327948333920319912234227331816191361739479097173520972544418739761616799544915740666422638836210825865482466700004660304503176908034609680389374942128972446250737237880118564504954371774793059010541330915463276228206017617772683571994994721000858886777529485146183283002216053160745028622713940622575227153615311794832539529555274244322201853841213070608839943729003032416962236465006267920699801174507415138856917224988122869452188670036554614878401809190596846415174099738386440357230697641652588892465013332801059577087437813056262691743389766337468528759902518227169800667136664670836163527267628164912540054473243423600326693091089939376831314424219738229932297889950926214542760314239625427123009270513125684963446486998649133688494363908972312642698566276251119595330901585602433898243060622094212689895503334746867930681967559614985279733168893112386392815970487214631178489894111677299411215355659556460225492363602976749735820686824532051958250773037936320758253485424479694368432395830022966480319451606886146924698306842837313637643525763595735014868602195436541406420155816888449682658811234657863025159208443968729093730112301883200824108550694627475585072188198817664162535328521993678450918418242865580308151431912471706515215376856075425296376077676679035534042068195097143696109371782500104034683389004723683579718871817186690160141654997318159390275340429702947824688571580308070827159527319883957082724432072941954147737616049636905407906624856981921494174272333670861192262439628650045474210037748154748368070166212970969250690300394340139531438843728513614679489420220244099045646849012808494223005963210017996731146920450325792215356254837195364557130519977003298496393102243102118051197917641211017067612037317887018998336563488701928888753021572787564683650420211448656532004182735810105248317903132333099948034930594998091035908733068342620837533050805153473157104836554110185802893871476463972867970864817551196744420270623102885334460284009806427363139011518825735450870440127880320308804589994013928578313703201463116900827540841631613701137822817589483075727431871266301369554064970512401451479385616160726958755161889775922009372549434226302666698021905642494132971364905845144607093545770533646192702635109173444187416599605805072176232237067052769406459882826965173859674431850493508870977884453895550974642991494141574106330880209146027071992181698182184832767814056579803191786061061546901475073918132773740225758465019336292717868441359762094679441340560979835252532474954748853761964552128720214493395185716779718324013615168083394812033864776832811535403676188048711952576751418449881714329952895189630212192440467837805741397216467615035218358175419598801558781838987797647526758574881833126416750174981081514395677780043039165624142126218301249781398996126974931136631245345431654123137024654467892213863326167221095709595677587478136027439328252586788094319018783178688516281550666659348990111948420400865495430600380391783279621069720226191731013947118413523826243980820380447256042939688886080476618148544279243550226176043383037998753249363384433796393051064572901470335048442515082941002988571760220943603040268954525390226415655472296744406981609957048970618575948306612453968615335485514459733141584882306450872906274746169161269381122724032455997788502356765642104256352822432937822784133745390632684172481129474777303037433028454614312726146323105400535342687429507451607116821132589450473779985259062808897060084199432572435356599159567184419532667236356954260375134016043029173905968816413900464887446198770471389535017208878293005693458832943518623644105052047285079580908227745262837930962124524759504551661236143892132130363272458399477855201035817811754691051110856248439781327122642573818306582488149211334516011875867821822368987687151085523430843835672914622421057438617332566617419609993695187034802990566477465894710837827384894393113375753092742189223362387024127813747469943930671737925896166620823268184859429937200672204249666572830176611725177047424383887356095306307719923028070165731571092372263402025336456614211721025049834008224586325834169506779749076215733732208457477151672837021651525727269063242073108112667551111694754311393424962522588656320559433364332004251938016866223696120797208058074084236693235922268451805553278207092349897619671217167797916242578018144652051562339993570713800018654325113995240615713962786004274876102227470360563008664898185563685128838097840316451301565693454539386734342847706851387223572928814005816677927743830394991424571905287573572181544815468209776923003970193158885334483183458870978416608332229481776429626986244001895626308010585569518734300323045912931359038982448927881758077652598266172043148426740622842206935805295690209663383701660531635851482480292480835321333386633655265584620654264720813800422886611641555385979943440777185681510875552312644854596452568210810136354338179604571868639628191249728111415546629495435493491468049574483027196987890836932249579247982644902846872990728370752012782841770129603800804373136042350144754349082325546017075724729053317602600716857853490447693088445560240800182475538163293099904705957957701935015157746603307972570037376232559029064133938250127556264910051061660267358226001675792680422771256304208896308239495870332588181590114835775885313120067597489732148487380135547333682228958437716973324359686706147417421482419849171531444456864410307377782788963365917573478598583089604892378886499574485843323719079056387181017789704894141304397953961930475513696689091738163374020284180591892636263493235895796123348339761283575330216931105395096372949595796323790625702440379175429551523346260811473545161728319151700001447489919521877647691779661952568721195007228799695303048536967576363739907944306812485441194346876976488405834661663221425439246778329525291262990787626422760633017716949891901583354519093196971055514254380463454478833729585079524816909820866887294900137627493602761004590356806604586890905843125869236389738150787848391324473062098218760069893197664819333138005298121358847046135638942792775097544427136155741424126712134361443145769359431850753974015563450430072147733803601591564423151526668081632565007265449173709074223609978850175286048308790697764337802440143836917576582349960023328399802426143230305164711505246133869229559619835901852698923720616276672223918296866222996901283683721070457997382325955339199427301520158632903108662360890287431151145188936444167275058578236392047850730691490801507742138326134560976835047032064808690069926661685875568655729713085488684850305592742226645648955217523425339441150553472511264687430112250692050293658839346937774273574881893054763054568545441850877833440271649529676435765455423760868313855012846179341056413251536001101162313248669890378322767052544062968966439016446624269768737127790259484867230504188351273877149995832292720105690817647720365745383062632121287823446828571267740216131994237674596902634438027581896547333421607619589991071359330460800636011434078590222301381443167561894161008386668461306729787998160269919845016090364450354300688574918078911749886918585591208892734285624075059863746420671826885841043899156996004860016780292271554043347812816832069742525900818999385243129486549097014709034890165804857059102380984023029209548458027031357997550608278006149287034206101897059285556250369066660351913510506127376831536039159829654409611984826037921536928215231753733045007459456026504164906387452171288216497796630896532035779277055975738789047089760728227286155613336554174654173332531950461447159612561344728387607949792034727789026064559403683893983051280431068978832092255267403099072766632556309829143377336248763900980374679958363316707490956015776780625284181585608828125103730456651678381232920264433342892479989537637002847088205731781480286156694706717608830179762957436570386376654304674300182217752170797901137813202091710122594459394760326335221003440960728889118058230298800013921057699020610411942225901441267639375475658552332636461369190963055900523878490580858547218931432951256550989111854579090474309867245198215648409291123567047044715816541224209484895260239544251496896998646892786533720503815258355339525959497792450373507233602929256816644031754472093350234699357342804162805758531231021040347074105539479466234224721976541860663307560938392843024556187632152293695309496726145391155042779742913946234811638909945571987980589108094052208566347736402518533157928942222612951967101487868953399041165626236109930786277443126098579151986510821937634423975092444431888832721672314473139892756539387469084837859998390301928475599084480313975722625779958023837182118261077825463280501662756929334817101999213688491257974178344124636214807993263031789630077316228741100141474468295871096409436016511464370404404241028022371548643416312686971029674572379930378709119266022688543493392884697783318337727553600236045269755333120740521944384187131706500406230314257896396246255080534623195157727216068246797132398235071121466790333425316610500926828269783205170797060647709475332219113003163432746664921258533486982628499333649074975762717762423842457529376036373693066569858081324245718423191659844352483638391472367709112542879749284091671484105606173495255530380802548908979899833997441968816443581159963541944546824430018773934485156786299371412464202554276280346452819431969985156775942801589011724299114749232449636296653611225646208177808419373671741748693031986539231451042034208787494463834200742369467416737913771854172930211067252900498505893950015764465257842678505004128150514110167610902417998116367365117334363052042171883469733440960755061892283208002068232188255209316682682240552506785332672739354462795354450346934670886899782965976668015586855543928054969160015382464415472963426434624744233809561669748643267851053740487153078328524860921479293890400619194077585412577218297403111116684575194337715466605931496322605763957950667237924804556626744959016099044571700747685301825835911184702718173839922065911469738690407106688919144047818394015255498430984174042962971003758890266798003754235200778918868932065882567359216337489932190743330776323680630676603133058099365039278499663305834410583955842354706139258302962560593729496991778653700735825956729165563757533382379465066702813316336778778577654038445076223702815600266468760083300834776941065224231321962817171705174574731580314683779442299206258439145163064219280762347211737339054124168981222116274474604797425153495156144878464519059805585274927706511046968998791226920954363291875659849758160049817826534226806175579977887098290397947769214989713882944129899219061110097273344644225458708112562751607689560418695263817656297253525320465473223214112734944900070707099953438237043102995493189907290389403936008464579247809747706893777923609348240652908044682387386753550432143803360722122902285900152168747441868768021897423582811505868455636821982718683828227120229535595264098119220626256618174538620437897647747367401301141061917820054772889088213489071363482791559395889843111414684492931795958768731046199466217242994055336345604372642883149271658984335801458097257627762748008683041487661204071519482749509787606285430526060917403041585619477104240215631761276250378908264233094832129276903108133096335536446099811346865826291938503063364668838528045204391206509665993437612097210356618344914206329750935911055338381996286376111221459831002886387775225388987107169307729482896828388180087890557589628702822034955559219196428207026601669747045075882412364924679308283604404779920255678081009708270739639258982372399031501697368780738550537280660070339359029894058550710155582039519294527557634161056024268451173194709386600564722099644970005797116286838788480686457545212988762120113323078359944557962427516190616612086592228844399937136916133774776479675464044752223651987918906668694615363403049785042705632697368897176781696358912147945088560324920359105000527029125066174457109024882318523087384733757609629623003231631931770512418855188740089144522758387203039334634137039883747500370004130303237461681052822789630240657195428474395613630596066367276616370762438615179317685637821816707263665263727494296688264964215669098765755639538981517371539190373873661781085114373549171826915166465879543143669165745599145091346983005543469739468151849128526743682163323350024004153475633665554367478534356638434923082664101186379463682427414763213308555860891159915980692993333587379992117098776101000863512269661085823779600772982529916422452453775790786376770017620421698012012064777881681228532297015826515375910472798208581025447164389092145988599305873899806181444371246796092789601699593056731147787651645460418280680813730564113947700339551059296711792135735614221334977010355578903931203679507797267855206913096101330579957365565989842140801108957774963524903058672144033212266339457776033667073989866375655505668375901954111704002404173174191943945958741009491279189358322050960751544565831076463220207415567300734929839223758860243633021935876027023538348508090309724047230674833834275654193901756633053435905729253629066662924429884918889749301804633682740604187972644552879091037459015279629986419112064127663416654672601031014394648254273194082605192525255147077806505381939703414833318838862445446858750283513679310692592655423455431402877270096446259325936204841509976186135593115053743320595761718175393723768349489658805561971033846056765178060771437811751198549581502659540478971605711427481670433543079836276808573752035980454707189874446275515686506528990344270524226632900673770614073845331455463696203985146348454050362452051554480901904449927791970194634052040216492258796854770964659189605255080204374356324995527887564018548568809046617266472193035398025768955407560709450892163927517336248487274606344577460614300150471480663802307507846718662686654806287495334381265085298617936062730541160877513206506707600951596969228470600251059189816860563674722848340366231312840027834965026420742946480987195817989198234226780109913672658697795727156370838206038467508512503785368689050002929245913814496761036801565049400645017202810084407498248843363383773894514642349980743487541949570653404875993062968657401772298922070417123793803686893019504714080531636792442761149872824349779734518965531035151630019284107398519524680721136438478687464687838905466858701468200404247662669119785052770232995025523759202182397613140301318207811094243418940350287818483356998754195491424907649281850127696925845079823099245639740074900220414004081498271617722327859718232074443609638729839696176952326304422667140356448013695011151273619595233895424669799609029711177294979852601812095949855347936039958702260353868444600600364558783720817344848172898496233433161685232896281747686566947774478411766677855504054020328772312912961200717561821857496607212860115500943248320660671708373384392447174976506506539586948065274985109643504413136663117161490927480089479715512803808906026612338770210246087126023692362782042720632148856955838692445561929543979828245863129155970161121393376670416047814654537398482047932062305458891830236635911070861323613620253006058168011695676779172186583898611064102844666935395128907873673588378809072939335568924229809218999375856525199968303539572043038154238323215589481348797303349862256694860944045237109631120429473709998327752375902879435101480796024108531828227272065209171405271639955700685488899307132704442638117136161378421649267084544736015337153514032252266939931564693925488860927719469509510272056589820851611416937589185849776733958107395520554113611674745889400055792650125168022564291329046451224610161163775895860035519633084626368094842986855782124592378606449108626149528386738574846062432947697556506017344702322451693258195942048017443861827790099791026997943637738610234359901972902665721769349053124210820147901076234422117640498171094045646714796483185003646070652437379914957549074643793556608668735047068802888022737169150667961622726367791420445311381296578892190798930679280795196343855442993052667118188316931815153300081983413703363337811651364478449564320263044789056883253913275685500649887436452972401903932194236194685818609248199144718223125635036107099081438168200948881457479183400742088054928243464822020180900660893121848711422023890596148129570789868706730963283507728003584664725263332609254679883156281472166531042903551063818672394592622491897185746622756448192320791203346294046237164550868207478079212002248104482408943767729645703750521488432383347784423657626596257747642166338386968105155600405116658929422655643050674319606632149383268523241124103098292618396566726537570962272708163765222226127957037891302736224245428023577694966979791603780602061199829653766864148605737243785708685695367174305285886727941504869717079230680991963559709066708608670443956949298903498460964083552124320821587220985694263944206808615253932263851464185822550887243564076100755579860304300619029399775036529244962768063016193958689674842822969668287160070541218853601125262147261991934570112494136040073137103560123544914144561132620814797220244562920085545967671077452629446403698711566737052330422769206068921997212287651592349172708825052660478491958444569591495450520343972219605702242870596347719948745342303584973455543483575225900500132679289529968345283002924967871532569508955994735600877161478673589070242230345256770926418613065262240266559302379610890865402852363543257010950385703592251672413370307745952829868199594531618109970861779043195214945408699800192844178340441757574754984172343224395254218772147191428779462270424551103840410229963218214867244785141700432390765820507441743339139025493722600519178055288668359278359686130484480547652070110387054567905066713326861469179320974154304370059005751402453038113508597623204988350037521901073172423913206120845341636425420901990839789516974919080198257075469538717604355503102935456031882542412341538026023579984861271027261945946173025015062720178271834750795375461428232240204800353477130873585543865838089865579029017208992152362602854413456664421007557131741153618813643596833917836685303955197897931833440266576395817763844150204746383916943494037547188963595665388378781758008529433105156478063167559763968462845486851761307849235219287584385717421153727426624754946007498294646891131320260498242666606178236216752116244676557185201427707265170545769895268915865486383653265774661247828758616395510569079375790474680024148084617300235006511594375995047226279535583095656852905524124332606591239655661629751599246785697672860957838708297268881862477642824608890913102771680923341732181863894130299128017857681004118453317054878072993539224164708465927676959600861338467258917922246840196523600404519226688050229138252542744272966866868443469993646449538503029644314181683306795660659192242268642337258970297498677982237986970350915672882501189728505436696999118229276432013466142620966740346989188123349128498786094585083085411602679187495638399726587938540493758893762651752143134009156297676634840393405971138958961117792372719731200871190283872385042099513650208959965023869238743112300764938954587045374039132767427546585691432492234424879549785431942177295510329043666950971229057941054222971384983331845681678004716527430344621509373745689088342772654997958974002771586972817567162177471606239356251321321833770630812361990667620689126110335839976685279402280069332623042764363200804602794543982185692689576088298105203470416289061514269556632602412358456847740221615331750794904506189942775416487668128306087676803428013706151517593654200406643443342649696301359769571109538441305475137380651511465670427280878792111618838670258326148352033595248979988005984326852142216610121386423444474035541536181254512327254179037524328465261340015640340780295083173870686338582189043094372682519778354341404414631225050289985095629647219989895995702760171610800263900454280667019368870086873760963551705396109158648852247522598276085098686393190865715705146479430649807947400359935678315753169786401641210276735927448408214793161687201463073683268075532355507233784519665833959619900885756053204649043987187800038776534498482791272975979267858932388351978435977451993379060500478357474130113438577670127746776558496436534992072911275052447806799002476380813360837691593430734470999087246124695115849990569389458192996831525693434656016504907365434561689924417854183096278774686425647330908017712347382749865370427685894183538706624969453589751297636492166202251955978204882011220245206318017431853140535714939885835352072533605928165647366222803751254331811906863580450110600088489487251990386115706860012917339491329199909896996520402864797478671141126414973523550602828056386731891352062018226544742375307591479727783454851965809571176703724891132218741848842053754566430486054841714354209812207903439014682464308047630939999988094364036237904956690830665893441166712330719087688690222890824550943935765370088139544685759582215924237713375928904945669913419577569487209934552348797425549597347256682457032752485634205803005190663332226147298446635664413947415361639031963689097018929342184129654706421204415798309282112755123230941197046870366755858629146866581601146907581814532388625994688130611008586552431330388852361787541624519318548854305204765876971781871860603245092267050235623307528654006344537474773981033017530106392858767066006836624239159344747923893586844746688134397684128952208526280801524781158090872827209106827071488792622200188720713358347311604938750320247135051109734151427188510745439438635998251689386727832076065658432996419266877291178805530639877075892846654650175687138850978530543774756081598189053812859759758729027641914587680469303957989402502806284494439977267883346034987144715911186408750884801182504660626949281325505854460668072192807672263185419706089972727932883563086796658216563766212687000620861398579533687218329766943525865852181021971127999885232860145424388649210639625508112914524525561656625174539821079165832294827391989072266380859387770666920179845437333825758335616544148227413493668899462756623005823486416374891292574345426536872098616334719547256053764902611098616022063715172031731072233527779023562301161221588721906831847696712154544777718919763647675635988365048537386814711189717191680944245320165626465842415320460952197508138749436272739115397038981022050207211379642898167845657199983209578286754824619925524168950647562445875680476579827104206491828004961141789963265349383697099618656335625251912795274661164528932439425026053949912976789486855451383646298613870593008486395144827542809254258265928181162345585736964351216611275707865878738910047509495020741432855624753234068806946036586638224159205947701162724553507701883203412750616516434098924276636194906604051475901898182847041454067986337749589715933032108639679480245223602190470754084952438093622074204216444665909418611516125421439785303531471422042760509910999584258270653428065516995337641354056839859054039114411181079317923547929780417740031189028340142059131786017618140101390678394516079734093331452928833568266761087308965568666341474697990920129163951776564760410013592308464077811185770171475470930522796107805129225922137966767952423025477786869098698639593283017526713492573942476657037967199654905791034645172105631611162847576160502802741473442059379873857093936599764584064363471023410513868560981543641946207093487495565715152587647398638746629112052521886197864471935340121877085644304949764663272111731296630740147428853388071395548396661511643583279632707149703664720455482390752417048737110902035688878426271432845968294859010991205632800677817281955948083595886373800602033125812040474116195100557076637513918520635019377566890879122262552915115417161159431123229748480794600084273617836945265365686389089223792191488894151341276438128672535439438366587649893511734595465822104620701569462496298296865869460329716429610583027362946640786695480471606876740129309838827011269417457672849653894996777001354970717587397698853570160996887192439801257537788630045299606038942452532981276883797532829434784747172736948389784430315445572332719258195677957520176840594910394510248704052977754613241395747370249580695219061193552465613007606081703660639863690919687796732698742069841021540413587743499442484539873662899793704931992012433108717715889083314593694975134441503089698884833670488953351734383666137504988667885018978762488960418919565621349255995794695821512718736022294434576031234116162221187830626301600256151306008961795880913377859938275738911661749220004801946653971672531999967878246465207042025528958061293487922157070323505107887338103561324690589125428016731452226105109752688445817395852867497008732817370265039114188086362578600686770953570945418627203718295923293942900732045689085384676928076767060783627314546613574645118614192699684003635524578668252860552360878392633720949556865730588853552427317183035555766195601813206969705231472859160365741528193794803907805701776624967767708305453399644104114907444809189354423715875131637120690928497188186526517956962506087680863799299275143819175513141285698380499058383246640718435335730319777192340217335512524754028959464519349789418782111652442071964796335402808427682587455051430754091288697033827579829172527012505174857251865676052968575717104398517758634654927363349783745785577517598231188879635606429288261069152211387730469072911784396879571799691908767474462689390104383893089359068150550625180428342498482854745373909119655005787485236194426736533892035293381796879434588513096544808259521653348853314258590660527010020998130498690661069867723414515021618033218172517802616380355080061151485165018703481386496623229835504747481403221341371113390420156504686295863257338032731889363378212976312324081659465812529356069832594548209727187238558640120854265279365784370861213190084944463166922768047499180978163447051508116030554684547772712160353784055071044751740177891585014403339971197543933371902193716119959321721650434859860685990758148663385159352253982838636578704942679246248220646590763711607991166692270048345773834950507674561713296774157419360542304651086390470743096683021353131373839154018600548315819994785368407924388630389424486667291624654749252057554549983289955052465493964641106724702461816151986852957408350662714484929762761032766150795467409804855648045199267000675410514616824037133664687073918057622459645121125172149284460783872950655265562407823320216342842274497340667060578548131284161700068279416524086160530497641415353107624758516114318963266412154176478839805739518167082754626401913342724694340645460923331075005613748858456010587076428055104915683229921777187711142288213991423513899978048090741966750429342688440587693097396988492126574065073842413259049951332807489184863125136600516890986757661893064186014507688996643645984782424763792189468205293328618160728586254901936063965972173459742466853489190771509695947159841495883574994079430763716507587130843035065965632761424968917027047251182893153011635136401232331948477735564322561808855072686336156670277476651316844730458923304684503582734139215520565595550544027007709571189123537003289393847190713012300614948500097733041901629740812941213100743652169676947371194465043026752874565264271175767729851002273181531479121866782317638143001332135723331640836763048286350246229295103944641972901177723067398170854942821316854878635844231575651512642461971386356986426486255700728832849774652565698935888122065615432743523505422643047630701759620399894456937540776042772064285661564274964062318225809137604613335540925810934865683395925959772329262992839407071026620506960261914750714546729537919360577339514215857736702581255477778056181838486292357829048630411696759475957310921636487451287320609897751574443606283201075175605058986377394642672372566331329151476362945965295737504556033085071702186538649797039982691195723565466396648788367053249917605476246373688386474323936803071124081400984131341871902324613981672847434856858433249067632268078829896998532055001595456425846429539578329671368408686055513761348316381997106910411248772293085655961162892519432728956735793085488253462188059783036196731434722447360740190488254366938385949864389671584434649781948460870466842440588505813290948675281035089418917687360134567039840254095399839129261639640119758504028305987475198903836376336047952180090563999407111490163488116087975582868871123719784113127740474977471602990390986293201194341953261306875586870047911505842781189273601898845537942800938355960030555642490574933831131581268935809171821679393846089131100091378216960256961943915638570977210852948534084022252631538075764814352111017860607966202153645745198042879249215596091785146755347162834514809769847810667946952580438627893307285443075518674674031789920596232530696849850622256453798019332407147010538831245721597529373766414460002433347463421615647109080068448573310099697956750861322956215394896612907076087059457732110961395957206837698173332177227229452302011714958274624614230087924563915399775879888934360519280928053427572897722982704108252650603224747434655397124445821100941808528827664287215530373207303053699983319095464460134905800277268733609096752835369898691529918837779447086732080511729588285223463466135211787770822024515233098694720488023698390374722450694529233381668091560216119453807127208569399442711254705677033916606850418833921120710205797189597402953719137885082395418447297205125830145022363998458881884807953211096136070681857622703722224673678632988826195350774884821925801010281677348780136517370859751596863506927611486818679154330633107284052872632960427465016745120980572461598353124979650833609628984651792485086549850176579267483683031402372511605190482004923756886970481323567013871221403485259757169823149392103504453812493438547540428771629260787159659710003242535081800679850478467043410713802300023558422927624418809831210278498456882819056214861168838292138076955902385959888827184271412983153574659483835088636755687250723700578820808065164308513057539071480812519819727544060428607213072331125134354735122823726369020592334684089529039441817472221808088024203745429228195051560209032570665666751355222110838932344330131092267456090896489284716009001684342568603024065183871253644479108448228634572342863004477715356767920051268015832068451454846205377240831702307511858269588278196832806293181415796292302914590092389219105024003301715985360210689816573095970547087543049153507572834710213673659078298898898591882585063838705823236104013427368021457727978126503514471300766851988988994881251132407123112254236553741093057137767646630889808197466734401948539674274646485836630385829268331632474758560734112956044235048151366503643698241306521164873213617278153790011184387647921473060248599696626459768959996166721141576787427163145743421919661254382486806379506567078379305664548749715081712649922745877070514017840325202583743067239793875194073834782135424926448045941693601237784155756838021932245156719814683131935171768767675429368087429323032533190057761153037784880767179158737182418962923496335773088713301420658240647201843686664771101950822565441850414104859509233151641756683533590356805977748826286039216305114284401477112276773597800556996856451569815444049730956561820814107234555077094889316466387158797826990967201047700486620415774364185100889775122940133862157255979667303003333560896504571299486045088010300699570811832741220140288467318761211472150760828645008049335060583412440053499241007918978971569429290601945961666395357390057408281897958656106302142509405780260038780667470257278504231026792552686641647837572391926574083353101091994605868912629692897227996956161837965862539514577656513899156059691192570142677697195362212692149247933013222534179673380454569069002244863145436992805089590287985363991164961045693416352373816727007982486495937254329441475017422534880074605366852741073581421404813819260957748575398323964322027676898295299322299100591113948090306257867194685220754367233144156327474584136782969518209090757537380815225506815816345129685843055470034057309371956511533341188225791184291278976244274248668828946084173377276285891443438107966324185813743384655913361250656214408631185655074820365954063119945144735523664953074243612622082215877799181173182399879167726862469810013308993441341032556512447509816738305783880027931782366266800573386628304526915012174988111010662663169990740895467888724983760696426756073276550202953064320245658488035743409190184579696709189583592158064318921155020782225405896212385048363336686405265095398853960186874802543959907757086356471181078173208358824107893398484960950451578623690693790910298336586125057800612820428329898701303617425508141792988510204392776039100886399197088389422443437476244506499432533500755321501356916454474024506341421720926370494416285449355174966739518682337703882270174283953064866214022084802356946174519350445200550842989606385497884802923046876509318243045606906624120143232886035870290469269569937728369957256117999814168032889200997207676472750162783686765054092806143682559934075371085124953350521838122195794184376875034374786135697466596219899298339794177462913999110503385660802972505564715846634071441881040668160465943080084760742332696898705833407995914011735614015193929270938271268735741291186478788173793353079723922113319230872240511987767573925372616586454942697083524862884237305108692312118706171978518820915082553237638287454200583668723990878943134768171210252157768217854034982612334457332125417431745102185354965557943415192404142938575073450187322631126965261480872569269603570681215189073765850989107536210288371502722114571534208996187558165315975373228696587066134410439245614431187895257462172508881422107328832148643836915778850220555304379387043875178553490003333646328250636066843458816522885843914341074490887400950113499257500837935575156555300879118047336398028072735114989965449839638279323086929816547261999941703588246403682296034747541097592592427502213027233181119369252558367948344453558122318501637287546024559142893617989841003410149673673486927965535299167646813962031885648262863665205119481551983193692436018720339625864347742024438548343292707040863602371771189578774487821090831033860337571653563837691481115517757831860586527133148347047071014749144072952671734373188923804119579137583117172495470151053229021227788563759144126835909914773577218967856683947896655461937768437199248540920347747943597359645907510001341368463270539942366331827573260279059313289007175242329799882028729815456980685752602720853450815189558998015379859108330262659503409248220816969830945099051722229774793092960137223116207063180590980986522049841267516096899369087153126154106391140997195166527521026551374621067239754536751527722664273325007553303811557792490171081979998740034332068949543020212334916559755341384754334589084597210565126175277903873715580216810201348976230043939330123619560674056550725764476264186410382752250275024881520421201448948734273157672439777516519604877159139933757330521563160058281832752425124984289295045697266272317949998224138920458113922288197096728668134199658545089254147881866121431646461155003089429541641500804435126710007717191066081634911601049409528859150710273192453009210337615747852819011178525319609397377075883453550162105120618618460169594847924226558283205389174341419142533873492836262527475621065002689209305498038191350507515833153627295269023354549067306907079462902709804306967757772324068258908288250871922899238453561249605336090931198771497685349187710587815251157632178268800383643253208455494966059923161344902962298263836655695623902916363992405318457383197336056896302901567202787476474229237431208387536477979802117066404140036239603429905478214600159643849039140862172489001193639362052949116490190178937677417700818415736464248228034776598339955941999474235138087720273564996537465180505928376245906150124863549040590350443551773968752125699392253140546661675326009596440150814471340850059941335868240156796893916523299569025617957031873634600254927507975857240699877537696106955491124559293716816156092699740147485949097195752839327850295511637312836316094140026412771431343858093641072918318855781843911931130215918535057857826781374095151398828720932987208917087965584033799581803641091301760583642837683467502697447917327363925498266092865412668625086958405768382677363557610188407568804629311000017631382041991338422946421754762287632688951032565012578066091101541826175971178630118493120417078884817035444591142092462674257385492675992972158266301248960791602807962830082376984984256624462730547865227124753855658701518425936786660726237464293614931223031697114993821371623777341018934684124985833338971205746098765334954370954458104734119456047166763714887719400185850380166539188443530768067855210028422080610181532598667232593608629119427952850671620321595629262344210850303751004580216782058594312131784986516501838897142928102046727664833965833612200504122699540945246310905414867016562131114188146425140006859434214162295013724119502894040241715296202148213169426873455061748325774899017270678680221358052016317179659706254991489101040822590138806927122599876619064997553972537924209787805279031227453537221257236781981686277543600659931605160854719411769336006553049327001549964094124629402760778614628426337997870821241309674827729525659040333398713016636052051529438722709265300231285711277393439199724294656160314922886463830482118264006346322445232769124927963709190044824386152721173897753053778415108270187902641897598553837785962641829068206966614537450001813004423289118886576948660275838773359590424627315120653107001295638667194583708387333741167466010919927713873951850459088012589332123000768737730155496564876001961703356137685379172249886969875519586511515188992339643774040264464399244703988966057420048040327210150362418929403364111392633771455089181195813833836872539472932403896773494177275724326334953761776917290018350028832468838869879508195336556849368894203161722570960899838776966041143468873807136357328866945657313981958765026107072057534359369870914327107879116261822549769075537329683846237198037772362318097368914763631563206803790097362802810882875850539914129718152962914176534143652991456345575300130442216576916591725874250957457939576538937530364216805783753433028550986620640540754524356917462628138764346845935017174152786802230237765715218039774901845758107531245482746693220141002729393005729291176210352148806840965447842255326870716070505908990062809444940415441259799032241248250120355271084824283272875895582823460124807903594536075514524557789706861256155606618575199560559306293988157175799351422186440719417364907192416133886211269713196964709193626922592769482985453644914957000742376129212923236030596662135928362820306990788088051219996686027742496560574640905084514353910493291390425338884251277090576011511842020354564145064444490107827899888480647136870084375207939922857802857019353420474446212776480091159818266169587885909736564789404783937071731357287399822585739690207721038099428811504642988830944949240444547867361221230227570396538869086856608887878765536987074155150857552939841220316536711401606542420651813347014297178686286702280114307014441669161674086531143536544574797998839485818176093758133863433337666175905337807366935735360152675287906956411896502020333572107338088994663096108243720686232193021467184583638908701852411329181343283097516586283582802028535563054800955715995583257996073239897385785650054776747796703915110904987569210238255143335799955036730198207458219000487492426995741529798990868717304215247382752406059070824742570112278274579235093996337367187481805327431120518471202678477520900833864872130367855716916402609732261494534888108790804622042284474436646335825062050401621323485076722155233866271427067391845296753319767863466137123321998266563243632533665847634321083590492987209492399371376082809439950341891148303815574714178155825023542657579126284867843713431558962048421208161854956282367370488537401574496270087845384196100193228433035248710554292517996936070560201907353432946202007601255971301686094418516206164760855518461448769724968571337645646422658195855248676353529677262605350005817886074629090689175268204122889090952886806579925940834317073787289039357606033400510188215698375726954599826166297979850487292389021483921846867288378231765955986301674610570614524478717075927313946881153843273288036635795571869114674213310772905606411794687040628230978155979916100133056175359961457782019051087816910839551858581150634838589634193249224101933735338682580177963472549243334943953347308208851107610019647680835352969726517520736365551090935507228268780555829452437353710920017211420321192413456547702868044152889810703945858672199995015573248099858281947050243276853718582225139541697722553818632075940624006016750135267638461818899050876560807707606482801179056226502571249894223177111544517933014156133919287804612600658367481147014924958601818663013481528305004123652954484744500729251524233762731062097827250475660062363921515278666357637896489775201064186328576807557449662811558302137714308352125850387487393049218585873054385357725774961646012494844102566475199471483915222867816393467300505240898145336041485599613493944999947708399445069451554450224921994420216197938422673737539379496232267222853868024753359925175550798810653085141159366209723068813043200275235101158398085367267838230644675147732734964397371391796206428930076052729724403673880522163006012546880132628475596578814081647950582899665364036263871575255242796085602755383340782259855379648195923950818707465115896227930413742724581371097224679642763775441356187592379372900702509248782616059462715808803826985183896826852350563424518633461132208245716859566290361590717708882377581782974428531208717789208730806864965752508268239488683558306014809481203225507260544472162804859493200853369007415677020256397748040036707199312779675749798570432240130303512343379384111970298216612800961141674867920590344330060920381207123269621516024807450004825316120257141653952959679420969333522575984298924101124811281650092789073560348105677954244257602130147272892804061595801452176039549993820534393497060181169005625657726587493558255104538054420739387231867269241080850689520408291363242109891992152807144046845234382660102855410698071840645689253945783310550323124553458266012525284210345929864013634072615234625328862361372712841508297792670261966215684754771192412472501775297896677837971253113779257253271496234595516067093094602489218959197039027484015177713789174859969294350326165284997391425639699744722096281759827338658054114319720116952055713584902590033588250353966938806849001269350435928509772907150421574608212393985305584879145478023220446240878866643705522902201751399732232886786880383470429972995716731617836096809594380330464725010790621401327697072439737792915180193358222692996111606837195098321552635064268815870333578102510244127910043609085282324365261110629216247055040011528990611300028713833129934500738918294569565054648633265642962510201194353753869012766877561613103610501087379708399111280626316535205333260674347908203607181127841429589837842178214268349294194386020254498559006111375619129007648307886093712740755362971482485686350497730421276676482646495601788760560317575021216124968033020354442454415115332985088881922403433986385398132984790958920993409340852156554502086010709838976063429852451905551255708828661598316292152310319816296531533178724707787015071311657445031408749244060262510139099339746490707912553362164027558286944144594660364764428932424313841062990715999201105557378714145539556843079541647489184098879709475922681714479276984884630997065997518242969726804189444172871145785790242528431584059268786073147483422911765686967790618781899638914317802900959959443761355332850796359691396895245949471209838494749350977274858406615928582818934126235950376788909575075004803169791929277755623551795332853378242706197895682140368788222567015597839904230769034286964512057606207830291339287315820493360468824719672500051318752969523605079900722682150139724317452783839310536988394040643044660335822063410136978086603839217585094914537181963976705006246010918143744739011286220261503851715395075024657003054274899899866321064469234705244852663584198692154850607363736359701037008200454991355302342276836156609237183762376613230717942940350516205898378805757616395631896513283337991080986287437150321833379374812710069196556609810245503437204319757923801638933837884972800962006749526395229245525300039151328652004304948084004416761663572561103360908903578702666604574118660112391535709223079935062756343586694121241406902000984297288599710552620460073596165971246245872800192149228237457047700555552235079010074257796417456664218137607677280214167634311766334760928051244875179861750146976511092314019985024752105551432183203246838622363869802149732529172680818269160226401451985715989863063647693846734624373533621229452674002973663218927557763133614330522129837328936241683809766311217843906465921318527657575424521497064085726126948555551516944191696345634948518955490998618547074921709193972150141815835549151778034930828416278530320037113887669712470164530529625146253548088465937321981324604047005078745531577744530127221678709699239651944810027667724522098261388957611939982582135059539061082534383073846137664342481426350303563532808825545658286951456883483443898640847069961581553556570935978529818154122810249311626771664755423245437364552097160555343447600495799130595860665474809196997585236963910543060532996986177745557027484031605110150009275098305417788207016528878056485888353930096637841416451464306541609453464927497194430884301900832434500107112248509584623633115595654035001025381077654870889038244821059602175674691707612664446515497448202617693599215900108467894248630809311097445216805305996874707194933414821278946024047899867822708603952178981911525759109244094906108219415721882451387875251053787799927505635089265177822756992839040726259430099406836584115060155427408549691710932255333513990557714301224562253592090892899548789016887387944149817667409194721908585320758813424352414684409469428734423034679814869320666905476440818790756433278096907374315610654003503362563441045540561165842566619464131569959202816609546604040433078429609423364280067642520246884379037026643273837526734445667743604475911723455443121375129987160534941789906240746248059175154542145010152593501857949796770914942776298767761875359176976656933536200752644005582722337825746124191775103989698285008780462911612470293597704157122786820841505998990035076490568135315449601050583782521540722958478141209226077388368583325699155958276257436991008953886352585791581546297409928892955658108722468798914443393286780061243447970494095114987253722162071218281472247205607916320354684535827053999699561733426556438021393444134417814327473474585713343369645045668836345245300041494187194592194843365805183884728528957328123187427235720817464649061568070881011749859272430488003047053606598263624487221813362205844276963478992553673956891617595600831275125363731148628918288531996477405130652873901116027951472403765204679675275720946129548849434770684735838865740862987968413868541290384456734917919472435473735779629731095013636856340986524851230744249254860012204834637769657748698238099075338724738101616331045220181482051710245490270403211039317529141235859006132199580711523524653273082451874551901763212323926609195536053379339414810222239204305850991112781220834172998542853248889974937813771492423506462206049701622722575559272028230452461681448327794595772684057407352438726325121773860787252237395082920682586245829582866024223700916411453225156235086728357025920657937935807172316578253102640025916494865758515616632400596337433224058363576891363809966067833315205538194298175451862862395276222464264267619322005726094070800745379766020693215066048065470923670025455478093743129634469951193645702277704289491987473146515999174344663664311527032096318144743968466607017038656838929041372614517920528303779800159673322112621392111092694373242651474515329025677977897862791680074264570017765858772764411024881753870955028663662857026313043261821675599734075516308741184810159947785461719927580642080076450393930967650107912796457561767771723132528708771185643654798155721322671316710342833375026480923270927946936187542371713237432118820131040132577542061553477747380954933029560528631429923967617242595176525960378536770048654302050379055607984976179849767548522296568908668788627272288166357299650742121781671013184464898397927458410460917401955359452180772649601648565896331276517772565870556638624677022029730671619049647601755531917430694272963802439990157862587954038042925010399622842360965799617425664146108287824671308653867225197474864751600371912231643293736137214181904514453985381290306578455257776819064215020866393546011179760773144601698077221494620182154754183468156986697495221437483955743609909377306285695389193336322778841477831470163587952757058070903669413214346467214216208735974524071963444191398715722664956235209124894829032917379234753906479020640596894458581818831637250569715082495472100114306129112127964924614481494526732046118094831779537106261385606592811074878020474453394668784058232830843682523498287878787231043801275843265288759328905597139087094893432918789363587523095031972414943311478026815143286457090733990006464603045945919321754905470533177803630611080238379041326102170654239777682867394895523434091145909803218007421748266308033109432035102244976540587430526872187175119412621824964070533058197605780307587241398952919259344648832864213220895119728570580851729126080970089709958873808842612819475627468144426589081701939706951142011589009693292126350558786914144225071117895764126068212036497315881558506160886360876091454106493583973820460549769912606648697417274604556200730779970258510004272072111904383226599341255852542187410315473222596050890371099051243463782846348451729033960940775459663571324591009617567630290234805046056367964170096211593927234847231546359343059420478783916544559072230417214021854857292963472992069025941829934335632833746191589310993666514902706314553463781921329104953649161679686336866202809205909281771696360164320387176361101891526474424371968534024341410409660151752330631010054276601729995924079860526579818170354383722441897086774911557141395905045870712413188661599667203106117867842388175429000817306790007700769103315947684712748051457450124169609421220685638717192033344770143127783584283036125586697227992276005530237957547668761081699532696807799210562421987137764274839345934007705648568247345643742928962867324300713275697211782863428631803078460805438967031225652048157265505901735903180656186657636979013341003880481004269185373882883937641409303723697388825599380153016027650938952225625486582031108296638718478897919257273516486529948212111285822377852075525794704111651670983010673886368020650323512214225666290208385184973979692194597403996722592935700842232165444943381016940440014642172704369037253088497729676160838267952893272443733233324601305925841532585280185422926975505048512316513201174450200634228975749790741866476090566613136060664400449689696972123490151601031616911539126361411548120191754403842973106480613806672406794538419877630905204181864553988560016058082085303466741999225548381438914268860390513073113402078103220565399066756588118346971247318495742104925982041233006981066602672667116969869252369967257120839607581065990604885506525594537465333708163125197315273150999979945431647448036530525455225858388437036531358489144968876155780986545616879415326333432927326320054807329882926925239565470352741509387648564343634736390560067584342957792533185285628663080260456435060518694663968827683683033911321058271316690105369658948433530343944249174994370328975612691184967866753967457569186739601842659556325866982473626328083260130416220078377639628635356637226582477410187463984609137817970219936246694337875610514230916034967374827532185424473440469867228144621973344569065593226045136316775722769761751529513136852279579895000630866485833383588791708548783261400814343186855364325409005925657756963657945151852432278906046611432456334594383336355557087438377681954793585977832060727908968510463766295611753611298764811005810506285738330214914189691757323640792239400387610187730688208045209870630696650115456089782395589756508218952980537342942412390251613209150683525623606432291463501529268762563088395479586736065740404675976031900751560262869944917699110332549190364621915654896583638785261762544759103040431119833133674896373543050334708378680259885729714235702803203086517577776366266714143584562623720317292918271156584773851914930026811440093617983363759815536921311946165411519933297923658363547007985311534044375511726976536063696349607457092089101538845410247421892273677539290152545148761782653269922340934588344436065323569574830674758639598237380623922096979113037500924727767481209614800148369828458668825399922541748312487799098432138880580665752804963169385092816612414842048559043653752605570672088660198371472469488559060023462956680748692764485309889457770252559276551368434817978376803125220062011654996219383768246381142839427575733587757076166568871629301700183701501837103958544179504290517930284262984240522048852876870179928688102234108094500308743432386098520225935839397799169951414806583595770791533604215224775705413815830598051724268203023913899618785533149370100181737599435340517994828466027242713892324206635822137356402555639161246043593144456477161778668662190756994193545210240559578587096262475782374224087230739466374230151156308079621255076981843415752213020131669853115391095170862585921170753468339248984711424578579709299700955777490536934458930219628622329427073709139384880905807636016233588507071165070592209034227027683674404717795185621584642378538094843917021540309169671180144833504153501523985787862482400228635051245097875301333629274895658810135599835766641325841867688199418265587709254092820253657568909169206487016456520313519120230884477921420182323834812581925230629064059138890726700480170502380283107549877435951586109584784582047172320478214193595643523006824082933167694958637832433736292132974485764884457276942231814629169040387407843425399865476186007031637872444968724083932590304072463006883925274378343209997800310073948543255961995913054318338006680842170076471721171080831473130422010178796027276955184869315630000386473958596475127081806202029112810133721504829914159814652965925139134758706371057409846253174451755159298269263130195631632780231725451163375280493494782136096517678305491193717098108349389411841117284529615645043395305807763623103939400214746202138248670656132439128924080550843648945051425622308698270113917758395206594785057469672064556576399489008235061651582255652005557966915161360754059624759265302193153839577037709186353633441286443360419225636411430928813852309278586445179278503862045975423688881509659134301393353504723496513278674961587508343958371962031266698397878971166322112867595975292574210383579965099631602787250672261214707492028254940161827279168049058287152156226499986063109509991719879551503791635444121583357712166589351470635576707741774559650467234694544452487784582714649840399058897372071903360782429142354392006143696043176599743799328471783022677801332778216923014669426798738205942826619129359155502415346598597162664388078864480620502796829044553248220188472782260142880240766144856972223710004940623506743161227417111420215922115701742696522087958847307350333777868436309004660322455518325803104067363534322153132563719533356463154128643936018921897353462912533233338911220357933134552120243763904130292001651888892323344035319333674341526877617761111747022662055402169383477035918645637432761485016097360694223270893086072258750395562133702095285273531779773157244768826871050188583848630398473901443102146361644838793648106921561360035807214724194639030762996216912109632029787898835840211721528154300623716122532851598022464339915704437220246448405393045187394297539387958818258157781718933912033858058335914475238243384599599365629986421787355415143313133777332413534394580954597877848864298865586905311555437712958663359549559206686685776946286924341419743718486822908038525017506207964300061231191467650195697295533343656436269387471468717140524409228807248197099700102985372109064762026651901510894491921593805682404265368186198215612699945727564867994642157992878291290832457702909093943123833478834153653418884083521496583973782483325785012109476752537072580928419933906567711046042988844688111269350157124280770529964126087561822462775598059680303825196292766338700998865307706205429658841646963455916334628356422756739145717815823603119761306485100101575048330301547703024912485354104128672361403060310983494304250672857560891514096727624359033645643074915424742540591508457732484376342168082028520725955579589416759231294985385710398273157514695928297733664926488739821047211277625460308683185662975287877144243850189914179282309166219686447408549540158573750296285526742873726480527202441163434255442917005716318039242422762109318401895795420604835319361622537353814295314307852533081478120455781555715239932595214787956221784333971017620173457500343750466201330424144621511148699504266855521719101852623421409218785966943632275551296509932846247166947080318968363400297466737017644734275527262131718596833447513686818132761149506596443663003195560948756297895532257457149566901437287687064781633279390542761447493253623719741926700577669026862664256260889899820120579349265928126025508543640290269211215090725919685249734350837183155810343767319368193765367067172749692108591833088240589346254767971006268602951581774558301157937028247313911473862040762557417380149035068560612597967930632943554094293800418156400070761300759267933112611042843377477066695066937178313155677553536161451776980714360662822696720358874261429454051753900230294695699983263004512420470450455273283861983317815200038249048477942117926783985826509550023730207633112451600991507550076019643458248377570304361651537333643459077506394798753694567187330371666397253550083431591518921984790292197005012943399495706711504840793994501202565681797655961144811209299331059112250347859921428356225248503880028983534190494007117719311211307179624093628780130758784536686996141354862710036007507939543067327037361746726467172123294567895072756695977456280851202304770705051172085134229353427956497534857844335742060028929526416073190143475851141203569101751993194242722102733891295357953317243904195928337415225468510744277483148789263691608578079303053590140601621926825302653098074595006786303255966205048740931753484775430166974099258233018069759323285674262135967760854752578056053968800032443090004251550190603794499832938452299269362895982678358624280952298811330172700232007242088151137257321103536855822127024784653559930747470678276542591799184391154115022082933077492589502948429960226777093239816033319182116805949786580910772342686485707262385176248691663056874406135106709286473316274644225123803687684703518912051320239991587436104396227123832257815294403902035360209337391911499881880525068733372109270076233107358885276414489002886124768542298647420778758745395584241771014212715220398014269901588066285709880571706693906619069038397374401531079320397712747669660052350543337381922989767142144919174397164892630529274908115888558069587316061784945916913350201809928550679288725984658896799536066922076198541074568628966768843777350275715417756937593081752372747953153941126796190350496516245758972239326253916862156104589226112289994495445531863150264973298889679442076821561059407284024601392455507631096348534445416195126555554001562672893013417254742610912610815209468662562903616857373046112620807649593228154705448303775035113476988480190259483033158186200608870780184817084261647683404824736335128511709109622105731909502268686066090983183474073504299283937428615686333236043820870942607639648933002834091053669202131022211969683658672745601531297765171511836495323046702254419323529286739016435873047074481244312527034157972242720670897972117463256348589969071765549864934613269038120105127986542522145730978132282083657076073800503675613150365551642678684372416906555625172798349061758696317623032296696459660769857111795533441070826155039434082707439619887935136272374390879074548140831862166516741749717668642108752748374230234771272028671896914709430676369532552855507979815632799573638723705413352191118818819159978145612308537048360584899147231220405396772719630417088080217239761259063373947647342262076430867505560460720538890469103667757097079089705213723221136464761340231830612606940391202798979484000981164069287950251147442017155009789253430016033899741400592606820726209738810609362960992258551660661845871011730500409829113518445363926048138137153400115727276588304980403915040878121828367792744439087405790914243090498697254895569999976855073527842865929555149379060740375630490951914104622795138835764774036362005549702903758211044064271006286902185842508347311400950731335174432295707082291409612258243528846807941676643749009494584025286542649954750646676407054239913515157635191644918329587157257429611139353045729706900649577368032018657561691235088296093240789926487633269333984523138278095154198188848128178127698001198854742256279517992647194989408386202697355228559008122168195079470017959031823035811312491924675130451384506932452759412570075775521714514859338039584512939732324245518021005307939307630839983928201786749827850689502032661956767695007793847759657039248283607132615711065038333060053230265952981244132425066946634134879401947062170407192794734034342738414950035197327525374210767282893278518383240525201946783619553757253408727839180036652288488157051591819076335942021123058908289720736495190719625670859411482167500970423390220532067934409155753343081412904685616235917229132576600373339329383593191745000478873881607111555117684009042921337401811383399024837272276422115556440483151964141451649453942670017921307868903954624596243472106334138348983552306837421113021106137133191044285168093956803632507118019128776433049216398208898561252136762431984090437940801402316622315196633252536785003390805921217286884427124522600362110869030659330840446692027414715479903983384086694806389438533303991968452825520153879851853620018057858179127882888491596059264269858954033989240552420965943046222076906815860485253956743254525672157458917397038958615135956314155285933590112953693993897902112470605779900530307861536430638582870451955819914913025408363313159222778744528704798727068546004026907582583594198584251147511024697551147510070267097728063802231674988670563273988453749412009884826456077216374330722982523941818809718847038311308206922534251160609454319241271518760362638268221984124458231183975065000629831270364881123888098961678730253983306841333149900865399246013042805918808010900277012423600176172365385410633368176830487107637628278501539352471394477159085427574198811552281340308469467111043827114548869119806291073706395279038741244219926188690917811132727072268039636905527819455926064251031894979609824069691180713947949411343404527287817218621611364312281781711464103798033607206728726007583498689209157988228928220039800618513003918130974385231288717051555090701553557580242529826721212329464646354447230317584642526609774343314821348683819141138948414084422140507095172906521287252801148702431718313781368558904912255311805448811879488740070081082909332988796861319820090747163569829260609032250916526105086300087231588077543382422059439307410008720740244292516454467064981608149581704180647186013965040882292271141332104868112742876807191401672127585274100904310722919902558221373067052128691550101484324769794964057461847379377125177312122187874017739796310207548956912099774701212824536098429309977940228265520863705921571534487654527826241487787960511141770642207814285584584646556963314012317985034681123031755903924321754823025650230453675592753204555915654631587479383854874606422164099468471702645632795562606286021221890290902733253403174858768508030988418085480931805923555456683042335407321254737866394816867580724759415756876799235285597109624775373578497835381340852243970042607585568577248433651919503146014374036541063206755755164707586665093946973330260838452424262058224751003455617484357248742998806367781104179825266317265052407660471990762176104214545927830131371945024908105918137720808601617051269854724909196241044970925652551786673660101684594566445205909455117924183277987284650639557487065273302719320350538906304754361786438883992922889517993982872659045431141625981024201469453510953768344732617982272800950093196745535132337334893276279741482449828633411907074139633904230056713083337496975570711436668657196258740123260667455794809363536381179227194290936915630021897276509181316497014377264861678122832434028115005330111173631385585878537268584704031095410656556716272298316129762073900611744887948288485088192505403089700342528969897944963593255374992580125454067947944327670267290212109954843769792829889434193356382877576548439806872404521266296101458348192423066339783473751677491249702712844122236972154207653503299937236516882087685704958300200400780277804701984510215454340727231666328901480361090074304604419690498459462860630420540430270295874300563385878611440095608854902084045899444794656600886824745378892758034932443203996875278915824162979995087719885968749384516424746211010185022260558512973006967570481865848062134298434461268625874374520663074160337361769733871105249833696437523383111919968722358640045324570176057937637095860624207874470112856472296213448203672425682952146844749336928427795583128211401409659767404083290115943831488560038172877004204264773189068554511884642186885875072727492910463178955826476983559215722462040817312265290639438211685239841653948434778061883434894904173682274361754308631133849616505597347549672732692861913630808687654806099843448160440815445601758758441314477501205102941717391239903868838468483680464727180650404828242868012237076199281148838431839609985638457951693799914542446598692661458277264137171190137571370589201992928784345016231992814256593257169790906366975979665587796561683983640921696447773335565541378781193773664622834196839001455337207848321116473072596813554695455988577187711675503036600154354429548330825955277107800018365798096355192447212622319109234851523430001499799663008449904958758177915330650019754299021883025315136501693364122509905047898572417672838265641016646543637174569008029116569336553433535363313197376029271571093403870612124598622393347219535021321922828437500921393271702307702871809746050137221134286104558524892923075719802547605878833513260109269678169488562145211303419071956123711811451963334029871856660684130117546754419789757319364284702964851489595121212345231599275189268228061229894381498382255149640230543359916193889924465159179463647466643125287678688456717075541468099002298102375578779392899281998514665775492751006316330851516580611145911486781837086610231265163868932352245860585234915427167052851844945028272313294153121075502405463863899318345314690110199681604163455865176935999309603586612393641865193337176397740075438903890819938182018698136422076877721506231948649699943182021876573525936763553742412296313642938351735160124819426634641573243469907241200204329122169138517008481274584695829304707625686734474195063054937916887254075973419817841940325555459298804133636970138594068872315921571333546502196010992003958650107241953411144269170192490201118803805635807921041141695952713224984747603457777262003727372433594698657079498005713612282107800437658993938504040402457441642618220545127478296503254706745219045285995367213518788602697662819090103095582681494048656125598386993751410661374628161168283023471001996584255521331809256864137470734176561999661982520664699874171988577466227015727506664440253361526614978068396193142768788227115000236527094994837473812606637718449645128124097179249072759429765234991859900056974823897492367393075196504763125971918167540890094901388545982572126819572959915536629805563740759748865702546771928411111539683546604318699801611696249302024231226142368776826798128005986499259755860770777577872126119408875454908335584392873586358558405137775009736629552012946344591703842641513881086159392549847583363148143845340303896914430904824106226762218549971587930620969468415495725003498283697428822105145752456906937003362089490158862881514122496869807472336997521502441252380376236009564207768959395989860045969888277888062336279272825322879116768856840158293175105229359884882845495464750399605103691957620214779189055733281913893664166540190291656952983026681712610849223780480332987606594654259915889710045631957080495782862757767862871821887193071657514377496167687986758465830880746257480621509641970405045608519500175300357623483999230444888705902728590862119192197685316189120902611257066086154058384939191072648983866311455399355305420408556642765987879945678385842718276483093613545442844343181492361200679387051106535613967565571292590650598459531174249822493375365201196196950014525615249046128105882304976763981951853385267630184049285373143585370257301242841412968167019216018244900136853310556977814784570375723100152735238926289135017185189268941300641837711991097497927361088752989088007186887874996786689073376100387285070075177467505104227257989588183802182302495967705483946048996810275794739911620009060977183697357164069463361232670020968966124485515929853295998582680869802400904207191551942088974156535077387998602224393428620007724658691008332211797735890824201919389576142290629615177110774662256213696572378026340241124564391161014612894720273073546095097309307981666986889580789116023946850295290504392007058066956489951305032390615439119949373916268412471483708043052814688053456363435883008546572621964072867546634739663612936591295095556840951862533224385101102529731835772669752185658674917152724732637410450279154940503809235754902344362247721150581726888350281220329521561355377873680372556880165714236756450217687795627407808797419070401965094160281512933770131071007793717989328516036348600402867989286653106390235147985876263406764641173159148692950302969373070193954603688216921493951959044429771888568335856733174305581173067286807662843463199029716850585554623893600587761583433354621516672778018845579526943891527987859676452814686138640090482581276919363715790134133894127157601086599206308478964042569881879199727950183430708112452527445587511248582957333395476508184688550404030443911402468747232409490278454360262111211919110279248133572886528797541424978828832771544405174341131319066737093003348617248583937538924181099124723406348036274856385452866446431453293588356824974833390064214685110150435096594769211004527653370377986481892752327328449582549101242870454487169255529446750455409617678736148078783335587343254635626117246170849516920952844169852379846473147981857972230901646739494575730778789660968952564301668255051666454535971903679732786354177006910168540774776380145531117280934664025587258647024505749932018939056301426252164052861743807239912165227681980196634577707283827622579600696971618840410791170742414981425417974417103926245583088687662108229882728807645570452424629177310283851908153844574604391958241754727559183435207856618591428480269762287094712731843517009820085061960409358427561271024468904413224202201041103889160509942112825432954144664552319607693506559851584851654211953862225171532430693261914847697705057792722396817732347770868423383654934803930373318528088407814523965504102411617510018610382711795178034314321822425933411366830738729386600352368210054051143024370946130664487790735689957903497552513354985801003588726965929875446345606544522421722781991675715267962866922355744206536834475120312254888306310428121474302566506152495924097064768623736424265652216388382234485187365124284901260887746885570778539287370791995532486469833897543133711277829761093259059805002805112715398630144956348915559471052753347569813856207745468140792280982159271001370057639302368511995459762266364115340866932731886392517708184265771216882030064661803135487913006282047311588859170097497750928783634022567477420643303543150112330283931000136467487181438398856194932151976451931592856859549206766299974352297849020203342807215602959454043408959876342685795443198822628074466630734585921558978692178535968168262828215401287324238948449627522300328119194211259831316869873145743258196790677101248224944198529541480725929027784104267319025017645095550292572192440914075662217005651299340982849054549180017553118046719563476492766539659745622028230464130499157654787380087247229888385491821116871031197644026437618546661663035683788690662189588226906744373238979295546671555261334301139935574771674819607786207713448217629049998150159571753780350850678980472906918985153721232851011827973419799494339729985641934050515013875374229578082632232297441092145321848391366240172405902357747160097303675360366468487305114541492510340399044632126603158860117353204642481921209059742999188204661577524605036705238157339211424529278357555724040990308341591348914335328834123002279395467292313658518129855026265579954566566262191843088886459651973600203337629398441073651932925265208017557493586294906155330613407496270665419501646330498791691618723773211594160218394095232606321223930527252594349331041667571560319675933877405521751744421310977565815901406557828015849351469092617983444583679196162063452192322221545721589195572209352349515052558281988266171247057389098238553496814464257337953432301002738008260640889419904516747901283353399955714394135837941704770413379133917488027280652581283323598611234105538365635506490758553797986957188304026324594900789621852124286112395999872777904550196405083798725943346017464939159631599931756113684548583511562154145709567012635432886646032900799472613205310924048813437371233624150091326610338480916987777862443061904195003583672716290472803878560354884738171974772865374362632735287560136767127376709009786745522327021476879987043206103750075594747973011133901808277492172639417365721278557538005810772174081096980923693335890550526872950952775011039381458103525319147836536429397695015810088352226007260376655197084733497162840153933161815954971340272979507194958198557793342167265901537865524202970077062261924269002558294722220602423147055268116065360445493194623231128314585740237886420421569316294499306815263233639249661117344971222318314966623231008573622022384422797345982201740792719337247485016374146722856773459632594293809366065737509799731208081638154299580970222932797718462245213614923031844427016417442008640359774871805095336031844862408539971822283595394139016982035029226361555760507219350920350651470444436213777686068424013069377768334635782658480109081099102910387778763526194438278407888399102721005867143678527112274900728446283743065785306647259348640873490773201712919260406376175743856039536734887353064231639108546425147990304922885322218670880241578255236090981192074335787453837934643199112131947223587980252494345285067450132323457853307537644841232977977006072855374438604254529481417471907069946358637934526864812079738500679323422665375366144827367106851182754871750129128182411262244573622811861870111750294259249636833561121800766433308736689609087878999575692187567659860357809172394019910291497713621372627183566070377246614703446996436354755154480167140507962794604882846791259500165316994800184357264204401189083722632539179184369003470322400790162166721602021761529902990219208774614042963971098267852788088603799029077080715248233570655956591812724320680263494207966220736164978661140840982092663130150037239263824921831943676232358632105861043075450671040578351746211034868394244960111186294189015480264016006857020915980624514915919041089972772971607873243506953791416203346744602894743179649202443086842742525552922343295806808795148672304254012478241734684613793809907306785058329908389877874106777553098665686701815661820189149362244562838367972190747606175987850282429640403855221086788025291220926857846384105488900596620864302961934065651161263402607085324188736943010685796425308104361961914104189985070347801609532482101842535967932869505468385663219624723346649308031604636009856991708224634925906980129072846272796250193096249404804311855680259886292739935775028309962218461215329551083642699130422266704814413929804926877346014683915614554722782000927388913468727572714694274904065526256661799129809096350799921213499022321225388065542295938696339818957546400672197198643585234386130525174428815908216142231600311164323510405846601065870567928406749404531554082483812084545774173875960883206071778072610350605358764758377634820568987247656153446589212908077869923997489687576790536280314429348679313725299696500108067375183813418087337474546582822560159350008351421875629377144485940814098071342831380894766251940662783431415460929042622343151268405293617647535397917563264590952624077249271294295057380365879614360714724167294598379672880111761487755221011218447809476239799266201580714046720816285082366501787687020553653484034558854424505674478255562895118709358264510900475564715353173203046550714656826474471391181433030469989200192941990184856691712255804463926754158168697494839424472873676810044411488929222117753664952308517022253547875168349861516146117548546780048520884231986132481279093626338160380938121309413616734986941628489528037441998332508932803296630782683784794401133617366411198532072589356716362874845830240665537488663000581469390606143346965562866484480015226526166405958489448392281662986743811999698602084607073107056254273828643681059300449451693285562288315822935429345065495951556262727027732499790317184564562277198960693292255349024557373052715444998326706745011879661075141439257277899049785422689245594324181278097911589333533326731823461285184586304239238553105804190933016872515105029254657901936211323882729343719490779393437315986028649225206166636945297938226967882623300932791863891963537972747175344064447918134182052005198138388976311388883492932886450901564996077267531378135839368246068974186993553786807433003528371124765408142244663395295124622438523157240269007488022705397329006275739565536626515399417061486097059724003696474358134925315643916495765481908061181425567490609600391524874043083018056898784504671858461041900562721203441944398444784460192170722178804588212664553200007062738258735888486914711253941028641415270559007146069346900864509665357226771561269699717377451631275439387645310552699318256688612370116248341262236469056437637646496113085859413473016271841960492002391558328733682587677440933595971169693886884499004836773275610108597396474810647670713112204775313981187000747958945698971066610663046283172765316976906613320083634806027620050605248293026994189474884589576550404698172361049594363838866029653878881632564998733561501610198258828454567909721413382889706898886217068011365759204346690985571172193940598250594476899501783999263789905326648564580163882511917747924699338023490945488696014419092056450419026851827939275164233237694047747932339594338731538136986166097216531607785587734799098507977447639984326007899919903857097431619227575406360205438211652607171909692406150397926315196274504271614948912199902001111972782960784436360230445606532744202633556127907856450149254533441074003764382696132867036951466836406399606031350005833918981810143734314655858780698201799284418467002431762144324027847333274677505521046613248188044133865203531673714844018530202283871193555642196209745391085339282877032878274068913390271286862999218963390743909672195398232457962459437773448967540845089924930486833595066286015378297004453433017458182718171449449931084203404643365133640979307780956960784634712623684048442033407487007973182408550423515172012550859958968763304517783872292673025364940721676260314159948777767877324969892294174190193050373840492680199911771382494647563644178681664082888104206520308255272614558517132313498724608968492731081018319452742773110723592429102238628869003670920822394404588143043884843731189916919751701511756222645584382251387103015642528815461164513324888742965981086151569019701044950397603694609080613670873466411133720050049952136514700620574994347207155087506140389287127553694364059394213822340060920030479883339978144712203594594481437328405594716483875217398925096544502297360807174081934178796135111178215798242971451216414379755304940606982005358303640784848795091250396869208492213055981689382865217002610711337786984608783524563558357840615819793871589424182827431865856558917225994394122353099896798782591714614229297676549261658185573842308059783964319120537326279631326118588150830428467483707315540105473681136686044565697751791955919437150268897224618752831098850105354693147414791770837878149693829737155333834251944080093707177279336133692493113877377787828255581292596745605049353828858853476653782021638828675855604786419431757965207784384151392457171130688146845720416374541970314190112400687509135614651644910064654647763080060614780963132204020407930946802974580216518899061380438848549655226482025882455378972376911753855111845120798305039917356367874146646200959750589441746736483318459466532203300869525500783975726670245474092946899952534989971063279484929959706881680960126403388859086018881535014445774163588482337182329277236657023583957230781912826596875464802662507161693928088115539724698892173871611547926306838345295963152437754705470360478693323877351154262923066187334805143062085760856525290715293006785885016507262911454493774896871335932776929602825312517106141450193651465125814605355432447159278078319036739306594482028601125467925778102074155451074043419428753493571334543016198433688586202485179178089565223371483481522858434078429204627851135484002815520608920699212089104502760414419434024607879649566389047425570466780137296207361774460687748813376927776357709431782252165082256090156622541609192784971998851805486369008180617061082604521403702335071885227593275679359060079585581238206149989709321768855535562111148065991624288772484657149180584212046778830786877089939552083799561536093297067283164715765943757352428892502527917769664169211522476698089168473877954770647907831001724003264577226071448747254159328506675270052497424977212575948400661817071821786787586653798467172339323236345794225173178726932391267374697457573764052736398058436068391145877747329974899923254013486564096900790437401063419510608669013538133050491763524720146774758882283516431234852789868628963288964053238466591906996596457786385082579605506630062838663083480269044988215462728441210890016593946312560988681131616642440470721125945611583875998154335483996855589516662081894543480939706672049506295361484476933718094295999091206289310896232575605644074550706179347828452150248768239270286960335559165315043008607549672843311317777314263682251763256278794042860087604677509782910105256846218738514197269237929007439713354990177032856719452851803790335291977774141869666012692673868242550502976409656725744254708652588686291394556614372463798592587220921186149386441657183010245867017951853218013899371200378624224139351401982098211882288795365312894201398381807490790548176749165785227830308399697096657360086212184770694609852719990723320110147215962593988744517481937885936868022103115055646346396488299291152752051120039560262911709277826090647068647792194145758306426122609439870801909134974008800972711314784092002850928235790560399027712107184422617798000262047085269931873406784060511131872374683709805434349958017436523712938748572799890478441314535286909003359535323265393436461892529787674006721509232262398054808897688149755472393337059570034100577431840190795754326439814019306925026852018340010392925403337910480126964564349589971327535466543024221238431071707789756294891133008849578578401769174896774304907577264183985620843124106771886730961093228867116211477946607210474649170852924371978335735973699857783403821141028333112590064820203375615330208066754543964617106083324434424213007801683381133448733298387915881171009302593382881970972362378051416077241474116970424912195694788730581967933994156235875888660197448255945625126039888662001257343412158061319449623255508499655975691962617050309021733273500948202190176289492368169365688355942056813127753936317744790020003985862706149062607182674516518792716705584377400079119305385874982985377176438960307772114333474764119296211293976782890802304432712458993742158971357306513226509127548180926284056680552694849456608137788498311773417046763786812824752379374823142901710870850323611032751905170164790286020262202038133991712703948088045155096939314524147856872256376076367976566503565747539117253194446575943384976538535548577422776123376613485332709995062017764976091647907102992004444440447883885808104996580114979414203351069064639822776421179198763729566249664026359415953204973601714957185769684158209052064823048923184364544332127177515334992381352463174982272860747154842263092365405039251715784436226626234679672465396351480739502756904963653085616940488554550849000425752118306976841056618715660792018658398480521101794893041615289716817758674998055704051119984173694017809677449184279649715571292375936391057783092315778218147270298297948519465831631238397010398578656004571299675768563814045394414470390180420968074547392391828040666340754512498944973431776024016945002208962231327427192278587520771776263701168176838753219910123068619579964251303822088012909058979051034652360252746688137586648835395036000843426093824820673161407491909058025405771137424701472610824295984617113174769671569480915916789610083271100504570234620972132597122952136305451009584031418801504511389364718310791891236794203651908685614107561822537038878809628345603516765806328403177620808313488103087961655332299151203671966759483195164255220736759117799976184914333362012322511848205180162141625546259592120492803809246428473630619429196215909229795557912213891692705538045566409268538926995686446828546819066324598309734665976208078350831311738955999972904558639142387952196173628711704109778427125036671565837119976814387550770599279863882556572349099134379638609162818976890421938651491564367152376144679557202128945417166657679370376961868859563445033571415172982859666627354161202235029444302167571075559793214612749450558672389755686879990659867993485806590536479153421741301329661611171847946540425526571511358365746818571984270443645863568323767246396732447822711475190892173691447854157912003072934372435651234313506071194433938874899911707571022917251001672172137370311019304255051896363133982654941507320146448926556185764123205314248524277953409080500327813164212994994535889341785098997210173465340588369928955886571441436548365642753216107529811098554693880573532570939272294751745256503894969279174220896768843241808382262555316344464936616373295203808888912944065224259062907899280615230771749269036113257882967239193026020036422928052852072013900802776472193257671296101494839965036219502614879926354796288760653300679993520415754460407233456282129433826660401836843312746467745458853895242897789731695416176788042257302567483589078597038204560037361426659134312160549412640546408275168150808687353525433280050584896125936097788395362627210382181691124269969845636494332953363383486165735219979401817878205502478502493821052432986885439275543669569874121254947046053549159978575612411227756872433706188890570302147015871383455050391144041143792289713120989977976387959865258132777670745018598738876784241747005679702504392535790884965340348583320777026181328515628040184560635342270768792651786504983101589652514821339028437108690508439376553112004279322049185104707472179790101886558243929512111633390454181506496151656331314349348204130351970041065356283033405837392219197871764469472851986343340051547395521929755077712723803932338280244588230903172624871500515457426644369816154084145955490730752856045900370294545860862538512935980219571523695153037100924320607193437823442986683371781373026305956499982386447040459715160522704417573611432514436632677043317763926423896190195582073906810438414030894552751012049156284674670911326551317048406382353336759616765909953845808665674433360454410742928598724326969315057383594872419442854669431658094276949885917132342659737443244251612762072680536572991309708424667512011210770551235392194831587982448222542273859937068327124184964744116583847600200312831588408013403808329737600588714369479639527946240323464370872132531105814137112792803962973106504176767953950011938854834756184758142944338372200718328083665374834829654870638504703312170744199239745268056615936491684999448651385297386069726605374552794743298417087808284177359685869333808404281784547691974463594419395128158862731964430984908919060090282658155646038957923223897469914169739311863141838103478497504188428873830182121294927895441908247659165044620250688266432233140334885772855660349391706343115218445856340586340147740747620211384253108528178445105880119675035115993295139245544283198230794913174491326684359604904586223589549872826554189540797997029042172602371486421390791666281810559462724029417995546672566344680637449273285792269283776334698922577864523643836602833498000391389722242966666296068718045404070335719271971069384634158195233022709257526035232189057497180740345863357886804629943419520017711812803681060122377287316051878456571070907426107874879014176709406581823376806140456098366688002262576411079917126827170324572413623062043657339026329807111661262066761635977178881149178260272889823212310043499851354350852539388404591342926331852353112224910651552311535808807017923507987406776777776074954941803314354950734615630371091831501595486565478489847155223119423333674697044802666750436234589791122646363124676219115901697942828175523763150155164762272421837091826627772796514478130240295298704735973306991099280087480770799138302553143114379977176167161646877709427081401465423780487555700227746086345991697809617079064779077160402637083383250138337954290316733793856076684762519923892231419849233863943530963696928148798416746234543156104143973333471763730329200632721329400726513973294668010149531798716341823453614370221324750422794423868290830308711051940445141190083044637283923514344114423815671746087153526602125586408072798056119338906653484282540276779894126460810362428856593333805251740345198008592971530395537997810367789954912988252407169373557629870550309161359662211703282214940859835181575739584206441783345286468029755641138384893312936601285559260956216952136341766099381600227195265371639584753441281734430905184763225326738778926107964454239523963601792111031153546445860334848574382592747187465748159010018496904421545925926286479277818830677321402104265286217191359287244321687125187070139844286863573373833959508530167421691006931878577216594997996500010801753914169708419592430227043759458068885049933223130460727352974143422166866792122281919850851640125078411426898892257049172940115957069086190054735050017306565332840483851142780719436751503186266230669352757944020844746568707576150511092301515494171513269618097464895570718797393233557445739243633372116088395371567868113869565225687374794805172620562224087802186313059072923904917975763705494263697859733760800375939002896932582139204064198967705922734516963667724296870331431548743667141532640833769981673866787044844149841761572665310293736043324736193870961327856342816683869822856188439647645044105224579507887613324867724311315113434092481929353918382442053829366880740627997826105475997135567933059412971566939814925250862065240039437150168546578850272368416034991586352226436771865168860715350259510841826729851605459272191513718684147714553601517635668056840298435978531045551847618529040636785629680716037777424856965569994783232411507142708848372995265563156843336744251338679852977364334202873260929417858382809940515913207934970844840949924271341716382208971001656088517481731595423822916481006424210572380559322712397426120135081564770143187729123306892516605801588682719019755415393466311361489530008773062531280025293880809390884932770919278570889822181252859690074378676699240395767198782625762864959581078597621100537781149672763712071293723675281627058688692753979640416509839593983045728119158034084234445360616771948864789903330722270315497713886362937895217932544023846580217472930432224997978115568256475042565115743991052725809602166886212213260884702036897694038703693619925147713516878472208812965433091418527687889328860185736984755214238960463025902167584015688005620873379228552420821274506464504477264825236933836976516168663902120626876140195494903755944290705864024242357306381243468658000953729793794809994564359934040708367888620372382819767943276030929862419113239252778892240287206943234274040575617743358660628390392800714148871153994229121401276649032888844779413151652182281647699221548743026850243496379051614397957656533598900865259478831800334076517540428164327750050190905980900036575103825455760408466413280144903045387051419913092190828787967610517709732245886772396411664534465068941023141164561471633231395364037631887009686412281262724864007974962056135417906055301468091792793092198192935428222387799408425511679223335752693663896137235276398938588270961788925067110146232992780581536601210354635076580017939874217836938682325348616420064903292294565359318356980508982787575408009274742544043827540641365497208698287079951635794651545623763038710324774203730811314787702654307393596626450422601904919025278938471250385526419716173156743379691879472823028639830938540756761942325457466328037455060478888073677974346388660291881218606096932742338144937982128119252162876268705918907045148466035534278910281165593812845120991245250752717747611424570301231104221786628502615122910748724569067908541744259255536981413510111449368019291689267085989620028417342951259868032293047704142229267512817103112691479275736837437686180403950464007949224000326531330406766880903054898818900796420395027997418188867455619440049768739711889340991254816070065383127888061504525192673658063446379998924440907862928603456491723218430809256555846743715449263544014086141450292058344033724520891294525599693577517772081541152673164754693994952504982173878461236382754612222925547010237110666005956365835244630372041713119396929654064682659205862720191331696267860408326916040792084150759460393855114133763351812474941077079551093449665810350611789121958878678501424173003929355027421609852834503708187056394648026056602909507361523224432994071120424061899351488055181356073743767811440062297533172412535332884795773042010154402170129186678745649059551970299283755610207748117603092549889994381743847416426661891168906261626569591320525407744393079562614513182211622415796165791445272459047175088202476593051428346768811468634758479643392745268582630622861539933305881765357627193964957505203220142763412066923161811922709636640067565250066460439550166314809821213115967461242270989714561088678060400322556088644718056899547325818067987784346930823459550834794948322292438397227591926997491453129639220958632063128704091272626714974397163013999744705602690808459577410689235359315041137168931213884399250237527954783366237478947484128452318889179623942414026426462765060248342611687877082408667985568090560108906984819512074112555020152948977644324909306790843005973384032355759094280443116678527081353023623467000175562991045496840728845285483203222879912003213967954133148427962730388737763643688060668025415688696509469006322903238184674339528156425585482362947196227716384418672532724396332427490686400384244297951216231418245557474640192687916377314974360341264953037223460959472087557111745646461665073557950319888755626953694958492850192060719594655251295483818216433306117490038272055778932126522878224077696922858482488529107532016557881667703919718616072793398277629583084130628982320702473115834124354392135455897523060225812410250528208775147648240506736572205493612141438285517894019183808836492690670331872774551345037347874701749267881886892873335750159135347795631122223074256386880281998271239916028281737850913312955447296173819005179501195568882392075874859044017903481109837890035431674335264649306076047247917379542441579659678547315789641971375395593059520299296611333178735729488250739782426790739656663289611674010659624887512865182932051997547426894815392216857879075381397172620083233409864698528941998007055886807399332788973102266658369456966833422605087563181472140446824269812515750967362494584484344628839811344858678450551423318444943605771293569999586821034789600758831148073404981133009449180801729450338440060993046056780486921366918213125569704423197357340608674583382327004338982968640897525549522362705791904284973772403628978310510442409889326018610412179204187514939789993145461358954164049407315074583868459610841524882996921673955715814506682314197506674885928110129285306548754081068562731585889211617064317194513787650659020155648072272685694332764985592225167086414749449618548521610140395529976483109342199951853547030142966883713170776641791631336314697317897028771834437750251917478047086117251059268772069279406334673725393505445686269204705981081408091715289310951299280573997560867003255745229634847323517495019461465692392428361519086379680078950669037948290380425832293159822905803503626628197584392317844052679445117972727451755777920924639393483796395058354700409501412192196233268921883475652386931480470877824122122533511921625391524862347061778401863041613390552205767528417286071516576815808759513334484725976756676428054788911519123182256311257907819281754894915085960433272846424372348751757836086351490955423738168977719441748608329621740313643260723408798324464925439741576461076050810647043604428787128929603592487988071896538430140852437541777260779799668885877625547622032977339102882806873855577816524976156772836864900963022914307537418334473104292418268448846098396741207526522449776741552713805776929374419711091634558683547707724506970682129654333436569396123756256997360475918738705813400100038194265568817941020150282876471100395540707306380318689189859509110099204475449178955745337636862869807247075308700414768002473843021768563020599158149579076178939319454488836084875792639269615473745132197649931702715059616198289011558836871529894166292595508475451129105200426449568706026932347545654374633303592140686451584049447565873247982512550521149322020215318605305107332356920514492018396595468399872903866058263177619852082535347384554830493708606506772007459284182791582858536608241747612278049533694546759383498769456197277327272236503150373812864689978027672055552417768344579183237577038989364103785551445485349532886104780551316352490495433587898358637557437218222208103804554189507264779135971864477528381950428383464491980202751767610425800370531692022395944956163624797945872430805421524335562566743451568313196872678610654197513871071843759806391231370491273765790258129447542857236562849366010734274802327125043068038455774919110747010330965540177621286549543923604567698094556365251506431236298393381512152375541170539414432292812533191602238512094507553532141864829674436544111515405963563785106977399232666918718046423943094402780340500271081012042253190138500221878440286502017930796604928057825620026623114285001790548222204974754916484421978799997656262715329962836832958556212710851123305976960258972512931413697548764809797683052108195164612036359060240542533259274038456716184868610860217876458782422082687869171500376502103721322934287290693319573508099397087726926448300108903278228206304286176833514899383214492372694467193653842278177559355028797392712758602245161338927526798632799396060474753847398929528084470861539291344873734408198678387288532207576913819458785268097384310363308805584710564015079514337418289829797140725542361341735400522698918366428921899270631299097217415734329336087647724881778640223953154740754056918726738698905154808990926302621789846571158711953957419238926138917666503852052792112789530759387352487704270119070702652787405007251121068612009595961586997825359584533427829220797915296191662792700742470100789422725659459949584549051878829663212999341451150110277097638680334901575685767870755233239720808546721296571562205109658464322149044538049004743726517124842960889065248341899882260461293612385838902195348573067911378372465597113240725512808180478991092201646612332533480248008413307791224750363182603497693577660765036396680440170233432968488397827740481947730826476647346002483320957308637403151702740165320911184576554929278919344107556768977766214740141081120205344382936235421857364432698839488795318981945865067644147688048956562085768038756822125629315923838992744884248337409966971539621030716358602632359645403267634479068409606983520036090587287580540463694197147462012812186640574903296713107322664518094192844581493818274363200715701656692839352996008521753677675051679601182837041410718427965238980185508565843277094777567023808669682577393973648251107450891971147890490161089739355709070108868768415499263157304049778698445751214298366432287746682085543605531556501500339828333095040027946254066855158555980663565764217387320979579404571418678199356569401615218595549848470305807758082976521437557493054350337393407190271078293027343528554749950060344208002121036242154478270023173606008239074262671161321506099657466542401498471656246397862289146085328346206255553360466073895041634070542145923365381401275860882623786880592552817640641368591279470716668891945410530024311847218153853380642941948048443972674839518499070505625652517702850428457852266938368070528857756549748764865986193348070725282753546010127559732044328799199663414758605196437147846583436589515395780850583322802264810497702372623564740317767728567922478588118593828458769565257062265663098888560667444059774789061441491988891421416906210349777350297893069323428059133422060020579705379038011969656829420635605272142851011878788200904677864997189058930691802515407611986895210130826215690015435937890836102877553633494658100366084654188263221352462744341684926882826351829536531264660903363442035530778256389004078164723867917589249961708501164864332229712653521724766467293695077126378241075607207581256725449729947933285479736740951526902751317465806632644736726593513649817938772217084015274706173908736089391717340707966740771317995051652123368843726285720367587662193332110367315089325486282620088552556036688915965805302490516591676507859670765373239183525549152596331187344036144915627288892729791375198867257714333488931320395700564883177518777889122948972179698986510901064537835737116861592356684076097289258459548528665677089728360863284161112823865848773710671532775414085306644662795889720948719797716306376492408792103502404070035758666821879068812302564858656342390820407402668574620471559003770598565792273084752183658195585524670640169298384680683769917787179487632100899578464521066045559101976938616845228000685964719028363678232701250910540617737256959569035324673285213224257298951759308557877395749351940367583160291852071298361708548741070034240398162010945087072442299952719172248917435724752097942140419988468605962000633789556058807710445213922931731932879901061450251947744914623606548628278263006273971001844426999508800793857337231623573836393862715510911761339171661863100693800958608029189722940619205207602876769622153246572447199745518387027716386401809818198479872796339702880609030951284992860892975827279426961143995553788875228621491366586471179112213763528023225952083007085064839787626586295147363953012542903610033091724718390026914847205806775163552565257183122228528866397937439719821032314912428062467735665560981898043597862381191113744079240491882099473277367808374708134030012055808352850485309063663942894861324643070658997598326727990916160571682213364443405327487814115816026705657104974381247149215853659041290006489577868108637672639858764931648099393525613829377481114026756791794826665350957515819574333765178821241052945826033568746419349855367424574085867099700264424393768231665574539364176173608853611041837216997088160639600083130968194137167640498174865960809388971090579775597053148165335851930845513529650811904832418931414183449355344638634046032245005132201212665743350209266621132097146021735483833301311244584908226997640410980423840439521776256151257540947884196269444239604474880388488151006851557753986949014747534774309767065251999921166225843544546684247952141526742317095770270336704646726039351180733874645910425597330132661553726298616736664221727725758308464265006881887844280177301607361031470970455202578288017161872198108584446480660215456726684854227263280443525496823005168654059255453503659055491018977607889299000859007062612959705165382920058061837767972923575409598037531231487274127533849076396959671854061157426720614624851371297889868874759019325054328234914725802764766706942344670339043985808479878346570813808082548827620819875925564779837685469470302326282443115908705013729641664455804515279829628652867428262493608723726360216464512273589889892444789250938142594170345759329531244458358173081417452878237374736836868339689799065053376586836523203160887478191714255420428490291565886951287399097747600509265720329588896322608031193400324014175659323188067568344937342356039316353034235509099658643071772229987152546989294710111946055979955095412703688042175726335822496210857128154749584255063361615913753330152354092131787654336654030130608504263340909269070111027444030060188303691252603993652855129826270380325772741471665194400846598671220649664148503370019294009541553778233386519839013658079124349084524587955983361276088613022574885385749800685507502429789493369508158621262292581341636432124736787925863297152104277680571953292106572009657870945611942783941188652047751409187640002706625774026762518008538760380852295890638892966064345115182004910298581391789322019139308916478070192585389406705741274229321634339951931619033924428900673890455648169065422559627122724863049519565991903767186548917551222499245693709823655229182660039459181623159859305182380784500122199494279826206641973022175894702559483183002911907885583203454861392351066384762938726533189810332488751708423558014394653170220402186622334867074234898807636027260901337706983225068715016794193080693287690601108712830067353857836829631088485274497894805449177817305153861483364255696985056935478319198350544683243839256185178275815247048205611634026209492297166704450153307970655666757180768028029196106297771242860344127089813191472008623899988992767830869771866674876012131397847087465537012394055434478124083226853119685817801338651725159885784642226034515404093115845908997689567236615690198762092876650111221043583890057951309182168050457530187857520178458207311138998661199362173094674846867352627297521828639760191662257994906476899323186063400512404018806685506988938284715348861486394081998373935971360766497145070651289839552384237889807280034252812203114498661706142551570465952349756708754701834923394587291538821812909644376649524927040701625226299812582302615521538591585563769655369939250262568327087999908977162923825885960710383534618799896970452872270443804627066338652908465627754614784479064780457429130657457297319443453995436183558103912155499587348678839673081033036870053511744297054484800255813487059474800934862421503884894044576259797422584702688585418250231249376290847982619759962090062150263955196505227329770188872773697778910967000024050183929349592843150437981947101490581110144213043422307376755683519477928950418712499814132024984842082382578578887173479043853487331361792644314905232443753894695973077719007520122109717848093708426081906870942769771994669773830805669802209699826838495586315090954639756687884483671682768276095782159606081312499965522445345870010327321189556439090584583908770973838828320042450583252850019972282647731870218289044980871048616638660174924663166682348907807138083116621039324765972503681290618242577512842983231802476308049234376679651851370480793263153088848256278301742133003858409040358487608091630997880164272161650468437135675886926472450058882632785591808419925866305151490574504074003403953522309558569812322154030453337692142685161142735386933248779204902446854118225007953196905305432515947938876733111598549487030588314579458566565663341644235379068728450082343761749003735974940049390927383903305836032991480573219134501876269649521835313459086530820139200531251449571825874230715037074991505710344880479281196971843900929647027405889255469766137658438608762736510497029388778731442605684862065182488133083529936659220517622733172437827511394741698596275436726629537342717070202567370935210193034472912576463301759521065772826821458501143473544007074500246151722949498413429309047246402077291761112715169114054408062300874247070020523304853328491154869090813259556965760687244034724590675423515538381039714688859967798878465602334012152457066302750743428105937628345969375008589301032535026979811732854110470426650943276766007160377778929727675023628865269234250143157113789018896525802383053814516658370421412630681093019155304917967407766746315296092305644648117984865045169961503120006493150611563757687846372673744143018220160394583032846512543167482446569144125172249654650780822032447710514026981813747496098957454750594935600003029697097838338526073335000845163974004029931552624986520960640140418508909837421713896477861595566400382911319870055219387152589694872337600305268870553330522169553804866883018797576367627441804828984392308464888519109701400914299992599617393096898259630904102754076573238445047475003145585219966224625523743183122640804057312784949476539171592602877998843283686277387363582626258705134096202520008630000833842939973206949177831376381071951727113243754893903918292619948586068022811253090935835349154441723874142907653199658258876412881525655682579446376514042127256795166019102778859971983417228055738430629479459380201667491453587662706710836404573255904957818112108451344139273273920523036386414745916228572864805645624620152735337926383458512413971686778746867100136990755891231426384224728759586630653222037670048828391007753960015950186829356442614975054072977965796262470150209194181674538761598276315279280584923142707423768894766813909449780553332084254925357844309425352801938185422863081207585555078400396391618789363405969698302470220938636757592137433361645811571517834329086240703474250853746634390003994303043786313305024927493855991576790583504152916525184140519801536487313051980187786683304089811837334589716007961994192006722366724462270884569471912667298832180973452904665687753218909794386615896017628196191164429913689578866583523965966512774709911671507411958045113213977820661887665774085968516528951131225319917623998956228875595436438837569310556801418559950216284774983701587493521364217508110503030332627002660013541919573048611642831080237874821349101253000282302419395681390931128892959010009676925468853901093314428898206807709173662399695854400497385831191814707227547216820563326304716928164834922287727791620917221506727473741583361256138511835637303436723689698168167883387056956947900203903367029656514939666133461661021776934841825621839548624132091432435673295437897844444028992121725265054887572086196946597341202718302821082171501443235955074426275046248230120732412383468944567695249418618982110621826209893164493917459099995133130379454258509514808456343707390203027365993061110760972317260829884567836796335998641210287904783488965932954533794199460231025118522467459822391749462573106567510099885130938173523091640301398491722995963682448407712325485305217841900017213316529592474790560934720901421678838226676810340218631926983651687800549509288775769755683569727123045983794196259417627939439867639048955346354626255813469442899860076298005366834590652322628786739457293118931212183900421078504695438408937613040433193967875708197362325534750266649169548356835595982877364337107843303693951645677055051058167904500437339106240019899177189538069610190705427573140414729358044035589588158541527992371689252458537806327377641881225674077004551066472525476226294122710982572101091737334934164017606798906447186817531832153995462151360105483945944131629942628412040726516732500053812687905325547803754503664330967435721517774506373478699110993354567707231202607484001801535047751596994003310968773482279570470980369156875147480738663890045569357411847185112630870291002998833569003241522455395151114926420390514422308948823321562742239396863267192280018553391949311937631148620270991556532711024518723085801782148909176183127850670556795266512349331747500585923797072664993599697392703355504756520755997558188164508830301644143129014705836830655832144086559593918894495443148503837041306736008827952152303386024857987814284264263859902712786992455557717952164986634210502142145820446779884931483384164601931770834629207256895922365292416721622534574679667726649954807439583937666145651304096774327617071681130709724140608513893305308069298959255479531957902106639255198745450590323520208514993189658063077544642969302038214731116061757893611898587001381982375900490386752906040296805046055409695962474278028880138965198361843012190534770886686084733040697476491542658778293348022930088395424825805670559358418733170931672059358453898820780197493774145581620876362493810073241424465158702224640188272169232749770081721585582609875099834965046221572528252091819318380040310162807337522100419523115910138790486383096133103106608062270981831755552093467373677827760535653540791747462711939220615398663287372044886701786801673676706670899764903225048452196130852157900058869812262101565383075259866605203335579479815699409517278770022291175143255933766373830363860668471372052554107669702028699562213681089604665478146363347620509257695605835468680258487495796041464343438779768438179730617992857986501867526950208874289753104559114149095853429587443605172745128263875533627711413328402424413122502749728300795271313072675551894977099324764101739920617659069961880600603654379154479131858911190926860639465032780206518977329380727796344895845210017360751959223073943869334783032251531257955324722108025699571108669018732989647031043853703186811670602941318855248358153829139165634179416564729270624527740133959679768452923111294790496035785231906099219558817156278727526004884238618397384692386872065531464804353017941487212897295045264347225878347776873875595167700172442438149815494107686283031901099155335577550915925038440060607905302384577545369348385738195753317502602353213137695648144471346806921455499443631260741625882301392422776409515814682808471729065631489592618892299110416487881957898512903177389296955155575699089884685063572709664225928436789220210837262847306659438711930729360315904478465529562018931041334980641401203730258452668532534790096127717643997009357391071172136500517363878348531103491875513286837115051582760889929380774917873496925147019710860156322968992131620167729677850572700575179264506397563437898259380299007037644264944566937204619879334820947798313797448968206791116142122109262034044210710613761897064176896662109707410335302871598397747692288391877542516754064216842302940655058981481292523828403974367662559916224080167793017049157277556054868743606143801533583951030987735726499812642490807990194636226856813444173257323118017498941322912448009860056553114050498183529731957049947548181126297986431539576527459649375807744756104414315418882849331732868206233941059251810895808442630730841646050552165624293723224214621478647393142427642945394067969804018780679267244461829752548516368664617101886528150708333351672850353265900703935230018530618596417001084646436671590725432772271849426076955390642338621625060283832468937764106651186361802863162750753044698873364864321696600664598735930932611111268243816546149366743243030492589512380734821099794568003724725087722810903607148327359692817854369097537695958578306863014586078080794592246108903569918676078700801623240927965723385808676572176003691713266929717602862516886485204643443143021969440981490726645914219549588503587836555261584802201742851675406764780094085103953258767410634676487086298147318913835866240877536237847559263434384227250838792569092089816920503554398171920159425287593666568912156260861904196846451465888537250153152487190401510861732318435709464119502325246179286588255580315440359872471472890149056440286879154156662428755729132761819932364359011782786589993168192125128459993433832180550826483298513947610543935487438784311517503874746358440324669043571406227149561333564641690484363035445076956623428810607819250799173786792806551990504014309226126886748231349499851322283158267774774808002637658311666603829510186399357418107761538763876340672285007884439050417647845220095497792017058794911741751876577888580781454933773415948940612530551303648328029084806527238630491663862790928202033086780504611434355984226695393863183722721009556590469214074504216480337909239280561526837580028678927158685086184166279653950525331885404420278269675316790385738356419399239619804390874365777348961392900106488626968202737834516351925442950129492649548519910227444434140205695980363420236046210420112321819720267360739982124421875109301945618332612601884747786718276037214178039307721154365197506791776703952329336826116187203761986110854179177768433522076546921141587543317865064260078203057106547054798273954942171072833208923230111749151779985391362094548406722819983950725808800721648546729474020792006724131529001258352998962770859756024572611047707434167914678401519414524344288290462704380260996004635025975536236920711176034288894200172096926984669109773796672208241429443600056896655813152687071223022244882015759580609816261769842998827254283731868959130547091978841036373447975273942156322124980004151808631142939758859119311741597590375191506866788860979055310232717895600972779452312944460618512005278849231223039555020952106266457131845824984969816234170897532518571688131815025201587498161762208179818474946507608083590933894506790774109506845131281171924819184219602654896630876032459188724549751256429815822862528941720486047228934992589584148428291142775702488797573914783655901254538375412151216692614593033187147029874778301414690753680596135457944258976754595512387614706567742948172343468748629891978699030545468865062055710846772137117315632415838907648899586255545668603090946134214351878151257789769607778324361030632560934300710628819330105231685552366791947397051934710126023937760081935006687489839055387662955160568480034790903354242163731722573901626677525778636421510798347956340696370930093501749409960120977053280463948183109291633063292947565585393112060504987144923960253034609666746566763709451239836308999719976185694691448697924622619158480169959889852507131335631877803821685451508041936046899454653598273530402860587333281966482169994062650347889125990328714107420333433678289098488256140055880033886947070554800640900128826193963991199945395788748748607207729685876955798004694309710351067926625320378252226284090169845832625049115934240766794135446582243610198648409168680316292536315418396808174031669872428986782705167820318932308370949757193305727943222779771695259968472610626548184539876005986910593026713658842484232404345731407395167739721853262558825663393014309096407776404476539231747386701026088206425148264192101327442271904168557870211826994310960952166154685310609589554297657572253553854275070976787213820986172350797209990927140310004980754390085282336787954063387167124884367192738845714674771736720285970204632450632372336518446400130921336269524462362449891934731124828348460996959259443254603823536946952864808549953359507005567250147854821014500923477128890168714508214585827671515584212612350713350318569908836290730714946251301406794068447391840562708272447380476355621115415312748449483921036920554655010086678832226476161089917848601408084644631854986811571442874243251472646365307920114394149372558190755232739237582699266892275259031811436903302589580285870728902694388672154966970589487316135948685229971601828459319302565566603189167423481085801415924839978693167385022419707893646841199991486304092533328057570431134492587293432860442125478755511114619860962498786118797717363551724351819529600290525193878129515156480060462764706012526190622084095864346920430783793035249152347138831968231363085925458045991445652645991445833088552080682791744355990853745450475468093898392365766330063157245484843310604590301725536050936189572529291557768598472319242892686773253271628416716205255121546997368964866930287791568856990370315394279800124929083017209670703582826863153537524505398349714775542894004538807486675852315425270757375546485764626800159402846501795578667122823378154880806358099729946815124818692891891493561117840279562980345957639543047775269820367494451041869454647806776957584294516926514347043242013547902630301270962045612037572416813221475312128387172269506836138037707169720216901427255075117795097285190289792935176806751751707277420661587450325480712287576308260028494008460106064018572434257386783710506035879515097008317425872477374535962436985771705839575994193862197348093018811580223642835765124784081356970008373420125455675903781596658236792838381201504734627647745405120951991186064943365258197615077988407862504949778398436083648694889203744401135985822083768892176929495928573578203557119504047891879774649381801312774542418744254625774155638655471848931095363500002907564276637371102739558219304172574505010504002388538606221189402670325367230797977368554340512110852139450459367071925145386138441729140063941880964311559296009275597411984145811026318545784008287444556475983523138009009850103068597004721853712016431818185279828187053898310535931442656787344990466456258545715549062392264194315403685276482326207792998987806201904943407649575010292404448428840665733624751769041746875722680571240117290027970859913420869148225865677265168074404433133734804317592256643815246456003879564555554435581180810422314436094656177762733946802459962028356254435904472417158048721889378396982116260145318043284606584188168337240053688859527934875112123343868702730217052417166500448917223020924991635234591196278926292656748397936081340957913013766423433383114389310753703512846965660212342341046150814487107315042999893473510223098413853211900940691394135596708490187565994251585387971026380219481030823801375067526261039889230152864333601948834269172149615699154214362658066766380642297450835995679256965231238908236524403004977380423789490096221349967756054083551225707476160871523650324435829438428437806506161695300946538705676571793352137061149457702843458383802741228896770670620933187965679350810977282390303510097329285817194276841928659859985053028200972328440008950470967123960792109469657388285058780543026398311644509142140021790029018119410587048568422665224801566831908879424050282901175115619759208780257221036856086996470848362756780072629922879009653393946302827309944990018124597565706783435008129441993845504815466605568768433164462183211995822151414069921754031260326380474843583995417063322670268428028643387365526782329614789417118277765225780066682698682994202248998173356059091562030491638680753208854406437760859655678701888433009216868033917213033494141543933346466266896010685072670297943702059081560363328680148558161230213684145115606785139442160816184578833003326440897516859489567796390921221785146749489686723533571017788687538077954211536147612255888516772360980507136598825289313527159953238577361216178287734968530821747358102609776442892074576234216813562434717706913986247920003111672849824905540829240911842461307707586011015700929678596053910726141932669310013739564949372606912864021513628503835633354650443493282171512291530454207441846774755209681030456553291222223628845352782122530475899080594166629424815312424819055276295311331324456909385441884670885148340208244976265373033414267754698773801125662701761925742258405993070946095592271108674046281069333203462320409487482590270732536637835765862963098569913380134321213485540181657040897539771991654870367202352646517347518166228809554083178959765152136190911447944557471061417257370170664019260638344322754454661865694924076891962651378309705678707158746586981599505299584935400399764081179133976458960304567424717004256459933757559461125297985169078933569634157953400949722879807608770962026861626433449290937622731449372072864904060005057832033159558246717332998576514857076391266935310779366399012949285663123062710945818909167308273823930935492975859649826285764315694666521613590255509624957993772699750114656275234714725752086510819202644633503940761256013372608145609558496937467342122372721579406148342478051667597591767963373351800711537799220362472296202749478058235996901506389571221008832286771633504735710879558729846968862686902383975595423983345620089417411880910488804665557946613180212510777417354899269006890192391428025742408684670229070859911248488300898954131136953297337137084902754286122321453225896412847298163864835659407756987031390717171179432804504756892514600025501280255656624158555733287313092772526768229470967787199546185355688370298727320770776404584906666089305829789874037762280496980541023990019691254429831329582356185037544466442850582646435405870514913809230418257844115945267662935397810950243680751252606260488599780852923228493356465066919022431994238905629612143466876657052760135969807552957228573299139854608608924690647387924966803459329170818856950072421382789532101593548625294917964081129313888554556922190818271590272807493853578840084116595139521379199604815207012302553650444880322414284948178433387632897066608225469343369959556953541104023524333004558142227594722246561170320538104621628815779402749933102066237741217994320364824659779448270477887989741073226484810410318900018664828869205552504539894807403051499189399162645432966433844608830826669611868149006292038206034971535453233543476383470476116622616206987432975234011858686604781007416865868656610692895697084645919128426880407920694413769871104169700845482290823504445346829858697614039221136688873135142799467814730783532001349719585510305529429249003384174024858179720333081615440545494407559755312454406763605386840288870706033967053616186357119019411006633002273274330660086923801455808641896422159578676077536222286863460008939115107960884613284370557227740200186343433550605191341597600024720247985817666933250667974050414430246164283773893810126070639667605199572165908094933377110838734749994236345468181195798537472872405790657600920698492647339367993804766130009323417497096140325627140966372142698705919429376968456920434002370627857992073007436490783437852069814659725914744317919276943019643741737445915279520074476572212516319220591744597425336287187148487840307608808779302190490140273829705181838020425237980759350753406973231673958970070542958010397005235639958826309930370776370791524110419510837253704373393352424287183447718598169462415169086739460737027981054493978131013613246140615641644150329384559100128520627999613793272353424506985235286465726684403343374800243609967788805770530400513569250583234736164347743126353004150584104468005175455255500992170337721589294890783738605896917817012185133153841425161180733498099995846752486661090767929460193971243133438256781626732230832695019759224424354899733990474596769590136504976359830416597419767597293577569802246046505465167892713206616184767715590471824528585774469262553019376864522809985983398909145318576524997953442005938715260521492217770331187896402424891445442024395043664296473301067008733970846731135071017540801414027168993334896565238977898087095660455649018424930770573855494160732048517652281673346969494840826059179163635362399570569105359730727056472583974548686474444742418869906812248699880925903840826713433557206596836448867523614682812521289414869851888347148788893216576861564125238582396372585796059723581670618273022586069772063497360062633780267529497612943599334417007799897788771733253220757980669211847281897609908774314413839130615995541102439728567235130990102604509206374088583295341623612251071010289111515166710661479361777029388518556034621694238447852521063260550068614391908511097300789152895460353294599997015750580360036318418422849366644321985897448324126222101827515579081953852999801724614877188469001701999396734295321454277671138641832937625888509704977875645844423291494136316856853897250561090550664268131079191006902973225947476475400916251072522817764224712431081275697368829339548245737943823486851008937710164246984790866061181680654608272265540773669945360930004270057575908306455748090958576321180184826049400362116014072226727842817671364818419849239387392465905936176313103238326047821073861189170555668785054264461590796630391114964882960689958763064751268431883821233588633253584841446108052113185693004742738047677875328357592288732182991222549158563267963609281002443114911700843678643491699492133598669094680792577630563625348293622509290782723176764497772165683750409155318095433361912649702356255041628085086958958804668031133548818201773939621070105080066471834438094662512908841938252506151270182002698254235988463596032101580383855379052411137542403066125592506075187961729349471325718806961042939609328421452597614625340820578877291356242661222921007743977604383626656719375668022198850456439155769832163474335096580806491461865217759718272377332447179676836340512574710979114688394089778711931069471055175803659067571042829520908505413029339651590598197610366951909234344789255077300273885937952608271168537365126472550079129082888914271214045467243856114711601125190150128805489962159506991651450378232378069492508701428895321106595888796399625574550669925083261909544862464641403406621312590827402072593521159426061587454477503942484409067988273912567021050235554037332684507271051765545824550807028559373345011515622750183124789244717316561163481645379647658895220582336727755979733061119289587749249971205615381176548800459641530516310105867970579595493435649200900404177640167206235556306750429734835958022148010877013645794899256829474536765908656835667934352526136520116723394146439226491145162504953925614792974233160820353746531129006888437349132121862875442115592695884682002571477482282366814963954110684840485151551967275877766449723186018445658982484834078219706002195148079270369559431677462962017393877883318227695360648886930831846523178259188075643526404055588100234007808327342773838532287873932361331155365601335125311690660131048458615087766107235296267217146476021914160162781760268862369829834170556348289366483947975636302540718186092070831191854795089241216388267020730597308147956878678056097248225914668953920915533841517844663718656871660906109552916416128831265157449993012963470308361297431853060646383825669485499732343831846864397697886002138453327029742108480472422343088734939514686173742662752035687971762106975072322752306698171332234452776089501676917176259189151641007071588840630078947295229695396678481992053298469986707218475674619338480171088326811722455009880944377175004080370310860811432826920187300650408089503074504705599139538511811484481512302035073145405653636088015961280649217464789538553275098658889706097247525557902740091857128346998556141395400647834383967058934926017012586879558119523109410173797195826288894846498230745318404444325420836872282395442856951507842865068690736659463792701836236287089005413222179651796313655741302238933820160656155455534170280045204622936310608531200852919918006054100844146377979980717496903884691295313364799613788582311730152875082381815090576771504742393718344556464721072383273012099098540100260618648969273262320148270120264632239653280549480220248098197987380656672686506169158785567463538231488881094153654043837624969670008473371925756598498207808083385390466120443081329136087594793645434038882883696022807583117400356978291727590681299440289267069488447433651377944039562239038572723971531354616034975923936560812268006008331526484204859322668626651060402567161892618423984287101992110060033983054957775381202559793138644764771195532720859234985319930707124967992476861215379427581054432532267104921115127037070332882709450733794533719198335246676402517951671510423889914742893692005791664164069569821670941073808094911772576471611407970582894814952068234176825457698870846049577599970490171964038676419385235167320544745542109869759026345207979457844936971094669256632681073672010906328711559119708212533702488659579591719218403520447665654195693027751967772155805176273303022543276613792869173111338126176448449970520605733260711723888378187726541501871524827665384664525562435677747389642462920726451207826956590050060801825274702594027786208790865577159642865987817016768511038462010814042358402088536829071416119248267676620361989123679217545216641191922759757646677477005568467740988889719926784263912776447858960017394264527307158474983472444160370460323898456830130332239785395564045248969182656389495950687446459638015126762410992478251750518290617229945399798648388781872661874420586550231285933097697343695599875860940944249261576816016250004207577737473679500935296196347331401013877299229536080147289849986018176672144762625942051111154282651262113832581882376446946194940939088289034566170451412396905376553137979225226504899026418214240975974263993964433218824443815834998937239842581598476484997805478098258794912264035015447923087773278283556618141579102413000565249785800507567152647348326762199022503232945872547121952114339536802886495780085132119819114122159750182712422154441869402574418264824257389811319662677125180753325354126103827946264491571768729965995991432575585180814752429644590723179809539721622952087235120675205393492251441890404572759628316836640856972782107327343390285709936766006955544103355284031735014736283766589169147165962587203351525024138238378595286499230862596324263953208815721884230964144692155397177336660316290673664707095454425437456920891941575478006732948166019584246116077823253609333937803039370174630917666409903712857743695254014640436925211645993983991532751633662838226521619367658170628934648066789587878103168443151472955886520729151963269575334200456732715188588353589488141114088958902534731112445292160703369946857917294495280967030626957070966005861697214217704874042587362074923044277589369718462338434410411515781504416688124764628247139689836264327506756856896196315495467681025290941299811761357307346145775614646064700199969923107122781648280116021272358384984537141593917080820473263093577571614862490340773159622948425161071263787800583427912117757026124263902071443321804204598274280554795518696591895799064786441406498623018094521849569019993448254016132622010455299614871460732178252427003362955042150854350725501303166947862058425931967963045805527879079032250411980477439074782200821572004040562698760244697065764909237920287939684741422197803270674871126831639730404937173301511733113971940342634241202392540078366734498345875775616836509585057060738754577890597634602758519234946232695602863324532308615853763131001411751573240500198707969130102584867417376163839089513055284784812937344739439615903705525669241266935557445744135591471082591575883863793437111748198288719421790275764579689975819060652447622404905613013242160464321840312518671554887872794721614703575751132204846233766746385886350939685006656646664105826317592765132738356630324147980987147374363306029740374911535657746574278456809234986513290429867290340895175680276261628468565288796362286299280703478789145890219362920399801239274760368110508083242821529788702967715575515749127810660723358362303826709179401397403651072171658732733606641375062691331479275627577738778821839067137688785857523993631458208245887100981992849867421976209356288602756027020526272414410179436262801069999245268157487768663991990851055702969878815256606029151491254222618578894941193215375901679875594627263475718451240195237695204708693479529275351919163153440382274162916925117742320029259281388559129322943503153935764176076056382531250854803004483510235704870757213019934902184118032926247158511824547932032660326273544763614416310800949565484140516046664945253672031107448889582108929892614775380108146909053603929986193274667615913597676178340851053142085615098790050849168613722944065712599958857268682892526384886256227862337746971010090926314309517440677896833264791153647742543296420391284847021079723520532104849771987541256334925538437000543515598811748144103240505370751477803024716187380547672373982587299961393325722645294020481332015961163727623275627044244860972863522976286553439992578528190040430221407586947923102318452431921924198125036458787070223677163062980766072118627198697400622974155557412749233470191813788360520383896414334092368344718335646579477951536200288878345261490541981811829677107326312830959879971804452538187371710923557111092900752537685800592621642532512423891820032909499482734343236166252307603920826942475525686731938209981433693958859761271017556388218429686698777710944694389078367436743157050705901934541371013606131326427057398068253508898865279075448704087616450790176659060994832462927866578900715415468730679325204502637991998249724018012945085914412782559500236088690367648702453942397838190373268795115851589585989184030369471311880168713616950906282348050788609022752707861257547178335990208947540335742499584015667765510535679648289169556332894147247327843723458992220969176912838363444259631701140892190293334580667048288972845128569705303667826019143163888765763751951931556883358165173694056420784042964685096066766237773568326655369855016771888163100201701227467134166956119598326466764015915300936745093696153993790553487397274141241435008114602421265711511395774065349847469906335689906566602949510773762959518316250777198994222389524831129849755534018221288652003586693297815625314132398852780951810799321475238990895115081558435530745693353702617916119406917794916072480638690171634127837143990765791216617225394892583050123812420532910597779096161572234705786535838559478994485828022133831020045004992429411265216255487265932689789683166390445350292792437266828800507068605130882453106948715545236426593641893882609369718897197044265484805946603444770046453150878158143155437832952973337093139856342186729844664623376990849153835743965711585983436251485059916109948134843744698177646100238926550628091755526544342505573941076654912773600250927215694301503081989327090382802989461244484035995389701366178928607505953871082562212538457384891884653208921958661042158357863317941144381876942603527078846836856083068434509418764176711836932881096680287338616724886231216446952933654873031267901116859242331339569460794977654850303065933393750339145812942842123557638753239495533184049913207004779975921406904826602503793818943738571240164996274990230731385913620171677787839402169937463889122173588063937976994771619362535435377903794472988335469199040123508806870997486696430052724348661531693762930895701034190909560027504467150841016464323283773110372249432334276623187035710497280015319072020777315107541597104418566166796584259019930468591825008556408296802018809605724186799577134473262215818548410495336284087318471816042409672684931746084777470662752920443451846932774871419498403925918690488396132207499708655774440612188329411821522443446347310448047743099328262202188062682390350746782514871274332766431945138527942749608597409026433674802652997106430999227240435368638268474557177675899110050649467963426214929433575677364018889799735537686669539864920633094189815762361467693113120289577782303913698422756286604062340805746927026585119878649837084908428841422190424981262315339381539429073006395658706992087461509163474689016327155121101172731503097487192713833941747220138183248459131690694932367116000394869541920535256790779371054568491360359371813994904612900402758086975636783096189040716269974504733734622495671561516359396779722702064186921149838377277248095335945672790006534317093118291046310882321877411594869475855828934206128980075734658941853154201763699710197992083495380132996552921570205469108215679852764599673563700579110677449213833196551548181307555323199153007137038569894628129896340082227103038470756339311684785135696687509978314072706894010031364156812451349477113081067269309574632462717239689891566704623886285041001493925629472779113470059951355715056617990995232139133028219585704195693152168287266540173050072176132564571976709854467411924565325313413764877427986246054482612350266981794901388145499065336598287526382121148828517120429913915680461777430485326137636448033994544226161887227671203857178559709843136313483356837914985070031080212199223559797395988486572874586268088557533329707955154717779454920357430872148027512660933113474147062614396961594592808482862005155129697040289349308088048861822281660636888914781256000767824476092232632900697390399751438258433139651081906321876939177700355030599492737964093804373676851438185579881618604946979992411425942376690287949544130499849202620360314157414572436630943810758717772178924998179518418042461008258498786180652859072549530579188640283309811377064526931640998766297128017904011152843354597281027836702723182217489045875771682624729213293866520394171695335781074913749855030834834127999586726639678309369237780595015950184199340204875594170396406916703693722095290359447450349818101697894829455559685779639267398029996641003218325765536774412558886642048869905293509068268412107541440951108147352234228967740970289502229921065414040015343907464067202650309738568059467497318949948326828533153107746490638062392978745335855631125288029663468815501380736038637821671314680935811243689449791090600351307435996905123779926226385970591171313170501205016724563857564401240028283208408048038305870435655916940552982996137102850214336361363407134094898772971134871280858662810228132182662298068612522873923664110643498971783962411954444955363509708069326962602007875188033477601284495450820394017948557019480503085329363589282233263555679903641815963679642817190073769787724387947239562869868306348645259920399113762560938452611832715217627340180756952796221230566603977679223333366054042101726141996744032800909079008619571567989635780692001461709715607986027548356813123741708687532069643014619426955422459015296608663254508646810117998276505076389795737238610784380149779943163213215752937601935199858961042730874796515238022056961125472836521680452740010216542269555830610762341157860843122620752445426370926012749349114108535660877501210731519377175136950807285455414426574408664777463718811128875766359234163537004868252025662165878353992522765088347059788443496925089392516197615281384222625986954712773894910964434406437925191193123726118551864760455526796636009015207408459873291576964057387510090378952901259518151361351341863176729738905137636300393396197812802283995800951919977577557383768685962887622530583967840016473170603710554580059312063600596325800584492109709714584952544465333119541287351808318614865329037806435580882021046826390045657393631028424741860626363319002725708949084742828735175022628656000109840211046452634664970137227379354713295012592581232675935535476347353974290564135871189224973191554550113494347321307769568487471685558757546127716164417416341623522366913742668416715193674967181895967763474239765617328394027071087764125167991338666512936731732626842654716171945528578075376247133957470815274512535626270843639394037888582875485844426416790388361596579981831498386282140980405489816355629017595257372571679854430995960889094345924813875012650638741559904626463289307006655383264471988819043905005864755107485579190044038249650463387901259112453649056702865414403658152430508010821346965964751050418020975368873665022392308863603860477090996916985769497023106753000306647411372759651999703702346468720732490769301926760124886671312254882126355725815243076555733926484605473291011267314325670513638391058169080949143573365850874104973986515671287779154528954572281344944821534058785079675963655743963207263266455587418061628152781494736344973708999088624172304580321315533705186501799762010155737276254437715541382342990591142278905842544649773506334465980159497930450731428013409553367585576803496121833853047854493419163816978030359574001434083601804592751284451398664814545410067318836573309981037522454320325398859947957813842634499661738605028784861666585119782621953230816497741287010602591564666402026555862817695202482597624183561402365180706145473650688934142870185990865421402216096273425078242994890794165192254823586411979961429612948740264024546236837552595672423669456126903353994545998695461773493921720274766512361614524234767541187002827155676865936924245838771150193741113473166678060725178981843526565195226369453919810771618721170261764369861046177097867317972550715206691892824293451334533630398384668273209965046592306802967332124557107599812570236411612702322410095309287675933161842326652447560339909468681992154404113947352754461853112904691562147938073812293109890375444719771572769285912389817928455784592973063439406837070328723569247704523544551417187483362789406983320144042269777336319108134651342791557148785888925620285008076497502106058797052490435541590797125344465399772710897461752815345829104344290153615794967121535660673848834195354114534147767152778708906419968338439586470352804134943024287282982603991073926903048350441907411365538707439173631628242453327356677466574886201915160035757245299250411151364811306651168365795075769599722285633826111847121133771192859268951979331274009326500993045594917774731005501059254164251120236020566742051461657264401524454275064691007401881035020741675951541836915907248051475469442196986012039446204057348671807215030356325605194811525756883070969703547564102877578264665887080062220285119519534467987020369084328512201590850576932565385043099864208367351233982764893985436117452306853913607426458374752332287707718931638407122850671293364440954862742284915005526754634554985328221411753905244278909471744730296260342383000965526293919550868871265719587756779151371340755249554312033576107141073880901291661587616317362723442985116936218627969664576316635821397965852911129795310297028530893115177639321695874025676951031270246340385923001669749921784841006240113380174518190315689509833623653261344260896102074627879020288177160476559617708273992778940750309973182736142590857110360143795892402516716516041492950777964584639860601240968513405247883517794463331782027517060150676827870194469633900951712399018449542511965800753458917320297970661176868131039821541364955214613831479640667558334386985628304771976684394959804685259666502892026441922463629769411207509289356480308802457996486124068497473168054245081967471251218748462775941871071787292097215361301056282494815429453117346393152257111971628102717377567781010086397875307484697623841950776678208200541215403047769148497152125364735154806428466116688532355915839535078839863588370867277678578733836180429997346398867903708898676792225736955170357867383752508388075871601325012596413351199769796947105366548450705850546120571462018059981239090184736167492746875526343694962517290256180925067372555344159388456331513548748226013193190951892228949713779546234831196175661280058066182412800758365442023626132298886854697917571309779065303252312640196601644322948547132884276816294045685681778029419091298368468766796915880658138277489658998426594561619097218014136616729405178179185230626909506561521809342447374197965296414154118500879204407697403529246372001407531372128193279785215079472405656154427887539911095514992399305294730224739461382102137814755789925884416794167746476683298381700688422195486197235293230533155925294228711250384537413748904550660416581950732943146167664112034045929919817992921487288993021249310688397379488474314089832294012149122490330868447387092104103986316341768957849032283492784947592324298335873087803412617780617987590733296515054369138919579455711428074533005917353290362215001269768651136479980321273203819646822447226231445965967484670342311661754773029593181234033180221310393514677382039609827570116854215365686510465830166615656349281499801513026733595063094778133851783708923393614055266372413243865752781387554370160404534732887749474781119054946643848652672382110438054225738504190681222632510644303267555938400074250316519655845438479168024289068236165455090556607924429186142350766197923969254288833458177055834555522673360642724507488922602774497577586439306378982868314224775671605591648694078818793713423565790153921904442539157379524005644739364986935760249561715707642043854639705063408852833914794501518934043189328374734143261549016844238559293442882866791261940141487792744485741881649017734237115031436794063666053441617064522973143666418235978166766098939285090007385606192640203180256978329891712686583197968524014504623137113873959316242981102458543206291834344943137165426235628024273881253357528360160877234835472050816315247280907262955103019245779484455258586708098183525959274220253830863347725079214015081725177175334455749726221396191584981135010168846473483096044510459980774219925584725196657109895877980789598285388597977835688222510044750998082285103292007806719940011203614103675226564318678406664511406807097245408887552019073469933790512520184840907898920852722450029246901791264270547537718561933682978291702737903219071337524864160222355167689471858561023029156685829396571833441204661538413487456908154544594747170249548391996018453466390134112413935936778120770735951841067988229766039069918135285641013022246292758280648590457606184252707332151958541158110054452607593098297925815859123257860504081576408925157145465850624317480052838869272210784084094638563456914944399788184506012773811412236707759301267642347305805815889318024857851474113806048475135556230958529073895339565599390297815376605217193301593618291627926960667840353458380906381077048374218006651488989082836606738859093599086093272206765070591189707747775907383278227688357757524051384172567652311503965495744567420354639551979698676152523423536222168896317412448578931476016435667413207265491178195263215197425176403338984918448018953079351471867141420186925827699856680056880184672977114886494294062634596835206320667157896549172595152678216523925664629000282546650471931029969352194482865311984870348812126101008209192011184655557424053355725487617719686820502505010981170599006326489392986882873693911604213901531749418801293866491637746373428370637549819810747286916963605098947761859474371902216501360831775899647973521873306827401311175430342110831529694801455876700289360197856508260140048264813289027224439565203793324700560905505182865126735369727315419503915904281360004231978447568383859039538090987173906887466511525880748797503122601769992688530732942290493537396356019898047790210089010252756154081962203131116679713444666988506784540848108903747757460403392021551013642310906544764598912724365979763832117438472191608082455459972860881829066291686693633233101153248345338903408784333884890297789734066383799383009924074021166237817907331817274193346986920492551602059437549039470286172939575258693564196775330613417510308434236382637831401370213595605872108043598823380766911702830170824479230295421018562569675693430327013001762535672774268696454132366812525074129606274546099162620061329734317781509873721880855148366085230438645454669382497041168965038815459545608243118220735633957542772689646438179303045053780398734635925584958638161019154507138628676934699065635741428429699054424235067155355437695669102460518718010398826565996259448901934919161434617560492126036301346150572747842651179132227856183461861702514584923765179374112499485621754332811101680062018028115635982008510832450315469813126390148102115687301668133665649369384264465575206957195210834617500369882081928686158117642907343786561260818865046545785771902463253789656301929820418294029145418250812429096925234905494192988569752846697434661632846316502833677694449202515116561119999499900250256780750453359497958999684410830272922960253570027266506013510082026468473929986846984517889770947839442702850409915466943828607945920635682425129864244956244578802670904054624983603349067352905869987041108674811437348443289956169766258785379560593346686397578466174247030644151655396357133429004124543478566464344525054122947407991701864748453720796373718124205575604898269359227161986648197608601218926970045515628826171553145737840491616260609647752438472439476771172108371124520621763995901789768511095866164078300133181710629619929688472997145392289642284849020711591875956017844081307264948991390191830211599519685956696440190708004516780247907427858080726564970983021124338640359286464923084604749933493631332471119896116127136457171189452038201713132165329484259989778807023777517876585952938640427740685662045703283105626803533825977819108146661077775880637281822154696454420691662770031698267053149153588656825697129101173299717738118200698593655135427957534772786838133212853187646666020845830300331392511736177963397082932628182486974801929496518690487586049963518538647411566129882943554549027457658989387412154213657754124620921968208600116622325520692919659089665025309094659174859230411860329343814299777941715238589467180469759110043377215132019137585692373948252317013907548235121849204013197878254348696834158905667139262782397291518383726152513442133929104200702943942354715091173440835620092553105618788503508886310324606102242718242211669618775339309380033151158486240219308899273563004892588349707647532123072498853059248199841921909502027628120598216053943916591762960102987790578874629475720604114776890592332972230045467978591898064335674668242939325753234715979515412929712594413880058765213292048533267911326498101357130848636149965072574990145305054302001859987171848554766434257016087895148230216702632082326411194677983256760891315377079910808177218053451970113145954108903887329317442228175453131230606820898249810734648544254470881964114026803976159168425494421331404289195895781169420422708615708370088055679614044828698118992824970877235624710379113599930043070163297346564222560530679863298374505209271153726457574843177002928179859328891497915619397156904850990183133263118636928308381941758293475800717590635784384688322936681425635460457037960784368555436845654933944415986539241373891078700251955353828458260835231644065024681117810968649727830859445784443046669984964988053028396637146123937715889599110324288266465763643388233906072904795948759760864071002774634487615457956932156272693208092588950873003738750031863585372451176303651538571325781248308237310969185155011665305314315663599628350878798498550414774928662489138055597342090086118171080801489287944426072102552548400590215386285598818435823644209973338610823309126818342734027662654414484457121352099406851458146666579552298541738465880463203617704011479171560108258584011481009427789834791767312608732543380028910919822767928538549315834153788494682043688861455441394380614306422024270942712116140642475353587757109401841416660429983161043684096417170151008917226954367185620202874681919641563054551338801374361704261751645785730952726350936639579305609243388247110115680693689878407072442293013676332530265990536574113750172890361676251850840030195808024097612163115797388556322311230852985219729778475539872898997509376508129867317978480254726724217866813986729543363761732780479321392375167210270560607691880213380158808475597752879641765876759922000048842741796788707694781327203896530571607433033413822125376011075565162751590840395647280743052663326362309068148494803279070474767967816701575496038741145903640120017089479375701652674544031472346393016150816506309922955057644611050946431230298797126381336672566370477128122665801275671092602524573812311189356204673021163635114083388077548416765378347265512789452899226689993150225273695947606445454017325369715884710345480609644341630490405067990895586725847685406361697492795805452402628820695910656317783428059577443226427934330565193878234056787037849267112355014852384432839233644744060390641773902559913798098373406906671291199318165087472135541375370298139765964768645437853204836914753341845060988003116689012468177864350519150559956677689508217262857153285354687842387397499543824475550153618261317609584794775906801656810399492998706090502991177063086136965542796342085760063096716477900626362911800181559734289243074805122174536161365030505577624682883585162328551899614710621447171038574636643960455796790146620679355369042372417698146292976741195574971709878639861658431230800605139904143842081156054771063658546193182536774731284899119501073914947743460243106215303105618851899196133233857188794925880873219535806402662782282687279970979119587546326670380870553770197917840425242764858172294483985620540196642122105266027172710746851993168353211186965424795826133052428761273032880089359560881699435813192203845069436199963702251727156942225537414389353173941329845753224334265151271334498474078672390569552910213379900305475763356885108106573521890408073219368521214865185925783261218728478647525692723388778539432288896563693292751667718788949918064434405392531756892938581453103093720887498401978890251371085751040091117375405605408955325397467604691046324609551297898197761070924660141617760625049860619259537248142157487618307666243759856524869936584750177735086777073454731362588132039141003513720473557376698944973898854478636413054737035335303514570183046492182092590486983708232994469549715682182774645514794476739531946223166805851878651629317410091143798159233268186669780269985209288454054669002025269026065493068138265537926950116908483897880316556492617740911382500077230496413128552299163835605475661011868425539303138155481549599416699717810424088306207591154175164682162677331075986816033401047919135905481316165644268324601855319331898651156871421521005352637737323542289335904161753429229996086138569138498907372927536086792801005253813999054831782271994316279469704510380622873005846106695417628358628997766274199776309152801565147699600327497146154297669384805570366194167101458183769416630570598530745299781763836159181010564920362737445308223974486572348360110952784743428298337882444573354404204377418424680616116218757053906946768137412855690413343546757109509762597095221062493448483801365852405414784571710042338396327402807637143235571108543677688128459194624508983366271608397636972708081860756928533893767505748240724583081438544629464325886050027516088567100574113263234029216301023507248720272663943193517145741499740596057892385247155538880840786717020393145035263863195451414224800391945496049323203101526200787683041360606294874194465413463006420712511971948638303239376693620992711667869335605140361697158945403766956523601916916755999982202036697993361928290015397264190336019955543412562089941043177013084486697277484910712406296084934057671580541545575002312977386166248875415736117136195043255120786644325138853839764751671058688240557198443721572308984645217129991234042993613439612167357706823497534865922318987634582540763261001989799019145516497823947675918648737596872851138613984742115560995736061259796446376855139798415330864697346590174073098968939241417836345147774043667146275463013355082102163257682848988233153596114530125329104906764830061905672919824633183209249782563364191362491169154768613732764825929075517774127152135026699225366224344436776664756233506622684881717770031388073879197485866372323407565693560178382763462406855825508453595357641865010721694094751696704196845956466257102521361732161218437032864907023322989989216022220378918102926026055232913656953242887972611883216424779639366338666310049121221955693577160493614007817139131333062656930051208990224818161450198387383810080927026931138216974985706728890154062203066111781051476637444468090341695800272805758426342298333479553143066045609878952116512888482163300666072375291743938437317353540112263534654226927495418862193319829858188453810863434425067357112029115817197338499045499855988516760513457367311330302527903678586361544970986765935235934362595047633880310032453395017246434096263098999443670825783614224933128081977901106133621876666397700339610646547582905052048216419472500110115699157586975140657401177731811579976557979886340436681740682712181781022279431612895658479825810495971594870320027865536365471764065037797665759721967040420287244984385030222940749454473337333906721204565554708454099657290181758037662875888636303836708481824095823127422106791728631356557211447587139309184875933101950072379103870045629969434320846814321653262274057785466763809071222411709276195531856288156775193926661422109483873940259370026341753837077964483018366756751655180077928519445532136202250826906166378294464902996959980010555033633270799764838202847446543247700646197258076705595563607502417739789559154886044729287347339540632565209405657415138769556169143539792570405383155510575524862979265104469364374546371827109737274413334867813250825396856521140674239279617486823128228374900854418847820259095751252702551013663893926327626934384794809647881652391539742008110963382494184300034346015094861095506811440420289456188214065891516121856610130819593645367954669567784742642640207880475502599665286629269635001448535942254881136384531571876775176102789489472512133921446036084725083737528721112693250874162662386392157360142116160472023015958294377523118100982528106537663096161633279964173315573392853653573244524652330803877638169854261504966246794353412263954498456079527096154854384945792851106060566007729982514386206844412057613981442905185579271298795232627179468404906997387273459773626315600031209071737767581579365462276303271826790666044540420532799287084477651693046106093232350211242795600877031168782865566329146442740947488182058630269015416974924026723900449610830792469428869226379791420961867704887631289563230793734697272235555967469701716263162905470894490094810112165247922955437447749510899456553113651941715239094769773652505076068674066338857712313462626247193392653612672809214906124196625256405070714877645500099835919959785467082780147916213508665464501743890354771108768160056007263535785746417717547931922024808450702451146337061020558949057105068593281666943503805298386357962974658757111360122232727722958579111106053732836032299310444161665592276660459195529392737766210655372277696355039742473044215769884987872101346358395395211394517012397095488923922618979244689910142509538538171316949291121949007964794962410544726330269571502277051567656978297374124550225899753063122872111582752829553259948862513481590379786967152040476915221495093200194516537549701671893325274421735979614105776115062401000794196608860510583940267001472660402167949542691423461205096161042775784161840461676253963835420787324733036837404859485955781244991976033321819902815896790220953163765400753664901104898199780191998167585448282806223702463477436979212925410509090718480995026069367819410230419935036075277578604830121462311600578704872409541083463054328561194979919757607842767392156994834651256910332153531183884951018779685770953875967412774185316490780069483413919610284814940572290161928497453309367078802251986793931426320436287566755575620294599022269502673696255222264621625758837180918701865178287227994456917723515235435728073488028780947977673125748526870272552634426892313988744642319344068454817541723852181967035858657047305933596243933587685072922303857447481093410336303997756361061550688081709555188245138353492000742299778468957879459302730843441862267024100994369034735672786752123112466881365025574965746550149215433847114131269610857197152898220013211919055049876910979893185546863774212732102151054912809331893402472885849439644701834990579327166009817121069959003502954698658340577018366671106437865927889161379418003755895935260778263441176638244081089920266113663595637010014176477934942527281911545543809203237193688931444715473503946006359928414292089679393379261041648002623676060069540904697177255242408745436382225610799419088165665313481848800300738979099853303170188590197644370610196689503587807919805057438588173955909685420616422936100899895401572120720044971149668697483983045198907777876946999378872186550597264646888754429246742686466174707532804461838609777277451840427715428561154024978630329115307185793934361063927774552360792071232212810415934510691604941635744370691948589335204462679713424832840162697888319964695765078007585138589461607152069508863474940121411371685597937439871898527962199492311242393041049701545523639281241381201565337199836816693539421196466510597329152280647175936201393270528604348040182164045933432915033285493403791452324855976257465588442884537434984594842650363910022171459542920399786245756607830027959434079202654307529577344546476172417611959360967125173374128939375042094348910569037816325081006547444771206743603217473437283944937769124436294104055236609357457995063429303536462471812415769980733629439517478688293380020953381119957564409613170304328640416866573956064422425435927701371665943690324115903623168201748395985795491145726635243548860197066938476011884431163323164336557083153980916990860197046150690805830279636336056634286380753477028028069173854645203844069733074146518135240191302880973062824658110737511468324446492369436429718707105258022872672623435197291147969034099942233068778537540663360981483347404686500792493878500566433291094073408428606887711498203397048014493629455862419491054284624461203884892705392247781428745720525018164372633186222025263140923371022716618546540645030796304594093278700214657844325249959051732660769687190151780443402831560218790551440266800020865920480135296933767932649237090010968196912636311610247438695739772564909632101572374970357869013442246481416547366193090446818178520397232560203845460808714946199381738216639676951015105688563156584157190734074630156159434324543275217772825546171699985718020959316463573385480241152157680599422563930704423409800007365461612912057851209322418607481434671584488454711576530072602435556376449590631757685898259027152988652375639358092691462397603214261063554020624706092770542843602348885075554261384986263292855896513878417727953534860661453543924871245677176657065913658706265579489097797203408164944897976802397814769389447436148702279079095961098754727791263838218558216563176300186305328768245070526851080666134986898358770485104105969792728789083305167275999667702598541208572751053072505939035434320794272652844246249881057635857680666321591002210465082303150728379109352017934911993030349542737377799764493648571847051897661119647569119547214768989672831192214929769001296320377255436775934162417314057477731321258029310670690484954251820450908600900016937015705966080162278245037904335645371269569115917708131342340874438025938791405805249470668559671131533303715825481224435741231690481432042054066658368073159329624880320847516532716417116046838807031127774113512409561772652852122246311968377036231754313357809219568778994772541571999299996276693326797184436028912988531064862404407854298672174377783533657418653527098623176372656969781466529574735712653213545434006045786632895405950461090570099268023759983251169040364014612436323879250481440064926471173665905997068736730295301221072582731653546615745851310415081083074562370019999153846883125678606354217936411235162727884975925459560787273045612432562735300364798122284345413737436493332906406204099259144168938787127249828445502422339526431893697290083617199873459183155186040253975501847482551211570967482875770910080274479704872995631414468369266913567471554571493968826214023865849061312442340361145220525027096628549492809945856635984213779677024709639947562974767778649723650419180622194314494650123907197248261222229555245908060127264204416267635773829010830562633955284666700398621012522029525719144680510341732101317844094849039382597662733228104082001163680523072614304333787739996218744804176286374429548960179649296302833134677628646753324154450876234402519168998718882885203551321525223694662334817246796474238082906974725100883204788582129269498890397405847997514902855771815627678150956518593322886854924498553964277642235049131863811075698198396760649492772423416614741269570045089488290185724510302224814399553508049812052085619530819206230463456488414475382663753408259804510248455706669209820138730516550528841463990299053550669386612825883125963679212860844201918470221725242954177996506509856547952118672097567130828948266767522306503475938616876520754862089150856017376235101057115573208056948075183677458002497794480652346365017966929544238381536717151636516666857740342767621113415267975621157056528281827016888244492270351578055486880011690434004222804417206701813744155846925626772874528249091253915221143168924100656228501056910870299556037961403931998347273411255101991875722459437134700027551013419912425358349099412907602725245399757656018591292983350987621887489829643512747917075945658443878561515715337587989051943429321156129913072840381674575284598919544446963002433997743911830448297305190610871540354491003467761602696937691801589654658173398171219474510053817108219204456484949332221375328025425157976681315922837703081246178252364114320304897349653920736185611640938704352782658673978984201937183122664030066057387764897492798745400378775163734282211346571044279486344416361668230521511775389025014817566738566654290061696284562206646261846273973602510412822950643105366816351289210972935177190550273967133880429190486385381611932410105816449406623686256056534487651667592246008079952608906168995208496118514152366037293421272477745096405475501833084067412046371095055262912105602786475870367697401885892059572444073280800822250593670360007849961508489280335760376555815862334453037279269406780730483088482668048125644111533043188776830363260995641541627809408157234385290772479154890167517849851483381462005008448509733182128856560272294724218420492001433815248893749643542330780390643908053176490700301423057967028213461510800043317048387632248829911859810751827720089866890479341859595697753485934829082692326316600844509603529303527676237755832901287674077997650408774931758917476806701722718696567555315024936508070190012406267348634387388766551169972823576645409729591160594451559938137153791127952776740589704514959645039989409683146639503097903040379637402178213270956193246332367819142874201430406197108124303286192527519172214785662875825383482991638060061540672034185329018811204951458280371040128612138055496327066302684427489864861098045894589389128812033838959385277035751319626639943791893650637933531061181882907094381933051968783227308578912464531559165950910985102654737839364530862362073877350514430032011065307644698473988918302371029394407499906553398248055151670287824066376710846631794646579265494534577299908774438072832559912589817807467673289673153794962002292123203342526770575875386074509114108457580963186895664805286914092406586241085134421754449970887252373012050429629486801681923233990255275362895086555434895298447197623172452967752582168597309024962752772392609467896499377704442886327951839316151691761167001193784035071029610552332169512301115310914092589179558768949704870674856574955894702933489087157353607091644251767954293324120876712189255752798523186731509430956424891390832131235494862770009189630615497235878307278382545030141790470426722685393238470480643515974800628282623427500025029430872093546730454541605362058307695872784948023075863464734616308253383326058634155632402447577991876732554483105149716276083577643199561842104166183353476219018297464601926122686265068301832396910973387757625559717534088116858922297630956449346875467570626406448262470518127644013573372668374701559615677980710747436614241959601539091148566794168238317015871759523224680814078893769734524710446135022015069067494357613479259351871690270265624135641927082524907716713032292965576956303218731316196577010869421502048804129910873963734784894455609510078487372034309476397160462214942300978179433917422614229324357722243398734780223988677787546340060832450513907734369159523774261650723304963150911719663783313814961273788054399409322436828430658123054653408648113073019316560032523648689897479240571849686175373858939887629741135073370187972061572413169268185886092904729688090568729095126682064451181635796243903848611666195518711995962407756545172022641667353794434035317505102046336615520842902544281841077267506655784858245887494745351659944579594408513848646176517748917202404442554615526261391900683445968428006061338877233710777577666388183096865186212575494095462670509233016644359690283149355173382722910279659817372167959512918373749962436171816841756051725377192239306175267715738322896546558296139574111292541824472803440939326973652030665981168796149514061322697267681972280164299605781320483441576607507770058194594858485611260512714572738642268623210849591816738252347261422939681835557716561507085978742370153610573999200391615912237343849940999205000396632662307255141864366431843921546380566478675103608264627907391435767951956517470829581904068429048315031192711731889725440038954836941897105812502514744612531703812949956012279394978508013574461912748449365848937351399142615145745127444582390415093288324650375458756198458207005214508666376230542770803551138022127756729359002092159455528988233748000052811168307143669482369706968393173645671458274588439013364531285994717991699531121846227642243039701443426478019347673256080678105397404306607950460392087932907439003285082016484641836433837867310038388248887666044150341840896632130312897553466055161526896216397900980174952141641745167038235648265017469886379318421632013110399436506920143269053764703130011212911141343377135106883288391789005930745231144213191501533939212428148968841183670502187661708202624870708501028912327014278151437582150364876762528546517592748860887045959810644791150387616057057412291326918035426513223822736519286163681166333189020102016845562375251083755409155242005731113290056181848313315792454484980982068923330456533674407283171899468865667840772413682297123207261031524954441924331318504849835109302238237680005725367632898549677622301952669657470491822496238797055495581657760005721547559793782758090552474606561758684938346037521803017232317682955596052768649001996954996278193831356641885678206753457700688948159856609387776511555111563829586873949160158463163381662731588781209228786849502546648230802334187823670121999538073965706766117217780560545009219290021359596835023725588562366040537932509391916539321938808537153002415007435566041113501732868875942411717202513043366467533513906826837826708067545484545905219690878211092754255523550509403605798705580662225875441281321259890813651688907698043589809637646693435189633762574554360128764858072205242817008366310732894177972536150852626068812824592205921043493959229737218258234855523038662241674533189567059688678457252685454325592011505879644632036886290171046064679066736815959742444412495056723288792537694523837963772320399154399828291947417521993796193238599923177225186058558110459638460523872257349176202646923482759131165377876576596878063354271539158426063808465464833775593733216894605632082878367588035618086391409900914404010336524154985012487279586994042015480578447823895712369031107191073131865454597375810159924879551945885989435919326196538088580455935807775111338238725290859016884760490485214801086838856954214951585431372918264955703102481113303479876121729340413989655805380888764706131782704042167791327132661879786975507692332614039674276111889579023474143429925092915023725684456505342537901275753099412102728202067896827785817935968598155818646784893135550767768175375386945807622502444097289551571293813302897728924704771970238466301127651837198242846764291127253538302243588402744880855542970496444645842083387688892523067292706089742198390760234167443611824713162374989505959446485197415479653677405551113993403944730051785317246820803049522410420254893287740985036670962151712828686312405133019488379294078153103740078260364487838635868170254817344922157899843378827890141253869151667769725698613236285317752298824083399538979329234851474886305199732562151427638569121649460987139065859638817659595889580304053160199405717759077463584207730920365914189353293303963792272027263632718055358497411720177142758665590656559402111762802753412855472658952635810926945548143758867231970399277373501546513263235725856778122899137215036266851312519750953446496468142154464156756833046625962009220560900509187268516099476614981402692585594187965280187723460035982754049554377898751080185653093636448716816937703185690975196092321881545015673078575275111694817019959416890669767017425173639968427094921701697241052839089631224939714619778286249672648485112220454465431780048482454534081118941516109586010331445603693415688885599000815257070059694782158518190475020004489391601402799635718144214786613615504602890400283409908240771277711747389919157323998704123010018589392166453021765188846128940649727600015123691503371501449674921159445516732332266761353137109851963748419895908012210826402068404970197360486171701448871890731274774439169331417421692574441579688434298199458179146299077977656531595534673744964237556702183396981988278165771005858020682188930560970969595710827045346159517070858114277830765146579189126966974622030734829562722402572634703138721450515700247344213491514734052285913665980671429301230982851452985949992090383536227003248825482811039674661185029691480222066821927776248685514360716002406896541022788554365510383580041475141645782578876671903091129307085200347335978286434349645961411716492234610155698795767346489275726011863101766406135441085116681119382982865425970988195865760938370375222424222481786815857750541091493122578266895423604608669508183867569382959377741549458284817723314157234845900550687065544834205316890230737704795606235388242890969718116384811790869754350546887822466109957023304670354397488615542499592656802718598241563708686872594168914691360710043394289610928763292236696334797708968527726276154536561851572770552171972404452836546746341497271586539188053493852047982551935940863378962749106807919720855281132025058949537577763172861544667727370271628183185926106427788743876300493398919475758321482018942154719553319857719216093439920887213533835258725186439878520521352020249266483314782292576604609044945399121769752884237315461172719835309298930106272264404283084811673760634873975074617878060730950840338741873598145717704423173278957358079347494140894897040826715285357044036967585966383100342042375852680993726567825506417002889808684128608890066682443597133053870767706955089914287646356748997767778774881578165861315307627800455832577033271118080585552551073103408926981579573226669590600710356694876174112619389266445645414098208624062087792591402475217523588560216220005557862377675952570599680809915324748339512133399871587911136062669764102475246930850695462322134004359861765962300742050299815151437129737949707922994816632495177914021070067805542492638784109500562832706881860013675560991461072916342932659876510293631903871069021543296872016968892979389608531192326361844024202057783439023517141777946178852107583290504983621877870999654220216249570867509987566747914172324487345251552272486724922448056289774697191837847348655296262086323410142700401504223517419206337626860693880220060302117967112795811810119757051311417759803581295948705527493276367239549093390132866278906145789451766343719324490023673553823019643192816499907175668282178414213317651454740545205216089098788772927614005230465279015245427328804085707747144231479951774775133382170665891664918956772509795801574748806322140227094926621530545260433970236130934242960803849263581731364599837547291290794256866698859226379311325223821764214241391200835063842151469291415714646889290218512459947586521151181472255040606316499946213433179081616911190225840330300193031117975505264985244555584193141995418270133207462570792315596075198081519628277248716965684197390911850699653465578944971462815404959308881119719302162333289319516502675489373366574259262817271663777084431081795213129253905677339688851393500640720519869068077075483470090771357688504263303980878474868741328273958557529166280674913560898579417828510016829502720833283516313167320077255391849718746551528266151041232221586785150330277261335551020135393738317662220439971196489099482908369121528769950848300386272166191760126369954695497972194130322229302146594718562057006611143192106186160651856288871345739831591603373473725797039441606833454296775815901203321659052800566452146655527365965259375577298072237266186793888937821021687900638839586155162823594755978690838488007106827458271717111393691002913418339669415392690501945994643531846853366438799499754270237275612129619170193652612410777323911466686394757592538355306469972183779082926377752316277304777274927104571500761246878067749689176522906778397034585727206152529614551161866830594724782163179786737706531622699419681221353704205555792811263655393208469612708735972759665101459016061496640358496815324241694817734700115620851113394998062797562306546209183768626975784615583291494138127861518748409342875670115606983480169514031847776029131851188166434429706499343171581500626613354127417806432486134844642834611746665542702683724283806996001040934635259395422419125399076486778786027891714094778060400134257313647348510194574972166925900462045933374727310128559076782890254049462123603677041244026856101649825704709614381165407629670002545831662159559089485040264860702526985986267842946888697548398976282129397093909017833087079840379228526737722422617754844519633260151322110599462522137845209417223181613393297922847008382538528508768051864599521581509438269650845281956553989939006381166938706993562541002975247422309290120161472860456812890820943335740316651223380063859798254653082820802367213322867798322730789582765605197483325388888527381529714786284886358494874429447559337934597470292212390177362986294536022438959416502514472955033092664488252292403940591709599067475601658047001856087888412477044082700893218671188530259954577357518739481706444580472874465503326127250367738292321453470011106133916260898309445840006084040463025597281858901072984689130559144372160703980173327605435976317892728887171573806568131648298534152399171467923936555947823833658946560441493827066009355775961693661893384920166745603493652656854671674207615359743919680376776695418159389947627387823206962453008298591420253772496777350392815866089407817840989753488319468403620021918496529489363751748785948120300898666623385304638516905585363508251568361898320317092545151338844413592974401784822155553001280935598305836121042503725822448984280511346807454797709043125375936277323448597878187908381947136211782510410120444350027408125749974995857853379447260320456371782708307212285248936891063670725657863286254040864887467513883374372454836576468799830336895552027711508945758672507117227010060446723301160875234996432044582976889667430784268523394900023872231612802861733095617490300859480408742148672496187544904184394156806762971344325927768156696481231036857749288517996429531227008594107219758774852971098040926417386990784354190577917209711937269973665814203268466095122845042349173116685327242651290791674715205607694823931375677060590978972706823791634347902390499510408664340972026758512612183009216043966979962575929052012128894968204398329097700550603228637104384476463934995289917371045647336061105963272965231687090197099298988357009405147776551916424158407837975384404007102938482918399482917272380778157125177296145284727622856122623997015915860631129071849921577229032203627902836463550510970459749198006159375641424284815865089263841540404540550546547183663502040471236325075666288500556698004395006319954522312563531155023695447836524830806354896540927671616549220510975009800215002986124598751353246425556238823506311765459387941635271974421044029301550113338100428216912177141557377842744836383468661184253773314103157963841248417365419205018396124267994100596713312080019499843752034237353766928387636884772447179031884998157498661187584473675394053602056278059893067648610293940281085657338725780257810670256078426729738316982764560243226696654694455042582570687631778603773654215929451461792243207758833672272987051474812672030475879023821635200947260259381310962776178199324390689239149195861121651201953155717874119783312478454866759511499178563705331133256416025723705718047515819342399125429663212429539529641594336615467511298832821583640340138588518846151127549158893051928782726138956438496355652649102860743605476598210147588142532911710874369573301567290803373737922650091329773567840710856485354715119531274268452904733421499126461053413452528540696236767754020249922990525527835722554674781414714562810604425891502196029813914623316128103895756204026735404951910895525909355301519073483959731455624977495081485816975192675704524920964016538923311253760945847507368042843666249436592970860444529102462223380094239478159495711951793991990781605715246483232822357530549376939741384807444195688177933656814251669048125493751854278398432828520470559460977184961906950321415212210426516815738174044728186726026989395251329921816285761055334069807190120247430078096767225951843847968702828110960680609939165720038288799449943097064403933494323746504189621790240848377294477757345962876556260106553985879109224492597583781821740476856404554856022897020215482867734127551255157939711427512092157161322688179535203329507068625965402034658963506215710068538155708818565221231633239839650020972586290435837308480444446911117865122941811904149473971703825533383695486481384471273724611424268441516661944313068186980183071509336422356995578553310072626295946769797970685834388877359382936502276239141199879405357579015118912525938655443115411563291090264259512499136311757075097689193256503379638224518598662436467746358479644949095449842483839676128557504768372616340473244486261256410557119304471416115854008032786213604972003230609607621695263295589588709083894257061294090970447148634945697803369936997788846518670779361093662353296055857464730027072091319519772872493047714672183919853267330668633268170621737424075677678835020776078683032030371758493520292739940449151130242118759059793238526804042656576784966083244955373537873854476905715959805172048507046454155317604740977163187895739495952807599636175154569528212485049287473843972119215954095313832131322105639732993546090520987898823458910608660717758413390762876883981295141064290274975288427665576835802162109156394646496858719151117744041718734384110886436386315882690381438407971177133949291062744285647928476434496078105372559351268041844665766914196254227495877686166288614333835974862486325581089792869622552440644038603884101412336828693242850674956103003598877301134387015478431958978184233026791728412118480885146354840711090710468964157158892567670157181798892066025399110222731362605797504761954731477883608063984122602547162669031541083319679524782561553212476393120313941447493095191010926692030222026172389389413430370874968701202489579687427590747875984326647363741338159731102402462614330590655925938304504931954318253239696314671842886562108175868908864373192290635720516724404989073590941619734448355967474738884460888807374356226177138639084493159307187505533952516862461512377357307840971027071490523155950594401460927075907356800890192767053538926735114274108542421969179205992702886113811702759856344232782620608564527662652293398810604944005621221231795511703757911771851688421937644843053140673310763704121266114982757245027696830319023822475223817861922418970444327189811855102485677433734949180642678999895907405454200868571976199188781707927174364595395230786297514112214719659202248138274408037412163307274246013309328588586727886759849168774247099564374139457723675017325441568727428148798872548421728650210584871327480994937457011965303292648504479342109860753408049031205879136779014464510566374853081045777831737303206263568954212885491801492808014581938981041599338882869375148120259850529826824956822698861788490425650393937716229244840389120550981960157151145012388880774338696827933879050545641880653784720473641306973295716822939177396080102775824146653184637677225364397651073582342437190920056159354625070086879006882961787972597163210643506870526124271553655871313164273137854429865305998110709587039272781243853821191975620244029503139727585040931407561574296253968737536434447425168761102805496820311247750372013628566666417936982509420053372776441444627859902115033250031198318758539601525760805990626810056275910753055767966566705266440045284776718594385857360554259608053446158768719039444003505458527483971662897510444026361549594819147688646524054767776771230716111459742605305151273816207180602953132516016057194111197421912417574456280377169005670428200079321950188752726294731892383566733570954591840530457669285494662723696751496950729435749993342080762264925831305102691587775253208974440646656484050010858769790018358898855171115314808949602537275060723647422539004843289892510935273369465038522352813053601482362109074200659490404566598937070531461932118542904076675771933397550848735849541385618865981961752914783875527752152158470147906146760856068260147299943127421569687149791850955649192238898759120582308928647864773505349914683405709809744952618266841231705462893846366226584852572398676345847956387709868269684612743834513213432357790954336205751464763308222690169462822285273581252662835260782567833804534261746130177390784004483032261041255159052353943809680688174510438683686941649995001434677111000644346057209508580448115018577022406071463047286201145459002933127678278886774370056063154194279235533191390368852503604404379599089742548743605300862924270952615537123156748347201654433057406079998812217197196362729233324329662707710381509436357997164221912604928379505475024950688545774470549127071687545072998278936391132290951404150629661171397133328611545899972697423609040814493353044923678540934413166407159886593958355864278020914386668252172071264734524260872256658615273914731451833967195826027483022519289898747235632191539182159441801967554395742428830915994522326554211875371530902736934889358167490888760275643431862441960927757297414505259661499872293198229075136182741967948495297639533394766485743113805878802768699747624303288671962486114991499870863114256317081964318225727394906007581151644619726833839082644308429942251838767761399561797769478133539126923614772156069989706461924617002533504398985168807008531565977154120966046597053738418965107055353127549850080974268950990858441010798491537065377197359920178434066035952409521957389715800803126534363791387868690873684366834965565268659066244401689120991981446329161509393442601132122007701463503280518502801371469946300817670319349540231689455445146147099183936273670274808417760165302261292629578880500087012933350742272007525008932817046623026328960422854052635582297312740700224155127297671318823753588215529408563677625789697955841994370492354319525448282708365425611529973678903967386847075333809175167580653299849789085373367962647667276891295566097604071538661220145177954635333659422649167143125795512703786487391826910350396183078060746664769152873189875961985285549840046012854055951362051363235006782456751688498276834259806183971666586849867989295089504653870873218882093222899734178045677912805587452065493649617733890438303937977501514702892701722863871965093324126417889806452793858415792772193088255200114929196105353771683248065657663790856944594429848176229601882886350699792360322816119456885698955315130014073213618555655517144480433725152015387822066602555008808638134871793605224644365170949384029225926477061234709105299316473517844754411010553100315841541966733285545005632191205644261348747842305715065918577147124416195738567171240387397489297227253070958216774550394764095092043181341560253300207844917667528754489035553506122011127382858789203591422095729479063925684392850278130449344856227640936494653389089107172143566156799491507247681003115083090244196788150926313346401663313569209667766430510623993194130375815901162813963950345444029117895863271787932269197571976364705991542860604985165265465797240814494655236434844649156904825228263696636087661259923973133786765701751383424578202857520925009157753510901684981831236662605108612764535590670747712570849614918777694161216499551155212612008414733073870342178506759764566144678114980548615831717123395978229944787259258294830583127393343242966741947328088936470812094326287454184842012319661495851015631834496057869283803981668025722919615430604897929072081393358622120227720729750291162868451428547676566246299862777747445309350606543809024848485019198099952293201915072557000833335713909283458857847156739789360885050956491938457506371087575252889792798465556766137601692028562812123336829969979887293384191528073480799844927727412425484570606746435256659326871974388407179206181209758683118980788321902206611856982347380536829531447608820025402895761474323595928328893499230956719728969267955816603722448536770585788280473819165350066610263050579377560119827999302244224829187033408825549662818545082407231980047142393351550515199018782832744584219359814831652348694465121148674186653329017214970035867939783894723968694800882135715915052836929015733484307213980414158953168418806190489665179259191843726733653315775297136837601094723509776600331287109468684252229347711001185221649735223344827209847812754695670860223779417127184388875595261366794230062250271164213006800271116571188213359963588511376774441745671629012417333249095237656899489105661345114211606423115691219585959506581473121742671111379151284543986725538750292982218489729787839152938842281242493738290031156482410844291053241404779309536888722448477475783206179816540310984186868832579804706353453705811524927673613896201825593797849555324551571877274531570457590858534191992660199100845784564711424814164636437874992894606071319488667768051504605107867667968490525526580094558492634000263465590547775272984816951463951168227344066607299228769010634893447855519748593526942760679764551482564248302285062852285172640228665581957011337934287514727532095228179191385613263195966329724022591508294856942442141247273699588903838420789727364119490273737331186236740916622994305158640017505213944732905977621448530022184062813321037053305127315607107999727233854326897310704082186165896117972787826157877645302252671887133674215649886386915455289895729911708625570675037139502274356269234450886203332133007185795651226805851696311076666694473212815803477504429538968009755161342081450870450371033092078060336632797717782493527822820738157140326607313433525809698163145122853927669413349586923939712171088658219151353443566177347403640083300444045825168223614768796143009246404155391844626321035821780617514605883248276229685632848158780046825428359366286748603298054922055536365630219715863732214957825426472580301285800883836815264048475232709976445077425987493759694750265126736091059816912713722374285979039778098947075729500274240024223391411595629334909841343566505052001711670830805363737042426348887093737042861817481847122559627694436338185587131760756280039691960787112250245504315723004246785160732235564454525823206268362514377336405304214297025557081886508766577660648055935779219892082305752439811217373080764180195245783284158440427804638391667074416898922731249387329167727785212996997987118059289538206566323219823585425547293450212434868079161963252099307489920602038706629433875686560835557773654462926554317195029573898121954305364819531616268514998950462429923704084885473984353799756476283360984144511398914178046617144364496313053523451192219642381344358993462841897976481964143401402370341179028076288288116254072144110274160859134069634024370799496848404187446292284708392483252239996378027868658021556301500805820440503112078586591530837288859117603365169040172108102849114614540912791314181371195491110084046079223962193770505634812592641262449469630914564728777553564677494609334829578090658080662352521808104105761485543537085507199384631335601255840148032862058479880373665210398897717757812887202548758691998683987713008102516129001113718388687550781403409043695438967387221897262173471628874026156362106049977530770081075654921412169269905252011794146427843951198525236211568946755917017199270989264978167959979048500113335577932236574426618694669561611500382850564682341849398308131016826735050855086258989487821855708424853060557949283243344276679201830612919143719922549070647664608291210047621164910783650597768574584492540684717345367343636467944238584115421200483272417534194984974642605397412362270864472040811295685912591207134966284764446085182250598024415764430500975636801283244611174602375548633242543679347265620090193205670949860993052314022979664531879268823421764629570442330930050916323145271926296021865996439560665725976376115836828201755998338355303268110028112543022718010860019398054610331137182257906082873065018132960292668471652066188486863628441694261923018414059288129501825030605432519431951367110454200171125925179416762513698995853503527839297719135712356348551698246910848166050858493608948828054783379482649627311372515070358459310923618672282294067174952897379410946603874817658708084622512876121842244639253918624999670764921920553726058824350164753426392875204292932252188847365505946620065291973747436807812746083485346462214083167130341094500435420872739573517381339826214502681689235191339643543331643482621656367051060306335419727352573165867848142430246181199478709855908529994712462988346811477600657621385216234926751123843955034025566368743946712060074121352769655894452608021453492275556903906428153364090627187977265368790061194934795011116249683226580219462287982154518435589227460919986964847792162204415866304306737295349603794394862981213590800823550749256907042250401149387032444745547797899476784001529848623850797402646391834644570705792834381839973883462147634843976370829017307450013436626312959354407517194020642602410839523810754650828998493818767855333563848478039796320497861728724677114576763769468997848825137257869867256325231034948706111532725281275623644272927499085594404494603553355385824508597874133043675888862371138286151696869231762665236896235522711833742710774039073475335457437037166403999790073330052395153050215430905327845149424836704063118736995997550224504226403508499694725424299099046745224460651031579472608165970019710848429330502840317967504529906300691330362316256183181418943156212547878002269386143641118763066280426240457024337264230367201519631165622686928741903842169557349012258014364261724058221305384526295486569324157455995727655321605819772597025851785109124712452679415582357470675829030569178957899117866034600585451960261805453320890319078096010755716089869297403996556595484476353098683756077081523610083703798626570666570789850657105410728566779714507217418135231667510043070521544152849186638530125572789904096688002153480681297034973053761212588019449958249059056753753051891150025072830368946469569534596062937706883036619235164155082377308461757771521155871341776374274618854832965833712190050441463106910543309194644444663219988790703756608471913643650517116804238204710732467743867725208225366795169573822908251606136044435802117936039633673280251634825290397712919823533735836462291292157887695050407217803696996183051695322526919522716190438953057317907336214136306837436524591727672023106286235938090849427990105393779502770446278341376877969670035036809472157533543592976770783507873152546793928202940283575083480549884621653221946280373536086647659646022368689824443052930203158413819129478513447910762307545470838579331699614852394920541754584942898638681215846892996586231545276042281266217647259577991908348262827044187197184118331970449787677656352441235548329737208902831675478486813649133825964110331894077352859575963609032514567702049287062051236273318154179812866335126007705317431540745035923638518765483274695227599758018076226622665049468386758320783859029933905154682970623530731284027599429791435022069605898921888815505002435906284377419629099725460292051501897554348346736764673621545997169537155469953546345058397428577457422370066178722381547265449895014599705529319933503490162293265656866599924164028080142602830607601744887487889463192164404447738265327724900124259860917691244195096486787649086818380973383250067477663331132457078286950487907105456042335749631263964706702148204055959596201401570938203311010762326197819042921698663149811216227687740281862999306013555452411901932214984584330109686350612180938642435675818990084511477051236193040039601809228285059798852414796797452627639981181977561011591350930780844603306912122862207190277020459316535099177344485712949859813124232671517752538520907301774257764776945840754913514229014808833681598246550144470264949053732367113233488710757748543125041471995794468086906662907511891767797811500582824372388230658157034678447318535682805739518189866611878504147047058884929347854030706652886263993219161183027234481299399360471140470901743493936026960462079209604768567717511098123467206502999244264738129955962247322231341547780820691349051532278660180962819694915367925496369475932430897179869510779553840985588397399594658776336556564165895159080463746547016958145986255112624354368130580148858737825023068238219331986321631364911844596662715040281646272384352404576577190979914177766732650463527821355722662183346866440438590786146564679467242929456906690070246348791718899603582541026486908826254067654238289806441601676248643339508682709702552689258437243343483638787113398475059434686174575681380165666934176904441641623593595416388245938426088967323736924572107088441976317446958184665232445477416160297718006083840858130360462699489771318219493849112717211019103099079030820737986849166549401287048762971565003750032829130662372042691268168364544966688821596208557862450300558144808494381009399118607191204412337686950729612807083163529451173600127243909914467261920128556538419793111355724666662273766403361373783623109064724399492672033954600996554201330073747539360236131529913180260467334764060983455282903694153801373487184381551673676730306510418073164638266417229625738389156772304931445453070424128080877964022808007005302497939269619464219505722567520304965981731416024486168877239610560603894633015543471915241714433172307031525714505685290789583211954643162647950819230419231721396534888635607655626995962368105345189107412762975618383365771505731516652896554782285478479739181126649270584967879602898521645012840335735527812608365931139320828568271963317817189150763607055320894469174659708682192717520165740676767352210549545486965855962709700377468507280110894092046340278315058862955332562512085895261378348415551947796895243541599496243627925690454568603218681306058500905868992923581536893944391142706813807677520848300840302267493387699648738948633819271854795486140361351567437924141441807230917566341306083390646446773104537177224460404631776158801875456473264345082267244480950322364140749326141582303253346056123285142216309458489195503965832585243743673520284170041076119795853282747700259734111571908446889321021025696070396529422071459119602618719587532331985236781640987570989636482077803258087591361306490618549996240243657807039785217724948972731870147224217395377623039482415878840512271220068687795831656880131831107670291273733142243608823352294996769329046897686346950298563325127513514895963272874346727636262291226191342597089724022794770430779244987481288658850522039725873817367933063401005979979058844070486165376355734550295002641766454797684131733689538461008942235426758570497774690002922773619837214890729486781994629751760265320580806466862080402522475456550633169486892169969201948511031987355083392139959083991491914979675080114902142419359684664682365926374008557634680793071188708607527667467146666565379362617990871407753298658606459546155808671058092888155940041679639124502167098464807441128261556615169481967364860654635780082366785714564773364540726615488745891767055733715486028475032883183201377133103625346483229790572155414352914493318094466833748821846767022977561212717143776772963887446648432685345250036199420882323477983892396817444392822658315338504605746819339659513949412207947159635461899824866193248729718973776506453671820784930326051511213102993132198470144947058832769892535871564267315464732763431582428542934761834029998720069681832979570136221415231036582859320393009079549651699151694357894196009783759873571070721500806777614833174962003996259573804490625530366435344637538740474141805944661258283442781915859737066125761064288154172295179015819104688118176873967362928020265647450773893932889634667528250496248537192102612300614439254902617772848360843871507713176322670182635093643926532110432624617388295232236451723576948848133116294475974763103626764521267406295197378310112575135658123065457966304637070786438081294116228907586042618339296560665678145851494590195209997946882769408073407201091891362935991778087895771898275466833052733805741116437934792696605697017939612455202187660700440708717762453959335388513652457542549980220157567281907989197394319501647598929811464843698764693068732808159309475105313226215574017102545401725410714984510784032484501840787756786230982050740796048310060099112149917153845651568393692629486174825156180958462063802432540639448347324840374464667572708059450059968901648611804002978951743084012804153815897912684198694936940762857046004938817239619151429101520805585010341252900687194864407736998818274203662116845992379448686943459592832910221633401463275729904668780592054081293214998373175002922961002847038967302602916991612478785301995844084147082013449753164407002844991402378627138166097064891481913634320683178432566751993662755279009739236122417485997272416804712399266515881759346484711783095336348618254412371186554431171525998319928467961325574610374108829776687251773061166698283354726702142320664587898213244763924127932874912490725922457899164096146256330470426765509137116854799319255634247916773336999745855769973151641535545899708519537127636250404003325704054582227116217060023453889516558050988146276035255851848508243958868259733101124584763997522189736875529556705024407804151822112882520212804073527363188482375672587559977267974318906547653846404491551460962731313095146300775892570520992383571854229445807753329284437382341300756752243532926188431935997958259825140153159563044913999916774900478842211798612901551770811710337340076440929183109451179227299553921535149289841162000898547746341488579784234416970677582725880530086363771207027293203650526463427918260991608562541552230549874509653075395633506461368101982203474962229285008861697772797962549658135239729724036735895410314764137244016096560564257093034607990497395723345925628957464927889909012128930275926462347809599560604426760390780585264970353083026566920730275173683882089517376507863762989967985249945098584722576995571028137421247644846239771326219210502946662580996042931071270856055380684449548089496649720423206785181871037863858396418964199522357221718071573229682925301356351950397967062639308682366234814653743628205530258839847126073834656114293214702760313148922712561606472202422613360573881709327619648519250125082526792305306425221870649545268993504603090335105188543843759041452828107954753143736914975264055570789892621628718262675891265930193395507212474675634057080929559780831538114437564441518321983602308409690769526784501232757075483208784920991613415952862465745219589369037257594901235046991054741957344254796515303423623426170070329638464578307127658295975422903051727663024292276176062241059614793909675367660649665352501006874858748441079656595214522879940049319629428866953752081544092764194617197703139840586042421060276247159126532095436978754563245215793650492886110486940079970540289996706864336688087880405075507666494761462618421738706729177348711734236545207628094803486888831982328628624903424849436925278851910105321234244337540712815673476646311035871431428021837186195497806110051148067591852409296751957566049638221323708850319145929322196090101884013300733843551824689931117607710176123085293779817845315357697935195795334216776727331611157370585683652115924858009618228639646052148451597572624824226478575209221473328853848753125971521517178051076176905173401881915359297153837880868487959455312475917000808016422827137287781611968587089820816159598613727796556178763592942058404732152046959738150144817721419508287802396114177540910857927300849041282091130434492726669804365175571592180108969169030557089470573491495595784882664388910322974840695556641334795397210318579161266169269231536548998810994758065754264403495853178434056147447159266852168518465220110375286245215595953873398863510809245406571968971210884621463652157849157793236118643437276676962935055199869712860460919223239965840000338765822449774639450129515044692154175031556641108391722243967694620772288012558300370978490823949303676276614215325705621209748820570981022224250166680657700265753215198805429361218070850414324979712942999689667673514296555290222010343230267750319415392566861230093468173141637352465096867617275220005282481978648297771350080016628196198949807768915433786591748537236418116020222625977839614209248318631284095626717826409990047276372056423875354228348032672075675452848845841606128956592697413843139061206398769491343001883586737924063127294555272917427522645828682525051113210405167016660375805597746067160850228907201164204746278089999203026847036024095880338808382757136240797694328987559595959337037702414767182999328450960948424735377330030317018968957855718783782216948109304577568364832521506687809280727416435905585060126306618839418965613063696598624062824214457389807359652202751228482569681081293166608856828819797178797131354381251704695738277017905596533481839862308915739235331849901352893728306164378667190293573426092336403987771350048046948440853796671082859861591517929664885427202157590817875731611761248264307298581604765137903550711008023776062595594936312832898090487141851060597172083112119905133537975371685860976348491457829538835511277760659634805402260733210741457051473754828436994359096953586110403881447144496320663639594200389139240925015110883340251680516404242198796241847267003775879315869255393988253614211018282904378191487129127830935697393315244383976079996752994788841341791472743201559408201750386053603470358944844651466727890005476713026539230961436703978555509098275987278123658634446057712755801715499388412644047621757033917964825524582531271698193585237822192285466922056869717209409266081516548366100935380982874766236047820867219027224112711712535034065025449660509735221472501521080703807246184478798779295783765134230960884813705321969747687668816699799629526503697479490469829174354407601160382137899862500179948035723956404567156253571285961861856706098715350946811769908589492186570714761371798246742075631149407995985103751124797192529736630371030444956869657344451757540072869413894554967788560872930618653605792942911860746448487071696305987384550721724001167917066818857730620522320893742275158175910830012320943541897342867908931023207549931139451821858922680825658461859665001885173672161959706111334546354838835249183548735321734542230117088713660925921560152205198015721606305784041738618888340355288817721369894209678662846916284034719870646097864412400449895074964763129748827676662953035168461499468985127939205163807332041400791435382459506728685272181879501474683075821674707264351246469936644282303378934404914144223211757778611937122556204763191611035687687890795208693950892056350879368774046737972824458601694615917615729307902476993235619372392258144384623533624432008960620169725733229723917849713874145408584737971030985731082071916856859371470993584684449199308422276929120732971628085713696665823769903732222248069050348761592494573330108918693421735789093190871779736905069522780877614613432754433047327503387486735563161288303362415754630349939976402956513371888455753852611726963310657706142532803856489802661824972847979314232869103971626342894998903958332091523806579213820941362037205478573921052306745829084344668735147249998775500567337073475208297485154731961443334402484371969603830718758816600429620741353923610406634428620778974528721412554578749799608564412079506861940474990054124188462985029526248578629257140063666815825986409240882800605119990395262477254571082812879116012293341679368347754056147582479020970619173335004187536760440997061941285717035737500584051445998453114477612292028311081871949267815632145357744393498391352141129219981587894301293953433379759684547764770854359510254283616982827076719565982753865998730867775295151227015558905531503769252457379107414226884764982243339223997879822801742713706123862252559615850392194618728590349013019936347987814559382017054142017267886407313387348937069498395959461773603084661054584171693400601045860660256133040070421171417079049592103893847204021154613616310728719867715008715249005930388271924005731550569608183320019203018290014023605246692306968773692666891125273031719697988736266214420843893491927981640667371421752828351107988915013923058805520893156844180821794879672282384141171296016240072951662764744230100521076837271260953143535769255402078236970438557802495678868053941387987045843297083381737508637286469429997383782152177109869464931605776273226696087326734023958370519766818224689144232974206688778278013001285241851632527507887862978376514105039907961178751531501652500001248381267084702362638678877169450241274331684694251450884749128840793079426217930635963369385687615149033573225038968373404191009408256158950229978784508481338837595176769726822183970050824891601669201387943580904551934366619848397083960929518098933992585082137209191207683456217713651736223798072663139111236192366921279725332727869791855835824235008209195873666803109195798332931253707676721270918584786701041645582681039970787107380261636367077452637399099152604261509931877828004811034518137976035308975461864254042374110905716386636395283069709654950438863948909226533098366839022171228617031870415017040858132715083002153013878202194772511138828343302579040364336538942434009403655679893260818735454177961633864157257077367542848906497219859283332801652600705493729285383522601287938099110921101633323281442167512956946732812766531981035172072624242687011469787832739364339275645647753255158075131461254786115206891352183720302743621706856814569458215375286689179820402234532464112547329732517111683204868708669358957509810328246511381650610887095887052196269180739703952904561571358509944723184758437415953763420936800983075223639732863758875271354597544772426023188796287763823065421338086379622563160304605423367258868707268427638804989831855189083067241250628317415111582542623473314659160460239899269759964265692078024996567667121451070893052551588512427128235218783989304752331676573315417834246866349372131801712353121990114091263786492029862485388984884479028800387705545933104732099190749078762694579549619628662910125334244589684265544829123713917428773518270942677335158818382239859424062219811019214655096115532285658595964207461595418408034874162422965673492009687298160672754651698152647224058002365255114149729343127889311454041393261906652348410764268545478946028412829557784061983842053181233504666195518494417177443456152205016111196746660272408451993956763519092112338297056832156785362677421338814148535875208334208444449249907526547436111891234841387457242102031642617541082384233879861182436536586322119197208040226022967970232956463239194140624009894324915934628076418040273469410212100210003885358507042555801147814500423274731299656308394053186241574597355023672462660960760362192833979953262841512758526599607067008699796714577081415490970754549363554725165041919198175564510313532087006634488022974517861243780126462525026970371749488394299792408242282888421957147238419975930601935674402004932924922739060162959039062735041936228938698558739643847480414050132927421087875837237101786234509014336215392128518927860024790690416723255067954009533411343235510926108582269736623677471377347518626574328436075455671298688135113195041914717903556336779269943819404386718042681025057488411890192290889157918529423565394067439964266701867662517014878312702611866728370028197775021585850718740398934570013934045791411303889472443362782682208603195165864451347915429722107470157369955574238137650599428689141741292830507400681657560548826886078541025298438727457214138120001371544805106376233457539696048123600182117936158644338012925926605909194592220971627644837681169425380942329518029614720486234304281248855792112876533266186157558862375891497663597626267131799928798557822795337077674467138908978885412671161011247795695500189357164451184004457780510823421804993390074253440277181200569962430152165566760502533823591485649056944811176341769061394207909824847240797325284900547930247712269438716253057472073984315694545382851623155605136124793025449425328666074627545788944831987227570056524878790558214479186696645176144351412096049385629854126410230785216115728920214921070850079475490800295116604458880589627968567103248424566757150950873835203352566021778049594840391555530254651465486609130870523885963157626093515858260684817338464802436602510194797845972006255259480054378503387864007598345596838608448139792387749803762474195892654258073689621009705581297807108937900248253386189401735774783786902623352770552011595680056266230703104197202974731591474126394939568840298217640021551110770793335803074343332097195654762127380626121955665069780027130913377762345332509240682555059906649077875175386622850383985012659320872352705914091541044092508261587832176587108523485747967087160972665785581804208318417759482678962469524610578957777691657735182408854066692156778368873366776546437911152809568822155979472698076696932641949088681635598892485366294652977757821778725911228099934761433036828400960605948558438318158562845801896081111490156551672911419075311537005550656837989759435088727082453143370400922821834920428537639745611491143618860505722579980886396677300825900463991717555643496492449955325653435042729319284740256160361861411878643722877218156709864706641427629042478738172838101060653662782359362873240156371485248771716572503048358785095086725958784861775977100764382913476448696027426968295702379256463284240925651392262792151942688697866222977672327828623234284404542429484640205339176624177421046238624352535712455827994840882135149221962776751389839923455250963083329679725710074647456157771156195138385546838017167392959034826856485885555030170034561312738114455162048142992957803053722058671863032264786346312724623312279832962908069517122476018450040821317547333168067332200404477552369905602845818890847727863543787482666443009970673515713840462461047402014635288636366454350560871784990532763719257460672442351743502817214734579824068408185068949153255332031761657923493900508510125486462020788898699623028813054242423045794272630127455449162909920567700817040677903779225774934581905814886268888372151395705471090002883916004087331117469876673434690157422883987005776571874661999763040286817182043441454308606367142833771771786121436527956451266292052787503569278873477091603196001608945814950807644346832681761155638771701706961173577940127292339973837750667350156649574455760254656213560727395694567368219625387004767269040748119277653428477631579648688250831586196149180569481834875866492432627683325576661468744905402486618217735972898019339131048629344457346190225473721165087769140608337872056643335410767736738626943587524779263199910342931663990206079778832164353983765364222597351047612665505775519661513381472278568356102047189698294129536777648282343305825746582011140347413947638333828813991340147579089835042012544785289829276296536040080483306232577955411599868129063490305020269573581389646043783876530855497788229934042740097725863035199652678871791061488202930602970487361450957765688557701720581709911689242004041395665684669607316788556372963452898639361375153081012606610692154204048235533067171752475900749946206971350198711718228377648066418396287603189620755061636411328190097900041797377046716914791209650933753445156136245551285381694715886028992539695409067382820599440709640662300701325852152873616597022709368023676112554059418959997070176530798303976213708601687760352967071461198848769153425903835154301596838922292932555828223214062636673324079879927860181153044029411432158033545840039784711310156522573998320711742783509599960465897947188209345453248035728595619281816253217382155713450308751665258967449032774544870619210956577743068186452091473979185550437299292834128116189021571710235580738101864383054264980693003795797956513928792571600600889824387429009007597791204932707565447378998817064920997459068605541011609497630616849158688307730205183776443211112250772250962081687678647800692183124960766311137403786976688312423289280062441917645301096925850156370019350016096925752540981465850344522163045375744577750782233681928477848913893302795801634662959442922911476922947717613676627936308981060162044726989607195941498946152219287585881713627243837304954477387594331748287696200502454507302557808009387397680105846242797592333611633148398240822555394109933317943438663841930728251008995742820245067402472714962831292594582387529382216103258051718600261196486299894947183244145275488934047125930331887488322894716984335946436881026093820993159742362659869839970081587347969176134357937909476580458666775702122545257099018799450319767811874422968031272400116661763784695335543202836438602897464420207109155234024788164125966721348185183417525787519623207576733861679219194003706002156900931887112985553969147170634255400824076127252426300561196997207431952583569955845132073817881589042965577608414382409401611977236645616504760396839698674223448551155672202658351458503592003855354129950786037261423048565786210318225101932193346122321194641361200288121597736332562792270020800066249328934769042314213857886660316062117654375853713469469330209453681447044159386898122011264300755694206177402745594959573332010949474138442959660961122441924534670808854655776440617627454571914099065152503960006011187373041218428933161703090250155582542511899638852551259492167233001122296913369144497670332218311354983196389984467257945140550660773517306128901950894349345062266429772322281927848150128261789044480122432045781739547504194632254929006141575675882902964568104116682845800929819028549723052268127384205280508060033784419212348248065996198360025320607202063522202074588837943205786062259629458444369614008713334554017620777018936353409967324456260774798347395281094674011526883036196519706651127631504622487522960300648299042795913578549824683899288032736756719176987607256541386637889142896291834908900561020472540289989684174094207834005896356692236661449364683897129467965372145909331205662320016816796775223444924404107747450651175646538281883609629798381491803689269681953563669556567593413500780062093706164382198284929186050909010534917521013747617202585619933762420555436507656537654098086562702834349784768200211135537253542412715312165481232616936308040089111352072961414933973817965122523221287079169560519106365401269876741495808940093796960396371556905723940780049870363231575692809645646411141928854729770647513229041835324484986598777833875704660154279674551872795581789746732823143022592793596197496455868020088701823485545589626644107871420842767813584862319367457376287002549929271966934857225472676493720956990595930023220583650273024148336141844964720768691082676980131727311772682954698382233705910221335849651280475184523821152816141360760356606666311968546440038790889362521539298997966022070036298101726014355060406682941410010984711727360293694735984194536014441521065359447850289789661574975029009829891898067500390618350053046959003500120497458642921838178216605526282905346967781285393337293335335627966916520020303385566541041032559344997425010346515149317875230221799588420979947462573559404691590791629356202778874053660655572066562874301653440566958942339662209861863621518183662662073849957648939291699722560615468419458008679220198783254364724398999326492320615017853734761111514929201067492991171340464779680517469850027676146844491550624909878193587674590051523029897217113760564955664324990007871231900761625949341530438313213188902433688984766773332449632220210257848842289533082107481190987393238037751608604599656851168073142377309831771432636910752290247524849806622170641522487382526195891797391741182899508950365696348821608433289901235121254671733858472534725244434965376612246774021729263456226926391218633224277565060772345007535514299355306776453911369592530991288633390861513509031089609939956879951835475441775195276229387207308566470061242365636498770263681185568655076835342424242908757343654292680862050020371311079157660197209467060743600316371879250911824737161152885209725177083085662758877728146919949410568330112543796009823306674197954120055318635913739388581045504905464893561314346917979971959084632590663776585579000340227876994380921270828019263255664354880871667058196529255510332096131070110083303791506842971490745458516708120305297226048008312946975506479803534472007080055364740681467402005215923447328217902241308796445694904646221862140950785151737359216078488066010294334021006468802491893157400329152738575427866973936088170785047738291697976581479157205026221469847866531207593066013531427715619249441252722338597377984765931920102880636816154299706606546737875119287374857991771712525844166072921293707179569077864904841923672564202548165060979869339446582381286327314707742191329850053439823660821453838685030278355120428443931929872750833270387634056667154023995389419858696068933428655193525881134241114585996021903200507696160077825996333655818714909686554835134946300386881399430378024144220589886781464923841701284287361390982033572065680575012600188947698807186479713593347462837398824109939487593302898158769727463414691746281336504257002981877640674085892102285163376169585035630441919783855664752051119780337975769143178903150525884706567026391444501384167492468259671806976103474791072466688724031680185809651717440390009717996977781040833494620211735514755697909270102240389570744286359594235107590408882851073864821643198580794951410502248622838413936883707445847955188155397953468606315689033603179357579952583991742176905134376307849159502832464335141091764072725561467023714950921015848925656479905273076075873082324104460432388076196033682298067416815565424720627902316511198673583809131485618249028444758796777727049246364346595456741643147204009255576499720011597971337241201551236509482010160743851729744409908589193118420364047039217693446772262540537711045121463221233747762909022737294085894540797716308857875367015993247118078181596694233065725445445868135401682271521621967285308430413525915051063011741817125119172795068923184992293127156057453008715035211563137383226297731808481753298397484028618690765311881078168742092330633485588684430436414287650705364306450728947048518266186083708786621711562781022643242846539089864855590014024267780250561286423573922201944749669696316074573608063637679527865338588978654620422784624557185618808306518391896706370159498793456023605819436052547048028725598082726522277870002197196960359099865964978417708121273414635576883600858944019025027933326983831929317305758652944542124944711593566067998377592574380888683975289329296189859653489773877541804456299780869828199175096379496793992835758560662409750489597515415346504192392606414510739501555688108075055113895754885979150185983761194716790864642187001568829974621688407235860923141544187120002353071321048049416129696718064065345692624883181212894864146238352372637141639054384377956227295696194655185056762504745921350246373907113173649448140287027438128388014349593215699894422023562401078134729448807809262835739147166505076209531542442493706769939663939581400383569687462897221045391536358714655988592909324779960088102877575898296150456061684418141864459798693065876877482886740742160860088834276703967752658439335466984587235306354535262523058701857879098610944938381810029609827444310697211741402356723649526519544544627591699977873320246958947572260192965414826376520101702601107779274655338983952486822781667864820302729926078916072837063672253911724303824095389722210920802312742998667838378919438630476478542998359143230787052887998201445725470303420222060590542895077872198167518377094599274048975386813104355189080375973433848064857171191140544786266603490857168728826062562484667054073640210715124396719711384685541375768809929028988875065715835544863930233641085281540816872437087234968929515875509295816335764394220936624155646606612332502552668091856967429474511156365976761461440846635363655217070773538072233059994654753083299526576474058302918843802107868820816762748796360314426230409643787125066080467170572846831392830645683802673643828581100512082437526837275654826039422079784380643105076880980661399073787021988457200413732313181235808122844887961749368306047524366943335607033404370216894562153276922656421413379241939396859318998621600639298821872901075799850409606308287315915469293641577172365118179110995651688499426685008361965990101158867267544968022303867686116307623842323043968733106017261952641673430213744024353384738482341841228762548403836004220460436630103966934263634533359311036485636325717737812580747227651158515965508159716534897934918625883284154618632077453481244926433044465947337322495022431439612334385051540800067451295711889290093032302859540837515750652083071124578215226108539508933897649642345671282782932530067080803951968037637988077340052533570563416595686978645985116334040975294026740815461041182065391532342294904706698412518583606450309034777867414286186381666623534634012720700414201327376617905082274408400762849865185851864562026414810642584162729627320661387398556116117331010520978007420695866663421129490585272161984899993055716191027082547617067831544971606512327772473841068821886162397929977722528659335594456366911991917131359404532702853443764681092616813540479900878417875302729191181930078990330226263062465138840200103298956374785882222968974466762619644163973720572359885737604195261432358455426057140767481042911918130585244259460457760637281573414854877152477410073301841176281788314075512313105097537038208157134514873379446354498866006131565559332517686201430637719192908044422605375375625083247918120724106342887098704446661043200918554654551124313990842577219760643064742609625723679505471873447408189856331993092894867480049768093141641308176136476386620355278097902469301747812412600809103428089297835264950501471816898241644083026979261713435331729141072223225485181464657312124943815299759251171801204258648206439669724758369819154666403769902886583721656121389339781786336139095270723193604579530938584658189023038871976648246933304651903453029542506310111910954046639310613945032309060219842731639740222202451133475595421943358059255339680529171181190639614382659864483435778983709788142813165907495422399981409307951099537579182719191617146275382038136178938479090432258555527256667334521814591069710990701571367233660386752555062827151905328262455094993736125920229846349083148721199336949941084925302748464717166782461437661714994321162593447825032669146171766719840936146470608352883478254823489093224180767554751555012109754970209354322194727395381953886027725117271395329248305036974142193067453319956697242705577059476520448208854445642875927409096929896665802635076880492374181623441252098744920063978728817989055644628240981121859963307869278150878762311109190119317366902440963890403063289312872949154181368219921646007063518140308735609235134304597702068223789189680771968601614137427978236204093924084986893557911827955751617714180049806358955762263848151139338565412752293113961690341148233852612291130398643119803811692863676553146618241154063649303522057276722201787877070927959001530421761472002953775858667588653576468095049362672071723253376220631617418190629301065220298615383245112894503348067530985119733107355215321577692434747755018823409730145307289215298136454271999859003704807815485160510848314577536623218798645131794290403193411255846090206887620170333897115307081327281386161790734092264464432595842134010130818560950289902407286573275098045762015035253239809573290087829102380859692503529478386769879793426640390808806583403433462635860298541363342657250527910751073231338106712916182230220337454791440416158316039456563256287485070915713460653190521119707991047541401115410829966478548529011377077772164189072354558016775797063800259830261224874557415939360216968503855806160590650148538282393513217855528640371055414340104103273281473579512719451893222948169070407081314644018152101661758079519771044430984601268014974883228974603195582208470502111697171379643096673764493110139920106461462193198602575117189027244940647588352476752055609520634940517325272662602923142370020705207032727346023296543363385898141097281684737755275876158441981618622625141593108263460431564111562508469666919616771620152330149404673553886261112558506468858942696781701239410408634741231514780219722821680892222989373080741685677313967988004520455638856626994884620751157911128808473428191952361466944870765461881556972405994215737783888685204367835248958612115031653011393093089466361158815707827801696706565104502387721251822956595149802935852576832557499454139169893819916513779816164246116346430430178410135357084043458507440123880079417876120725977556323846580700071742447201974084313635014968038185480787746822764107746916652135145116698940922545557251638158054544079437707999246283783460010536214077392723871775688316448861720768618244934057075246167414090407769581465124527032598098192974147985454722385939901583979241951712094244037347992447963392348905337396677004918515381297332551438122245931602914199028661734964354392927788613302478601619161723266597720134117759664103080905917028244533082481407582328881410053895705374780111402571909088185625938108512670152184720744565158471747351654905425371472595100946949475118239511343130600656625979408139369808090658241011527753954666347557084575662587896495608129314840521766375604266388818311840141481822631333123544600495372040566398381607333229570042305144578601831286909265296769380613151932059803149201393094569931560852832695052688827985550261646310226491218120934156604233184181229277536788810508774235325225512495921006378377710752309238052453756055138826622616460117381118779909386256538687609386085130387812862678929455622099736765519758765657643365518297166493596375672144760449111349309808103168720547292344546849989189196511596376576624341858498373149458290735523626830039054507891098645315761282175566536641719457663097540566337865369586531149058424307982621391824494496893180858358462299527659122745099126334403555878916079167458871758753429510087790331297029472377555472174207220279058418813806229309233411895517034873615525711302342875609422286462330148747421659144143934715175714146511772115172533465587714867858443101147202852787464694083958572046160395189431830214527860390157343592859685085060267954581837214934261388470830190965132443454787087599515406714764838286391963541278390364894597907343665419832429848504466449049851919817025250414962012723961399869206134813968607820445835896813553559234168204628406703600153596835495797864657038569431349633400829220178302117146571782034346514353771356965783585255007915053583272196339805018261278191611579383396968461377339812370254987727104400704167125241992880981813523426849980757640801132035596689855472943213072414018231640782145587349298308727637279532974752498593283732361037611378394581744608638682114180769455204985058407175523762713031212330056026192196610883351344501725902324470373107849310636616243056141772356089190757759624144608588269345632445320668125519349569237299480085287862508811748709684374499422530883628126223614983632577865735309146600399369116934431328480367469652864290750055131484476254962383031599697821890699359196753258047597964063965757176531148880853492409427946083678605402912274782745014483728415236610831781096197661892402929755790858109055817700507541949081778743209459879453620585114298914247900116111204706243238859196495937171339876204725923659236430088295115254502069180554460827022927769659135998798043415194629943330455208677755712839839079125183101110883607441919963282508020116817080312830826415156383002089170452723759566617853018126020204007932921907590624754124173304767649723369698145909950493653397218341617381467600032865860434739050651495330756293719368868595827975642942402604527756226654765502723022122815494604632024378290946819225990820407852934660437607022039627427808793727434292053065653334223480563569129111523053967905512431658636582279251737869387003540627113106339825650062483144002682375095099552519449865882465554083564188848297258811262381054494019012210112935606691160574946227310921191369056532845412876211601353403978313524371839258614364299805123684215825152701864410087544848898208805484054939510909218114050958998948188965293339254235769631151910175130005212227274647821752113053491412630914154810629387570765673728972474683133218506498693626527658263731239602297075948793028222807696477124861842806050767800355708959161980417843471862531429860522076544802619542051671439559624359169460310301882526146817128719228171516984762099822503924981253721162951246844052750337757571625995447070562880685705477084247206626896578677019461644452543791892097789440006336329740342294980592143651855231678305544904346358374452998049013790854093882918320092135888854406570908355956470534764271010644738907309110903371281335671837948085171319306136711254753111867608048054197271592865979284651488004981022982611042780778741000390015363061278671850645934073355762196957401743638953184440941046379799105680407347422136508194565826384717029674489263182443483208483619466554137652538164099489172619294514654928830576041646723310855072675884325140814438336959336688481333892507758222064869502203862773573722716967679681808993133666487756640427380729950791346651960386071498779963535981648354666387144653835412744366137551669302643896327852857489602437117182718309269696133622892313820051311124232319054286540817064672429229878998170331888598513158729697144085197608425228374426213912307047372494909141968605431550002710340555642648060099193595858782782609192900269939154555521798807728756280411881878287471104133783396661750592402459329562263248862068805766617595976302019422079466604058448104298199264754785823279545442451591740064338766089302319577260629618377984985872715590407842413241392005197303074299915467645823556383804101394528151778234386558395703723192988288462016887004441729245700844509913219868819488810791064396450541936347941066098056710556215704081462315629327844175394391642073219510052506258286081656853101869948143583124039559110053747641141114868366378424364680151821217700152926320416299832292290505372824056152908850965664395532539164118134907551107183266111535340668712006345118841490409464806134507305574502215040851466723025516875114024175193615531615667708080693044248225254284313675548377823818668901331774438757755683261711854336158898072416369188935913950118092866408563684475189271196021173267575634737906418481885352207338979483070038781330565153286648418773696387291760308156890758976099915015216113854068208690674523442523191549511312098424329137348065576902181777931843655573341641484508840141651698963006598915646606629474433479037133379965558828856254238459452271110847057476780991692102134025276784374400930263788557515019795342014255692295302281433230855877866739184347608765306127624869755861605311819261684427893380605547515328483943203750914048174965293474475888305728757980567394110093749449465019340884581371383797200181915152809343570820853506964775849285132632328568181916703380468650302604534048827907082266770559565872856159897030038592866637382929247874125784962061708611512847060512712313822155195354021175739468725905067687642409295798716273007399574952697773328583550449889174198657098371597947062820479253189088668043807465663485481180857930459756883837607603455577712658203094959840006372320079881339586143478415614788110405814771289618369457670104716066655034554074346805755358727796830947333630438652084672966504317150646673307230479321359804450764937994524223996334690537915929354515840135067322555918743337101049375749854971497798296451315868990455792781944296270471652217558615005200330737396116534348516306664351539504006180180265831827607550146207910637413828907518081920654377709244628271628086396103299324351765949367485828313247315671569482236633705222883034813052295240799495171514660420185479556490831176323577775642248193183260469635236193217412176795417920825800044096612055588992844462759874227877190490187289204769413795268929212951322835888809132848671875027942597335419038162768330856815355807008732286993142907174383532417497754840128335670886478751345035578185797135618395475704708217062368896993781950219551659177615516361770143292851969739691468671891798484179313396106497831083103814669540346420383936141825087127972728680063079316952576922134377528097453862171972974374656201865277699774906585472149522718227783373559729896058287252650005628520395741086093961195492680174787304900782525187456985347572932370604476094263785235681081699085233266463424082483252985866618309349692982540722990247917508060065753638278267868393453412403869405486885937854288291123089816931392107202845848441557963663401316605096296894394251410833413884155673400602034770246948132643787869802937872311293048828297251507238318131248194975709751962997573794612391967575251991664969195129333506859727100031882037988299640147866877843632232971262404239636108807057638130648401899481180650206553363379464961073100340897801947181086448609288749902441130730309807852431357045739214822763280938024344099635983726561833777414743633115673371027735834204190348846017284232927886839188092811847679292245425768341315013466007458544705449686169385020075270227970192115971275808890040821871106337106188231093271705430602689336802671307248676277986262246178253574743887328607963022292509793946671430088574190382184352610806512652395157507270044538544000128014948556266042550517954646718262239690344987915409238298085958971570097886520131055482947777040568656140854688961936304146293980296328136368659846793920610286613605309477985978452819207349195617343021240771393720207743044023032237959201910940906103925694475440181320827688009918066824543353566916458522585728752740497793401174989014022426655898497383663212132861581169373179082928760621877379930421839068923659588031911049135038081770201582500833794424476688046220255897259384805945529767568707465697875073788745685933278496172894806092462987055433642848893130393166801859761674263927538879787900848855547450823464364176594858626082794740483501997987410238168573964450737788143366319997372161178437798148667092240419261351825691249978430783384333603678127753837584046245735435928005712139360076739136894776036046892138261650710634371667604217298394286258147326201024137186781128822943955863213038388021421740256502569127308726143715082467105305732595150470504794200644435650449033372644170487065361156381028227433897832136171087352666831084444089369750743579139721435902237830410660704535269910942674560403947046817948147993147592989096466041752297836574457762336662419650744972224197201695261321412496775515991010109308416865352887847718482508918469641554080371612210310481045759859686342317304457336177838166038954503299002551217689624135162576142877874577443086103468874596956555597911777981711254092099875387296666815060800666351379150264121947976486520165471625718524731080365254977771621182481686808860798086950421020195609001103359191940189359803131866580285742597269729549585458495732798665712430990642193081544847984160255748899281615989303921603194921398529243318318071984418036830129749485007767026476573027162897704718165604296620551273909158525435439357689062150820965241644112957527596252788112182207605730986742871928778312013814377985384668315365446992552843475289762186340095377990757606985384516183905415827368076780036318581161777352539598349205671967958910700972500027210071246450156867979329976928234214804243692530710795522639138600561214304269119763294957010907359798155096586714875141663916121576897659973014938055280385460289962967674801388902106684086585626709023730470091388612471061427948672201844663305246539625541339136721410592152902159072884340811635876011428285939899327290540230575295616122816404003420171796889387703281688961166131334856861221370976173566855287379504907826911897268964053350428032407527668372814029147001531024907895545280242063318592012894763684253351085185595045762328657064365962122215436816734066120969480919945436741858564515492889622288623425620994609298669577510376473378954372774997710985415543581440471266143057086099190161453876676360043255980730340397760130525353755319148793383467889373798617119043496843792515664071869869792370900676750377348951039280214659941559104604718233686600499932353247059480576799762872341794111109704888975969371106944094391342007292963909279769300096641077193588219358301826290662908090847588735994525769970892431437298882049159098502654309415018764794859914174576398770032179830789841876132207205412197781979414598530932676870138420804751478921619143397535898544355866256217925613753759507532319731341222178479140595142327079006096980122084512141287343607342956748458125756487011186261188674783240920649549945351197807337098336727542169115284216031223653713101418119686139113763082964652324520820165612575034191628345782994536425913141887337402559380102784782512202294772216496227446574460148678641360793944778834649062553243925284071496743070519203661108417594552495646763763465679197946578705005960614211005044430533278460767924223884425523885500951983187361393119132302215246430541448008197557821008562070748003549329079750062816174935748317240153828240081829367587920247105865042885595280534464844965047495540140584928363336102057946379050491553877183120550296888404775267332363009374536847101484479561426339164909067085248511653846072089000236063441585158438109676312106401765334495199348466659953736556344313718106318839867373092277485234253560436536377695765864454013132956430557623430876290979313829498113480718598805609500665576095775882250896660405612543719958253819928172715800933896019804746504420274396310053340435853993887469075473693370503291415514742176300808630502248096379469158808048715385064941884271624038486445964996102605661808219156545222989534122644102252083390512100966788684919865569264702312711038494532651759154622470904254233482347815362748234413251162073656148786776455498568670117031418920163281303157824703007192273901744121850249591009203270698441616688244531262639239077060918646604973346120001456881089623687129797470431163461668717720832110433444803784109467192700392564295713164064278114963940377428843305456562508624291793075669080631268472638892631966459087880653746853825368184646918188749224012018653906931693350833563174133221388198607111540338725377147799928614690362294900511201563903063478177464424527865445586850682766789749087271790350143092620773938212032195590078771726063032686258691833838256125235098938503405962578876249752178002834199639306526021202283835317916608828173443803135311823460152572830201949041446567138934869883119292924504126542663328722827294346954334100616688853903607996078282823263945310185325515670927850516157935646132608421466085072223334284275091617691203802881550562614043108747630592915203851214115953636400897337696173755217198137057419595251154039101136321530290253268106874874704690550176759381433147352488555233284445762920927345462134442282372634257337030772634479308507418673756121691336225896854155438745286725012103986107514998073920013032415008466838101588972312171969078081351702415261123535101990741636369328097802089306500307245069062819892073524633474154559769775561534684055301497822093870501361632144635062446339415677294115173055244059831054530154385900092018010009699192439872506570184129530569285325405044273904815550967275309459826475991903053222451580887925670668075557441639808449547854528047266757260013310987378311363130580485583884134297552645003536606966275832260663975688091322090430100568266854869664978644300929141987493017346610704880773707836152154424548334148666713249115121357151805267943081066111468155450787488132191981108049140071442035824253010626839138160904461303339574292459296675277534403244214777792127406868180157978765130846182166192347310079624123813058224774393237010614010740293753976313721929837327399731241063452164624205376321003491399033910991155553676626755879154410484802099246968239190555516459117666196826148364610238419328569111503418197849967483599247955883371927567114853086866204331862234532082689525295974512810849080524025780981452971086670220581057269988011305718839015036232996117462467789267969190450713524163296104100326924738049971094569030404815490370481768499847689768788335396210933191148680672469272795090143894621429510556797294377924478208086557332554300462811377941480763087950244282145886861513694379127452258861861061655914008544107678607118147622011195841850866141619682804225000816072999583846244060510343591463072972548149143360045794118745263971971082278632245631198089247285837802145457718986555191947519486760419397158220136117726497523029343261952783279770278229408406169577236278478584886760073317482664042461758332909168563672197310915300119695298551184641744466315375504882729856920067720015102419229936284416307373446965834398017761329661467641458013222033934100395038799009645086823956647930610365026204660658622936266549224364466011908683452389187211096499572564564302212044174379425525844659556409874204038492368610280954289126406671662412028633380818797025315560095775585908900905907595838138278726210378881182663888676497074470767115947865073250840340683549001665882517964080181095445893461000623469715032443681547550562352700306738214414342297678078520380747964410956672911447020343543215913442746194316909359950657399217037788925079637788907224284121942546745731520971363289820519163857486326501788681615315831504818898767893554685359190646924624549900382612223518942397559351269485818136908148786761693455920715740250827447229190162320153169659259643759752643862256811694866490704551037361316120247711275242851742008754874901279595647673222684996431726359749526311611641354916794616302199140507096474365028308437253800003990769337764869593963116865586463576359402778569132268495134487265222180978234346809633303226481954608900913986773646265201174690199946497481668662986292869805258110447613734134454521645320619152007288724762539073382899705584449566941975167500977151263038087984466246669864204636002837087968136033697334821243369475041628227676128025330647193188089776725771104619486032658188287250621018938220628513191556725943060572516473635971675965457845819679157664941939603413553806695701816565397743916755826757238758880984466866373724965727389421163159882486752647053425914533423497977170300106569557239709071448360745466626141972772876667912924579608350880530323011778186492701711146334339043378180105290401932311217793195892324251261485477434661817925997223395600879965494962734849554799501753640213885910186907700197292491669955452596405059185322650280257400909921712644189035423774586152878530801031539956828399430680326324752836573736835291661272146986828890471768010400115152298961040373513323745115968284356790529160104363575517162671486609094140600685753867697126093490207188334838143110914578870211535002263834442827026847400023447770341812726871182257864309650077518067683141960148012486183951316293485654546698200755400310330377866034689099343567023210778872598416277622544712265274254277816636803129200454316265952746849588521606642424775142960446213665049758906879619671169674163359298512868339899585462462561711364818001264635307628111196777968968256605867525795940081884229523948523125683235707950795253398534617626008541584163514628161696236323788693280713128996035670212933300260203953995788504007015439769387576563227746793218518466079470794703392716315296821456289324067991715138110703495625847901377388998916883961364931040726732589583651560782853401612030072341219636974033335236736121195806655861038646385099928943981574097599712531236696310423238293424740614072193931807897370616140241093469689252053250629591525070060571389930160141606191164639029797547572793951029633694038651860849579886136379994596604375605145526044043862720006016934995697521197604565178098135339626440055235282877875293910446678627663518416534700045274264367192926241539147832941240036047279466704021504299480544634126737387976186288653781769928452957550579711114897626508827653929966737966229031619643557472942902866339859273743848762719524467067458169892373199605272225982291585611162622601244873828070510312682055266081362373247997146836857799866327382758612832479859564084328100730482467867454210642801005105165721126667018249690763821006673597611501667441988933987157504167273979560939256939996700825478001630994946391250743540039408633709815135844067257496395291148239180291945868014629358808656241171894022340514248690563794910904016765300888133948166177047672111026503377317949718980602667414204915175478405490691715697659231455807422283571766993176826664882825080896761396729626247897255928337748333918822496421605345730907019246284899513502809333254478276637415289457129089405648985093305067524918724404921479013756280140704547985961215637536584537087559733095008878311051376460998325307556619446769372028067213894870028521194533463365675202342260886205264705637044501555969745022392559502693428485802052200498295201024007333707963023815411406813073992481976404794626150235721594440341984245892215313744650311777191318410448249270772146801263008984056080073955624508584601250340276588850720682846997040861023174984280005535303046063102336376603766054080458152629342208356347130965115195650703249197201269970082117754127499587923816807732844430442405018322108040090766801226882827182535141796433795277404456325014341182382183042338281274676652490771317929077246143654787706461161084805950107906887979327784027894181567540119556999423940043908176942399249220832474776159548914309576249853105159644287544388785737854468062288540655159418021055465247788966441158273336468785222843578203320297950261787949779878722109384258597062755738316176583685011240147605084578349073497758337819359212005329398193618052326703918450962003100015890138969544932944189029392283555266862775553481317377681926316579569780828967482580213625732150211303991657451320144548495950199976915232174466559796333880488720577234791021109273910429685337454435263364722674145458835265147695875038565290123060490179911769183541698510053250316654744591630939066916130669309492161335929760636933518806175511978299149552624046072888553768112394794526288199605577821576837377485808827860622830035002908267244303080551851492462526960686477491836312473895547531717643938990076304158737062652024817936036019084427458047100802785661512776264528412796756838294743806545598756039054768898551093547185198282030541672007433704925742386515013064204229203093551902479726902033100257321146171575664707914365086235311423027945514758212372406002137967753372756492102622069427918713247670934097878582068989866782016711360319799714011638196217559165308134922865269176568405822077954694256455244504790058206913720996487318883461693710067872019482593055560836850613888843890307278540756039882402898808337725566274201492213668240054466089593898781964804052243039972881450610140516411062736892034216448285198808023845423618309735519229895192177735695159797845782856146189030130770074786375838631328509769464731687838924602331514571834658563363677634639488281059260458951809656116229729209369848864571698416133533872840513221690875986452766227790448904631102103595467519334468718263676117818795358007227105596174660616399452845713431938549226537761750820452382923425237117825751737713635403832810995542713872866345175133395166894972937824156033738972911547372850358845092491237809623041839461030420676100956188391601145773262552355276613228667872284849461341720866094730052346394410689613760377823352237547154419263549294802755880658573303243980649231003609045105593878877175726936689336528119457354268808840550006718471504073730957682971053703957877132213279627263622621920947680577947943018764887830861795452679982029462135038501379935524853835532816681776769330098387514111621745445788548468851057085529737945488410300946006748419488314435254514812690972903371441741199166659445552483108281597716867249116109132747369498576257583227877474562786377918127270966633923556396776127721123033583862628586602944103190412654689329186057192167316918656235441064319439668053911691210789192838935488455557392373499299367698222620090362648560766803086003147029608079464828789145081065168393254485722493661469815894724109487161512427244182224202702006466098986325881792701351202964705637425049404759080652739509564739060225954462925685877100357084830461674028310225960027533012139087896223427315706703125572273148695112701682223870066573858495511105000855930301721054205301456047549773684361391004059027660622664960034932097959219118591677796717962322179091563207845858450104652522443469868829614393431851094132819061209995601513286589697895089233404994317462654000335475328928266897688601227486716119843042450008308164333937371009391089403217619334192555844011603896255106248706209337164698872189291449266529373201107240232305379215975777352971790122464610152890677633175842774036020154838640083720920366831134074497170950228605889432157547037214147473307613805185412489648548399443220852219829754330590387552501755041002759509895542206605871648432713907486917391830585093553450513516811671322437074270351472008779535943777854605750113259957708549999008274644482305056636599714853759688221660252446958357697510652051631842159082560141252730581892961779958159638995751182038906996053039025402082242160982771076957989999934160437919312375643713716614609479595261634399231338661636143574363559641392793591769782878011058940683446381242961323596704918357710637396512800821082737492508443421182384891937756152960043628613547673450388813879376124950745802735426076043032001081063168477181389162518553856038442824394767759713018628406116392463107903313836649981224591942471970138337993451893137949845849193312804845688940998337671359797320152205032816223751324014060824590010259455825221497397253239902835140250216518313465649961204541614917347385551223247936651904732871648745515267266548096943602606639370080304957480799108876502209347040190109929005647297390444688090916835114491701523487980642463144963649317392689593398007167919377765702110802483583511636742998481403818876753441300549214742228660312166013933991426218449542084411468308654099990747024827376411497507708087430762307676191202836185072542465300917496720403625391145286946276267815413119016936697131451922418991547649616100911074358026826854866498363497613220285603314979295573171751233241415438763663888447349573003163447690504513496173601665649566978513479288912232761326834661991828550631757155619906495161229180732562230645141998844709962392285579337285998941428437604265120466279802097533797396617886123095486818486772787903678106599908828121647733598969678758789649017294434842140794390976177869145662590449159246418401881047118919401501147449883243451518109363015933987514305355591154852137531424747254652930838207352026250569558048218147507799391127591782001162638406296464170646882278083217941568373148629338928430051236049991722255819151099992074224183052574303474175879261927907753677252832184132495872062355695432467120847787568890706516504826460919521864860898557108501015401828751421213795176330614033678968327485200107810997300877508405351817784992874357362188785806102791297465767933245807773897246015694402096450949980855344366029096458641823140905348585518764680736739917367073152297780952644608082725986555955006038695696139739142038805593960647176994201192648647501926292132849597849648225654547267858734967627892105932956204936677135583530461316309144451356820186976876638451131080133288824151662248920715941185522471128475825250428409264233119234346704506369355920634637724545683536451157425613040724378359613659689641775399151107051482839242793173683200462055288209061674856900573652236662895402398326871847030644843425639014731417749815004508711413086898646863629131027003787594331081741560807729837853375503404365860464894297690103698304255045117669336057240906519930207083242376408158274041373637210938565370997188253047556451080197271080845184964742006992432905006277317360662973621237845621794361379869026909092806915106503765016676993022257484924504175481047694592594303892584358966139181781570115538744180010167157097127403072017723644515083649088612042970300722306250478917559434923920597476696619174093940085281415957624585901157838187989137107478754033999298189152594388963770842214178402498520922063123720912456406751267253577956739752597625286196500664889125452896672905222395125654339729874155080091163728717469806669430830666954330609901173311144665860964729368400952164748463379387162257906761468050136032872831053626613874694263543496898784993631768572368937243708742613220578444269813661117434417797372683813102693713342579828571641610069762444323646608583020536055520109669391923328354555328767264756590230212418609949918324346856614006052134825269562559227479389456246488410406408579635680890101440490266824462818597991055736490974277868015961410403152255446264289257729831949398216020941075106312994295729612067025213782173049322648219564251767846915114836629800461987364962674265115389867165171446073490330820246643928609144119590834265234407130488321291268602182575557403109213831931761162680916053619909050797215493165310120006711985829765371261150619087038144311630357280880938606509316373092884279027070180813318550012004820176119219945872932880731917928448395651198269642985143126285355601258409213428828027807155904020798279905674549153012224874324358757564796482950057010071165117001658952978042450842070858283471663844217508674766314393620499124739018390449511531334355552994192362207451300002915629640142344035294744237147095673877887752973649328987013916275255645062418039041404349200897603288674390739373952596457031943717565388364923978266916294082969033422667708764317706456675296985424351260437520240095343079933192216536464537353762254054577306039664125845329394492779558563018375149273388678283528355066492023724310367137679270177816179119010439922861747207113214207922626125937070107293377159268462799160352525959474665898798784167730309206229585755390128392822552774389181622338404447623679564764716706884372861572734294849090115257326553852413145535713741850422961569142859352628630926485298435574904982483185001023966520199629173683159611935890908293250603732097691023393813350877540075693867145743339969067476570419027601356291430349996682359040386157724628178176563217326557147686343293871076989659554110209558713317389478570097212980787383580341777168672671336788267053415140112988585964892455736304608222188696578782386215001804748287682778935929555143952380950346108006971363863073019693539219559672012510064909159337133087369510011709472804867883981849789322159605217411443415910805873029994736499389666321798947169988844385730944684046489167042874506938331453213517149063398730942170792379943779311219672611642912588694168953030208680309355137681258681280572957563057152523776972436867336042946637919399233072962257297657234757001227882958059015553607538019400193862741720155555072659495617556054101814323089558368309429416624499388449492633118384267255981213405729627102987655542087524561128221354062788324762720169208322348628560892827599018371979768206095122627603217097304106904439485771897320610640688554716598822772867792995553965330641571452432520041113508417770306214491642119416760943553406725205776799777791465895916467593941191240913080160665556873970260370490655711274034369038490859500279413165339021893297051328371673820540253170911039273841088722489620845282231848079913914012700839793017957632920769645613897940024517130065328036975721397318437475047763703272067734211651065046460783989985729058430362037032203115987676507070468310777301466284185339100182541179572912731982320245824933939722507567547133131684663682269287080233329318160819480802291314176851385611106840114468067110560725177305512175919958826336934063835928589862771969666026813478938520974729781934599098176005904178110084752648122868618271296245810398446467208470715591680687973849078911416857548492832113171671670002649555000642835964834055997239070799695659672062239969736793565234061895813344242501619016646890833130631326657648101424417136871032853833784854299303814564421141683010235943576371638168415063122601253840497147759387593154456793121694864233548199400268253764351430907278021766020080102513042953814912747463487685475211632549851282711147068429992011378003558259547972319259840651697707283375364218925855765181235271972733650287130638547952471248278933464730964489206203084155380223759064687307851932088860072640211274352720150994025346838456609045164592659561099126675095565479409548057989798440556476233980160326376768077031507515774147170888218582311712977773387652005557221552752625681296992753776690349602388753027680374905858396358528035921515305227164257327566587489041959211399891324325790327134940350341975751134545877923039786333648743975600664651861031655083919898392327580983304218355586167009361424725764293219782074152099784362848905285306639806090446555993826103966811752549476664939988655302574671519342802038790604871794236161492827492331781030900580386726341816317148292963715039459919195196875237835270952991029897060454076469828644971338096982092760903964503882378515947081975942028946607058538969917054032590975641365890425097921333637418377089207320609042182794912550586777799598307086457193770477133441447815967252405523055987846128987878377119187964673325897507408915606995358157910260780395536067377486992609797374589391391556381818315481218002513701831339812904530811382214473183224197404758516571595729198917240182148318401026218847594227035870873933168789983322188328076599613562902897820458954838494725598250658189189683224614096688300210712202245335506357230365113139178024492831310766881320016732395318405945233238552312218369508498764307145540972856246832534331830306276213564441063365840834937303492878619663149583714188614839775902097688692827047984479203565992663637409971943636781402324161891653061891973522244929435784464584651272448124768940730285341078166107099874141445779516588318157596585379019540456871060353678461376614196081119734637577161979075564341879985778203555541940895268844768585957772238426045408742647366984037750292350005064918625858563325041229330594493669228059148117978974009289755752672586081437740468824659065284454201222189390882042035965402725377478234706846372641690856920991575574535606007825665634153018299657497709230323114600032537655152985779301026391976731576005167347320002037897716758132273792040814395149761941515338705199226373250529563719239619875635832374802846499044000455130359849467791216445869921911846300557513685895793834596974468763402301508944059149846336784755058160638521893553985424346035291915697710541250658965099429020982631195913154578125630560368595337897722005927422567979584725976989497112146802105188665630788548585843873107204420026765781391693643511300428985299878680222643112241821484821814274145852741071376255742388967927927071361339436292368032039274437143189067315610506308062131805766250827573236453143241764009138997984981453834684576123372661902711743475190100589143065501507477464984513886432745578463029257551007876610420870969681751698845666702686990660829260830609169075725284850287048794307372339120452164459735033627062240942263855415231470853494628220232163745012965208236521075086468668209574509045293519063999278216947130427790715617061464708531845541096253140913720501333574155003435532446973699367510910859204386571546443596037777396267405328346142633024884511343945695117849987006059401281505836864235733054326221022675995933433172869510650199055185428274784257757770001700411761223463152002014652549256137934550435775225259241536348673925484271934196583157950071667113351886346603211646560418137098182216476174312752737848048088439932921194000676527918435259993163992779120756240457196796513937717732826289068806697852150518390616954504321419049911286303375646057764649969857463224021592569620559939892793954293405722276400302178271223963601740348746427160292990997646567134108953918924728500064958068080613904427719210178732149527133191433417957016874362519043220894712148480726214503134604192432416988149213708560331477581021913952600156415600697992894415046986656508007321322768036391294580716320675994416178336373257748789275129187573576256701832624304755569519489522301486313244829593318499241815975160528256844946103591148211670353812400516046477105084566096503438486153537874338637857441409050438677111969769750214832535558054453675137522962482036234862758499470432737814580301184635818941445593998407896979412484518323232330959360262213469171897080811564094267943793807418692441765155312975827457912186503760186497705314928718329089853004662764235375851386208829464433948630087546689204866945120768880377686114581122375684327710522139652832330412516817955622780015213976057836301226945592801500491033605545394072031440857371068218634390873540691626659624331497680445588290347352597587233371689770173213004294241150184404827011967701276269983512081411635715960399596976989922474087143842014143032334396638157932943465040065132917836142815908954552879174367146477341033295496111585483846346821732525811814103269714294563884954259162799668882250872470477800374991653750259709971949338889807057374864257763337937788903598605613745331549941286069869023685518045894898623880026299966915319662563041555444053754496482739959927682821860206428848244859547308534913942594233517044457489830198603864074703766081889671104871595441217069550732035454700029537151352274845085533914912997540491438238971080077144808903109399781272295336892806166523027766936254249787215110059987914796750500647696772667798631187178120282133058663278419323984130955159237068089808543767631727710803971895959066757225370093987225867773545964021115428373162054245912700535518814119868591747923686670602660813502760750435986799631911918684018974003257120190378052272169247132226709411253063320861647029382628399429333942633294076198928181665776335934996695882340621911495735913402477813663759221226417941012682648876236909285672051949708772553142417209930425188055303356189282671172339855965227940840924907536917250565667105882843724250826591466486710268390230221656069311420119808415577868908692020628858316590654430765846544175156287453977412064516856316660831600133703234307788039273947721560783885401655398112050933675578467841481362523831901934245338609768580194594025481322527962675056984318624028875322705745986165112324603882627164777128233213825493372762382689837759966170555773037440447271644046984583881659231422901174383614509545757812167446316937159709150508078822464670339526592921571033958250964328251096030021470562386885714075059154969332875975685824137059012435754195428456215938717543759646956276836111788181244313218804988872484643803651379050200288238989614458903695278493367636521211734897624169300678993466098736256971190399465596881488815719769613517910593114243392818656496997118770768094576575210516973795806050454582189234022429025687175027297872837725600953391991056561449278128913318443000610519948055298024106814557932339688751089707307105553639513576093463075861316832060021676574699259674041487207628829477542824268659551609561705306691962836469907390604186650000933732295429170352653748454679064763350298970091952434513761142988045838174841209535828364865695578459604898452826118633359326007202587500374493446266024289473013331717019580431922098558905182508582392328710621482804981693828845557824757520877505320047441555114843349903737155668979790184086881143351248071750883478976223308289779997378994782839880038711284610754595973465612467134042982014569438318061400569691942338752609069907294113552316886259304499043562960527730134319327659187382109974742527560362427168227873856177599963199068763888417491853016754554250357904401556800535400351437221357552327776765280756084147837389514386709817250304167762245907111388079560062472827397471111722874577180658367356641395700605913679127183734825159508294179291995271554085941700372472423476650142607718871195243421154193231962677840185074717754942917942080808978531972625160474778676753924613314288496288219512924685159005236827973748624441746954986731146308616246715703818462091003443658846127133628948144945349016322318510220581885179670422692718006773085029690953579349105888821946488634890676035778166311086104500088726060923660074973423094128725577031856922399656889792580895899697135188666073710997244613151376581869061556722580318068941302925543855686592745957951524239533731142790956935519303999606192499523836951608124905330079132128392476126730135028460758601910088491206071725357958492316049161813823806442338586479158004002965722999064631886027556957898860291142661221213353169028016321955708255246671861772884116237208582039499447969614730569385738740267907207866737186105222306882268912675851510411710171716370204921228946792703666943850552664567458847728225687068955060574281281497069819915063200605719178290176458700297129595566276886803488946902075248320714720036843253101456195104211589245204707516879347910135739746540676874983569847157499043740913394368961765366695717195719057364180137493636642398393215314208951110531259452814299940091285754296057695015272232603684020530747982352449212188267273890241266036837435935291413999276509486523897713560524801356538887129237942509797521564213398432007445486014757590051225146046207330418618999050630754996034870633189973290137736083178729579051555185475979934327630461403603977217887909367209295461618945434554880772957802198283118834835482259581349871753686170964952210407480157663781487079638747295394351130331296515679853893398485534355704812810138931681557273213378677997575261940755327968765619508371644664428328744905059956442583061423944764661036748872466618797660734665316052113994195102900345135472781068347813356302143439187472327024193081197889333449395949169490459483135799566807569558917041153345568957039393703911672837816139202229781997431244817882008095736421990787640726422094203631599482042054217328281799282585624891258183122191419640160841979095186576008949832887065036712979457331852034721010570316916290506308071077909473530896998956747956600500764043795562100748876986409589240286181528594685531054205972316938120061728017088550337883556483038526463405032291146187819399621816089654297803900226005487067671546539592933821586013642202892319420847951341935061128762218591628662508653488249491647823876597738547377063523529170012027600974984374036148886496018772792132874737393380132918418151242408304596832234819175977567544482664146116955364386298692499955567888178178859049751893528249507304040851416800854747017215536398516368273059433333477848421278287004583487446019059726315913603966433123190796808417815654059978570629534201854496008945882548054466850419370966688095285666622907255401358643420390502910282208182459027088280393664855835519587416850890933962233402956702593881003339573891734676726456503894835210274142877502822557574309965154831459359986874600655650507499916232229453179876234466544289671114693805464747773986990836925404451910288403015628760114563663374204469449597563209771441911020092205400072968335247306824409230198532343969288245838723586219935505177564506172151272648518229306586008524133192636416531245222932072428616346527128293181810135779034545293309435151677240318958258182516496589376579306655463260443929271510018623241536285583639695277020644262871306920721206857104888923749425861958354071921951036693386868267227275419485436313288711707162034240857143755637477380125550748889303471715378528259351615431751257830469247465702423210113812706152832083500984258410820452775952060492286506013756987045771308914055855448834849104981307364734407634800009999569361370330224481215644318876596291580760188253186600406388985156687856623180289381808483169018385263748660038765655882081117468786898328775373841316980272589804215770891917203404477237426663364623263417310796634863862504275995345601743194418434506841238956469464635626850020756994737089214525880298008965692253840402549307573184951710624627427266765596792010303487855972981132379243771852879066860035026575814110303919849571792762499913683935040375248878914333010883122977773059541536584673146507599180162619718317115424780416508844271865988469672750526423959325132304446631690318091125965633124745559676260390767316376476955463803167564035346725064064768480209310303862560600479906289645822850828550906502526340281283486864825645190690992912924647568671732576281512193562755676083223778315354245408649768634396479763634697575508663487965166476860026636773328035939252669080169277754128957737396608485658537295754387622053381801380401950875534471019540721330947114918210987257566294622389471482497534862295424578439492727709400124276639128098646482646811011347722150973511097717069960527999622580503622502994635795938514279081201484056168949614733326503282083874406879231693464613906652212072319907147551825890116441897377897371265916175327153636746338197134041462619223495529039904625813050091971469795673639632943666482423593674752067990536169006453014074436670440181700541427477023278047186476889464232714159263371902882622638255558925987737154733495812587902768502965249658891661114761931858149942457140724210036979790647293901973468731536023646279151348966695459315337345261711500321539077603925083642950171908184156133510868526897555247266399941491933996982198533351966723406141439291455166783826731423804816799910267750937675406929239046704806846393050595954294266064978776839937610493293194720434536892122551741188272836033702630330624151380466542461420831346285023606829326090158822336596986162782829927595974417406364471126929661855452233440668637577081600980401086750904317604494838673497692905657167391263285413045674814938557326851888160717576255490513005904133498619058120203524546641741731765976086093679397968601294949508035521012001517695557236447202134143697304691003492194236138999921352223455384761313644488905904203144236691161298200639111986509539634931735242312482882192215835930452282469282994658701206512432874610616725393914820856140250862664869974909975521445757054185153910951374053075068743396347475496906712609330671651578018498073289505846182932833900846807259571211125650932771648855662668181639151666354112513616980540025795539788677860214438197311429672551449415288222912742504041733771644275908008342760676891970998536282786308873399556913946758010300623462667527163275705822121293037579964588351440273841323507323824534920770579502820228107182368595288582797157560708291492142690714641425449914457450912335669006752686153514068441553014203430091372956793361461370163654239507537261035651478377484660348559506363612037315822703960281243423234984531994231780175744578510929223344095318201179453899062971119704793158513011922045198738882108739033086843756748444043227824773291643457548457898447385296034922385619666856829214211611487854082900509034416673283286105448075588752002904705151354331188406424972707762410060278329164507162471269426350868494390276992167776767483060527288278023157432853315477686285619938892348190042121836836855903205421503150085442563758451278648603790136259056660208728432932821388986500301459768938888684632560729468889671735369210484447068803800451899087211233072470417245294964992943803980563085865614002189679746604106308811519515857379263723278775794059523279354355894670014411532074334907874378110308238769048191929203619588893654936773271647043102660323750272687008773891744082843625982671856759844223440779546908935968886970876699746849632716501718971326834993992418445597560340962290217137323670035881956125132615932292159572357275577643215879442658730976328322652846864393597146851244190968692638505124683859036258766558898255237245847002709827691462907496632828600177563866777179793572838292060004835169562811762654043777691678293083126254493837690763586382830217267800836010255017823513148312510210891728078945832260992167744956978130177688462877226469292934604187964919526885895501894523198085685959311293653717496759392570621879853406642596613305494524406371633925980640750389959548594238072344787741106038572713787641334230140450102740396887331182210748499552127495793292385916032774980979224904577587713161297536941940589997083054196846628101364972881640465700788846876708731369917760526671279937620488042224689022298002731741001803275490360219935903174292060751283757098156393661172134118696782143843619300003927153963015210362548498203357743336944203572839298992642277187627137162075796475789819275142514378983879125642962352525575781601897887285200534148224355808437626140744429699618774423269030848946269398338192112535485008837964020162488070789581054563913233135579404478735867934003284029951002229314612501313158976594364887663935586200736687767441729569686301161547735478337154866767926517961285593829718351349459328489617719721503940321754205240561046548006005574673907836648898150686178957316574099440385901095046515485696932494707278541858880087125081543832352214605902719160149468122102297123576409061095159006834495827346223677255464506830282949748051240791834671320814895182192181037125769453259799580747612078529493096387388034791992939309123608454428993928656362683630885915279601419408410014881245456094157780939400561506057866675329142825992483605610696657980005544822638593338297796083245118219637118703741499413608984245384513254279223839346494813457267864899726574894979936171789157014788708136117693120569198347582498551553883293661038760113890730501054212220565141078547366755142547262438256970617397143625257735543672871234753315108028538596680851633638447538576091297436046057753863868316908999373499681472658767296185352582272762577516097933207447229496403752333410911385270901247468675003317228737705356919525594222511043218697032953925089366471415529000146014972122168642716794235445773433297364448906907091685902135585391147531513853185812982526140356203794517639207514318622991819966865348117094460631607072352838556611854847910861453735224777509338833577609239702864475756495387615238994771630324942803642479484008863369683008724135375396745107701893926413176081419327152399842733863427418151513538329398136148583987800803836742693202477237643139370580275895391087913517456093658839444997108059962476071601692357776744410533207695633836706759124106485035506430006023747186760101899034122714874224908163417402530468649820104913819514115214688673688007270333398324621359295003880598467901222884693147523763017085177857310817336103622106764033531459874489070755164053867206222961750819822118978438328688437701927183102352052140726696760807116985392957854654211213667640522596223488282081194213641141767147531845242652544251532001159410805886132742268366922862194936832675370106084429140384484231270544784077412144637875314009812721558024087428671278302597624613937327646058545051436257513492081758617194693048374389961778203563121678410906310562313990715864307602679968138554299212852641656489244465175096071086828992455509606296218680754594244582551399368116760589776025666978018720523283337555399981933296303265876904610189039766768557825332879491379163970800252804004991619393506032228986496904287718504578468870284656558975567883555198977439587488206589363055276932338963052037824182231046012826026961923566184213231647345193787585653836561673603384574887826316537570628486852211586575190301422411804448860780773021316701613819069546427383509848214323228947894889302723907926152612231904400339354171424859227332220246315451168056012666903023367799691752473916018473242273673172919518668873424452455542584929653634694548844796168755540857559850077231451027678909406551564770139256966740452373216081691871932455218478105304146034265013713916844332231400867114021743595096060452517209186869540255816963032637931421018992068383096869339438119886162901088754184707661842186431026803112422966313997470849592294301375315257971835257579884221417934006255029116039485873166869048679826856366328919079952571868930817467451521484517114522965975711607398674228884597600963842037153930948839722434881027775338116123469772667834725559409034577766070865154768407709162027942904105323982119328565722981818163132877749048409709635136028743276245488798359664241612580682082342984912502196547895299966788406723613137070008685575071465572983818640485583168104057867855090594606134533112258135665661478941350702658674847030994732744976668158219887730258664508723709899852396093078088112114815211759481608166750874426808917151888256403316014491932747184896279883112035195636142826681350842671620909664577327283715331316779309582632960896467696315623491749069610539218837356263978868468045885018962281409893269579478492388794906471219981912650578237748508397587717794161620917259276311708239162588261761068938864673036642332252899059635818239775043564274938536508971969913099718725044895981835018124451698446483579640894708381553146378619488542781983239476664846903835692316448528903091271561338665777802786667114947440152682497239539612022542759464298927140949312710039269691723604916605500461349206019273929459147193747254598216461858899152357680298989982798398921899252734860535280993491016678526324643101287344625783243463428927169013842904496708300232265601878914146058635846724562368446177538910999144139171590432146693879396750063344035467472745445261435409115605009699237402093439362748235137556333925588218483569856999358365552602563108604205035832275358915982632601837075955019678413318145836899528521815765550202413375487121476916363729603578488043114482985636068059408340153501801851564669215563393178522604378415499943410332376765884662684704284913262225297452068184409790936198423081202287383452574202038252023319136318206712905725726237403328035999165734519607581301348750200777964381842356988792513264778449125133873813271980504586485440896356546245995580999707996134132697043005055621908649730254353798187516351647642692449332126433457393452761023827276158596517504069580971289903835648063694331017776071320613254990624547907565565747184977875283268932008861640862315198698470621543901722568917408338045374514101511814103782572930297287542928334366745007629841500002301475787540357179147348350254975326764632727339949487796834966549064403021256845403131174192349312171712222525340679049175593610620019806770304083759386957941192149167192624008679227966397837402730728401344439200620556572415232597698968340296329987606246568656715193787537567190444930104281136732483203234818839300782339588359780787602018215703712335340524742563964589371845487911799733382642544419453511310499905648286504534277582934642933870941463080792928032975747595692755749439027876046443899700682236254656041874497388232556770648265320160926377158539357557830600885330588114547462852973340180378355780135037103490035461235279411129885362999303146711457039663116499258024328518190371172904762507044042729836224232470146816470266011563535107257834226688353594418576112234692811396466168678153696558208195717852765623880162807675636833934222360743545655127147796837622764900722294154821091486295575397237638444219444078926389567688813514406236182202902126165705685884835924155823523896768462058059897521879616425304256409521662540086760416302086963045610010291548144361030965035838022566299526995091884155639643016604717944467006990581375002937573601282131529803982619362784984546207955766326290631741596242433083306639527635518827404620948345859463315713734554226897597724967151627940056537535048680134332517522122288046318643317386190434888978643724196313113802901536296900544855026829409065156700962059471316620704482369543889936593042214163215687945597108957208007900677678613956798873336341261337263504936763195442594833742024118128061289402393016589874801046094784735202929312074288111506861572565137838152089080044119348189201585535464961928674421959903098443188897378676434565595147297034846128348916242057052816923273561249820746154220064988845954846201421846395694551524657123781861143606363120156524892202729640302092092960422607269333264032015985047700927502823213606611282356936468357052310440978270523823627360868395351769959051194441559016151545371470124209075194078801027294977677343690028408122478156032279392371511289710879167006103805795244623643643196525543639287330202493952679034088819280358595971994532650851569701445533064812489527441089629517142765095111367353471478340990822794633483599108237309802079589928362883769053384694867441099049022439291302090904685822510485848497892538488207427941046121245684554562822990026948416223930717079840736792773593478003712824160830197676444588874522733512866511662918989033676279239442648770364717587076311182680823225280742321061083034932137473009254800555726136440744089591695843462780572772943897371172494086326518414958472260857580927631332624826264491087440000571524637913770200548205896523168579460538213641579407790584434199177592935726647277069589312387224231440966830629302866258397452490770434275040307200661616164596089911564423756234078514928992807329519174442606501356001040388382949673719747382526946281767426903220015704476327962618215819985773864101191711290739297535590510653539835391432834879637739328472814447706567320163923350574037522173681357879710560527023120987107078575456257005344297560718787571430027435177908322316040429544384869674977391714435572525686124771741952365783329024728035214332986310849970144564021448809543665266319355052186044054215210172560751604892212576917852964751138489328564182568595332090047001573324668848836269217642090847834016426640829514462245648204070602770354423126317116092674277248405688264053309977101043043312462530407946789869028778454982884731740711572033311797334997102727506715395968389588834777990791283190978397829781333158019469864039158218589630479983020538616831607151754607240244335044768420436277147138823688613241364915617680174026630745243704591306141052428023007404767247560067119331582135256242752932119823042776669986083005933353603872662238316135282118764211923409034126950581508475214473028991053298517072494687138989217646635901835443930734159486945616288869355569374881957649524773864606960172027125052023765563684072845333496283995695876653508164719980136079928016652136361582017827693336141390677017033828222210601263141365288538624659181847632266010458124957798415451577351131600483846217534744652411624841045399252929404057075979371309416863427921505485611095719226837158711758035915518515247737934740884592027577943626727092881077746798146358533523290763255330304454329234418790503723705436957595747556417785604676384744454439415274673929299961189289135244718027406984113532541459370796749895883115211922887370210784985399731607225624204160481392906368580972036036831786325538972199103207411197730232077847287460575314536129003321802770927269245424454617762080190972492507421401693239623646657406860242802676318806954559508169855141058963392127790982457427983954313040442702345085559137449437156704273559196891432587278535865032777522045280549641027115052715250987372816324920745566894053278240684642890682516934716521571382628181830919866169864112612485871808943345995149402619828567697148467159273954628478405728036994312127692535335251255964203964929683510220935874851932424842972116959358876970210640604289203142983619240133931198606034653957691173675541682709599079775880167960739469329942269204527836816072228771059568698582885579684128882424359667726033089873257641470126159408783928178988030234863748903308986056821261781277773578831280683227770816296540546585957572471007084094365657079600047757140545908900257501134101320952030507772791839468212404144323310026538305417102944054956288495116628050802824424471137959666026014273115427138809247163856508136141535134968159222576032587474408722724158634041909377915204043819117599600284744349213373698316417930426068026695092493923019889388582112571833267301629744795421405210658990342815585536911672724647572810643834228854368372363631334066902927170362824601273542848601036119969733722656768744029797987946516488501882050432919774881948842518907249871330936236739685596171622686933172363075938610698068556552624995170964109559189028842838168866368661252931514561746708788928874560715667563509610414929772033017751776916599346079649375426554058768647291694018885096304692541159671223895855223320836076812706343292379002372975089853496645544704306554987942465488476919247824393826395964242626462149808749856331242750050137589475904351186783501275835011991294870360505382058105732877740538635789461668894627237128277298397417224484185940576529929724061090818923537512231558770535617631814740011030028928707626263309275658126548144961484068937355569435101190025558265394057815557417551423910233467158550044072466237953653474105251310775185780489250396226964939733665194531309586587803812757462929815738365896812065396064192040487374391626055837111103015909152425195396591108720181601864853470129221338906046866216606862550256321112055242399242974260873697842074218067106943123496954845116513955485746706750797659185821495499637594354269137176575721241557869375596928190157321016413960547816638315825811274271096627442063481304937265987216952116433094843707168050002551853102707279915508885912057805382902968678361347944688390132277353385928727637398064891198475253291161068358152601256480373373905189016878279500987918917914438199291166411243276008772034766719917477474963824045037449721689954369568285430782650822062803105899948306345188107977530380690223844550796519040142366093717971220498938972866874439009503773530422503806039292967384310692788411623270074073104285711269716613073666569189043581350811483897517830938949463675152447141843981498919581014305137834238523877260059764986762793975536113031167656126147769376052969165981025588609311780651284217470687595674619598067625502794826351074676218156421174241743966128791772057325487968022851237279363341901535128530829762700991612794333612577068628253172997385111409502457670238726869078034294000489084971729705227217615961479704131971902387630760722461734716760801761319700646112743244205350217723053404839920195726666865551926491491605217060720189561235489643698852467972351055852474025843371768713726062776135696504973495811239066414546905344506562289859328692169572372165301465049864679590551990244054406739924046539428222191152608698841107022161454701358031715039720759304112357969016093193021212254153015429295817320991717834558361828052570856115059025250404415639558466880575319600284455362052105773072213217647232152567924545768219902959987718522045917041079411695837607126701600873539162855965155259192536808620599106623995092730063225117041387333833401313275914531763774131773191044898649595098820175990268392803895595379567204297987279293549612134268628729102291581024099542841250257003761996839369016260636885781567550539653890247836707164899197743799405263342981290154889014980930206579201114496592979139655513683809299650411269763790423881216272241639310528284998449255487600873438161710275035067271214818630474939133494024999003282172368134477147957269760802698253983549820596843757041019523439303991212834539004709649696017079667934412107452944796821209492109103704790550231560518393073109351306522788692360327728071863685132130389500964020394658111762209292222470929998126129167768806013672341213649328836170247410421391324880166941054893672582012756307252179308103686753800401662279990742234649822450143058881715031456519833596401480743510681523008652029665929332887212743508599972287976706059993531919319936406045588227068110597335423556620126062293142080830497459183740574138492181943560502225575000538605689111622140612595264577485387690082660960417938907602101198692093945657099783518081078801617075833717066071842084173628895180260790531234167913635247862780555523802892840093514957216292604239790253859730533136918560422811287818066352933602673529485112398691852088222019040374653110394206042883701768273579790644439457619837732826704195299051842598954532860382246207357050457280453662700458207733665809522806828011740826255511164126852731498408642986171443782718749254157999309845549832986817509114572868718541473604014988946174662199538835823753963491712348524448295970084953482179833096698454590927416370271277509951688136322447607206813337564150160748693693689136327997798651095118004235037475357724415565263111513983514733612776765496843708227529549473181778972721159816126771745293233779223588717669742972733845079113061817984555221086937573413038621202856660130821156385603355183362616786564170807579986173429584876420166384806557323461452899368062401760440576681158739024854481638242885661605378462778302135763028796824150465546452601353318975804140177230834440095250848369700416267594165069471667211082072015434332529553377955834791370042538536348145924076679559538576552271754812681015159356855425973706273298846581896009964012677015224876631705462344658394040933897232139035704332915512414555648456027127702013287255306474606026675563812372314417461118059783861350843802397084617321316940369277814009697177524380263020620366516596927764449759208470990960085950065539948747414309342868961152755940466341546328753465196302316402844449865877281183756186045676103875295494307805182179580793719389084081112190953476204037555727945995549743354023626925806909641852169662986891335414099660157649252931518088145113318874702887161104263880306020593790376042627104327622470836697078577083986544550728420146175479030137049982592140389303327405373535440097285533802540834254597649594881129870939728002417624989978992722633797612675757095697201510136010984710987676390802171997412335051341082149325978337695058611086819965669208209624392668797922744801242883152587191720122663058833575659990081697264245215447733146006516900384464802675921843087105300652114173152633039985720874457785155195820746723814140246609727659135871983549800484179322030745533057586184022384455316979650041911717991835296540280722341135875283667674891649365395850685707445374246308774486665596819653360537824553207355353097091969175256185219247185127487813784979690915107492214626779371087831664531757725694330277252806146898876906086259998730820056591225447898636268185925193940918914188583373542958251449209684814737772299028866538406080940032393096045604883629643435833689650401672584002096463395901335096265239794489019577722998232987941965793981262915300024520526676759642722678700850052265782649642159719040935604045952823556686137724486756253964551125202081202608077550808840755380535662448618992934290728936786382677067761397937961007473870218239724094179598263659691900060193518001912745331522448004232642802923589469084990764435193501145777756017897089701885533764190063731197824950807518420672898661960613310467559442919966845673530405757949315119034613390782134022529696877399263626936447504037856505877997420831373345275352977485166607380734515471946916795020600156844859634179660035443684118722318552679135643419665296615638177532174244575297351144097273519482589756371779481690786985388210982943685232008315151091255656690952321180426388654147474097061688040736882421152931369207716030508577726214724023669473699002868609089616152607313830992343681207979172394067825414755234552306375451523244693029139602684935640539638061112291348779276744234101849002613253481227710612066392562892996342741071265882873577374214962613152565657566865645297057828639082670894092968409784530235509096905355798658025240552941755000172912022358965106434097935259624181111330223085729528286331455893443707566136092791272084350345148786556024292168905041851024769254334126978369791158585062526812264380215492180822318215273283945261806384012914905903907279560349473913656686092484024961879178259726657909395599871571525354643215246711917772905846938989361566104698019335552428113204128030198139087174432252852737091209603867885838016821119962158554184629850804696690554974705676427736119812534960770223104214155148117466067704190982202133807756271988254155165616646781745571129114070968637483874737849620908554100334526567680539078659020753958812136706033395285832988140778860572372648544544941307966783795244272424293806934216964279565306056880638242723546230972509702877412400493877481606593767851196099635400827080604211584466131309052408635584588264565930489821795542942515446714266914727999725835363404214277702563280866080787724078710265228739351192076821383609351653000011313864799949209781613539527674167521692773092724121381642513794469231743771229072833073470009596243867739539566522959959776431851998822690226781933458859571216348913371563731857134909685251165801897624600363269784761778777250198106493933198805260185490328461558977223375327799744547830473731755685489596640154779810940905176268574087954761328047486933114997732815987706165015876411029974660719536256981311527881579818220066143680403539509844658420579425836582931799671014322549990873682040347332813206726298274716891793713190055903041931111592735924690178896277114540015136110632900455116034381239059933085985851096165000735044689339347974640186788209693644786841083022844945431460650647873140121897966353139726603327481729303200595408538194412867529444016654924362551556375415519133543427985564625375218450855901542783017822869759996836410793097320586286757236333856652995135811585414289293154155683535306656721072001798365811890122595001837001517185479027470117434096899557372282814031770718510567206013236890229647595306998998753439966172285430778676559386402148885013691772567110132383545824869284343436669950010251172391307364984135680514788281152912876228881465610631378714285229989667139585379169208001923691638403254874054108237039133795581381186805420063618485781614113466482436876130567282800674601712661013809569128712888653289707855531695429231111734108206866122869936108562058058698962181712689861432116336689074714199898528438718078212022300332122970828252969075894248046968398653332246953785310321720085344159353124333975632434793765156265966737418531619513358821450561014408282827827714834087340447520443211172791049037359799827169377019089506168104422203017492216758234412658298408532729097625606131894178052164275324747712747971152164217012705503339242079133444133797938985911404199072694831155587380940841518581704335208853939639731562973598585056133087930579497447019223140008938180669136797424327538635265722670032237583657588362405126072683614599525429628836437800882712033927201856114023990127750599934113002897093358093816465910627811271198194902217347525694441431665593904704597922797590727135427839364590555523484668770975082254560349324424033623369889153331636804251692210118920938579192132500508767275130080670651801010780232396241500901792188407888195429274688782099533868510138973698629363304239219935403803766304182612612914228145724883110491116823502458215803205812168907913599193868453012547140760442583129383442824502558718806339340627905543962659430238545442144956705644872604340435834290800445822043656375387894692001086518510955708670266366101941996459619664719542703704708781737665262936274757897449350323522567820737479270211248692764955034099909220344024236320727382969787693732964555350106347960607786067310815248970674946289490442965762909384289219400936103965765205808211298012038392558011736121137415701947372318742071204880280671109543811004074522333907299700674844502650211406046585753408280194245949594402717698979236505541692645961663707853159449399173046249864011028497905623370480591516005030137731809289824231890419594902108303060016205711658668310621439661697398276752381260275086952854939309516666745886760676169647264495878961471893503405462400335749830533490195145263265071033227015558185704723848268184185714865409798113340616052788685396338475578794681179137358712614495797414711940458323280772038076835473016068519604665726476384626450757973337749195632497884717653310430849072660680772204981241049745979039015660495275296273194834739178362320266679045406470457084199649117016712795501534976563272706275670491057354729543800884655627382144224631008845044129106130911563628208071610430867331275342495304601834793029805614513184018667460549971018328556290340769233137990046551795519721437560959024612395935765506316516864562774435616817199375723247626634859201470523238194246978085424836803101154856660357398677630095844260954276652884101947595142452732346669474103375207195313415932353256643429596145217848215474044144225141488215349042025720617642152562610710011935941536320984111829489294125012704831254661929643579998382303245175932851036829177983476523651043279099378103287442030961549109396736115812009658635977512353441710685501759545378821420796611062482254976601269081082591467005737078659575159458905665854356301953552228318726271719628042936899165245797707267539870108666030000768258054291713861730364554453952519092185804242552797844879752584574550421254492825795398589849333057904180948031660930975560442674107244030555331480123451740407430872804276235448561223136235909189924158495982450952445660776540541376550131210536069675363553115735150432561179177118737941625155271349477319452518367083312038251088256036958081071513926472175528175277133481193176837863791883234291410334125367881560709203006115330102491820897892515573148569780686192098486885900107725672936606699822158355691702162699782062217186327485699181590346649461761010676163386352984008501719718107876328809830351936168760403376060516705126878841698062939472037355913128813172236068633481897229209926662932049612217994048332810494710097653886108127125966994734619791133838764568766002919558310077955655456042218637997713360642922554245746009441740185405206059626944493785571974025256875308207891385900820343402817218080984786695508925311764348095655705591203967291682735159850437546214922384745020822429761336431909193042452617883840798928724379140592412734995090398720345396019315886956482267891451848098835697580117154212515200097215062915312322909607810156263751656010722740824698677999277293334576921852154910533961968742379310043776122216766408765852856296102145010894016294596230620924712930022112685815034494879518507318469009519190423380672438392281249906625440425237896123815803986305990088403252299580172446230319737987272961422575619843405703039249241717085295661465917677992980649220521875582819110512100525619711898094439823622342390405449569302264676156216481951199397970769746458902743558427952319645933457799965091469319041436775681200788513903006975922946285733235584957471720463261098937417775566098280272858634207068373933594929840563957773490548811104957652811602091209815415212945714744019593677619581736555443151753798578766495847661987239205160499158011329164391725159882252988449980652986117418539250364371895102396039871240959996101250358666547477190162600875538870195720627929793147216512095777564681294658423882718919955146557555723785297174545977957721077264046180285279652389269585640888375124011023014367086827801067968593888519851714320588180386131867778384252530296912736660815154145636950026259212424626516530600490824171693353131025322103551899727046540941770681894170850014168823814919189719402144596836876131387187312250111574977083349160467297700853353251662647167700468879093117987964684143561504235908476262278626020934812807983212954207470362777143461951504103470971906518738644252863519645976150518690226076992153082254289291732876376548975096045872644786053344774355027871560566292305798173893833918087646118375421079766888245102898451993697699854583234089622774285867474425641000134939049995905805940535871417609704868554905768933481580635653044105601052727859389207332343473215506008099337080752116431655898173896559333182490920949781574949526552444733146547863461239040343393931562462627133759109972994629747718113435327310547745330779339827884430646533854847426311778090168573046652776970971968232028085403228898983070083041467638260785038784876602655093632791924193886399854091415420071595715762556233340379071084006457617855213895783230070310613298320897094026341834288726513782256090481784210940601297600071268061887144796104515239346616560255019589296928224481235983721591958329663399139986355547400999087659638838278825696846651410370916680073623717819975043500717374859537861976206398829183257707554928083515872629689761826325834659439155841546561485467582001701832349617459913454673185326211098949369194279141428435283486052600980292621693730420543141698454539433389391212082054775332807620343363194424646825704109152186832008595762158691428848157520364817355753668743963824922720533371501970754158747887364640165450508209307290830572954592564965019699306486248785829316995959105398477454629456719611922081387649581546901807610291805895024699288433254988474669502288249977233383870136136537959923773991996752606642997292539759847683019734086675006899314642794106803393739202571600883008407082718700237260467407751877995694253154239040903309826131680335437429853530485602556153312616945068537352324685931557628034385474833943656923557199887423393445755602905077128796250804302718267848686610202373846300964611862804630949903757972502307064128450228517147843839645870860082639860778916632500754901446987162295404257811745225487983194792329577418387021763204959618869078752120660213877164000078902109404740816480861402885360556634431700167751579141770383732351203567742938323018303405638474848572311028363155176463639338598451956312257445920931193057551866083661873660953123535749857216829052237076716753733787958197599961169113893378642941600378758669272101244548308567035715152885354767487722851350244567428620972999394243613556576760931637079589374299221720489147237342632111133362590344063631325338470706019331214778184395679030152900794163787169562572766475078505720246117059017054367604471510327833388592124652033614009853380232575015726044014566254647044303288379881042520345385719065993242161863442573235663753034143036335979842526168631825397299421774953148003778811864114097443461398384030595936869303708185496200499632734549744483116731826835499308160304865718252445915666109073200474875658786845450729735571677128470782749825341877042542321749037307118700591271167773050283584937774336783673904070093107325275467676959425040644520056905675071903262655756002393349455471662471113268573381762896975687122922719792552667575812179404647894354312028375977751185864249868547531110615206954735314721906872593757911382355371654196926172021249025172686442911974839361428591675584483105384001853424256063083445637995654356517764562764235222795363154559681301075217422929455705466591726640968399983051267976331513217978592991418601575807464302405500312903882821413277421866768992063567520209929496520986116145162678962820799509475493765758380660556705541350083738938489906915454640324377813171892141456460631025651265243715735364055515241850240414181417233404068851197429977912268293533840970728940207885406576240953297236620746344712916979950442597325861492922814615429259264985534247437703227330824657569660101290464400595709952021290119319855184132064388823931010193604841107073049768181391406582094668804179880477037324348384905772554503321029202234072549515674333281536129852472968334441571202023628057792499090406687840885170297237133141967408257278999379431954496539211616928669129013290864254801831851442209040480898544259979714596296740994880962115681419419846187439034244518175170856386273220904874661689480951691554956106568364032147982658127413927074784707665773101487431937689265933625974950699551659198286060018337828957240865944026084324535284388713948985428095338558886619446413328394453498832248228269969851340809587696293094473018910677862728653609535033896233206944966433528747603748193039207216795537758961787571262227044103455973514078641455037459784457210665525091273443038652768321483134745692181788147481907030423733507675648979730299989082106840177718668346059438826974686074996203486846693349135527442265891904048076166165061089240167919404755113424069908817153191835606022250875356100772897714732989088100524120399415891107730912019757557859987845485646588324420102287753535712131351238788847296309242813384703665322288466972191195163788437302542221259187948451908823638106785248020605599604397897523604740683263601689037661366925828416547343770996609797891473796374413613735031350152499090800545389980121335661460846294171767991174390942366632480144960193686825772889572356314884487978024575783824991994452702942921469410351022782800963813379701971561629627569649513864311851721647512945965451333468441153221349527272384785940489701236528672788930899908435435072618122894200783886770521465362170971531268270697956021276361114730441846180276540120355758525544551958724676701223317640243087662633277565822039219080415195632654762839718522233446962803408819410600295181588345682483723444690453768421709505854164555638933575218279786890946772709615677031603635617575766111511098253040224425374546510249858032486685778631681620549431259739293421620652280348906591506231435131900885715023931503821634003121547070643820628748451644562621294403430241758109175005636244664486894879107720389481761244133303655291636562238745055193441701239970884861397087681822566259058470458027735543856083087999182459832194649322676080556610505456812831189069562988633155520600603038528644305781475298843002418535504768506105807520565087583637845782968057856796358136225039767974913818337907318241371516615208316343814669876197130927789937130351756175983252253668443077360658635464580765104140928752830796731827386734652849119402548719287194404972389972887198941310764870899783677885125624418217578630933778362504897381836526233960629335321010683221773240722321705217672659916268380590366440436216336850910748306461427091582550147440768705698363056754991282831379376524418023561445989848668508237530097015767108107559988212250074135746738316455804056714897517385480931151815336941908729574051456130382440242188748405839020248191823475882003599247145582608706268201953362947129897137828743148264952754930330576535035324624563654769586852147495638952397039314390022002330155545369018545561558295993113276486758778894521637241409912672064126284503623951414361219630206606293469617645825727522826760924204001713972717132618151032719365593554192408567412870963110501114282968589507240332757487835771819523596134977413730858459174569550801565037828727440310795531817981318206921502049089535754416104718578576916225180450173278343663322880353440549009385549700945882420860300654306011115645755397725342069962907861912610014572289948108067048697273499296154741628725192099990153047683026597330446697015302119479259279965877748993039904351708607378652382485826315923208689186245829935178709494121727695221433461629638930305297026904194962643865137259668106865293191583075677766909275322288852835172327037020742612256179141916107856359913692840765610244780275859814608786639356754230626342028933443227448081354560390213471810312678115168871012845161669518978510279651615360093053799380989954022054597191511268327812618204231138113861477401751397276544518001896047674602064597335132923931664290919297566336821826838869458774142309515740062662203257942166167256813117038096692250091856852721924257221643268088705950161234201997981896466328166831983533756998430784697774564610928844588042028499854244043034219884125175857929406544011761863482049249981860217194949716038453251621718445034347006189553930822886538843974117320906397019157109370286986668677305959533192549283680904654386047552530328593693023849836413730112269882792920285925737707208333299556096838534266344489152099824665903084214828493366534094447780322459079848289744202763885788599084774268810789578484576964053041094559859474096479098045331113164223617748957086115633325005181009717222174018239753182122580475154518006922748124457650713667052974499140610245294811907126696569377829539710172253654004439329281756853676805773286363580353832099606399327054520987883318343537499988656016634826864090049793304749637376609934723183022217527439362519667251048903298977818691337862819003145872254560221466831347235735722710918360862362726824063015647037369413535420948031681936701349852012554132083371462234988232653255457600164897910744203573994601090081079953704354180038412962265564510833102662571605444895483924181274751221501129813981562583090802052863773981840933586874214867591279703874632230507251220101448172165241275749800553814356808853817134627321416601048751403524525833923081761917771042567202396947451964745838746637599038135200709624101580811731904139130685010334396592257582240664376350185058592530181056171483264726971226763934725901158386984181947087344262294202119648171920073263258552200369447916498355155260472335958893136229131420646214948917760075123731268525333088800327532071883041709254167953746478148773364063238036481198983844265742102488651654952647834669103851142909029484183789439782159445739980569612690342627875284128598902577417541954391065305572061192673039611210725553879305072039212508943014757940618539800368183837113914974554463335748589779574967332099519426183179473801590658070277183155996894321025119217966497843908941460052465160659600230448553233421870065681000985875765169871860648070434166393350987452974256860958666659299142571089345346824640351567070783847240854207891745011056981472424395551446487780609308842071676965730579731477603163967097158712184111158578724294272318538411192756923881502616532186857748639319678088620489232166953421511563147138406563531193704294540320201241429691607327258167478233312789259727530555613511153758011059567515581228165582223464161277445583829768614454808180923713142592445186284979693078203937977827295303911993141096320937646730092450736336058108856702674633552741974093171112616385837613415364207104255070958057850842993307138521719114118288789663338729284723570664733970803588124508481179889287974175513641781725109111817093141948026242333899757438585923569103428168472041551023239717169177864836827518868756043513900942231248770482790147640320698880101760547928749540222330185656244211084535561697795177129768104507420362580969076962180800166808760911580167291596317486717497782748579301543677277306188807734437140744877377203232315685240933347006273695629992687488315973293420132634764791215884886265208027162589650810009813279431456896656939936013781252314730974049010103573929516027429464069995369233354332931166782991065775553924509961751720944674937403243987259863179283287588188055260517105935720766968256416578500929644821667036853430119684896390162406950448182014509142284664156615818744069518121827784195002180380051527422225462499791803489570468586027217568551320930499091365688608888149703139510365796735723398877560442933624344060370360434950933382815590812987825532387358854814209509464332369127396745062499571622092741560619181569163722447111318518028999857157050634373446726696419261905597775769606320698846619490609540063147360689514112328275818219110818156187366917285063671293572640893178425013942393620096459251805432656781613499211690996500604406978381602792961539173309176132157176467523713080676120976459675249019255782224465062200155597642487560526948749385037900711759078469307254722426196453096125200621552236377858890366185922411074663924968886016770499507575128722280144289707566427157343793157578203230121828968831772772495257435373901081410745914222564665598072831575578426448071122454207077144744322412193489148407808524934572375822028608693088911043866054821959009508521582152148821969522797282403693348446364785932429292311907323560358879106180328935057992199643005173008780333497668395728043529888277928987429347457419897613971513584274104476336285020519142251520132117917666178397630569843815478862865329734195104444083795219475413529156792557788465267369461401718356238250119850526194302653051356769411951417266522855136032881744247099421364804316525178617801455599525807809754422893510791176408070257564703055126263025692180170538369923138119340674255514604876442958169814786142029402054620247909519290177862880585557509240753656922117895270771324331595934533743483719238175539122910061095071437676396664308701461376940674971318208841532584804649824351880935418599985983068171936973420516393609823430041615997738362524929040883762129618562335670227427171516021583552386197823548823503749212975442171058259092731863425638114111063370159478729364950040496711247947151173196077379919144622952443520595016814213779537419131030028746318823960139328314993633816662265471213266946859790024094766809216543310736729434137055496251924571289203160549313701877739435218412060053108261382548243861267037051271801479537844008060643241960641075900770226308607416407117354637452754038612686504187290753417941901989317737061949247640629148883251976507836238072239518144314455476509579252532186540281315818030209513635477988780761370788639920044046883661735795058972867995612647205052890940962527455247689899262646944743653587931302946605293517751275337462748038045099705388495143401095349343390800899487572597850792302226779505082065586057591745102637465861080372180610878006641279636740454935832234247782630855448524985112567355314960311658682609868060647083163878938051502103615801325696553651044880142594573269999931601446817960252544121246809195700576319898030733337069389284282479026020832490654179958394238833091222891646207835117167929886096662964748308282136048486079080306546850633031648989585215324063637236316350918701445174230432234201083437847474796343413215368211259059847251751638162158687091650133229255571312420318315487525189336525515359845514111466286362346375357011498553871386181671219207499658998214938914038417039720429741356832150320376093733164362173581174919624686883442179320273491739213198983281872258661654863841697598087051608781497004204111659697938570612999986304228112321033360652198232476199949140278140890978000210268494074643311238987355405147515848544345307726887455225815183663412162503718213729721506677815118968615013371532639834546939796682576763600515921801828440164858828255388806038932027902501703445276944250555335929952879466084100585364646301371028268291867742955562787654019266714320338225347626038999700243906419363306689957915949869620943585495826707846896945341558491629969975230464315530007064052784492788286633211447688562295233788735345634577301527110049277376797975152318670125734464556212918746187677732428052750355666408609815632744359225755802517554265002811925414098474986572700842369223192718220434784637099434505383079590429945337904034513604575175569695036668205957097555193794711243655875067541520276264927453580914135123139880119135877799962283389509822547848319490715415932094020001568441605006004706004037995622279183828385821933758504448971706993231378949504909026454861029129427348683791032053305120075991342201833973622671900085308029700352917140746218378308776007298507378485312947890878855195542416911607655106176658063289610860444074575518705731751588229509995981191749603155919280088309368419578707540729261936797445325434987584323641939479059832159874807255055548914404700934573831703572488334428064717605966885610541381033908095956523756136031493443676085620155742227347730110410421817641966110621438126917843999091629075998313393061266173107573904326279261402370565608020177825905623342054352797689426109445874208482344395913272021374080963337102317489262798380613311237399950282044990816507388140107824571045143689113644183446048583495944361188729670666341714446737317598723768995347013812466554993321812898286760146715895321832038394739082205323296639321055645906737684663689798065769305415163902269614619011225888786159628257580103950484183109195186896335953287305599667041945950790250576423109124859006878548114961588501099495913955617297364197333321940748103571831996914348525228433889861813807697670062742354226020777647561798493921314176774100898318572432797534734595775268896600484721527642070781444649012153523206381528317151860790664106246267244101907101657576517777039839562634612855854144204603203029136213177865871401071191261558011608481436815148483213663141953808044984714456001712323832393592873675452794479243602537118349292339470992841847599871369077637259152510728570903182854268071255732604100601285594336139908095807436724846695085155874929149784999640016811552330504982780445586826363756290003307796274217671422341167239977267859523222284882890058534311883538053621531603378057322968169409526405762739864898067346350772419525924103970248318026380575503835188322181517799698581745716868236715924803397353172310685452121455027396461002635874471062450995891075928182797961511452089342415069585478080310931963494904914545693704855732980974380420933455721846208849967737857641326498414849042715472935078284603497243855198177996542486906057552670863542455457789843547577017133728371483868955004062997354083892556960038260850931165760988059004286379382753265205890843540190961402343657178767804385370801121984339411464187982627760424612181175767240988059733541246177864393647462642629326450479469552962935404439741214100835638980476861378172229944704971059937899342179354494408048373937199281270121443036206539851458922732537777937551757056711147194984400883497688060960877737347517557618320559835396689438160299954020505108103899469858476550864369498993192378401889235285073952072805486132466394312470825246473712852914236877506456270342617355441528319250474192770596182514373690274720123840524626842618170842633946286473161022503040554282195133157677286112149639708248685034092779897148389781683992356172800985071309528278360499435939392604726438374578800784848039234460046739444109348054401042552782646778085600511184237688210581357294631936853146140786605352909259393529471943062454412609118624944352911384119545440392733518659180372238841502567518259936173910493738796455814552783943212550652241766340147387184137636905455328856355188593623839474560598878188512517941678449348290534343520042544167607305626024600945322376355940143080362471297963478829515865236172041134986556473963176259519805902121286839146235652327826211710572491510523218805610368532699909019325200195714499630278101825620667735923570289309983567935657236982622422930240843853361561407615124334119966659579150704831302650205946898714918586574748830345531636402848511445998860377397079734541722002170553915276934502259992374539358383021408509864737843284073518818436220171588054610245521472651680927527249862874764927412966247020950626806654577868903952091326084957855623789618234371391884841303528372747704096663191131408605087435746180059747191222331478642226204547001596810073895518083698102450050876567748779695555899966866337227172701335488059604590763294252481968828871602331404708886434486598469997053513060954505790572005737359136430956109915423431095247989809101043771270077811319664962837483015805456216293282790224702024164547470794850130740142582262105291482416262617472502302062012070143982694491639016637995706385222017616309830284288210883298841225261366197512840279649412688384360974425228251129358782397247126120736956530389572023533681755368644624243485061493845614322755004195009094892799145640483024159936295085889084966331882080077825640787787037817637670851073787838144409907959348472022618735296480256364580153302386416674222430232337445609215534139438417510716401440913922121145817276025521450922361433999360544891727873020880152425980125399778291927897937127414701642792260762751213214106738621032533658222934282649203710650835363253182927786947292166444046415166196559318946890736584857947282988938439145062014159171307516537866978135045456088928130298670949082179528806804872431199023179535338540516491380469336511856277655962090966411837009600945888902286979183673506328795414055925683345152313148858812332850422415580556177299454308259173960839848755214321247766102027205838067013075059797039017757376325034760666347791808915649602731637120348898913806418605027345005258745739116217305899745940035148450017296935695502003604581155755648032899150931814998672872524479282778511137906073232853701435065105191136776708180512449460178510720438636987977043638225406247733156924362433218479158240471898986264121561791238912464068375861265627993642867563509138971849681578097076846642533583857027528428506078396693677650359729866876196266211617469590074058495699066493722387879950104386271971145236727794915342968853930544882011093388527135553037755966071275933626218002693424294993207201199903069619027461699271655804768415546621630223084198532860150808393831307594751422935802846742577331740273274993607433497288657699466790184774585010051621106326778006137489171423205005360774849954775184990369230501858728226323377013237922372445571418468310178743575515340779024348296585230161567272119766540553676141243229508560214216056874725345707510927892603253165068277647131452656977987660278026981541441666372618549706428496561040441149539618634404393531316786108016849787786913797163926050625415944666268483111068624457171893688044637306621643832887644875844068763895921210244814818391130892346882592948389739988005403148647723841443602492380281370838356156157580099800858866274098929913016380574548526007156413264071716667707449213298748879850986755456810717594515927500225502478389637725004257208984419677279334483530194270490523181368083852258214672838945441235234855893169120210598536447113318569642462951782271189940318108166533318814252209864009876430151428779818875597350386308165461415597798226559845788098513047996934945211362261252440317340032589247175516609899922377886698910334372106370277817181537873049327609818997550144455124242260199709297703797475930544058262649426107401995324414332057844161134057073138067675533594820802128544286301175245911383641345804268662251028039424689837020193601437073278590172011318606136574257738098602905006939754073824355862516401844973896671971094941038783848055428458299396933728693757951072681520937067656142838891759646576398610450293889063427443392634517477598815183667801142181882662415630525900235061252125861922705964026434943382035979220649681582998244682808989550598759930165591267030454792297983129064408327495638555622823784830941722717583113853434958401942420430144961589409420711206506757249615294712486666266333049238675123474517904796849196637415676795715830084579166950762204326876363484926788771357553006583842296557630984708925789176124051368302372370001947357091075204965484268944898712002441691506633853798226367371975701070178122162798824383540274423082496583940581236381728471556205613831446428861557667217923413549321157865947977615914417122093410957381458470811489012980156593517368659839679903324151715940913005819935436594064197163217989105096828853337255496779299304718992278098259317375829537713725765046691555791549049765554021708783845686191572106999758135422031999352276670044888629438637483291425054069728199122158594190662323519154274378524025155197851485013012719233491075934074763999051349988065639351759781460920098914677775185720485046361515305258545923749905436706596212384073981129946047177435701476338494073108877697647829318244792494008956005366953079381081349677408853140555116805281753976926357951094167440890535549040074526992337749662442559131260127634137953823603182849142033802035034865646405349246602011751341027686486671734586166981695365707899534342092131501565172448621422367313455765783598382876946861947678727226287074251392329392645811708920409139301265084716169984562569844505143926871745279084545891694846263725316339181511042231586062396759898346538024359426418670460792625791019922289834902736803975464326253235165171391214650349877567298153831132019990470130128269849087882261714336224510071222243663278308286213186969677528996599136066124147350211917635873047097881764307738093984380178285390137670892809775742764207508109386374904306812636979342326878133816767604662119382442100838814221389172641147390532469705844033938915181662981370369586398313791758002843351621727513497915579326031422597442626753583661995028582758882153703289053759127953606740608930682331616673683490669783832979161264930589423452264319710383754331005032969885662008972842290577028991090774923624408025555478088245602954457710958091954065626720130813658592997435847008676470327360490066502727059302019640517223953265385282909649700722933746619191047611015432750939646392658571939924795963565442857892151944311542225830856189667567028269140477396048579959817250478409115062012244816101876709048635557241492039505157603342937157160350962886569882260120386856056289815131681847499158023195617280934293420721206997452896890153465885682948424510611699868149453443417254419650100718459651250989961057792974951782982337438404945853316877228333472114892651564268348946254102607895925235333475089200534122775205328465240611006900146605158920974858687222860261243999088306166976069704966399964565234677387071553006987161011098876108478479684339532948907935098552641831602186214264877433117592627391871377503221045648268917083132221008424436524976897677749659868424990176196172471636025783622079442771158413441617002867751675401715536802315395792716121136386078373913393765232653002669428492464386651676402090288090893096247613381284310061160354984155586310789446695322734880583967231426065473415895389474375106904953098379725900043588983355661297879971618515467773388566384262379649946323743790205839041751170524649124555845781722966346610863418902697766634746555168223889276587794080844037833708876342673380478041411304179232896234419177345692060958197605623657134719970539873089386495124798649510751604711474050133423821504825564641025248099413947570970424847393663745156283687496896624838345746515797859282195180372957935013337811380238294611666295027841898955004220506078356159472203533172644611367825153300058922294866526952726936112888240216947104429588256866200492244090740825164086261549294914386082456458088318038831008909534878757772627558177204766701001818828702433438060870054369249401736662822712865371492369468497572149688836665456710345312284217898248764237690988575461746488906884698501947356748479623318888541239630952496515638211736447393336842511018829341661777240838787782188845854249278590820535687387239466301347413311721026178367924924352632302610564861453694083628031348961541711149988831986394901719393724852541572824201751278593941276206723699012521064500835509042753540647865132203994404470131329365110997009011467912837592937228379775683624499112363180806402986504206540091124883277287974126854481549635599783039619267064172051848977229268691247765741793663771706334199958808775531973223188347365254615440035675768382712643321209769565955408417380628569585843390383531021101470868082207457359250927159100731878769741439481477533591408239817966914142608167013031036794454119057241704314596207426156088668734290260534422100210681145418359343277434357760139297916199725745005980324616927426712204919073058824421753883254083876728326047452417615704824297395561294904968737671835668861260697863710684458230639250718104029703073433870620110234045315184787757235685532310820129760255778321614931333033712780538213126549956342900789218139976049488639064605613322658107445031712616645448812342966641047831767121079234808110199993044859783964109880248165315977209830979597078523516425620176984061667667444124684964342917575957147046651749858506522148340787615561863860782865835748378025797303563447756001688523349951357777991962766579367757887645449238967411022779546474081298597147579158377569764511190468216274939761661545918418276896180281850747583877588157693502144508483266924045643057904027073926311013427222412398531205330389017233464244642360715589284513496540719038848482915810217908590227124244187706481840863705549759202478489930233770759498128700253159211038342777122944005178678638909390248592486226845065016636869601107168340887603881199956390396875258371484017087428892718778693826488610217367948572299799259686287384858998778921572279609938756770829893370426450002822744689389234734957637957589114742375482579975690474567291949292909657531704729081998556454829704973082109903882187244799559626032102895923194888798399387725726204739022047327056368343000084832149998220457565981276787525717708746001339110629586591371226501821297042483380391676336023314732573103419418043603460711856551668195170750565489186985722981349431691065285149250518941795531361619161210275669187436238958204411087552512378919604126719733915310881523222970788088006667005499721286027719380716489447953120975098529265066567336984496073290327599279681964668178297160432599503788397829030599508445850778427335527443854350145358475592884023613173922317136317114446583678568215557164275475145409245390395211594194163553900812135413765894001552222792642357822562917875853983372504879495705622845504732816099210902288821208671239998059992836970320628348296080155794171574989386560001143067208272051226391257580772662851439056736852669712044401129693793349767890731006633393015297314170949383524251865233405007709787510256549254656185992797733179965905752113275873730889651068755290117108396754970787843804324590222600097413410194317339649901954046865285617554362003860672535423956186674506972981094062642326468184107939277213973464746494446916029766322848849053810445063420037441459577523863800216749991079678535593001368235362776842985779466244890319616723285604135539593081936466682205393686946860803661600557714706174794869967583244566632868257811693535023977929839192037060189429396130779873288015136736345537844063751561881089925360915875422864614048619535785731706408906664816641635063226266774724145265678227490058577593259860276601379086344235491486684430296523620445415557832304972409362020543916757515886830704188532013849071590028410324658877752455471976199976504909127798184069378626139920378038574265316712372088828499192987993414058807073732202227578114045972739322301323735830955769824839570889604716396423792920734563464331058758610051151277961495389130610851029935380047239949668975380851428906831224384963213198679375693230205988517406430435464470959400082295762034997727480157020886432512544397412599381191114818821840992898950333622075859194207645251019885284672124848092180574453372017488837833800499314617075734126559010559788809561153366606854176026574241823070063829916138050518081770519859081582404532485469872897213838184827867212550006185792734990612024871962816354719233210754651378695040693619106138849474541298326731186550279956337854759931054774467017782588605270562281835946326239377765932931406723988422606235786058462204330073529441237301328550095402810795201836442122332554747917742004861308986929576965214257931449258274903743703681210853529980092234009283492068214407850904492276049647640894065567726570772048520855802496160430802346528940939784152334553560836728444972154295896729235712941291904229127865956431363420943981850032314944437679664638159659489832162567680424193289304239074858229269168021030194013470777220225975221553794901558374772281834018689607957102174489831578677248053354901401804915329110838985862593819093047809760921154115362519234148204379583466415773704181475138119664226058472930185265832356042630612258862187576537970727330280299631821606837370778138451865717683131431927037945550987415217763259481578107916041647684544842966898677920088294426363154461020097428543275931461039553992458284601189787853935611682378501089496766557452545990842516707057909795281465701276664074719350460955960658762070997376552211241434704650527613547306006267220197613294497714635932152670654707988488622125282872779199633394161437006822311706129537382123163725512499208307395876301165212151350885260681362700128136329876306702917035283877314263355106800271741096691243230959448156520039170822675408820836995491207350016777997606264320673532800564420714137905020173654815201626407219556138292853473781126538045891012051437628400745670789893295190907817673927587798676807431509419282495167332313219208700709163003848913510357202663222848633164762342169673171009543663867398821113344119079646528489325078316150215749311737173850633191541305519040586453034135064782049004456362882759494542021164565749898284578415206131973021659345530940914318136465427110061615640773565453488063555121994431491267866941614208286508118649982175206980879989780715360407939199418643321747454086719269695383448026951448225148713515686583355110181998513607591355097344378357615703165718706600346024159868782547734658397584863668293974915343763464416079603103623879694693676924924385011374770354868959609333245090514497328811728859535254309675232716503384336029749117248013165395444465980697276668946710220193630264795129151083062418846240392239521386352659760581786731373764787771870637999823884309318261983978640027839416473788267897415781237029161209303470185140305727512462538903622797145080167748306426315092332915053585832038798364558060052405580033660275384469302096927746937914583045151712382074551753028709478071298283615912924156435578931203168372518682536111221819163984787065506778493209798247517905430823692033979373998445774600954379899389315924755051552285331486766845891989410443799466135463574614749642758912124986283942459684078118163022850539478353097410815302985430828139201468203410942637976698847300332355688461492869091549694282473122009670788648321333595030689337532773521945780318783068255239716346966630825604525806576774373258124449445527450331212835988840828390175021669428369650086983470414277650194788330174567315208390758584188106278031744435767957817398825699631273962306930536468899874768832518464893353189911853896557262896434840174640449744880433220890322268675921256268708607989993301342722527936214686648726759849645689783578853648717443144212178750131609521754739914674472741251777390833744054973855201909335662630651206714456298034414661531976467779856620182250231547818065550380478884356496512679656850798781836577959272099309717695385715151634704373215029917685697689371724535544217267167718682261810959135188788876847067489143151998219896604220226309523149822904800348103173432983160660343356118727260482823492703371277763685671577823151223677700329125948275821218913903525884836307304916946312573143522678144584048156759163970742006191449028263814227905913994601557842572203557418080838807019069992065333391418640414443412990149490069683007473879763946517330240444822206197077749173795277606730152091976010007623117739092887357074032853060968057230324150774558504314960284216360980753458267482046500717057456885456187352239686128957288112989029630567974319633984824131222507771834951979997363645759733526969126730239201411311518892046357543621307308384384583678317936360818971101068028532702493528075540352008932342704962006612084470581325327934288766570105263167817196620235015134676324188456033538427967260779287076415301044354584240695336334084101241511067479504898011825697087708257353538287971747788959932484790575982241303504961081401763384920230977245203112279322370775009575753778469619098375744743263144557217572757822685771421451700660934944452123414058083395486892850588289326036227049448664095649678331465384157427005259954124265978615880355505131925057686775168724685999073986634641415555187417414844349325192380874408249189691962565275073659980295218693676425955502245501732373756722701155083394106663638557424281263807756592073722097183670582317533217901720649830127781725034928372004907224737288804762448058970068793456945912787191945335449290752377851477716358594200246313375841813544288431828105357608239847376148871604227073224471199436341655987768139264091035790760313465362036320713533116444372021531449063228898231154024715313592224951380725589820247381280353082144083503218485105875467494140676633639099053524819421331904692173334750228186238242160861271176470485117808756430678933411588006995637543941761797481711005060428358869830977951773583121470004435407954764917940241752427398941494915950629810682344286771324884802991638693138428975916322204723390017908535799977650344179880948651828430324162426242554418549988358045466840514751544072678212463790029300817320584129639971696897843873074207251646518970009207073438511818997961945400249519893959204768222342182714732994894989364174112378139182018492242953444747412297263523796242026763820493661408970334301589722643324527140100762338274789630436882430145561398095563494276596982023953580601465555681585766580470613091305465354444639315678006821957752842468563953500059870085381812666674424259699568823319138138432621994876563558266502823373587441117632842145427492510374564977782405418933088291191017642480062208179538053256595588600838224392146227752717056164861862143019184174399174520065319126046349278226513742103780274779184247765167521268331161379016012018345357003045971651132805818251480592531710084819652676386220360974165021339530750567232986795750642062588375313836585086839744433704760337621320083109444276974704342684036757643471329816485862538851223488228186947041835315576815863358723105314171112617132064838371085004934734815398435122618390135752919626568005722681655183726112990057367590002822077144696113674103718064334741867721310130819109382192633489380736600216339713258265882311975948832284012230731250016651882219447019309872320244613768366815623329836212678803880052872352846581727772427623684051606653358706031359869399057294694617143014122908325559277352196332567519589514695404058536949264452009159445479970928757828831458591007628663117962003753832558411285835310262375494092398183054720594719363188531514412735887936072531171034675228733942041041830924377468637928380697252935947281761238331105776450884981942793497622887554227161920469473888339483493352356379869632253688336644375455395770483129848274932842849657468627760073910164844988357690907669454577659559051059063008477222022869168082003687135680517175029299337795692730266580985041856899203582301739781596035383084013975817262524780129029013152281149837481969115070428360611194022486739260200540348473371616579511636271383015574364449106687334168523733704217485129288641997057477955313695440666103068461603911357765379613425355334873338842122443670858238922723122142000455600073697413018325494481859492401799676883973610988120509550976432872361510575689486776482201457786049983218630883778469030639481528580406005394045652744364587109461616803635514782352306105242321293353452335590990041245613116876904887709156846887696117431965833108391664366911917831054876967551330664062486003100013894757926594925173263956641623804174095998384102150042349604825114849681058849471270799544358594433278010360655774739831828540541668289303324593024412435259973177363319363591141094539869791742638457410587700039617199707878021109095922491165455738691810705480885934812334788029190191238513027725916870249336688913608639876316900327479467997182462356948543200078918665612508953467604204028605700096021087408991273267446819542859094461093250950890644693085892261972401623602797646004544988867843373397725761284315947463336519874745239000821600463847193506609026963089964219070885132220968096818337090276910161339102541257474773137290410520270759499347316402686737513337455219955055013745715274130200271051475802604843319594464134301893350800057535514707866845412932545867232968020878616518469316918829201621002054099115301924287404639806907814337494432931037484022615988234326765863795063656000539581723192142239257719699106119018148074212718281533754547765923892304133176647922049477501787447385696613926304269948399078269666823714490531000471670486268635836904293830113134876690920360964929673026287392058524543195404551363850645645177429652940658277450165683995083917596014788839645843622544963719669491791605780088431782134822348554512430418434134269430143861648152401704236170593105652982583773221959746651472562946731196017243693227516411757480557925198033749941700164037377622191956222071530545350423224532688311399423177010765998957319106197413348471672812648476603928047051110611013595159226901055652748189159156418442419428316602670407416560592370966868489715487947031374104326670355651718493583557866594332539472719195023127487738272096448593653218423827615498709977804517623579114186689280113711842975529287786660841107240957465356488425425652975624672121408192295172246854151055227947506785195085570144451599995944823906300279784421282368312961888371422935266725350755429962664990262054495182358788572867325800583607246637076166270355266133444699394852656010316625071959830448078286637830045621402961863176923478038114212264118946279203657079024637178889672400930564053451753738850203663544119878743632477805719892624713236987241067637549344570668529432907261234541343620177053636538007620003887930560240203607736052545783774404398855259998742432056501854348789365043632422571128089351627202498159320596216311285222989629904604817989278577188060424503305205478192092282189390907989699639662626255964208270393783098113826389560465765103311014189039853401193774978416195923850640306002810395660554081822430592921575928957162393758449603521673259162173043815911022675397338844801557294936252073196323630438156045560850626832961251684537509993458319398336789657504978650477611141083131726588455435806715079217484279461539185767439146568718205957501285172181148282071600674945909242459713561943735928828313348089049875559293865254979302061344796696876332036283838352211965509352848406085559772603071915697536356871716636249196964945131712619412424305437487258127370645374518808467895326338579637270480873858350452373301863835051835085572090292068077672980724507595164401050077034378778139933571377584373299631525573029037031337974208528552421934769184626445458430610185579715372518065471501087312950402110636587929967962689329320357351822871782729980504852345811374386207647191996028904845867467904077276106979524393095304038230617462699396188610547188281889530474767955434633994725855992092724030236658499613478905802007746689698699787992122310949778289890883756703300060438298062304021252344308161676487255512050026700532876578505924490272137957816816436199857887755590414251172211431843093547773801028961154652884903003629938095545533901608845130765987543286090681017060091101245213848124986063660660780215927015696364030346763612005821321515491429816661942277907148987887767518112005185133727050351608295530148620170470292852257738772288417297119325550801920210598976531829876909002175199104435993770187143308073392524155760480395426161999605850809978346852659630202383158801276927090987243487369898337099909566978273352613222070055831790922514889172255651814920573220619849033709154762712887615759894433103606214712447492019390292627342630254859178672726485912239850166608863703773933069300864532107795005653917749194430463662964888551389986477205113729069352242004843973230186480894097332481495263712879408154752972148817195490463881329480676605079353142926071204020954100329397558701503575793368398879038000576572420000952164823247869670903293680828367251388773597873244959848739984125857706060631982609241142954156073616535360860196142969721835654605094953696109196464935684442337517660996690156082829047447911355226240212950170409501446345444104356660002093107967554145317193803366052253565843823818117297128570351124205631537041611654672337252791314470842397249121638110694078693213658548348386437420282392354519345612808300701571050113348216293195292096487847369486375637792070612204537164941234182700947414053400817259330406104134685278534100555347484245454831833722677542343000819333706582565287681328253451231552841026236662751631202321534568119973430217249872230199547040384636561541973977049129591507905254993881505655623031275768234362368570669617350703345310403206359709539698462591475415993290471917610539807564217735509065477535298321163403592066645512098664803025695598765903690576690826687417179418329000577579623522801573035304028193375973799690132839120091535277193810674987052849981357015066519629352521496793284533949805306126682260827081325266927014023555654042662431024112262138261389535748845973620167664822834940420082782225886576535312287682515186931912848168379251432581060825284031378459040309762066320700087323920229617696282941048391800806412634459600675472821177104100309130463462057467692571543592550799142727010198140651109800058949154709829302705515023384381477869326934341918307844074761312366635625793082986846492900514104837147114267361507624987834650122957050089815755031908706923636181826665258850117015025118053795237693405724379209755023151685898660859652075005816454372265048065891383842940213152585840911266401042370596949052965577135735253342433809283902931067061570739354451610115923074664860968464102675277386298755168442492427053493301157287822013309096111836279913787333141361030318103368609694618976501371545672923166232829718486235455569464996544265314741058739575294264925533940339857934485329626571651454741759034426249999906537926033642094566380624709288514954935862331128504617031780841644233721206054849819478898010425551157126777947509105036941002611032239449347564749109102598401190202823412890374170825649759125675353872302189507557735194358284492500884760953706831266488239940060360118381018856707287747341667227602740737183087839685738451118344605236620560887319280365416825582031512544267574088950868669653514126546714532120426853461624286175990599464815806785238306691466263905056556129389245563598848490087032884371442643798522580476243426077666023068402271431810057428375820138990652788787264753958045643476669612496954262020115994085721301163667328598157672732844889688920932265050355091666891864061733494935892077092270664201176704509472163303747026216033949731022160387832988492625383510959368568483048150767075824562662111397826595686659448755754086680357187036085001165158158667982788437304257983876205590570380747440827409198648982666867653544939503013392822948762941092526945512045964862624720088142508779243207526285422064303327829451616514464891917027215070123183300111959021010885842012576358290825656789494663001588748715986100769312886519022754109205845396328393857662093756311202321721463920332339528590307485871203850982898785511852008670336940276819508451494947111672780505576038392685903660269142384998944566933288898541322077235035640224657386927102609905313539333986303988269755808420871227170855401719101079810961550275479564703521838866638979470608111082168322272662550887158853329113579511219443432117992520316735947886882655392000301675278489926524879071794249198649457979317283743775829302570741858386741668243482448600837698333117869406467041895451011371411244068252582429693047347680745304861521774552290809779700496345851506275153736591375567863421240929925737521570626402110643325780329587843013525561150291394271489512185846620186933252170732166427288081631160873068897857062220968438950149026717365948650642756881435162680180751463378633519870775652657143791126852869011422542308324159067845568301275372232180924826982831065608553305351230165253056455351313396276190036999336156397344902850539963024062346032909754386756958115944551724277271631512838579875758026690753502008537778596219091862266924005586610079216044469112627162478603327566186804768903907012670149053209761466650459212726159103461689125790382938533002360537197828639603509602484676139261477043960135281641640490959924844802405070321762784754536122898612855921980265481288592426948218742297576418390329669588401669038783622241175962261297334367219496995356073104570373016386365828012562228443620721814203680750248024735173278376808412402014093299260740424493098268551381043031931832940827823930569891102621699226585610621590861496268306234417425260971672607552709013888169200814817414315864352102361047953283147435022738208559362245215553770570001824639527583489496993912518905674319879133562986149436770251939701872876513447255086641997075379209329848159283334533871788992598194315131573146228097410610104855639092333244929514469586763936210843680967577724168863838805074807115295794582002956503366063899794509283394548726995913328323552576652106454585671870399046344738323791092743137544476756882764889369258049750773888119322108653472147729187068705775676348010976720913854880863386107404093945618926512064635668111491486093931429088821093950669859097644556959049109793307830455911042437133882491721113020126511422036317922598820529760637637809592484111899122920340196114883863609152652767331732116659515466140895922031188439271315338768071661930601359443226404686370949299664401272360793788262626571905485517833221620132527470522316943288046630184305781626009648398862267710839789242956246338170439233777601985272077648462262533233373430783028851968605834325303258274636809053932803306951779050665820572176287753746710435518654671743401488288280205257765851752525641231980979177974651839752992420583882257714231540474391636726223795259070332345366494292874421322257821791529501297226820627218468413894641809178149449839067347588296389150634673434178961075502697066573752817398209559671793474437488680710297078160407267286794850953123055046909574146808633572387845046742280873002936824731096571389467442437571838652814811711962612935250421894365397402203227485564700347493791610567631223363350957336738051491082271914028019109495573894220831457668154898856367676541036428224407199518543385009667782968272958092311927813645984002910775965591204335390952057775035094538590670511958937298432906779713759534941860241435983514988012901330669214823060153533770155326042889313328257626301701436101225238580429970028940894126094727703667947924385998863126171515227431132287962027921608219725880292703099519123787315471421071790828405936748726238450520521258298185046967624277828963518101325688987770640879493843284982615756567676019502344223828028440806692520384774281646882913524466163545770537861158807623315700261645949218796709289467013997763686688525149397187315461960560686102739892842647426772433549072088648113547820855337553174645509221981448599558368314209501186104750193852421085110521098946025564753833194846509693957037309930727939743437942982035442041113388798732132477948029167356570510934482087281085934747311174290916385523164376372409937538049938584534817413941002647368545471650640873776893676477644763793693392801385492090357754816162664035092857947194427758468986375801936792677088333124615608775554100618596404626866349974852678441706890564015322824086878730893454290697177692087433764566423272120816319241138188613261598902942622158596520630288561714187539574574843148372029709998714698475654899380500326153582130698595864962387827792401746687048844344131382602263446239184496718161487919713033261068436172585417633875132998988457550823792002053473117349331788454295734464251830543788428071593893551211506791611086407580026524197288802878024560869246528852855068198506912707540133345544808533726757522127859234631259712044288353484234853280775948929238442041815287102944205196618222171191773927307371527556111868907447806992840709286875322568252011522131713746326131658243108582744439741403033677164399946874131825942090322722635382886254879961371941202999555376311291093456155381044147576680506318722354964437932719691348380362516694326154991068318180296613468910670197185719857834310152488721956551000718765138425171269296483495738729465415591108574288706368389926253517691198656386699829794534626915291572619622085961941554910963854394045650500165206680207472166480740802217899284208842449809762838807799329283768307680150152030394426143327287742673177803184156413161960516363470881228701688602624685773873475612238938438583755684010511732028350296933331532278695631348618411512918849635789501497985509563146673626894300425206938337691737961350541332037360426589713243110423358728923346002193742838089848901387354650688511083938565712664172215455466260956940918962083612846019677983222087324963495405903810631058538849244911711522252544689315328557184622125238491528163871404139079943686189480259986592062743677014289160678077549056259071432138656604841007317598530324809596744794888560969659143020061484986321872411571776881536147100922659927260754112157396004167581681836338556357793866523907236469209220857546662161216538744767803334110306981986620470892627387961529322119194584872861919978302646281781647163045591791360738222462372782812692076243094238268706075096124807640494283543319432522844122444366838103904545921130005267579622579923639497045088615273121374448236939618353433733676350864290938799086004557223714638841058843319248410617233957156985224490328057005225854549254640307989466585224859627740736739564429568866820163051556249505645283338460782512372212617190379937179656191519895273397085675687383040254515398314790111866360282860119756768410901754698671814960336987669420877654020553079665630571350692995630814507509597485323549670942654150722470074620046160975452052635205965866810026528003469806490734800040872678865627926000202975825476942980971145532905189169428972156347640512910444293969276150243233491886427000379065756368033292534199047963708985729374234492832478582468991573600991485672290974732000443148650115649623756605853909149752526504782380209733470513900321764444803672533326812057845956359545129460959114288987884215966636735706294656333963413519899765948983011508738603744712751246317454016541235096385631612593527519662839409875479858678198749536757508942515212808389469798562917944698146230553602136961403394684256923208585672901978782434529046668798862289878284362877756327087425235365829436398977188541236325394078590588232834652753592661341513355716526199184943643152258785293829872097720333477016786235552564365266558897843586681302265116845974185112070171406346939050538880057470836259659665833692869061839309770037562544724590020327366908175115252919513881241151041862672407576255086887130583849359555987610826861528304457004346291599251798705246247312132228161414756724918865308434997247474693733546287974612018015756666529237843811602002485053802633303804390915726701844812517476691587086240955779066344926264601782177088679507217782049875196975579633336701009104631905175713069842938344340635542630145069054385307292415872934088779830289024252920309878480399123823496906622851124543929777278870422620734497792274946884633980837430799111334821710692908976864583042872219970835165933653793755172669814050194049610057289402423178536420410963377242296368872114466407866993480704888850860818878841530037104109320091779010809242954717601758645838664565910638946559890643774755780596965781000443705315990218959451441048920053957671557932398202554402371168514830253895416518206443042679009784308841048234987670537654518690484594876412291052132634171740354407730141091057840769521471496340853338350680854283436385909915229534169620059121268312489798634721955482737376536898893789277337767964041935918094737829513973471660422498890118686076054283112983476243158271228712556188912560501683660910195680030221857455992393094219004398613250725803654867717999735363896553014682719339499763614132925947287342260729410356602474573581361745589820858011616883688811836465457794101442646991956963482880644778236563258000704868965761798595333264293358816131535043335628721827730931536946381345468676941891472988853258715228779830731409200585085055382126607944217239776741915885830614273222426099090441781893416423994852659352626371432839405213263326497782358484679388976017834517528534224887393067072087379639487400660013224138703779294031082146452792325783631531171876386603200184761029822510647850105367632000062503440673779566754275721533737427934704833816239436541984199051634614153113907779328773118074881278094977032179915056419757416364479150606202824817354022296776641975794168406193211380234972600318039286644978974432714329405048153408095793096602885263680116610658039775227625956048875908518214893546330965171222898420922785564069171244234578478004811270032003329939891199784401696626223040846829253055076059192972968732863711125966409115423187930599777776872740945536494242904650829978162737373840733233103891774964253647513081708672599979551679137891706792721007770500730499342918771985104964554425900643432106471700817660012691242819330193438549641804431102300643321186004492896907495467410917210991469359307027911990500888091078972169581156129849419070422059951312052500589525853710471475805315969082138253970534861993410188512374456008770003373141214734542829532453161479032109846076279645570061075761443694186504002836235806914978400465944621879366050507040964827584079530246759697359235415681025933317663122893069837381030541368612140999138911632116738402921470698421303955357982024827716124674220724529703509616063365736495306840529876959516526251349468304028836106332138366344704963462658860837601133028221868637609234879072127162515432615731531815237411387293922589673998634973746225722397603671543741973491746450479177861211020360803586755676267982967567828505574462082153739952113208834976836873013100924730265713187784430115535891767401552877320825841630325715059973193174805760352871385833021905227890127706381789380012142591233128538624976578129851497641254313294430322894183344365329441356669143970462487530735600526738517307320364479880082407449361500630596378815471959046693039121951598085584676431129150199629488445550903348253320530822830242061582866714942901658292663183572908816975462141006234057986429703668443412721254963212523995911669933447753018176684412478541856467575700462698525258623899499595430282241500229060808859835735630440182705550742081009855976056827829615549500776955399762766086256776015679528471368178061773501767512150404163490851005419144802247561039226087886883850560311298186551796776652943749177470465248982771901790309396881057343973435829897243005067146375982340074288278145255793819306137266416296291895784363505685437767317368833749699093897038658009927368814596109748868203402510916207808114841369521752864862491708488090759891110550588778521397266871808399436479808368642631145769946289677801619378298775805449252044662315364123396247060347958837321721864432560460598799841177299955978343444307077070424882059450482887720434101123065979497020667694841895596970926762852194488377064969864676035687612348681362753167471691888425212504914713227706690436864180970490154997211944101386278479335317654652667843760953192962408185626137374551637696363115122005786241104688734055789959629429795367986019300460591886819167596264676111778863211561613446021361277707715020673200492773706426170936658712220434357269355578310643447090405535046661269188517273486403467091768069577559375275293812814321439802497577552452693525271087796878327704266191855045118479236999095617461744277678250083759388063913316945020071800612081855158763316238554512822176413277954874702086530448917953535397117930214441842104524686505350592752178858571143404087439908790704315431344254295299782320212465723437447597355878142933223463461484418940957737921614080167926061465306046875991756714367452743068690733898407407970315229855971236986408617669614588245183444652956865975648515973844457099755032189339654345799966950518039086254422330299965680538112653735449990650671301591086299187872121944756891045209911692080908170652966881053911419857170102543990076889539689297478456808133271944500712498912499361186779270216378231820781374943321356360355539897235378402130557858078670374959006987294541625017760912781944292522386955155889131231046410014926429474523017164552841905023283564079230883297791125087522291862369867470975138578013178952358633043602699760488629918548119811221744140730732636972627718570014607834154879827688744833042783538106182378363043553585880423609475111273779531377774888109725091109914497987338602455671848376075161755816934393319875793932666549198226884909989247267725030338718693384188737841251525691512011853298471727431758973779137832107438189109710153504751592856921971893431270251346266506661704569416840846263307062934807653631673119508340048887456769467208667657551154077074991709577923280893998022622210759528616983096900622171108494343358819691849561482786450717802993227111545357076538249267755613844846385813453947846797525653022976944146949095005365669751944297761104947685004109830192271968804377809182543228560532741555978519816957765587975935069212994947473015883592927095792568764526173829256869453102391121381730898655946528719802085744577851670784866660154730182534979515302125741342705220347733213416694056655049655238505589653457674882636532897283314531842426440510615429288647233459459619886404217286336398634695423273324507668391405792707888892883914504729270744453762833996469325944613832060115271757703199414556222371849966886532403088374572840792122287851219838571991858289343652548766101679877322953596095098139932238722621500977429300937258239946959555485338377383782110414530047567449087214578671191271948716747739234778722840995782110570006515032306358852212444161051325079901008597184399507285859504516530731159488397581950034870663102824123983122774744830519957913838139841773171671633522932060788671124848162047340845514724790234422328814052845623458291948031911535892456051757930366971200790747851755145437119501439891109196853358834471104194503460791098983573514192567329525820961698054794689665019233773875600367459366392904252348740997123963712934256391458641689880702162699735707198939100330817627019631258817599783028293936521363662603999841801169974294160588715302300838642790245442714686107225700567729671726284178461390274705140942824150671979209763699510844657007394273430762673981147587842399000819418177415661961779097940174504174755586325194664503810947825571985081643943941198846459799939673828897037922701729678603106107413225115791391581088403105258938094691068392236730416071319962229879551693407200578075161698921168760330048583755702447775594459049582479627344490145453570526146347008647903789535773234777069220692211929091427669155127553446794923206021852067173774985626041036273194589684220300056971060447139436951764885704156631682787426827989872903195565316661133021214974870905513705984500414200662488205382032896700072929210969535713628383255836832811190808758971554804156759069310017319735754989180727964156711429419140517807987029639398299938486896819078639425736526448611128343972958133502053562255440582640765679549014556125327742468603947789717793101581041524004876700944744449741429518744624419561690936677748740301558108354615141945737079339581521469444475058134416040824290535840869004438178633126303350518487308359330470027020757311560469284600371449211506741526473209783107271023392297297845189922591932941370327208749551650727679796123764875895045620972579477747088653827919679280423856543179040016608151499182890199965322305014196039283033220693562610765498795827757419248278567168349205350039476224504058231244006004872403534671094842140095899836717153351690384607590624767262868826570037942264325729777663491773442274446738991450103924685844747652750558730591172420266420010279913036047657152479133135682438141806693801580291550312737354655105697090842762826343737423078484034175284469647818471417251196048436327841883714794084927513074560135203831545162346075686169379626278940438961468388318617628867117904823823181730892932712173391598541266249996799703225129283593646718967572329596667078860434193675325233473711726245376445472786937412738446192864865840378368131813367663146622916880238537604156577087161805758064312838025942612533774438780202633141605632708995528063971134651612141968824735562308636406748471443155627766991112483110878805870882702906680780888285799943254158627726644938998085673874988429891977075448120794324131033842179914250624412723573929046798160191955724868058416289123966714458531003052095621735252205990777246043692264009877690427652901889613198471731866461117723925548654299231219288428536159315431216088740141732999651513146474364795266695127723081180819300102484441729558077963400308283229257675946747613164554952007430536092097083335941394903310805872786904154103889148657293461639304770265002882502279473633231761836021430776006327879441447867783082817981107645361599876036506430532999128933266135555008711467578851712424281890309505806635727729352298004505763552520220425991558059104733897569601724663141880535658618146829106032523846949542482497221988612085606303481665129648529309256436437104081567260322381366833021740206345687237092174580028841311403359191916065919959090480922327143838505251227755357348308573886162625878279214783546279320651630572051929674048910273044314726635666811546913150796589022949963867759646855008393968514081282938880411713453814441526569794199637301985927555337476520681926847047900433165341800748458085980255691481502155096875728045633062362028521094323961077235309945449141961828476764631429683505727648756893830989785050293585571862411677398882237300703749380659134494426701855811372091416388094632572144295240819661731018874510268057290233170690234015226408687008522739989532787525725120539077383321874419895220868008326703507986295011005337794166233104859011556995632953628654793734834140722833611426427918403064595044400077892830041798973597234746305874770176394089624944051768979481635372945486607530226995707742478506107840367296812035394806034374444212077786132261841719487354020764897704196694904422523989892030503011794723566485349121438946831993109585603414714627747136751908143380415732909174907835638781320729299404204548313260621838959787937873057234188990671840090348179172475832363344120765652383956697219506695549735122899084095247321034160286454353668639995421265416988034594428040117162056098479377353885199512651561049340993745018361068781741539291788820272305117651942721430047642529406184208356999377128514950824300083328060231187907091442783833654476608241047396650151206625997815495791956014670001188651608704014593956693304468874867024553856815254335095175422028070177138862030986756909952559512267570227120313676818885054813731136295533796541878675867393861282458733878521740665115313288871208487277971310250358055787759380425216271023431039840245312702607652931108979283036000814791708554575397220665292092613650895393780389472270494968479676349426893069419563692881479311115303236031089558350771235078945422837123235278878340559382054824503958695158100861643533402530445814468649172568383642696626042227141027493022497617958722113432020630873796167506526442115886643955370519638891449731102695949927293888069965466582674239909708596180594444204953679471004674235308419929520620689054174328104522695104124194292946451301967541894037657244470985037342831902508770931482136301140850044676646720195808072254654460876583781696860287852191558837084646186088313781338219401075144492427098441613517849234963035799521941524288951390539701418654709444678525480075618931128615060717808487851500803841225737605215410431499725907322916909249302281985341472131256841896392955359841829505972039949138213597931702157838018812126087792764366382224812437975662277599087623439209240379622753717539654188380468508410714341232821467049417717618104390029502589151444349142873638405946679000656675421243626063059049384303688208015583773236582892085416808341702954387462478904572914238119897969069313894091725945871575114438407169669115939678705640142716043972145450997566625060047171040736725820031720641424427009147540115728149805423839399104036700222592484990137897954286729713871537245817196111713631586114359845061404892633006456470954083419525244211463497870605196396476464717727858869510585259528503812296414812311436423724882866624270863428371317648618262298262902406930033988332815577949680531156248312722734886127302423181412358899236590478432720344390469663721921213836686603955404444292604254956871897080839650468510271958467577141796976534873873994848589565716410582394613848639749498164541434551668512312495487141007289603119636253272292688319759634036119724290806273294094810525129549220941426584797169452258676454906277299600943456141043792754804436871455701471947398430960630625666752641514349364834718650501453390137918785204050018124019527371466896898489967416957887452731025037415556116417553111193600141189172926661161834247591120510340920226858669470524787603037927222419057611734444161506322790775986018360546948359990405122830969512352859993690537172771346894659305521461941907252248312612921334571854271547965108766236507849960047703564018326209828763601690522126238855216693441502468486052206129395964212715531337868305441000141542998320287972827969266959765856982243219523859107236711785812250328916716685926598991587585047870526532869405508600742536791539283201385175557911042417824290685139667835438598318452900174409322036584238233144679732468327478961252442667855494827746057546242857431434844690722974297210905002823167685281008837659501062317696269574562173718854054223219166914282478024579121191111767853321724636504985424067986876588806388105160787713653170561139035848252076632510465310480408536247370393078030686469682190744317496645439459987550441161905954519277035162038184434275017292617472441863001617429158407027205055422485557569381631518125436627691881161830197749566501941482606014687211841434951459768822954159777881653163415271499603159799559776129299582558097471961759584674629562645903062793726580294518301059632774408324798173621191982938587516796644284788936146734332855254710349909360933449252129578539164836630511932570593675928164697951396405469252992230186879121856608958375922056303315923077399007854038294450720263809017385252449272449495954132562149527636238262368256068276771548845806210021155867697404499038477985321372090916841637490266847337633203657143300932476372825258958381433509970204649915787648632866895098760453445953486707747080063887209944066612484595811831684878650927890534245938276431880157010501982192733964604878437296081461266269075608517965025849682270668893337593573474331520156037103357951579826870002256789672122619692371738696054540271993835259084364847166015554303624993550572959288182354404793012388036945600122494643783070033936544675932735956044553221776738922424248036292110285579360951741912132105883114313829482167643629523242045869565309482715470876456955427654145640616695669742577198734991265670040570585668609909196612117480923447032956706463854149081455466578742273576233856646281263761024633885198559471621712007690166781890610282550453783083523495366196566496514435197164326745962765101525868800178164498382357167720790314294484674922923313266914955846405733395681663141415464543589494744713450669272039178324446694249274565770291896964597588162962867269745836916776625011842668432753714937501128608670834146062925715794091799803002375738637997860787051005889313466311343685530554078924254194085028181779905060504503560859355753222148889722884737462879777328412321517980943687112289703406350536176269020830706534538734616886498277156352679791811823029029682767680435663182942972116947644617507931720837361928800325135718786298759476881881651340297290369808246441513563169915314125159009582296321013997767323311466127794211186076267136692396533911893336109058673467870314925823446047702774923363987863917241478256496220739993076320462148743940579708610441885808160562704628449936373231878648821181740947268044038187435283128389370565365475629824031078015892062093101005014978943039817045233815549274167775362707528425857927340533092663982601503881099147221908636240107068915823658051367660655060070273701297041254131683616383751169191601331775217392824506081340787761896599032879579878598522595734938205922614341402189041282481911807705649519907985936951106364670815474107432496361017158363762064505249507265003918877431412862237070208028745704852195679314794697143400000511314169348326523972013757700933274982603863701894489257962572789548006023864663484175635063364475907557275847345654650922077220631511324447336875709235385521154360620536624945669719491371570531226828313388574573303260620935369036122458932396929430094863502311936418372113879772244151948665916422686764506699586628060972077939667894801677782915254584803298615626031052842600027925697527629727758565753663058248231758311413941276706378454489308531414867858947433316326970724471005410442195000746106352878901807348512312620479628257228023676802452514494123979292057811957377136240147907125411860938790498574272916672056449668842256381053713871413980815099245351377908796028172261329937124983696826883186936973184495204167163961617100566827899428820189180432358628282128827074631058558023333037474294416456433161781545565508194861050036186154877293223183098182718984565864114686249919509453467428070589145832278820524076935980362302322206147075048135282833551150378580927458454847403712398343985385873357029545527349124034140142447604884546367796073254595441123537837358013015648717707969926535865913131346803484835277806701990850419185242552655614709316687438561908944428513577046308568757941832785975946936795787231099573865883454245256251870295574625864719066040239091706870323506584244388877119351173128436208774890368998016325097919210985422102518140312780231408303809784035715750376733584400193484868462100067644289216414607856395635215306977546854976989208601479189959520791592733187006353209539530356540277683490380068184965465027416646664819909993527419235184934282422095042609378183878970333507180543268195929065763546467068671391090290513095074463844645131628843386503379034908864581619233628917664627267754619435154667258596904188483254777582654027017193322103800368997316340156261744330765061586311009148650906080234425237687656660661834140368637102285789126409933044438717927783466570820536544041859444946682031218460138417774135911260484187203382940929772519663309225703108544637660820118255150411379724890980448051864328785369709457104970056923354785443765682277633726641308327233833984254666156193440091557244249830258729841132354011011512599457579163571846162968028326434026875311246779264949903374728356765604460447718149996599734214685693405438501326519667345427319385711705933360254464237525508303827297602776615124102592314266294061269750470715553351220893120168607190447617656135328362734052521948223626535709379910804853368622599756572011127435457768976523614168426731139746563833610578257154051296967733384351382416998570789024854678245458135625662494771462327237945176918464639205625814480928713532734829251216945219757634393229751546406835069809169574350573946055363257403152301319061565582103846293399594245664485632464038666216739238533461640770488793938989638635261227104909644061853802683423408854152882271374543714585331992771809630600104557594663170368806865901593109536365136633424895851543025487289875642033460273622093038487804995792715549079735061707223885507847005230445588313010861042927280863152390380134311711582560619449293722457757841756771215236180057162422392613126074230530616130726019328208972678240838391850586536707565741728629808153982360106879851189943327057145643771681015739420932943610138467964531171941321797675572313955465096755101286818761912667485451873868393270589065612386429203092036452747154688634192347971571738157489685243760792131779100709604497563176566517531436424162073716621861221543693080274684782112688005112694184574507048097546093131952260774909629626451000628125016406417920997684944610956115286849780680896743161377736209743351453691838224667107326685803659592147894055429555579892406797682778129842780706421817236316543701676107125876162829776196096036087864096670075755699116445142804935298406489202618137719303502267118504776858407673038947170110671269646552984874616491502659669139812158230031475958118409200414058188556537124846785693553228122558935043873360104438552286092570900274967181847244072563822160767509251687698556165682392553278234156700310055261394935748659661579748467690735348681140152604561489780650395224621691467058859390888738867750822124325924659353859825122765407873314985129051898859886302132354870442183867463404121245282859647816477500414389626146826169941357549802469929036073950804911782922525419766154541122149554094311840178647377463022223994859103146488433869994708616499198781046040904906429472117295992969277593104385972744121869404872886212551262762943971029393897706183969181628851604020270259834304199127938814507128262894700544988133719975597496170461489623631687626641544076674091347315038540719671174933679453872209980225494517018142210754197971682201327513627249728286086307914181260117677675678969608835523073057224897439491951271276392018492388914356790009571613889593103433269195433485809852659705616841728412471524305092735272328237870699137612748304139289163831915470623850801160162373961622282225586294184380504583000648279061277467697923462480943173386823703348966556366271410287752744152643851625597340344720718139928135487375786339972479241820566134179331943736412465096434891800516902859455932637739930764042091015697697194777585525203550951036076653939927382097442412254237268308329598072371833891047671339663817111085078097415964512330596434377372918200095263610170092780775855933715803149893986389459740496097337744020472385946642237639817540499519381842595896401063401010124336638883638789726612044879146775754594545767544741254621462561126923534941531917552128736259284414264167867992581705901785742772296790016863448726374876642310127049936596235938280370201141935454336428479362728621079815969242738456019672263414093438376931786499878687116772052545795135420029985371638904263911037546742093095021299577959259058331806071959895198599030152978805011617424247855085347284954836091363183438435661267052005637903729247651637408704892870297353743149245000294248477711427606957760226480379426738921052251986793985141928569757420003683263938199122857006773173128774021219806317415446618578912943486290551225626001930474354671471923359611239798079460684754094745311774873683904510856684925956630050729305959999444299936231207504611493045623647450816333150975805634209763117748237714189845176409601935963195635926674162865058580583900079112311416586960007335163069365403759419520327695213398355134668458896196130971039056725746836090102280954359258873291212243987454697568053477341706274321869496658689553608203376707660052207342256961599753502669535098700480229829294322324559263807979999377889075692568482400908288298791605675871492728881416151635312191903623852249092970542577271282216667396573554637005163752001646297826609282695065740422609760346721825355538205588811280946558101461850421695170734322717316050267206215152203837615510610973546555706571829293206870421166434717649063807027207271620369490030603592787722439033491263030208596410726020320600762510792670330768914591282723374294277271462128570574195654266360117467611438061000663671525445237630132709105014713620702427882926333051434613362482340468098741083291819320308702300361185210549443349745784482091227449766321775546055667435306076312395467309893664221118096049385921295379897851738276857601615817375213871060738199593048083173917947612810381330418411590092040499331510839572482211908181874540462965385003089445835181795157563229246142650488895712267004820279022076782129533405479872194451224291860611151357279871822411988104536796102380700368589216721242658677594514857699856081031651185694788479982005323211871743016741102589031519644208748765952969235861388822550993832713159476693412294884863894027349951361590208705423152602107426359037294524433896447788246462430498113868667862521927331527873493225604191955523301435817308843114243256240967258696215597184704474160980709583022760732687554943593367178281877162945044948982320057492367714144918736392922457394177682824788447993660636687995459288707719365239116378054594526732216236208735416056527799995230759014849279636304889763903917395167107399803769224175687698893151541837228524893958689605092354091760955858756010030188628090135120278611599976344121475403319543321753121219983752510319982760344249437683514276488255411678961378845967962278743501367195462148037743661207122862280690173755904690416292814242458143058804092699122770035735380121859726509501949338423383762973877081124379002664282771334753204848109212892416636387214064526197622927217316590360334985610623632588424913107898346668098659584886835787020196827815050880194238745526116706004110755545129026844414517478840315033998773318487236360708118916253340255845272171137576297582702381130397187827351161422564721348472201941775366631346692410785076508400272740150301730982317917981430537907734525532436915314307020545370049344711998265413201692750243225410987740129739239059957509944392326840562451399615598451715963635153273633108353550100719913142953218015373850262107406615642109963554917208622429949516015968443685649351919354319145948784645807907213996200767021313933052096597487088143042546467097303653433945460650975007548444921527552930211597442667650603747401927576849931438606282906331566332634592802323484716264632639690869479630539772950166300655731496344026472171231566048968430275977906369909503489559843718310862011559072596541315270483403859900941481815496276407803836314938930795851975262800411532753345168115765511236294413244857643630390589631900673422190047379339938565902739615259882943795834932897493562537752506672884056640894401697719816578229351477426708117411337815676915021692285859869101435413745787431128013058358364828415571012069192684565691858173931935031357221474917045451482759269932079417052920840013842650067335753720976744251048420278727451436457498735570075018709155854895159997819691543630690205511392081928649731397834815099762277255396141972718216036502594947431528320519599743409503625763480911087913621619682672444018837404672684965488382378623448960721470606504257884532897224731855212598397611572157581412979592957540877637892714523898472293054292787689566506674154549540012829434248450276254363426257111910699175532556907225832413297140263307996054503085774304115680124125966127149568721255205918804902102611186953204122972604006612429948465016680584806643414153128309155654860245498767085711703803579546683118791435482403521803642586934201537239558742158505879605972235120975407621134919641092128575900786007177786791194389345626582632891168709007116953140687390106131634232531250521530253180923717600746076806169821769302640656355325348311043233088026880502768444430235826607876486723307558448790962598908397482827911410603925405359995833042235974642149088430211688658331585950446010811545681281576670005692935696718589603867295564365971514998814668216234102154678017533042154148701047128336494776189770085611078729990034544046140634233245889076899454848172829666449010752453492489047346212283414369641193315669672577796692507659610916438374769616151048499104964994628901811423929088376502676350871064525413060040193968017041864012458665661153090604740618762294413121942963835917444052900623896137645130025965147305703847938170988267998067235005087534704809113049515932574933001959471522976001024532289420919527059487324245470138405404226573684052713807815043929747971449015837943106784072948949251768762554879228097682918757483107993080844541905566350898471062538203072490092684840590181518453530614500375059033857572182944114298420520742635198534547779755862305360695086565252949758080787842883974140355484127667376358123460184849679942116583199768535716330635103271433016991688581291812184368629644777076654746402746382939823212034775337330130543539673999117697449978279353605694365514393702064305117791952976395021884704224993908052741710776787730677765733697986857186403779533950493191451591206729840913174526950490441273346847861980796919149791003036839191141775788376797106627599323650286244092881813078089926864899052149522597763517094112147622442323553205021742960893126450859724746575687630291331061563337051426181671789307229840285073066088499699551293610245612820621074761547289892014190618739901312843619037771727646322913611476097408129964051803817498347350462169298761513891374064465099785197511241571318456850936616574232421593924071493948453189905146469157132892605449585421262524784793707671970843160945795819488256049190272230680385702333881507766081544144222592664107635881528113994535928777771532751391264692915937643236360699966857482060058819201573132504989717271687015493276942160424037925193837008439173647818604297222276710008105000021977435460704124402564892761963243246990126930852238528119713789168284162695278830830630930923739840837731485180103698399002446516783639436807511766615296374657957717994311687496507731263839536756005903261560701185507398499638181267415266673036819595928254054053101334113757275454375299007032390290632395573050644749485763516327667382624873538506098059051720107218231936609200895991290542828662590132722221066006710424936819347261728489930348146424497658695500852093905024803180337954371811440501521080080670689609250646733204646836427630643937177195179594727944193003128770117170782370907664636562634449782604806815703903235847047171929740451938688311765648839638470103368207156105629035693845091574630512465703413674817307810069436335257895253027455162321394785639580841678446136318705938747999863271207702013476046841776514308496441954091623059756649880222732808241789689832104445619236915046510566887424742926018573815060476999338077293852484202773561597020073454291737353566359849233273609078905977420598416107139314785142051997492232481572678381959275363568201409084007835665073589731469768298320019999795451813843415839121150972581222792129518953529341682632323678327434047010532040515964619011108200050903240540089904736443085886987218744514036856487732605251807075983134988413651123990717626006328117879364879685296815904914454505190466399506405846754483521821280857146654535183690242103697892232191311345063996993083050033443936029796528165543778087867101835315573690373905569900861243478208816580384786924071993595639646409997759546634743106972034789099276912859742533296770445680543067456487000543652326257762698337644697990688529778735360860895078726294831922802844892654930830959693222426739997435751105058398851133955807297560644243214381277129428511880285063515779941754675784076473293501282535400248544481651864895294509205002089006213176302960302515153613854853499556747804527524608859073665937095435639823084283531693672097878035194172134275424421738153759596916232907318186401491254096502521369125187280248454269500736448229658578168545699564914117145215197660947199653291275568364150969758658717879531368453433326111345961025739672809833332304115239399910288930791149077802195371687516988696891247194112899602186720812077115384482266702004661359863042250609390166257893989219317901407033681706979485383731863146305682395528159858801899634390017218888508497631278147292230166703792928022657795292191317314974242168602737781781253886972195638077383724295968244298257459329261552337869099659277702749633543563660622532789322725568389810287108126600418182519404964708657309170511924318561440452779651809637374878266647934743140007667736861561655262197684430491413074963448209960431367640798510500671597655933515013665414830801455577646538194915384987252155395550697997026227669309666739964168546593826447839395458287293768488587832184735561794929502586760154708098318344206837635361320958949254853136942206435162309100840440455229473067948848955591597070610693569156078549585434497650643039765450641354016309217883410761578988420291348774347668039376834279595914698918662747119334909990571867348678640868248995698249619664134212318693111688844112349344198100187883044405388005608189332990455056885040515551354410733145447992309410485949454178081707858740463316779741315531454990827581985283730117674438378934754912385239045175205436638879374773538969164632504409704240008257923586651653996174946289338916835476971684333208546126454788507609266239189096730625009492664043409005824285653919360139306751065892944215755560376268435467353547671740532772886101884289874792788026343142798834748072455819388963355037991088423220042803374564933177325465740685876969336301902985734827894005625814012370924933375008351923002536801964535359719011569576541610535011892396611387633030732394695895903537760285243790875726869400910759207220044711386280598958378060641034626929247727663374931181965228207531127293685881406105154414312560072860300165268283138684256527766538120029803211753054192567534615687191682593004142860526789123081780488119237588513825736074926291093707200530379835403585674673861769022448970052460065570005565578513013504910232213400429130690441213383528929137156515094308657802782415746323781917246936668310024430524050314838397338916011674094912554408015301043988680862027752696430664608354785067437143684084946130000689341864059701035256664614764519065251639493271026145924620101930167910925540189436451336407749123615914836068839254219336221190508517657857448961421438532969946994816613321901421174142684439920223973701563267678556453410511010931514100582670607496603691010380780155454839451913623604904109004022984845177698735778449495831409796399132858852786004471139159392781516174910618375746904990605245138354251765783979991351401695043658361940137468582749848737269056074581852252494857854278206691702502082830806261230459070146810232194956987456973689375993984739713763755121580430630746711930841354299921522637310851251441957997150268526812649117683545965658089428282250964474396907708683648136327509419814742171385641014548542567426398851235429982877017586766288722309818281543935338154151652328562934879249214192758365893951964601510968298268386785348145958339484584652367272635710239070909396554436074310761911588788114827009057781638852571982939690901694711564974112116512504926533271928037721241151916487783443294928032743797882010470526750155912428555071774064419634556132444268067748453896933611394312354907443489553936443138325084454497195025672274903095201262580313940336811650528791051242440613734757881008644192674378939828749745943768885480386057754610226602447874489831372636752584486615578606007903603639780502130155652512289412860635075815125093104245585875447839657612061542592025999228016146759496343305897629896524476070878285924208970834002302228019050727131057659156668050796286713845674112204644446294885455171176687039797761792600536193732700852520467692737077812811683730480726311565382767807537488605532080445759555950622624949257168618552678692551165221746295589895596409768589379935626881455115529469042460927323295069004145859435428672343248168494776459938836268458846226967348547334831577526979960725513004448515453857581073754041965438471708481497087129148338188389232696276044915853681510602749687144864954682208459289828614646631807164140168829050093269220107177058776254663182838277024913178199870630470253947316187731195160068192129248195275142680518454286577646841490308952345241575949936596158143335691387353233002235783044293218415357841025556160212726463584297782192461397805259023327354992666923154391164803982085489900375018622364890994988537978119458543496072476853583568870793602637107095120179016669637815043205768625289949473570268996923989879552064419198547784141647063068053747428432579908105974472099013100305331580590775653943998874269402015515503296254556520699055493483548117744755446538400761549329672337685264913164823298359887367173881773329417969538707393717373069300905750363185449556732648458893206097979823729455561583812352372142490079051976028954421292115733424834391052952132938929369627080270156064864586741935311350447716477878547639986537972598856694056554339721716936424842438413407832042702354818517363883282324496669306912048606953084075799354506487352624921201876894146959397128730004665364516588111105033271157503500526455380591620839466064880625521421453053757576495430472131592527157589699081277503097125258022176808283920000518999613373755436832755568375916714003277925130874738263972724719921575736344003079519103892764374346404296312108095311313352666845387843311546808453900748868390992927626046861707259952142450656553890207311886648358643764192768372780383406734153285256709934528553277849256201177595560262783430446755993042477437735560901164642425982631991786783402247403299498501075916052014532554164354649626221461605370982847962920821327456945384593671513973722068867989642851054760115384645728753836846381654481407464618410273317267339680701748145410594158410804787836408131741881521572455504053772118347777427539618566890814651090472112209107187014521799934706256363672629169874589123284828902451966696360861136128083471206047060828241506972236413065847183075952606783755091637913687865630920528492775199943879959668088276225828401251136995793172646086556141759933353328641782642404115857477856417179714927478660204427994841705089578111410302839230719055549679062522396957512320821597867420368420586547389333191940512044177998254537033938363743176215213900801547423048738111782932876630326971077101165136270911102414998723843367428446009400346355213281984633162576726827995583169951392541144534590713287685258182414235758519327731140910893955626714367979601402805250230310351241554279774086279436752998239800030951909979690484146237951837811056630538371448863593852149462276603949558044663711012814280416649974351638084943820797734846011186701421058576415017234631075983777996551139003193572300649263048619654912726986170429110224686936179414393694208099928017520531353841309343309042339260530281210320973606715349970393662564401327671636445803843409178883921247750476160240244699177843121169773553035532602329250779695306560450958524891490170116448531201830703368088941564765474459836870060217730159277718271516580251762486950116023774135848154915544209222227619726941238514913019066276166682874454930176110830877565296626517728568700577940207933748535825552935476832335472655953862744329223177796731438624658311764856393096980731899941118087476472844576943290847528649634633192289391009845059063201850544218672559021582133102315902827004077163624031806473780878529636833548072561426402243454529462931308812124336143017332898104617740000297760941515356326140591758642598907071103840208009552736605540660639562476015200437387943862431138958544220403210346758428724075627698416455923092069236713898018451854714929100395339653371730125186962305366804840445955231960142102034693329247805743496625700089478772888330649126598587104471820518647230861505295110839713537452528165975608832402573221199588041315316343540340895427546014162490392884806990046765571943774555117707087681781252161922300139996256808891126928140786101968706830902491825056689268701930527976525715458774546362299111907551492789994733169833043975408312912806012367562471621291623002569550584202054315573230607203604576079436199319730531579305862891699701824631399391340088904037548997855437307694873487338096455107985969975040011270500916211594768462495358398188867646575089081081538794099636565021158846769481483793820952086075127657611081955911419689110989208651855217420275847500783292231453394071449343729331606192583912983830189991521608343077631154895015533838458415957696221863667639258213940443350473046043866987166315612898119359127149867088838990746608891213316821702881818145253845205128219552813596039461864500316427933955598043936814979493959341811031658468797541981067727596134874661913521179597886728836880235330420720648871357333322429513387815354078108328815788878191695922634419575154693234200781353761846706677408043480232238559457457112267308702541999262063630908189737112663174141925173055223111298310353238717757515064894367415915515521517655624902775847988788459643058374037192588968498724952312690019589747813056706605294070206167220528483898367036211936637049904893380290615497674535174149370345248150954770144739192666190228062335678989402921541183815925532867533946935555540453045915457409750829861351620960871402282592102420423367018514841038087844665822802955018816606641564162624273918980552624425159932589808368725329839841664160070249027557598445986653811543458086591153521452980451527217124306839257703826699562884903859225116093398164852640805895811628734517817611841545325339455467379515644346324305084049422787885316010961877049717903665484250508531560557963176709676220134881278462895407774914116955078550089537363554958631852065410996304409655360941735378547205413848028966968563795097573757468818263672864470902381016597851893339490419991312013300001106741540792800481766451164275491851546977686559371489909293578514686727144935314151075267143570853389530348948000319936102036493501910360362363865593993227877349046236401516594328977537044299507609998671184906423700419736511547056375971407358413916803724665112381688613925540003565714052751628312865468921953948089919781467389745307725710714978149055614059266679736141959952204133584116330662517239377129026187300861525420880587981797109775842820685122981945929387895529395904583462420604537231552403886721907800064454559404744354632700425749136976037249236671946330075222474306174487145672778340791093966824170970259986248724029219315641397336073089145413099307396547515859888814606017418181847628473258226634194531427160453486698339410527494478350671024703135578882441272178961433867379064168772794132836613638913988257485913053787576413111080037424714723785816060011074909812049900135715478416035087699339606059617995899768373620243665938494376877555820818535396564266652783006658047728984180156076396609192567366497608204269976062257179969479193582057372860379279646649461235861766607444079055236491792353437598586476384482024608202466033339754386001732907677030575763062834538071224906406644391538166092003585858391149240110517062954023344696548347137074507546623664328548125346324104825736996117225193868514866260664919940656054728227980847434383934827676372270882504907998619483033860600829207504185548662964677810152912935594092332469597008127941153421079768831545724594846881511435113493776007668558984095564223088740218418651052653422494851750699854097066964238525759321815708689118293365207486343493223384249293859435465331422655798494787812320625694529782385527310243061940851078762518493942821893212583157292700154411698990545727961813351198540860983985378676007225525810002301376289873317538034864445919189557926620833926776758711386080283385972418952000591963915250127871645480568687383322059649012391716025572482328277816584148883365679152838333030148406557116414293320010083281942149961411977983859201706391779563141135319782012600286538627687336931355417959242844312040671441431809621262792704813703611254723430279078980472336317665045996304791543343679665880954460908970444878908554800769163001395883817585453702782639802908750594135326848092624369281255672814794536191616540374203604498337511716847366048923434526398678966639873063406733485842121923433186671990123698143620970472474446338659281826530772141239478588552099694620559407458206852471057755949275277855825845029883954060116477179311156661746040107861502629769140404967829575492172845582342136313075588978260119587334162000979624424709698057637317072173098930423610077870606742083901320685553408739048623795290824937405257017848062211315181497133304523248597053432075484521528455174474522027349298516899014367316177455098023661300559204591700101444692511366760606446394693924641181018439658968928823371142395270699592845827280356627736575896771785712238580150098258602231915994424354323339158049288328056413393091161322929456360117831136039940706886044317883311767805872128776965045631326664092134559736041291778089452044622881235128441258693121159682348494154309472963967028603189625992201832527293191934893100145961991643408542087718556054837567624038975879611124219185891578102192696492034287937024163325605274711909865203564917631061046444994867813479670975843019841185645472099411354434313973218335427334429284819195341089858749463483553287073092336898453578710545551162382304018822690199385258972559667568343503668242692773429676112758492572278904514482530774340380344286573619199968392447739600794353778713385545625588183688334768517984171138221301792879132857154235575380446636753562648939406372837968988012804642053624583861648748285030251490680879702862654560326815594128375591093573191467586737851577835426023163833433246894291205969582989363012502415216278660722648679642950570504425531499206451702371728749804161438401737598033699848775603155037797617878894108582970413420498727374713035546142428055875243784715843017802871719493960043747213062728262811645566953456555216092745269735927630905764820265858498440435024544164344946212161034514943302038257208738649645557780212075596737453100371258509551700857655834600976236539041651061905912312041563605412059716683095804674163716210397175440725508861856046666903347441292468362072619276559011714823354257149550511203705546220746278680106280674654313668074183192085287348907655344456744239480566767474130881724307314497352130955532082970965231051461704476836922547986240769245722880791126040039552127109849530766968144312974846069538977458765982136509215719355342528489611412961754371928453360719252941636879062263086469920702176825754801170699974552089493877723181760609383137701671060915796777235506361786049587295496840734088801101736240630776884918782903572378211914453690664946645371845059939750512374207177146555430201335721099178900495750659388797123864691241392707253419223781526436851010151439134055485896651384909434854903726297097919957398814867538012241304036514514060523241587829521212122145299565542087572987878502026548167684082506585984691786418845449955892416138463139503377849121896717082555248927026329055935070812299783229907946932459929618894542156585067460312776555890553815985701732716885960559338807295546784006279871030598718736803319200759697052664244579511820403745366622819636829893899774068438839035367218383785806060725149803223972339110560747097169008539475604613355659412840770141670698547152176376783145788717727599862951042025790396641438141895382597901492926047295624076564915738144573763587493375051298979383138090976280903314552259880728389858673898684152244944474994162620981528577283019010964588506507282563154174008946463453160396091037668109572018465346644966722048514567690815907424262135180259606679100658722963120943973660138857891093392437592781448716658677261892538426785971524961005878218059030392150880610001203553488155609449903594823465790186187748366358671187037798418617572801195682739026331622467521103278559857232467047555918190966410842538303214004475595101695261974255226209465799507178807491837184373115079009725165872804131630299426267262240271590153361626145519902178227165785117898100420815961974650380459994009302624620149030652413328657690239323733254686398438295653749658702223914445455537578928175530180088854276243571287458390865534381987274090989523329253879577777361831053768927533203385257292593428058296705389235888360389351356676769685169845665988709998978935161825227947076351440197383010552059704134953991786097884053285563370330185725500939404501841423248767545022302327368750803326217392022836431936607495549753010577249179268680988447078525820948295306805333981979131971357668284632860902934054390385199373587338145929178149308910793237943544605904637137080498534193373081190874639131121744966982644265368819096883322189161866852496306013088143135857926450878356343944977997884737883213445410634806927827953821000811169704756153315600218002811410314576619493288229329255560083773539432544790406707155310270235331268346491008682084428592427498928239417094987066331687806426417927719960873203338437715440090332316317754757722764378239063424298107384284989285423431765807679753986372511790396860075923738215333057901955253375694802311337535042630747729622022191593977721636881070725034584977436465513660406168663246896806869544953018370081201270079490770499251384918137246983198193023192490256900656958428117005401319188377232760310560669405523518321187167991002376915298894716454182574509845593453975993524942656486729940488606129698668213783132725170184255537271997304405522642076633797004870900416935795940075286961011120780422060934718002726031596737935936311933627053031463381854856182999433208476493341662813090653073631006714622882468634907402385397523654193203787497066368530492134234325178038039273934296550779088410252917537286005938449842811109973996866662111020058092688866891943112992665608927109722588522420372591159495850646471670966480104583814392783142984405025484442752767817302157431872761548030748181256749488348721115451551843132902459767852712291099148835693074405917062846942845334842900235469906541750866082834805341185379214733486452937887016404135658682137377682254493916586717759573800116873338942535918320698173712379711014458693502023871565617774677325149302152302641978941986413730941830594665780752175407905697771698279950590375333918390479428689498396978333886989670429642638010263731561978168702144049058321233362169582287004620437279307464554424049575384436088700754773411486597110353007526521295567482374202138103129013046769808871881218922864274026770664200257198731383449012624887098768326954280302855605387286976951607944315908783790224743566878696617605930157453543892234812197670142960758561586292993270085476787842411212585675799684082625356532093433883354731001564407629915219626457191062903250822277353680013022241493111126010533649826173985753672290594378202674965726468034705319885677680582849637082965406387670123729186438625499494379958002598569094519128601483016029514966452498468230043157716518205816807046465697352804691407579176155749429732222298044698682811084869028865087623448563208027879718821040998612563257552049302778738205295803751267883575399191355257851830366795864327926745769271396420335920581524213762150716989313400659446870004973492703113033289219177173366268161939649148820732572108649159188733069839609534885065661973606082642450997016798662727274159783026401959928674753453356980395005676551473844507778729791217847076909447624546451373739545305790943903434862675638898346501319218304774995934797042401756843949352235877536227182329970599862064564256289429029536442963450072027275884027029656203098978721400038428607071333743340624760169877049788683132019662382243164873256612542310031043852528751431352927014541971165942834064720600824276039892746242373803758982255004235207883845805845398748999995716833153322767023085659328946397651643447263141465375167633539726297194268272107783168122510062466507705863510809651146889759898648555145128650981001325604094620903892267619374863018373202768235976921015499330232470824298083778584793251223291346458592022258574378286520695318421919167461197268475388977139839051685869005959327471858085829531918890075813910721876158538767382761163661981008196118343800272255658326574770719968056216849335736552681771338427856458066512544232926731251958988363574541613436020848316301778203732268492367314816978173738643942008505384353584706650198428633689485262498431127455358202310796386029431829890619722940152330861982538157545063664716387039338515776199100722708811673420563981876617865796049614317098909503078780074940097587079060458522193447919316689112985912377343300722415197054723144363651719315600705531125748420973906791752096254101783737244707499315781543431354603736479084976914973916577053828652972961042651394292435946454204376105153518400379449987226543773387048847679332327564404534607392082475780233808510685631239767792076908359813817340609951713474898369535761610832506199992514536922088124252846187559863729024734651278542212771358186869141076872744931467893700761622249237735864699286374541624343141679019377186376778904133270676290022704030299191940214611591686397892330790760662992579646511152903379550801095424207853068772297595676840053125159902747094042622477399672349056580229469193320569007842504625732986804921599519005478578189901851039576293898052793512189140508108060988786277389085849235362632912988468600979669216119673702154568863177954980392497537377951315150972597012839272766583039549728294716372462620051115838297380463581682661924151200197771457370750940041600961704221098713279759936858586434760102707342332215126293385399435267502409316485258912088542376626179526577790859640086460011857203672764181150809470901961358775065139668732545035606942187562216063233289858851049134922415666540194492478659240290109481264760978251488128309054981947326999411108351675711019413301616418265546971544036409292993976938265082413553298305676955548437913622787387201778926375260684539230252743856157144081429208804905334973003771861651984929884252112743340897957756011869277227136526544259212009045402244630484013521728036179352555661912019273448475521707870944420227591063315728786932161055885061392354638275795261565136919867519618407889335066009150435486861461301971196669972653881733138731896880646508219453710569313272974918361314264249009577344776820959258193206895549137642767784402888410318476239849946892543592450266412756765148687263943387197941885301580615327837926679817029851246232753890307080497869076704132565640116200130062807540299948732622089655424128454583401745659816151252183779597213045710536453312170590042700364930177509835399912353674327462491229118064451972370754883533573499418739841028009723008945653987316936813113322808720548587390320938353307795005284860341691745902387701023093203870372647468444051827821891124710488380047770214923616533577143218671387874817452169566055904373578645225670546538819105363801268777007970588380730745586899276475924307746007141214951294578895545245564104972795015106449450425930510516007414956386768991619452775571178026101770652653391034503693128477517999501530257402316766987046774838049889762348688327377476026779802217636984608669923206997338000523858122227879088986317328091551047049574491975518316510110376551064319091810839867007662345620441101512822287138361370299729352116633841847972603020065600469682614192264263804619401913634958207805468156068864071587117530660998344352504560241309932472828708194935573256189266553739229575485804079315913225300740613646721131868638431183649695263222361518087400067344655059836295666500557034009487710998876105851597861892427846283424849397887118732204122899594490053789095539317416017860673016437163908167212709729801328502407065749948270551429224405239546947645410294129970820313106041516404514807606234093184210841771421992806588995816029765844092784746917724375817514197064903620075110125884154921785680764061198166704707708194974632345338343661161202728335681552594436908612558926706475365161811133949617910400654491009704560747792611793185782893086451265773923590022084695461177900521166656578221600176834697673525600335872640908185272088528414617254755479035495718948428734117810398514761477571168244370479804098635823940966804036336313648223869961826854481805413185667601351023636405023844166236475146665351326275085863308333806398651819052195043103358733654436258277826645032474124771649906004260231686605585228545500336303451516384841141690525026413028848153631459212856197503880135517146572336351945687883696830020592588097999771102359402973456460828581796959666426681752907909771108583867047445796747416049841736475841037684115602155228391150316489646649495197808769399292115016083229542898621076069925050062580316809861669253223181714689045098273430277707196881506638564946948580849419639701347836770791291293808380720483491945235282065941164197914739754221659982366423917107106208686708390322584334549856930428706581371492865141770602885801775607902634499021381292883886824466203536290970552484115547969971454568426286914961083842007922441493292536633826876024747240420924064088230248071998846813777744960597192836539754282023553934422689548104980770358086278297052497900895887553784983569603217636188490466186742668079737987916274729139604013838522534704396473849667645166021857877801234109965411718037821233985233399029428349902513370566099744114954786854813483594130556713166913079475579061874987207831565323799286315415212196621176961473730431329743193133658138485306340053257617608813394886144717247398027671528600125534080721500126030663166588168727708027102681080123239466125963329787249251304777839573326347032751076274933954303852852492476699904375325566829865427042215929317852870037443273084069524342973492920856759293555524023175945941456919296308763888064488266215064616248902056665121189423614748357539322698106662351149325623796880860940322034266508816571102076516823288886173025778997947408961112570905006885279697236029651177721152843118401412356642315567153834681596546778737192085315282357969784263170070204117876711276892472456631814565437478067626767717454684587599873069056102389191911567068250510906445815697727225411200594803884032466220784305862727890785705760885823977238803458057824556666112913824040167669954848769264867241595006494832867058814689315343472670394305973757800165050912261381256268792360068783547036448940377317778519685846043366395678750960022907115075842118297397667092263206843281706001119252791597528151248659571480294277115514095812975086541902700628768249293149174891858217171844436426917538919705438901091970740365241948814336012900662761297301385490925638559392983919637766375964552635140855305389051134941383632755445478157464940053005110263116478195320742903034384006308432579858598781492305049389525866961740848551351600918725149257107666771886123508415897223951997074208353768315007649711401205030885330084702087743562341305080398114802354527194567135370896740802675163542935808761019679756019180813320257224464456630279003964083335525322826620922311022709487646761063184435455076490838778364170033374611849935904258948831519166363452983021946040654961065884617889812453712728362980273615919878856601612280373823762201401636957349509219401184191389250577692155267668110870705903043444459540635107900937715365333416934407936103649658549891918759539319553485101727880993436678970837592908019697008513860530395154330751443727513010898193537900175666828574137278093878571884024861292101475966403198966027883731014267776055617268061311840577526432360597167778607214977978235811411073271012623672471822946520226831970104089587800481420107857711945801319384700014933692963553504120033105249625193117414266954068959014833009304397060493233233197700422283960217167301800823972791880241388471238529472792581708413212249920364349998923701906610856883748190531113119542638675384123458506259056644956790122227174908201904452033282128213221040399550385848824849198299492246625238849746009963780354126870616734572179243440476686687012574994945848162512265797909907712111235863644407000154713529599545111873327824089368277955879926558977884341708258383018865893671674520357873713762684220811519194677824414058462707202482198503318891623795770576696211298434125610229932714123202409111694936371231020624420154374714953688194397117627359191309960244406829316517680111967134888226804643309679267153619363550964759996151971025104239534046525178688822343363719665717624645140308271245678382653382406461718041915062836048783965498875848346448517836443675553299508343197967257603754874331758039358646117989063396626672854333942407299371376385484803534630445843940850667914666677929653128069023607008141509641387857903839297259631492019403324027620558514516676975767598308499389960172133782607999677163081528947947961157645754781275779268689245977766490311308373899313183175925123355869483729686498333816593656031965700231774582209024918848690470440832268913515073013623173146698775016371445175492978732240948505697709816187351647867187838318561554903756100508825881899515991633769717949435896154328558623955507585007372013257904473838831175272279280980085548056453081126264912285753934640633698596099287878118102390843330148517480362670134306658391446808014428493038358817406863337225076550042784434636490042223168472107992730230156674701044295628116395857827276074847546678315782755103236946030848832138337048779825448959433878746710167078787644163564058431288277328932807867783100943157027329772231466814150930588820963321501331386185193267571234544748054934161852305293218728572020720531286802314544388104169663377226276293649627977822063242765985405060910441089805727525220100455799106308468309565522988000534251926389567445274007295810125977802128951671477096655027805347690712338924110907416339406582747158594783701009866157567823056186090290683218379982444103422640244988500091468775978213518875393018006029669967644599620459672393271472403976439057338583071239972037068399220581020387275588340546832117802202779453009977728499745718038111259464063933097611311114278476671777680971107080589969306762337685623530793436489445562420076507490328781477639021599208985632212276275427325176249345384916795932438078625530348834257002890161051484665198794406294426544083828401834867306820514983755672971715122844711847267753371270766913814024890194367894889551910588306895119485012468474923509645869224955073972993984652621367770896711281309787877186960460686555149653289997417531755067596801876877108372205178837880667831656726738655514963710777198091174446853896768360922254087495161547147214264288414465494338139987817933563677131484040844707209987682718304688896985688733198538117744254432869469728333263611748698616634164158639331282337747330035730671797798475260066157921964614400571163039724436533618031745593874613551355174309657607536402880299664041873815791391348227845364047738770528875545890605321439178783812770712832466031020536781066424917156899330450006643267232541187976180209554942550221651152179538894646378034651771044737346067001991481409982849623542276271943325140343908086495944318958856597815900125348326772547800729161547433685844420999476744483770357305013672922775262288417962380058425369859656443155624587041919382046866599007684163004435722977698620474030019789736742998632634781461385166049204582412382879169538081585958136356729208021058989371632577431728711573410331794549095779470524749642429300927914130497304285952702540321853419603995214345179051211286705121544120440219931588577985927019639460331700093734383278213117980583095263134964156387546909946736372626921550995141997405965128395009138576385689333872581558137324170016044133134103955166220039786366718738948642470610516617039152370913989001064871192032014438434373071784518056251280426365781796521593036209630619349529580982129694406680657004623206743381798927084962232457996381059988631861013522878340522510078372680061444984071914763035365983645348659521836301629133005183083419917079245037137874397512147720302445938100735423761696798607942020186289298632172864875668466386681712946526573930947712542480481132841456268125823139445775999492726078948060789485245649904124941927040667165533960848600294392776310532201865853086087791448673594640804676095449626912091690463494975995274147964498770619148604367837533985572314701551720383602834667897264567427054576336209151267296405314782515798935188883086060005328516717402990949669035087714154548092719366000224928562975333211875923256221654218634798152645364012440078657175278991530902281239378452333054882620052741489374237562112953663799589766817403722955035342981425561724676813007390085201034499608550854857040542134596266656743458912470476156144514880272551274851165610668342441057676602086823837757299385400237168466032434154164253142484532941564422797659422082162053191457382678154250692572577589838662773812912876663771780812650522310285649028101284514183677462806916361079759322880423844905100536809943636237628797654327131844724255152308750185126313019671368514319458003172385856252640780932901090744255210235425048400596385456679921899848983516348562586674687784265070499532901030464519292956815496075351297183099705007370521328248072403512032021034158762841190638014361545436382333853881621809157709457506822840022324759884652971230884815757945135085341976654686658259678208301397341490602785437654727004458647290433661123418787093922633493091479836965669458600927438389016534002860850595553233021845895575132299717145403652549379086794715310460296745401246495556308189065904953939902981546826550505068062240895828368686444483044550305040331408545464600965124140149923888099551064126115385551654275842683309276286562458871713854447146140060532448117213571176241476186620852727591915612456698602009719229907555861830741186055190089594806804679728044163419439618170199589083921362095568129667922505046713292641109959971434725321368527531887763917645001813425624253859625258996635850320182320533912409036974837595008135260192771673367799302861159100563959859596414993991355867650538733556364939530561836354279234760296062088719177205291738505883775506320262740242240817655997169126652502364710380486851710905260206426903379499459121646816578915515182434618985214072263404096052440466155834065279008545750778749226530428434720006285214941100163780231869003249688167346279857551909332047311498547026597405582805301606252405849442358917075705381407340275785652894804656339553569743645462737197744774195735880358127664368790648587031253906248105292791794268754213330337662382804766274413886092180589877779988099731074905884607330024135910024530375960566969331887504823753455755013458699809689116922064338511658852605134626120986347449491278272615451477447625072994496641229863987423945995792106583576170246528071865934487609526284079203746108484799093786332610796335366649136584525230890014222315305449812271584606768892711277115098871124999563736442662416876334393633922620284392775478571579976282875479301426427198187232511057126247998595120644689846081554093853388696196561490844147372196090129665752846454933403139282371251582178366176571930585604838205952762136925665399361952061205696206336542724577378142900150971661515683309194916927558794386764746161059559897254180795551240842468258852878421292863465587455310422527970423877721831744309610616625344033696661574753377833407565393537041858123487420160635694943678888012109873405353997955010589705851953231083771924921143558828885629678668230985110589555692584948186606251446919804830740591735549339255531341799823230659157141843046664709589523899714321040502824881924146759537475952637500584398160707353186008007374539260228792677659002397681472189639058320949450346069891443730510387423134674177079271831122236285244384579138140888927750938691619252084232116778507417000500014241427633050864405895212924622316368790630415169876115085639322753610340946489111242407445853575845892392371382218101867902063236797669997313685840694237475504316609170423718339481435162008413445318645280264704674999611016988739587485416835390208871791724861775476706677541918626165910004700337991670576866743866960705285629637263106810288248297734052248559625201450632788009088021252042818605083611178109455936779132268826823832025457004150743257260753389105907902906229531251226447505667631268911877438352063925104435186837256495314201411086899900044288151792866927077921990870689332933155221684333611996852246712192576342886081808215002939345338868956051251369049983683700545653061411515765231649838008497417234018402953891173255852365194009332084012001736194269941519182085113748179618379912337431903417057556587524196506083836237361161795211630825073254616196364466394219445196400414872562516132055414020232085061869864948328558931677392299629503680033774068766656268190159129520787915696233411147775256332033712348613596228665246399141898662144549940784067693837052792962052789995843635561403476805831420541883690217138483289093784844607773058222358705900682141257940917473449062423190243980436925751042681409323182342818489265772290227011475262157510442391632209194682769949116263962124991134774399236594579481102854929065146194032095628907384190849564703774360727104014523635784709195963047244245034174497943256849270596305699981522134051503818665573843030101985789178286261836295437750682288596215222586902242766536251225321539197933456900850283862657713125261007267426341579330909349617363410399781500305637053023704801025254409197739009313799566539420901347551355285497849648285504962625325463298794084125164132578994780635430086768530422717385018354092681044792159802061823850530503090537102329218902568614866817563928963143685407715462819324149870809531527438989682520489271019704758431357338100574476785389011932727770782486957098505171754818065019490268780785244792014295708938730038420018258179350650205367388000930344891939558406797061986230393020194162893726944158721015817129037576102814990681506319070917282255648318581923291480401426930562342091496983644889960496812413357627082512615643924961814597425625519805658860174131954989299921313949076733057650973311374270062378804176655990774223117966517620917041737168149091971407752395584243174143640683312957862894437326370554353862216317720526210266406542863244478480893966562730406571433974255876832917777279780634379008018955663579275269693097769634609001969631454155752861424582190550805984235725250271986859548694835332619865735913264164333608939557582592103112752760016862299363441175257181528938558884048075203282355352879245971386509723173780134162919629876913029014423710082975527153552290040435696637453808999890093635189383485859108563718413530900979450697293691115280606070979951835653309403174751749341657080736052565545475463537038487033827027285276341663650833033186065605951226367188750504901474655416682729420283121570198806647221347266526391481857246116753116807792367474296945411753221068122090746576838617754426361962706072609360806221256742027310275373872483670459007473657089816979281620734516779807983599575499522938846861282934461334539822034080584494933212513554855619684050236563218235092068769782676007812807756639905234380052350763565338385563364196954727010351075992724660686427430965094561197444272996064173764705168343027401262727554032997786250008918723383913536110311709312765995196596700599955249946803034039482172538577544695870298278043502871545610253681931995854135977581818837263107302352687758691536321321429441767850389692172157664546888895143990279804354366481503808916259125517769979094884968458228542904793838063209013938036673985250984660871882846195234245554357348753024374294026197615185708471666471153247645973894637794607921094518828974043701845061459340960033952963734708047405020226733595989624343203535434101676704647695871945241909959595989230949669755690576900460132981399969011010178897906659282443389348589461001033342930469714901314308955187646314925326330037834702457139320040574152550752964270214208597214082394321022876842434225403459846836250236378866262114214026021634228944592770403165306714990106727355025154339034656873102743181801449503985365590170794468743331808250203862429125233978716969596205016102103928458828258039114477348461691373853010024703610361152082814662058296749732310601288142261201993821013741982781293119529108515060691868578790786611192281560642124343317756947949075962287921919978872703190173726476302458195702499236804725242235412403768592701308124808736954129002722161874877947912927066392899188687227013740274983387812357672661497089870698856159346289142158093333930146342194301689922743220317681096338329764604294474240136441856587625054694705809497466893335480251539568046262951056987305361656881258277681035896051071057306384684862147849304025821847691212138164129963520457470297509535940509668046787827550995483522210103492660528688755176088781085991378237904206230389068647897993569129749105525947293640810218261350822408473637836354280254697074299123949849024241750172062304964057366479372491766933397991106986436597958590073440316434841568199259619728639135297889805706766877704475091438771293627059485854061509058625645729497852725936133702732245056610724298527801102759466440404793674680922030102236913413538914220288256881565663300066794695483779929507672624493671220463337250557251018379907120079468015189221872488925282841766032131130157977174733667118354107390955026870770070712260804845384853819311434313599740699332267986399504964930059318862943193083837237118209809523664926807976194050522823952661661294722348781762007397048240078551066412472389369662311484484577767399120247903384990653755285178796248844245693770825385991937450445103789006094696792143136747329375980365691914425637794469384943327346897667423659675532889701829676874162273165179706216489013697368004883745659635828729589433149651566557486171678299088130134087009202280607222415122694254174962664605113833331980702690823094542054478723157156436337703664429236599252390467151815469871046613753487104844167830188648029448230904036767850254531341625451287128127275046305658209441120455650334281837985446725378766870571170032086936152566339116791302663347237037179113627912866008286514412363998300713857584013243573177761727917901665985285169366369293033688563945646192732160784065916130286959648699243833386812024624872594323517247485159439972554400217785426169445619307367135533614914206518791966416226684008801160964322947203419132036553179363356055175753452561054367072499575481619176867333994281143442556440653011067390324954559997311194713462780111853554528435241640649978063805277947682640859598992761406994487320256745244259110638542599205223171298171577512953730046084635827325403907407884672169606202791558814455811786466649578466471018537374818410010996621741178158669863033810845671466522005943584162506218312543378248357065764910312114174441480935416368219149298344906016569196885567272704653517862020306910184743473119136891126228765929904518487115977805178338556565853569849296598330259917085030561297742801950214118281631730484950913121488921368653442475292849193697722700025691212392199031078799340829555784096747259960829818108189161646743145411605334882249171786714543139780104862324921013617638299877853108049007838169034401146497215503366559443928883061734677046639618615833285659539720815816742053051116655665113048341833034553052696215528384211323506700461415305243634084306514514392194027949866603811478131545305062098343024879960316159032788517871611748638742067076969161669878100738252201060587977010257702181255921418428599622001707041102352624725153966458960920744960692214898371798117355634312743008704604591886541842835528575802726728882038203074256455121557408725841445979619648763984000863371956778058100237916988419017421793190962093001905437139952239101414382305813907989284370666911928150508055384433702030799495910583754184763414245457227952985966567348746327395925975349069265735735374700983931199796902542913817346271235247266976658794439819638450359948842092349024746778592163251727106901367957988197222247661082003827999833387184846916484615710938472373351478518329683053359028878489647300008787096673978980410611099070812706375334979522570596252050076790813558480721617568772662075557788501483903469426620633110262437371117091478384719823743415879559333494957273738399714750521969580929525395909080626819363217809609838576436106440746175801978229235817684388570545533381156937809594583149775898618462728607964707214335520537751237984549669424080026621731373000314974265199391884115612009653031183947896386563565428198391611402242195840723290741129296566417906345613246224758964105153487828442984869244066119674774100920124801064774915119540019973379171823590122399712092831008012185595192638210684874979359000625574717083218529804929716199739182114616167471623332078972730100408992219357369104637404158757607411731554099142219820381780618477969116129127299724161550846210907572225485224676949596775617120150612627312979090537550444249181194318788487369306357697346268033902165457665662172092098150823467203925565131039558059425450046398536100063278439724298735711106282069751167969260179029066705286560405071368746172761541288477576117344873247382368168237134726540290991512219978891717741820507997331478594477936963899681297753637470724569360573132568134176375372515155668391185604355892437803790609480676546537291766902297453916357274649160411786592334259870352766263274697239647732817610501420989584062022961840537545563138133021091303604780482426584849855639271508074712403417173793642598562411421366484963887994509720755332153969683643440659050456366428779784412327786541904714692570067531659280492092398739912091885545392464628257482180015110640555479873084832247117871408887132223422194690984586347844892395853160781367861231118613122390718638003536035909762060541731168649425388186784524437110128850980640540094880154532431598287645810606379896233554622169838204737488140174652959905289931257170722076764435180574684763348348089271237485359363516593985843832818384497468260910840789569755743304859955310880619368145792068404114185923002294959350312511913187179864804447809019695848053039144639195667389094076472757934670329829567522137470268142505476206556272473397139850919713393293324943646573798574957830365207409879261038712961920951051533890557243985770589454941681830226543853140349026903939502734128693457773864231534587029426080023210202033104815010242312427896671949607164579535496962575979211249611076995214298104793381793597487512553860583699148701882797462313635244675610093159559985083124025894705962794994014947750380677307430694769776942697391655687060845260630229742276158684495959015691495516561485964475302237871716460166596309607468802198744536489152097089068890018438107576329436926470116625412896341237243675817418255609510653239597218977644294451089134480911260008577321655228358011806103528400993392425409440974006676465313979388055413108596964038108020968529521793254408028695032296439231915780393970997907295656778832789368341908895358161269080652601707290523606576966812621635716067832053867545161260902978411148983927937367961729014269770914372771360529197857025853319739858858464230458550758399605142507647757526817270746938749551042476218121043943003541890234694598180954882095830598489170499973465180929556083121709619682804564671466100335099672067097591516602896564266614804092065120093584560181145124930734820400141583389823495823330756153717195064146152952002557391889205009538555576371356246132432092866372769913061944534923613435273623732878901864894171368713728127606240120211697281371164501529768218382019040655552033504428169437471558364263818057248748578581396339471697672019997357888822267029176328220165607806589248354607870713044266905922555472615691954114925753532753439564688731052336278864513533558450855548784837631175457932456512343381512263904925044699935094937854039484992830018331650247625197672941984728615954757094285795155216560968820215471523692993844292928139509552049067526889885156571028645679015374309207065840243769152804527271697250495232919481574690324291982793552016722268630895952408738514950924928315639211986249073453291687997071260639293154918446702310162822052191850021781277971482640153668280473846072634247307490899590440998044606391312951975158398461122534714961307660091546752279360376612333805723999731319750654936545636675501203505361101049768026393096794320761901786730937722185084773062623981311117797877226612005465827244507948537810770148915392547354559794192026468046460693818500230741866994278630303685256174166299122368383184396657533164335505525979166690879913800786961855019556226065178127130751323831450249763459011891191992886556901515329727673998393367435832710707542775594995962025544288577428234586076929990486678228566412372091876693371559530512537058784640329587102579431756271151954761311018115017614273503158541979352448960955046834369091533976962465745898132121741339976456215623818442728367647797135238791071315212585079311634517959814575689769918795786526741339482793371684718743831091746084126114666465455160722561054035418458598374025752947591405886911269351876955746689418532705890048954358962604920337866846041340322660856334489953038621744301105168666761529077625743583369179671351919588430686736931472696566290175164184219702683483927982289878274386525005889219703668051372303181697813113538716039773369682340639978307112476608939099447098394938059166944040686781543489747968218354249391047910917977429010138764204543586634694458688205198491379458915039675873197897042915866363175790332086648639960724578087016103944281251601970769235570969806698837511137638942866569272602118923767176888062412223077515474141277324470410836070895417629176006736587453702684548058720455885844011047000139677743034905569422756677738961478933778166999991851845560940601499639143883132167581636890474403896995557003315608229676070455426906964478013755656733046576229212337996528769396688951790604030876803875763428067626025076509745211109394988170105389648346702963534265380655753397059969428302526868883361038807768433518584140014298228614540456722593127200768551257108478574639048572577543263209889263596878444143081413569665042402412820827951086691429224597871631684105583178932855560501336248592697962810047424705744312093128951858026857556478521982247725050397334988580515969148117361373394747201743659580564542854823348011361343133780327831947769646034049267434719203823450417537329125387288891270620006274841163159195464630381571318974244813536041020237451723883388298291732889176240437138684869575906740256116800918246656463812551897632166561006479522668817656216845054909941140365918040091306888582381080552362355838796338618208804439497373206849908614700247609895247273330823702941686689244875056769268585607056876062201703016919482492332467198290856089475858097632796010567076550126002891520611356760726828014219306461259700868122947712754159626848830479491269938971605865207545589095915645449138465959786969099302230628457011489958888096746310455697870477304787687311506578658750273947164326818984019899279681817605756463094525295479101872289862370129070686982687808747493436995715172029393215591126570505808448984661606283112578350419641753525007246954800879089291816786280712167121588624990138323696058816191323082562674145835941122354904938150371606228084629497014681251463799528622992628089018818262470176218678443956194103606786004080443900475184198520947839969417791916411378148714622402133991082916331059896275672780363182101561972183726186184193366295542940829978477889789180641498274626535275392325478473113973159988940175719487038430692693013880442825212907012919231189308026668064866986991849319264261394873749664221534745412224382577825893437152864228749664366699113127307571886393170519013638748062780315383043623498880911464245766342597628137009887282384733972743020251031142966438766184373363303519243750550987788332210048952799372622458891723765762396699211683740077561311548870589401953216150684692419776679036942638086431861144629828142816806571548779229722401034648153122104271708848928219721372399541208853181003034233517184521345762701756882124971989632011218484559001282668647311179880499278947578423837057173851230546776977654403906599191143914684326750266787906457062827811730093176447413739455028111039395213746156145252449687554914280091022596732804726131642934031136145715186940831257515402385286743084381037154297380725660244971059340986987468120990743018805047516530631528035664512365257389551994521931842394119648690231753818376113150077422527232862951802725388708291692220638866450045610112381564176052725427144500931846050679150856680265252412166471671072480679867959557858423048195469777270032460003619822956422596427319587784694184506925306086759802552883562497505653025036157669978980817557344405434489220774102318568830598366978089786853925031816966897204388958922116150242158431078811267016451652456099508029616813781237139963590003611954733278590073661441799732976976901427918520916561181397249030780960178384582704154979209785813724203467798179443140273640730404688388846178612627198161173673169772120622100977155013299329187129775158652884034418820791581452986680294520758166452925104065937390874764901782972125413607553990465153292788744725179580000829419874124750156866902001769638747524861757444001623120528401418554075043256316781993083640912999557119431116835004346268227689756096678740406868075951788870243013121976912977744165923091089647340305353655789992226545844964842366687332227943007085528718665842548010795696993492794175012332537817519645779294793237362504977670182611681337477670340232083411940487455606658491819931670559072229084056517223690854969557718698494292548877745663850443137651739363111214701975414409322791315415440442547949960293495710795616644402861954544213886577819027041403394710371834487645832703672699879263242616159086965132361227837476010253548429435566024748038515713991107876471143731228652350246261500827848391762857696623804107318340885182222942980769366020154980539108917878741079542811950407376526146966004766953663592918645646114987545209039768948806839815383222066724041278043728791577877804925722477031246536894775053833872221376158034155463842853475526296145553998869138141099996204192602372367399751359106026646873320495264980206348397121850316343572887712453111400446989719248443657527268533865361737045193269615783658441319063256335323860805659501225241112463295181858417422406373692778598787267371269001406989197400106914674314094473086418733125761123076566174405820896113367723091073683957002818272947150331634536114978412089435048958219281700544401501471868436910694489534205539159408806839971063882886783776936534066058410728469770766866807209841910731833332154768482769196285552217611892354081332673159174118620329283846280641721080620057363995303556199525313317482387405010755678989622082391853246286009543685855969209499176229555968225907285193042750998177559168180264229925064155130649158786980625484104060757962389992875343159336771437478423442511302968925118066973718935793303992159414166285792480600200892188887890526580426887132349862215320531243584457894964231741408801611206777987808621583152089015727646563262264493762676099763826784515454223807513124416355070719079861627536949988243057326387733701127938506443042406117272241397541822113638451160145886616959956060982051747479063122680161903146294385068141237462604550851768666374892230658751276970985771018843133567266802039389370971822547516613307010559069585376974533924271790758138929861946400331047089090576351182375097315836203260866011258325877741309523592283100267851573824103429806037300293194765889334803136683367883407941522735839640383330843849580320079722216089431817358207282228659829871048766663775968263077780885756379022039392045684795713570580499655159266179995499916123836782524355611966353084006845718636160518565939392844908352346022146820543933172022811311309613141081387487959918933321124317331582764962942351572305943962104885833479233863904587968750725969338162467596428943609617548528929295897698809686069012494711526743123076160728772071366394265953648467183070832635741162219155721522966735207121322540637300156784669046195383383171731537867691780163651506004564377854075236675933667573087375634243891108687831852954009110817030807018908047221003693203958340443421621318860553701278207749999594241394922245343743965875899702160084024974072354903408696395845519384679208043285438123848053573050889514269763724709810009743013070473811394214812589769720736926150507455373693511683541945501118421129326735303950395365700296967895257640502034880745583894642497740995841243839646047162756906523130645451674330927101387658011108665873631842672161831574212693041442969004613524475020762115246625970486642059818521174005512695958092671895283020558843463574349356259210523304598749423377579723113796130644575847920778022954088268594729822873779271367257522673615291348311209868283626789469177977271547254828033756351162375951568160788202959853014337066005537012411039403302697134527738227865975109110321800974854823282138865414556756410262813783406024082701552676838177920022924436865269826570839747666331630766137811512646882911815131178914258921029553614525022342990054636877073336236568934190469566353351518066464020104987376700860371912310013725920910139998378472171621933230767715091267912630736803883060656544699271469104151391658339552869794066821212239870381982272729045315690871184948087015332854366034223409935417195991657409438999713593871224239405516335466150045282540232347355142931533200494613139376013616592346640203030943903402335025932329131886355346681278247820413147562466779843171293372602061508739531387084121279395697222357819941536918256420626074355539500839242307395226145848930094950697997193110557064521525226446588857480807998890454552361883402191754518015691627189158077016849845357170287048679949857893243040114068761598482375972078823238388030744083819481676016643146769815689713056294186106084933929531941028425537321559994058411159541631957890534053775176189099703568278344308639516645921606873141438775208640256175618978773507409886095060394835256858102682690205672839697712613087273121213665807752119330538878596427837820334937157355092429587751882696978246279707112172487916533339260184023567803895636380774042422540856503706467785357312457209000604147927621447577940235292426459543634014964914560024669710059629259617818894385450862406234563906914135291279358016559197197487663764924402927358201340601556937322314066238616583089314117429872324215707334286617954561896352424200497916669179893064573483386482152727544986740516436632648825925490446149312265970177297439105034892679006594364630908346637878115232672085465186580091270565243921746496536635167674419385600944944138088791542266160621044721492210804651758913426025776838211811343846057849030020304908311205140110558619944273599764240183972023332399889173287366769386307605838802209886287886287061597030854132898161116915473051273925187335957416430890305439590140795610179217910085329833527519979077864158227676602281226732230955695986579982243520844037123976424630203320395978773068728576421445173531166383619093387241167496243368419186544874395868977067014198826936646165613159854855294510267478556416711586032617831051751698410283839334872656617868531272738951878372386516436639860899380049558212834894907934174435789662847546668258978395710861459470534191787198221585296726710382563051854997716411809515002364224826091145584633098266064806682698464481862518441602320905837346177847119106009975483816399729710371137338568232094581645219961784404972033692669559543915925148248811655201479798369337729967013180284021643130979372133155622411972326545783321270214187059836763204000037177015583669491647819307840563960999858209968537038322484398846879267459886331527718884265460764732900555351568220409255187867504792219931006439293131422272095915102569045039483814692807370058598187872434506723301673266997811098064922203756310948236360489429753370177476676853222847725130165150497719214751889331892558593916620599054269009724793643003282769814933361469411551069896462242481367043470042783443674611932752486040872834942279300838846766257955477784848762060737167245594840468984983820230426794309628040127876590374794048559935768382418190931594551157005081410300379460423026274087272944199820025712835718889270971074194442718349111429187222974352192071313406804515220461706560765975161037907142788234321826511090571299696499047074408653321379128841594849870489254373102609722622340571039870706392885043631717646444624564092468161666876004855070827284479576220731519872882123347790167392202421268129688538666130967493781220292759463113709416020271909989911873789790578376803471956858190382013779302452192090603074691786400565407404671660664271062978277884034806402675794358544320902642940855837423139335570128361090059656725065189121725031217575387626830391076999148886996213927502325658926404927553211181563229623941161173370889165612052054212540076640812799375352406935047433209748980480334419394254138217400099479489810870675051350166248300752150864824449260362323291395104754953032346475543072203991290665744800960661001182666108120589337888213492589388786237197752579897497635259345456220006239888947443133921889660333624365598772552825417868093289490867431163931715524108043226880106064829892795449342300026818121270061522525847540216746536436425876465595842134953777764503358961417027029616296711581758046333653817831360697764497238660577812228633942216968451131963256102616680657504838112290631945938127465031329847713015144143825453050931542306837732758433401988417350682144827401968112045387647356700380364219041025985647055213396760273374735428708775276372529381158204358274019687397251234720334792503650954028425521544843343744341152661928402664413600581436118896582950272396960693444362040629050435938316608935966814720409698762573029384432568427665760379173100572875935675060277487870828533660049006432851423412155321336056662620940379504514955430312294840796541216886194975906144801231719437210702190895127907731132954694852366127124863189695542135280705094860471537830205657496724432781222636368251861992025879461000107184534642033392166040742619751874446751852154430097374437547209505054807306485878726173561860810336952737855739519423092020366553038884188128604872388364861218602391892861205996760451904931594710840930517111073750876385346843839424615400719134370112247535208944892081556490641752787207669360810408101615589895437913732900325187632304577857414770169804155283878777793750027296084037426254467358118255508139492462900466242398568559253638184261461233032320736035289904858967993546429331073108843924391088936516727448595625542396753496614944750591147336045448879370153434719434796637560813975957979995268962891426003082727398389559677178045919331524500621261651780641840745055029734403848583437881352594591163130335664196392801779951074345515070644743048203404260390316122797195786841552559341480331751280569815111158668824200130281420685336897946196665466237756662245635906179005241785266077701651893236916276508803351348360409532445919976620432142399109106985089333410639915657070134305559854070356764674656474342482474174461182930127432295860726349755106428834642322227467794370073058652222292370301476327684736404656375895749876827948913171169697228660536990350419396122450562495683355241238401941699297557801585750161319152648448667934847103943577214389182294126564829139647529299799376904631245505409987054026347343059594987888255995224957501024649361144328178628964722763275032473295069292858956749517708442647792809466787634265742108251038508703141673510395308685169849450473791781440103784333316967214162915687235936819930349854401845831074993473094499759229203059535562425203186788063700961563067779221989381996747325087778530246785277429712226084303168271059969732920653912222228063558261911115414114882541575415709282981329972091210039604441922120042339409256261136001370489396230687701895445607865489269995572145785111503301497811082482742013507374078233264330435515418943016500031747362939003557444619587318145221940896208957321666003850846118814947573102016643118089770499393021149842931993949001598990318375601244925077029010796948217920871475070351444081874641999469634954504144322389584133121665285613813054337212568716865221312689041338981189822368416024773045762058688463543076229347001834802671767945079246710258146727796869224853817234007837929843645372979534368682403014457634877150161346380056324792875658909636609658963004878553019539583662487115503323602475889549443724942036559046374070539776674809051046037729212748987047029914345356053701014119695840601908546771498238822885498543895689369973110152020818318690459610524345982177416114296387948072603744982075340435845784237572911584606626625039514581180315101313851359549520538476940778234608145056058160887104116255372827935296701263186477022367056908129667882353951625443565028770974524995107658971907584464525946001523713219450136505963025390612734705652349201554606302838038855543066464388067295001679586117488623915579720100571977673672442647898120577269859672830425808857240590947462222840480834482272752708769159017062386632957303633171974908436312183280357103794251808685552303898907622015846827602426782917401166805017295102405970654332504293933458616013543296748229066227124912855482508882519124504152832019589439740350471416290040797957137840033156152050306206893495937040171037297219006656416695944716282196407156202105458072026952878204577866328511013963145135315132990619055711480374609994994425077224800936929529355113659082891982334691261203344758238187104774919523122305862805900315344811783954883598414664544703348192196034329330842622976799194470174816134265591560365099037093525446461384732411773249489146698401883832016749673626072108063017638016726815735293798847746998369541003174409489750828222391597581707242935594388244076587465167054262751041455323860616650397183561346292662540914510407577497883430036508952171669118430109232870190811886695270673271346667697573591923626033445365160573775993314302104172225990881329309354220286019531980792391581397964490712694392937086974394109898974281004020365137126204867560915744674066027672381114417580557234084320159729907445714743634001951814157096088515923626741634735618581435545046591062061336594660908669853253369774378945662724825426671701273882653753200011650838500299546297184169163325135818522157683716723006561601339438846823763848678640204770668132022716548614740930561880378041654455192120658309979252832029511954939814306446766117004379200116472199663196172278286179517561375235452108206752468780309629027829699918577767631748607040788460475468936528934722523873716395941612191736859614978549212665800236612503910191662944813687266517106209111534459116039425551298957922489311386462488795403525993296388199634396388205496739613580150688512955370109303760493391123941678825923225051294493817663868281634911543013398518708877443904762810643259642331735781189447474810315543910335697552520585444348262119566639179442574653450358997237543405052287457155723703538589155268710650110037375865955583541846024301305304765134334452211874717906600887487968989855756749752554504172656524523407273999767669223692997980518509385387612682999512611536074759906849782074580205351001050789668322338462269422498925465739311015014660342698640807563308291536415503291157584457090908932909082573721513019072036680799350434045501180015803837962786811141241550936258548401496591335579931156541365724502744002882635198827906376691619522118991089688735761034363302540949318595253598977700296599557190212718261713385125713669255039584306287876454906425055220011285056288173081731333972976675687445345511439686916675060380505722816261791620059062511454114055628563726723430142156066399813675965370398472400604082471488494432512597617029713895233368160799904064238911002271418252549429637718089038637757329233217151743282927080587681554075726248431064065316728995369213913534139791708721836867696142769907372309804470244837769226487393684372863584393000450622439587683682511183327766776684453998251732733286678008464152850645595707859265661621070658576296226034187537307924379805987749505505800128093741091601253677186570790950543720861925156458069535697304914484270769533551995755170678818053013187819517504192860967062682700577356930038378045726160433714793466884929031009514296903724416315821929867104076218713888557237640229179386505726436677461812945758712988423322223068543624168226677369726511906774072150041077635314284930832708565555690539729056818279759520046233495109249419797324988158606032296303680987668078775291018634916948902470144716149581987500436494553133170108720252416950446326223567167122224807832518926884755610971770841719342774742302275022645901997367213922802526575477987201427203267987105042513818442337725903526969919966224066952101494459166785933886651969026777904041412529744226449074531372451246031753440094975752556760392643185953393624246360775291407768788678346947704409415514106651723613509624191837643507152470939601078717115949461338636879970645846378986456920473332430075205158714304575093782627272888142699815325322240351049219220375229970899737612937533126879113402280352304414722463448094808346486761485904518182759779367558668890225712346842462773743178420477707693642784793118309030953678749554872358935375030273558172372177046562065047720101161832891537206063546874335259099558686126478944414984630048952888054964318267203301665662026405154905040577846046368579680114134783623785193589598675735028741602036548552893115634064281909617471765445050498054939402635693657424265423002931127842403029922762734205072218562373667487200995573868201659674410763121681335836456037548072412529056855593704371443109755933943019803864667125681665242584962380739779181113602796534447300628524333385333968536071194589000667540482887051617846666191461747192867493869839925010081442490403746403822594439975430606535312067277716171421818605117678964598494803433295431261275731092876937401194767885134281636420821048985645099453760640644350268658738929880813915266195586842181100171350453811666427327945262083949646319344688721599825045306815067798341789581481826730801225464402166125373875437356042728055503758057931443551675337535849786143188893635394535792580254795005750102131943323527001548483614811906191146411339225427972781443667283647110541196352570749504177181510224756552949697639621434442150113034321927861201199216737905131022779527912784937703718891249021551697846439394320970805332042925099675406871116053766603469347875047301866604871367328949894749984354947367182715209259288804406498869600879383239542535884835314809325569490912753284207516692877598281686226740823756472832296581163342173936437699549430889105084174488419712286644269153398869313515407635925516872369545059290601423099853219340109608731781894896052235661243039104479173233443151367586258956921926724528946227609544009207483183274465081591552064355202741414459895705139885730877568858021868008400352028149687481498074274017617391266309494972168877332409325415006409970111731062416586175031869199435806917265679628714971020033580060315993227463345982940351459310320137417857329180253320220909574034473275661421702675400788696866037462905653854702053452722460115213480312035445083205774805122945472652093236597923133699207740756667516531679209390006267921758218678316938500958226619178721699452843303463563175326425670637201538568021516442632397912875000564201530696037576314485214949357265119266945990982970630642220661274069453972032148284743245628132630314627271913520435432066998948298738724350017950053040056368490270425941813570986559295335517830829544268545953730444409462338256584725058394328294035717258335091236332426482533146664191768579554204355269699282293065505339756820500560423474415941986513150569657244761929120393104245506981995404918273794180352419639766819809450322870529398375971790858498015061834468722686029291365384391571443568193196081566177644443212656388374346079456312900257402990641688878815714427047468092222029602387821885651112274722036696849629780367877948112108525150258532630779299844107874871951177583165408354776288982797706375832270479857510243461338272565339868912170683251568463730454366413898296649947364294208678605094212782976447880170931228750752332224170720990155310213457915768988341081470895709252488323152700362431490004772563312236652343841186880970369374836396769361076823423449794342344820826235931801264534889647851656577534814486161028905899575289092253848648404948784428080380116395412147065938328902221805712594149094692115426830980648645885856717777472352513076206947386692664561031199399474883655794849636108807823789483704735872271835373810737523643893679832880912040462273675309343328510828037015525012984162243305311272761095262633570427210663926041112541106489644522514570008509199500506627306841544859328902368672354139089435625957125435188202019077058386085146725905790395406266300667059481796925843715519003574067418615869974735618414797360206620913249059391504392736749123214703044335935770549207944082259602746301288224738578769960419961803991466597200673617189541796929565380225918083370435367347304627632675103685624424244745852959421519472789434981436689006887684402176298544576967643306404392405368253117341127057891847782822127538279212830504810507509250293039125853404920966610359049473756120426563975106643821457065313849484422433886201911767501946473641261807611655285041118618824695090509343079374374111518878514355525436780537234353527519172258568913125726381735225295826731913324394730457380219942443659311804459169833762340194632045268465398903767759253110943145432700110586782199461444335493661859905179125106791494759280106046882215524904762553625046657574188576000623668057639312469663252590171230784186301696039322000902817801811038056531490595217350620257208270168253514147699274482493347042438951493561137425167082584218998809462404969234785479487330617167139547305229189096219441502381296425706184925821149836463162441298498389871223318157932654490838782378574667309788840818335880068848004048083172203831766957181772429935012136698534341216113288602485602827777602465003400386983833332308421510504941645884870723231797010979345017677137554312723544095071054900088996556515804877616308220151213112212393633457416958239540754963468432933897652957200628878576297653646469910302085445445010639562455944601386051887025072647005917973266907888919513537089971273231941783548063070602858228350043388487633835087030185268663069709215958418904490798877613664318267005238847472126957638252221852504738575297350708732593783317427481081032457500648409076705022667388165294837973415347307567749931704259173089259029236075452456845288336006169114306222187634820737544383581347534985225234305386684771986165032808256085290942664656202163053242137552154088438830312006487160501021123461065011507370342144732142957749527651019749434150664392077107243492371844753041600602753334024795695383579344810780683780468338804280878717796274259477353322790715056560763768679633453824197880294687921098567000995240127300801805173050253724846115389867422739752961553332079420161092421180853399731215793439562841858017470881549480047729433372699973610673959024671474132588187070545944694320639814990524138000148361438033493069352555227909161127922134641601292247037798463282136764206245240999112209770900812364711790734888979677430151558032506331129812641150488814661161828382504733273430782187668645697026310793623997761317907185710698628818263829831860196724929623565362075831055859355173841708205039179116056319925618080079294168583646161346092500941673127379818257899042503208519740977584533151301982186737206861309351976162376785408885231147309505922490458874470725064039107294203248132918920446159172988350253134418700321677234053940089153429501567221303765479800743566799222857680305160684384834121101546145676417289928980069557725841982374602376228833689225956334765998514997437525463577418905918544777809834122953353204072081730252106660513275951859953304653512407594928618725041541526483196743349937876675264787512988929936723108298924803166132949250565428101159781668724932619444966646617888289132803754810236812639509572331020194193800551300898913113355262642384166090547758605924639854531371843694325389211106630765338374845177354215587267402369357786300077670986191694916950938644010710706202647170590128886585123861342880916338127132302717279182173548869883341045328215381508099777937683917860870093322409816782554031662423362801500025655066612878664186932577318336902844789774775939647770905576070423274140063699402721345781982987669104833093877654648677463562486282479775159936622561763161700147228635599108383466709879906335195930471549903690891935173557436200326114646968809701449412367035577293822484156822063377345624465902385482509970915915913169967708383553279855623564387829579045318938353208624298973116331726548449910714142876802381546369068829412890356247432759255740414956314187201858763871149687350451750095025364622370734947000691553170443899740715371404970350164196627077992935624036887545368284694407554274817461833787004208911626599892378156046075207313522044847457834611956414043727865935305269359540461737735602646101457499308257284187852572793307352688912826783923101267272979777148510224229086953293577113310531295531033166387911084230105419227569774641902589678052497768146875671449895083313022067756336319608665984875438329664084009927207198216155907359208813865015593260327433369666310534669924441439486270406877536102135115765081848731124717967733675126900897719844830192282640812428348187562973034262170726041712279719589722616978985233596549085094539486246943980961501151016200443275995823517630863281812824649764647209599788930242345560275522746488483246960356195435388092552006504662850266345631525418587991000836215588043622104572878212038568844994301526315304085956020078775841561083782159993060762950961591512170350580649007192322881375531169370523654383252978515389629661354730870206774754058127261367335856796645828241643984991113017076946597537217756838678705183159347535299864717858612603230281345934826117294659392984380051416086793740414803816204320371035373025051416743787461787614280222667736930952644518802142457735163190723025417416314299835229349358809240828336493157364884634316038348226938820962944397471533493167650614982054838941419942949694249071423649228097943305266513307940075954367637392845171362448109896542379737028419299214755277283212225065560976327603519771518672707294956337300537071887921321243050442592524411477071658171582945274026686532126803241212145855876711814519985939980259714481088250872526615920025716834428822001764420516340733095633090537515854916380909419133138498482828906132554302312226719074772845807664832022312328693224900446861426167703956337510325556936508589516621495808934564870268185472504159660184650045752958809208622173986908891531481656099590070862490553888556873166329041742781169693724412955954641406046160562990919940166742205641962829295333218218406829876505344483392783022287805645557144394882768459962842773819106713019271097856766571402274673492506375461880598695968910473771510339254605215977752373421872760096947036845273636415402228646893765882523289774344281814822815904549465747636647048412725676552344413794650747411426051121019451586331466204741704868671732379662637890727120947600570440754017905397258284010469753660938080364197774851702853173537549765036220523839707765722600694020362703605059622962455295108444400038937865030813801014456181243585132730561956015433114567170461737549289944913696173337366208255194453711796924091703718498379575792077299895179860858600584227128623496220135291719967055818510765232598458451432161244726144501571444690609715771988198709436527685740076770814100453845588933634372982492862378406578668387887295461243689583663605819324526809263412156321606243270251279704374913534532308488217490853139564711560194825052407733640436113373837072224726591439700871528303262407089583636317144365552332014912288965737085869574246615413096781007120100246612427946419859789384549070362325623771969597065609067958073809833733447406824178029475128361268069314384641397837967603991578712882303804597254735702488692178085142128253042980208209029324707674537430324413966763030652688061015412594111601677924242930822851242815872655672801301713338317505333552466975476948561180261129687816650468465256404545796220265352692513233696474760619235369952999906761362710119667458699674728715951875572089851946950632941688340466595827407902293149341140612592607766637659174282959343398424599016830055542367321607640202234041461036437741214123441565255073378918656653157215462981134649217989080749308727660487399729272615731091586785411382128353878174513103552495187504395634148241086671971599766189350937794852978996391914944092797115218076018833491120042507279712521285011071320821853225296894426033463129329923483935897837955667200932228344101030152541452888989995012993077192525183218598853591282869482975752810062042407477107914942047299775476239499299595601000790557842644240308464399189303028182325899508909937393672635503482897682898211783630465701599656751500954872756216839268421537258482858170310418397373977634970618510775914534659845355908103188351943857536132367241275381258099818735873074477036143990078028482338374640777508281260513971110801616750587927992782418272555638789152649589278980641521227638221085485267263494590941781454110902488174250533615069494187127846647908361216063712778794792307406866232143104555361659762513420487525906548459813388781512405520012773295853017759893556115514421480187690948216142140217494242332696097908574185889299294295172534834060416294779757014039406185922678419213055928232491072486518223860109447706810017548924310778745020605571564080080172052125347383450771293893623258222073443559064626696320876170144381822269402446255222247368700551754201948671094052515313589667913500188188705240383536776471964749225636202914877616323993789468382377555397444786335090572486671015782253113619435437011938920465759292600504236366251764344963430655141492134375542035444528800837737017179678221468034124142312525909863576011286052794815048545185793677612744045868921201136659185230551098459926306538070014684559356656271104229982055784993699944521149879180301673699546436553355805160436335541515400983819369205656007610639949634605803829613696430440693186983081298582144776714157386392528904451726383523043403117919008658911181500380885746468010966589190866243986201978560543358630398394983842239579035002961182285763868842065588282528400403153780600065256170446643009922255322830204500409290850793640195053653844610924178531844395065640663428987850819353140633567216135048299718247727388492317101404069518195927907827937941294242180876581000574182463475374908054984566249353530872169277485980946230725053741144148461374685689333181358721862633854331563445377819004041768819252959635075721580011132716499753119642118205275489897300279555134155755973197673453364518750116710032537397172865795192771552299182258880604885234714206942666393107596887059009827731523345607962052296449346270859063182401123522488955595981979510131570408745058485762920370188188793342176406865924395927118857869986465768692539910500911049326172986636650737838419616296480892065078099528494129302039001111345362666735076255849390321213318956864740266368396233667431364252442971475398359951980811970947632413588941646826904194165891398750153144218039610704454213308480008488040220800181326345348903770642465780493140403629554237117857712770522824969866654837534574842275203014472951563914166283895040497669366791834863664597649002370406310913060015081616512677191294734016315410006242658629900121493456118135185167920328817262977657745162569290972536117612810050165986847009314209611870770403379770311096238176059282644806760350684628065750400052279041951793233659035526387511027282700384361004200752219263338807506250281510846769512067022624123160353167057551064816736377398261034228662674104704552412167880841407550505244104981357981256005983461401858608398430673123958455755357346819800128930833730644677308998018248896221500955387726946647103425947696921392368862708852563478078347718523158173716460620921226643046708709116264498270406129856579207627657741820280066817205142348239170577650292572156103441346934459677241823479719588964636250766874224037393765905623703545788382013876823607771855396769171633206166919793517513567439818525436989057727101811867356495377998545670015764095981783372751325184544301433462906760679577945464067535291011116431737198749868639883505408335413007416010314315793981101514059529430882349984945625164964703152542180476272177953172033645273832778670470220173045740557932976310733274711799707542680537024818285802332673412349166570764934074137207141833889111572130971665060705415290717673627810309421584459218583544940043112901356772158952458009986109916796129611046895019134996510778904258276221597380002343935698534892518227040025468325975967588442765433673562925100780923241052587380490047332894253548025688324937897747628458416294977408542571339652809934927584686473204179928508164046446119979151339842658585383898162919876529458599154031343163685463743395375282635924858338396219113254001686309610203919857755384930790571923425003868481035749666493243525247629587512300733039197426867920102798457400448043913777038741350717857041391139522093330097922954313809412457998263742747189334542039605734011494037514982794217429278750351465088557428565701668045401854330914323876672415504594079421425870725609273985671571913509245697296131442315999098203951162653146839363961457301871217858996471308148334060592260112410851709348671681322047372700640627647252899657775954241693420230265615551945420096253147150563439102663261287979607583733698331305902537724357353670847458409057942666714365880942735551012871535024450993752290280276676323551786599850334176314771671989346305219707187902383351945610104381095168918051386958853203042652836589055777173736264589769703359583638947705468503707437548155850781130730025693627801378003518540631319835432057428293905594020456995161333078128499002933205473110049503410653581240413405259210888597207492812542551017591695884010687232080522326126562519097770638219824963965571123738102779984379992194182395433987226638307294615389376936238089555328141498854196284362759800312153977331602958610106148186050531741782721679530950476995818098067542651088349248745838023099370952655453240548555762580175734503175437810876978726826696188217561535358224654760031586504751898741424195515570477724558589900106735493653632983558587863912984734910206838421529620125911094786441519807069129056407149789535783966821146391633013541984381203378162330039292043014179503536123128953778993104223156082879322902786357960886483647156495592901165931137850098045661500562078280324341907810816430976474715282006310137485485818690828052886142639051406182979944222156211550413235056350800044568401992428331290552172096761180844373210316597468557247465892812099086767241677803757064900674149476245199462792588648315490164504856110783082626113167724290596840683885087823513352371532162101336764735498225577048518204099576948105474786169851385952052786490865118785182981701278552778034267982482998185651382102163092124678169989402352323087317453359427803866349767509968112266957604900884872475132818241541275494025924284444407457342225634748418850863933644359875069662863438744698185344310835067479218306204185070049090048399721764396033807778618585740855525239960905671222616615995879012703071934593528776329236401344886582160149029637929048504248108136317662281948077159757769447003680956777823166549715778219528600904407454772576735104724273006257218554580229022195391579232078394688613930188872629164035485115634800975271642023437559043384109691054543888187447310586213292054527355985729365975888680220434381456639996838468238939111868035555600260198440302185757970417408711171374718804874846558022094101809937697572516174940230232809604302425947637532383554420048380374107985440456050518909198948762112592556594131621772619508025489984797898755334851348175296057290414733877587322259456559134419243014018169453530197113708881537772393569217686819595728344003090582383037242987808072233194921016152747566674020899004490662599415206708973298094458636800430697784136455297920116769655129579499278943447851773192260145333958490938490842696272058571049255187727724380333599513776283949228375013476430961862271671756915325334838001027106700189565251001545437950340033948628692482968854146310146653209716229459638385776777522608115410692846635814198468637688281994513165038001133123043049849605223160793250870597128245282493000916645972453311950765763572817986991746519072455105628604024295618781213608017025484557338516167846746670963391959101133037384274192912314651884701921155814122929903727767819362201249236216184144672486709030216172802083196366773527343776920497482052679259848060178420705852031756123913392988310929769235299076878160434030598528350966437001263097511506910614084998852606287778364981632935348010809633632167324692205646438134516303113333840420928365963856249779731821006466820485631993479626429170329931233070217706914984414225090988643063561905613198747319970225999449541478337602016838985583172544371435294018666088302188024412810607982095815338336174275926698787692891690742921624358591894470517698463756358918308795690014772334562216510596151817992843626148882127478535760510446682469009795528972349107449904609923824046668494252582979382697963164903480049418582759937919945964009154170286631250029000232924922770789616582275625671476692891370536471618705590136539995292649789904141410665548505022913483508149497991901671995972679491352859684418396497715944718392725805147437441461749062485455369509258866463381205717868343567758426898315069405864741174942803913221262455336715277509502629323471911569289524882410885193828815614175264058749153202368592249012352676321300664561254037804096043275356241293666073336090955484491226259040664754507206965952673672509748677055154217709419731281579600680315493702755880856379342872789976761046321820787128930194163899719085228228437739767617520442317145093208323351623463618174184518403645570280294847568268699720393567111329802390733048784918890890833293319914321414593896768371142320467930429298757736774613497907588396393501588485819173541936252172980541889449061813889676072971254523809848379800879773131011305777713213462371425614386132944771524682568400756354302623071109226612947640408468506737694442610503298123235606386904291810797249767694440991313012460242538130912073392911417086968284904209514705281423420217590807462127696184212857782784506400778801883954375100128032886942663331776051853066956477786838979691771861772454154769534848320562745659037393308011727314388929939101419554723767895536117926122408279359825083011625304108414050734748580913214937695650010566400022727034365648988968208178446868528306357901435195429523245595850681647339093254544191261483493421442644559391206907373410213293907868505957222378928663671867392986942561871355561425595661252602997646688330582922805016821801957687158708248044207712469430751085722989415185608773257271593309180281737990243402037447409645473772813385399156260012761545165627120075390293176719152773829692211393603191795836934949631154592483050629322004581739951636905627597816237638087456273710361508240342147380560234713657972482690251460018532975307826748770644255338353025875619881048319699178050522904730700098539149544642088191186552155343471685842209284012588979621459970160661766295734768007726528933653186127984740918681655795020384458385007853328817149995944625866262785868239284242483709553173021219407272741554931727093196622953304653873101126923193992396175822494212899929294676005664009775463068101536753333848103505815700397849030713929638671684250370186813229873881092736017339558605613813357839246603207859068635340265598463889842105460575725721910453140536183705629539483370934269054807768866522725811212723608646686643099930940191577738237966607612714653796695144260270318594489907219862655983761181999207110073765150272170185458409215607836214835221834197176442364063206488569280925209965118823441443474704522874507424437824707642246923697845345516514234138122768449629739915860641372630225966112057299942284051711085632800380883972585818861037893151419982003018202860628660356431063899288378573576202586361833844373613657138414343217574691825607025324533903980257969311943959464042004525266462021571086158087599431682406673669332265833978602906982798009436955643813058499938535773537839566470809320921398355136778757672072576508554754959595170778378086993575876603474314353451317960262099501133386954192322607472767483782446274835779824499176108549629877850796042431638806781735839639957619643428999651932213569674471853962738884375649104530351480670635163421385600441961909490568042417766349018097787912897808671643102099493117595718902880115537741574679940206780678896646410488534641852108361253008198938196071382998160914267653308461505104991539015562565010473860149339539299525833428031800568408031531666655136233682359305310620726996735845650613794513355150675520628834594875651374435104841765808499029564188110266269423575400376703665516527620021895375688703077221946972062509908389361100332895486196511408750906684656991703697832705376775208050457412978143972614106717043185582460843132242261582116340743785463737944121164782809817438959983983835562635552931479937100519976708310202697368785540735103449440614929465665884316739411545972044394373578840608656761598736919042247826102130102496473603657769607416870922082334785928333985764631419147384436252937052980932724556716175754320835689238094604396393888311140375412742750228505498955488781398854812021274869808573687112376995443816577689567550587164879979701173845944260853461452786190102481693310712646953326622668887658382824810712560892079518169468838363915941965468226609028155817803389665699731188863008900153850988529844106714052076617396353913168867286225493534205323847678016052566162225721993265641181282280891865530681265255469290850403054104175343167661153720674640152873890689762469528476338621990303797133309252084427808515919248728285755025065535318840477207880923416360665829997195736345344879249820649444299569482411361917122124189765955256574746842864346961268345923331367589496598810527300361800456044935745737541809300050560467277465553052275646321657224281947394646503773300217565320534761526141555775153196193792090578273959691750251957643221935069663262525385166948225537681156053017535610973446222333787191990575694211986370767588326618087442837619015190630337802188061492375922298781106804751020012604562127542015254981439069853566201751553787661878481679414974575216836910030852162601825339235431426675667343331380943495277545177243308279063664231537674135329075983108886684763380762833256142460985763632728394970102344583238366153747181872642600281357948059345638189297451910147399034498251053643544377760794962786899328828025514934748615421390211212531523864757026908618013439704795711563110617648739897776253920540313684528881714446002356840609708020965621290841113486166563700689100390650047898736211395793324637085057074275174347869182225543820712634909592890744387526140286734825896223377594003924523680312509930764228611072726567245341162227236719540872012073930777929984082432397739967205610812254807289330803981371552357250036728056168221960533360589117466558192651458243718172870489202312720304756489324164574121296729551755676782584883703111839927467269656112603293098223302692675894056710521665403087381198019931738481422995997193918583973676997843371844997278284763922871613223251140322756353992947675362080104527732140030593429895402505511699346792543438371996884489828752265930644827098012197225365000739479401182203694228447764079438909083457461543214832321626228302293293120788665802389912471598686049821752276042240480423909076845893019989931246765198514223736842044641098425777218720289023899390038843447145451773343884357320881375493477642247090445781962997144929069329586343426934501105826124294428870994394139204639129374373613580169331332029545171169561132158031085466259490472667482448453297905172056148258835890654939655575001598599211361943722115190960502748555194574241356168080269045447604227573082374525655336046418050742011477863540564922252583075800834481609441270356591026054066190159985376180440766217194888701459982075210282912266464991201896933034956082167060862033718561130346792742046795431669564536338619230701869593056726520325980719177043572610019388878009753091004116040661167081321961911978979107080688671735697905870172491138686389480257289717006384095224354204421490424859864472170605071298602208423748290639529438953280335110801612767207968703783300769173635549221565535921941628551125459553463682664909826744524717805274328342472587450200121386014377191296681137657111817621867978459884400273506197523862093437451916195957635196103404966086167922875732147082691202662218586235272544137524128952015580596545941332643492675965481863128537042769284873515170423551314217532309083563464663765809105224461626666229646836137948593647756910300777134312734919343194472561592016991344109752670505885661599082468808839735880411343578359760054400605710365058855538251909144358936177588405882923598478745667651424331586954253395902972553968796073227523546221234417598919686558425788750819091643038321753956693720659563323796906811398844991251538075581494194846686128453708027778374750849433330358314668989521212801689395264254404581604534366790536861690491538878559691159766779492756144005751400968283645591757534672823277650339673348079946712215640340387182648547227185914262958016026833043030451870708384893174202146413239851758432544027630570723245584594614399108254632263492540896244810779037526632580098836262048673728048810205963884310005063862972255293302355555898568008223036627745676153046465378656012927356169656529730245836322327480375937965123501569260919111122870869202519832456521127114939663745549987702063816232266604614243619460651935326417261466281462099569937425855388726792825700699636070054356479780164795089246916355939801355508400888350016319257680836154147714184612373919602488189664486269682938090954526154148274278776426770429194337302495258583902172125961863782467657605502111911358961218115644384973900292628254250799446840331571072490403223498945173138777909731309208120366502107397477574613868178878951967967973045998419399229722665784211580727493697949812594419996271695665045113640366890495206658853868120024886432953015362783156187159715253961016837615229372611270702769704889604332002423232638389479829260832176759569296428842324733771133646084020490604981028142975569486720967499321829182842541708079992741383136865722579713020690840384449486638071286196690217041919313994861705969179794423022978628318934293658633290742351883006738698386905491017384111116489868467440230938332357801436474624337264717565197766078975173002905322720894457222096799855959174113876011828211791334098408877839195156950561916037971393056223246865695141905595552041594195118667324784580616035690299156013248762920410459799573291090549861230533340316741672625354523683223129697398210001168447557083843868344659100677178506636097546742292757969037132821964987787891899142757105462195533161676513690132407808330750484396614409883186800120513366129172192762333110108747905592545217325610694877095091684977742398986447445782188947237291595775295033357372746947931747539427440733929987895805412354551111765632604964950034750628641987505170765805944951255401820967704671605771667169998543650427125021952690071493310659166345245826058794282871470246304912980162215721913660614315449101701912302527239977130591733481517002341451089790845480698573768853359024672133845245993871222822759644022081998887734497787580096848072259599943071051569910367866763656506925979444643294779172107743497342637791103466922612211742469482497198767489657536774195595983488267366785496928182354337586571096374621016227495144025197152189081660083193584879639255985729920431022853566336584355670073559266619559654556030344311383980557753462076041253732017256307514915840806195679674452680930274478571361299400464703551089958726082553704591448748523385821226786233233362326307346605163476564662957892520576856447756299385823027182274386566918806511255621595308139575927392265949968067859631255356493610299673913319559385759647785335378055568345743238084352361339019667954393507850923308329877757402901544565137259895384609545226585087977349564135308481592446747800346181729129811375802845199178586948111540586025265545798258144659643494462245566989625187726092160881932276437398188876554832290678927988778080786537841538109709399598914792945171671664843856382456192054755962244103255369312987976999473785941599604540678540430117441766193799574545258961286396992056107223948067444648732774227160885311317793878298128872145815510443825378237982744038500692601989439452037079227792821530563901972495455827250429943616991411732049725878062747011716186892526821396576195287322894072294565319804849309909821009848508061707082707237947443125268264982759971821641114471034202862000230467658609214506146333910104503856541444656761097060536922807395000626229523989855040715039999681637099851765611666698404882493791890900821855336448774710523720342783165517576506725475180624103487730446349434219291852929236067778383077476669125697272857348715361726552424504396698547250989771074167714037069701936327375721943003330364294272310847147993108866059606300529559518845004810493460280032819077405240554530654667895086163995398801643128034996891383059051927285504775652404225033774348449677564265826941375085093661133166008918312564352372816252784801745280861365444924678351198154390665923723580138698242110639221467684264166797325190104689635866242185960658450638645766178770998199052411608666083180718754628677625686989523175031235085977324189848646673783139042187551075079192442206818110794594736337541848102657149523843965935598183539802642719644110231469062689677411552737233685914734473627141446880813358064372581820624719635376448180965784533902712542778569719279279995282998716000519857977237104885367110375808295055980450047680564644363323368245310394294549967593018314309022916824634481968272535174933856929010000550459859830622619072929619198480680396480171528922837890537556724470336417661016700124332510843465392404712841602114019404472797929081908433498414621685526350946730184942103830586392115175308771917483416766898633751969381441366530291038432475324311593652847426439370680875004656347575769419808759642867633525209291079162630732349333899459372324739445459753849337129755525945909058286953040176313640757389584839384042051692559219333620280102002471376169210003789993123525466410904198965159374071662628063521520024918851138049393320269359541204411945700789240955687498056102305960323287084238735680076420573355309368743526850710185065717769707379851848406247717514715962535302121734265718245897226126209251570132356021751320757398681507250918568386441949373373983998317396842610843250321299365207197755545407735601646963501672045233499793752865124029525899048186920798603418089389527883709921233713406873745108563927000601459780748274420453011452399631581382142816376732336568854532565827793652088852518824658199695519608927318145838036544335128818294391507342713774596805978935416346231010431627436330483929210209851931938086966389712528800456549926068384807834386133395560910146964535110493094029547806230713770646397769054031927416902114097048192269704396003801918066504858845106995557595427877244220508290460990985184437476133705210966436087143623200359060040746800650131110510455093869566666882473438559890812979773450267417778238109479237194430721566849188796241960890823328215137337277649329960114297645346508751162251653639662074456140532459734665667489501679029097477806946768071065702153933466134682533842564071613920358531508442220035645008942112327917941837791970763963772253375868108109760187298731349696121256656350132542352970331930501535804845109868588986469945783168353608163278524321282650488515242892358291158061990444738009987946010858853254937484999478070528190378909855557625783342753072976685550249158663380811148201109300884083706050661633440284666041965705607016922267944560667584878481543734905824249965389504518372911892064675473716422705886475328780803598843818920349890585019383953752728774162691508329824251966460864979919273664642509477863725491598927592875409341052356536409621700041753216380413782011019671773647217564140121637760339454005387466367701159081612485078507656625323172301849765278636187716387662207927469261293434722205198506097856846093818377139133282999404874139917536853349598666479889335443197894077168836657281114172767965841995152164078566494204879190040561174572521082316389249819358394703946171883587813328518580973214856837535977747837169508376039505344268708363679283066508911074030789048953359652152034744410895564021473332383679248371037643156241465111660709478628548684150939706756172087583790267557552856386393282480637939801594408272446898412803510021736826295035604633184440801085504073686307718490654574710483019392369936770212759194027756321164635804684218521317662039066894942085231144777172893688622316399839606308237108335264316852721865401964793801139430547756072595730685039042119237481863430377038733577669384128234487152557013078733652995939457504301733232332255111060860310771493397846108588514576822635960888272678717613570118596396073285778008265535397750793005808239128410452492325004573089600458839548533573042634588958564551262005415750625149890080076670211861483763576699587638968129638541700209005971868674684096966703733379241315043900191251976789855696007175522251574515353642986355198093950522691217030186250395472226238468612405084921185862709067138268274081404924809329843477954317060160440443599045169590661842590918683774372994727654809124735883776744925340460157592762976129300543677370742460383365377897813944875823150753911187632567206919888098513892329022169766652836425768781533759783372142577390851139188199845779695849513462646697540390529276556475830561138598890316440961875343375294304552770945415488015002900623446746552815684993850704906066559384313452893490876348633846558928207961486469160804535179224578029322824425425817253639704263574386329501888151364379530941872388703846368571385869678820048564609735355640032953964197931319427834550613704550644775699489761451674144774718829899460733697731070594864961374383076521886446943175085599072320450785030198202011216227310819346714067990465670659735402117919052282927986395367586431676200098804017334145169946184749431625866149534749019359362528637027404806137406835569236569000443823953061001527595037050652365509742223519961582253130398474470221653032692852039936546043399653859083400214002038905263096251094569576929640460379493618799737303820869974198587240967868312542608751506159217390881906678265755574515830470581527875969176130929178711207680309998394380115829668042139150172132357935956199585560555590902905354136695746191034789235502784094423714918422893706961736743488254224179844046699979379283216459117781042377711731465250476282659891361731750532126320984463655314072016769492706157321869788650476874206246950043811236728600661586914553237037140856347212637279210662393038191905761580425511331963545903066089433093973322421656720868488378904328451688735352781452830147597833352364222246491424277643894122555846632354092853605074129153601646722711560853631258779706207667114428987204145229835832113258735631253361535856831160089084891411474428124509195451746721159970933081536576437791590410059217040148018036332903245396705292483930752192441844109555812209849319422801368589403329582137611616701446414153530898269222960115381508588412114179149747144074297844842886303323975431191938587393899953044549299184391096324027047208704914494420858053613921515935221935641607977018063422391665597943071738627599671494519821295845729961948238843513035343825587943704938602265936134728028239011835452431288066308309689199776279432398577041974537217306363070814583736324274879104342373463733777315712545848498556823384696500648066360079950770129673707094259196662889108437709871135983982723231766467083243710113409354269662489959039296150087364219784559266441748161230129414433733361774499618769488084544503175987517201513868551191547211928858368965487340446339056463106793252140256355054960918715098779006407615529741655754656899978192535100719699439528599233419999934212987376394785834990254611041143337326303046010931725161380896851090007349370702934918770870690280825501119668302085148453416951980632582427340909778489769724800356828514488643386130728866929718548234638175541038285693074746772016430190185389028248235234828103419669302869616456262658078078792209119975848125800949713685689639947182333468162021851086108041950170332562697002268209303042771326791868008065155258117297807605139827453447084284880264815427232390414565162977926441571456534155120641649505272397470528114587044072273910823919388689295409751287255681772691478566980730089023698103751615465552108449502345115606053945750179638180523530228839937828940604681695975547270233874047642263519833179276175534362118276966530228648133065787163716479690520850475181276353207260630223519530124402835523808278271111309236055790973635309892328245357695113299841990041838431459507947874120129140952215691645479455048481484410587664076584233496580579790288386712569666001815182567178901685136434951895186732410002508278876218726337231438188925088523049110004232891013730449034084289831818866840905868991828373125278245523141952548219957897590333428437282806322371355360518688670369600032565530858840492303647342566576508579537883010658140736148477596407592855960071262113237111003159489316397495211123196387596612219408123172593534999236280510440039838699900079522200041005875574927295647925617942185758577855360030994218975140936607183542625232929595330159279914225100157314531794832937975188077984300456410619098634587697701084658768086397671797834847743615232980921599885008809779261117161627042714666066332141303563888674641858379595395295945641895032045817915771768956840753397110516247011421336733738869439891586484096927596534623968472747912916198212352808950838272788805466853408472916173829013218444610754594332316745548980531220253756346198245735389588451078744508406888298519880622246125912099795343756547570482454572628091739853647054566453226047453219943771773022156072574544028182952895804714608728842678775957265595558697594078367755874015721012963392983395445310887060081156122226821285050317057064997149261700607503694970289536787471159670072448408690129328833686383682684180255212765426774921834158827763217552568340629031590270806520395275705946035852477959372044797523336188705099552765865090008582039511261277370759617887330201395937876046698603636547452745705905528589025216231321766115779532124152960177536392586518018068301944786840715624885391282752339628210209642069802362203075408642863556644670880810396149603964487278839538195520208481911719081166536336084688032332248586734519364461374885912598027720206712987667478096196995080178765994859642702621570476870580743811826938387551464841426786097828723868161404882780774792734570287613029759970461357302837529654090871359161344220182455763693343825264876593368814237715094404903242226659612080946515427460445328898137459734461120966981829030919300597959966442505467618601293440161848431085008755561328615413204073037388995185740460951874941612808317077862147857763654460762922210065276356588569620253319888534724096135932828524554261546139940626597088519379223415179276256733399083948757984502361985396371653874179472286983745723559579004802355857664002070609664112314953564130540031828433715890075531453040093410423603025446656786022229519306625654572556425201735645963043672677656507082284443046231046959310114892138338454286490980689416069771678598325255477891472719158592585369987509890109602628280594372398419469323512444362766716749760821719281578572912772760170131070662697714252543654650956406497911239788636751156944145594521697317263349923047267027546268655639559564458259705025933872915524457379057451830979745749645551154554844378688082251165576801660510894322691058633562502286343642165167105690084834297529525561418428920039294888967297115212292199740910447534514681306697215598016552650824044026908442611969681205026006101458637840807764238972691918888388952282470557580543018525876849720167621353924438982519836918422513103404461993408975527606639317961253537179983758277689548294373507896908667323735940855368471874617079709158426924400563809688618062433544072636155960236771905756230694107663569819720443783989727042031391444714924865268535935164569337213137814332425977745946321218224471660448402903902654915254037030451459351176497546607940227890214310811850373641202988864786008334745628705390194229797008092857757360982910190393879538229469008479223439459709835381917653016793133543571511436774428283688857404561886354146325801367646979510833526745057326563586256054099284349054944900097446301931953427896333456775655338716550933801747698315812948486386697013206713710196092284715199277979270888278399387546318742638008635194148647970134056989500408353466253080361899554618172337345474050252263007541015665696266062057338110970616062532192310138374804808631241068046194385924630132365060909525272778173725776602744594037087452300368576174602601420844328054861570895723509499817481998229069044978805477665742368958009587082372411354469648957759263816249132893427090221878290610068897435771376999655473722959570682872520146154990089219511821827508774157831939230322038883750396829242267477150678237312760424498619653256955678007696455556052897388802832166514810634565803549878607141901372597064401810721609624722606427903248867441158472452636149539321902558604369050300138960684226124682127333708878686477532636851498584874679150827814591005540651151322358072491968761013498784729062407866529812837858818619411778296486337936237728809412326091529382513071856310586805431709005134074725073957366989498330079933042414986929822004786084163389246456219504998062782464703388610335088988664449707657865808976865242573839421664407840777337538481613990695782553256527762754736460188350909684562329827509159375618447479159247766747854760813766823899431145366801338016180223058987202939229797702177862719369131285221380107259376992632385428937142999500586671715720725746198872190834082552316140664784460425539051769805107351847407409285523350628582359955240975536712528198209682047571676210810877220455861604215359130937016789024034652576281721961912904880896626095595499344246245973411971357141279645230059363652229397835612167692429099042273433018212696407152325239756651190536322351435939690832132468955326442727646240546584688210476326683635409950283537676530970385454426577968256110943364788419629417682023082277090012451877166724160924584979645851449750985047830249381081404221816820875628779783748417722341934095857587210152590008090448498588713146760005632178273655907953209253105619087311712816987821153320007593286472745278815209968544725473757565208077004261636922018392656027212241982768943806040338800097534443642374600567122707602373021322330282713050090991274839097695565597621707935810278670556297973264985842702298467521104764438638592093433387765446162325444880966399749244446432627127763619692751483461569120686918282748383521576401094283791650717688305820856829154626742307715698117007991755787215137848358947707343500458235701930570702984544420461674513234714911925636793026298779063176245072363774618042389799288916236965898041001680518501791045661307352871606923797707655597817735733146172433140830756969554491229905836142992860484494781896692175287966741794474554453374976697486247922153172129662440525441496288048446439634736630327588026437060216700574921820680971066407466511483224920614770857634429153728468696807948444919368537338344968432185419103384161197362692989481506964496804555707394617989860385564233024531555285979491454576199887190377306335928459212546035460205621776420244527368310593743784257328345103547544938259633292784294142195671717615882674181976724307095636050640261273654392388998412001798178910271491650018126789305346279165384681000196069870682720487731593967294514022674844284425481862189347428834847587433993462714489083681071541753564731860014827539820312267806990407606604115433603766605510717963935990338513141959644063883595078700900107848567256713960690669083942764645301602737611207888953250088718417395672737571618700130568026268249895040550261163475994215184374274540439742444992845571571875992672978786465400210096050580747448938787238484381314941745889040436842299050974871117975470475041910665060340305637686390577872082276817609060860958711307105312394203425564459644512018005160219252035140845359019143494687690950468167835109494750502388161449858472028953371369852985197271714012572217905902501738285144310476121984706376905872605317475331311652471987353248454829836220493874927941576369250331494915815419053383043854295613269994211012125620274299527134049075968466132501696558296363526126145636398378807306773542419581291205379109009097667327377346275023330735977188877959050830887117069323698349518758886348258392408858321346548154232497548146505349604433116002862274043571851532020321981324655950188193019080025133648336066184972375369676739136281888097199752542591152665323934095764055239000653841696890760158366358624597219888945896541230697243527023725875001767066288591810021341171625410522773166500419298682416933875119140114574212647169298371593873630720233088728398045652772486662028985315307775927303808312670428803624111198088052986717082120101619033761218685821245479468974969559910678946232034116183593337609106721053130901526643065336626166039899606915364498803021789784322846386966754454957740469867553558813661161945356661679730653508518774968032407244444495559058216832252147064326518544939076766395317293608962179158756501107377362691211756425383385174513614925321358676129753449320325319785133430271798829090326417098398641222366858713174650441493318058214439663522300989125093903012094100541015409434422424236019409056412481776655863778861804708875199228043307934653205037910345244891702756629640605790411494217283844435481110175486987563074800846182888857043610526806212909171383398440194098638490965945177808141460129650089825101183148094596391117936321395838850363584990405006265231444205599143185157929388469927355747839832712771594629622417494845468944781133836389902695616032871332070952500503629562745363762207541756624766540626449503435095616444235812736061013164363594899295901204250315590489420190866857866122238454308271537289027920456450114220550272078080042950087624127626812444616479221891354740520112430326615959583954896961858041791464818556918294947809647261636918416855702362564160542546451735817306405440475268639058922406411504538262926747992188672631116336344615512540080671769075897748383995232059157765823482092679937617268731754641951335124026484637422890413769077067346324871002099265372180758106221338612339805783231063534359760480879009535451140450187429141900383463049262616412848420937617114711402763419355145689367352797810798066619755214405372818785660469497670676020105171349261068423824511622493202043101564787123185428128663306823020544031558445437687944383966399738441554631837035286842117100702844120507704280266381820085330644966835526092096671856038638649903367314781143874035378820245058883174755071392424162020790913364062533006335785788009344492793220569923426371975943062590721710921896329224030291742122937610809343519076419886135380699897795196069422088936873405005561250077806592418528260434117108771231824227986184362824704252851244272295815541098343123810675269834930533396320225533051901371857907121083800312239907814698756025957312027162201312056828126849533383988550476161992125312940227168154254762826446773193505012132844308283111488740985777626284906824749915679471430778030357643423683475470918534700134235613848355906722881318520728083938647377115161504808033514406603079473311193844016337234017953283028138463354996772944568383591955674235297800310931320740840205610155714949618157607934763981797031874483223786448091199375848030749663023776594913492231233570028395560730645253602063714409339403388019420817223504500161739647316779352970650912315384868212663356917885137006937188048136158658302149597724558316722027179421966497204563012104646523360512343984460534521556408848377741835969337255760369883745207239730280366775886274403186731990811977330132473812730331408324913897841871326786273502429574449425083764992706996252205191684409733580885270260467144356915241202296449421090693017244230402245844826544159368511834510086699907915953691832043103788163963068835159860092929234926871755629059213755522206382105929796511882741773139604796476493792772970581478905592889774248876108804473042228592379117602064027847500798302893378156745856760603814636201817979878087543862683601853934664562581454127591412572528780586505209993261894408600931081955812000259111667412425786099956012341048735832109518980090269568250210582544380747078484059314964918197649552865990465820193874728641199508740056135747349534747601434735872834425476505208990884236636620030101712401068475580679723494253692916537514528489958177281514650500233812648667095316300207338545603949796540124330173394588424218862957611360611791812592315290991099415364639826850017049172263320718014285711824251238865990076233384054450554396018945030977273414350886822307374498794715303219333701486713081141568095230578933312824616716129889618814927336758974197421573796706207262692358611007926784670788801221224877493131159156281140686187953344536340723306328099571446371430962518984762026325941010097830185580654289973139072513955967877162873415907691527037975872676169640526106420552597176323563240297831122959715093872646527624486655418421574918927726032189382944576803026497385804125411370351301317349953669917305503911926318424755667068118502357989386056023906404051079308285378988221177621700609714782083758245852395262073318336046418098543198284843383143911736667235908682999404480969412246331076466923043132696785401728087397066317133637151303730170265262985974555634457000590445333850157309724542078574297592473849083582558529922996707837709049074637529566964471029747303244750465904127700825315374707311516059759841943063665226237880959213309249628427765592922674136858551946520472418081129868917931340092802282580183286182414845875137296333487399509469263344305380946306419946227886308432332808539901863875461822044278213104509243308573016467359975174101972315963477115095374533793602658595189069051967604110552438988412125591984984363020730157404964007251202092418599454981804447475336521818096135749348475542938881602776739398621313210799802552321087225878362125082596940522195446671143423284192758870384126141581080376811543538262521954115428318986101965133803428190226642629634411183226818579946281706173743067430981939679871067572258285214955546358743800279529964082940161804333174483726160301789423156163421249063469230499184427973118241939937766805055715271175520151347583970183692101799100672971781403204717817191776362007463749515821689089662050175071695005050945858447859846480317450383143963732379371355588634474245333891459454116550202969127925326099186317325619703345186904930500940417168835923741371844173567945873597304130736162329495193580892743944379158159699491746423481262968784089860632272906225742192673302855631589791862760091141456239664761605362239027467090543492016693554687533618324279986226414595668629890413730753937311175601425162517264199147101980238769249823929830846754226681681209953362472568925437766233953541716947451231972753168793695456340003384414315379888626507257745363822183932007595605460847489047209757078420781890194211879639994067717302212531419542665582462103022759870461049579534856463355987591462881839954704402852486484926082726566903841917132621666436765824017118820066569165630639341294268171585587871282388370103271266561785555887830405442779716489912202313731545246341750837288513514680381878735680409809073804270833506595350814596318800728900607042918527812338201060612965760213482140124084945236787023226413127674998538997067674396596996788172555051794726917636703836845033540012123673234570603021866713825411178454120459533855103947966900743441539017436029552982733388116159886173743977997144614834795917778015717718110169551582708683454701974293761458030420353442813103073676823692880715960025745087864487135843769663672538873163229054718559989599042485909545787088613339020310857766270484347267964065122380829691937658065211162759245674938608885352897819289735046838927924633520074613555140965843994492910995680997438303643523804024305452107409430823303997610127231247646602023837525974774420160233812437712080731197444672456506205708496108800068754637190200358096961694077531935693385696115048207579793034381237308611463060492244041931596041708251595338507844216873612602168332152357514944739652171856381607254565738381782994092559830374077435881117631698829414394622760822236713525264013011806845701872070347486396799620815156985032031878886589929427394093356318034825993919912459039725243907690892773567631309905871550028948458150785473824180151026989430779493997262073496762247691483762346544677083054948861592872223552275026722893931530438858847994822527478386540257417540903337128489176748452692488818732834627584968011442458674883466104319937705746385743709961141753431394078102931286659319849786505171694004044265808297581239230166130387128675144067062516715606711994395467276204164323940539105946748948660909904080286331727328976127333520371354028018051931924176202352286773263797848649102844146229481954221942360213142211166513751591415488408254700148945321438056903467326376593366369331577787670376940269426439183659986771226532500061804550153674287213663749380556183962040753692698986317904609678417999284899561750249995351921205407673841342508584015174517932186626023261729019891976009936799973672952561632330566529270338411969489978192490023440468744813884603728115334231635805937433311881272790543396573302525877528055747072104831922962017911389377364585682041895463617921565993267334025846115002307975997374623109537735984164847267793018118678602979010115023397378363407992836361525166106670031329001345608935348954375265349896353850333383453615114720863911724377110771495523530490993767016867827834445464088703540335650864929041508051470948813142980027049413269717553797000583004876263252309694833725817500496861586363051716076101684078455092668913764315928370209615320168270338073588522639901556113667486173510580000005927758777141612457540995256034940406791151510617060835575909151675320193945818643149900784051690084320875614316222445720893307047686488981166094776771206822092068897903109304822858478765802718371933997561982096552730257376968882116437863674121268638390840471399036598517515808192823102338979187968871101656932317707263931226248705939575042607157802743878866408541932120928371248793802065292749162054445598065610343307050777794856551541449547349250571051495035370219391927729444810471185814578488036238440982219061456826280509696699845497736656490830148531076134587668379784235601503962445060554066571216126137939276609152927466810922748944366251864808912619599362148522679225252389099803992009966455210309442044589999187396452836506567125563780991307709041062104631240473404854285261561848103186338128307608173732014840941124440198626272036064859050362225737041378963965901950153137313898862753553882659893099798596163147436879364304135042918995861677661195572283375163234251314902225374944625900374732615918361888386946107732494590399875332468038359725492912800271383940976729500898669852092404648216289488040881218056165834381783962726105789025635848259284792811126565018173034238376466876151826359079616863238643354458200548609880120169313981710403926814127473570259159600108014154226014420143501285718767129679325244750493900490206217480862678098440617523561880186043595163494993268794763810001360407721596639641985308034153955508236752894557873691873867334173666828594618827762868132577075137376739808919385998011523533054223685019532032772309656950871956807505917491209794441691115547755675397478540412168887985353856637900604149608217178253486775035790963016618231291043636923720252121380890198910379049990726016703985956649034622458049954381935027793314773525314642735955078080027162471395889840869215102594179851541803794319606468462490996732406055658618498272282094861697118852174002280866116990776299490270565089679115134380474915280044049290739974175615622013746192311937125402449097320082075255008303907427243865318309780195531318697701535253900989283568907390991277378492705951743669452139194851054019556069353504624322539899638333164840624323032603476377500144749693916443543437077700140215855856792371993552048244224890375703119423151765024814384935959885940460693919439721660826502687727803023671038242748394029249376521261856409684483607352156283757206859570142707955542004760303007627490458496060956253485327517522395663471095907716662307708326478825252724139721344993248502285821850056867843844365321727919522593758436375702343206310370452137179979932269626241078900871769735499022818112044119867922122262601719012223482042368886903250371043801382626925106120220887129790605261957019935529515196710089629398108478399184617562612823553732376430476695690697928628313330523696160908819115089438568966930968390347168033005806028842519528723902060925467113630846825088338756127210333124358654335242499187997451515638950678700044514389343085538026191735274457571290477096911369381257873021641654051421840921831514015336316837101865840248382891778857623338932987918080828190581287441142258478046865094142196049990368949308612352497911506702913515291294881992376390835269995946325126599620222010372167483712000025772511371105520120833658781746263083914262083270536110875229636474958380833939528543492484772858235095157282629841986484854673329955338432022346424060268002163413031874914559561301356051239939341710979825718743722583150852167225813044791800550269996983276564029740022199487712963109973174574569649533559177387862038610036589341975383585916129546246572627275212881748473311574004571472165612615879061292075247464614927242864368255048108036805520246850560771519308913662122317142069703938811235885399123272744148278185099944381117591669349080420721292780000353514050264982764880765907749039950020421088295979844195594201512578834252289718569704880803847134882482702468246184896390966242557119268140662544272395940892643856363965394121666616369674533564388436228108377796249943322094369816708001254224937683422005073724751754091737403968806402551647362928231074088454901841415178067045260712121675263204765268080983441013047120428341536687080361505616800397950714291532462523218263421195085684792500370651191184129781446662308800848037241494325934368376698074657282283802744833571177141176239359397976927128371018990751477474322846618280524269840647943987355442130493894126535629627909377803185675355840921104346648701575754547978632326506126162446811339173061102224784983086050134989420327232691087126437783474491877460017929017825549838568618962211649568642617712946785203798934871799762527829942520841440675757300856972426688436403202828563007809776813276325254952774683177267096603869386117710712793633060084101946696961135689264218211451196947273629236885475285223714553156043280811741132544158492424536074882847891814480768336824649509635360805201306239498718652527726638522599721293778031737704119013132797027997777662118109301171921910701348339248807590496904188088583990865977141615084861749177227778056415424947618891370833965992641685646663903362230147661721132432440871706869577154181494903923759464255436614611136636175251386063503768649032308535283666255895511645356570705704060426119236920474170507801809558039218283918957732900380885364405190517475136647416900391175945417604747425121031513784753373225491576689548137527298613452749469732463331020286892665641845841328759086173420748318233713040525182665571552544404358739300143485039213757793834491457317061646275840978365481049520113788946225026397872896591021961849263439747602727193938127236659195630866267508937548210099648037356325126997352572735396099964096084661965885150317673547449173530826383029438707167384353687672885688111540088742075592067461753599281007016202378736981012711261932372058230966229056419343375455932118001449505206698547986889717725093680446250451393029275252922201797760041443282763159280840593879045785785719261359020395513465100517272386426078139339381888620785637966526861292547601935985809221591168462522996499889192147434226251527631645010249390357134057043811760959302592219632490567504958947140504764263971070449928469778597807603256542283486761264495570746465540389634898904554480468063400070601162071442428264957615141111328918978337075280712625033957905493375104369791814958873231865853890031090105319364408755717351945731872731637367812504993289637483765757721621472653452317706182031744850337278303659098702535507684588803866810926242114512679397098866521973766551303444972000764384545950648519296688920144011387321891601387725322829201704911688968941505594903379972893185446958118912997188502528240736604423758537122454291277176020540510856057376305237291348844431011800777669104133742680257302797117013033289588392368212892348500673979561661226143503129603660892424928812657599693894224263885488894315811677988828745571920920025767219761803392388431065556998854847913193500483823844179074171988732198260907042437294044158851780608626972973333977677786109575945962665521399997064874075413486686336620549164103640948524858830611505151306659582773870251179427164628338976258300612052675151504639759455984015755572974900817746858807085628564513448619042079643520026162999917537276992395654604504086003467019483914915554903443066656294202361459051592890809984151246696756558092646926093853888705308234313526855127386401337839335423548542021046661456928657422969599140456495721697398909167845443100565058075514655376378913891299185032907404632044200143244407148416004011807618323484504791127361867066474027251796810137359397062849838688423147350721091591355713250548196799213052531754279449169681621814047607871534766079904646171239179222550267550043911920688055700413242886142054866583011277408274066114845008977833988747154687340836000371311915620157812553136291093379146771877386212155823671779808473928407873989065445174574256125694673222736748193955579947013600571215712584023760099789791067499902996909705634478111205413235889412912406520378729549568368264227155045377249818106361413444609144164984154615493315753854072917458891250786289892216176116071626605997251675202684046669553731137925789585479789193072300191761215910915133150855188407026760199916305277140450612432164760948325172557362405416921540999910883500019405084090657952282829326841161692697230158151965085464367040811247914109681891335122002801737113839321502359529599178766878398573417694683165548862460611276181646690147278384355954001124769238347822241567805792547052690474542529104972316206380681036425036201939908426226808356627881674375076164357304007294459447008519186944348935572118007108105608672426503829758939087024328506202788387656358012334115873062967275915000746254872573397203272288664801886736826669135189997136080036710458076413028952279730862442913201580050682974723421778903766145808722775571777769198462763160386132786634555146484607868612803648001693496872106542608139382050711047317751316652922528790882814894769523407293289128929735559611182820918817925593838572867598733911867386841154444290210242871396655293904700103374944741944608250727792996643883769614240695600934496407477333638064492469672867556406882590477837979938632122547588693073558625925384976675667642909670104509156744328859387033637972200694603624116519488194074830867506029560609449717863997640846043244305553372018219190467035778513789364403076300627877034543921989820491451829090016384392730359204675225955441670935091671038362618431052653907705366260766823480836302698597876139341340714907705713406246815136170836905829808944095261708764843154191318586659287462658443534311870350599003006442894628013304592660998393852971887549161721962059537377179698594884019318062096411265403110572540888624721096294039781412687221142888222524611912068697743613080465766022562122971653774820669723394194838638092999497985757371434246727319476064127092037723835427650860427133447915114757857737338639852443007572973206348636741402374928878787249522397232579185656949237669603213627143554110006457316457797032710240356481056964107323682351157479735922902906662832335635260495235828038832470140764700339806793580067157369807341087951499045565956305232619003251704915722326569871046798675920408665103941183719720894700036684725132403962390634773229657825836949515719321945260497678452297926334908307144513178474287273637224305232884175914913465742244864598124775200507295090793498947055675995369735074644552668843796302079810629425058560351795662807534863580633414178094726147980992913155603148917629780228378890839044938349843578139030602197550809030831068004402337073667673223306215730422516118871245439368939741665310535205445312910735415953308935610762591841925743677951947436088578318077849634817165667581819082778956472947507236297546908424018208156180958430722165290730086148523293197453493337956044494249829182471142823921622612367013575504850806741671542423675035296517873712810454227057434869099301131746898424097653147151799933563977178751878409500997875495418138705277082000296064120997846521245549400979334227200789028427568812455979907725914834841278476367337274734143605408795659966663675383513416679902985878498360803377872108415000652000840720218750935671255532846942845820111106369093100471762641502645789895920265152516841031505182296971447007996973588778276335837656393426610998883601721561689620266898784492220674031066197143755754311191190555983161993733076194814765345125879167688716671269107956520098594888487115445233974092282081051134272230191643848303815030897813032780334981943636896934945809008342241704076632781636598383082577582304913162598311989789041686594878805379249274174498854768131017295229078871322357834679384204031501592581512957554894883455568837202243101788411965929411781688860099314292200274045032933689834147851127745425536964014776164727096787639240483833175003626509670181768788815714699699288510184198729680462012704606546149972342450755030024669806986215622335492931480137890027901228224046913835114124462885340727772495384496699677006055228231735348895690435797256070451492948360749857655627857501305640423547714711478334305628072550318814969258195213374652767718520398851599159768409788840285797877661332902360151482085737989548946325610048907264623397282339444051896089548435388216905579712127370115684951309778287112832568428985747711828633951502813006751129739902023633012859515700882702405297786359120877521766078511039828433935212234761083691883277153865511924478018257234005423759162980272623214722409617513959589807406111863207909634625364113747051505328195880549176623988643396322343140619317436735211436349717319585309989494582044014239834632662105419680025829735304109798113305801284131008264733577237775160398549884307116297399560835817277090772307920619337175057002314666024258365936270944955092064862801206082379088779973248540768057377627424483960622321527840711778352477539530621445934847161589974822495345178495922702163357328988502116266997125375437176180662703479209503571732962834043314157462948366627794153963721686387876920506264844594439678271301372365049488153982606985231269980356547904830771311433138459992133382311130953118656716337311328978372929919639371402162284319970448023075903803379344334971060362270950997269915798461240267907557921001392019635466509077439879650610970138676785033730812257214934063485539560834270876354468732483574628661901396112613522025799585062790165398372164147834014833329326013799926295965615109943701387517392874920173629253392683490565383206580915088338497406253079889281597854784763138694631489797893612607747301589393941446343019785916592919830430549713926907424078973790889713030189772878875379980622569263037565703522489843590315515447898399148139270312026775795003609240984244489874434839411705038249783366349172826092255490280859180851493265312677380084721595268893775614226393365571327452406204662041162352180048533523756154736146510792282101752126007906320979170069698202274728329579849353029891670213345658492034835222871967470157018147607827565444947933128316876445431290904760696137978451216798259780039602134111014329351567788916861206934246950332574014324196524892612702581751897246192670999897361239908005559943334968754112617833789703113926862127733533081020436372046930630511483831497613225865629006159413195472148757909943081125265151369454903913353004476650487374422831355628422725635391276404463127672137953099953160833730416084036066965734601554082288560858995762061518315183109233782407754504327582826716784184034742392134445895575208886527707474241063296244208785074982075349635044878880552580604941945283168418508613278410386059268113512946224071209169123622643900882989845197556952307443638458278979412799235158727887272858007807638249491201647939575476473603617320887894751805651172234426997414153190728637695187242567621196952165659418801121154622227230112565941208807329136377688214810301146997207774331674527694316139206403751368437642092718291111229981939697353395327640179593573538780424766403553028081374232170950111171366111132862638987711831786903459884864098718980043710916542747888997441892089699117163028691941270627046950674358219366070641288684265443724927337073275929470803217845157278254538521500439286593285537140275869375876608080645883902964515826527595715562076488877327687973468313893268491231113903295609933056446859786970771545580458313905782049325571532402107488343099733159451129405095934843822908010504409189398903801439345910674743947959069946307699108937209742004277634675292395464391248845423063227385105697708386697806730480862014331796076256948574372084348726637955503160100073881810442809608914657331531326583837282615867083659620010352528004178741246509449308308972370046859763832220943463501636862765931976366382460524153304066391861168045310199037840980108947632855927671651411667487374508087752523906233236818239333259458075801772393593549689087784847360067136584270676208233273440529187418255056504293950848526011694695890805317720498822472669373490303854443408470256255550328737077869536169874090635661302769706161490649838127759849839487426835820433600504717242656511597485509416263924781940484513459232081724764406381292026564737018389044963134068820919982880531429984338321481396466664765337779841624912173330443640007510710200815828812407331318588360238530983731373357980167092094150827226543446630682768014892201511229927889340583766046401457350645301246178041038939691952571675882364310810798192485235648653288017187318296495957318186174119830948272124420001695886327726056379218988549660778074543543749499508858012701289197156531471772840150537404331481755767772244652389801096555090924844054994502104126133547971144235621931540104130009029610574035695740289156149822775867280181929062689586547041853044012906616333310304178707722561580940658334155243238639762575013898188251562092805414232144642543830287116929863119637051197380296301322291684235633864446021267451776618032218819004040322142270164296141789747911477600415851640142114836671691071503302152623976610244879497085743526221229986895810986658361999434655963798274199610807687623715318066734249810387921072405277168090798204541246118816264293672366432847521830320868067102071653172425396191597843078896414221429885543625980459650418397173738569566985132995911300391652120069849992117376527031731399173584841463531647069985021684556928937425446388546659304297099113452595565670359007632297459649908427521637364060176029019889699474038530139755319432719286367524670494798979398884999227434997866666712913472632039047173352450164036059062189081697846571858378385991263511242227503111964455932217538284520775508862993171426583529917395057654704880712498142531624923395642468311465031487155975916099691644093037273780996411704424501303592351070741877905193872600271285106632785216410854259211758024247597916302894892234284196556732933547679364526609431468927933116356305053501534467429516995364546031348883368301724134715186910563276831056100132076903913119142797646457350649898353656943992318234582390355129366262640679178103710178269356834769037282545714226927278086616824494467506957745388136967369973399985159039488962744744288436230607896239515256060655646937961578915215854188898107909247959698979572543586848826150563123152533117290109492887934820205663066973894926023849722903096337532793081034520350559573350286890738379945760265303782141313463084486957276157927097894650499601914283579184329770262449253674719555558340084650813897464830799523240571711428184323850168536656043423040949490463738906660346070732590883064375179110980944478171562614460086944655400588072085507570038125932614730470215138186944982316277289419083451691503194733756668136846512024023059048817612671545301802220804199444963229722944323896446380857791375892056849047611958930439550304704271979631470939318309111305753703782505800934308999074876619332953284812800235175054290257248820674527562209361180037801055831806177808497010791524827761929023544115839158050250312576920729102165441120346443008319676231328323798165394248530207350584220404198137363728250819253943883223848268969721994993162490537358008265477594949116905822518187113010339982378124313034601478380697250978744370933689204274681299463834900751647311491622313259924542479714617562812597539971810536052991858189350128791633619954200779326225312272539493439586058625702668595466745757319307375602364681879423228725219859635207202193760331773460327094882562067351340565930415040448203185860239831270405241686121951164755525095898115181630253719274311178797711537870423445142898542271656280617321422600011513268816069718861140046838048629484252560588305144992976301959165073197989536108282759900969561611020405169972665314469616633260252915210050628989814960250441013923235339924282962944886882607872449348319466627461695199098871988056737658892223197117926547223103900019083096854121153231106800779429208567816673182659040207757607296668978633927517200133454461871305678845803693019506154957901868412103702892814002377989705246743780755245247381756828120618484622688293920407434619490430548105721534886237688038491344419342257571783303959500532702219492684913427296662119442506909982853662817521609778771377153431754470110250262460787720034408720791242874035691885680273672134890929125636738006413542661480486271456125954772376759425451936875037718836484194154175245832524904839398005277557155641728819749096532636059964302942931473647625911404954119372090757726206401429454872891391784342151495798777286079958072746570043381469629111396954753025957541526837030235507620422464340814621887187736611341237234911232818481735754281978741292796693985856279025395667181109356841893965076294560601279141681532092965702382092517749785071612222995934905281800641284749393510459784024933477839409031878029788079205517770610785366963990693878818552506778793315455078867595920806268329276052892666392818222816180995631495579240073128501817658879848808139904074690990845986090177208987523806349830172544081204156783292950396735833727070533242437681572522541041498759772415017199049456061779315654858501106899422691574614830493592560489954650999537925513301474006640911331029409875951424745364497271982049357351114502388877771691760648787443693950680744113588224719826504861391830971184500079181577737697855131556358418547583141763656933432304682026514473899991611048725460843115877499543330764121573636612246432287810818140873892773087776368618724772647336525465154774515695052785481970063484922626906388169627705343272501270558839791912368631993904278918536501031776284548834445519257237040491975542548387677303373904312120777767620388028198146289507527580873050902874589785389677723665607939376697286653977908519377998358779775512230019911231511253358994782250883690582957382750721357704961480029428973583261338453009218603265948626680103284349279177034285201087818250871721075463839841254758781400095071185230660343477824060273786055279889858211351624033674582226481020904859821148005781400706213313098938359305537536832801270266040559819468282199406152791479959264362343312274105581019112835801761251335494139219954880139848616278916220633996379422904524705859163058656484996148996046425938688361276157010633435354651748015372761572694384299112884009261572061917811744246252213785807872404451534943708348509348813997078133090743008970179382948163379348463729527318457417463799336702303808526716174825815709893227863550338389351941429305931069246221980810804424748926096559586257894610357615037166855192932007769430600863273186589791052237001398824280793672128856291148209352553636639215574446716438555275993642298734148124651735837411474725894632398030196755449147071514814708589102786554894223339664211885654542743665186274287310512108418697285999401769839672713928825720038966484904157417546538875705608646076804902802084733089261647554129391214909135316233852062186092151298975617826388748424836030133964203505528609890121905001613514076362979124452426294520793772923554248881310497288309713999999931766884200064577486731392061579497527877654309792793607237454354663897381420763714048843046306341504247212445820424317958704979019385833343062541960415251017284422340822868001146761556295737882815649522808400829895326674827321866813123318674609151965720959082130371857420603832457587662348543746380300682961968703684289446057550930586884306935014576006596661310917639099624880055931714929129724566299936061896421778499584146307831318192610130861222805618374113022759169064055096825389885082757671525193334198603524428095624595522584923734084261244156103413214725651289369055244514311991265173861387026980915800506581893162076239583320304765362315512835919470774455088116979662376189021210437270177233511259345918335301833049736015225284029467983998910571064050861372446096235423314244396478876423472043152232011855886913763238960077107973463989287512649798006353718609180693475753958782675559013491802840891242285798456303986850336550381731021987060753610414472331730027637438276165055854525609593081236522159001584003450268860816665567939507626338206830605590460839055546510198356005637780456012175906886972677855344450422673815369970496731407573378057709901298901096276012909939083679566723200679499271665513041594863590971450726724666778287357818929968964089927899326333024233058276221649447269024846705468654429347236627874946008189371343049939727973921628672809324044655292297212094769298891292353194386081774253302275943604810514999439558958270578336519137740709575589497409586444900844070810787940431067626349391897804916925538323362859216327580705956064826321160144739012175948969053746540569390226500436879519116348648680565389962810042169291933447989666987783013354969416900788752271652915340350180741017512621926471906977569946001363448299326699926253452204206373606985013215870451520428745765822704929555963489364799125661766168774829883409466515986424916633433695996613213311606338966877300974916882165294200744261477638750899829458577495514960474376428891333377366953859629356368762989429751834277261879542137224677517801916112409770184732062686613642866623674407379082744049681212969158371827884205766342033153300797617842995677420233369182325215201819233842493790785600510163722924324500753078046261397641849118369399567255155490532819986141088266607090642841082843560806983317572314543299609586329679988885794948627330011557496910628627026164089290050615677932972259680934749495325305563000878347564304244373622869176133727243625126519230462860441777820367934639103259841472435006771423672491091001273422627406610329386421054363267259658974280154744375153171455612306880233635061284609595257910594970299064069665721658082818720070349056825399888774254021630491530367863932444678006462283117773580266135090257151249759572209515205591103281849496633077298729782119581162573914609322771818100938522065734020493817737987170713502088808297228178411193317889713616082509994531587904286982057777111450677686177508141444866848866826166263145714135121096675079135028526123829467027566732041886363162535134401739647232672497783359657962056404791654756621333884373767377522823108239340021372502143204287760532856426090812218197317089856403026623800175422080151043110370843025687970698464990192849636236658051700821466415323893464754731591621829461769003378412079938025553475971606230832576728662703894237714574292862855689148094325228639201157397728892295426373755004064025842056090178837972474363018149110896646364062267645567270959574909984131243782325348151473933156826886198440179090565003552809569241147429839827490336890404437437767424471211470696145071566111177807194263472169896270343319272069558776491244085462573494828252085777456889846100254230497755463391691880902292115877949849278110283964557735294517231078312516015976411358989930166513987324306822934202703848694090027415976481244729697248790157430251481504634587604603162342670405357212676614766036808025915262294210762917198135351067592189915882651124317178695082367090433745916061886972244620825611107483014718638568505140435508115880321516937956702387606155725904737113194046840744856998877865419343425576874116226522876233000774583392118443545864445169086701911356421802652615414742382628981610355123782912290450108730275803170981753465860534697823788090353872785221491652730585471936975114740202042018640688676490119508581391648925384888006065832995563353697399580122681527982544927559163949231555201484074970252998877304530358868622381098869944113171327760395029161667008555943321917558650151731333287531194606556754832410442044367225090587511588473243738334623996738386193106419569531952466916232735675713577832388368084187101083635897220117975820077322139164567119345579554804733076156761431511205787082951330297040214364029441615781518328502762542701029340794359638469875683590626314758396410612441696634490041770893246252305300179025573416466995778912417045161294802794270116406475672578694773504871398709252916346352975198715759376204076457291182259649053690292414900631924837693308022390897649864631367874594531138258293073722342780733527831230532088549352749971441406728335744395260737051109442705818535492513515360632048522459164756513355957181665054368693487694973585282024296210976901493453289396507796527174155744986547513121871238194428216878142299663157807397169990477326730852931167662553136887262667222197415982200386197468542992330343312050885864611682909277676153500531316288206065989060647326761040268846470839716869094932043425472462159040531103683521479232189672055833702964113742437859832440687833979777860301593311896399576471545275515977083419731694869062496160694189810044035351287133336429918692013299972917617930183240225284418759995217059362231298260100943474369918131237790992986990920839679799243148089900801841166635979222968103521591067304449427334491666476756128606121997262502557791212670443392650682868764606646886101478862138400899815302619742014495677604112802459007092843057786504908934509012203184962945436430697257034889426226342514472738475227653177558897598508732830449210963301688377130447256571908298337384789684607818756029919027983940535514164239425762007756963216432022798428312156709410360084706315528986673230321105336194103952659829949124678813836748157440416023998336661406305572639530447288908096359258617722415511533957448983431224850205018897909778243842778222939851267463603963796719080028242779299203526073751013166503562549879760364438567343198499509172163944317987054624909979758522719944478709005396647892577591944123883804785439173243955028279743751574604820428609390010614972376520814713390893549435977549700124663973407335051069220906269317214910111529271629589625613947763241309322415047900031400368687449467666823201959443311235823631387470647656610410017593472927259473108405862015609766064427526787327993211010653241652294555622231836799417284491105403033030074722641777930656480272425020857800766642415936960164546503320505627917708009137956775598540698689203950934363407719328828713692652831145067229054101622419504497272582437832586436081341401629841001223514541339898415529800169951255028546809048426552773488225377427524709379884745063199832659069557741455381628825568668484405604733681076025677010349082042494954373644832937583234278609975718355508156208614166842219826471239165086145871799291328213394037912521319015758296994076488186405076803555343443320566202280398762051955868984337030091976604516362598957623531565643993184392660692546986536789146352892296761071861411018746748386628897795260362431204487783798210710152268189888762029139318781169437173922973813066589369745946028904355207911685798706383495757095351821197885107826819461422932181825372547530147135735393552258379260314774503604132387604474192119228241507439156918257269057954579847890335364298309223429760176045056268391414702456192699953084614903001606155970598076558198578644953267316328808663206387188694633565256039643172951941283159585784562063677188141514975172531900778496188294267363112162782871309597098452764409178224727813913494151289910009495129949084530131667394517749229171332040109396589727956605249435485967831167037707210123754005764426244639270374491838715349118058890752145963547567025622303001467999439131258443194862717029338775200782717097705209358118795758379846517263297864465608107186503320198016632351073219309366886063005281802805502959487118684245120491624253665864882794462666735136696791002633124220275113975457649876053671285389575832687703252881582783511818959364777459961912374549774928640181330271487594956888942294895605276344744747287900301279709270005776941204818865640131165890403303183917951590464822381410156094060757044898272850756688358554797056265364550972002203781551869182936893018321874878835069591495219270372871775053743501391835976401758337169639824941399526854272918974252971772234119464977443161492141482094639843931474838866456671406905387920276277912155172208165654776343837894578843549649813023340122817793302461148762831961030686801626893904407268091437115101355218769983959522421325208542728820491364491628602466369501630381028274856854707648905491036496971148959261198227433915738385866911003070247401279508233223859334312933531450831343023221486976465946766401869265639033191556588787224898331306135742001941662512163632793595072814007333787892812746287158197896291575663686835863742271543879933416557487045762895864591352619963369663601588797689749525481307676906138885969938936032081007545923092627449093770979435222531963572062443924870117213533111377348862765590457764842053310129147706292308006015106703120347860073107019792637500262712909455036149392068135281685658740129567111129235213577697096508592270654361324924410216158164053310143850792429255932127278060469674153755315366622218612873661288038212501009284211462754495322897424876803244156152797583069565947626893450244225069535509882319482538202606378606118144776381495382926677751676296398915886730148170733287207589713370201856662042473072121833615735397651239724782318664442444399203508555625311693989973138260285174915984742298964309271002828373163788063096098609274788103192545658836877415910575783302038890122894985792109307086528439666747829536307562805927610395976693060349868070130647080131302978680002748473692467990337893442334389382913754839424626882845786276811142552710196921105975126217804076155251540399942435014551626673186591125624737584296693204313732135603422763009704686804028948009042535762227015245499173850065287628208284494723289774622140656848629772913454806631603446982594735777563051615561494878213284703224294892879486694433963294461797668284582910118100703473517948780117922398814914439787513474162487573909561315372041370045521680398688371408160233579944415606941088787263821302033897100379995101633597076661339437864549992024897512324985110535553255369726037680684043103036984762410327514468059848274983351816440936440742610638343081328682183870690167024537064621582124080120505428090811682131755941399552954046337850596152681166600706707511680999310323272191705223527868652725312374456539842371480713126990802149814271090798456496239479310363250393271569021448536393953557099639261341370635528369407985569167586192676186102220691088209500317590625555879904414813439361677869852754242908426395239937156575545174896278520062256001566789526591209063831837336242385998834385382469425966429583324190752934227499512603432423367441883394306730287665435738526954145136933310502653576832284676609652036887027973977837035070371796254574244575405116321772455479808106709805517585095221988761920281307751711592751508217631172876828593643566576125681145119417040040749012841389837314253439671826681218740233341031225327906427534586070399277082316698975465507864655535864159528741126794498047508010754957127072146993528337595406068957724979157753006891296230932009576148692231089102854861005447280910146530950297650010889738050562411130027716274978796066801098585362255037503645958560788191530568240823210573476197744737554357436311827704785567820754735791745128452812892923301960362002196844075107740991067252989020522086747614198650402310249152882887949099751684370283988453688478252055889608597894861991227227244210026542524227361917056011219848187726516685098529986520847453173537559182359127105777736620550740948206485940818159369479026415242918412242157889120819192996188277560998586035663635906925246991418467852638877744147916545702337147947317026749946013421642586066759577819971871771744199003808949346355133193376144715857260307689650599119113641741228482936083501069579905900105560783154374823286873097305011189964441265208490774602217678988210846759093973430785951968308606216133868857088077816795733760410557444832882223236647780711239677327847122364450138379854979184748781788846316117024284548697273273829903951563300368928510210225840315104976373093779185912423674580238738341515017478509931652233107837615897876035415684655112432866627795286171870219866872272928361546769086865441659335306217030379104869837307696756389351529470502132754446991603185705185664107150487410396553118003286105878078064082422732142474806229313272009979101939245508219381901852739836621829319630251713345336081221442534159051281520621784055562125159883934579923691794256160702712756530580301206539186151156967181186022482797745704915346674977691987031788486829877532007999293616562276963896005688253021774998051000710962523966454562848832796752893768272528984769563768276679698958854284439258773181423240515422262463344831648788468921707395699749665046148767080379081127283953062570104641318104911838482847200039534429436918741844692724765716118951573729632120561869803440948045232293015137866122740461483810827592351174355098230761423844489246625608074487154799433292473303482742294192823990769798471130814733965742259503148618346841593539736491635838131297024511473474256432880854301162816071212170119534384016794126782415191770634483034483867483398698955388337862373588683753558102140073245252613997697403020020177359372345339339242960463767402299991717329564145135849611548587271511067997975695721191796731258880123359492145212673076850778466021025726311806780712399416585041444435191621820683270747647443547524363502177138729168249814153744799213035263205664274025845424464782972529837639803707331393373468547190762146761554758694458991940794047728611312592447035810458466573783285624791901314650252187320811859772721360124980564354562725174477207229042236885030621309084108662992448187554878737231446497749785375473868670820926514696018100209539189940905846359292710952887918272055313502312112723895891012352915002373562458986960639622358185823505557813936304067543289860464744808197132199668875772532600736907580102571093215188671428849696674498921087881582544196228503102137021961943187757971215740207681848110438894449833102759351266319740844737885031954225163865622413169704936994751489742620505886234935996823566718796517105266963608113162296072929357236866977479704391417810485991258172277786314407945994537405736932425400489073878476150489865847500364717307814444042735669481325010191171732169878487632843885792718019452620059286013256525876669630108980700658784289368025539513604850231106731422388078829329556843248724677692708542294784690548906307464393731531409447134187140952046733908710662700702959029519933445918917191477301996296452606482670808924774939554724068558113089467254536563023874786848360053898639887443486879075094045217422117552513879048851392060146588445621662311787154723024829803647851362659628550262921209610888633697547687630625628057632499360353388488298653123683896885462351607769435480933714917455126503649190635428329420840555320838537820501002871822495025917634995722171985181633680512516271899188392334197682449569363457019720923091918112811615777722803771197097486913742259253894062367274922274970081019545965762860807977372625639268404347328338478561698525670958924472527821383773871263065270777950134284475239429553838706207177605730195010400371803387313479622152583748232873914883401995117059282235393522605997693180387563146012360755036068834136635769740123051953156902502362256179321757897091079871161505638076381096633258012693620094150126377399354506240840139407689705501050563730688185790160403750403090938309182354492601335525100809947279469049737293794439938507027230634026026928309775057201500534212318168250932855163427345076295946286275537078060528812728337813355724635032482445877132854758205093746602487200624247529040891541361612420740595614017506274744278451258718609216676049157827200594962925542914253650604795360205723055529119414361170134038155234600603218615427370308077284865387763310266480502878643797087959983688320936379968845142058175415767523156684109009956852525665641610484266310794844000058494114931748533934803787082633775280629614724043504936160478743327993522694465848783020468688275415412224411156956923019553191904027616341946548657223688245297028720699650953399548699611763181950428668411319917384402354562982873918113406927901776937115188171898943762903326500958965077487508610951299016603790639360890366214374001383602634180813108525180470281517490413291999169276508312978345235921625661191139769503740955558031478034740146689132497192511573609666964283421837392682681870650793574512827412150930097891937805060130415264458592886351660583545573391268072230947899567060417392824049028951573448991489340595763151790565179752766311994905398890204828693029497871523665552717095804206063089892222359605574380488627070718405126347656626703079025784255465373050262331318449938078787032010867076084408110213993935356695590803720424179354118740056874643979615902818947654113888406508754599892003218647908969396566869652082005771465785483853052938226131314573470940551592348436618726440186541854882623784901063624312881327056843476467992097522453163033801964084564528806804524524451451502389639313024584392856695704024448445889159361131142173605695094389510266383539257074659096196886269411489085623952620159898820835320826052643811775003079380832828227647340687617438378532006252510463488508272976659458642012797309930895976053689515730977711575894064413165458534191341412556842614577404165128812037657277152471980180529027567467887172999471036876695335726626812148691975295744225926704034995325197090148245939616912541899222508178312755677189097378935555937227850809528867510766477668128135435363228256967696634615108756154868697617087119139679550721656808291651030109777538331958059427447057480457504321956441674914789521033906262191772700085870084926460465938427017303573117291813641616263408274079033973732715370746305174774375743971141536220171936743499522622498391862672974424153285980628756873793556444515370127599147976536096075987739674283356619342699233376735542394728670297204322156332971680575991703759527886232609275735848195960668202095577738070857316717292205513410868329587444975212934130257432892210696738546573758184628056534113337880426129478848010029796139788169288916523533814618896495271938608681665099586047646936624900412759594027235316847128605890838976621220373975305071578008999514574352136623061241287221625022506679677167537833049720150632713406585797546778627114451430236637420415953691267264993135810474379104917093718548639174644040608788873036277782170293591361007553633825742053002958048928920151089845829101221713062391599867520901737826199529956729169944703629581908973306797428763243156331398344183633210987805452279641707847596783881802390494872128689711912489530496542248556538480214638573144081929515666286097200354630513813923643443241286095398933705470090719585156266142476868143652271896477656285011450313377082332074493570346768816470332358823489381772399018102361984022329814142446530567368156678388730423788662801305983487556482363500166329005439063101440339575944504596888170535098642486921570725691236347587387446217584987679407836143640874995044060309459781894739647139207335696116865097046774820243383595092243402965486446692466140014378233850353740043339155114623647520725286637588860485731709762014240859207650110013387189424969440584738415354884945768417976862833705208811062805028677416915040191964356511653736515939219857212048445757565940637225233866392779854464886976838721990291572332487246222308582022275636304120838545454194176695946201406161729594341118420984435271498483958761560282069084677173294691555272423300082841638267110078227271964741714111502797523718168679044425614998743405038701610394973652928773799245809703222162863400384973478203104567293467841788862355014033652993966080198718810408121378554375705800817504596307819753015754379179193933493250310104811929472544640027339521236420404543450301215231556518607355608191311666004326767990129369600961807830904587797589502553802677791190074895017407407807241474544875008656365265915485417495487257792048062485483823750827371753801663310030305726957701735597583704199066072620063790697338385270930200587352559867681086582944647530405750583794693517230721752768649368088155132380753191128871697404862745852726080692533829559285315414782578025091340142162772367485385755981705437196501619992238868503904105724286243033623306083386027018472601129990424828143778268033663627300552393622525604407186559062266514277971570579766957577502754959768715781227285388847878781014409499018180297580623291155484720550907425383260098373442597158326896205214679241231472968574410655083745568106520119294712664936160162468556825035977972297226376316390242552423837948144809402904658613574477253953716804216606782377814603287397908597526451022602003716510678773334597309993250723303186204865572919071948771096071849876238481536317787094671676011863709391370243119294627130854652486997234830209529671843969708746244917022503960954819159926060319373679205773139443467666713737683910565606888863452355577000091999519833531560876910252590926910893300619480661625741671388846649408239350333607053504887087578797312033402284827165950213828883773455443644519364802167232921758042354548556046407096996037811371805247499548127836216356510054661984760805387332187728339020017871812837134850991011939928907573281964416652835934630789840291360045353178422116041037404264000765826550784907481372129979739208875529216741819919767581479771301232351752458833480569371542221671248498064850722406859006675975112773800583232135370080221969937931882741849976052011384538748979775587020043276749366048328052292931597751058389270831291128601294295383158805216778721650574030377815946255853966608053190355377565252009115376867012081622437241583085888493428879225591970115210773334906552509168842954357333643075029014909215733911972759205868479283997265264485801059209580415436276986949947002841437667797076144905097644071706852482966951321271636985762873011915357619166702383700429480730582911959899181106965465008782993796136228956923808980712675881699439150275348660791272423512340060538333879131236145926046901519332330523235149191851871771104699981022296645547085416340929355511465080358365035477621196329491999414587726626008354136437589196445072027114417289252620520903282593126069100900244860232315924782790511874350383553597451290985145721060520876949004836112691012324619988985997810579086700983177252975095492689661549580485395962214714044602216221740646998844787097165978500174898916936139711251050756417850382706527049797708300745929252280324869808854719174084759994759378296908805600860052975905489736525502846312092073028999453075249393253875793805559937204636544921183757592592857719506078186829860468556798331983786304026585395061059531222350322256128639298640551065329462481427665165405091076223044231323386084621190024213155713707836352751776377224691029395454993419342730347340026589874818550072432641700724728966631813924979743684132934920732486498753458087917158323100994465052692259433965377573142890098115524262977083039675278725347607344572117993195633943235137313737701384790936745336734605154268465635218066211695727072105936836485623515129303829444123531336009420983478141429723743657871191188742936651613099206908944852989232566946614302012161938525799519133803841186193892367799868493246978843654622699715611027019974263616592950056749406533987374033881473582425322475889267438537809898617815806249985769961889598421585944824031279511979833506755789660745137660893317750259506330166570350972134352225237694813166830829292063912311375079204018871138959842427628104874799445763368155277367237340539955088591322415694520936394611927746098166290719556333303189641027293044827676377454753839400507756301051213757475894657486317052826929204479789300536994415494629116369799874224927030367800749952446001925279429045140543404962252207067724174144590127758493043844191694718244635894535939390830789523378803895433890359222988997444506298589154496813439028830830360916683840003695132934181603730804237573870717324562322930424109720189860453003173899620553578128544418282355061792320440899877412906189973128715421638216468277986354200269122814615974280512005192917792210336553990024891563748670369943612120199331705815084880458080283305646333288559525795885233404761374579453435676820909288793942228680477825485404346790464505771203498504277786266770688821042747548708525841831365559444120624195477806905673088187880949177038978139910662412910854607112964974961532934288180241119214826879892417871353581821762064061951771334053870494016817257120986041876367982915526221053282008477516736391622494206369201610161818787901716333934902222031570464958929156601118207803305972064699370958685626772920110438990005957454765744962855330847577662416750818225903068287275069878488257217008421585304869258317558225468310904869182779741131048929137166367812975552083431921499720774644944511391095353451388926693903543337267918514971086606071349232917142957820780963331112872998094220431342853122205553230474635321503247220394480682141843380265577877704303313391612427662559080141126722763973880713509294801657242657378036719365796198092405617794861522862217607997428061078624606853360640070839707114592742334374037273748527158849645044242038827003985926871878524821286739835340528928963894648939131289801119522457109164401439304742571903350798241299511764769485141318150826335867388696114253323844864135918454793512740648627338017620715010406334262438386195951917758340343087442129509521175190322595371899319500855669451497770616477529853796317788916280981822184793493580087267917986620952823889876380609022267212853483193170453725434222035746088250068363420182900024384682626303977811848719197368915716207812472256802586176144648230511721995739371989222249130411308385432468362936477465480962694911649560780968583080672297591683428902351587990569817403824712174802881505281503977646810066108627828119446543976228133204447723832260416402482380796475396452346258307257117595988487507962989791255209533695841989368771869471266044971879973273734918932450159324541862197292595643294551313502009559337653286479618638662812430092195572577621796394527694328178065718342029946520570179406808738866744384255036080320486069124482917092481478719867575741838154744464282949002344558041964583929473876401063111655821576831373136162262998328715460255197095076828732772322029443889295103218631336526391245946304146348941897317590138847258071280780976051503960404388374826108575490181641236053874893076034032290369593696492946945142578142915205953627185606725865043051036975872641408927912512501246323193751289498641695201975797465463433057256671217951715736312308240106927401195790213771454471177652949560288315406297205689889858766686118438351926079789377309772097063372093969341194425470294414832905983328953318737767559457661089951945042187682296054850898990893453685460352569008479672318972389697586731456445251986925407253276426411753801556416310012659234564190318616891998273787062974008151350146711460212315974828562243087108859899190551738579078266458150802308221206199723024910578099578962452976104226268480853716776371523551869588337334826022068565302047718605225232501653815061444164768150139575110128696246512141262808941451575690474791751825319155364251048173945849643589138009618348586088643988442129857772687105479123551237502833730201624730959476122713898820543661612956624583253426755206551183321564659632731259823316229658960955343549561417186241267818718946886665192683605154367228880703148896368356453902806201327899555959312327348099098495120327258061405605744356310102004734008233233453132062557396460875154724528853994171923169540066434789028397312296082144865239862676371784281403548594620543051228913987705151069648242905051670866881267231201496924470991934522305203274430076764973158947717143689663846226286689787169092611878125538612712521230886407586698430615333708175484601015414933566239774936205218111763417584216902632548116820231096169192192022869682450721505971821150288341031315756421940145788787279717641106562837796086713471177803224402512537359875009651352175484706111485179980247188237321730327986255608418134475588108353717509062083849567553038499393892357101996365134192492568754627070734065909605745546412514462065429172073186414794946270054205714202462163115042291964713018806070506526991445116014293631596527824543347094541859416111441185790996886720785499794746867787140883666830404314706948039642262187112361109217492847854360348055943275795164736190582628066618867191080241636518049024517889601325549386492890302432028125670991643673825129882348651502692574480936868555046819832175369902047269998297850450078410011737385494867700252068842129532259816552453751403642500301776381688119855448624983836828103017401120488512991774718546191749793706377334258931202989592184570704973987308148514151004269035084920667368779914432546209744399622385872721738590217480938174494293119032989967332049950120760884629599157728532320421768463385631131644787556055053814404902337960492949673698077118383164973039447227256366657539942291703071332600729207201310670785702153148861818246585764539355140872464581268805424604033413833817145202276844227474947828209811398399339782320512809976994994141470392278873462959005654257390460005734455528688232516268844830170840841417038005691980126530219692515639568354811803702486001603324165313556447021669651537610530368235321599160119805361562437443080489154908761459306328070543977375801735178529840500263918516588834577960962155770535174428852797557392671426798865945287839744225596795233148501674939920824572789020184898973355686325174942070461372572463551168639241026544762070752205122353055692384254226246908282007520259383019261781599439023913215673698812737259121312605313077606202212944982936187756978463241708662598344764706804251460125686879442445515779108821670238467856161267264299840724943846010251986718917385088911378539868476195751198740560336801934158770527649680952158650143845142987666072347658486515129110324279488081668710172857360035297007700992668673383051201733749831624631893390202711278045897542450181490490028450634424250378606953396939772069786067370372905674362106858434328146484000112041495566836354683128388376685931684116716839479099931721856827185738472865395754456744139529903832236139928985308861853883513264567192932866015278199081253677198501259329899446177941411025672947879656903632353963601763177170437735077668794119295858677710496811154221632022347705560174120468438799335926703389234517827691789627850765451584835667016785727080956239425179780181028800560734433642051114482495662861187950440272320478948695791670171129489458934046077467199091605533384561757765624481810398184432204896967830705000449470239500142714887802572743195349940700146557984866966940589994767653964503721013697720513724850009351801028657993939175993080772397835703312074350081900242934973406529055410097085403756951150846859180315703155681497270886262912282537390310792181234785472466259045271143034083134561136719708977129194809654240867974487048287377525644323321129125499267392447675666612540789154860777951014611851424589435895928847121260636774788292505467288119599903315970589622171043039323353821272755256481330292741635128054322508687667448523518038317756509106633306188002844654276712848025434780463006170945781272473199712351667119552294916503339830869065327984725464447960433491335091298264701200652831435716961259051736203333867548745125160582148675130181967255537417633792667840319297221579900779602830552640342420784318158971949619724823966408749906747386166719754927107966001282457700239981144188306665080993931999075351957164588138537139392004836519297624302633153281982241826773348441351036479525221245603741477010012718300382515573484071383212879444353950105897805570811731467773367085431395081004719885994322456868877299815400084971948634521298125293307606287452513105555419720110150045950127620127544768936198431844420771233081225843567116753180819899441397030690673398449178745580925419269728216088129832349384727912702578546491167687460282807945888126496069734008326824391889374291268368075808503565810879866633007050217615821825251557959747661465788436888271489868025465336842871687584598425884427574689786099011850182826397452887352779086175434261596775950547710470432392066873433962357688322165130183853939233934788068202469454858009361440313439447899926061202285835197075366648311596202248574708649609269779750354762145699705805383159848824415775858116422049780497386233630507130601350984704945067079689659500769496164671092456141627282457334137001434363772785733622545782457372443805757230127362106471282614167991867576489112657763734439506176952088570768944861489220806420266806466101445266045247548236485445362884498247715093700552467231618042965962817838187434649036942556545072275509628016730256842031443158943402465491003130789072902175877433878229916629058078322407669444834471476892211599973559508587041574983301994628554663661378546586919854917916898016710550714180826954218812746562120202197137649552308192593477936078132301985786292793348347537221049117409867692639172105180240888210370627070354062498756167646958317511850417182398264636475828557913148372896787331905493901903425908258299574655203496716385853869100677555830996073726565262968527191717935890076842007555194880210339924564268936052432240113379951679874293747598503382078777086453882724326931963924669901245483519932687713905293662429916136292370905000630046703710212993717529860859178516448116613518936895751396692324197150025860202404234669778773277727817474043598116101070634263475122298969987432718861953506778782637196413090335306981917974401215089856680227405871445959105657356029960368121282812985378317175947992968957549267345015330247935682377431385065870780732742857039308068346550145592961294134095639040819213383969915423314429211431355728900154732641095103166170828900523738305079905507491297133922531433761951230372655140322954763239003290434624734513694427424257902467317674801961043755305821848003088867097558030020394479859225951211014290045007482023930514187071582058170431564346161339520862184238565701502076088798296613777882961104553810990388929574871960521616486367195869619570068383533804341816425094721800859961768295319768631588232447298692460006298635064923867392578253802790034436579247627232488358472746689352716730447033139584084615571563285342286194585356223440353590280869222019699690068432200327715197139162752841975082366515348969559793627513574187792585532351661563838222248126450036396518425827324525464325429816359270927593793917687273984176260613634038259477308021763673903323169250762081465022304784863310936821007447518025244517762198302899127431955492586747168982131324585463222022703793701314904070746034333265855280594786667622456544760225256692947296993369571475704266211827191241945225175641519477052868981795092599842405737742138646233441672658025555323694322833689630557137825635739710864726907607238674142487422515855803453283055505325131232848156114003402099086929841074962218115651897068478308473427947600839986244913740576447705090695098774825952854424550397283494554013323539290148494025000718931562661900837721970848810915903359062948298917222852219434442272722123665974853876672007146731062368699859600832831029396878418783690436147012576738367381963951643357310573554568526571668234928934021821134622172710977014952524475733988546269316447143638429662560020298384874221712474269276044626736770562075146922524491542973453931888114086088962506888696702875854050211733857497088798969160902567718701585287586034448424598139033533153068602861693486344935014193122764977548147691018973551590806002610708031402090154619586754859067622438877982455649407050009304806753938386269300405302195296650088988565510223609941965873308873647647632794053687744829709411358170717544702333716066345863972239659025058754366200608100136655663438748587650146955191757867123385100230119752740042590837479939478329142536003653407246952270113427924424265262284469173389684342973142419137708036379078232640310226373212083986631628144257557891068692000426517417050945862885452566198886460086692430504467481695144036706174449779510899493691584570857470857699299941149860441915005432891132301109795334829969820652162184906061455889150752336959793630769172398449993102253647815434258607180959528300334807481786533301918824454588567478083928756394884682880702142397735851059952766367409058084360036219094701118167281849287970555142751424480375477543683973577583899398139507189540592017188347298048459437674973936066518425892066866212452801627083074994439162365276817431931202512105632124248797648082259909738759193190982030012610889849181161988800259163989623045440996153917036414263283192731650652467614880187621588241645468337034360556859006559804601300196232447787486029152576481960501285277359923561014211764282712703599767319472238116583542886787188172525039296167440101334102180835737585978068548930800735912046326771690852634141328665100062364810322035155050807113091412046235480194442789883702815221253532845403685364080364450651492683038622953072779690953689475921304404855681905924511558215534311257822305001172120402955285239519336554513119196908678668387401734313909927778414768372913823150350430438283428076265479679709922101137596818294630653769321873399973219308561500412642684065299709541084822265565483871189995831709346987519358552612232223540030664994390216168693695953834186910396738113039488958181696430477238713695583956303396035447354959410316943771031877296286227493104370783518832300699466806742672332912114009542903361000912674657289538419569302204136256563134005100770768388893170927608921745270855998830030392462635741988338173244231415986642642269024494480698716205059925471276432430513613257078109131162713378572197731881146524322404945862527689285337576937246931162193823345792540752849694349126158534060024761361534412269587565312408594434523133337637170457862052323366884853502976820837687554594954742188537225473699567146246951783253153019786425489394486782032291252709795088315084243092118023935772209598793329994565204257953692109135699358026849067160098692032912967212243101282856177278596397575227424949868354320441387925557358487664652776671468929411148730852712752045384286586526241634899979117902628587069655357691769329347976799817444035777467360132806491215243319595708189464280596994022009741646155259779242820783240624755980292224767226800049473063215951484584906306054449355441151144721950826507230850597966471722151062665615111551690741141268680929351387699517608388984662559467399436087302350439806874676212576707538140700969093411991655905544157076621777326203668497966826381312925215241883502955839982323125902681358526033923038436884266749600873445531728150103153352893659509359020396693277205407379576769007689142951995016589643796457047738028533834833907311709256492172062432071977373442991228759728482064213551831027480472807428453081794715915755351982646727120296034413302428597080487659749977624496816598319963806235556437943422983519266701968518333265252827011515697099250763435419594331639558954282398037642727816573930601920763721579030126115042445180676626275382811988862162601058179431026040390909237574370307479366873843440574423501358212442225074906488095984219881164767146240944559825494346280455435634540418581323627404708619310574139533560289414979938468802886773776218971003066716293885394334312743436920697530317767172626563091219048231662528678951899298214330107353520818146989409160484698717278547367875185920940539349715108497561490513331934835743652314110987322330920872160501333725672738486575157334791431572883719103028607728398133906635608641374955838310898062381106470969026925686219438322433064949945415090528139312027558065147828656444390591054861793644060806736744402734324255319069453803592317299471469908830423142423426528588237571065422028622764865788164493260778117246001503791285076279173336793437610636178342273993410752343084312238078740435359976962538628624347747840534689948059251151302660429975773474495579877557191323472672072461482063590948098865557720273646100561303650256020381446529469210031615598708648230424263272728397409044046137393840457307977081331633183103152431184218594396109471661266670495994820792102672427706591362003891852868683645953394472920057259061843435880778968014636171825887172197758828899657795881321600406853412963463327942090567269210788531394273909382176180758432157415277625449932760540813438601099965115027200841190910042407107161880700821016303059825141090286177106080554797199209051471986597611685271627086021952682441539448207238582129501762282987297516356670224636504638056283853262323925638279488300691395189947366850266959169767851382142851711475748229086492939636871468533492813103532110114976552291705823333635442395483223610206570531139849546113998482758177827671222133500285117465143159868222209093947389745072040269507832016263732216975960381047247036503093409165504482560909183694089298976809762468175302267542679049154526723143451381712851190938426897896814165653995416366575576793939375409230276970844473405235622135346048317804513374522175623233896467227623507688261100504509675044214467327804309056159481100692014427100813073851307560465864755125592862477777297668069206092329354025389470007937440188468759111652909135684875049622366584704315368805549703988317811017949903742809776203022456521629832698525006689698776533156158428893251877260381206883868037733938838503029014652529879919318032844067334821183062599379108505771265064803066632818930451616841444181549583797291881521244010579177502264776187128883020786465839787682354073661706460738172601024537180541858961307737131576291423864798564042370283921141273613848783179910778299029208881446944219326209557820099237249653276701601777429900580940467576181876263111308175264204114296587432168755301833882033358489717768753053371513685778827808999091863240155505246120197353781355734103892979658638898713835489738071393219093952781627399046694464080744415366710167529794572406736034693619310548952648695132886006484183266564421496660488473450588566237747094330013360995330517579516654267683303569120934759904752582922026654544723433474714692200868418617226462613390820465101616188941636384438887526857979912403477298673908510802859488304847781210696058359408312658727035074523517936146703624475979071004400946384419662561979884947821648079954258456113282730952764878245288803136467129614799673131690377089372841867629870746991315377162690224239364459968219816058021929444076230838467169134128642664851621358713252712441577218652714767696221701132515396999179441497436601849353647921974083311850102581599229988186009737573872356702293413078538971961143323736390311627373034950704219644525689692645229384708428117992510762168652739102461913822869388041193825464045542321313295874637655366769599536972820756148787084264208601404553753140947553081117791182084286686517975151487571114441798774068234113505565412594893436537316675255211581129271157567336603288498261983477525788639387644094723472984196773323261498166239821061721609993483153769427304606746885491461023985485351078515600377269822350546966734007938538407171283936262808683338316564332081362423619937262825016659635860140907456225790923905501196761984310526544965139119779128978784991826678871262078813632860604147383117984322801577760444165369852983099435653324543042175933081111539192170970055388006605817371968464782365679844706361493182699405480195816386268849534246167835093991843624202983177727512421342462806924007340215233998393277841154786537268425002697792403879444258318638558197986293177300932716234087670462004071145818580025514134460160320009298109600929417133960438221322063926225161966346487705593561520011735939899128364277953211945451801245207562563091686844629131875455069491687823916962396624008494830026575259228566468783628235183732389719145771674299557740328516952425268403136157490046852441635062504700511406035373236278698894832908342500426401290073107142152551479721076058098242959426446269626076548710491668408771200354274040215857876164667288151802090037977881419023905936137127314367368313262696200634029714870974109946951687686003411649168670216712082385725573198351476890203034958648772104660377856081650825483903418693965533093165765427554809659290063216769313760567730227363207604924333546663033772149644287789644253416762342539698364372915613588877918021870255191990308705114665170988174445895556067869282430622109391651205771403146519200266450441686416219824029427167244371633937582384832294778916103101443939311627611904876583528666166435956560675497068386988314025735473447285834026723296658175831648217110917406321811026100297167967734031393237214116639437273532118276556719781355294703523694426722360676815955553210108441629536304468348970380790281538502299551830092909096198045511215620610217660462933841081507036745040099656656643784890106515327300587365791530339379998050101070351169955518314952474960262955421028653995887710695170962695521779036106589616263992757377602235731023685733095144504004574925590517747114195450743054587041287656262816583271346062266961329021635206837743870439010240480347559735443338887581676851743183604808908280158167884681796639656011152795574279794893832389948835554437574434052588257711881884553166821556288848782830699476482175800635513962349991867549142848118692751212826429300015413756382314214784280471319086731985026321911653663336863969446007322809655791358960309765740954674325075797286697731356126856557594997175597884971904409222482690923535277143332935187539232640489215696590273581765562390933229855668258527908664138888981155608965795160234163974934092631029417692825811101345662811128154385049415739497820921460544954441772489626360605763008179384786926393652551277081813833080477116579670017244768615996436955602980015932162602125772969843859282612925383950091997250018573394476433465845380693457347616347214046337311849356012847878239965325836821912417827903211506043136281499832440945895553543564361991133110611983493560438749209139977808006865618019277815380019853119445288240933260391840351459345487415036944929569018015043304662017520589843939402722824975119686612642520882480558159615103878620421221732923670177908497629127805433410541369034389061094383891337843566388730855008615098647667739581641926358815675538785818688565138214579760603526647906696525437877041283507692905722160785609853909396922785011469505037475184811428814654115059260359439772840390795634485634104917688216553683310172991914940676078418389895896973792392121071697953304498262714085005610754095437928547635561838812993726366041068106941738756878402010500931470722886691109925212984296829923982961175532467056837911850653878175630461070467847707057795597040471852510615121333616251722352196599326897220248872757068147532849821273675921914376436789053356477016719947661082219252108967713823265039390586435855831421097856196373819880082132262548821345486570165656413883766364395315851551429328105401744519730446570076218432139398213584136581476539650042981903190041940374569542509812040106781709539611114020882991524253266518670522849996910922558055816557210854859778370864002624692253766711133012529586195870279503559647545885284864741091200401819454228208474360487337851572255889016178096370462690317917053939368802621548556869322914945305155902414163071020905477327316750314088867033967513728344058618241039836732782769552569680892938862395757460314171176428042031912825488657707544028704740346292771921170494685403475253095847682106101812933753482303027375527797514691749659429254726247371905341910789271321298599168908432299797769561590304257260325961768176301399937373534023044350048444197890738244283787077529705845538132814566991265441319283675901142152481145028199124090402375236489973026639567198741496002518274108319757003350951600014618103374149730070248537570481931601192060588963189047597178863903790739949342080231795983951653352099597278642980752055793987612095683057909246536161995615645795992399311585279168049797559406383409147079447546029933922509463486081772534783507878994047965085946955903958316446123539472801894858844664850597009838200619036216631878740219766963779296158571488670618466872285834719723089288281455756131894878683058011159693483713515699480236734952048019591122880668353456277238137799373218910562682506005703181821897967625984974499553273493434740478641569398551769736386747111914389870568124920789162496667163908363334669787128288094101339600048970334825535478166964256674736852876102765954187567404586169273090125402409940380412741595079833903411348875563868933322842620164881727424559300485680937551704598167275315266860151253108696347937109924039632468038367289956818079372836848695101775781378996636383142161072707129055068004490994388286563413612259503208741066239944880957293690942300500014795633887030246842717311321173049535028723291473895345255719212099661995710763867656254735873881326415574807337759449469037640800815431819361866445905190051752440226681405798038710040560557687382223753180014454039941352439645818805226606301378701825990197322867900256707956351007144570351377199885843544791055692972236742064162346772257086939040471841105762463683508593989900348227245641211985768264755924465727028858380477017383062862022586261794512580176729532532296445719175901305052932339431481072655004852315715828782517339705637302992409005131812214706920063877361333056907963030156333711883069693908158275965708079255558131138890244751454046642280731333465571299601905858478474762468997412065837307306614852502101692663508381179781506148107961554335111364791250316183560733807599621619680295747955533847341239812874951598426073286773225888789205900783472071631926804352283364182470304621803166421959786313106846486904059984223833081347339726612069169012504440920375527780162724311416104521820724520674028083007243342911090918751517286388532177774164690011606911794564264738282981728452713793014736906927479866405893493001837673033454489087367748012786427374943990735960297910656507330921172538494447589539779525570566036786558563704131095693691596244121943794558786461595071582979919571785796281137298382965755156806069204560770308529511197714937438377342142913756983944617789075680489920426085886797196418917119699586906962316126473299185326180285219807641058789775143185278685448091257560114778558090447522130057638947372965789894999699006700748153732231466052326201134870636387443221823848005171984716969639337943366089032334572415577970846553396324524312826614209150338707801387336304627498866681206012174866045165969923800382314983620887665698349281363440250461797780557199827378117958695870260936009822162631523066222677607626927630744717929323025652156780052820141996134239387531033571999485092822054530730064317943839010768133043052415192061968193046970088957684327340694532353875283170276063048119978169259281249439466497302638213673109972142451578236170858371083226384652357012153161744660255709937786176397273359519974620387648460830998108654950819603972852977390467565852595665146129751481604219701069589139719460085119365487136884648466780592768453476090941468753095320706802683899511095798434861500052905193724105492192695891731640757957558443457037505182514057028118889700462593571028774875886220624003558533121189042085914615562109314594308042630096656220407498655604792897750914006936860095874117261298687199934107256247368048542764392381718865285475755003819448538726547204040969394064769161541385693425795135146285432127581675734942164574270759057937007858280139303566004499693523953447501279512954318871935265895435897085884836361653152442578846650136939655813164878275476458680491181317516041599320809708351513678332556871063873234359935928538657514890186270886249980128085842619290175151448618579935072963689399078222983206511733784786538490146551842111656739483671581790530583066714371043603825838872222700111416180463210225265759273485036004359214042401894756464544502668124076101908199034325671932292183177514328300534965293511086873659594593668560394129543623204441885173469847026602641964122578705660402654757934251947185082440495116675620065769331529365965013819164681346645387391003730173600878833060906720103227801917515040347567821307971746349691511102159571677823550750545019085623773225508012194566670665556064953546169574466857877372867656247273199311369965987143767852019248156884139400001192397219808905736099315131677286477238689990482564911778061364658363248360956023837727307844931493660798924663274095452963251705262273575232282743848314336350635937180468253069030479663416943200584692468451381289440428995955581893041950844098697565084479795294211999551576853601229958888583402593982025680669415428588746084275026462273231035674377058933447821365402077497302773165544670101654885484328680114063546218018094126229807749366802304482913307876626562839318455546806831500840562054987027671977096246399859359425979125636765519245276163008842423388230457981837678362960438523901175863037197925973600829751223954221030299413024878530978435678207755852638780952284670968893274184533091893935490331076559757800129820005493626209088058215715617239200806895694495836746191662617532209758571181849997937295486306090184105869410644186117584538483743063613782870730173987470002422325654930511053346938459663263268794368843572424085701165994897949897974164665323083134331682445234170093742898690787559081492303437173163371068068279034086416689990197967290111984800084064515868352927958061040738632533112103239385861913225789672173561123653904220373429326858215370855585727546412633546910966615989678139016409459748052462378724305809771125218060681416158174194440749086476034844284221399860994208565072367267886853615707329188803638833822052480918791380994776246258801278868255927016660958093364508150672652189442049086149019014882268351264942149058120016824275491808556770314773531201996872592919424672583525355710449858049838619414190977068911439000231164370035721975341289380115409869147172371609394320915779873958436632052982743836020243320338744338973503726521304698957709475170812890906562594460130476592181868235138160510147473947440680131861291736539552409710713902549388665485172748744847313214988466732796719681056118352443739723297127200163817382541013921609268778398735327552026246299221034351899612272307758357703879280427524696095529288270835253974475721257778892960095653790106947217981127897196558846898886086505492789122393389764997884685462540520755679925092470253108808981867998080181145989102815222936439299152481162159483598699459231910665619795950856939305045226061480664011319080915167453360921429143709980613689448739717421096089591596906924610005687122435372167039238389171095148181758092832652454659811812573643330467968564674173103695969218492181589338001246363546090315057295038332665240060568382462214167256736744277965120515931000897276329142298392370338421419989549057855916614532068902059481384080442492580322192804189885300412787325334960838394538590434903958333692003438010939844516930018183663109969697796676742654643513094078049630874612303456201013487647626736597873577676347525132016696657335034185516436742860633739172808043338373877291414757846532736793468648401575907127466696443134177442273028232559352919090102965317338131633860847284176376038763522998987993998036670956078647226475282303151178802790734561206060483091999240822411843587262895819475443306621448370110133184248449287073218071297027748262333929967064699612354492488684861077535177014703882864220918614557562861821714394875794431684630845241229359179759790608813186428936653188667066496682724986640018309986001364352115422022064725458727477455180860512270937141212470783862865284947625909171781412112981908470901443457260001016966119924747212311751876126960430885825436696765611258425397434148461828181497551844706902320034510719451480629985147327727143315244260154663975383672753195752521730575178692170875622170157773455986863979000529320450592719753630704955204163350986662017748814519480630350458497529322549726745951616896550567876321377294735628650809040617254648312456276820125650722070080563756572705538778702421146106620259230316954329884055683122350520637555501577547638203334423227627954712597975065745523441828966238427813200662820776174904988432829178882342387096750950759362454956490680464598182525444603490978752568054461680304246139478490918846371850655099250914943905164152983432308001324552741688571396474461375357877006208428654498715884253202010905182316349416476780637965612923073499222891884741146003543204745944733777954764442018952692780191414721232667526531207201988165336643816116438278444599098343513207257618445126187836949290554899236450614002893215179331904443772017527103507880522976284346352998865787559634449103306966950533390241774062445849551434371101642916097197865542813965398231054133741608223590664280702649508316556264804514167380233412088898048396776853775009144393752641499547201928721766561808586496134057543469693507380431677081279235668504450967580275938483286528824599266783811643024611849746829123876887380184058235435278694043352681367826380527359567301018579308903331978068733729606906909300085980831829257094060323844385548983015956079646846287700589054008530852763782610270654113974726386706284681267444445318204391796887145242516588588584982682240484224725517738729467793862413322213276874035377194664706128789093401508462087778020864433862593716921783914491735523597023249188776552345230055316901038789083881151353934815994079533656508478512234479590748847075388839114360685816032909771740708504492715068930938420027103531498952111897401179078613968977211323374006897193260765011707842923228156127384099758029087940319106084287667112113587703246351485512322027342221441976327421429126768824317108266529449009377375348708462094086350026143247981341881881337940962141402989261126994349457058363674487236054929308281928047633227395239717616508322737646617618452217663204627425183149232353852663169977981834573184473251000836522717037071439097814035946069951180647014496006454697261724479234816361773890210366761372634385367209870701373006681399609538462178800320162774385142885661428753788422474602821474976386932754967952719801021101587448690417742746020514725940916594066848644087373183250909517059354442101412520825000692606541969626759018187824830477202967034461081765684034265305469145999017564263476263870922638845883035297796475374918508048378733203630689785033473713771351327070238061744243284191735882712868047165256848947740320900219622270986360358339278183217124323108547002139526854535003123446891150573412912193844856938777048022392870479145406137032540332401605710457577703901985403535438260489366570003341026200585415314693434572490605879765206450127910428751321086955779004984575897943799105145926766903395745866466765883263930358834386027036474463730947360211906426801155008436218971202599947127198553820307319403073993643724347961141811758841664618157944029040442894287259898728425912687386978691122526180663095671512380590120606771260985179894309805481392137130249808710667788688310216414063847970206882734175664602195608078257983769525702465786894088049936977695242545926358487826368292688283388533589585072137667341462266751659047786136976144665608990111675043457618440455511847412776506407283288043744691612809501245865563513878052427121167188907204557985050845207281809276889197531379995253490034386266354801228365232572468418109045128929990889707198765042936912956039001510693716703076527801976412802138135086588121830473314442475991886308362727857927665900085291341842563579201187668268575830465231869531288016466110508268482654457617224485508263522339767975692304556848284570330382844274727234620488915881922481887887101668175646346103601314864368511391618385433162543078352002402086293856722318393669810477175331974259609052279323653000006580420270122553945108224187951365262016161196151374755181433608663439466170538046200758323396429336688568541957092493499233528284361941052221667681679076652752340799216968339326911009554483011875343727810906526079656693599904953865919360025857548131406639997184511061938963090185939923292436620218288722043667171731614742039966423395071472691797807627144937661131498685047138302745558008230811801187159771826703103920508332053476975273908950418481711711797353882484384555385925663284269171207449963694792910698081310016078540312997237908673701265649698105885508654814855974323971942744839517094747015833109603702067569250233098479029789803842970338858845009102994018589556156732535874684208548609506610421427444341290556482615941862142679652652854463839170361548830824610250472459091641660985123978136499330399204141734784220003787354546884747883106784716064576095078768240241758708677038492008487459393500566966428331977868957348041798248907559264100619352732129285416253910826652430813907777587370678102061119548473935507171109432573891359144664516017898934364026203268625424627868141477271906862529319181290587065340647634800332686721630143288431814889261539489675644355566641178166358042255844843622639554553882195959786005380136892040635090411059319516253462229074647334573918714691071967216431559619100914997034040704774808111922366141492755421224633912323452785315199241071873342834772059645254090651029599781371111917123421143756732876011155302500556250896267237894683909283875709278712665100369148741324646828111510599216177339617274991310524099017320602781703139691382610295606234706193649974215631950839726327530797592672641102146366148399722684190407931899131417410218394504184436571266912966465473820481537869069419858466446234691266597306097948251607535535510339529136145211469563889257542242736830672975790651649990578950331882500020787349981859239465217575991891027660341898604700524226382551104318892394932652457433559234080264679399168443041872894115020674873089155593595417561386223249776374302255682701712564948238788925900087145714605458695869276809403994535042807089939320376651429656849749724983100463431721409059022828002837353186501467575505724700976634543568174299844633669844469412234801573911778106694393139767551120210953188807136059824423980260452605628765066683670025542998376334971469611993222235412624261468656675892754205707945452241177983701978683870312118506844998861933965495779126620657934804228083506543233607013931446323951565842497559075265748344031224828106611103237590909968472180176027438328186987374043664021496114197679473236435973931472576455432661660220168796098877566061669598336059708278478854538823283096656063369486877084381813124018713577310444571949414338651488183129681062057296081361392260567432278864088675184539838676356493841206996330771212611998138078374694749947358524011160755487956701170202095704202714090305047959998077156056846840400692787791995453596885091343502375369869184883152941837701418183397469665982078536840475289696874739114288630269738019725615519985935437561763338759682953423118294579631817403764430221433098340591802818643037291913893331728271609602500901888417807289998904142315623032905732990567482347367321301575660507331038161431533393047936449937099549985004592283789630217727687239774937618012433646670325730576772377417977098688972784549009712565515560446163523570101144968671412602170879083356837464609705428331409710751879461723758370567951383161973583425614103282899309352641299084530121340228336737177753160947950123016290996633844612161460697833963789003871341523482245657070730963160465139256703774543047260940967220481157741464543152223051621067038590071120173621249981556927834579130726999685739902031751749142826279727709733547071739266738484529626054245971782524301225133598088560282434467154434394054073166656385466584127156326687020345474869509398909351290836214189248791278930854605472002804345694118999035232764354027958771800305585960556158497060260969939367329590291311569951422738286968040547287780461237863008155474515406841753725448954399152649654097147382371664298514984231649998749586080690505646338391227732877069700048009951660642627133846243693853995880527174761403513857026835192156165211950577260471475944680206506111751728676349034435597573026360588712589681315063799616200559196386735194777663341201241103132444089365955429466737011488097970545887422930964850217270426276109629412911553643907426549295484823259788909547010180583710035222051771212117196788201118668523039174785488042862586899397441751740820296249755807826513115818975494209184867910011233474923710404125186773830147965910881159224987695512537128745643609497711020668660014437213184403488648138618259445530111932260808447392117350615439561916708310373373802266470852952706910854793881931423998965557934661084791477595320133946018318940021658148193795840998516039193532284665642895567457333688545341355915697201455921954056150489301834039321891411372433681963073925917624713788798857160830761898263664488160692681822650819702054320044666898770697050914356178213937549438550608899485511636302897730086044927109045227182980383255604340722013405276575497289646118908401013862286960235978963077062692264409222204083510714458105698539652927676552395334220837437943543575940107617310411681884846837048636369885009291936716550024848223424287164579279201485526168846796502324165719872882058870407623085685698168499165758900056975022732583263561312480686375182831667209569034980231455921751036022617508592802634197616207331224686172152056779048283830535792446751238402814758958323266239256410832129833496355559854679862314135798434059945908755745787228105040318686383386298501897040681346027770768595745747942824556524708438834202215394215771156525434685338621769411404904348333276245215562750085690462014210948427626556324094169781032432586704360815278996685077446044367822715556295549312021557229916845711362732078415161335686990924473746709408566766060998333957500460412901945937635387986776933729779185096788702769481821502386411149636688830257558819347738241158720033794617211983791608778706182048425183268943966357246913535995726965321311009244140435513760090767624723198636354537871955670697763027074167053277737004345605465794496974746470098747253242404645198491105815853687491214503948556317081232254424551721833262645982672420584397161299561822895254658636181404921145978724707480592964832727403525510051744658833490546426053724423486014119767706706437642721815329385608680523719578600288505960619310657389720564196000119509485435232711389217895056267869083999738352989932883705087501012216499973089244341737397324540513845369440832502562932233279693344267437171954427474479359531277044534049550506081922690997684267674623784253151736704159932679327526924463198034830367280797577605293208794484856267288641255202459893685334736038869517532405159373313679504248427998253289405151945686908323858895073735953108428700932474952315865657196981246160838661099318264869270965288680867158188300694481830957435031839283241842083718653600978597167404567764591792974209796231295000170818289023680151939701098440563648439168188882501102396399290150873441995109714254897745818279886549045942610786864390040180078357581086552829013479343661849683627738704189046505306965944528671372736989859952176150462893247928284764012366401518698100757601767532429057350212002771935206432294678897183661283792971968249017410392254530471730359961766197341106211370893222311745921179013944487047139869266171050698822297840488899292074542533801338663787044372079872026024784213451309152275783765940069554487785168322068276543725062216553276631452068232569561377579877796491081631509861602875261834821049324652075734255982691809376086712710138376013419313486870902492401609304452707057533867181440999304141883242046109670659711646820505014910913247661767432005662112702061789356053715718937485294923894982050208236897641855260843617540499453459633174124125180643984948084758637352102574569785095397827325142301870790717852321359334239958819800194294524193927997561806590830919270117597727553914091720630409928869039141882170435524900962223934649548727091916886242819748651211277228246792399643040032769925511328308835386887658682948098193381015112537897568253317015206295605515573393044896683126769575970381268967024487320340553653164533708777109934788061600260592745758595946002448867950440150312078161748298764880619022169938925083860278587781173173354168108857216687464366963451335678314749083897490117378083621452731569216573893871759565541241641785987600637005520496175502224643326317082320967628076559960170860664982996524398835717216405949817850959635416614075857600029168273528586269728860639966607049212565695132434707858436844344744289505944934143471390363728222747474525331918380697444791585317294068264200984175418469740385594077402345004177045739484768558315531941615388744056721362404132573809068139620406411444743898287466967669232551211265786917393649946332231218639868188855015009083905349342613883489453380918532001692045836410245191946768611411642968641864148074729409467057455847987320129884113336140914103106398192480051986528257975857009157634451235712911768677155901198088437335214200512089032395742005164786433658071466247661725682560585421939605014328631979590060589281795138324311948043301893055560331748643743910368560900740566410900637500357510665129153443223590120890415320260974403915330107762321157138362877230369280647011977088294246130763603526476291273659270381552138565770948984304966512917833245259238073827094318829547119812626007352792821713263790410329090353104653072723398392685325471062644651911680546268043001324042734907614852006875243993283849573452029090296868868347159300570982593966408715697061330924572755400012275145005482563589043882451908540941512490335842475295412028471954750484723905019095129828454000589770804628322768945178392635368844825339441730868989462491844228004351079139453540884965942404232211961235467843821504204423968145829970017285963575022168415351843567875328823729680838941410764727510817248848970685506372514329476425431667025665246813011807476227646994594193707986030532874405983290981026093719175100381496767343588799063572224114025985129291479571759817772633420813307442235206186686679853208664158827915295474077921710704877515443674119366906998912655388407754398305392170227064560140125551986721147463047327434393289050702901935401673341105651973056431884178182913757398102422575468591232669844786323143836340388961045233683219782675563040767037157729639061164979871623912766238267304881288644956707366901233042088565168634443916108402559660661041335221370022353831714963221489987183691721893390289232327568380211687892263745083193946679930739756419832533064726441310065438745623939179708608748177973101929753737613363805293217224954146223832441653719947025747983506825014001443414729967629205568163721701208780894417536457851135726543135047029021117691755945885086084244321915739941929847262258796266977429167492850128839752011084167252521224016157947301700205521824940405463600120743001618053279776764647309549470570125720552329206926022580616717989160974446769648358322442070686124319526984465572391313316431620118366662962439297901968291367737741297788780502801712481858258345827261769394542779731280179354602544051044524702142391000830325793224644742291349007337270546532753239366789479713493401608886861613556478604918856820519072134634197236237316704126853486317442861387048710152232302984484909737846444055104352016111309640233647052112909293168129301462268998791907745934347487546606164907136592932720779050455438639384687256593400445848175829343716588757393562990534104394889736637183597245553117303876951240801595843771205660041722034810475372791098501951749310218705126670343310070178666176388633779435779879326631369339900327817336993946230255503109163526615933196333704195847457325707353965887556603679601882283930369037365253806463689433028057822549402731675869594480192672429488140804563132685629827822063513827901772273719647424942493153479476797441967464977769480442372057583902157591239724612608208723647637655777899021384105600893604097403680524316867029051947126743494458082344417099267238402574397406210882755093903462020135381090999347157780137718767907101025345490701866546799966746084452268544193841206537310521166649782468695710256879455249172578548647912331790529816355660835018568153709557059863606723840653062019454548373135351380796102245580883229591532262405064790945703689049749377709723081905395092350484112273153346548558088260713452372582546570223101338007634180316765918483821138026250362335181234706638133422741291075624326229746409241839059999810324913713091038353445771117532161778835308631576871725799395168861522222275894353386474951195578524361194542444088632522468105540614554082459286096298832807799138069988049133789623769150336731848980761962452147981027862472334329322726354895983828285317110354087853934650777721260401514956566622894055624922729598871904327510821368819766355182623357162225421473019225382314599531209893467874251402512782436312985440278088362906913090512147113913573710415762412968274914997706645033342417199140116203744298553441762048343049831765403904704475665510685902958928981400930072394244178074141493139564499412637370801812245846845135383382824341374357508912650541748853166766853585652232261811954414497170707684280398972918389686407735172699956065221663999201685634745086830084360405437762460644306415692955940213991905104493177355315520425048030278685483088197714628451811119414773839304426090704061476622402924388301953375000565613920047728733967153697629652536078924257200238424200577363974313603273956598861249422310873504850577061394017218864234195909060270834280998878784173709170390996050848472424982390964299654309958357986417684344428045546047999130809701878904358532800319092673628377277110006216297113786100090813625784751694555964929648732834996446447271255894053504950137870800360766000232521608682486973757390255169082631332967115291015770737893588583576551078257419081643962376930672162438509589646947833935460097442057991676888392270813368107469263779449346211833609966948674421678037593935612758037658217877360920431278296174582112085120098439956637612566049641186879810406275344541454550041055299199700106004330549889973720989918094915929267921618115848859948432065829676337914957914519476679135136569699229934000954337902850146141635462944471551293727320098342598112882283926444125206185784552523016378547143264256806956602488712453322776549714074873394453158647040444953006297053176732966945207828166765123678210946905599519138258603456915254653247313561813862220855468651973664161267681230088071902409753999929732817470561614630990766169428629697182970781101992595355293761478334616096416437018970392739430198666389467013816882990288151854404103839775670638353295303773248960231001502573279949362739361325519734174341441462014312121843765377219305497127339251550207685580505778988202677752698997634733423337079231839836494107965765844681240973193686349966170103465344051013119001350626697957878483350775437245881295337367376170633634278452206935133666250273143119173946704910390721960574708892915440292491542484354855223405057064903496858232931442991353497887864986926817011609283290771220578298313943358749423809096107673415240491352428735298370201365968403654331787385357876105316762844239779441448081372809912354147541734673496886570250737584162940304883158489255854219168603838785649365562176699761064954711754409911698867798613421041475934419828564244160366848326041044088712060921728520113423068192143565940506659252625054609105464902456110523132434106304448930761970494473612924235890646972903444694283649964532860960404243385394074999561665379479863706001954721482334159364689724928815857285452473580599783104602325043463329739449622536129934583301369769861249641712677957119092768330892003875177752088628362401441730599440295711175019992667571593656637448182848028408221344527676397929596268828287084840321026384615794434230810383307326183728976993957005951190587079428488584337883749725400950941034712497312010502668727866437280843033115700603520359250927441330117535487926483699324485125498726255648793911809108568564906733351380226304802018917586409801054319725834655144487824098645553988477688188164580575027568128219616430614764383175343668283792036188777427920481225281798556111026018424890093831556829565865468926165331592430931209055415197823387483990096972938591047731850025538581221330714860057961622019082772247326184186961747293438102976049566732361299170709748605621480828282235594876492974786804914204454670012194731989698515250445541197631486309278297968875635783434311296244697832850282285172447400104984071511498928862990827826148812867171836308012468549607863733516118983524899896829270415495103425384765881110148264987854294069975652584206854896891138023627734866066431476371779209039328211955521682522605152273798746079056313908769789421399803956883494994697536491334748735255639462905424390253866925658774798394772106466275239006336859044084637231448631733069083443473931107814172700766360667236263605249748326600648063594232329501358765790934008666250333353981082763216676565576467183160597385474279661033407936922708576241325234629972872386293439359026842610405274867938296068286856336104761889122818437405702772456056661833871455755956255057234959308515598495148612650684692864912414567645625349975593058041626586197004080766405644823164587784053831429373356022452375386461844029309325565274295794603424933648416331784394845767792388163033154777571209371698382505985144776960272270117550917840822030586612699635124861218151598987266047690511973849899413903271080693245309936496517222875911187844780244384431655104038540953656364743084163927041841501159620136221762221658544931986345296665290406618280499971085957522725294129872043615710426854351566291756613218784061004254912740530285230717980201516982474643612695020678031506407498246894734120572654107568351487620159773403592145037995762277796512765384887263163796568291794648675332023054970082889586582151426518074627751895595872303956157470454341268482774843396190440158688631275704905491807131584689263330965186301409495986480525216958717899494172340976682062526643322938945415198354052325367556732788423697739158900423876820097719514512741809034546100746896769170896015633271659287094237308389095757338474958017467036304797616317584618707892495604843431892953396235887523353454883474404455033707069047040626436357105074747982619760722076734874370066547723174074252444315002712009542512342673548902318896848278485093136817884019162517943774022470528353986738311080898422541158167462734689327262128087039717920930610099033812421397621109677772219284985191213256323409411896857915829932165250007057045299110427168329636102680651536070181912978122211464173331357050558442868777369569112374325084193558700068931407674596359069518989339417157590685343828675632141711510034478376184367758717285087018692942090817758730685742802737566010212601457735784835208524950799804321564608053800313405249614518748390338012940213223970548098371872863185035520883034676435908356752672098331773258096090339185443724979735787647156772527157152054896985239382075915974040807016367859823506181234547980813433851487506639187096614923103674019853460628297186060839294577774250133889696391157427315467378570344682081128408648699757670705246694570285390873261420702304146847683141817940834762351262741734171307692062337185469142616998649696565439890263284367486815391939293365645846690361613115298408208570921171284935660227060442977101272597799801809769747655979829566724748124543773172811567198769318634864195221886861335705081504865319270016245153907782707408731624584322982990498754595580256425586010582622075217825368868895611188005253076347959535295825465660185540361459352844628455307556632929299181060917710010143460878914391335079142756646350451957244512579802874367727126098709683993629917413790140550448071968099699922556190073959566727085774598730629299547390135541584261021438860623629293688944701274090052323705347481351965820764970841841623275091442690992622006844803367538048153685202823672292069405177916734112102321195317714484595235194229251044530670329585156356390734854442464857700825031770770756121784314075506294642028849373182604783332358559619275067630898194512840190161360264719791100177116622688449338845457893621235767012948698472831264873131629784306302088977027492947793807582290601814310028800485027667071183429420820667754465128626777014318108926713197126473252576927564974904425640581117594416243021941221581277985284298958343152539946272596285861320939145138275828841056472432500392821795231605066720901357680956262220073833088264813700916883598240182770348798962457417360826267296045583796596902331593610391369225543041526750039859359867818925237479045474082679263361705087930273976914746533348081404502818894463134671838978552558471142969683397146015574204702928871903573555866857000024060791695713297819081219190922050210832028612900559809582704899429729866601929160260563305670719985168193059460197933522692836073399677781901053369309090237807564074615955699959112019584206366150744520342331131012379504493537172459899609174629563864360001296019260877189830567516539174075406994335081961477492434818712235666818448185141556650308606689164962125753478565699384923237220803026246188344563194562299837553900256292990127316808726848398252415331589889870646679447075604358892611615136343456689643017833864983129787458102846014888168039957539358815789344100770234407813523424685110661799800521849830291614408436903699273436539048867896058173279242905973371618023063654755850683225319284275625688768212436517017053215752341131499812233255731463412095475410479918468539272261445540691356841282823357805550678218105448497021848276414424484094639801467912504810021454544894857525429006122756608531114399679625485013709099891320949088186674370762477729133048466149186695271768143105663172000740906379787026149015749020155336969104999019948646067542595991408596162575825117397426688789041202304512021870423771746030761810760152834671146176014903464517710355998239932617553105266405342159609680311705278838415043878580230797218895926325837734778840025075932419854596474514645545967423734355745453913229930369608090404668755540416709829508225332540927481019830423822032227020759727241281861800888848252783562139279500942568132082848537315850938147162980633873675303097016074094720313578439235868850715221797088327113683647635364126502721054122580494512950659175989773498482804373153156307531353580331330074445723184280802115123627975657822318254764149931582095427025256229789968946203286165988624920476920206845161831707644801805170822571170871316053590393443271780347434485397857766935116685856270114217840885185198303726173507445147046060951746692692127054702973639014729742477454680020293863739186945926440173601322172072311372790252627759567862255650561473873365011353561760001587139369676659102280478517290269116952073301799256221912761195643787506926431771149799997460709224155429391491302031069090715916622823976980693247152691338016163796785016222433988543832551606526428634953216078789061133345122892335550235641363020700019888696205521265607710691748203540255209437061195358208715657750982066433814275160684659772445124351818349695808581524919902172420840322340430417051642986205898125050326338004229416311966637012670807087285448795640455799936497185737978752174604996687283146738365973126956163674579750165748667568273138859604829643026271350385940560978304709364608897352679447706407617519098346418957939265153230589599746054992857519455401025192790595470830018109191035530178803380312316103498100506077277406134279917767291524154939440592728519901732793185222127500106299586394304321543917269735088651441578353351501253360860928479598226260345932938220553180104457301820405472093045979387289973071968292000445155728842159100141504712567578735046726794425518909892892493260352609160229903215821163130643031953704334289357840081686991112395449860616645202399972446670684920204591045148014947083685533292573392713645699593612357606608511006032017804161313475021146810189400653581243980777431721187142139630120267039125362785906512677133807866281071194081568671202240684837685645717948143275389880294775352210027359838418913958022865972116570905874463423471776071218751813637521325854280406800957204867470531055387884654930850133574617684825124167765074631996675797402245139759574223225815584442790610869467268459903973211925567261425365210776728265485402899670729512227907088282132612218728613790056345325639905190181676807325148058016123162265375325343071842682537082074282911516407415852835480513726946154635037889129274924359261991765289445405933850248824998525737284712485160209405005130901358909464258933521588504272547853779813660357411018109775060168019095099660845732941372486457166884229408403261899050727488431644145421254950866570744195786007845642170661526686928627357064189999360929099234919792457484990088369019420654618627011183757465548732730237173637529964135828234076147812227891276563121689818853872966223119402474460539472412527385412806215384358300922343104427706748799161849610548732176526229186213290087244319521073938910575410087626557185975228564351165824306694608695716948853657490332139152114385165285839201433421029086927610006559346318968374669343710932425179407563623173640908235024545534152938570032891840223435407123669341628163656682153905794793213544529847924712599126768152938844946676411701888964899052424556675768310983490486354100607142795489204858508313720244990189157913058330314833967340202946479760741082901162154659530254192711849310062472075716430073322017285326845264400957235394571459931979724564046320078765502340293316806058652355274398614168769194073972035678325341798833522390312553004019808566077331954256173896531063385684340903717514399504652903784549140708983878501257248014735777038560950307649491682805886109292497506264535114468755034397728843296879218678909271958251499984549716236961502054918314216979963187614224742401937403187687417546269497111223000408710930101971529239811881797601002724021406819936156651401579607686576616772460317153885174645544303166291735107512570250516436263505844232381562169371234943298394420846229833381325049542408054556457886389913891523971379711751511229548762970556645359896483720350525380966921648171332371802088185020685039857120871497282921246915483248248690691642424611488972640610316880239363570268656171874183344530552891442805769777888625003735131977944177256809291429408537476890653237667495123675107067215435931025079577345394395790495845516268010703241236827747552144172675080544449576474689854926571077532484315659883970123828098104858916024646966446082353119475513775567842270711780123071326484663085265841611858900387826683649193417545442753630728166967623299012457573453538860708424579873765034210682823811970454744588724861629184855670427983992215663197854000697630929962949561280599570482605508345184364292208709112677731406146653257482013994316281789473324467657835148962623513499321478192471718793171391805026221820037912337686454795032560346871582415957700603799082000134654060459707528056873413701952918960062933277728850833054884394655634582597105304820548069275597896032916794751815843942549667671248102803340027420594746819474776270441643800685173581435478327540990392426108625451592866846801417244364898021964775771499923559002547673075744066862775948358921683320337616959022693379340329307721468487868385652231094653202147963719576262749942081818043049949539328220298980077315105244043335879238145608251960697639003243762538764184215385152239488022942330912907308895993848267827221163642596770370808900975295832195091103586419919923979570679841663355133470117604168607674688631461145635761775713051490196815158168480683475823570073293184814435344692215187468734812060246555713111495033554399726438935056917401261860273072617548342893736275407127297718030077425238691235848506958715903782264237732684278319095504466658489669485859795061018123217663270508878501812962702494025805422302170685798860702511974255359068604127715996084480759855435855788644923667546255663937341141529759830577716777812144701399224854770942120805943677013386231313770911502438451247261278063067381984232861673675205627247579268776016165341388572796091435274907564456460647510094008734439805905875522438866574845992929224579716765237554061701180069242894934835488116911411169372313831026662949895205993033184106722257092527550851360773671136108126417820389113885586414910449040963468137964066833308204904994144803227909319143484920805906774127256185529043230958309771800059563052068896249166104047506903019356490667463206660098921819172277473745312932589795725786321892065988148905192967920400284170576908862302456803867135055935559023630938029932422626594266216100454490354236577160683871145624225538898424415070012734631764109386416885926956364768863268991035955917328384976535305633548724728516224703075612724040605132735477548480958463741050448046514853386753047772919402803383717705754738016004461362360415650814410593492154967186928609002779994770470914968297058932627516879049492337571778219549902242432546212666229245601364131587833248301236260640599652137523167187909388768390535712210973894638720526136973768180104574794835404777639628578778104469628990333368812222535995969163677718955689088266573785761891000333535400175889647128231328238513936308724294506918270860343479622156651688378471726351736844498156003070919345527107857526279269412804597043393893338565756639138126446979942575132020500629682239822851601466780460234627958033713996276397439955205275652737149730765518028788612713687586689867325697184700652251362398313088880317058109989907473914931436179205147446753055050253606833906116634863501581018809889720497695273468636948834034289920442583735633382618413131724060318928415488485123698908484327906674000445433808105209261728451441633677015860822273088634980638310501009950804848519542249260587949951725809587617634422541170803038226403476851983387616781240512215147516461103029563806266371427642859857119524147545277150416695654358919655226517184265305394323459243319001094428148044200274176721682976169763233686581188720538413206111471205220364904839062221812747124163673152103569576803123489945557460055025451234968521840282353178367991845679711197428050381876365312348354714480328269867279178941363409274130885523132756815249238297603625065829799008136070882204708639808694626514839087163381565836066703932631098919606706151887596712151691482888282477796070157741797712397689892531190605283847661577687962929335732582421428373959171612805697874399782981405642823903391324082546194399813917840364753504229202282029375622131935786617965499830891613948002423831832690049060352156917465251527799590269119622300300010801841403561948768532974827290118196126291354788241798671301884578772483353037130972158531701739773170844599839504079959109527294467605919292223701601399814814361684679813236377497123847319022287759392969585368114127218529459889294459437671683412871328380704933278960832008037344054976132883870928634986402640055637804913090970355941898146469980585555790386621236706152724530126514228661391508665576817936003889016294131964715112909184986179622641567477663053271471638101954246624490344785737410097859784075990565213121902639427760550399540990303148242014213411329632451131699599886240904305053976788928544782776181219720072813288763657195717348239918760051270051565303774272169198484875488864728908865049967431942485793119568174260338450021668915764404861461591947766901561343843859036229137219817617123158589714625179125444189038715358263324369396406993448528712155243080177467143675867969678266822481220051554435071014804099259543864230443626337580272147396774908534128382485427627313986604435477035829426277644940927455163536511277155819923209112358105810722820430904266491387818597911931546529998563686726148767991379970152258836409684701220159395380735214020607077557685098800965031469583982299588959461298444496912865732749234536688231591189185229400461245751153773696490370897270549417327100233506358103761938862983164778418035317270696338309875442122323327085963912450650425546362609444599026913242208750311983879609147742665885796437750674094303962424700879125878530360228257075134110501508929116210850490179772958482448971629453192955819547703674840233115081025500093930123119092954112853062469985805606780803885496532447950763263260007816139045395394104160399314911765759757283234840063194531638375412964114642955859829096775948553999754004733284946105795881129638664793832304225778305741031473851885674848410578405805036224098161867059615815292590836852323147806172075696705007138058123785384548790523697749183223288843210218452171746340798548661340188291579070511022989521924089923235167047538481279650875285318953446946545105006499248832736317182214193909307339847870896134351418974407111545785481598424775752527033490443765947650930197709866806553116165087928362810049740941662672993634439952203980832759535766185259667002986097554502731639478748244065720112489140507181281381474417691085553606211363172044417588897009570101810111468835450283115280714421826284875795556164967085274288164248743967784924440529076034601410966447878738943938035571706676515885724554059108006642001632296103480153233281353412441845591305829158111214975377145975952242181381355113802597037053015550336867238596373973864337152270016626901123745920700361742340635170877155866621720940796594100113790000726322646041472195270780912773688287109156044144545477527411585866099841864227546989626135097187354446017394818682904423187601936509009618701007317254932140381821628451346218677986885237231256663588869445718862018910463617278862178081665568002101887838288321275691951592274966664410030583095310975400032962412457209394031143319148977620456222230713218052905879443296582385374656134892393922136418861243997609198027387689267378905425138514263579447800674918668208426001094871246862690936580954188002746129919705896324398441973006794881843687688821113496063236250054923064212418069564474672560524953898545053958264550244406941469959971699639188119078782035184218765855406332761854360028960620896282313291150483750856124482994605217412259868305997003366193484731757342118088753241703721570636488908067978659446343172048169324975259366772068850436826559121117816591283043518923186541346353404452862313399407528012040532504065276792200335473144539006431142289674121463046233567456037772471122308625918840288036617247422371904875385299400861184867678697334723382352722487808147750817687351700171438105048203507277084039502556005942573362271417005479706597036564585218519471577592029390532301561813817719548388691859239762346332038324482288983760801260402471000111933496435238749632154846900574412918634221570743659416122863946825565956542525419389487737389914865673687061894230020955923292778584099234291104706870827694541742423182790267725529665241930491082264381611970526775742991450175798844870153083390707655104795575287640810814914758563097823758705238946594440642837506681920680531619457992467790219677142115630901699145209587203032601874313836666301588594824328888628756346929747687063897783077352445675645874562111221633926408057779625586540250455492339239029583321240637084721766232118741861765370585958170095381234431269592476499254089134715512622927589574674863219583474571118770934725141678245455881494768566402466305704054858703320977742716935335522446278389938439457865727732849210794919744533076001329860902327667597905119651934207765985502589775391191961264805772178250487737937449173099034334343536570523030924210913552294599154554455634884179431234665997665578249861018481697584517669200294238257346190533408525122097066119162801979988157320187932488357973438493177573471261901150410073810263029251827385002299648723581749438260989109806053143181660811908729339846644303147736043061033845284718107665842880844040722904325512676617894717537228194800946921831941415354334272252035841956828952911508748378599170388780938611128183822262858498509119786218887363205587205162981302256887077676182217153220962715966458481254923059726224071238985472863962389375421491061376005626567331865941432375379213737440904810680005171808406219880676028467974538673517563278633382704511334016993013492156195935575182881258889667262211505428294954855805640887464266399949662578490532531346172532389777334117076199567938832959428224839642345947676101964587211173860337448826836677233834433586830254067516291669505942522913300688139277156290968851336202726535037595547623695296179088173670115522621223626838490428034390079826666612957565485559686708712929454724317152032936792058473217193506101219270939732955632699045842290668440288595515969804941753812694702989872185370539354651569286679289199873083829193766229728899450378553994140964317742346711143631162778219170036431920516872609174929187729779194660931690447382059804326566012229486801978250294735998479476461887825884319559712067496774187837048588631439163523687461735690337066930512284061134801643898800052701141479598555586708523471231602886090437439286950445339059290697121130753521826627040424347220866724642623601905815719879807815466453380059080999214420418675682875539000449486526627828086672940867619801361306057799764804466755116920467245390504208383991237219996932838402178155443294164844959645580144940220492004532842435481204218116932157911431018997191242621965388498126614833613427924008673723325326771470510779748991701926116460417585892737257292191136707167995693046947890477873679183095114505347370297062123597003236292250465189011306324859432939913253346674989023469176704424844787932795244093818234298400446539935294514906004797801005240877324070939641732120075267603027623928010067428156953473677799889899377634842710428064607525786618269810068166726559272009172345597667720103034125491008966459652592071511511034217471184334865788021334263564047551520787633344218929072546609860789769199519581276263374755429235662971165124570213005018765195922884526302912709209774238449674920392944047893335253752149828034178314957769802356325316162934430993161900836403594385398475133924097789973884002182797864177886563512961841400206832469818028051341672654802493379633366368211067035096168747741079360129086046645554652491443610354137333258404313214090120110001302485963116720326124055588962564333012948695530758779657034273689413684280882418170680426899009321875326854541924177221023132713900143365833592021192376430385205321866934694457519888331607282428240320351680927502340226205394932590737958580295521393091911956864033851570960016399730829613098668864714627758041084551600500081155810797735247696225257869603650160263271141329530391136124587175736342252217607307641262066567829357311874888335506070120538368315174559780452967793458466228629024738878604131111539275620490952061647872632312442351496275181303643778005899390475089792493379758221668203306903794885455350121411624235601452356209662872276106470138025854786577909482575188208984639887168320745255331593054798751009643372251450100888631300599629775058477585035540371120291477656570866976817105689357071274461976408255003227271742721279739123914853827719564613940102236883920228295436989208833354503215567657626109707725975528253218180173805634161179425440112799135452005282810401387690881684896517220718882092954238239489834774487779258010575702809887555355122271579356641933212339522781592611939731622246387907517478136478917958224204864581538026727813912049457507211293859849341109472566032701005103158921137522865423956237833219186800676135967749792823478809255435973738036713316995824817465926632443998477091737153151014896590095771529831105850622410772240427160863298963804159983685267105669644116510269104126996800799134213416258465796939275484217683881572756146928284781068913071071868313785744923329752566950827221823960990020880876188788237090350888048921051354120634750370733028657822711726500663865511642382234242142027376740869623648132298887848435441678496690481835859727731837044003575568102013646609087642434552867114723190577149706161291101225088977308717350070665188095701811419153994848353791683374656384617208124439684820727936281344168482083740146458055418663418369565790994016407027437937793792546937089462885064655668797534520021509293560672934747609133613491007699706414816530241871887337535267686713539566196686013908449058217374502175189180062168097573018396545159194436523058158341386412343010989856920838897919417055070807240780208163795211825375842627708483457415377474208481883868713336878963085235009758457772201648699268464594592848427027774394481586636911683067359449281238868409091239063853150479017446286410047648562240246926555606515734759768940714133122059556107467020815728066261574938451753376101056535983696255101227897789069260460097332573188036830555782158650569892021850625162963091524706357496796694139447242539666165934960907056418201491860273563128268487091612321200352046790680547526004226732034500955647977096099430403919670134961643344228515310735810769526577955444313807436852252497694898920261147717231475445210854543547700397214539949828142028128279355331962531772657311587082799513176090418514076523834333802357063630546271572297489288878983523273928490891059983073025537826672822982500115808345389768389033429530173772008342478564421057376500137116928212202209913224304682247327475165356234736863286400368518960953978919430067010815337078620586653639598017276646091217012340459035016665090863298538926462120173808582760520719002228845817691374078849858899875543459953420033154765802638591996298208945055646511437503928792549187394303336789892887008040185612739121289995126588329187913407553205625173301551764819617135577256485877832737606469005516488948672294215418173590152554788748083792596839701177361591079016185243690987340044885474808495519789847365840486752610689421743074191291990370341416241796306138812772525313447961807138654144220049159933762598522658662175741709708687754858312449265869086720038095340924761142701653866854437762280671065750323820487742632956306028883607923245322423143497739856355086243049044231413043239499141790515133556200018972769610107988153248399183116074409800150587255113065141313714495576390113194036175069104759827506367803018481917613706360723766791099824978624365606350033400411319425229600323498212223292070952121614878106955931761120493683748190079288083654831076654533996198354399534981678808790532385634389773152109530101578338603167677586348279557235776172333933369144818684215113331858052535878637269235003196424561383900934190245524594053538719645934010629917955627762197300871918367136397160897821673690359587085143642070496410311882574509539198690177907206238774803614033772570890787816553714707700387488528472007531457395811787050334589938886113608921260615616675680721349930389560246850459224237746985212258201490611006278912913122095997135283416311698281571602190314152586888911011997784122575965149053628424516064726368065060657863644676409016188381985457484516142375605308851835279751221672738073654670495747759013807885044544512585920597097487069274164436057896336029835883068149032399789035997677657929270671787720983134963392869947416095487231003133584991074913787968195493991003692898455755219094353632218080121368517530659437425924986272851192709831368265978607347283293141544863035066507666001379812511061897579458404079677324419853062104130884669477070919689515200713468157207143496166218488171060418812777769891378372829157262923024176204893925962113134206363139154369163412999316322247357992116599571150248057096009332257921093685716440182927128897965314114091211713242947739430376672938970409053395087983397647998725185374218250123455701826628199927654419510412081996944014868497329040038086967812315649560553883522956460688889476362911762604518223510211156040768455502260756363116620476494299611391596484383152002483966821114901660653475622568220714652893460694483379175101620220987147384220239671499489989833866131369945717730283338539645184760742752179665074247834080157344301793213640114106571148005996743066470175995132384724445806864685115464362101984990237061988334970858846441584898772356958599521580536475822417268292158650496479878776318778937500538424540636675371487078301723019720960085119085053126714749447057421212960989759551671302105327835571387115291059253905207672153286708547700099670064939830200504130163195762479153425322548028366984631557274642823337660988259408327441957045018161944833499738500306582886055557863595766954303655017083363520457479445441586954756119248042313544082911501953829066743288808602805811280143371021401687578062363245901133474981563911876670915412455755629995677669530494708924661115758457027059644613029312191876968914285917436383925755329277609311244662624875440932907704700567431189630098425336420880133210468197978502671656529562647546349532391577029274569247920990154957863919476492924433584331834673807565429221926994181848369374875432385127044964621142036746233605567118401195642449581164130138584111783711360640463108021870708199854027469250923283177350919401167013662107191894217487559529511854764388835513835479831616044257575108368748994921114825390548858577269147107608440697352375267797835070702105523121956638037348866386843965773793789310567461070893009668409534721225555476099818937925194903790968434736934560370724112278957442085212673376864287807831266598096902749130797944736537103035980008812306037517196075182140424321020887609300397371062052404065785612780671204108443303682138209812715703249351193240639072271002080944496157391555628763153449461370901460810091003168604595832197701307500901265614126285991160751359936340391998911848205488398921001884559037262506375364713528924352824833211320533019723706704211464712113197733480968191332643096699388273025702998874377040693517157759147537485544936755580192775215134129687267990504743328029484032919624763342049349876644478381585836316647193198245445540863566895539085135132887654175249398414723655519178821634567242695121135133371066606856218688663665088032553188736528897241756570418766522721256008315665355264784880353601176371351671408513626855286626300142430405038198002931405655480771039533847622599932602217432275194798929047159524048733511836635639548687441155208496583054293059216265661179603408760377617207155066255865814399537616316750072411076703288443218981587218748023003182124730509336800954968688050402785367370341220663411063844373653047472949575027779695654750010363694285842956515237948482181094972865600033887632619364400797682957402735117237477244188942712880250860957449054648360798322110084604229686112670790887709360980109477433682992411808457494378133479672227504959429592414415111130014889709097174910411409502424748487695528773543518755566438226613968828702600792452029558886245097161286144903164782740883642013308802947907894364009556567885095271938534522066969494300357149656894284128582526613839280539326725362043227180484610958171656263634823011529875973938918776213713561850513170191717276088013965838962722998394237795061757661684861784671773639182271018348494758108370184099153159233389083523470552904059043709411994537044661148359738428115141374139509521713555872718426698674633940072763064762303715001613609764729630614712764414388129340391487761950577794958601160515034493936747901080784242768540468529842172615279375112002438507536919294419132385114157678443158768286703024307399183307150341175045978773540570070688743313118074168966134575498454400463483623786102490410101101272613518241178396684945013268944326162758080256908367265928692500626883090952862049560864035435750720885812738092877829728874663655700913060533881273770509142601373131577780634723939510187591713709603546374117506389229290986917654045595144113532417215875313892504616257270955992942595901191710317720856710217847395698513788761022493533018849209869359153172942965120546416499804327613061093350852605001445071215183162097666472541524536682835132729117880107836226001779362373341143936337280545749839824845205270016379956632898849286342182823052993762466785744501546462358135845477562667544034106804969123633937222758238273352835249910407899644538864085450127677141066037824601882116867932370375579363395584244888876427869094263650913457043059165177346274150836788545130997618741641351066326077548290408815988383533984404443888389289704687342365249664827362160481322049638768723466201298222899057667837659311147540131051960953011929745081055526813779440040889565295590500541108335183203956914590801039483259301196694710833570806672638053368031541591016894515537395186407777895853909752873826023338492649185336724846321222404671645436287337695931322359809675348795160672344509779734465409760317047292985985712770758470287657606355726735739340407686849785186435307236328430184201340946852968023508238469366168275312757169139641795400850206824666882765677939083723800233525025514930878933534829833479810998135785331899397037103800916704382161016990897709205173122097788168431797106414723610718200544905946868215479515212785051982673968613277074554702160493436291319378235168236462222641035681940103104354925288029696041040737748948374511333133804867353112958228877604890866268819172671740461988864841054121520936073311186185781778127087482017781242238125531048320816277188146608134230703480798703521582212441411383531860579868342342140585291697493884561960273395091274436671820020511785537958470527823250075748026618650596959541572897514874256928447913503054320196815361990129327664294594632396301254616865915588444165347852987433622399789906798179863561520700621559928766360846481367975658064665929594914736610016072099578463990367386381460933434217242715206611874479851804915101379748113028330078068060506425531294409848064707212772572905554734245095387833963338934391800048145214695663655274949828101406751209590928177912716429395282968240679903121882107627828077123077841491632580315384023355270973410891342665994528557746124011019408019564321405301684225293376993995189087532380680084586040222250292395267898533159601954510171772339101621950630258510554677776394693641261189003991732283007402898497019961723501958513021259404625717115548056054558313904733319114895330783520335904992594446825803559496052169566252989533660876566535437962022065231752499344645763134272032029745032736586274034000450392642515717707632176593905763038704988333604673701376468232255554122861066193790443230600234516237394508574337136165020022810019915534521267530501614092322361718293429296425448883070082574817632374241769768098438873486239989347381381690392197454262440554465415454928718429138812269356789182331335114864701270544281432502020607255973511070112477992474402070568573147596827800660730188114313304921350720972475426954490839210719713408245379100484281043850225596777237394396911480395502427043325097301340354695307136341676954662137818939435537641861844676780363924080856838029343285028843904399299563423317994876222638687178568967008934687257163074777910043478778891955168840651432711286211499439658231141875760325591259609845460321873021845543514141364499627303263372214629879005613311231218053757796347273220409799442768833284400343387744074042040315894049642717055488109972180842868697390766608030108694167474814522000917191294152461304753135126372516163316526025985682607996152246098454973572884345063073323014479400335117719362184896148709519478423473076715636058963122215868481429521525820035672879643685707679272534780588940052839945658287679884471548150323579640323304894446602482665325002586706614274849358673684060273676119980996854356424303590556870882787970603069123570882572088252000004220197539025490821325317609287076928384179704425587525064943170420025047437063286529301221037612812923899526937414687553177226933402620514362459471283211407120964689934177101958682027559508470358692454540609183140432524481762133033446905452889647016668088874113277296729166924748973426452485597150425791110046034519859081562500911486939427362844954769819792229193532737392438967450879334543345288972527318688052465406176674337063691604086100301080249483422728702176264867301696725489672682707669226902666778615681676429660054899906155812586557103935023405019291921800964960009725153010704690019623616840263921034075486018602159216781735553975899952806013780135499429117719512853830427906346909364675870520098052112764069162042693463762968639743158943090387527376395385540065275708217452203317639065328791398672081656124710139228908590163132396538783268145757590446641398066759642614900833386815297272695650925550953848048808303981266511882722916555914381495069682564521023983973683896756815346902336365880965042704686348992527003563424059467375152862254286262999591343839015316112914701720367836838284651943984966552856279038489111978411908034907577836703646463042227971200445675602895473634915879956551307298683438984438110518359315399948567412034854455281917479459437689242531686292549380222566216534694663848748105215788131924356219229214483239874833331080047015054178602148654258882161556052305471429968782868797515039726661497426500661961187084549033956311125286353334238641516097305542728182159147219290912531135320122360663884373244603091239715240023783830472916874092583536765801094113789941952148478002710960265577612804191883572025256377294099695369375059903930469725370041413489283159747949162653417666044263142065751304218833926168430745352856066353132419338571959722044270821829365499393476579962130736903219230940124139127018130119947650379756986360956674681388151340628293797091247016507338205000498682773919478024973691195342288643215641960795381660719887039123560373044708335450162164363755759259948107379743922233193369353711759664846342779426032465860782922333065571803146708613591390500409063884879297518447914733612505560725224078668160674000076305508483902213127054458682179877832635549715572107501839897197931677932568671291789490781536902784333248248993187339079380594256470331963177218132331574749656978170729787770148487151927215032335016375894985733479177450454761282372462667272526552254995680522150650154463315013733145155149816181844531280331154135473232788056641377312934010850283446204985694366259116208750115534477429745883835731924654186587388793930147113003675185563539214539624720818093996424429767181026179686838779190017949354138392189320604320874035901666299060857317649337094312724305040364374348793002232457628231588711434228768201298623943780676891872852919116084086105560877833278035149683056516001634981331595431018811632122785326520329945968815604375718596571035779328217157501104057212375045047357569958139628440459410836046386782536186923344425608778348234530137452404292637934856989915448263184078058741510378596652170478706312824026755750335414430807422514924455672881308206858064450961878146763106977204352068602200300863339306784609529157375280021933494316808066645472605679695219741060519357281110771902079862863834177904146895211995815997183347701115690963467494761074445334766952747500930809909532591446745912774303172182728250588081354528438845369898168803041849738785497518599210837535864697545744578068380140556340058746354728550182190977326301648275604109874129761242721199926259599886568574115328286146729780110068186502598890734867313657485009341558788495617085510733746805991269564230542655291086235265580740010960722523818364863490805927991884069301136295703293954436249622850518907640540803271554706163857568356044748875908495455750371078950944108247570273401119993480195809263946382195702113090032027533827224278636413422234828172490993608685531817256123230722783012656381292066332463794669100934259955230550973042084801688587812588876616044284168585395311163803987106538035361003579060573119530783321940932056916693941009403894711904995823987328186567986295320632988241219089993314388473033435135903359748038794633541377299993019979876969034680440698152892077367003117983443547419342772965129712203767329994186301743470076060980580463043187068725935759445873102276577552390442250828180918701111051827841653712714601242616395934537203161880305372798430291672751397520203169528782686578359999555813127252529237396906094872891733571804632877334806782266617433400276226884574014929924564467446645469557084205176382988271209570195245133026275369115516271118257212806287127317859444953488347864030883040665054542104931932963511757821538304783537850075055285005567072025052896002741288589071733671429387186995322773162626905151598215555320975130308033203978604447920572331441840738035860916860688264325670185026305368704400242728879335472722263950989401509719973118643746441376974427872287107632840873839564796599218703984818958282730828798897510797033791722501207056939750013198178254775045418129433899370834445127287725026821764774267551193193934471169962526446358632969121401532751000584499389481557750038678135191528588847398606519239758813728577877907635999473997230847037722446431081337204236363650769990841606993526163277990417174994514951905452243342934480979247327808056422236511531094004165934034807572750671204424584680013684143843801515647187583367634426157141862524179120203842347980162427115505579136464364453052026617749169214254161193995884638550155851146131388473125888360872179540539687938600430271295711390256379783149353204554634197932314134927130122086211637076135602609518217975623652907402567082391749589812882878710868545445325402096970847918688420522920017050729729679326584630685628331470423345386955726257660510427243731143252661989750302568055408369523930349849499861861018635481784969896474646540545334552247822325705194520840338130083232414950926284499913735981191851354559497781318536698372845709564913191127105117623351045249376466128287549297855035708982918355065590999406451291344242976251068757501412226667278209905329206403293946771615743718920375164639748074119270324614684053521645978485969501695573638172519283041494470072168071991531788927316941537983826027635228453212743209615268979196375308180734555038234513245672263757993063606246841983390463512755124639959112270608692077239116305099995437134170272368411146213965671911846913870849729686912466745522416380841780179721989281007867543598564254235317984471592832995232214246734372108880073132120528243679118716990202754087462295267196256930912113791520655770030071394597318777881830043682942938267840384467320837409461653032119477535159772765010004960300952713390874200222707834138927301199089633025331384022524295027599557539307044989154855296635472713520167196087902298120025926429177213672964668429953403288644501608452206227527807101662953446090934405160966109647334225905648180900064236097649935404206479624669520174258117345555454280185732450049663423668956179722818953679868211970494905162673013204648174042746805223639996999750312630435808569138559454118101999053521539805030741816658272361263957268140097818237601299074690285329691921233972092439444323028660490122065023854942314237949912094125932841625848448458528379057962338137295246550235989480049061577217039287168861635198562614078263853230501362973244874989931540239374297690268333973221531929750259943459171567705414158945352928800318350365008928212755329977173770811875755592956693392245918513007466947701607100024817883101008373156028997838109229517543296361181764293371576248731814755934328752189365439060280147584272299813079895302951963153402116432384790659903276564780761997151275877482539985206949030139775812734789213478801018199426291657146000120257371103112670090132553174451785356496111486872695448069947715035815190530291876463917502566333700449647438487617951289503434264375210409267372527056034845513404901181929646492333930829293513519813839385869508689519522494924906360773680550624254046518783443602471493755807261305697437955304510909371099615351885640453685076477096140056522296553834451224377680872990781216101771615925480655164328931188617663159434084916689568028424599051290675465571355681533029394899565882005337792173516184307486428808569042816796254233124777101066256627222767818193003520185051589307261731417194439756685271069876874197282331641560829050588520752044107882459043248785554492505622143652448581895175894507355586521333520184125187723226354316528466784668338674413704211840642702828602451649029743221307770775720788348693043463275759874004719955115531500563022852049405773707200239683312765095402473647128255018860638200054743178975533355925111377102699070563189888095968587429026197506021539000756892019988086621442972207031948241605603904890996656212608210667738066032307350346911607517488877859637358081106285764774286945245650662945763804508714340305270451545819145319651404651320914588345285534055239039990399281163460566439794165104899610742094166349282401662245544950329104183428487888864520839477636613063822721167156609941690928784299234361616124699624836479767640486270637532193222968926966601438832385355232582740631201145248972969239568873433502451911957302846708926115066486500607398179759036102177447832491730277746286089176352280746097352122381700956854713126453557399977587914840400814487280849584163006600305833045126596542918687495888031858391492707051259797169394881418993439567244036078839312975672375762044545309368989823595214026769568299724819026581203343463500054355891962117075800140218081151387824663829333662720375183499372140793653003393650561011700167151695688652281975075514233613513773265936944354706451144475671782777851097080594167864521038058858575729262636773450663977741247555259930811289121243141224676039112039203321922259407540178667600685366970860464786393398391577166583186606825744406408056238490680981208346562631184809923698107299644632338267203640932420977057789711410134577964120397920170033651790432689358824065224798307420926004376894535836864096378078874873642758732232294241211407105951265757841769796936604630658026381253554674136427841612850863285732281206216730789526015172183293334282056377824809107341324591872756951058841201735684160730923567961158372044874798966500783545415276396752529576875319125899146646782638315233086177022811856624877517563742971297172687164307548267418987317027761933918425872700009919728125925735739879867845350635362090978815044424604674893803831467537771043869536837761121711952321363351846018189154612871417903533523024605631323303889349552601759372592642833988007332987501671384625469329781648371900928624526240199259889059311541754047895702264719330898768630871513790570294626392268854755411489609461739479130041676502528503994012586257291478838433232679523844052991122688442819342361248909137496097441247072414451134384746393569859982365605569648172611628241138864895392641690400924797625593805667170005383642975581089747043885059794109773850392095230544020483100468666134733810834430337266825535625447923312578525045435496940700419660141545535702843995207150053563351537791650006379506019897585213269562993903684669760853086395568243003021721944988185893992085087466961626971782672735068919656597384926966240405406812454572121935044395941148878727794102011965713464341194710258462863994489659622078288919084589313784025720780590367695665943788014709423560186889879268793960947147117352603136800247731521147341696437514835280479958135107777725398365893490832466918852178051978492408919414104762940272523818302949095691447179937549505001349719782680029301675522953021494085004111276949657030995129087014534002162956157613637376761393658824458039988353301676232690760463839690552996466727886708505946760114950750289336358754061373925860588159270844358931424988782046400634286054661167412897241196663368451018902449710600742922130163763926124928904303027484310426385395847885658524732159985356722374509894912326230253624396137811513191379992858909918098448762873606024773701264157635009355830531770162717238835953161254671378300790705405971638787263039143870104387329320967973329182204952307629311087336092077252770772374638893872576681163562749776630999814545621831850872832343360653778462048838323013336415920116401413017068903662528922229757318633085836498009864292781417727907616085735566168972275451110820761387267112530249197803179136350395125971640805400808674907822333864829875190782121504797735789433075259731294897988395433358489870263384759725960395573749309950427200740296543511376660257671335187219108072318059061174078046732422559857474648379414363471716234143980780818360714696816568659978087382134625113057324342620384970438003215478986303248531368365999315019614093443446402559849496624165004284355215063027143269675584096434664529778392935059436576844948364127181177426026464226365440483688901294322533089397588691899897396843281204018900557190299414490009820956995068359041335074907259848950814426193074707363959011613885434743977737322009194635026428954223758074218921635847497731698848773717231915324435964087735329402493508641991103646056983667981287927822597976213066687682559162963798743923074531195564609098067174353608012835321397911980427257120869626888780650382343846234863530799971016983019964803600741870216126199578924442995892178854297333311008867072215166883357624920090103110099760909806652526686444238443607669638591774789155455840207953177509085144452785132372162996374483825050296303249937228823593468535268692212159241403930198463699258733075355064946828749180137523241581502022843582922605621149563557408874092904827411367996061715595844437095177080546253928151438246362036415294103662710738159806966756583135830326526587395277547457906801710739642236195282199792123856570982265371866417592973906296544351765145045653531117055191777223690599951209289545936938504377189008340543632132650279087013670013797949825020573174711047080988235304993334118983292350098021712813357671040360844315740978163064279658416672936900099294229651387028721893380844677557968908231706002028641343776990752263406714604225789523896775224316785133268892385769596702416692124200225783935734707363664828252270998376661759849700026232274686882162581190390379637129454015805314069442559530659768498999649133963475087502179907529242955415998996798038684667053743779137232004734048172387700963243028863600147512368740044980281237956121295442777961050196603974617786348874999921449626291157636232384248437774233314595347718981064170105420402203912612497806627963134959585735479823284174989546398607405206345760807633104099797460555141959144165630574915813143346247607823613420285121397415103971802296071997429244597450376783284477492511553047177286438157651641697833276535188900532449923388358779858578579951165421102772841290180505113807651502719143257500798583814364900397601753398660287968889941491586607126520437096941038271971850724650248739569497402895748030330736823644276149531395504064276396033330453793766617828784446270636106363454075889569529691465154997883680509183309890112214742933088426691644661794209424639092083235846137681170186687952130296376364295179280245425880659781142906821899721404579935406943935278656587564322186932676930129191680553672317952848206633947312090182368431672410909018320948691720571329334718488379819915215752222399985082893711406940116494666586657429271338057124886540111284321544401615763836747452619832621306048192341589088578060456354314919620589482003940657789766891348501644283491632819998157123719323733466726817344264229540076154651490093538097281448658602914494503440936431228524228271532071548933256142580336597622260306240068214653587281891255241242874983418084665812469020585694100282674284523710667950513544445050847570420332510618906553018545064854234863476584168040504249717267258693851016198705759298687701743495524227542889964605146217495175436010416310648162077983094691406769250866992481965570009701698713299274043540069330719765360795123527121985519759759258683221959799984204337779439079671898209971636997136005955457007048256392532202420225370327794842580711094616030330264099864873807970752658133299268491315373175957131977262763670112631995747765553744198927991598122240370186718056328045145564437957341506473312244035447964409838946771956451514083481120801096193635311693176647698335132125830701897436583562841975580112723866232453698226988945083243174727228246863811172838600340875635733826589605391079601051747159535381723118196803572052659898636380875985755366867338136406070341295586700601395761309291331851962192484595037465914109544758266457840299082106480188107862996962921203069681364249157173489262796324224659948167475518954221495307686352494560126707076519661243393307257939855746284382964820127238312009045462337395491241061728886300887567457136944235047343198148634126714846744136833395300413301040529833035609562619704665872959745697235395300434502061621637111466277506155446285238024542352258465746013835234071394130216137346227845283325189541067663833606281562265781249232595173051537790341316115035424876464998140198945921370288830257945150459339838150867758183508688595368031597832213005224808952849504099585488122864581924521453730716963246663262525635819224978016199514734159665317025207166928790186894471012791318862086313705322530018767488721467137523651052671416973962384846649841396469560130010437912767424989559685239038629788233895881274564497802079033064898925556605213958155098439925204442005559953799394728102400882473528000975066724078930990047547254519709628321352223544096373011776832075474492167558057255880352737838364079150006420360090765437383515509221789667978297255842379399616716362103046094664932923920719655010502910233812824435224406117636919470269419520552210666383629068159555674863102645132718185260279935590975298967739434775762779159764949643292570495320838356973322336287160756315106856593224142095430552399775727967896204225806432457176271385694434268134129976379509223078698965603687651921994980241649795643305801362866830302219225904303108853351866699886897465971314019186015983650347045201138413131408444156463934504361440060364810796310533358204800425236814160925822749482428013233801436615966405011672911464705032474667805889522530143037981648598509962030023956042024500767906616131255771368939946100324727716209110234598898825934579196399399278396306587580021987742458528726486159119125393688165605897150274491496329658267145063662105368845455563405176376290569821585113954567615597773435640823266833536237596871888514578607277102638352780033300856247835427533151179782088995342668622686888862637364953253073852288898447761204042484857951531537721653505465125873099446244437664742523346111236203927509597093922350437099163025573194355212808841236586655804983926667546803686490447258818201758704581168485926820877142788896290484189771992382317808143069026254441135162708486795407372311800415157805242869655168266396969510115541113797109601957263195533390147562302770328196196167395980556969497197432473645173321699937804100046972590920554250061642792674816038862040944987364297109945736972028899864734984707295685529274234324595329208735971256893340693469446465287609370595462204655381964075472539902703990593310641779245303468940012698806580573376053681151578696620844706022070866294632394828039559312978902121288389171180493847965514831534485799068459935576005676000593871701080264638964870109014397363344553555020570916005816583588987218224016493519853182339735471617456358464112844995949443253128139644145420508385991572708650235028213124068436664688693308229319792972170988410017082568052678717185348814077909700160538230811850461338592758883737377682547171333973449672895710115925124183421442285558552400085617644472371483133367361241804055239825168154564638173769985495056032778770269269465709417289953980929359657869233930545284324306528320850608358748494346739143272725396721927244370237113450775076845627974004815342006581741482152199116301560277155295624011526462706439853208824754260458134087919184939689681339291016589269240344560608409777043451132945854773670116477979652981423030427650433246638744819026991143741233532297505789077460624430843452091281330781449700817004048389442109299351098467624810495873630021582430476528407906721060632486606168725961464703079509114272948240699597832402640664715725390352193233025756701440788211348205003940286336179579213314984043480047224202538953977927770437576104135801295393770893030486846797232835109130290370506851303934627743642674097287175265825837594394214941224206157686409824754312841629696401786617308526825554042977967343174468581465382764630351686095720526710076251130944094232237415526899258528041205211321505534390551444954076497385414667801363998300500982667157404531862884359530801259730249851927797525694954323935953932585872353676010968141235114036564405020377454833269784236756349483245161015769751759349653181649171958725941824850198269766579965088770288685841220221939947396626823489995912441194519834268086513548645391720968485292238265736332748990926734194081970681963420403006931794967567140323472917190687212792530699399627812426827605020851463105732438632546627872713070252459765011399580312753238143329470489978026872595544064644877658410607295035129817449354902551874413586904447105288279897282406208951304463745910550087364224753098255566979322689301276158040999069402461609362663057232131548952924019444464670399269131336842208072149547272928955822035376224351188741812624062461557079730555627231150247882760571013547133256389641181918135562323975465872595113703315964508924053285509634963387306865712477064179835793132703530813892994888689200671333099274238637711004037551430538308368637930067576033297192030239902812615768154338003732034593145456968907857668935085575766475018566537243700809540206418475729049783640067887083113891488869326415921218517214638670415885656108203159164532968090783436043507701260137129355812005001615228316495578942737316230837775803952672789464554252987908633278354639081638548984365018274114191816693533246848580545860312194152250183889108858582733700315439783584882479702986357981329625377288417572280691667787900285974983774902060518318237130163334544119593403773237502661990705785314140777880172590564555913758503403978169487617679939171604284086940065766397808045352503495891344132297763425418937831234238547676876437314597695878333485969369120235477572812730532563430861686167446119891505582853993124609282703973352818937335970672124568223832895597239104855366528975739931221807330177281531301575468421056291501973091794177455033273917765408533597516959396598522818740887193390005707317926225944199020515560193081925442282877597851023940783463904250968920422084256509550612110518224563551767757912625471269156400169133302158099795872815701019845309167755724162360601098210103002739419173786009146695857146591905133186666362146089398367750031572042643028918058607610182820178913655291105739001610996157406782149675068486058109501039325270474984745625893489519167204482622097876214961865655073477783487772452788739784914721260291616943176971505510504919194559810639315080356007537365841824207211147971282180019003463483440239392689558746892368800891237705207184095925836608359205595389564767223137135340092264103533170268604677122128419200144985414095706631024071893560803031159116116050845357224317245451784786793461812293212019231247511856083757889468545019552347299678790287489224073131859458371018780154390811857718752599675253635887885448894300825965999075935185722385250361697468402954911864986502615733410800856215484208407803129969320202122506190960818313603461651730739404773909064528412292746268459136994207278754902566437371193126670768493623784638101578441727587784122436071827667251059245285995580658898268821253902996499167669649569779945065625947468952732289220214379013589570979903768105966318642460972163491161587940512451738390497294424776512263370946048536048665352079028895311311224554267446651584347593137688971333867626423665736697976573363596885700072961943584349368378891845992907514153179769495804946975647363279986602625709143835174232016234229447067286476557112215486081472019526373728917108844204969422904775555590189694968509499809169359977647896045069965373375974073119385527953299696189300107588353347602003141105622626281579209655563219896352565149234683237507447655505448095890754585309565534462054416837175422202879860037615809582378453959404282475065572450066943621234614162357314693036708875879588758374060751205825534259447855807978180691046128419051122362766021402289903439197841530441329716905347354187736678840139323987217799619168696459101459859554655391501127265567533025394047950848071929995608275120418021369250224374169118782467764064922135624510115790035620174952047938347983727930818995518232281361333159668608238257364669016687942767086980161876479156214415117941777525036767025595540516207094980213234646482134137065002611204499932107141061670912768409812686767100754416373673438531272775658596182912779668095542850206636148117533593238685749087398689157790547662579871903840761437998581254303155628773786410920082996914516124785886296767039784565271629430279408540462000373487687539739790521421641097109283240690645182103032496432380010815726207552463748857790977425473359133793353281209910782580240765025124942670125615467127267552150436826741623563618285987962811507822162007216839100219617663813774324793376210463052807628087729738831102314082390192849312130348439475149715842677528008732133554499451548233773736084652921495307443680279013030248410871873226589323878816643368740444052704587613214498295499597269425003584949170162978055702256167490909349233197900381211942414023315824681119915058337084957712041320147068290870838011015908763660500219536816853096923394123536706669062207598266095900217008530798042658332780141427552785991569925170120491285538616661992480720481909857658056170046549172485695237079838162848019854607881056619674369219774649619793805396963459658873019877273498895699372673794774350812423925692394082134127010920235469290643125006482219945500067566318870507080725019338267607449418222251768331707481798971710699544564507232947419004719699591177576531102924782585400482839454506300523951717660988044422957708538683223579596424060754777482692443578215406900353290458236864025447039883942954130018557322159776384409040303085709004563721210630670070816158179891388521587998025807814082796450006200393534856626604678651909674595924985483588088445685636090731751976587605013852037215644566843814605121841423197855293954948118944346674412373053964816659622998078149685809176295512043568077286946236182973108029863654032408124575647451014297963020230203118253383611934295843637720878382039532478564518036663332433338269593740500722031541830925841418593621384730836982898108792738248244596705310934801770488591310978747534553817090821433741704986426011350238434868438721053598418735078070676804158156429441719812140092234787439505810318489887061681727671169468633287950873740767876338191916738756942939346383831214305342683821344091400620534555434219610114228594296786884170592705836055405329411116554795585209798655487206990121463049617319030880847202729564522572556897624733873262927272323011558673874457769402971824703064160383728394997425859003566795892933861787161337294811436739139344340142384983482947737091440308334206097478962420734154602458913985334904160496707280537326547095340551348247010545723344236024906588501036890074351902206310739517482368281494346169343940645274267796012034178369901098285596305726903834015807549976163975180388740429874852046293516824056154863263134968535740605900036540215422131951072692964189479854176045888400402324405734053866692780200952196910090989414587252131503840727649882242171622719919666690527941587937675571472062325319041646642551054031291208984078165959453303438370985285399357546410468733441072434154301685297307828408144048687061894731586096102239855251291294384282175104677661781672096926523512408065955741301640634346687463375115160605851050894942015315481926109492236598019416254990351730639551756550557070269620686419969464288004380942508357639887408997929511629782218276480907519305456485030623273286809210689904868343356511722783577753431078843214833650383192023719934732203999888115168891502080301247636284398342071679586340762557652651517553564012335101273261672845986057362325949812733033808615093112039861290653748446075011904913811584744185291943816251280698506139535527728703641714902573699990325450585271678469647192006737597555286467522029395251383557828325631929241169876829885420048541862573406704580018656709670231436598714280851180117682110319152105902132598264977208543304399197392201562129298144206920295241353986764194733141016829015925943454172058650955666648585576311899854155235193705695954846967097506864158802487950917647856996792329585336175009715436983059275795226317370614808248627574677498036187392616073753721545297190606136092101437714645999023120220118389151155485009646845634088171593590540444118571828428944759340986897868000780966433365549543351433151749210852343603261345593402053114766280922894163309737576824390360471395239707561489025153340356933556240042248031285543159327048712843154979277779211646154033812207000910709350240384991409542719235017225581159228963034832764057522785486598409829061823615835221182897375436682756791009625841805672861094121833023858119287855902501738432831769407310706448587447609474985213969577631932155430428483702990671588545463574144053812417517691912449834413748067335566581347936509122988736041083931886357768086535536154478424478662911698467905920563108694932877518523911887708733577077887583461405211688177966891106057224550057306488528457911184406798924691166466853573934854757985208427112539148893647974631379541364476626652201603401349520402144926225044107757271644154008219755520735841857095025843651406488496586329442337867312411824882268394757665585699682878541826624288084686736168135823437362019529785050162021708729867000254076932854979933495851877551239604828411950049024670640509902147273882403419109052025114002677799334539235307429017608527423682219064461874283759238286296795969048004956133876101683124564456780908647792459929217251063671031217818623155408566326628162806081698284661165969079788801203639832049899539382378259320829987908427737217058961994237517010480653363247047001815547889619490056823234923436804981245956869748918327201295788637163928636742129692289226210972578571700387957048184079779974812856854055552246135329033828748479794338897300848018485367519290949858629318700783499205543323128733028119238175456362419464261595364205531887220672697440544617711979304400301602346171938998661936584809579553772941921590832444357100284874555945484652626646403412962539986473437324502038187918207202204349746607655994897467807461252981091684013979035639274428338280566200173803630376090720032901342928674350576137324522339871668650197085726143712416762332561009474959741224862396782534275851861175483034840965200599567419264860005978975193496066120164854966973188879807910363420760456374632662761181821167318715855868428024286663702081196294641107489876755110266856197292978383275896226992836339618235039530492770545845093547914941956543688128000210390672211006760695170462658022402527514963698986200686349489095297025558574500753474145026625199337501496653171813240686013306952999902560487623637618622768855765490505657825653628020421485945517677117983705239990295704998372275123887498490034366559809585113040830312737871128769222652210167157101273955535823135224359163093600723356957204104498395883701961737570839920058528550919995128769939843237163785209019648108532888676050598694182635759348944442715684340784775941475966095958070808965916700945868882982610602170515822509674380303724149022152113367088523278606274735905323590114646368215769666119251130449187415524225205468503435334997253434637137656197561156545178270391786086749743392365758554482574916504221856081989703459403075660992362812875290806091307597119090919771613279959584594304015205374699269682953624295116384328549805906297043975241452397507172410850325887840876053316457312236222897791859403012105565858426320923742712074436576653952341863221350340631338840693283146000589494222125120201218499416640968897232695826051117744300094041997779281526371367371072633060494697385799624370988349940993334356518707300801184258223527110060612995658187962549198162447887389648417490106778354814925361276982884054867556346042920139193517737817304521107718846129014452245206838445116848303404266879300999357459211764469587896093238662187411093989390920074978927706206093551194604929441443097368367047889929898648251961858752380702211696608895704198414646686471508393404025647356160010631446182621005842274893394843782150640804714141498774785902445735253585439469310725437910045267329748974305898521382040464007942685408639332490425695616183259735213374112772465383397752427309871896856218150210039867036418044249345858462432521649709324362601548425047869666051242272414132278395892046408251343071771093264379375525910351794293943209120286640716959560566922139594093179691319311197918807175959717837461708378458226671864175747273950587760765117056419203585573078995129977269178615317951036769158601021668730656456941800957110269895714332299557533021600366362832508191084142403105149276596842878406292268970234455656644538703439035269686947148292859189723001675329668532764688764894500640337420354489666702911180392441153033520626662620615257117825546637310442752717606168418635593087581133534375804892868345791409019943668374523868287363137098253566148258783487444094152445882630620596472368030815094075603977228386958334403767080511340420629027727102942058368387259245135741124411808791196992340231955171402056648378545312910418768981745227366543678496526543067062568294430368760175141040273840584924213084643121868167017807683311504668911499422397789182940893361845754111017290030057542449840885462652110285915524511442776108834136914746502162519648436282932153900878935643095646249639464437110878872869089206838592183259422785009911467175980883894853741344563840464730817493787634386997352357320575597407733170315665821628560100183826589508413668297912433198211162084900986853283866959590920631320584935937895686026958583713239649646346168202276451811340743669830785478464572827993285300276620335946117316443400110658636040979017502486057817311004638514569125877034757027306191431943399292731833365035651549539585123206603711405790542224293867407119455298623609724867034387174771046225901590153008745283926202420775773350746109995639424600426794665171099237394709789579795998145940526078326412841742148698869785300183515570555994160481595226490731740743358946937989474563732307424505532320347726631954734597819901790194023188318137158050749593269689187048053987467712148373859903003665392784131815433942966527062767181616649178728305490880347083697344250930113356315699558486757454713240843695070356331506672406757735552810918742732164071119490373053042374812023705000976879755268836684145807210771789831171390724446111643699665570897600361259126494578172842225585824437597764801644355062284838796074691951575205724725744212331462582823753070673518412011077638384287719554294267523728011183747157906417147981349358455619680532372823627858437343387087803899530397490285192115267495871770536980891154412621820653780242397044893614389925346582669006786692251053571184699372791547031362602879625201299388008732487920874928666506426512727348637988616173924382491486034566941634897330187877025886637033228493540115758809410146959072791851515294722752096980634014391243839697716169576226327770310064270049324434554064691528290207051037594071538324346505142235835549915417198581589704501182252740630783219882312671340057608936342296649272179627034031453833519152742378614467677685552085480619139550814598354507684829111241560850345806318573592407482223262069381347839878409197518294230504393332539584334030524726439391780939070438435138934521350017696781245376685298052527617873349481424511118958312452306854619321547639883949814292924352880982818836661426873189180205086632848001484881016924841130493694752491443319179956095746198853219792587470482489155601583381108924084638206540363662934614146134173070844516615038916668022183901287913787165660680954334245776287999164077944221505973783609038937508157901618611360974877081104944423047901403854427296593714072718861348322871934189878343624952361605316867240125051600208854510753561882417201379185010948405980212865963438775393222002886154317977977230515125453140884966909877810739200667013893734900468128139546580982838075968841405440470716356430999861595763719679273353846639823977381975614240195112065405335452847652959478245352661130450219826839755036001422212452312914613200317610858814534364236533575646236949743561946004151922501571984047881015246227081482479587379707719196113201308912464714368632771038929136681110875694453284347253484302263375534574694681120864073558121285712639476037790888159907747963460505269835709065142731162986863088301881684901810657238301797780193893945131718626536563871883938201105601619839172303901964754558701697001729421778435692435962063763554737175978077626710682869559722710331359532134786066565772825915719040017815190423698546697036844439003368865575997813045640723293628879239735968717246858132104920690105524996390260194456021284153095488085200799925913511571706001164123949170085328103339232483084291526266890090213826292138664406521369051650383226563055943660826257710028258041145551437222347526956283557227403433835987980011320388871336966813911472990706317805727632184638627602262462482361884016809663023148769354466816419022666554412484573957126775550372727143135865451936391627056600416303524161411490623766773695969884921633693052696536378355518874766405414894819215533912954787878192352084747213414197444808093046367764782521558115032024097137601263464507288245151016556440685313752526119673467515677977968194111013539254010543485868584012637036697172074658295179742221223539855131601484713940937355954184062487816205970327854605594283159027928578793437277739579027409445613083260372597286124216260430048325368734965509373442603055719456070591247514975221927574158835841534746468065086522691304933111854234583679197768313997077044314616764680247412163725515296678275266386948116032469910235584580919378926222630546068038210936157572517529704856987131990754116660192940969490054667643132232988954762201403346681995208135442295028530590378196791795170756142819615688998786706215519199801099741950972753346931385523042200262830006885581990881983329962340815502368747096915676048605893431476146288840453877503318012561871059984263212304980612307534776102117005003430729976195546543871895364816372773817120044490552438869410309751572553587003888113831241342055778348441767486846640598053946812919332507587425861574378260862322138988740469586369393559182350558257156162836167220944605602528819252475951844074919488799435330401896935474167567356335299198362651734073565871603257805420801867563624840133541191836415232396885973574409971927099793506347786451123334631822903752168220487411427079154400175679926571828471180377881051121002512078542702903197621405995554487410730897545623817517328189631810518699642595999145896998114341771043006479637245177643679268164708258225782495542580880464157863153430707917101004426001117730229410995041432644562111556753660377814997048101884106669690234906234013215485810459582017220551052809554976518281939431331808049563509654954262436747945712719854152180446765781433876361787245252881528826338642182694994796256505244676634412027845339448284472543669892238198468050332600877595438256497646500624567417514175920352923089098045332536218061451640522450282783313474039693484654829036318653352164726804598368925354232003660757881127562771240611915238579178811066399011341812845078383984181282336711837647080001572426916790552088320510339403791347819113624712938553768892415680927024768619770636449076656401747422727169692336733587026470841484849039353976572022977466842640702821919084798224124794531661431005498005905239288766705833688512482206149534710984081044186282554805532234693474814959613342706804116912105336063027792184249821642033106543610151785328447153845902724716628951186199304042323459726439909021353115415232546083299122420424777521947816226903742404774893443981063035771283800954915308084087080366383735099720670545444121302959191774262993951499530723727017041536419652892720372833686032906148152774289623619104832835041406242040700024993922574502461717932940820792835319366526940725594459909980696882882705084439924663257499460079204298644946532397386120417950521242732173806306001178537678716909956899667473413075264316776017223379772449881543410241141375651098179956054667732466147492173103703039398387722702611655487834625787413335456908273853048053273814558563139990129479908060512400968502864706773045920938522393921259355580280504203178221618087406580697305895835889989344635076124741661749755624155799010410308563556343945404626518089815199872499696078070182999180856277154827593218266654059711522252743069775892015653524806416134948450711302737540641958302317732064582232236208532400667186425986562597903923879980189433336548728331745774480693683857312677684405957447096963865965167574948192567379259700971043934522239615849441256676157501775923370841827322977361487159136629589058559037641115388253443916737319859821946637067801795185141160290419607644554700345251432302647929149494867149270077141711779743248960725048432635120815735035758235593918945606114729428273968969380487830161109902189409020274088515880855365764567951407518768632131150099853890561279014407851418378839697995258995246570468064078393281505571517223339769359658452750623848414926777678703982604592686912668963582245329470391466225682280285156147819345358194894510376746202798373174207100855877259859786340353446604162102357201860143103727530744684130126299335086850970919272667348367918404146251782585204177044761290240533612358465993908152277004365622569004270951618055525719214843378950745589836928550875883303417133762511461429075217901709647808180019368180791114262992472882124273202988393018447690761393352590407732839981244008068939003030517952084504942170737567433831082211111057987729710781725093907621169199285878447574513144374657029327135007756915944955956192498961557744343529806421027385554542289735501600422301990790598347702603123267430544351289758078479356947717117120999336782956260266709014613014681538997868345549522240778775674379942331366100528475028116245632935099460842124016958718998617933634574173386546165956765282502725560687291068289988748665333587143479072155542600240096341835027072819181589094068420809341280351096537901421514559129603060236244260679812901767588269989670894724069021097804473819839257510686056949542664685673907990629645277905298989940689727855304615073948956853795824311920735883662519160325171091592378803692008803087114529043487999948160387570568614605088935936319577004691874355581650552565675769607581525714556174270429338643924128455276252835229374102240830869252772615821635528433188124571705355633481953870393448133988653784391148253294562462084049195597037325843020237632750560421055329593971132963527340628158514763286118105410508066417177208947026184011602416046441689557550262951709895840934604380107416484977945475768302550085662497409122209040912727443659826630564799165826560866578269358475658803652050271139510239450090441690449214529817213127599501468951688324858788266264666257273838099959090133821676908790455022151404298509017703940738966288728032349614452740475093853752849005176255290487707486134390870704269237734441363364080143070498991479098224126800987993475637999528144935980243392952859205025952161372123349811133216850495238408486549045402276290440023311953653209704903111088382526148266612292594608126127863112120667401384680737473859426448395789195266467906220308642773304232043550352471783362463508840787533169156560384323733843391243484918827116559588980621136094780383501051731325038351523817574428493599408049181544987089779666520449567690202634697471677844459524710852049611416669902809363811600936907028842751756725501791626666306130151532145067176003258821518245902534171142297557541829490109380307662079710733464394564042481652659015785290810340586869400502476113122293048471500887439384024466809401383229177787513856130705123257348571898516745838228355938065577179295652234443304398968833332641534115744479900802139275990051886607176651673305887603867023575370081096113968411118676765527043003538277530299485221029313638483699088942746316425330877528726141109119083383026786960618358343047381966232132673561759983518137530262037867941797012813876730249214752487576264187001453414766342261018973106577761730894996990883205148397144925512560834720413227319379437648371656153941559590920129414916861448063107087404023859880349730678731340405639617528639352187242974272460236411269965217689785740408474588165267119534733794927170799030805390352387825261081678578411672965066198862378109993886309594921056112755364819366884579696156467712986022147717207917973417810921652865274972759169370722342351602822657838923833375502254254097079818447088578955213150090968020564653895139691395086575956219071094590642074615413384504848376338317290325527888064683165825648239052067718190260223008321120469082343031673486570430310748145469367126140229789130847003453496181293272214736596307338152883355989598186322694831942014449859686868422500379162081529667776163401778910675860998136222579998439337328903638306947396539968822500969170384039142271158199181608088995680560626749291558825667466599010932720228134633356999441334830946514608606577195814866053774315955674725949578970484656552373924190869641561907159207547658082856888109020931584718470950397761708915454538351368960416381171237798308988845491818799580532831268996090751516195716113827114133103390174811054167663623417462962057239807655642996198194173445787289533932406202094085936939845991597192242177096751414072967694304221450768656867802775457342891979918849460811643605844619231567948886271494141542628374927849477799610265040739194965574129875343742194754148630244745514596652749920572958835215615964311895416814925956990329448414107279636139864213106376398125904903240949803842238080510513056555965486854878108518929409928144194699706958723392269849961929863809989789646597305013809489182288164466400904852831586843719752897750326615325385349221037816431822479156584487004475055240580540393550838719113353261276958236344312170495354598300091638316355717792313863715740913860435164514646809496592397500733516177135855003445384807786934161719106261136784679319555653118956573689543712858660347468181906943155146526081726231303142429900206509767634750865150453521046720943370481163164366936224124545279029384797993356467690162267780294923427410187941629489019372599694117450018461090785294242539798506383574546070160526860432977804358167936617826211022527361404428995551025373344779010698755494712450043961735351400380963700233212681999729400293160753751381806520576956044983541584848580606231033190272054067980676344931695748175050983325178337152284871464194521122562242820459154424135318824903312808580175854397696863182776494242350622233779163849885056263606811052370932208802878618339123124361850822219632452209534711613382750565827925487170480034538340741037400006484031396622667810480263187004866109516379520396055769617722285223871632708889912596994827642494308448102810129854072860107698892331943151936354279086584248592557898601953096292338408210102504006650548541945930197695036991025541232526725079799027538164576509627473925432917009776341953425724046654170941531936103110666913600747532912012358868971759745056580774573859114771124463780998112486349332610566464111587821909406968754510984408013714419055076630602676911943175468326899771170156661472854641533456215553432250148846514239771591617530637064264935923258501864313638105202120646567676762225561425074044953232185009660640804065735880307830396144422447826650014106439344885827753657135368381585675529516578967308705967540714398742489814637659677269254252786133118952630014073235216193911286016720781366512859302095124372506889854020839916026700705296319043896643998685619909672456081990431757852669467384137819119252741106097966041693884915589057171335749169185307941798176595471671042355067493460355756792615469801942116271293225121318606681396404190548147358563517082735319911979790464604527066319890745221374203648280537449586862833714835417713326741019469596013359485609943795102531387739205029931392200827390257581391444546481797222690890899034610861978830884518917189203500092620132782025832667941860190967320535517271139564366060717113862273541569835558626871678750779684447074696624403402248299462832103492329975279738068530497983576613024270033048724691574770580317550887835278296587794013470697829106536221747937412548493529356657627672095301569825628412139443470441527764016598483245067170709269285757945114619954249540472041428154746000662491435172495443343528708045437563818160972695437669177673855982034505232127161262978948260793465830054790988936317840557188863018816185997584876280465803343995945820172391515928388387942692446720556968514092670039830642138663558378755233159179166130753191886324505737314065598945416171812467030845189851101422587631499523085498287869256089330076957167020265343197764081943603329372251607897419985095426220054383126221005549496351719709344493619863056983625325845009073429458581140039451555760710860917048577408561835346210877033925212334343701334241195520664024079253548237156792183535371152201075884116726201066919723034884002544821652911775081162650462968199883266613468501530443851320557878444783701785461470405469043018890589127602569195055612582788751868472500976235487084810743960393219838345241964284084093173930802767978417730301759627982917616019544656696508503866123597721898072288824059161848484183007103804674868095982963556483577994271795126919835978421764805438117721867838011762336541331886560647131097939380751488387218099100984262307265820149311766525125710042183464004495990508512042409900118744172136552297928884343388420843077237070107162806177495461576247287171740381625000535040600906810530879866346182781794573629344512239391928170042882857584857322398329773522968416516624038839310236709787453765401043550758165134212079522825365603812341888610217022110747134426399672363486714636495896534211370778436694919996247648636082144445490779497203182649020622789809417131504587948170758041416839590315829072993142162704175041450060735173078811900541217948379410527008394657920824806297892263547828316808949555910958954528415375187935367792172126442054844396323500853360969606169842796456190960278949577622324382028854593738552041791614512448770792217050534477426854748964761045167450107840630809156812128320327030015781489869106829101850457473502713438775485783047828916260525035543767813580663066140749521929434297025209152405031179557632449441154111638916268850711852134080181335210579119145278041668789493245174839357197385181001880962384759248888323268926278497671663755398365613871638647629644612001533081542608649270011084050704769424154241637388490738118043575349750646226012377704402380224413189858553253235231636059562601411817466888741446663512251633658689390078467191859820137206889400505609102596140017524182077868568579196234607443796161997181197472356884415841264769074070031011258372707778119247445241559866513438010156065849428216299742693845430043221363365459656412258948992289092346497944703824177560796621271292554246873641673719242263307001445097349159067217218498317388792607275927523573286047160935729022300173790321381455582232293940557754497530645505620083002648955432398618825172555479363066031087727076764567218164257122076593864262289140429735749117328730258493260505980931422620971259689433804579148710380624076723283127291594239496143669276747828459224071148669038417642382739687029172352149144234033775618532148169005120359509195548758525809082110121097207739897472121990478796794878000824318690953503233649082789691162239321906333185460703472670791160167710715035200402623801363056916519169621104057433168877893107768953912897831614316139644594590693793980444712947350295719584295492993552709604987739802417804812085570892583900997807369203340311459722383204805555645439091994984806270544935533366212193008044515580722728715736971389122925744147873849538221726172658708822147201820063640873077445004926194924093748991211094682427598526778040230562431136133740024232001067839412320897982419975731705565224664811807688131996267369861666401794323599904199310877874223717268152067269039408501747523756039725530580424499037390745983446922310498617723139418380713454138349545651415996063842175570887852102864781616424338461604102009605968682398941736789468346635986054815934696051374181277489813422928488616846177620639808012450348677532051766270389779859253611514615310657834008767219116969447173686423044777627869935558710184599912468070849750364191155788030538883054576700436676638961051173680259161756945369256080568729798511828743224488945484883574649498795212410266087351396019109445266086577929440432338439316901648129503405348365180381488932176790407747805019280990760454621348355674358867496541827223853671609429917288849549280232841225196383246259463819666787545086611279984738563348267632927827118485209402158061286201815916887882292819031180741930130144115502854957966732180318474185655867218302356194311117758130316528912452051432596692389989890245154993628736999169806516366775887647845179114083635406384745747005973610517468349907779528231941505976644560177560987869180997840735122583195757358267610132793736577884109311762435510668423163485917974473180639007495286744903610225302508311399547308789383950967434165371232703936315166762991225031414012003441332258087674077072446927680659269968136791197342328164301808197350149866054083232787151764115181691577879860710763808292498274618901739434770872833310580658087725564930988153212749743516138854673616578683085978009175596785360428507198250743497795039642157597145519683497929660705955082554054615733434406029993700751671278167690918919785093813668794705050712023610850759224504523975841112593682181214336819613184291492985504830273767607256094698898576276684306925890881963510426209113434652677853738875856606650829290960187288365790903781618101045580992454803215351566484085842546750712989690272085380699458311442032844815815876504663234567694998972712447827501304047467068981059374458785925783901455100433648158756780959476229328303448923397237808587976909573442585837095584595729628388128260562533811642263390298764928535284814968551613238671665247690177294608052666162827292068381369894639113724289425406220598670033859986667386268636339092024404291887011781543316361638425723417846086580337293909142863405607257561971665988333952235453725955636333173411486038669764030373426649547030212003505517039278090963956646982973307863469829506680279521962873254508176444269131463297212874977239150635387211228259739641450761901043544672396198897138307052008479205905690249115349514482552644177835954091445485598990704745861369657928501603745629104623611657306676457044025077041075185521615567707097575349086528649698465575146126345163232369733465043339501756958494022311554560664342058535947984914169638754990554961549406187802595814127767052087305020947282061827134437176924142079800358449541355855464420533697716645751359607899376771774732378118911310970656850804014389599524954105766187635486538340579005515972800791891933254524673773750530872835021535754033933125919295899809645645211820852634439930795587311169614721259717573694026368822023304898263859722739129468323549660962203027778800656455852399014411639115798836312148576546960525369236980229374468366108346928975948741486958549354444172461179245583264462739897131553232065730431138163011334166358380780575934346546744562570160277313506149753897552471311382839103838747022189929814381483415150227673835557274974703447576525895001252610768197294733751810232150720562219278987658133019034184857842771869045581466681374540236948555421380978435057637691658858036261818840172557422873588350321789837044938882250070596355528316036812106326257274016983123604517398647211683970682476335449236027940955467917915889335491574278985994451151317904471170737269400972435558126160682178424446063640800251908935037567772798810781944809794371658644945029719214658778739984002884120328094982708308777215196585964392579373163015914185308343763689647074941129189955465662254758820622695311488160390431656583309875698791525552063203850109876803404633463030439716176510186894094522558286365118942233879008761970694492969567524713186971088506143236223952232671862171604692303207599016553871968826469094666718857424080087452916305795298432814195074435284260140417496198525493954591786306408494434385828257336232732309003339655929380733932665381686335111425446289009550527858031475068586525790613866722318728979002833638170475669711078832966700048970969926787607262865509065172926379995929155795394746332705676508368315700941669735834492821437909647637756411684269411300003745036543770722771233983780867124714215973102345837065218908718480072445310720401656938834649638413559140157150593829588779104868718476300912063835259187339259049229970332806031316959659556736261113618171978707243494765515209322773508251523271761450872040213661724327819175305136217321497777829539112615374262922085332030041788344262260945540585222466035877532735665369399417493498464219062798830762621933423463926733731471727140453640129691021885113160273666717189936028519357975914218170869056189183036035831246249997686500236784267627448112430600529324428585316804771033899511095248298119256176764974051560586722881829426493469692745932990448582535181968330252944809999139005971012313473651268121769945533610556374339463363171432403699665841464773662195029042858065852174186282599930152146084389110773001767842482026365127112945411213044306304070699718987218222569806417878373114081848316434786583470089510615832598455398206001811171137649650757961860923467053980576166889829331382252203527360679663948510876885479521630709488034259871379342158379147401250233898910795262340623633206547127781944279402836682869312684609333859942386125568522952878680173768185830938264496794630167370996798959318759310686056860540001424325743579250541510028663346906691472992772012452269641333538616527017721612479244610303380375242729890153123393039745823004346986875389052400288748741224596481142854029043732317036517516160459128443517832191077230147074362331071591959459580585404088425793118878574064103209938075786256674516437782717859077004333514543991976154267963492153230330506253244068174013226452386843746328041907982356935469873909282504700296973455371776085872581562011898956638142051376031411115271747263920479389050881424203365360364325435951595857249887777383025480299375650884486012571914665455625810128767584066601857190964726933963108234144921096957523179019071029386421270617306501270576567242420784450139611981262019971829171355175025625625949084654228284483532776899007903967642401730544295835796110536423752681520912298184456677408194259664059621731429572496122246447179420810614654404845764108549458156307566975041295994034650006298506741349792087232958425906848771997819168242796685053394313909356159099638220900086224345761796590999856209681775323905286043200640102876134734382848947182661652886707340836371777249787432701857915643168178830410240469174911233831126569127653069454882569589524818813188602722422789934442271309432681905863002784004874135692603372274088936025652294101138253746959572782849714324655683684576289213467495299012331911251267710758274608659453318546888474676696468762938752324250095192738949579475067716389604213011123773996041912578589160790997616586914943951783742547127741333924120947683017086402104058359640889718364385200027523757891432618988494100308415569951980812560934986202272285340643537567569072313631212120884094510441233781446843285251736642915669746652274095921663275019051164333068446373247831517583586599075188724199178413076253694113750913661382015812102911502143652161162608959890489641303891443054664783875913640358214721864346491785589416420699415660595056067391209170268900556169389254559123412910043719817862870991582994719308566164777316321418498990139716488786690927009160978128254067789529929466411789023825617205025278937802973502390158672426070719384800651238326410449199313207667315922283781105364956793678397864835089161916945405190503502716742201496661222265395201505593314099811982884452038992491845217356119993528106441586558607334753755674683431600104320460224520657128989431531783456068788881910932828903961674368118153178091031022554223031755351413267826408244009426304809802327346354379012463880765381080433051430165812980476448280698944471216902706719809718366562196794297778603399437201592008365154474159500962789108461677632036911736109015997056920682674689153390926539748592545804470895167419140907610198470125651396974829147552383360254771135148270865174521931034006816244639746884109324357680304046251364362882995994023059574222004489568470751488973682755342299625974734495907179626281746242060588684438547684664571519899673039741680364539349576708971695310923486816217080788047474758687992765935217458931715818348789990667924757066653173081223404268639122386998073368708389062640053415669041061830203749415501689904463773563712939923353705768602908312324611734700452091288755273590409648608413491001861985997244543764358039767400521395852070404761751073231310312012950678488615333250386256203038620856125691047195986331476124834286110640659843559096982794936171265522506263045465167369339467572453000443080843147453955175081699729633226578014286105642103929159897362848620357869931019701418156676423961056581605184664142019093256834332133598168643789801723636972149389908239564606979828500740064857800448966303069268985593208187842578471661960967646046643586049871972323509253532638704720892299200780004875525278022549689442560922062596352452482992785784966286333451495613005787951621492847944794228789268266755079511695772352314668135831973480141794820902511295743051561265207029272439721510508363410064685082735071700118386109931189762145731111709832970547061457469653949276502806377202449808003408476700341370014426711477407468321199343188821879885941647349382324740731312294877885522569150929572805418779927150032218895860907585860742527920225697603257103294531930940609148681539370498382919592173494225427529018310923549848339284831698357169675785381562656591003392467685374480145759280087008556035588127792718539469526436716319859873227633976066958176203749971821194379155643257141259182779523696356661365717483280308986948255030252740338900310180800725930365702903462383781237927040491903737606346764815417725693160242891101740450318083539134534132098809210373427043009236904649883049606669327848358891615005133709915564957541974217238003453075283198253150520296229733461526016645163203557422361730832780315332515579667880892450784638830469767514366397073839189425642098461678364869020333054659887380021379121644530190970604447759644068553198111077601353149928020468960949615121338178569056866229801276715259923932974334015868003843110972494791044982785298569378080953367535358221804570645147974105884201190032317269044569422162326088604865182901797509661727392446725856244094284089631880708588077204021419009301065756617887817582630814520863974757778123471343618442393106276414229466021485624345013193584973507246244266752039879599177854752885569220806158475211185966233121186790931963481595776386682450607722685598659329472249470903195477593911612838605978837301000928325239908292407052295251333131975825978896105856275745052886259271265740080351820939773321940133830438781010541001300638570590738420614225077625317297256737371783070863848053750896183159114743830174411064477442821581765252787760593916311066154483955555929192649554225890328824473601236277218725874002420706008829736832948460553288370623798944626003210743900365286759540619059060703654446464160193840508323161408420328478443792636977874138591794675171151602144918419531260245267925924500932366885595442984320420362101949556588590728442725507191429647484170591439205215647397610347491304275515100689626785213248252167607449860335542901645839181515568548104324888265409555203536932623120049909821017539734450179109581301468781559821633465031016602402586388413271738077845918014889606070326103174189321408583344879797256775037065424991759157437263954488437314255480845590122143321954609819883397941346687265977794408574712029807329825467094030755482797655782499304514609183509014193724637332136656290219722126422647970207831061174382954162571408160820139191704842788005267745307793336888764427134411668522714473407356103107957279549354323251055122615317903593010453454712372431642937670040225344039299866540530372864385531807409314695115140099994779802400262158437920321629781138248174833047865915177935321785057727776745708631044127857732151255554898671234949728633437166266367972523968094260616871820137684197677479893822012992010082387343702993111268803927847810194950171550612976074637725874505403145033000496829033855837084585842912801910818171459946090355895211187223859630965490295168407639583666842150760745168307740741520916376287782059389346096921674287247103387036513289256679663452173254075574407170765561582869210434099688091227744377377195046410203750838662045448915412915905710108169425960011294135539935530717608837424205948438422591564291576213118176221884236134962405317128981024877026147838425568742995199937327392972737995624765056186078605086858285866794819661675522019777951872337784340730086368814309843037065689304626390440814797761877283045893591373172671821871962055002824164871057190107713643466497814075064357969137643644222010157557845872868058841827754250871460536220291734102916618622266701720364030156403766138175757134708400301496787612608716690338250298443398420524035723699122562841457200112582166703574736744076292318459992553156022810728928059295783943100004690304023778427716736625752471314019784313838153489198982144438996119618017860863397708981657894100807828714135859231225354706833770986967043651837084288052043910836938217463131982428779842014371967213315880952955152588905474826812579412598728960296316962175693741523197170413869171111931162773395362256138048915710207487282961498457579231523710714576732647612888088626206709427725200150787896624076743337827250152093538874432944015565525996270707748449836750603614353598598010400781593999974574265907216643913586488312405964324475433491396171333850213817558184409223566605207590974054308399995375980397801416381310606580122159093211937361264450301787482464461239832165796966444007379386620503716481754452933564691304225397510298374204194533781300048859845516357380916900111596910486355740698185837327298779259876502730211385744831868547475968912357442365758203890782165705417171840353002046217491008990058059950292448340754464263060307920932716327749517329027677844646072346752384369556188494378696802858033949971941232793711318077254147923244942884619973503881131992542548416163421595330567140717256963776202786541742084475086907841610763044937101268230855691761913306954019425455568924850688516306166153525947298316767359588335678339416666696350419065442663039757629451159682253284907327263559588979036992813330725891164241631724769803089046372627082357226272829184105231088881666187873748772954322366151748591632364595945955849163923782695078125312600131915842378170308778743231879085921648179643136399224823141170370235991029977157621168674465807528872524693586842545724266879473720916827855772020402748267773342422161940905299030561472549906783403549073803909116340198373345610541889744662947055838947310527842869808064902696414237064611196186248499346085210673028312527026805329448860616402301753940861906555912512366080993931232466351951097088843730994534678990459179653237047198248582289965990669711984207531748203706646180312089721603079175129541458567578038858856726550080129398221460268468092114757193904842235338264857429322910551521813231400867340396156370265190434461499015081491333013036093675586099168759056738810555154888220706818904151073402319808353247306410230149751727364810056558627356378252500871755522154406681094447977668152271026275470394299358655106294266270008951603384384093868309691368625136219577490059288094297371526601393552495946913308327137031018077873859627426344138087518375374097078866980138443068614505006555001682871241185105864246392570960320127136330762192976587968237383929633425426759020776814256714533615570720779386680758216956828613023815798940571668480908646493439808014357758783396431268572368689905255046350207096134044337584620752071464472452856504593438523994692765355031871527326640773049440855917228258727132139529201695969484089274790960264478812142105289104493759482862875580900989091042083598960727009092373120469248731175246695971108483741354116769373199285460482020453335870031807448846840959232648120872380168812394511198844828295572464309003969445841927113813493535023168719205536866684338630775597316971043779130898869909503264889426823119557510883653887099150068292922995863584558127295925149805600209209162910080186470407916173939061032530498295141671365846510381105817518417887018638597685475233291208676530562369132228346460566634404221590227233454573776568870299212293053253970890127411597864752743608494701926992527899586784646228077287199601804412270955676735099765465453343286398810261364393407626441013830443856145689885164702186228881178922569560359575800029992866242986746210889284018791481613415854866910233174065026051597247623272053545696638773066032916043390873417291463667791078339463291602506729167758328405219821089127076820865858764346815007492251914500894888400469007914267025945990941598562503961677282797134829917399609908845650787132444926107546160134185205343587487266162775569041055955268794070139222475759406358079818683033676988791502731569110368929984064873501025592381609133815774822593559692646290664524558781369301223411025564554117179804261819953658474634664769704115877918686220971410782636988627029256866683481103648079089020882833123187519853655073776987224579156398304419583248323981928231102008877966422553638697971878667448417534566391043737416304277871628586215284215720646526064789555836872564005355169535085740231185025669278691789669067380213908348155824749149794106062105807641937492370042713107823011916958833499051730157519753537329454346413197146048881080201933698213600868258896957003875054316466523561693631563982846044347100475870692806954306579705647699521703533538216515820876848695519549912509967620600795439358734746417392193777130297704495779582779602874007829229203055286945334659401009174909297773767159275156691183682546551358580843451293789921295194453972081766567072975701915163900753815218043380499010548462573443109684798648127293878287996647220919824191248051494816986142458866677455473126521395029732210675655198850798091868399259995336057848968425584291677084809939297035240020069932726154270164604171197752763064325116749102597383881097768219133003931723134345721179048434844479898831308028966016697103293989318313437891463605770106566839293698357964727850386024358842415140143589529543502915845721436820321281785737500380703851462849917292837438423243819899066483856070789245037818408127773078651797414406981553214737636018678460205258723087385989635203147627534519116930787136407080349493909176096986935221767944553146323712036462741012389361800298834078235361044879285358152436380844779085991434729430122505419849079032899748814152122328695202378040136352345543846474490006751165976350362850069564805017488440256070185544739030566319502027201906910185161251398079621351491673287682198477950424720193794849268144737965984323085313176061415803820485667682384564468790193675882147757296505838941805970112868832416110595111951610096941889071181546921671382596917527851385616418358480978442628679167084911599220565908119413518041384103310017415368523604062136862679274963108941477836501253463682149438781220036380914694469762158512858926954939274292835145221492944701183769049941873348670602112251612935135907402942104330288742407231454837352425008578510657803542167828416547741393327694812865896415611333850936461129778309371427376139106471522333708120195160069455545147800565200353515762728237671713484790553295425617674267112580032713518838978701627334241821433161137475804565594108334094702875741029835720891964409340072448812807539812113477600957388908137662150144685444242376846635594691912435832930709697304344587037766467514181619447266426562156718611615386089809424126665001719618129646587469505137879306498577854961523870189854719347332818480245209189539098859913880997271548614811477326691864217897615094413721701991023689354235550344195968932106332831234286116506737337887484080205744858976698622683124061675791786813662232908514278141269300867092885499990773661604675588809254113968876382992634798634270657339653215674832763977605160275013580036684269915859096313939936986227635457279138304211473305129943328555719415921776684919084448095675778082127387241042094632084272932254762895575793031864806362827980019166243015051648364924359441570204823702534538941651558126081962075009575960624274834867054025837101224243114757720640995084904302350561236417161760234505941289603269874294298818269613612197181413391118920772763309433476454182565047884811932726008100603038647757386217843074615206534006903342515076604890808055293755993389749485646947667477833654487244981171279691836913670626472750136470271073476944624376937582459954863134309495242477085986101789687179765866028836266471837372852035963621981414495974228395957731529270563671535867896318170452256955107490823575686263761329806432200992932339291596440441896107721881645020964471464917194338008582741459997674967190862383485735017497558017581173821295371311634694872796267346818819095748214807657237981798868305136892779715861619729844313810164942970263870834090942461878853546374308029660325746184058725607108269725042064783671188037379366178233890168477387192491195342445100567603606558575752303159674903455726786902224275896180615370152029830687955472317792451874630927720967263135371701163369212049550427215843346070232600787460572290557780471525287160691585363613233711413049961809598730075340693705179688520067440097210209450934820564812269664584850685567061994583999000002959022214330323521817140577555179646598230833823595268298034469203379126273339959356541936589048679492268390383370707320955147312776323655715675710362388550035940580393394330981680989019020618390478631259197420605530394250171472948711328096312303022187437111955711896156745287342444914968727852624899845429487556588846706410640143408934656433674620332733837976771003786559028857789064013386481096571365831859230404314687603423448364876889088090697478613660859972959264382337767926459422898010854271222383738410277855026698601750897634039848380240249625049856670190925985902078901178453271137749528817495136483611531944546335531567952150613390094752588918244938221859600253798936495199036353556606154356410234767165143842921657834355925335784987667566039634220790587809457119311123064871597718715233192669507627739937808472697446263100148117042471275618753725876393899475830620189318562666933295460155232903183205213881690022239651457747692165386505025900343192147664730213803007246104698621775920412276943214616383063265573768458524467784277858110260897628711432079844633772815252704143635435488537874433595169469841958360006659502119091951332258966388259370967852890743960080774639501315197094068452652371261618323573104285789066709805722337830016082270749319459283786271506902140384706182014547055984283120240028059604825140097523811729376940472654902431643412347595991414137362689705917189272727903074202141183659338218618396607334261131608332798761656168225857569310084338966153298079403961140202871690770586021055561523680017814408895566508464271517258603801442241098062635218137349096186263236799347220871997580464096731713564859977056788400605987451199436957760151354395576565012015965779478189420504414033090714549370266672491650067001537373911427805503133339071378350881966236398277245880880604075113010604334904356118140960088901665777892413785229424124611569527577547213204746651060118092129013162329760305104017985277411642724316698612523166248344542919898330864290809704989685028552948119103606928959010862962215162516000338636007942550820099989022620821659740886808497262012636375586242817429578791850701313606103317001235380619250421279300799068401573008237346463989773541383571178596366447037115729984229652131376831691960656072732178253069264335960693809296060419657304382004107340333703998519322949942218601586606034395378438315212887404728802955174891982762995719872206139152989725045443756564417038539330475911648736569867418077356534821159062056205917316003756757697917791391614640265879743688152178990478270257270728929768685662625378918201065690269324031173125218186565204504585409438024672131520990418591812921336066342636847215849616793384119298461387183172109927370680379782075402119331609904639108947707604663310774454568409657337851864307909223731362962650247765753256233687592760457725397873010884702545569126316514007457333364955608669503603029615727810153717531274137785054835510369368005213988208073505469866098336431593955388823575811677213430896352449992903673234278493879704955931650560533940372467703633484012375291333138773500945668506203779730061131392693182226143409174048816022269660462172101593025824983459763902601596586813628413872812092482568919110834439521349785838914232759971678442165301777781054422809302145167836148217083163111860130781465585181052715825983253766322465248634147817308932474747447494477657266016639876514213311677226584526795027170362922869613992058682486057606998649298278387540570481396558384065681706516239303346685690189770057805535959589238223438874325290509185584397087586243298512004780615889722249157669645855898403877095105559160476216386785539056064587343567743126167924787379336514285731879670173043552789378167618463298487214267990433555152001315212328103058489233273896832880755594934262157599889235670235344628493671363310307620658792395363234265419710379838120109105377436453856185056477764318077696241540149154340451809892332891872147155474065397806065904190846812946479638924603264442600391314980769054413315807716897563668097560980209601019862301073402171336695483882804459407812185929824317136893136244091078018052257088266962154212506642129204061605273028282661789056887533256478526307200172341501614674477927283364170973998198760182139715536863282691525832959983703435398009135241887135466158149912329404609655405540799310768244758229953480294347610461994883055885235341739060707865607316698285355635601353003303201341453136661778416196869942157947392506895746556863418908887393230319191923561687198191020916611508438128445305962092664228076176240077503630502669582270664861260594399914563661702728787131682759217860370003953881590700407368186819628579372506561905244580973873577835394174779628640007147220087405809721520121780572579713198342069802700379374393725271849748527427068621515307863534728235191198180799010993673684053339619028046991512317475643957926159440445610830791448631389130904008741842431133212527449291772300799037394773871154358541086225042497724584671841116798390872190737511916500216126295146149874855897139455127884979347894624494034413169491194995930390729750231036413148951764359720403763974148420933210210988634263598191548684424843406226159723381714257172601483869250213289599830928371368749079463315609315860931334082193909060820771773987713073678800216368238480613948687454657585617383418090441995915846796113527633701285238042469430765769055376836768379073050511358748345370815528540501518214381221858386516161216769305879626864233120125622413835567774159864922523107434906124127030580900600495412287556291577656722110816118388596488456244063888092327947630601199629728051170274603658428447018265017315141672119016852698798601202932433353137019486304560052655748927778338700188116001681355216510151606750093815663385250662313559556679557600337793664004833651573022006454368225939890044503387668909861458256318134054159113432145593300242879568969915987897044288204827223365547652221059927885066991209676353213231433901633226824148529396505230390157000453371188293870938847460965532771062050338587073426863589050890841024722864092643152048249361832342395762055694002025731569174342153520967864787468723399331752704305941729172193259605378974424757701965547296879724439168672002105033360414476070850050774766195100051151126993433505315945202670526310905390553088425450152065610626559406548650867443866724517548741275027207712044611171424435723504772531716401826631569023562185745774473487886907235598631203365773800264922931455964543531713006379219083714417877443449064072300908876177682046591391720103507861348367132022592881192791799226563084394118616586986799328083227797813279864056500070941844084326411055051309958613075314425874995667685409786177684347937657100352005215523018665151453049465061143765927359857633120185958044373104550654654022842536313388545789141947118221889937987089718417425604918926881593753521027213919989566696533007036060918184832194731519287978548002443588150348321160161853393656479395095383843325196046707184743518038636599477754805915213402856034976174210080501266209170761901919276081585817986082129402361449422236458900598711374343374857900576556171183154133809612123799393884024976517807792921228793837935881515574207625892937611353224328350849895761191395935156328129373974461799359468359738554599949465249416161901764352566481906718278975442916266155612713722485927535210981868390456167920522126787523859277948738444685825507411469717918704848855781695037674391136634464803426953397404091668713609639328779741052451125017797781895630253573633623714450018267609015880836356365288077762325228528195652097147493297612348014934679467778605621733474142385207699303059017685333103022614273617884104779498171903287517530207338996752912792622223939958508166758925938289923281343126111346240867048084169541371244031552010339272903595409044484308071851602131704607189327356172739669065152733939172333526113654074697261265256276574557824665787191160608055703710308578980829628797842077017705917059487936688772678268611377042088973818370813466033973924265258171600234245795138850881946632514566360341644737911101232674750405751720028052115765625802459286849422870988995788564710239994704894249861822930922599809202995365858271638458641500058966627638936134634971577251699882985570137905623359284734645214452635355134252150774064982450913853887796469762012706406597031175759696268674856342642252427350665346119677780778612667122697655840336652327817306043098293062184191628553974523357902781691414201116264822413364580480621416056818924438165269794014466983001565013692116049956549911049879365308535313339410515967380191128850753867481175311706317635972782739667597822897452909298366673442835652994872405153844892391258759117170675473459859605951704698385498977544664216276368260371755268262179874414158741747266343105139587602229018360730408787633118867319916662921196764870934021428403338041813663168282600723787390979303012452853816623564158869958553711850212192111860531901417581225414916809166891268068311236661183838239384788389529884629782264017633175092670971723486544317620509308142799434522684530000817911458133291266286977942098399302224989310258714116722701778976458603790323127566240922246757534288565335100261188749989759358406290195411627296725264349476612765063818023963753800293206467453951304422409557382075332427310776711896458509775672407026314004847051207985802130797002201673055309658137446740633111470788240409357136401924843961449923361562573167918018625195167834070651981923816115795339093839510394578228281501271464484842491947979647087814167780802938830612776183404183216114609960826773398030375446113130718166257429918001031199343899661383335645545081183130994629127669502037376391437058087344862879450741658439561098741924169208580572061637070623578707355466241742892422401415843176546189016299724128456853019729467544334316136790218940902097948524176319936143937745555185547411064007871528054572312571198095385262923578649679805998374596467588455033839625592011423637406840634937460848643952443343421571551022550069857170401318435752165364459982702998792233515992926120631954273117731015311540237693386000351114882911894306233645153523641478565302836573418066364358746720674587573919777534328454412905295046617623208625775111550691400340764437921651319131371624640100879502192144078547301713152956300776711897928930418307199248765713376322894978865452555863307073303730705843521012986089024427848056239159496873114687237075865317751454855418614042902413461494537678036508231695216503605352397494892001332106560516665972685874656621964051241015269400305321975005162112016703386719502716259002925419008767898179264597769424983218228759289229314963244464642766585634707655443471140173846897326850277754724995534791830560729722366433583312722041363228878214617556389168620705791364179895232494720622562024032985037868792520357578451852913083223464323837236764539138251885220208425265411390280748431059195652553994983348852652959685808610100213182835824956926277194285486385577269770630503226066675653783091693678621039689327307788990260624107599060259610304673046401698154055353629068946806807286520014867612102951783695302827004208023472914857134811113371035026170974378785671442801502933637163071676973492024771898997560535445975845307997116285284477559866082912328529100595607496779125655639367224983187532363591654085542243144812792080230563335749218996944363469131938236139445325012130429777003187666458434031642959647661068508049304589592303219840808278157202729565251230003006676878116649650586329569408425944585162857373923356519258503572352384488264355535960743000456465158423538360681065144674144100188966895896252235730011831700661941685560467605050060685777136650345407696957674625309971284984030187468579302270533660599344695270755602803043194298052310649423567527059808186956920850080739594690246492720771864123190408579027556104481354048173720253329310253090754459118166260155213657619280389343154056586471907261384686765296021957830534846735119347706602400620760065441928480561395079016333525965229292102396654477766019903255349975306575358785953690485154382392959072679228352154605596693406303342270660913176185486300291475486174980668015521052107312038266553060788441989332888779972220313414898651721438024553591614641120149521686979100235070041312626383409277140909723047858396250817607656940401395583551538813651521484338781934662315119463299392048381100659547941150329433092694562602566234491221342473949518127370184701230892377146444092320437902506647270213897228202776123892087812360524287501684004567186394934410097880024124868022352337136962204843904378310006169307825488790232181515942592048731569861988364619276715246808697608798162287272893148071306778131175244211819225409907362361237210294387604792387622639407013070061799534961459431205302235672306859732958981428950432123718159835236690644588942734291554693935012222243990823931642486557067842131502286577392023360528369288058290214536976441096652050669346859197734916647284227167195002868250293357150311836164957986103578065566484302816227776828822846805018435483707862034082309006974421133026250093157997782682598706060602184165273947563094969442333973587938001984152252753035497042907264182750679250213122954687893640395829794424695591189889181252692050922656983833412109250316164461544686692106484824034666702264613665772288279949298006139478985980556701210523973760217914990071347958085965466056425352240206067854074843675719249512309545996407258772403074760891288994454833772664535214132880931565529134366642440523172390385910188128584808966422657105745951821640120192680201090270924772989212897730493969496973673839053253681142506171911976957931202944974626142276674117996814698694069807914829570921015461221774436244424561529048281988245493973383565867940585891006285216524199466651635466621745010924997645149633294763139205795918548277280433467281506786723850169907396791136791543452183087981858615127066042680627243053715893533999791313392326606570308871039872599365005677636466491138359073578251363251761544263613397404017085683976147293196377082067953276435035261835680510922319501044244904235944919340283761263711393400272254329108061245273149945908837051380341070288360920055687662244740124539918269779862300645737665263620383671984880694279470420599604875517312327344154007734014513212275293703228547510090956092551163112576042847849053580874711847771051763929544271198802449451968679912245724864695128191396153367471046936305673626141446287667827966911145245665812989693100358125370243876849543385298936431630610768320518217556568297994309567709440264118225035413028875678116542869284120547860043373555373293867754803366556578956970871070024821296342072700677682544507954022001365247401471245838108295727561683310037270187325938667278818501508276914970219540240797145753597721116182154478278101914661738870237493382334964293648733823659907720706452715339379067770085475112439116511781659495618812810212785339734108296305072775972566507361798487529440475522023799802450579585164595491834770978504553233661411977583696485550067782262341646789411406458976666682342458827829355473597579059796696846079859382857903835408854689163851634725520182179443314362778317682609457256740652680626213658630398494193830242650778035916106215842795591712846081277424647827631213470605922074210145492351804407424661780398061357789013439648535880852650329794610673966010847821050039503410395061190155552231841697036091186644708500041371755802259681029200501547456907818372418079476141682808426237736533376524725951038607767888265342535871356080582671886623062198715603113599569281222122786301135884981889528547061162240863514372347191984506491636725860834361191077414546849520827270257731416122143819275181729533407077148043695561964361766809976808999785808906477753498716567502499625901065245065190357235057830954553933143782895393133070083219581288406531296272841773789948501683449576560989493431370340720523664577105998425336265408478586536856654389612624914663876965974575885434570070319320340476232868589763856136840964151000523076333352991113343751242893859846517763700254145752267019103503419070161802720837576697497058971772896245316739301468379243366800943905300264696445150496462483672244993248600456875461571178620303137067152190137479861690029808596138015947895976759086093990138781280760771116277841550835282166841414390603343190043319804666924797715824912391593907970947397731265916095662547149506848249318181943698304009216658065167023487333534443125154863340708145527939131394690299909378422582417243979427474895100794316327167392220528180418284290528346636452680353202106435109598398672093785724174093464416127164201390615770904949745151498711890777146333212157579578690625198023686637273545875277133118931658931644468275075844800918268736777581917713567656154390679742750320706074312135953210962732393192824493294413625100223090499912276230442698366383988279899228057069892266053568157377363376699073613077761970644411343583127320958140420391958095995370891519579704645188950562329197559620685701755087371930870139918645917048418741497920925770994467740977906333660009497066148207022097000748092853863268620926174612174483159181307190070784375240191558726052131804658040674710261019190477114676952598392025278893985259632983779900471997512855431683574786377208236181148307707492604373144998609379710158328100891122968553102469448335010289042838543790920730721617695844711662916440251816878663635078049711883815691013171349365217428873254714047032804528642169480084017881915673833857244172511866161955338041489342061605323749436066922886297241532689762100425459902269896989570365555883933172905449785736944511146171213977816712867594873560247052099648851298358966998128794268529385797133222614942517181122666537320854204706719493034341301549236471841821001048914045251409646659454078905883537281606600626924656184985390680848548304465208284325963699067800973792114255910153813053579803379122160062247892835143029456697422633865929257857479715446288643528657380063625051941052720175318233480962424552429411614437457462516114593876403587493267152050679845391991283826135366343044024416740850915769391512568330321671876710815938434439986034893197486698744370028974320856156841681675060726630509695576158028061058224427333036699817970294680544221939754156781617805675931062593657637841291578950976649195932414916195371079430011423871090005220181162357112752510982030913963971402090823766557938758632685705782083356204620254299811779907465481096339456950118202474934639211079374029387172743534072092397761256678809364767625089394983717048407692662255714141364951962749542232505578076827598902945188931543750792361561250480896055080516551948019446896524395313472960601834187397653533293909985671823937751929829764191653333027257807656494451788186112941227772259369500706261065568460940503865911902810924980195083471842633961442961921474526945881030297495908551439848294652146916912894094357812361710030324281249728645976136357853102640375894970976266212282414845295066638910127790866774294453509689265976974128676265709726597595995789226284729991873467790611567180287902308103020223177773347588087969386313511341759807112057289168647536030388830442197756751727722967983725677691578867080492075805646761370448666132581770870108348431900228834475159485402493178205641400310082809116052172926387420837108194073561801792989153861174874239085159822980798641572743498141942664181046066079826063277675883190393594744286617804627278413552560263343991638987241611515211540862632785667872132864021915375472440667695032196592216846735252688907275793154212306854562364576995995793524208640819657365389368206385529537883882997233863063919545141987464963035968999765633939352982178133096776455036401327463921498717893500813901829954131870903659441751401242697188075666609170825758413749980002635695568417255050809131462478427691295933750422143045418126967863299190635477134160033913988034016105370609678326296182108736573442421548864154081386984500250454804855350668636065981407131389727792647105179564799695749618990497382036876936926019638846569950678114775337115087258828764316679002743521475843911702859331333704804365241206140380569014184871270958234290321376376127939807647554472675426576535030933520927352493417050535561908584169588086753330837436155249866832969984629917312217336443394653393025190445609095333620427486344827339794542740272985790613539330063348946367222483506494141436831442615741231323944706680852159680029991734149241669716743123900859367202610391906725607304548959240526299074226766812976328399072511247614241532624374559054163754760396700076601385537991138036643585897430948007724658665957317136535554098719386136343903733698347006240255506700583970823048411357138988434050166030301546639610727093970760297694545241185250892345923253111929006301246272778560133787153124839867529449434850083967050361253962886374417606535669798275059599156520361834684154394259925559924751065357357396464531494012282404713397624725065083080358300418067371820967005402005786217832644573190470033008184940875917382339511765769553423324430668676925511868622384410911017036062504065483473459278782968274128225146736923117799465424821638818128502045340488792904111244876925345104534024599558273923570402494190670341781307847012201413856217791561025883886594104492620143299590096594225196953604382280541484762542430106156614592144564179427663741146866623755938113088129876586181552268071348481924328461752501970787059339904814513558472573706065284995479562400156519488391663831120854593925198593243365614792150855156176120838029484274041791160431792364949656848329407710658307221209836743966071529507456396255977542790922770060917424673515750285316162762352392560548435948698619594248516861250369367645193171668564985452175183912481553640352239542332926494673353157945624167796084387739221949301675986627619440404650837774730765123956792222930725775385292422077104254371630691225903198143957040942750635296176205834577332103445808324819573764157320415641454847931564916365981576623996669152809239603076307866051123090743981504979001247178746525114927182920982564472163778113049458251230442214656557753449250672747438294596885609939824630537412616581176306673541540799971836857648958365741371223519486931496317090076619772248740792183450917008985010369250352418857571384899005754985588997189458062563238854143389459779994262562586876496888379851521014341597830566025555359822250886317000731849775005663165645755644101037994794293739591545947644470975148067622338498074699749778540522756851575718950608210297695471174035281922247451741936169403154946212097459495856132146701760719217970169272633098131448876069945034652620527341817106964541418885968337644804371381066982420207341322980750738443915268462340761393635686220735515708608850964564902218458479700747869360653696642311999039845803864529784651422655611558912351949252124285853835792098969931111524385024076968325543998199659194450170492427971186351810345079967616329794770604715653301224183542488109222913527202101193531350318990727522678614354807673483851999288137345102802556364049975971080225193022136943261117475667031943143209106278160640691782522344046643593993487234116644683167855547262892740785972139885608482118152484007711182977642027482071686043386006737574729468169510172610638084757914890316849663338580203943215156369654701505328718368788544961622194496027306796995583757378426697567594922041689329350125484131464273465473941239860311247544201846777732771151416348255240370486193610991226623286539080436737458749774914121615922189161979805115744221517308065784231352121383456063188281250845796669947357053979596229379815174640907158631366906275430490342876038132828584143422069471624905740061320603817147830572617511290516563027110832699247731878870754547663394662991399645740775387618399562766913986174857529481639418203370922186072821783230936421305112484343641718734150671069845835371387550004935394354831099208093561669494397353884684529816554811726300598321839009837773726877372037987999888611165949957846886347840251289642049829934337173252528282412403920288696815458547262598536698027683442450687369688009096011414316204566918171162385758097437072349020731555097570705360566853079164724126507254817653898465913141540098370432326504921428957299996400257949083284805937743683293480500643650758433485055438897751088664023520386911435915956485549792371397123687380759173109833659833981877800530110009428416870012895682982984510359957316221080100977827324616278031873960545409069139794699907973194861551177682379395089209146770454684478555720868976622686572019457834961991902309351877448409216936179229605980220758206187796524014119688665893342569197652859069797289084411541319394574431953767310936043299764184356575206669592965102577367932612860160772297466710583175645736013153339795713089295095655419455482303691929992351682016194745886290054641388472702782445197903482293041246930542855970265523026411932681856621669220731609556368540326548300720623082783746278587381561174735788491905871916124127266179985397863495491679183866956017233707175682715195387972296946403301080737594810398454410142734328043538840525744174857566746718096506551716931137586418999385160547185586170301603114967711279418862043360957594118325287958619434402960747376420490787876632098594165110747025751223155565770609599752180174896566928511314887878238552843152041021717178387190698213803942636595183749516278337703955419557232737461829268768783488235825137926376412006516918298997377602238074775674057817588975720684027582380799759597463056209749682558754292586375452438247015709207895441379632806882555655450339792870508409182935850587055653943310595321149746006543590057803432586557738901213643734388036189568197733752474699795695551453644978386020402986536893637835378061261307227243483249323653472348417673868524454074027134200680538775299952388431048597614704735275182656895050233339516150654109871715075031433697551950099821110216494296634338320018345845360741630781894290348214678022202606414546791758943782301789796443238997807105184271950714195155731629579557197856864158146443769473318775426032106499446998211279587297554984060880422698987149499428715104505372421565692401896546096331174299869925414775941252387228619747383648167759282656671972679379105582792942910616077210979021858941514740773904160337245867936053718701040472051802840746620309193210400864412093026358621399364969154223466542283562787913326686457502830574750421393243654716713104781594196534981671410316666039984985767664222684068588314138687654257777273426295398700925211316202886665435323178321391002786334025886758215953387676758178696626515977627775817401856560597308950411105276489825372030029448569078490579563125658147819259560718152909909963776687316289850655768747756603559560311216609227767860077254317917330343436504977316516836945326153519647778636351101953093908540320206402450598301473654273187363501088940776941237645596150979836511558768076217612534009401466756484409848893710587170850846196679926251138586706598027105798418910589814350554415924797946796440380911980180021277132244398467335819733884374489167772772532214220637132060411030112897532481168763206279176185645240974942841593388414499085556318527336206287224922422512712265899632018342274900092919942267749827590161456238338434570258123984747748629071623227805630213694127993957446394943179586391359166181917122468865889350635961930091359360213246267965413498396021247690395080131640557670537849426147078336740696153784993266960493220258716768928881071110876963425215988323355670659922077214530417088077233273933633056392875767101623947115554721867014003948746652868218669440788195232815087285126088940614958671421630509841136248465558599830974937746705224200818332338049411086003485415134745113318069607937742134716584249708192545075499171837354352409301716682012866860666199829974101117959459168086753602368595972267291631163429558860577404048994347615404196298284016963802948413763779538447508381930292765569454404622605107858861955029889524506540356272849681343689756072465495345798284516498191082466401521647144059338664696608032810569194208027942994002156953868414831753789229575091242466685659385919277510874095112015065180095873207658304063844225394543654461896161714587410314589028877996733542465201733259737744740230986042703382702615883929495541893557066421095314417658412998544308779990151742583051085964440137865043401660794920796342396269498094090640609154226906257513385133516790611838317682198408790019535569484077687128348396519684274333691753456161570169403058910057951995133381360224069614783722441507474437309920209254467749375241595193352033656297144741447196963606816598041553859759483905424672474210140618048097991191080513015449428584260215512110869351002111335178780852063859366001825630521472789790960242669265981298657549002915490987229749027303317394832134562367356290919237955542035920651549702953967313241865476687021442927812049965091976305274483930950775736453808847389516814693474173013870739991768465273779318035809086677408781180671213426193537327036296311997432601751465880944430063152301241887633609237431068854874395924526191689541367307227778884192752721742052005209402643055697299465240724541500904665915408429286128189339736532064855784787329000007253103049675599851570735944494228755022500033293500389771902585810760897957098408188479628334149311365028874601991097735104838594215866591108212453756851770719560077731861842140474385739773132181044230158544450753274670462477305565822070580570339012574849439569837083186404548347990356592716860626156089059699652283728136230916590119466389570517951091610807711918321694802450609889067038850351436439831541293578061164797290678899692708589679357731441752570277478810054436722724250195933881087435533255172676625668138784919128057031536014936269585364034382834432874872030223296651339709375148705997383516423374697009901226754344159945078860866779537157399637793032964961120537373234840513238302479561804105925686404772764028174496889723088325644305436978650787071618631042934920514833799061821056409474520798679839336738264060083924966180708169349674625761382165744805620012734468405328824099589181540205229990676835241581359239304389451127079279287315415105405190913261519757810695247272150642633028218374513445574396344815625710919472392749468965169841191168458395100088742079968661560883880788854360923308736892914403849499677698045218812875060623981370172612521694191158108944298405304774972383915454881704296464434332357571516874543615432688865893606317979294382820226172649846596087742143392166424725575973553193494464352240947068655490597663130649013338287594172558525922196089218117615222648492928815806183842988356560939694800745017611229903423376113765138762423590770328756916032561648511313858023030903757195366635582873931622166138086447390512372229802979637384378006230141555331472832703784437736173860089984620402623902600515092328169452447231367019681099132669006735730778640547547146284164108148875495793040650025748979586313127529413322247405335272524163227171019597493751956461476405034545876871566163995988421578249451789628518140819192513193095311907162594505937551387495335540432524508490930598215215486853027267838235040232300741035049771552200476223440049767961266226113706282529825142392912870549545070161718468950051474622936929871534750115277287131767673990370797368239807613438134191371566802767968373969830340245766681001946552577106784921976342290308419339033745290960900982831343022730039597205098616849714133595794891335573526679017248813116110361397842295795916340310711330347207574494110766032903570733828232626672843507047837031831209914259582219201975191174819853459970126359252273057200044008055443449109819506038257194316129822652350336501283406749676377691234184687609882482036428801109591142175538369011550785533534230121790975534384406153450770122165806428415246339871180716413977730809046499934830916677375606266526575951334738244802167049211519295107129650817871370770424696026606098845937944521211761652994801801218230107195763135131015654416107436142666124014042957560705128872636465100815685648848967893900662589061074880139474871570427380044244550496249351293942733861668048689322855973260513816783852744117174088966149926702772433584019994899716471105820343786345110311371343222689156030685651693067333143778775256743496711036906386752626828511549481541290393644622338890230091954592532571324540250295749028274842731971872511185154700588518419273309438577238742285143289499851485914850941423470579583631105197365717675155529812691862640344929202172452045031418651128371720139153723087922508030030803189687201985924782340761292227468588825136435952203097741040027577333483955737078289407908392927797964667423630528980924433599255141240402528778387162802663825389499499023505136324829195208623909651725314359745605522551538525570454640645441999236597467732535126291864269378575843531211042103729934856873853999445324280238065015744195171053256558549504838835410587729551787918069765336405479895065770460271018375873995217071099897350825584173623437209535288347346914666403528023714746284280427927229248456349768398682170803000566719162229500286470990636041043991940523258542306397374663333746767251954052460946549790491145734535576986268695937243614889526557845110174273889536505588607785479145464446838992638035977757923578687677159036776595738372872292411882810681042115111798915950527761351263848950728079513733837039919798046758180149403565306043653749710571073539734302207683073640481820227681616568622817792902986597599103038972409605621208341758253353316133512735597265042921986481479554142533070137996753595764803021254408126764067804138276121969425045101642772449244340852976741719016068170882933896362891006628934400897666393795494502336122343325345969171054498442011406281999268037030858603645880789364179924599450056867844143809719949101203902536626744708402205327333730805985226311385410369572068553446186230132225198685433830222578030368936149483761830845195833005819196576138847063552049532120897695068522782201896303127483047514820737870063195765437859695558889373305823974220516232416160917983496809120264954319096737866081006738291001945107281256033274348989290917316152068746337676815143847285282472977698370529137166207930048417915766035193660485714924135899642073519928526700991554324900173049275074452617904224919235730834231467421168965120680902539218672570086595122249986787019080122482366300769814809328536869741522520343192985624779210464066551705846264536974504503264925696776068533146897570274929470302143015145063678235121504351315614432181914077905928920390189456743612033495566518812900908233513575549544021499558939870360878723822671609413246150553614281433369973194371469497172253202761466083754604751968269589668160210606407379415475484249737875209148353902576097996521983238920519403720885619570125280273759445156318881044897821507050395037007664218483475842515049605951561064169439430803508215155555279646895965687169907344133943233247123811117194261710851850635379405653884781353431846143289137547269213952572971863059550886864313699132153612842944106340557896919651925785065990728336096064364388918375760606691992941116026267255063645905004835331926608122315962366009093554231184035781400965384564306430337355157614731267622793519787752544897091842220698423507219939165860119421529553042749392654826862625058654771085007525498561059236656506773218131563728029559017737633884936105935096545557023403759317861769295681967191989281852673210045331140324190895765379968860163103897479566577951953467525623221511640188875686106602516388168866761374777292749063520076751899789720414734506957280642926010179517877653266976493255781202057980000439299715090823899725663861935200810951988828959718581475767204649499573441229813477560074505109998264845221132416699214150706560526980512823622623769422965535579877876677596394687226839305500204997557706118046781885553913784472811310666710755526774610157339019840440071756583674976885102766412724744770162749916768309008383627093349287548409080041664741144867005823281962787241418749297649594286715633146906482400786733183148628490054820983344138676179833866731857734184817854077972343240079151856702304131536979418627995015927389529974278225588372500649186339571418825353114869424898427917680611862800906978016533589251607824028143942747278862704291441052030209752653320543055683955178130129904606594065770891545617284302516345901955273025780150542124741334513099957994592544117287296265565593286465405894675546547952888198469785868699992861046615504997810420575324434729367732813743464326404655077414007359782427951471199770447928979259420628555663649730033376758409203134655907155500627616570141978087731800073746646701341104951346827889259281977006417499311120289280894508367606462608447777520069467490245749287413961105384442278205668461775466460651261384823782906705047709948097981608079171822753433688694159714467585823075277452274249933603486629259018980687011773960461473022975069765356430833027232377849921299427480381946292205534905518440912560698517994592181293007396194464384271452600664139034702128499006521345079488380288154656322388166274540869037041440891514345370287874746459492643970678745771141865073024418346659525672621389466993396866080128883910119264925527850144931760542259544700962276521357629212080737862248555976593121043099954376958525834705324079983530335896393519387037463905931255622426574325343041792997852032088187905403745002999296084450710032437957352641597974280549584703653163422048538746283390267374514900389013555772109045463812694393612609999111517175907178253690017229648307359900147829054581195194365895973479636292791966489790475602327171000884578692377081979686261748505945041592246394236486316629067000267121991612542124640065231527788073714861734308614837393090809701178837810598298188906328899200613431032913896691896765041879126489395427821298505326603224119431139483840034416778633688937797403255181081941180317806383316767540801142862285113225113019255184546406481972635765588022160062109304752834823657106005677802308504606450769025904925365836264899826524765902922234686202691628527653625042775355514973595549142124450083667659144206579031573153581383651080599917821240673663623026790807280802973748707203741854336704812109361713832556237698583256984302110675649027986383234621560223988927178273198674479889085101591107042770560934727041702960443844738163439088948450990923828099245161001459129181315087189188338245894535659865965452084883234650883436998214385597584727769245140137306664490183211828645529846416714527789719974367742347415455794274158839583804179586367042959200720584899951528750380602500331111277600981373150299098082615259595560190865376047201472255726804499782129558086261719629446261521020209982560573705737725490921045803360769001438244172538062648032231179277886532724798878254301937290917070125489805498949116483759642607132853045673625749407724762789441310744240816306811677416117302733619437743482038893675779447756501774290767804317334040685673937594702565623830462012903472944433109152143000178830814767244142997670507965982251991047700658776767647844372932673619029976795826317650762248818984504045898375776243788538244906244908368318356864949517651306037650963457166520394108507772023460819853624088123263163051251087989744590355906150633777950819035548195393328999106557870946675412967881340089327411225915651483738167603556526858249859014460488994481645395879402488905295725714974815564595004116364322488769350235372007929307138799395460518136958150210742003663760423599484289602590679283016071478559074540654287023722512485890025950721025803663668084125585433780599936892584534886542698598659352549122067637137240873955387489044057612281492900488285549364912494924397571454043216775659796665178853611032779979781506048473875375887879096139741615695625464201564740636065975829061395226325813936079124265279373125329334142138429298047734605191106986916959637432543369568818403361478327539004960184298448061474887601395180823917245571365080784794708022893844631922189257081023680511117840119319272219410305624985825266365800624842985200926291018705209276289716212057790000132290269017506286434016894386309161898513790675888680953474084597000237434700769536628761502601652468171534790873046485082552733097810017165364275803853801542357194549623299539438582158325024694129896135471876231632174326341845785976983950809715079014432170562288269302198118950973214376717267575339161825813055075405121222369380003794232106330543713351817156996548105480829637236031804550900113985828672994815751259714161958262854477248243675578811494700753721439490593312306399989819544030226080787902062340760022431844889990541868674848530824025362324795624079339797626603629711803426808964184493254633049179691106137635944223036657390756707093065884914465011014148862059581348790666447119779507292109934948041492626513640028208108399822620276380567441073027801463859914344499498627459953114560333736302809911717327627067226415919149136352654384057194676673667495836021042449514648668260521857518950767229092437102148188839946976802528701325387981597205978740561727033103306631882163852895424313988498842192242688239415371365692518155195350111656661188079262840464664877876892667667102292060312424704494448198268185465306881053313240680123723231108472467981177485719255921066222158372924491723679020422234317900418101289810160202705802215896479280007392397006400679584805590574196733022599860526494388511038041008596779761777162698978947743041682324821493434811992375651577581855210466541888418126467113123182678428869228839734505864576059008154372186699998706097855505840388086570796566762719233728721557679869791548547178421649044317833026736278101360527392145852263215625237214605727833000097053093141238741126994769117309041063345767280175161845560620449757155372691612298261189350759404552263772093339560736062468818822006642983310108802874947042779520434732591279143047077236722159288032778240722953224414975855224429306089306823984866492644389111146631326203807793294318857534715364059427548562058187447664267353765626414315132312888038402996110262155858914092419189231193602177659498223970369650037411966224810932039509118283729682951903726656214910384322363730475089420053548117443987788000171175572498663825397688290919743868798275772693117696025273433374430779907394881064941612020478233955785257869482594839842054542274789943811553241598008938155810049514583786339186523226717079670100934912585483972359793627976812640701958605214132774623623583146541069865667984333152338304472188205227633513049958216487072345998352541156645429219649161915429006699658866720478959556975543007695893603884006753870101528486140149396725124108468362663431220432626552069933981595900638260646166934454063513884677340582555199521218029785571577529913732672152012158513143452393629701363174156127337613922672818227980744641652836862654649233341491418405450546345550812671991044282772275751920287093564188970334524212610282412732022767868603223054231395539621797163434676161317455038260398312811194924343062162845724754965768911152018421336353557155472437951163520217251732495849962087087316517691214216196530276494249756814407094380338416657211535804865824263199365017573337606761424011595077159129267663871968271581225180921284900817334999227952540104201513495773580210530027759869204311855017903145443348864627363369904244744500480194012384384575023552332850833307763329623156332477987330882636573251947042745044713665559853745024886694190942495716799068076605382893862369720012597031863111813234121567284674431473190624284337595742903213045380462960189756467689109554533972420534089629850393911736883109968210364965991832962390275173111861103266380571408766486254755327252958280486029219732753644905575679833728781797615841316472579509355988372190610823395244427195424234940851312248805291349296007526476805811912635772256815175846338093291340451144070632330889254888111849838902813138745724876686795157235268941262958144937735721831546223299890374019612738771614746228575906946506544094564530296654091844662775670138985630517943689797762208819382986160955549001222678113278535780041522623524554967078138935527634328410291872533205930303265997629147536735910344415095071622697454506792312956869219657033011510945237270047658444061463534440620329494125807492915030381143693500817447082772275253748974379402224710514715230475040668664441313160341815728899059547126104507233227632274619014809096085225665714614405117768212630220687720853382772068693461613364316128256569445561103957818073298464681197910244921791506684497827831215509355229469307361305624876860645334358477642408873919759588613078108845452311676612319717724474587574663825627846729361321755313326691230370572551269050623640959079458104670319543627543648104885278240602056712476172704531830471396585723018915084913811670061686672350296269009831225488354733321715524441848893167150722637868388422996621462015399151569852051666205070180240995432912405631304993564997696721546411854900980689870796385187446120395201890894566241305267259380615145544707143902747424514852989518344687779807185767470560439454852747960743195802536212050645342343295455216111478222944910794014745045036882165809209310229150608647458427467269056477371726211456643859344576314834613942681843786839892626088643599579568623049829605175672194097436994323585687126088653572530059480696550140033414282677665783457736168619209295199989963017400738879749691728688122838149225418596610880988080711277160193610779333481611880266099355981301396476876989813007330751812577451996708304122432617679116752408131120124238448463677891692594955671893564525670142552870660680153757333567522683385176296669312429907663398704352275395403607041729946045351874883593459644085688642629535526640426486939807716225215662344560131875712678018149225269154343513885504944013382523134195108294942743968139763898680460593471722071047567407391725324654054075378582509383023178144751611920196489344018166595363728621775887663344699563935244970764134301101650843072551492781161294181853857846094247190009976837928864292940225598175398606218067728852671607291236020338825054827037332817734758960959626930706296370658356959672534690815188382344562796203375123331815988807325700973473459156722265444168003470066152724197397417530538726503865733812356481096195251434225901061778829931428133210228725731489380912171272684944988321370313506391047570663611895043864549658205808397146305233377562642025473639969806949459727642180522695114288140288401506989533765807331436866049103654545363198202833783670364768751483267412171174659173959406065380187981735617451452619272170659478149106160788544884270884576731222911816757690615468459284893898722115071081773131679705236057128526489017027798826560360364259461006543125152843181210691481245148483199847456882001247252577129093895274328743083062265492280881862240097963973898908171621746870819642208999193295163416926650948368618937439115713803155584265157952433883806648754455097884243516657716163436826051444433093981924941667034955228799359345871349969648861468368117909561194814085034592929252865478106848157833283581836156130810839142972074083232434539431836029417428307625004215393664582226351093689205492644092425362593043915297619217425936966002799118791431550231754078783649633498287323373013450920713966358513472366360500806905487035173977706625650027880404730813425873843366440946907008055807713379385730954287106024286623068755927032920948445857879088331030139813313044352650554232680878189438434575757409102584660635898410600476044023966707779003076002607535793557570572462736208054863917612453226099325328088302850515707474590453383116123124408292800710492277752045958793797168011688195069782258604642654528625651068965279521685124860833479472852569022216377671803652589670573837813266453116146345796337854742572886800720504970174217849825476530923096895696625505162850853770840984420830877335174806022210855478726139372627991076426577747858622785549739211398109355563475738441614919093229283225012432402241860928852326643409350403658249118305607348190230947773849582529322132346331870144591805727692328008437891666944574842291118298526959322565418229000360843441628104621534151732628279917839801694732135753027896321287384662650845548671772554516512396403889019767238834107504385688763028493589341194517615641874580331364811916048740455519952268622728257794787750970905076584379491881524265548938120037622641257439034637104919503860031246027277778229347959513571331964866056122736851942893698947492699749005485930740598073853684149538460475244838895242017880695935007159198845026764211288516555588024793963026742474305220170870024303983610808613068454725052139782744058444187819256695017137988835352358852974607171077796326744775072927728714915010656394709178046095402454318751435845078282022514728582082025168606292370048695240573278165479339677067496452006605059488337533341833638428396767149630981906108077879273318327046410929508915573619559192968158769416234706107697812084173190415270708855284803337519474133024279005973283904830120008716178326332734615209822426815282302459749656982526128420001366754367150402161271844621202447318272483026798529897510534838880778876338657051484198664208324311157408343282937267613644933962397227723563232788890097382101204435550150283132610484053841555003297158112982560286811091827469425219961659888617954393071023058863656832320179740655608858388766642068406282691809464338859277221268958632160956780237634599840260040017984168617307680963348211995316884026268700318179698525313465650758401974347405154003701987851060608745994466950145403525700315463343181652311981102700832009938194609615740811912167380768981505991052410671914746837566627126007296927282268656536524699761728602528772627164034412557739350627352237477225001428776589721798809331924590744022798056902142643942548108616870683478162521738505764910726839378701487699821555093141656185952450071025756726282595177928405628829700011546419865595352544996834543991977275367577600211083015088181985414737694345938656106932073679707647129849355169454665226709047294295508361572402804820058257391837529525267365064964532820545082765760467886976329703744455637756378561084672717707580825514964501369216617785765432841502811835031591124044461803366199080052136088035738512840654788276905832668183588160700136294669535071031655856970419277860059350785515895291233820463049218144940520534997131064947615786044003208856028892069615344860233155094269047028980977793537885796495500203176504627651740571540617060556810513405639160428765594492606387332289997141083913712150343613364514225998642482920830564858975816032563831281613809600079089357349573108896314624095280140681909312399989881771763898555621844678030169346353090305927962342402106449294831020850645868559433312539513952483868889806234667948689065090313785545225072866226268387075001135266029181895520992629675692048459432624769385297312671050641686395052737901019432926945276489047878907610126370136794369716213466888141891993363958601800350752311880372725257289666607166217142440801983478847012145344728599155557751206583279140053175781538856847128680277326385785744132839204272952792650488013740178452192899568618682935722133951044846488282173589957665129647256363359757121458778333495725154613986016474539996485397693116732873730551902588835238311357879916801903326522714816421732506704342138609935553093194099560262759136869741526166935180073301007334771277014198259301874643563096590568345634047529332374810092373961657501382768317635896243281524728829778936104695439155035028265591577398476326430902916874343280159236172941536736171330029017371318443127049688675611298969326529659446549966747153576869666055829631099510617579271757816157312585628589712827642677917168931658000572182823577500040595670440910966673577965960525060506668336391902049757106344872344986348671414667822971457070330926915123679743067387581968121298642723541642698069887979093178451805915990193024320890415553049364865489871457765221868989480543917630846452590072752386292360747207015854707554052109965096985664096437228701528853392356263927312046559262864788402838720589249891362014140116438701954364134908633792812816479946379462758888908864647096699384993749171988260393172692920394277768198368331338379958374276818362166798712142119050119892087819383937764886284494855618050060890776507515862927701959259932442619273269727282349591170153098043676413856262557332174809638028686850431393791616885763495173173485922347056044303017288402580075390891136414772602774874599419250977050869807093641055120432193490349557899407418527130876271188824307832023819030076907422083327977796181370663373043271297538919350051789161968135373404265563118960258640067014831760354115429722378199219955602385802450366146783860579905698686355540647954895472040563943333905064967912674813111405107325015408056164659008063151592211744023788651578392189829429175508276709326894290315493806998437933333869110527761985924525647789587848205218852141409032305181690121457400000996644265987681359523843772789586952810008571125618625736520159818256202021635730837920924307867000796137369102191510547573570515011464338961283872425467300505177032344238412357186969741080593350583771270719869435995079630471457745058233650796404478591760716598888680826529696383780970611331371775036427801310107951506162854220632034462846632633274548315444039466724313311603250824944905053323841032493463922021870727593349291267258629334809932531823747239254168211340581999954132751701632063627822227138669138334899533671213609115001517313296170740208482441626454959049844411295455129254477851822119910940328781188869057146861771288605397996981855779221553925671787348163160922482776312660684745835366035159779909896769595855732036129228443292585364797960941205415893264294907014115892911151747514675828198789260705062209407774520746632170641558526617078854275009257951607559559358694734249590955813222044125667943467753504476532650197123737317571383329927089740755597885128351304598455284883725505348963823993522216929883021980165859654931248068372263559326792885178545028440227743854210228249032578020069485027716212766580640746044295175413491952164160072685065092605533789694772396579050461565031554592083799941198404765328113176568076722952904454592704054640301528777277580481067634929317134085104920767535997286296614615742022056653764698264317051380473406977987253088389114943857233740118607516023260202776489690769854336514730822743388273869510109983367002412872741356550372740594723656544777139979668513593162123433754485190314856734554181475351351824241720911801468584720800073086214474760652381302352578358745530182528171717117101571886256671263342372522057005040609846785448378817635810894853311597154020704230361452582059038529453305421552529753055845381916753218752859851621490132771902431638169486106817377218902942901257255798599068401968631641021224683198585311232356748194593610279655051893931450248751807494817730110934194701682708238990026147070236164387776608094204104905446863548549312230593378102433089512708227353144057165594711032300570595116958809547723393184033902776798791159248039568985022611527544415832061876514022222402950205455921809492704576693347259685762378792452978156078734321197429395839675195389759381487698825062538535877766272450754690246581015542998904807008925831171317063795044526884061273887590158414265417047560752303037514320873356208259285017826430877516092678982000139061350587137659246233219040444005541094239826790589788513968954725492262213733499117856428049837560966814184004884873012300129671074778436066123728541820386647634982744771519881430549191166958561741023343543306154249620117095447561973619240310366758344349464437894136810644450168776450494563465042127284873104769530870988368864624980955449426024187122657984578573930897539223073922614394396361212714694141022943976331155986107650382337084985608674101304473401827014699632053248032162261219872276106308296735952354410527837889212997617751911776446588160800065337119136129672434428226912526639092541244745021092606551372417341989176755715058859635759879349019753878356365836769726786356852258283316309747412348125307407373307360999819426228740443454965074729490463341796564687061738398409129385935281822597588214371805291329544765784586057353907770525579393797189044625332048963896018773846907201185313250307704106924418655809313046454482657603562089749087248474237422844821354794883465279340054035449593256847217774097990573639586697528608147981025414077749824382176715677478661411648398112379479101566435804857278367109160086241988575508013228175384359568411170372656114714123965187889969725516372279329246028440576769925136181587957996442755323730239420438378043723395895865462499957519674257552119758187295093541067551593982937352161115433301310121839760619739363947625219203341779039900603319736828395825324462716859168735502261258596855997293328634862478736415002413111838324520223189012975564495473279522762102123961221346390315891565946456517002893115111583899584089120679647285303318898137638858755510778688613336331075470702274141850036213131036184040695316880517889547278492009423042049271286713164466970085072710201846361687485658897041065955541462698287926417808359334272570265203218095070754674498459447013560786547845160459539106974876929897415552313396442264550136638216651778724263097417864199451522461720975708082500510805854447046898299552932494435507054172858264291404096714565622124370900409579216670651116500876064607127376243373421214908258246898603809964417618461868957256450273540223833095542510426313335675232401935751269512779029901859581625520605252141170135242919335404685921012941442825451689769120951443628063945714883398270881684295558235239973113917932009532495178945665510884239779931824108699001168417856466865172174665076284356763374215609616422026120161239468259640450662174564349458327378066661051975248187169406246660969530959980695526730011676599768840372867308774014466178927638224666633346439009550974725230394265054042530893228014677534643120361055779439552448025141223184821598826202825964425996761986739657065867591818307733655926649151606677879105189870615887631901907200799942001121060727352663581759714124182406236692537655586844120267568055981765725666533207020206468657551102157425375502224702151792599334330254134560548942682633331454902448797150672772028221725586771565787858205082025251694011435951563745165260857499459502543438952776800352026471740908689242351451908940053097185164723452317350692617266887826717106368817388157889779606063145218385877869370873454009496669300336013586902654042709727062360049229229608131086382062363237157746777941579740248453279808245063905313474244500679845083559448074476994541590643949947577587265167179354274249700631963696430029229210520067156761396661186662829729370707987560680336544905545617406880432897594744334215527869856297326757665505371502918513710284635770698082732923253150200691185242739287444349464793821349639800612978088775624504998845537240387770234830999860836699985975673710695888627191469194191273207257072377354090933966646988296703786246237372742097322673874205957598080387628843160269756877141258140418355049749059491579954586523893919474263932515109185855690289439346950557306625969226568916071581853723665047167294096157302535212660053912170145130062201470252349347526047674163959065925714397619654475299321372969486721952021496420975690368516373934530518178346657386709534879518172951449125348408107402656984993943680082212599559765421325735232103845486957843631211259461932672205309004614945705082527638896981351018666116539714240464717435865519629135935830979107667920459336541060853822380264841357187299338023342985665150850264934035280719715591079474539006551704628176246704455832256271752185225595735459949778314078767715379253656610547897685346274399613061141511213254846612266061878873571602812322674718192152888852326366921034656487316196542298536218204572623542147749897861213397902533747344614006806397258923978794408509993722074400090874480706386597102414622763051229062008549619071358379956148294569035103519834228731575593426248466161518945494558202267962443504371229866790094318156900416920883972603126893968956619312183319782784214225905522140175168037695649074338941871593217568492926235439373859818533807132051681630951419945900969497936354589480832854766013288294144422511444968199273015375054664584336359828936466003657831917243285039001818214848761694145762896153838218870189086341209385642748593687414944687582710345174149200431956729867841397888478664904599156961288191361810748094991041570897740126281510124286145286580298106609045525049938598791904197612084197869876039252775978270745011348306103501827879296599136285175272347903201973447314729270962221593942434781435226274762730767710469684001710022403885295067241005166763521237648172005211067944659956223349187398748395483482349896880523093470758747738523287792479812789691763134451793372997127445624860957667329382556818644663640699698912689812600586907008320976016516702681963788789760489099723055717133837546499962406872385569487506893829576325893802454115329915703979642230239954560954446411139136100688158673184687826510169657004922834582513940465515317019707645623861823880793713166520907862531081153362668942706122010721804137644832430328747731412024068312920145232611954037270151907848697015218143810435444161717341391631848565473766811107022045108182092212807230443329291246382443363017433848285842337962123234771177938956166872378092425190812960279364241936281849789409902089837989358300324213904562671267345728161863665893062480146095055977347354554750139602173216540096720666290583981806131688670038187059378106385774367863337205955751842769475832777375919463139842724393633418837631083464499575635293271675041716896988216506480762451820625002826244956810426430320038791711819529198531272936704170479631583803279365473939857208557192035086657551402004214770234830389426903212432500258859910883941811649772138461641294185517617144914269129300359707983172761485863250161828546086204179144853928206400054543455973041582116902859856829841050460286129650832850803299678651040095648664867159033719334677194350891065731490678039563888856636120160050805921745137924632783866573447286286303007729759504751660454550240702883062804035138216852573063414943870685159563959365268144969689561456438648804945043499022556711662996392402214409976894870875671432390355141359521037244441846307985416821904504338965724640214257044953562645495366225650066696760846093706482512743481101346727342545647975580573975059312483548763715800560284713466010810625466272233346373343005009621051946367269490478773749124054206998875797422158887968385177321406209871182774315762418171847869267900415587507121433601085400136043614323289530209572359320671415611071431927199267855857415759425770614649455609995524010019305889729272668590015287487546616870922456131331851306017555131260794334402309229537907376633122585990420900946722670259870799277615990000931776653161528804416226942792168976298442462708636221091093375984894717068395095634969733855835826081316956762157493332547077348832204800790339436231080857905294917244230690113011136571741367292031305878555105039631094535030952218312738609909579418876434542217174163341898636399966114987157781219546407977557588846403937077193469087088965536912400030650096894919810910052977438849063125090273785604677623772157855587044599761211641614571607709360754651742599532593471075775443502750536731341311421515232306099383925369138588458465583300328981783740081818750715230806200313004540211260868774528210801714080209025019302904190835899329186593845289040018496437142276759212891349268862566811377549367310322267420093392295032860515018993172710267170137737774780681980092040280778600554521487575529409902873248194013610819428190470689114022142526974181046535145505083882265139194530755489780807554244569693219671100571852163864815980987267933166439026522571381913093473631256978920110539609242823645591704772853418114026393219457034060179538856184362958946064994564456884534260278605126312521700825881938297030445738554413388360308065285703284651271685212444238183414201778367943701394790931143481425485908553072788294845086949935485985412704445961595466037043886200714466187509013042655659069558572808007436702068169721835178274287212890200809069634003777089145190128393774671339739619263865304770679339560519270510672331030954577996125205909606945242975063045591131866694831364258945244323575497967741239764794668815957641735568698361432731700290325161825227003015949280617705111925891153712912448237552457169647267653944748610995241519561470596988721410151580233901239761083088219911740432235600891179208486305907338802985277476753532255161242836737697918005443471172323345200912469080021645591795241742678293851531893069092932661524256605818894419674343456022709727360342662663293332460147060480984677870815939354282100342807812540810675593106964739294826284705751812430288413265395972587411964550163332530502538350291468614616174785621355745438559985536809346334218135992491857513025854760370301288176093643368407829046643979074260657889875070232936409310221412174671651380240699705434985820234902593988864248185552655392523719568127175070184212479142492901703214700724335701597012119744870055234050207732570028038799329704754311993123657068280793523817745392053432889889525729924276130454542719431733329906499702589876418489167682854083061104620934122171986713157686416154994276538409915956069095313831550309092016945613345417578475852063331204358017587209394855416550869151806877979623822521553425032213884054418730469599768770305078952437731941691159988820522504997829406594753457651159100787163985415613456743080916113137963336981788558671741341413562433600544793874511649628431398619498090600939832309009058168294722625721501353723887939378122086307990235097302051239224456328902282492563041374965855818486513730849341492435708684855135159799902503246106020272290938885380261363113939954246164878018279375366250470700691473973317069046849603151055239735175732039267415391027318967677120090638872888536869933205207556875837563603347508741564417601081667302919860840008803363028708690099681748584893218460108705858668248637184438922766552457679416404388318324234982990376540834768953770322018668039710107143904738681402160526756924847278468343160998429655272074857983721769597877566965816762265514263138851500029463778100995399948428758544194694347264934165127793830862664905885008132276805007586549178451292749263128208902202153260649858999095361534542814566649884653335475762051279224007840306588179317349691385419030792871411618904735766024650801839335389171063110127286667163498296242328941148331031327906581732919676649485007676812926993538799276821474605929527488749930372625979296166565877863924863895241511743294862177520541761756909310855888968473494209323665569771317681401250124226846482228750429231836913579596932997917249951862186844129607864696028982120058929309883877381552011756511419995279709411437881749449682137428601562203917992366860048544345890785336119103027378089893352524755352308438245867756621956044928479629946792772135435892988188021766783374771512365742650944277878804335057474740623780225900849411188421382924458214487334659190159120517905477677037123042491721162659133990376220832844427387670478374145472321879423312436075884888827715045861543510939002643601682992803197506809366470666203205552416310289845038254621159578764756730275268692915966961854961904440404466219953728982410961770798836608888765464812663453835327845052541986183376786461505503937902606819211419723841461286424584332352903222360905277755004712298512295034462883905569975981720603891611238060131318105122494328359577330638630925985110347223946457408626653149000129036650415696819102329796976984729086322986736259857848016762252651081120163354902154714429374311419756345865601571829914481186126877183400623878548437978651785682912432953988141623754485668630773766103746323586821327566531485446450682012548453592736093618626476619623199183353914731718582229857017111671981143210908544342509950317667941954485972997789585684124007877266186291441663986900801121968313365096903886076601284615967978329258803490420633988272079069928067903364737768174060005844154385815557727722956497525686438689492615492892422811034501612028147862135061650746318246473699751882020964358780275946491836629782131947714114521638211274778585210736765923913060868998506259211141528897193278701378254271342756342948078013316597626428724600273070945901109643398487458555697409245980898854354543130536647749198815068928976877790523905426819343577386344415133418627576363103309221959562032152909616111536857398502460586470105166770932321030649010912185551400802166014736254699907577893416679244807989673241799925035797280656378624214298434197250178843571769495769923984745251371246018470693148155082996989611720582171911054167665324330956734999515320318784523257613286231581752198829630209822874943114765360399372610663549507781581885803055505426624517938425108472627748409416255434123543832609419515909471680930526185806538104945097785880822141076356394755809057724715307228194873558353465435751887355124009187246416704347087371584931588215484345449304280820146553514695228084783053571969527375323791685194972965313540429490466047828855918514827632394899537955652492011489693944515057270017559068049990406500394736424205054671300501922625913642347395879496470393849364190980985305121916215583700455773104196626625077835124410776256252857389885896602141283489560740932546511813532435876040953755212156433649860471062802652027709773195155353964367570511511669289297922010971656238596325181756159324097731225345331060807179115050723027171482718014689632378298911206102765271789881633454175144414730643654303517316213084867640369143768443200165559877668733018716345340114171356890718317027106414452105849488299115311649761267849093973481068549003949787403563206050307362735703241596870896206437170654363972904691222167164278885353433721158314719824023056716166577691701782047529057734439704128473495452089601855421531362807197407863212316539783012975260127311264144074219061066955052598668135514950838403472310368703125551372593845851499270050132759346277744010111862842552568163298086149887806655297542608604241606829830733818123116149691793140607772024742054252825223107727059864126119414173144116840872792153039517943793250389503503795169979251839622790125320463161097169813970614523272262793660070862713944577587964262299144979225452099609766644770769921536136860252381189192278691454847145531289604003005373633181960332941406865437422077340300460338589626226249143524074564570492250449934933602939308752933492731296009170952248609955374827105478591610051383920476447887976836388465713305093291658206401694694257520296005566195780192767429345667772915595369902061069898654295537855987991061907045582620238521543273031940377298718451912695149432076286953259517115100777768328202749690171792568985456759565074175121287623967247369516741991950361100494679913552884022694009318381956460881316921126496562374138316824062390870556715397397143231819672932396892635143149253122454362890624416065853967688235767647443639801405726142598223425610742431616254886367181235328687781905059300694075129213484439877925776272696354453713072246861451315631496210201388385937144018894779215292776584543773455163438933719887384688111054867233569327940054409212196093434906759838975545248050545208004981527492007478773962841999650653312826961886770433480636917807996462568572455196288231979487489655770214796428945215128833601587519159538103708506397972997356896905840077884297089926084845703551831579008903486371848754166853832346086391982780878612397019471026529318857372148090467077624740143216825026101126676137421708981367512310831917641669348699848920291802778513558150100667443105973438339447355677251178364580464646154511791103512409349849185515938668926659381369611303540240672989612197624271093253858694463594230025417533215656572502436033038846139329939378659592796789640445880460781530594775101511536624544188983298923577756609314771616128218046692061344597992936793665024201796669228979753730736448188983146682455523073212575815350394881272641150423172154824435612441825288350035803327867068138795046279068704901167123760716433398555913024034299986141774716926728688032662557521088478421677452959102455067693030417913752457688025235898097486450246418876663753955536626359153816405962198252358709664137731287393367657901200300730591840963382082303320829895353493632426140290148461629186187652241110537769526945612120461870743123419502193144832363830882002756629868430784180656212360909595007846503364175480809850213547339492477584953045481137020740263299825807409682561279163485885165914475887990292137244847270644611909923666475752114983648658670321109564547157879150921747026272437336969748628074172581851418220835517052706348509600404430684366351630618264374660645751326570607452050372112015151699349112783929339119222396254376544708610566457427255692314651855352542600116083216787944297794249627338135768644669433360003524144664900767987001315602634920475635034952479198042822221852780595693052499024995443093926924361276438246861142681978180835020561254337251450869280365053502984326228555060426031993151279387411731862187969869976344775038869098068360404457437228628805709429191769339489887658098387379726923223596623385969349651233743474769914363186778270114822140166475473656103923727504174817690375393673340324675341536277301155010209342721836890941559108644000190965301539541012069012506039322699018115478295022820322332940051838683645080513195481437272080643753193222969891234924810385128436175602074022265582850851194699488425125888696914545815920656548779123375427070984517479370399569026762620140750648027503272380656705913217082769860918642944750689376838266454455954830894860432225745793800285031862765794069614731628135691744415980279981543559240681149066809467099298457459870154849087592460537422906403736044677428540601576170532587557133568381657407126425932480516913704477356837183071208139303528214294447528423402897522591792151607401080423654262857109748644667635714408207240081453381609232620352798146999674957232365782673321510911180226369399160181471229720238047574839535645531969454080022648034255526809057582061124447017577160582692570185144139446884905360720436100967572128027240520924070236106068818713824765163617426191339776345613831813650125609110476631833772287206373615954564723741474797489835935181626514376697120034135534989468370848937970738502476000991158661742991617072337848935311771707715239577674030833931423050272926306310810427056513028648466253920298853287963167762303822993724727238804118754476976525235078295056152553947594058247824218067185824570469940773949847206638562055732334456743456604584678377421369225890731018559958410688346225035235372853496331952837062509425074357699749702709405574704664521976253614179666244427266769418930390667634285923004815244522426168113317375863278378688162104759153725897596686964497614224837119437490408656025500721989350265015816346736884651287706455425166107828856031896999887126645146841021440231977105824149797043924612660441924114060146833811612274226831569054124715289799146450952296627085687501270192672559650019450069161290669680281044751819429202551154749424870440263118875457447610018479127818658173997692718081000728960308489860461868281985630942412167631613623776771405623194611338328074241849505346168611019460438253193097710915259173600553439973133313584950101728954718495231790656625098504617466557786314887545862387202610219482324287765298638522900425261971806704254117256223607164263970782204859859416795236085281768734277395883082869105633106948662360954350556575121651494372630069972250567830221191286550127146548708414022522315314922349722799135377306596695999875039993780944733190660110378123509038901823256243063449657581474452786185455973624700631940374521347289812152697247810912855652253796347373887167126032993068548886019736402716982725910953192407655558884450815785524584111204449029039069542391284884251904224558837117088816275074614797624618923560650081793494771742907012389798780782605135268992689469841905381462616330590024470471587655036595017893907658141376768737251305677498144938539294216678282025577904173265605832293549483419065860092896102964668357815529642139210405932759540606094382667031726963832041333549467969770041839785434204676632155519484482883225497653080785910603012086505540604211339040132688429483090898845887430230822799302359285478352250571849106381286476454845517180990773179014705880048292062015044206784539771774190802015366816075255031437382795267083761243204910562346257689628919435266610898013956245020951815043199823408743211317106906168240178711122671365966639792010198170427458666403689773282732783482435427265097716043180419225230944129888446973108347389636738109019089952671899719392145105811081271854681637015509582551670712406429934147667016115035544144119404195829177348510711212566297909861999999654084951704390036892200104226707869457972319692358506311570869384596961842030145055150259012051082639370399743654988061970374173921914446941651410663607945697484493484753903928138674582118301066751543184048468969246826195939986157162843013964423109548268699032237164474715727493632318440742981953985779956147592298401744048515304176679784900636994269366000284497979778555402605112130523495573706267582579971439599178854498833106655162366585612335925327183964661823764482973188933298423582595779321713014121787591941597440207639729571531892368823081936476206714779095674907015498500375134619114309849277077079813881887995948022416486580270251074679409435204495310385677664958793170239825103906602147110861583116212607186599008191139938159810192069800024112735047462889667190379074856332142834274009216820549380562707121808287309226498306657521911853464750185013532060641764122712846055854476173945305656074635668644245446274164837556905141206735140609630512645166748940663829929438365436074650614395070496807182684916370954557642484838692681841191211092490661020688468971507666032745057777334304162763710609751979033063295681784259746426287894087838516845596441008511953097858964472669069999844063218676205530341805186293917440636533292618922085631431978099968065706762305340759161580820082436207393230114223825630071673658277109399152262479932528001145456331269569132469003287389939113399249732448004587658771368214897661609726993825707651158666310721082849704964936552412922404458319170284889820717888485438981451291667587907838496209604860369296329147559498037031813978679755289373613735469627615776629622077190512282917429709472338701765344309957843106347954235348805888123165767870705850824650004832451106725338991623143190130522154367912612866212620252528521791217134969240669209558113006999794923037460128452771138770062970769971143803745511505798411100443420892244405163771450761862505422356703999622519755923677378987464319957016136053229116409360953137349004996901299566897955533271100138584175303346113402108458265475101286000488760968295521928474887072292628290457331198560439990051048470766310278591189112464625593190984219878926978518437867950440646584757228172315676956299175757611607203380465299487587933065448712916430752419650927579346244241962665068979948610327927376562005230575662079292016788049628387151151003364959271918795592587504074475390719686497938819762184517582625478953438513348198980951325077651603218936764393578987425718238395674181844535699545315008254213330651701030873253561161069326790930920286992237278546852170162806747599491391499370492788856716750623766241491470627964707177352085278101716733599884828137179609777795294172242633231851835531716733202997630324187764462354175968859025144782220725822193400721834777760811964062138041498200808250125500094176653928800861791778144959161543457724740651954213370876363668242397365632818953221083162458597516614903018959182319942632995596318561931155985396276054963997775971744604751755169760748356275981935720008229775742827761980249740387826085771712585604929460064061093673127899949269131034576458844861499044020842630270366957930743858844314060901436170601541037758867385692979377664575586123997893540001092857444958022293546749875437830970951410126183485483848043024138133763700045439222585371403771447945735852938845814289372001979880130845478189262812222019120462835350693801481974395558467756458833449627917263608259276112486592005998983218406010935540237663090782249162921384759102424114138283525160262535326443560057007084045119310665269068798996677189324926946968834526427309074986383877240528336678123137045533697999195782923213468213769631286354365822506924391308956868676974343340844475190866883257278617671161220784721824694893253233956669885706702469175860698905694506035655495295397051909949288584894558465406108274373560609412581371229484920447400580518730230088374086692946149844274867630316777246275240201540280092341527689170623571402537850879037293556007286459542849732776975398208796107673113480069814479425486208817046674396548721438545190427957906813604316634863174569432773485288101598510904505278953146912347550871562710391723957879287597667221516762426290107454033121290910112240832651769320497960323447741625216822209749915948920337137660945083003433482094425025108000420880575469221204932491412740342914912453802148341168367538419416019538892770332574663274933970568737254487550622141273750464064921367216536943111474833222498062154831615946544390898983096415330695848627858151477035152255146101564855680155145157917181820693576991718756087926468655559880166335826186906983549080835298392861193126653914027123823553159603815778609868241678428828889069354260951079324003869806311227988171991128600523770452959456466794331129299116310269044999208067247169181219944146723277613629229628949633548285822484860356279952084224105914448383351986521723314780164244324668059773685953774134300665516514617490353242511900702495760247350546953764335325238493880458474422798323939275858059539023968938237712832933855378730484423907837058366741966570661655005366451682023745039107491176744596320759452049546743416463461179784533637144301039022565082719110236159323695783124080932099889515512220447025195217689092004577612993889931672639165450735371023741117974677425892295344190222975888468874283967952844319832031847071119468468414124441867497050856181589021631719877589895257713494620473189831906849350590567486656066361494161872814849766530422222441375651762774368445361958950006024981300434509877137624632753556229022597004476935693867175752237373367639023878075084789993046661675256890853467552446940328970116709097001953439210332970063196426740105770080351488297717980208999511554350697719183129210142950004125473698396900926257576174182172854514180902614179375862899840557818298692164886698663110277676013148705745955340636022104938453710867987535523004150844755543283823453405051676367377344357403567693605327756397794300156553966443172924142822203726593828144945645741189582573967636074038756784689191341164573655268448231950716862099989918547408167476965264593524472050191577701134543189608666298327800769517046493741839762478337097914385224185474903599777927300185635030694175176698988283379213842510671402645058407950934317963443452138120457008634789464996325026958068103436939879400063643584999081604845363833459384668460430682152572885826169849641948253849925206289350040698807940798319638392364438832996058182551307683066559093103768487672433203894512823463407012472146379676744352707967363905174983695520554729230543799939924668029820605626558677183656564582624013416131229931100753179430055430756734790110308133730181874614282827094882837287214915966653383054981566755231818611599804937647046703522438915067890905160329391523227361170954407533716037477142326881105382638388724616736166218151780527638106675866198626757713216633750586919961818088858090304534169425226072051742844385927206275631375147296859507428030951979714172633173936801040610661368338612971585116523645649780973904823670215665424830790344596664449773327206540199228949765885056515003145211190490143177057786152826163455581709920603556205621703366716802743273988632189005037104146615929392034169169397320699281766417260735148195481512029080541467249755453718154240148038248804086427977435898916121703545051817043367907449319012163881476688295494282887660844051963806154471006018167604166059678488314532871814201878909597515762966045379017566531502437392378733758771808710972753689391873828700957339254931734970223666754781297833868661723105895230410940674846939354916402197224751473583937989450054307830493282976193624328031920646639193485959311874921202328497675017041446562729376953346149285647905661598385442545209062165220642426431699298507880496035622058922644411838145408879404561526046426460815181007907862538088884591644607492907920147760617916547750364565430637191268970511071299551757988645032253960394775735961606513337098287609896749614810925504163489071720834849130393958561561537885112530584564138508939125168423329771699984265597345688616716526815817442024006476350878361281821614624576413259480356742313613996434363939134106577490054718617459928593912030024662030855943042740321569618150812908532332678272518546246518778080661563353942361750986857753055772603455004242876288160054663484358359506003990404837423254917922791650054438450736522651772489055092372118825085203590615116012910800583263487878239155191885536884581095202778168211335771539438660506790606575873343665006677639952121556724806326098414611424937098465846923786804736523017031963175304678609446974067019754500307475866712471493300607229784542982659223265098713548763029743325365143042711081497001609981870871931338146297644845459522024096288450711634827748993506807615216473091626595767334340149745088777886632809127090068849167522056213564514483505541991543064448035410427618714232502777654443118991136758142566482245467623573526106511979193811458531162067018675306370210973608782253201201855446467387825837912129673150572269918982720292460609010004454649239226958238077022614346299794403455013628601384481705679781940788670187524024542989382927848032085030084689217768780828620441777668673017701718587104224467101212415866852437317683363757435749222097173538398504962659141391774768532634345420022713797515345152912358048929562156322682222400455501982839933600317571985446951201781949831295761440086304123281565505418016080796316294814049428897925168421512976482418160417326677714915291883218215958621137725717775260385358302594313411040312818403097087353077440331931702340831623902848166686144382820598846931136660822175827783304776185755587433870727679264929667764527563437097271524514003969514647294808944271904944221658787962899231980805789829508490448497027444728150945074527146360454918127040689711309472598263846991669098582844634851596457195747457894440780305698034197422651475818805997820997277099970659886294667088510718063885153628087046460233044071202515988407814713192497460536719370979470847468092494296759992397477772012742482562248342074242053795227830775917118530204709061591096680767096775607683686664863133024055644007860205830513959200133634223055604062595509778658261178750700240346141493672030365280484594673716033461580776687394788409053193115913072433035192388268292117333604765637645547357086373009047048409199904531050781030809791226107354968441180657282676305029453196175427804734122207218135533887581856953272435894162777266445191505611988239197730175843646388646583788719291593510968294097739970291274747726831720387589848459691646207404985491511086009188490915906397660553533373042494514639749139394069678159623311323139001190957897847056204825501342811755570403194559836796514760639714804142605897301919436389788627575518975154253662798363986459041752373036389156743623838244005760236693218783852568973512158019818344441248186845272738921149746650058304246842026250648640254187821913996477878447691641520613769283968151955660744095317017039947486727366018946959882938286323004743700138457968364227628872025101155862908906566913606630698994851018163805208969005713363399701354271878497239670995487091412643369847186511369877373488115125124125837179995848348524941216723401048733049182151092226099389761223205249361616085053898194263431035145369044449963588692945528880751620520554789494440347206225729903043072979511483043440288989495763563550024485874622835820611447747276533804993623290806124154524063867884880660341906423825103920658024353916814453261336903095582691246255473770921939424199973672374279648706655734675070640060707024313623443745774105350830622059374992069396949682295708300592153986202034165993769590559133288797862569209256736609249277750943705193996257707148690987473128895276594667672351242087581410189395721858133804773299912926594037604955548248302078780128635933052599796570343332320073055191079673236451777911545350381506424498578308191379604360853256583105049078980165196811135988675844842094566440324723348227483549414561945446415986251235014744920226688580162474842760177980944186704487002468123331777743697565967890726547929443940469107619103470118863143505573889894537638998555890107594765836901854748080223750624525505763594704761743916163448378835753368529103256987156423946674292014282827471636766763960834033227273888708884511039237467836803692305123034978075849752511831055727744867053766594734042479172535736755819375725596288449080110664441675438547228923033303672450855760298698576011079148544167349663858333104484351018025650210233529454763151732292251379980406803501240171797780457959352893557462988918011179231563350805135588969588515946692568815048636373280478366808768835713359090824874235895692251218534321357499694996744898364214581273169990502621589397369929040231853807623052054109771772047296645126540575902367298961102369614659749896709095489210625064955282659612743852591102410123078031497917571072695267281319871798545531782399408857721614539415237305265776739208668109124626294106362583483185860594612467379911876925157337239498554927347357018735957255126822245420169769586072072877460934182190900939264653856386477528741461772996114939259006374535625303083174988432935812817805104322299711224441511208269768167426259126786452772737775273998545561030472514535467602240771808160945322623169772999627314405063935493614300329000370222162508852218707943503007480796672451117061942316013042672196337414347849997715509907742334223655087147412556476288638438316591514990362374586689672148447313566870799390164238111839962174796832160824435956495169014580249255207757673136011738513258632324198863422473426491980000481197234750325615828308091343316650552244435238716008228035409403869214266481102169279541113881812732201999137646439520080203561067474758968846255476247363474205071126985703084178246811530516801551654912918639614129241826992247069915716580013407175136503331887714292140557486950412115927923392616837975876868389473027478961474861676297685829956228010174654510170112156125494130190158603517234647336671683013499248017422513929051229420944559920334927603408946084640338760953675963801909194175865593128739602791251059654044962121517702095789710665525923697193382282267491322907174473589256504616637356323687106519145729790961217312511797846672668827330391053486530738901742827343761899789189623531076701585142453285425101227669694946580772782287268833258449796975221360677681558124970289268946395008696088683831954944446782987391897744371611946661836796092472681901219652200966510256967557421655559709463617385951901907803667998588726281821700162469465174858763677684267875035247815719371219989660930530807126242192832223547407732670123930864117958172168630950072250011908936934022287197672899479993973539245316473694535674928619824249892701533049031342710217092763427697387392321139256193396690524526595044151138604653255007823514357029911169853347580336298771751407711771747888519445346644112240061926575023535192234588394664681092566845142871789307889112764539616153319528572953481722538913108821095296785275583232397749087847843029929960763995165637532502415276774402553737016164846456409228229640310885932408030012997791722888563781918324029364485558863888076178945272051832218487432495594041160987965977955007806534367817893072544358333637613751339444394755673605007265396738395570572898691084714648548664493083945158268763365619048744066040316695963755047530112719290143959056537036538776057340786577088861570431827468446267164831398921785036516853390666009863573630768884416883829547754431145998985862129194085562100339221568501505411675428272275652602034212411316804610907777178514882816245686615613928225676116676066579275738498777971700826379145688440297347319789894995464435020148496298713553305687600155239115548887853726637330508952014350496654959557489519054464275616390475352944406773319284694471886990192905745421068564803780564461008352032111850786314275699817935234817726061399990219561877688445117319798471312769392396483269659241962068811973691277466479119649347601011802062330495190370353533927379484903654780856441686442300192424063210365824544409363154472551729588683889312275149534614653346180420721208539536820702695319365135960570952973381882800926801252272576242895318534660831889363339937676490119229050679319508493041792117584766814515148651413635959188106854328441039582297859223612857217435829209497346683298714159915081343173079656821213168629823329382450650328036553604124660520289722993987098259828580367280713122581472346802473060972812158461466609568204888133519733152563278886350412245513443548375711247050174984444276575897565897021069619790654335670888331263349690881810441380170387416176243350066867777192088117830587548347280874883976197588895499583938032523164803742947345272519553309067355726410643535731419041017323941226020662171180861610657789481105443380330810740459072196384868212196534285778379917391160039491266198900431707289200370834933838355781093734265295247960973338475089091430092544042162810701131808824017253975744020617894384529266971870777043890651943693312937577838542524659426518808926748968910253582752358005538391269077290554131161212295012529994512596464192410146890232277729859862630141939346316212571475337521906915118309237346107481148056557789441231630373873908754235639111117764311268958757709545109381426739001842009045215919097649043801731561319431915958867940402870823097877369534880492988792391338132222909236275222344410597843245907669817445941648060519139764396886658086585395980085592742592991738562967734825877636931054513428021587288632705802794211027620779398890793758029305634687796710166265041183583593761583291907967473625118162498699613491153974675404046449593040898511443612792380382688774708995504115129818240816066411134101596555661441166737161698221246157424104322897923087381599316201455615890672163339719583246839918406993375452873904630486735909010076987079286755069661672080154495920277408219590031843308050125891882600785565045328408502502841434947059471417271296931503174630495203078425242257082540500144709737839267342509093684261657204472031916833424562497200601072227946535058615807259834868801932275691887176461383384160559507293990158893379283007053498067998968605938377368395656287821890392446251608364653186547642077765884750339334733969256698686052660101895933653543870706479390749422497538145933888068309748475644389837396483632207147449629101758653070855617542198209385257288229233801998170501216144274008184555860354763230767600856777935684645825663838132032774085729387792817845351348163545652860749033439502234584509323275214492824623241792415097705363134821477159805182917533019337635387106416262058736935131639797103981682998610295629120600523070174270277958147648848823777744403208089816076598789917201186561610198903844210015036800598605081060215472130203942365701174912223936807267177575780046997103851970854693470631894153014644266844713488625064053525102190800335918749471681623577484193309964352000478482307834738826852367486962529758251103207066805772369101170808577851407784566931192756398483756452781327555866663587086113456551578333456393127975875629829814269667227733693913395746791960526319353550277131306160263323364155851645144195848972764300052441783745399369012677499842169123563682171996875245518483247881920843995765000573835902318275759662621598719285885338597637600649124056563779369729691522297830913146235225695566052567037804115730949109196529555020279832001513426761578568038147447892381825630610327663059893993513474742547979714376874079430842154719196623116484882331008449194771616206516087898522378358710539402635040735524255392910959287081774318212924111817001829315579859792211631025450537957741957738483724662997552024441147874563118232404497946871697676462221165066663836794061803617829918580275788172874253972458454759487454232550668706346334483687877303020393973375927964737448747177937952521508586477170608263496373113486946696382692743140097013708138094453396589630930499652693447117036428665691442219480736578985736927104039420218361530220156163348358274517152333994599139440667915593293269882250497644157028192049685445281432767855325260942128318525083239856872145553939322744891835029626981644683344069868775289900832473350985497998925705497545802027532200772586720113548668192005966559911769928571240206987157151840975465352831883317536346853438074646583412161137051262611346832621883628217612254985970622130784670479508483078349322771565986289003579545054723530946316701766637177396697581739214819447141384933240711732631750253261747185814153880168170702530841817079329444447527345072878338669332547074051982959553659414841605371266467695583071507267329974523539160231917084403452033470674294002263040830661071005998355348749350147535908411998447423727142446933891837328448915427352920065726281234374863045253763564345023339658838041374249236619121701585260575900008941109756485088565910002690308639943301343920910247521203660090783581613426757565710519748062587871675917855574355886551085600986278381140781533339341732323249090255247239958742025026706475900820753168076956332080030214648719440449396913824893209498752086716815408925555230955516607790844441817315847301116250520526837393588379206083855597157682062251609496810731532715204890493105661035566204481410245441714261863968797705989965776636764161736352211526103234113554059059607550829753304032099025914221439270300985230192736000731267545281862277004619918993531278774713092013002766848098111094913401667676834346193253863851326859341192143654888247574396578944434495411379404478945345888707255504490628182382212104429355460875701730220263491531380147637278540616126452025897943948986877876387225290072877534665346457266392125481228868025372023313488838195896730303334279405590979016021579035265675725757832021987468748541873007053498427118570239191508513232228010593378486935371792232739688512283001464587560012976104262471241098399325910237886366007134799210166826494829908167053149516073381834119707097720228402701902027510666399075459752735217646063098295191368440783626825604925054184540251387446236193009476401530806876414257752918656888803964472287345453527447122724090585434344753263597866018579834263576243592137628910697935311060223729269677493061194757829683202278455747834102068969921349445494110812154319227965921936376383781846373219201164513180097921435795836646233135107459114995069182891266157134778946874583129625203127694693360097099359073886540511991728803729650415622669476737715429326288273954130001063659948907205147344628176490942564808883122410747129766917054824449932333292594158990864554284311290367649983454894886148696789578281282219437777789062615153118783833995531392488472322492416838915227059169332076377706630795324161120303922724509782120484391029697250996950284742066931425182508276051480159123577931231821765125253258378090773322078772669114437149376564607057997649225676767975725086540855139937203342440477440506332311576691195345823246702244756667936756860239142179228491344288745867540395323631789851053389017748139692266947521126889855390661766081927388661590281440403677862295299749006505254653167176526564194832366026655922040906676990270614653160542472627865509602273927196187198741751272851991490979085061580460763644327231377897662446434197828900185548772981297159897426254544627077740602779731085057497009725088954780724931022759340594594152511052648074871548590503904355798880160976735837729500766253677898842167747686096694802837407920852774608174127025880367928530855208193553312611117458651683455094354509878496905526612213653879850252064516322657653706881426952896639692727624824982199704948531961165425772503375396971244225829050776412593081758267850132083020912627820382015046742021143085077532875304935027147581045453506703810681284757244162774574793602267456409296078391541364660055906559192699555121098476618023494339146641241854191243026697360327086886073284061379132778703394943506757351778422853953372572293780267295305030181359413585942524331383834043813037217773775498638223949588837818636563422598740401672858208210444317618838819477593260821881644793163307114709552129833074187093481218160023105616856507485699771806211553620013462982110415213280778111077278096154795048980060493713532355614349415829969008366120609553689796842587414312732655447736150271467280632298713209902836700237292541244752261187956092127922073281273944384010240652106154324846631538038477587239543757583618718971981183362819534773568295867971416005580526477571750045867442933062541972388519699452386882153820307963543039588380880388906221268123643714549049557949190137925004488131621698609595589852004896590068731261732270964383338135953026914689143787664209851794738228601225676845299866879453368055244851174860178859884278243178983114045242941867735924706408950532232318423918124066432178504216843500729029892182466224930207606537916666807467647437341147031238467412959326755671769032537744596734904263170218892913026287339392998554107114371974545931491429493928600619834732094834490937959355320025915677507061471947383899822987132031411296188007739272617792813556378340150218822243192574487863712970713304015559625344747640631983559506725981894266453512789821993532474968380574244478911454267921391028033715573604128911401517021185054343312298294533702025115827723983560739012300019557512113454496471977300351033510239683218558196496091534736192777417410678736583849595623588592208327879219600304409784573774703770982253013654220772942250219911039357814085809128092311622279495801526885221715219349534907920359587340376019048097344338201120121075979036566804095770638836914493806388401338736586261862507486014626614863183148313442649868534948373881792089681790841864103104189623285225417971717597864316090238522177662250079828839625869402341053774526725627285493421391997860348959187538977750272491218850237420059105236627256969214625793851050526331230609358945780124701876611883195477976768062781317794577270455485814784267826477826775841651214693768715070991977162451017332471484162119959118878714105216828813833254499330514486353881455751456475420402307026920538044741985394272328752457945272367460680724987954653647189430391536166585962171069188666004093824019203218724156241011692564954197051017572899262204194172102267643612625144031711526263696948536270090906341600332265500998297389660288574819029502367237723479706367980340396318481466796285682483571886688934907313605659689247303897548249724183546335767412685337127942201925082460668024817114173322237177319860996143728517966749887580417142294522839111095562176964006810305168473483779714717131696568551279156917270677509635544675304379122727706364846232518563514569761533488038465468638229289300497521974741912305507549645874127472720319978395252046036962158881107698015011791538645826249359213512528898848292229006118665133665844202353249984857334668009925873800568607936162032407345658767459452210198862685583902658721696907922470589462816943501268246524231939697907627530235008185013487784801599394564206351552495651102858006302024699629743243762512078143696723926507032843288550637178706447094431321960263511947637492675144627877076135034051146240635512364536774811463638401780097482069436684589542647367764459908923224960691401382929688321868264183872705733973772949952007554890362257747685474581885168560943442208017178396118633987662224124479565349186717611402379484428305596327066838006919776804934072006407419630408066095453313501716078867194729395581778790832656032860938833383057322567913386257380096357631494294562270430491867552881686315918977265493097597595616524582504710991921559715700623939893219998138840847035474993593806506653740904461088932578406694023156525642731004525212389292677438189333385792218594647394427473050806011726728980930943508587370485739643571232008916850230327502141179207471246177953223746669504322733799658650485251267541355345680059170159750623326425159811064330674202157109771219776465986516628794594563218585206244650777522903356687256629547524718229010938343566175563973597121079926971442227922756655806735473097842037263097709333136050434402290975717913087066478630259061269764593118232784142368313934451690560766766213566339041659153453616184472936131806344705734139822085082783954258049341020761701061906337341496277919666578271113399796412551415372861126712913194646953307901094425873674182134643428239323489689998310922667363780626823430985443837663019411531570864871118805443793297385057932355739205339004582688958214143437465705700844944295475883558081762207577425484945478069374675334342357520169186214845110953580933405138903281602501489367422648636380427482873215292740861214386256075202899594826691155901322134528186145793808993527390815682058657873464934540486756565296959333642186380908344243561826408601064308252496074031524901940422574873646386082848502587761662728449761666521474428635040572043407799258827061017429231926351155661138423950617634220264666543490477999100900571871945440246381394497082990476115546808063488721536353145462078502173284167353908435279029744456130309583936837894906229323547660643678845180436076709893445712090316540859159735310413134060988855277085034070183763967891682982980202008316975640578241563601211753543851113761242155442066875652771605220823231299590635228368076836887222921219166988014934992924213374070265409523580941110524699066637202051266345424949268930416875729325942353071899903385589559663821685309735608496148591321034154960006994855519717967714669465358516927211386609678943618458224013684800373427674021722236608033396373682296227732712037892559032272492656156223837241419231212365751405198154667119399830747634858791484443217016962533878254859957672722955227680994341400787091807733454213675576599512192998582889097249109548923071574736985723482229989343356253171079114796931959238455929885170939387263142271948543282696864955013742570991747246501026950894999718749107254066507848758095254867366529330868986235089318757829583869257536803789474796507924560985074365996462776990487417971573886874320716356405683525512844210836723137580075661048587351135865104080715500066835690724062947718904223518329233150758629648286465726854440884505655217396364692277421724204187834357148156291639384997606828792856921020226124408661630105149652820308706966099873155820447137331296417752875161187136640761043531717192328872447495500581612051307508279678392731960803208076684050116823246637393483813363836717531744565920962853339675230637545510997989115856747421414887051083673688978027991506931973653899450269309107988751717414466411146811545838368894989420932287826583879643982908731892736287931603273242866749438970706776655081408371333514781310324772290822748716245381191409171042668154942958785542314478223503260541647060877138078305585408030901359668108023112121868290448353955326884790865626274276587694975144000603782083575662898225328877679997793686728134829766199068044776279650360179246011307626939705408032173899824824841766491451091782502047630768798246045044216720481954984327783659129397464610177116695424906593342803852629533933098494741071939216235841774902991662140797868349076625514552497415406795649997698758526183008755512259308042330527846137066845407489028757440377451582788502569212944243476835602473056921948755856911616971353612222780060571832819791477785792612572931011806600874320234140950794753083870705279631525030193695681878142458860458812592559793001566589153321516443208286505216626146086692860121573961602003739221429587897955761145029099429811877902720879221751268667835676304733595533861880595720811277686960593450551144299790138566676524766844431216038537719576918746176844057756799094764979682743647587319330578723066171282530877498370243918834476296614097585397544197826598035266263662670148125757735358969109093505204891842157173566110479244283592595276906146120553151765619491778943598264736109436731945519679501191381145392376785743370729252263423248752166983265064135310116496749002889677261174331497087383586587605915539940271074160874417414754215202506897715005577912253905460621182706488864893182928877983449667442618842091247973469545024574678134553580105679541045330056402913277501520806561489773894918936892850697485788405742131714257747103162425135919185464547831683703048897101366108219534464479097881447662195685049478444104495017542131129687855786459278534708284074798803117611652199745718574172340734867506462858809948126143921323577937265076797050936299916238202403090522223172360379812980463963062127286570499026498060120978948397215424257925248725268512981546953337801768475905341848150306820606375702519679715164526202741551613139135548870521555280737377692580071884554342427094715854787602277442765474902930389422453107418866075017856755357139192317084205105498960125832890202268441003098652308624053021555381261658386117767773371747848260022428664887349503420727333663898324248850740657978564949190309260887192480144762549721893181342887206882514570907749060323205819985346594532798777742468641169172846170688666124571220128108596295810354559256731389688922231289820101957629795624365005818057779709299734091146073547872769848663578494616335144122339842344168107695986226301265956366281652189695443675132647427695394753379708749632815324808444467808217398029483585671197446000907640753216676448553009177310527618369142166148897814602342887007077184848346665722716952815964734885585981313186738848929959347217789847466717672038970190450269515624915514101306213085630019583851073646688114526314494655077068899066118684678329311332191873836259133652164942222410624461392110204632902786780327538998454215782634013913742419000077435058416545739922950906305651618747384021732259347433493639309289353757324838896480965327848708773160213066703802537416340607618850457444373793416092700115362669616763280403426020676224607512387332206721586779791534638553660969059483802340250862895549774698663727101876585257005498163394010925815404869163909987097940310221366169401504738833793246873341963373347987066616497961497299222767127491582463510164283838163189031446320807057183419169096292178970984634074874356424394228545224615281528672439027539115366231888232450652639210348203480870791419726900016085124175999055774560886546266153633791338654467621110741547037200015988519146653002293476330958203233138721880775255361939079339371579708486047172337056797324219750149784339622326279209324505359883133849578488128968902847743056852673584562591008654854349498338964386794480111795053796530210648670879710694072054122758901856709120149600621595121873958011068321233910074622719405213469458226828329401171022722418606898558011045021852848696906830650537584276120581748738031874183870124634261606913959783394675639735051595635716334097951414848715768257748011144657899046206983515930083822474853216600208166405773100418092819489246542869608057757538402096754778740771171990184163567003999237889002542366229959224311221238258584813141013170582839257477044160137045094228449755647158698394178644514604190217586972074412596089841245203229054113702687144571489906242518264962821965369767577443890099979199111459776000521388806880381317135714351918198069306532371645909584845944993323836400036821717608084259929971809630107304335592766396843344972891612342321281750639449637828993944178466403822113382036431126711467102658547279648041293517501748477748046257474069093981629866729664343131891939363498120461223080914512518888400167435358066469548653452361135741186488723352508348469781465413485400071982930273933782524092435532016711390490183971050067665336412135704961262251041108437139752656578725969771080083012011407979763156559876463850168106441182110946277546938407746493762464507841564516577673588167655951921019667274119744031423415254176648072219107278112299019678174410634411044226163606427983789036188271176498705174622605670397324554897820470309691006268451726143976771219426743871337973693211516134006777287578999601986342158990446818414087523543087864358394290284609130638627584987044110479481080904575338255355049937468050856849769173412594142416289522811769422570352156276593832228042374578738864886592208144698759365856824816804498087225365723105411220342014138661718191440229263128449613446405236135168096610631424161774714386499290406977304222919971131199568838173739536428092904619323160389857096520740555203292581632311778622399664015638003600153064976378737513178058172271323014041277054016582228182927744667857007160404647269581763723793921192968897010228351514696485125155040494321546259191315808131030368597116807249391163705559528974374266947592515245454103480482314231098334436400639249646938902596055140149082860970648932453079633975410177256201199259347765016687480529869088597226253005336109982467783626930619717331397166999662772855604168140658069047332394270799289683481597120393495649940482234905019995604777609232004654529216902351797099514831461330678419745115161366791718349999684627103588922300236674311399008455050271151446803641433430075273101518358930274207162297447489242428264587260600861702083907402063913901327066498911041773214644686141766937295527267134934127221170943738897202156065461406629956895840217715609803367169742761504982084505421582866839051482827950132704691744886763063758157905037992599965358854277022338752545701681518897233966301923963838935832474485470188091451811594372695407944215771849905273162711922870236211819389961363306811019074296836621584697510172617125261248070733978512693621741487914719134982352666440840820144574786163071047565085705612996476657656251793524221485350863981629392299416453725827760249402897486239421842548137769301759919520630190687529346241106306480515230319820363753147463281878828786544278281604859592877952562034603143264640450315910986596958745717980975474553668227736315391160774908391832393247936311110482249825852654734150212323220860585713744824773640674111296503136026969202536882766374851173393724602150313833813471707585286846777640968213556539856463392293243916429258920656689995880571407787944269248667928469317610727232479111525506144810960270248695803586807661020883073664648826271550359809264903564797440897089046316072254129912857345965576534002536724789781775126128885544134166611604473622876943887500866767687772421815694775468378551005184572441690547206263507134952970106939058253047281830466450185186540309842837965831480037160190073381069120201232626214731422754560884568473348804476761918757565716610888575590809761412409312757924678877516279778759454293051585325155104305621646841472378053294914685584696709577226733183402968471981605700332292725616365547189754001618830532821082285593013506299653406810126677182732936742819516495604747758788972028163966272157564814408869348435043398283882786395681921190550845499475929023438657764397788935095967840794247812427590454771818647604107793886619086495284736594076099087598395765036243200198208081887417937624797979529615867516827775393604306351687559442818648921633554323617285504329538897513519515935262952768464839263656024505961360818665777829819181669647221820390932864420597441450718185335456734833201024254968802645488649000777358658302060357985975585022549430047265797422343954540723976898844471492761984210090230652531427057025186337470550558129041882948827249640869080557650245552132220522204037823354120576832290438159562731194978705341240853548419685122395210722091981385917616486535967623282954254112787273089091382624621758553150493727946390190058911940477228764340009796462769108370675075194601596220027335925917033265511084125454862999640849114691974331415479000222740708989734349213036170317907699692916425884428995666778675135950906564258805473193089118767407028901555996688993110417038368179846558974740656006030316511744414695081750584183728605819037518233663101568405554263649710710096848241054319792768675890699549633818560346782092700171555636654107061533496909846239649947995555995108762181112269098590048225165875019370891342344843192856957585064293814477091421184081721116334537123860939712141933832608909602419749128622416615273002282029424087675036067353206149050174174470519051924204897535716810859835911809262124085268915211455810147770530438495733884710586539922595063682840517572366656671512906260696187249516353897176231518177765580351273656537226807528512736105400810440710502192586524191757592796432287219050039765533816897594636517324005794276156417552085957508178961707797763160691886433580253277525228272918919552836084859692118480851080862556043411524327035502635425574152525360744801790118517694185443669324315410596728950869592096197123913347351613206625786930870350739176065699256548317175418796256244563813823246464514142430938199077624701129573150657555050967501446679188673868901834108476982664459156440343723305684890822644552676332993515739840192097302077515165126744507209178784515446679155144300340292940731120377061753435219893360063446203561300449565714060508463280673311060487475234170658777916995633289979551343065347751262868903381532753521437959301696390497882542925269364986106392927049925398474670554090374099133721235085805055569121798647809126581192715911673155325814883317129534669030820384988859261966740389855314827816888481738439494174134440744185410574653094108989397056195421160941977676445114224450412064557575387099164636180188810969047245810860361774068371392478215866455724424203160289150412916613035739915273299276656322209265396993925855977681871919453418301184159739615782700587573803524551511591160592377011094415608355954310556853197325733670916255014644447437298651588100379987348043724378241736071756521964513569269376240091214942428250162095839083225959094745118696925627858319703635251105431306976000505749617981253495619871907973115535697841805906005867956642348199712022526631041877717874967948995578426705996810808935920247870331119741503315409254939560361959723215576256187680095032651474533430153276486637035153948614294041046249508234178023036521910408918158122991857082036466474842475932671952863295421229890236633806859141609397568053534890244582031132977523490723647438451233497750457021658891302200289855159303477321770973704758398837976574998936309161621101101801009990320379600366323224202462280041296748647346450192437748075070816206327609431269245905165983408048002590039776491127128083884452956208466878317149827542476661494154695558734861777787622953310288594969289932513953067253831422780453243580166813459221378876153559793117724140476070043423954115497332284455485170131881951415504873045357646267670402954841859976720346011328551240725672699921076463314290539977296433529501822664078961304247017047013560683073700924113017978451540801016519512043720902136317271906695338706588301056912678075859021494837566196622951252454529503656647162393059861004293500575419085076824570847429576395199691264490940184832146318623880950559680729259909066610790210030763146930610835769093541416724670225886520236134869052784321542919760984616932320149127301172662239854862424059097573387158820408376098258640574943621649818126310069248277799896742964531484720214980270318848124149385489383710354868919353880078546193401003896276683349468906823054569866447261994163123765518810646390765166798931381027952144931738526902858376744930215345697926707142334171061494289084225310628467143487303000845703379717403156788042755378445340743830486239801748710892413748524578244700873854622557720243085216987206856385303020152882649922120830736827682694401193744820631153830108031059210734601875207249304394335448792728984092428188030513493380535369881964389701085932924227926040465050280238810125910888697777159551863362222524893786134812255712436033387455335458686511235925260704577840419763151274628262767015612868559726880309220984945955980912449370644153919709126508847706106778195928179829697166050562687981899634924468537295351106299061490351319172295174124548124110943956252110769375134872680072015510437623665142718718256836521060483906656923784412175380144720673447698350579550737945573327363818309845546048911326657530080297618922219071239055346994478911887183692694403288169075265663189338644162153431933727686305485255275512221177779432009897564789513774005498438887378242375736854548061241577806694334909815877808620436769731202161934664727061610161018646872746098281388223038020881647540402148653625906682328214330361456234275889156281490525831153013183862601627334410108035538667647558564717850801153976381650225664619779166236265960839132297583606211105864749099839428624656163007567984982105553425741927954467291731241459914881022463368069913670281076154190829537985273664575610953966576561011167785555889329234436957212277560982120707666064846373792539420605424983822462661627918531019232495871007644842232858365545570520097187889657859762985458843838835454523798990705396529967684449076861357397269121355531772638866336068760536492139860039653651396357856123506433189211599325671780911238302346166292959758333532898093079984903149642288374883486923485574608578973779071518008040732276355045029299219890992678890593307311629234381651235429427808963007912747022376031509210684296262178892993544714141833195595206360474706526868960538921823079022752758269661111194237083331792810305199088951569610843894588915496511431015489530198192336344937701123273272575712723026745308412315319743940142598606397389913258432844861248811589069588370832752288963349602123540110832559142867739090076503482439251707488781976233009254465657575164800001195754869374977211460376753804158212862736552524799974481307939682106271339725894565803395691222922090936130068622571500997012286659297034196960231057579513894750346175366560294669848654772580952000904499504552054567926213238892312229328162355886733206547590324414039903455264966499640845074109498215410022101256239585104410306194726626100340447271251848064704124485892116200488524730685536463222122296414491595547841988222046476557130957707062119195090970092590781383308705716285221487945598906388365527232255174013650681446113489395723352095964538991275504898526538835493374622637089396089888285731413142041209889372050233384022696321172885575285462204063296970414871936238531742893273731262246619970638431157900741560183324920908832728762532977155768734655697105274511484993328029669248936217070004631805432664186333973479027745929050590120247159336468917312011342764610623811056280237896068729265512650871341665291131951711531542992401163016552637267873892619489090611834303692672343616617611930812924168305575032402136726297731093241905370461207762292220962437459001874777096164913377636329529494833336383709780938432823537130289744112005659356734232621130877163369734004192127548788445662469961500646530165818404844921686648609693131784977512341115484905634483435460177410777386064485414881636254679903884338156204361470246794527291831364605978015760038924355366456493252973666712512335785908993488172175804366372451202759895427389554994336037449176222906561662061876566308796164642850160207075378761116004800967500335431505857396676243336320271085393369657727114037782484238203679494112836971631668510782278462729007174570435552448397925546006778584256085891855709522610849272804286790639878649758061861490252707566805653643147499979387637831258663775848438589089261445577106571035555971097793802079816244669159364357072553156355675134949377320984632325900356308544419704870372453903203478618404130879211236318795042545734696613790996437664886148209435891485858967444915626096541511740336493045123429202534984187764970726866202253359080022555437162679636738447390474894139432601076978070813221966252051194095403133954121031769569505453124806780540156923116841950385612741004728467273634207072252517160385339984844415125096022327988712600599182497096061021777762841543341344407812297200710034845879783449587764945403463795307262258890278499578781897533481657923847176424598496929542149640751398018312182988597544311638037093599617224926191248343514520688840538352749013830051475321282318968636318290164650184323766619799248956045295848665025523201887517067117928454823650273442417715639443846307319346795314655302447196864373196841706200443276181669213994360097606336275252199201068227177351417548163556971176195616409325966574369629472707171105222599399749205862331081033290564143664081734924731339524915033901424122832602354484781516215453594740565968640031659185288191072887535476909522007288960957952177489177373560893889185756710856136164538960121149219258130795049084399323055350396698744185321165199573867543711654055492144621901563754377095802846241827840941106721851370801336738899115848469784839326617074999639304996576571027649829651531723649483106072289021886381006881345182756825966762172919834388976406101071802849622589737467393414736523610402706768671929889188994663256882495821777631326638016085037192538845056727834995645532397311803817788292888164218326347691720284960485891126373903391569528652498186995752276119478407321159152553748018739053546134970969042467418114503382244039964981555695731813643570421190411238630067667891257441485884321299605669408253440614723679447869518993720565545505678295432766944786078584950308118203643667050101100558990942786900192067330827015930708542132573228648504714459348536160216260794889487263582455861645826469854784575969723913335217942973050965215504889020458537300498492436265287491884505663901390056712753898243508753290467335458951807525704428086690997596345753671560181901220936918241562979391759400948505186828644824613518677176463283514368873715430999330620995968672520459067332780140636651136287137448172317919741142950392327797688484625154928442013799836728659757537056885930387645728247562470333862104302865035208103744415743417929403004854680426975939703757710635292218929762081141418268482641302941979746437277448200041781481033550883091676883042185920834253830685597501882921019503280031548585505556098581082260653052024034215753062179270117060624639301738153093708561287474540290994353363312750377494380225281660409778392705279676537343050502877192613760121131050073122103714878032506818890593551698917798849240673283492361341602669695164544967890265475690654622858162064343059378096302515645539971287048530672837313978255550118385257730898821612139914385646088899319174563921524294948270712484189327475283025046838236300856426720387045873549885031252759527967998044946832733181077400815548495023973626585369935954415436332771266947196907213804917603339173901001071704492122427890950003199391375627365675428624042880409412662020244520914169161433493771451742047047059117552155395264383285816147088860777538408956775966206580762935248614264604115048027591044117428088622925311803218620308885641114682722809275582986975281277749576707696408665050320027302571568950115573111593085427027044542814582331138218322333843809861932282280557883311862908422570265040577314564433659653002759224816446565251732590577243317863879765791529228348665777974769122996427720353735769096023853611766862025093049599780838201419503667795146417646446441106306030646085124234054605088989051946510891299956749810686685763871964268774817964907398423934584837359723279825452795239121857590230859893678254231168117617421324461408181921693658231327019825120468998290566991316446783265250907417782176890386025734091673026450200107692687878571921765482401131880436604470155951900328665579122171627544610988985757450195167813749305708100566568083694535313828125852896257004597427695451308623390599521502490479671164802904824216137496567571211607559083200761104692275258666527478971904584676460133542714873301248215246836675895130305554667925634669813667217671751476949678776106264152241466925816596370675524374218853534892007191231077782169600525100916355882061730833206747389178419767861706447504391859294466386629319748542635238684227299472422479142294748309742676691245365475484673539818762089344976130996533103443060649180972638114315629424256047493046925988669519710852702252838975115276724544671952828175077852655137699075200554702054467510673623525136386409240346033503759660211852029455403121756845877249294964873708256551881660886253022722323571950811469815920000139826965042979497184177031292439014873198036988263061799518659640801317714741707471979497797333378540923160891880369582611858247823263291570765481351502877960239103257857290007253310488534792870488667804048077495516346309448705777392026359105773943359119774713660536748748256598002952385006533843059330341273671044593531627194905181899635555642818290844567924892434120802061962871578792196857115387889298611024766336621090780623696660356452381916021440906125218164608973474170218631600644178068213840207297681406712193639925242275911087314600167242423910477602562966012792135356678929999702667168996345165275534064671477853534332790471935285425909552374274889771663886681078634863245788488015712497900552484611693916441309338658714646811705868618746242928287416341980058969150470210019809237017851361105408191656644811256888312453645639161626966925182678473406618932265228630217198647756451833252925921321848948707173424816529184444460603011658926442191525077918100561935017771427680766665542494636463405991279746331069720035460750111426255568377347234536582852672239978910409004791221373461988189661416458457334593867556821381662993448701954819067709977966840859668103596555189705602660353912014169801530186767483515850696768564610302663652003981280826987553471228286400444929045080906108783433530610374498492382225220576079659673079616874713773009804284715063988327701378815007745378010573064310824257892589436082468158573505575015614663602821329670808805435672368139382107807942061526855540713572774092368039150837038407210653576975883688787252043505032468490225576289196074757440694302839918861827648911482895436113111068137426868643227977696908056617105813410351351584009974168592077570497039118590057145637083915833042695347915310660083115287996765177257168599127447765696502313836596121492156995842556020077142632442073474778491131296735003379191939928229667800302114219170129232339934136358381007934774040719540626133691245680602910702759005271351811458992551833566662287852349251544316868202846536411755021480246174161564703794317129888576632458771728978116324366917381868223255873052274540290751677904313910789024612002379663857290518010977651673612198063666879870835948141043095423966186916776873338969978065916514538712185499717629019798981016542919073993195782698504266018577250607330978934700528367269180726876520561435683374181831284120112509285149658574679218796343615205906549812791070590668874222414596229855362272181526509946164258010138305884150919527136944099161792297791815651346014897062840570488469154347991798582797744480849564780816392428245218383057773241420374831530921240141396629458018016589480597642236481063468039455020196781814620431685373869121869634541709723922261018823023775459993308487067982800844271179426710413754491579456372059533416124043415570076837487589221038797440353058516112447737363144154187225885083291442724626703674660632104867969800425216409047448985048101028610290401875601250786375999341380110876732036490130633143723508539584612597240509891961185054826768111878999582420800160248530532326040004034479728697719125960909867284397015306008950801372858576489769326680713118222635540314012741895435548492798965999773857361772249099896841387287333411397813205579712713369197710021295920747893274007321309037656325967939670532835440954142508577224006862752937709281066315879106071672589264649179197198072539115670459677294107999661241511504954692462591034788252896277505444608385365285220304030354866357404985755436479545403131449142447188394640615542066439766585448950298577788400074161511783656971195629451439606056758227753091544257740930763468850650913122840832876018419878612871615211509517966187894632578346988725694109607713084660588923051293351546450885934222612049427057460471814282893345285650787137915381591539983033223646241541965858201449599843916515941838625648233117162300876442771234739295291005316273823915710957458372109453455940473082681958257066883465542900682684292074616362757389137709169547466978168126285829136523453370667307571298492581576519464338230126103672242668182176727575595319691711609035097668582820277462541996401524768489224408221968299961712499823859353127880952430106949955142128462359839781738577270598137381037917878424295069664877632521200647414145742831194677314290360377996191160031965579600337030384813526161188088664364282513081668730496828618481669838667609502434596412503263782028735455148174000475207857637775369494706193836274420631690196291570253496343436523955423998551067028298662398959752938864974125407758076097056198397272249371001193417526910096135003604596589984486065367724978223900217229798567370115936357794017610931426251307836374335578239243073397532171468147122347666685877235554846712904140629376993105793785480947575855309097424137870880061276162840318126787681486032292434600042566926798409139439741369032417862679356818024401209203965533944269626359905078818072282986040525735878281564558743709024163928528235904605020120815890747511098520004629635041110869861462710489666218574932817239807115165972980701822031223386278341110096088263958961714028806509964304843269283792046525996323709168350680559862554913936303490759758010755025179245623329854790998772337473293054973241784500632712481095019680137896346542526357185179680973433848115474635607351468907592801320015106784353958625642232149554641405042587072927663143295126255108279139769192082912574027524320912012657179995844790276836924998401703185274298064821167496223651618049725925979791045871213636293128740483544170714902286711789372613128682107769974489078819101284783559473971798489603399547487257883888877489263628245995561743325881600828586763683950495516358603604649033152698833700101887645867852148261455535739093497494304098685158644101480487934295514014170195163570356986459467513356226647821146491953323509348991352020323880762301194652651015432254355300600332858806633938242372072845371969695628285934660773566413452915461367481442860743828773522958701913303388781939521743368874155312465447944175491923009560796336225191712669755141517169943948327218156649274579602477538080894475578757609381438323785463184906053829145640680630531366463018707421647249128824021998123382969597301800462138327233691363452682505733907151243540181020302819897260888760954968062231621907515716520316484353588787949063310534722931811154905522521630385080889109799067279108566112431111334000768708254743480707388850382062000100564735692080709011357643060217044187705390557218833230269527783466929919215564979474302414106505208383021550180091616605861024650492394310763901336271217460922041611078347482766274218874839818032463024656218322979205636660998851179991660063460080567390745947262364601368044242551556408662517856148212688956884215521700819982596894596852252481972520962789640695876664677044316595887264350724279379396035732115864427252393836262890793947697241688358513875894190802301903923066275404443730199469592767596787761568246824806736951097573759767429781685966593538146619182611048381936854011692093172535401555386918691171935929882993931154495514498277536158942803118085942527063902808409280049827369998176646779782658244204133504023798514706759382001935124044880108428174345149604266956421259369746408770818626551114975802793511595396164263465873206910753321809940586582134316565088914743381523074390946561218083253658064193956524673404314346291955235451953331343843593424630965349898067142714373448927585862473085888174437555257692539136847209507202266637965284786252209727009066791033479713554601517454565071815016411433507865018246851429023176623673837654583777507263504987837024615832297702444469611354824148305095173100392901599278293542356475899996103981669206408145256619401231549406201972280754348449567753420276891594251051266923034855814099193990961116703739811390097460028924529236843009129151291763884338542031282981705375260509860951897771971266970817754151139473184859914538894102916446551217419440858367789790449382655128527855217880003493697241325594805625659893789881619526178257507480729743702032937289933938821695809187775173298035066178495445991879473994012236977040914032432717442691453206756363863503538015773958425900012341202906186763134807422779560753243616676122859954701832185161939369968396637431646723530933382868868016998776725133838390410601249842437662164896809869879767801579177187165112169653083964942320881936109226809828704658792833535822854991218988150256914119072464417648499000798305630964527948408389340581031356724743979636377365565575044401615177864872915212780158687778697396565392073703932566123565472066254222103363587576276132470345537078739103389041540559006065257951693319396391023764791040562788460047509877982477523839403803671153987465655373826904881841869068301312806627948075765814055459792629504990498810976656559081055791844460608989348053421041429398608733904298072413777628952168478093349405873634850709545852846895033907243114747419282286839657455047743781145135220608497004763143155944608639026086900125532595827804087631869159013590625056261104106646447652760974085770953462178274443562503226466306410236408732882574917375377826692339013579272421602273305062827550810597516754258605280417934774909248133899441532304776287577820827117673054022792078244881861494635420715265730469080337439343181459118779879764271892517216174757509738338170764811628772328621464099089202904800833395928811129303954557932274881277140349680566557032361947069428015121898298082559370553145508654519286714262974929441717351221911591230477577894274111851518023297481231481058878136569534311764265816919501162725894903160386629047628776023852628361542747136699280883008812879900587133763962164962650720222561585097656642465993970486710477847685274838921329936407881069926800999715668983681362026888845825972551766781322896050919487329064353352973940438104949656794769052377673799037831765894343883477378109156675882037814394729288216071165341411187408530088641442453882518471678724224208405020073109247559822698845159449226933214482139600120645027391091958365632163610744446631510460577448284621634451177038485190441865470527671980501166669889725698437965877238885744057956837030857428800523607776833477266296182442378736597320138756022465498645621521180573158397670698437192792172530713128664387288569089937230558670501251533789699702126885334897968558965357324669501243578001612677808426905052254567518041025691747493000570166537058386274105626279601310596201880110523755676659005119224436599931163958809275233062494670718065350685454686404624011946365284808450876327061356012887693077637006630533039663496645065916027295458590105727622916309738161064226563632855827157266134457757232779267847220051395404747881556459081907648450985687609063508558939822147294551563317331482663268654645114967854993981457814145129717014763549833549323430049072279254269236883481332836339279530501179073104754396472191158518181523729455617648450064651442507977600426008192376439426096001745002733206211501194172089447439818365975528332708233298254986953548494465635368221383253930892242549243314078018889587918579691229727302275072258946990589666953376560646453230433831928451593855734566222014014485604484948454831046067041953647153924836338541898921117477313353720509963406991721229211311601514412677937667753272326731263668732698530447128306065467450214590858552997374170878695691578682446110205063021205423956492811042390635517589235351302566460328219580767566631250439086787345217059218934458231107884083080062066984979725598069533348464780045545624844235691170065345006173161859716155347096775755410621207799356646663945773620020094669105329327317309035495229176134404795165008005499481737789141622641282665616095582974237599816290599456935346847626911770179811377824903061290937969215684114943267959990348725393031879078707786941114678911628339809916237122669365175440897508092404400597380925807976703244607929604995116516011509751570557738377779724465699619991900493972196261773066502642992380437135070378562956686728682308040206420189925023103656505851471443173057152760792887901156463109442443951101497934479204259308628869485189456586251548712056438730799246539312888177348470349257847477602640130413326631058366929101350148409955044522430387011075091615307856458620816608424378096120552234394236356141960450177933633495030882258872921927377581961835235804147193012889687494201390520889217743796160173345067726093077543629606566317288487611895411495374862295168804481096996723471856426167988117849131642762905712184271869325589611046021270864086188156389525206308257317046564933270279579125891618163108198208312516994429666791905174253494430473070200045816054109872940550288599671073169009810444387906584335124489530780810124513122425547330063208994230924431788040213053195280025855438401516098147307637452308836975241190545799522719736020897471687923838407327403115633887980833559763815235979937724755978707876316544491845959320259926746534912251387343599419764816893321262341469200731740140702629629554485052116656918771541133976207105791805954548628180964611417792141902684320874664038349263141623663853008748251065400943079362675268137973395807173101288027002487250209670077725597952457596165092304736097016613075804264035547783275083436301496887032877350458934871291591218219155375639050459268232517179991564568374991544776340677157253066691385179958661240820937017557709468637102136053930532728644736888029517993001121653077249145449010399419301406629176003286328082567151968754088879929289079847654910042401561934519750080723773370939563157023397349470258510001728857117709626278381250640995214234862610541659978821754880038974971312803581949464369820276091599751770656264371327300335492683530600232208486939033160754731876361720593507522708723455017061579197493934772452058128180611698936698170187099330016691534036080341663142845949260681020670560272559882605040128830808993194828350844401282345867327816409271655872982340871400667726616843174293778422253805050128800162723262368454381396982112267086693734409615235914422434281365902458009938988126298215861290404757540791992458751649544172253211130145930239066736357184724847711060872581291172048621527976072863635266706414998690409365857967635708366204035102337267534369273645275014213429459947922092626957533950116289690825006992671705173456978472289158193557988176791997563814841370582428538254766300098310011403675069525664692925402524734299770072079824024129459990074112785634692046354456086879093343071017344419261079589475010295363615080677640913559716724561573417665046236716282728135694783540718150070118440852572896075747592997343125672697410153683094293644439379356030520163183734326721504767741767858253732624655158300290480906995665729050152141101953039264312626730240727355524985882712987125945369048879320769191562107141922991194840784765667685545423360243256514306753242229281618034140982911913235888897766963620895160698775570167616278919101354601551360722342978086642814559553624219565853003112593642924799057743386068894553312328821268595362854105107482511943774028266856655640383716315611521235487261093480291609470030228581790316832745359507243012298188510565091671897537034836686144679738822280572612489868657508171685305089061325280823079871645321283651829738204329547913726165803219346225768612980106878937797242726323882837360487995321726626034407750426381594128317716952381034186345308164600917048226816611130094787210708943406606911639779806877368383249270791181918477735933627710268585864442929629392986396773541393222706883266189265299518225383794364550538106659713568885798339043510241213171760185007582293714961649261457609543314351169100262312848086323152777261337485720127276418147630496258569886940947443407758962931900925952928216897496107585623963167733324564260101254442346656868682365692015829134038173458914861579809321979951575388698786034791304910166023914858755359817530704857570329016347336606859888408137341316513061701726283874411767486746486109232261343426340269455274331506696479629475773401488599503145340117284869900552633266265014260407950369428056148533436494721179666384236700767102773771617380207056223141246479306838393858549080210310478110641980703862525947891874392659851005574233204823298896303294352511272762283260000944323327658855732862520472217618447030143931297680155933848521896928370535954211166856554329069888777032735207688310317095369547672561836602276116587707033243690087610652144183555296404373326380058695989892083126094305007654667027597152831850110220447463213310381164490205666546526227075902733024630682516706978172020535789304518257035763967951948487541925350230228112374773459934069298766930385977485112971365503580470745367340098441747232352527760222675286523124105002542591462152939805521469672856598883034657427875253753423580793529643666885180453262575912227254140585767935176139822892047181729945702118830115133809567129567255690670916911972030299883841373210971863363593499461734405831468515538396216940150752000142491762116070381608900945735983772429236082916343429438845247939269604765685040248075262268808017853867721834761925106956931415257785923463641935581665753244952259131820111415045996848148720938481620505447280490119989522397754909344172522666392302172947876263468820229132897043119021783423587457884991439934907133065967989166089267563366674138847875669996612709892160753816141921365679019423324485003852434959470368275679261387860075252673285480258722150595411792035518854421963380616168460379588362838750320062771199966823541416606496022899869318282422023102133299327229545679175212406872742856759349432655834017761521554265733516103050242262669245464296844781582550202757619453875829831707560797899020420128891867633156558719158200655058035658355482759228969952912440506556723038882545200362157357234048566886798340669592781390444740669252126371408122923998105872704027570777186154763804128896212496806572827262439024765155633084141296744876645093969111757397604970450360981942588480831340363554940568944179945736927528889453264950447274983518175084500206475555447343554253099148860913641979227868768531021199385795328699346618113110456066994232573980488571893794666967803563235415050257671483040151095716389466888941232535007736639721046721634912216844821272168630910127413991072395426476455278505571039015016214668186296591248751767092796268003644342103373827802645399981822887802774232337813089470915327827520440441214244823590478365907646088523427761790213218648652055143183789765741697192631108554506323584897471967932805027599704217769815152434794478162992623825852305298409146871678449765783885201198084557661929960064900174714296707450883918498933450468460765597849924408077724832948245099735826088652536070597816633447710937932817611491717769683754313717528250653149796270088042050716419622613905059210218443411245579225193197968128183233737193384724113635039253011348386620928907628411457294112726642202226316572738392280431061874983372339079225756957708628771174883118075259866773044834322355623304896713911282711761703164834763057079403393134956331895257388596985477563334245945971722168670362226378345720107218563356447439240143503132936795615380750600694296520871261530368992485107492809654274498532489353187961231960587942842325980461071326612663058604668548076362593928992047699398648794678436903089587544547752035607420006617730027784071783827795954500833458217087697667510604819663439996178714030892748962783516228354249709865367886714052822069969572111051078609610651406377014237476293563856578956388001886895269816446361197270731397180595497366074971959552979165308965828331915674805627899741674774299157991299133468734585602528770053935339268872331925740012801979925191430219722589645506129794887527680362446976045156241564030420121182021197727541556409453923690837518025816594779806592691078253089395146262381492971973094563815615522852725658416326230161346213206742065997508108164180428147525044056117431641531850407433236411752013599950627624975115364493703535796251760348439041714348993731754563126179491169042994572605385617301691523178039877389420236771925930236203057640677765510971400121393907656133213294173056532148639342367792899845685637165185653684838205305692199083682063920606106352166356247901238787446762256651654989865030121496726374182124954776456003075851254154487759672415860884526176434073751095613474345571599231686206040393585098773196179332279038155932038791840937532516658485115939097219064320840564452182115775799139454487241030661068900660374295297660832193290343039277253157803069498512166233298248308772672564051491373852198853619554314353067995380062054981493044498345466986639658408050916889446496467337719720353475873935353791795145548161178712106712098334586654433192865485437210240904021207684263615070276869620544054697141565857584449898673466764421743825288304841969022942410981765986465875488310571040226002805987938183723847934565851268947029193726259261767161232255323395153198741341451979270862850229807133202383793000259015669901610729175018747939565218425585018726791428276315197979500454649671664526316998460151812472553993052010992039173959215870344751105634554270154503178798682607858839706322462032851812771738981825295338937663058100239367170169983473203100850951086991574469220375691683611725942422898446347922992401236628844972242859483539306345324825530811850160579141007243344304150519568135136785696968533420953506497840992058471037536978146485398769216115937485988101425709443320720210063591067017897129160065305163778732547399477838078933501061504543837953713686105046263182201751317745137280879287552112806728203377078526353766705480192413661375456458653003125277516443409215357773320587260972685361526503163356631071168930124567340314904876046877315154534793588968011984581861371740182751135224153194758454149787172526458235645502297450061154563875323842299434698211799362919250239613230470979646660331796054976742018118612404032346179558916240324459376626284207086144555314188869847695811127080487470472866636585017963754267284925559529712891721350292186461564473655397671452802239199744689063754429004975549741263402480713660289567970191722848512722159179970625481890621067246137046247130217062090696954127357257684314709411998029122933477184112936515506074932140305483763072554488090422567714646875276144745932577816901733724933417847560684833914509571170699502763980307263046704245647636229802606166163238035265383997075046238094819057929457904471632970112418088783452031049186619389410611616458659939751435690781106783129538296591744812378786532962527467414610777191340173098008155198649427416993524629700244979610305271063329943501156219886227800546022524593880251972973859189179852679633618403039071726492738934183587836592692762225124810895563883750502843283870606496126285437938595749280174282198605783402267433159636380337552329143663792253793814716611530181357354611730601890792146321021888643493247228409246675415897545307532098385943910931220711932834101598177011965229634380607453200986376101266743449569076014900966143482444379541925500847480711946555892184388194515861909013859483704302954538308260427311801229783252291223044504803267026711503775680190792928038250519169512050562746675655738858262177416011179949979094124983506871095553826664699054347359916834913548269179245781019687819246995985339962048619338802346108569940727861144850331995447498262331019647900509756304129906954298722807899747509060494676804750226201838494575663168504598730525367758920318766973688952844199767136115155345830062789181440123632183944344646964316638599678070566404865733907025676061986832518045609739359216759542282365351659724518050758892495638204376832763704884771304090527871903201585896153457705116113155895593249096256264483772634015438497263137103329803219631721020125881972161062856829153088691001780051842111629479536124361154326219635872712172119265081343906410557880251744222237038087550124844099255155076692671958315885066099676657766900492542326667522783459846478006941704610953313542838917120949198574536740161785464849255059854651134882059045769216052471997319222062827130560737743646140708746191427339679611100622959223247855194304689455068361691935526526807855998419842304460755073142338795551005025532563319097210716392689384644484737533820417692092358238721075531985413333081601638592577402072291809828821174558076143617497164081147884113327518431330874705965867306929173074580644942430480157711699943944249431637874772349509968252147447963630668519142544449169718996807077659013376011735013292314406083076766348400594333708648758367164021717691297267882572707123526309689842336121529314936185449204197257075512673798084514234345493601997582576787387445828057282695404504606187323402952836926332678829745023117937588041834110608174081031278392866360190860452294457165593097526222806927361308850888300494520993094077679591398486950770100370029841924033370809499796572895566259941954440337499328537387998666743116394159062737566113389263306223729817458238860300857419812690288334210568173578380915652551613939739478524644947107995387013548143782918760029021865376682696205958494466698635022396222714913232795303532960896293986385577401278665584994035613615507652619852317227099394498971714788951439820723520234484187822665317545487962943241515502663902307270343471571696656082885072109139447425206943123668255100305681030593790140270404200530091468489575058517329049764918095969193001757913845017075194426817955127175562829707173012198633131404221978704055815892872133275966237910793809126364611536562859278013940903226082544211203897707007743400489853538959333578771363593260215700178255530078061457644601349441108160415238819448159519875689893838277001572772681923970974611659587084866776425796386317568418670132817485660376242954421929993788203575068481124007250466639743285572290072696282854183970972233485730673820725569082992561683855593310654236855814360984758420362915541796992085939573602764222757942739421477916073310469008215082030155392049293365771357136684764261572897845236244765963608390181351949185888865687112272417537604587175608105974359884879340875669774499039488524184701896278511936999556870380850374100806841526185277563100732226564850727218744367481300094781978953440883472059380821077889708594945754461521687659124921367480755727064078711197830244412844418952609191892485725675576373294159100697745749855962231257648535122948565667531672432493525908945803219938128598803318238975709485075998895716899914013707273266514496115667439713434068976378542570160987382174293027670116527003771660824319888751390846465052465136848299597024941703359862281205009807028777907235720200979313539808633093586297738572868033454019801146256243898502295640674133086996697071493598137337611910442663975076204471803004832540979831844364007174927651802735793876450687466793072575294121629528546695991043379200564019349545696365776034931067915652396448304847188592049448187926439239175055082925633525143659622200428223384880794757447560965557380682774170846239230379729701925092113417710198383014521091411578542116939299033292921883421556389133096206581566575761042731489269582529391839574127193945597047192934719584305393955450315276418397111561816282004020253276827528724344341100980224541345456329242126323837602848349157443973743527742575952687978892687893802560256023093065195448644049690777587308865646141560266246181398727507063641683443602684697255555689641411430791451312614416513254914058183850288600048346275371780641326926050035863405915069308438383583416323051282004262344961112565860864203109680407476850422534958942778637113690790150789068547309997655546055591384360447319634140871028888457969600669060654675375833875969565043612086839999089818491537308394784413130698279494321943157681796759044657012493006592657424742593094496439684656543176762447805437167856619094434949957244747016509176773490547720763810701562782172470838550903340491007200772702542594468471451839636114571787379783316145230450634844969391488113568481340686671240274999633599681002042461651835960255648306879796688027653836422418819090758968603679681255329222139088458823758253590836554036785001526779499677786080863370227864248913001019240029096528388359681504558449764753488130673698876175929004057041901298767030323962315149299134130777054048028298676130961132921762707847436038900555899444817521513318736318483481587995466042360203304486905885043976374604592095539420657239584117386952462361510013347596136314323298084498347811112296067432239683955894028088561310803319205595175568279372314054623867084691345832026254626321953523931386002047162294564527648384285600783433360733221182302705860011796260016676383838529229360577427448966681142934915736964243105743879131881526349371853857944498761831880374153432662158567819024780305400354333184355087780883778463547614565867995198716380860785815453315324351709817965949125808099162151265714273234085699763673526499430158925802494115791486459473166140623715146376686368904256283887731122901639947495817309813818914758072221171340489420322601195652501158424706467511662690576404177015614389194383263766927183299318901978883876120216247300553623541064750421666401291494329714252965275903793432693833633999887444239229832407201692717007258700969795557977512298852384441398713195171426542534325602342859146060098236829462862563875613813747235003210826765321610916280748473037198075246813347496951710431404478452646878400872177902651804273052575058181858091781088761080206202349397814675759764866870569078333586841093645510281893971716171942478753879583095302659005134011023353283545538004300255003783369123282242492878776347988116089912735654725133748409591675029604446559331841410737197743620926329195165369669021794123429123807557536361959153418287505427636081352276819500418209630592293571576253767532299480784881188942211243805558900635279061629230552025650144832472472266399660133929779164430084835195623548855571793913288776171211102532729186713448064934899901118307152991764657430169600390775014217976697401769234338936140692688362824846014743323952712525979487879019125651413551366331322918142806148147725758749335116225885489341863046008566646472810384125671440902159107124146919366537680253321060680810175410012767041276435650344671876320259319859141762886544449433756274701793777188790754506934622262843814890589490339850260590263902643136969352599660841630423856331156920691769113600530101321812014031328945387369444481278215809182373986853567413063133674971564305114339060702944819335615327467967335933557192846242877848189768944015616609319026839175072641656807372501585886691202262737993897369173729781733189418835878560954364203510441581856428651687579549763858658385739391008798955180061785049291267227364513512762585412552203423864694986475419553304890757745873244448835280780810417748251518137906395371226274403859443714937176134694022416984358771489436667940565709855772269846600382036066607351199674724001581397675775016818864327466553730770789140900408106927863539811304792948927408477737848904853667706849159963555638722338419982875914632946220445270102106540065852345039780844593836978520024089840376191119763429816156214763511563991325409959078801156021707151152146897588083760930389035709348218925436609797411526787668796451853567614061676935313631412289794793721210823944598989486938070352419725869649617480396168621957338454101772675580737711453093941202843127888169868243644878006302179094426811885323277800367071792200648899644799900917945428156347176406394253971129468247450805162185422554634315659028314674260426569706228179119645370376338022286302472172352692494810738342321884798844128410175977469636555758342140464347865486416721499406431192341056250464749586203718248779532995801804209290258806094315583654063217521948503644019673874007014108290989779896445559390339082693212549909188665747898086138302997749048529943500401078784365217212219442685029928693284802493906739007802759308056112332651463433396703497755645890493016132016157512753438725985014297834578686017815350091897249737953930718986159170561205108797434908980248232502756816023789436370683379829920054556387914390402864386906194011180689708754329017837852940979289894645867950786983873478270509722342579114547690182180793720439796386714139376031983271760521476055473409229279649789873546431323646196536371771498166366834743169797096402285686993460795353963813502785459879343562823460371598253344669120070093313524805919960418073031876253344540049292734604864920474182498189381861826240323175455618538115889108320877332655964592000342215507789017223504671348326358294945348149661022503769209863415534918752646936286454003702128944395339255315027071110438291813877329786694212859707863006286697782803894729169927220289588574195732808569200928975152311017181429055812002532802048622064842151953837308584531170850671809886578221815931157775357123854244537622637160759878151944135169725161359001881106770198794241272796602598879141947439825727543810653306975983845539009809083967885259300278071614436962498107705331468361756948741998862419410285549367987885452477479844820423481586260629265164274471651337195260870256959477494281909567971889203763304902397980904222474994454649332688445031820895268355105894054025828169222484402839249092188494466050154673201049011422311584847303380717500904297317100939134046151155438349270786689186792741628107004113001934291734782446916614741373641150020217118502551917678147973558891116707883042098042240510619394849713525625110644456452123818288870288846053045678997735427361894874420568230381209008918748976760568504216518061429404990568128484409500220655716291167390735857312862745434864975944045492662553447338237041938907570208190739054210998738421350666036933830969077901054115187597011645241067202580195499011891567656598415958877973638253483826986031006068949326065015980468962905044363785264133506725741327003622886850973605341377960843319331554736300820995976225382372556129379135462093991384311209095077535284423742293302887651801466276224530869742791743713459139958913405394876994831305298219836509896672951668827479947425653099300096455698555893854704570040385252511531624684242582722976850190421243342337285713403874690684442010994231002105854413646046208207424351630159557657132577106247463246195808021978338692863191328755020791208222961507050120961167088031430195430040157526403980226959053401415154785743678976566488652971267571099275614951502597134659765213213817334899958909527122431403031576353690941678227955384298580544676993108799277718145997516935797783233490559434658010744334016422909801388457561347707181837349268791277028855353521951608309207954897068459562283707700218996206388235353974961823926875420580152044205964224917542736900457875424544025744553191289134940701218317530177805720040476451665987542020172311208299570967251931424224215229293681532331361903760700771106953935058190098581147256491227646435168362291453850137171875938327951316301146436738697669142161642160656038055750513078918935488739668896863438427694993760303453980201820467547188984250648765818851266091906646484487456769370343682329139548905571723718301864608715373919593539395585992818702632744263700720858903621484671438569485388847841686791703008816417262361272415547871749484381167494708301769274987080835288431316771877403423714852145710148119798332831010980921426073435488958204712832049001602844600453187496901496071288614182441485714637406458616118774939385261471741716065971092638620942164635171466628693903325630129859161744131916083560219621410563167367393184660534841436919212193365513882370387855852122560792593072335359304123069744522803672096483808301281180501345811367384299965574201863700681440846369392594375961978590816850721516115994405089679474545325290837998838690194184402320213801954738474548328128549809594853477882012751457979318200674802990728724110803787218730320106082282850038348597115779850872383803946123061760108309456160408618294461440360518556552986424306493841570045555694144368572575949733847305859673044099693458994510793212458591033861367584513377543774223999771598635326480983535470130197689451090816478326723510124526392006257046159410470913737124370414992778008502972654889235730087309879658603488167935958924551160257950544790568488525168984010160455728594357024155722778498722906139804144451442042794484911245452652152569783742207920236172658646272373910182714654088980846649834624593127633183763091138370508500814634890089527216116268954528148594679549755764414547738942502469482647343937557713891784852090475358709735400145508169866070254102248764213399647959441263529149308317135411282285146349073481848098401903425049617962585820863344661300234351081403478026158514359926123706674398097300910591738038656485536093550977092952496285522425776555189634009260106859289353864067786973615173878630229999735250406871956290872039670763449900834318718347534342271942628487496121791129970032026973669474752386198404744288295375591982464778974486953447392487654434360504536358503221618492043073320032156855739166942667054612701256517089861919275719998688397393989372217722773631212051505044134524603630792581122587635712836802366200881479581516690243676329413961173829784154745064945224733525616702355208105718142498864974132326864971615490233066014183872070693601338697647549426975482192392187726795462808061662266623939862760140756326694855242572208917533073530320774514998114914187420557227262022732815859210335014876907329338140885048112926609435109643574843428647814210248912851602681405690880252314840866155339716511269137407958567308874842485164234954945535002752332047160418632008575856541386443893154608223411554501605885771543134771468114443274769612100868722991434951802037697473416739318855292433612749854997752428946634379340425454120686041658258052826248673922993987013919328797022453891054801500121232906740469115760171684238366183554185763282863012008633298480587029184756310731085674409038521768889665538557875008060503055178562898521192374871927114006596388598160029240986198023268879486598425151531123267053797806252584953196166532269235394290384387483609854421421500178255622322503287162474654558214631001932802392564140611297463468839717017011002054428697623249532148692132944388967709958585200417148892624990184772834746216666984219265223384877998852738198810636205170438439253840545704809866944441055530007660383930123486251106060554607644291968032474572256622315779995877756635413424129806375474047186278266158244139606127427804391708277138635517938210811813018368565070815091337795672496142121576288573108229336477725557826882185190210289341296277074673008686181114926327308849382884670615137192076283368707953742743446195222727571702165042748158830059523869224096293213845882940139491863538430147752319760992034244046081476868792580674486598721460750689119345967602886622167660211706731601801269012465097035528851047542862715670444136782433605035181556800334710435636420132375257100256674033482436273187304173294393904882439751208880222094508892534834401563681531883109614167003939852405620658964221160407775619648182348071758760716948546584512352748340409640865704046561502291041725424289608197082392421057802856938663834690492462879206141751500144376617473218951687861559685744442365785042675129590499108687912393651954194809178366760450348479953362284213857326697775913946936917540761891636209626567007798385925377962949519621697004769898669703996346217558473419672648330477305931779964317933040516964056697834668455471007176627375531572430670302209658250478415848855651641485526874331634606218032439132509712233041795928821084961382463400567639109327702845656221320487113357483278477569410450846670576670594796645897945745074178290661614479343404216282331342265328944107337478252539891198455064777900173286742929027982165542403149330963741124625361367520540977782682481911982185416883759843744696995653345549437841127765745722780428834723081217507699261162366634879256302913611355637779647052986545927789648449049206728722794613105305720878882421633989181556454409994882544592706375312317136084818504414319158539215351169490835018341632277121021671927318953552665964145487121815557197491344391205761569661681218623307522859416842884016279426946747178994614518457149136674995427497947696939507008158146076705702718834135276506905801157115299266149931947825337991643251209208170623896079009261620938917747151109572073083876480659480909212866642921930936967476096337445615633367515606979070651575429275564877794060614855995927190866264584231218058660681224312296620042683586372372388830828185125346528022172064497652445434582443146165302663310533517524406686037811772711119751497891897541032527533511478431981341039764610379350963540106632753371424437514619612485618301263864372804512422800219714359450905648997468000513281454592627850329091753655873360781161240772478139045805174012382542848244021577144293298983044350182761526330695907710806371551025535736068348315936947953612329961681834915443358747199338405390170872481869482855308342157969749464013075788944609061089275564515571236002263685866699137733671239464352839917611516563587610978237674488278396193967030542577043951096301747885902503900456253720633577337270767910791715050950058554750888505655669367818344537209166681882955851511841641111406435567261694446733477564841475488451010857811740377284123488183205211803689531867617328727498932702542421421855226302197321950168525235154899748141292030516810225294795583733495220220257253242984390805253548889396094633109483277039640100529139784781932319503718843145800174571354493520170156173714184486634445027290185328552577988582005321706056513305092370345441933303278652230258769545544957954623018950654077371101361837013211236707650282233555423916017448613245258555692991642255597299355385684815077188539126746364191765996019833999636389508824835747805148883986918280162934020351096214322672360659345848161444391524432154075677301880908212482147278656276757389469804426175117426730373545473448175958319795474414116821543718159582094560695253728010074838276973908330073703279545154915288145529598363164176928265797235565821315553063334074183799852324611895505346117496815762531053839242429009380551784513561439224871082384291868681948770186608690511253489113817560850271286470466534419032295915724101320573557708485783164478545784053472427255503983887556047487406562549830075546009730033540556361863102578469439061905142305947598890403988662165191867210853796312132603029742786864616969743042993404869835260380747356415767240932725718456976996784690662872835545737677115122153777169097423344729578562223358151893422932098756438663884311587735821447875209262432364844325907571377005202640218626541067103346849410991266648198024815638147640420636416466381916508205138992753780411930587475315576698814716120991012683343933754553101684721466250384550964513217077003335770208778708268280877398922806777107551922342205047225676805478448795042711688429477677577327915601823772945721079541944311226080506229644912364026810009074483441585342438756401876244704660966808200796002223407676945171447269608787235148859219948672156307166570709568962083596819491474947705935027749005718153868790034683665395244287108414919187894326022745337638279728194052296782210028831739277272701994997960118094892788246814941411365144330637814892009716035907983996150563889692362359613621695013268420527225021706183522551277701682013011722831362372607100537804660727398167860293481174727298990548555830575454299066283083216584000697695309069241842408487969784008719778670957564593663916386773386294723613025096386679563116112040845295366914228945928749829698705472872089491823059957258023206452081767091351849595828223829580731383660944334292084107357444285459770054766380901359760774888090756759346674437162547499344861905596264361790532040458719144446309353774483876749618924766400627945103696717351582804610526003656256875790246813125968723522208204169242002931069512471250435269921390391310713168547795556824130861434023373300356323111746106653228672114555935769542807813087827432688280217603922794363295869219666599331238409250995827046821191926480922493328416540054268043926355686308903582182375461928267332560621068671039106633462036663459747168234836490973459213967430501200176093272700410612452243391676252871896674059134791718473234237939437986422543846148732613215527659890113304877762575036807804708074625448874632059768786692767203487315499420727298783574918116534649535220399510892738405003687350094756155543912230697175122881505650260073955895259984378256634346490719208477795032033034187855744946103501039442234028644288284603296718728450048253106921773271603605756496997571896555736817279548312778517615002083269031205512875762369000043817081371361017928842236211592811541866553599541634811688717126107675094532973722566430325485964343591629401707768238021541954303331697941565897403971176226267464835996818712075513423174042837781205191110539444286927862554442154673119643772248424253286715631796419667793033037999437928360841867030666867915988651175207491276666864139209178983681628593592892517995481143666308284175580747814293117331516811154760168386183807128626634496087751343459134767595164097998849749375778628690007299601305038283413614124568932896665425973179525366913125214385916926994140509442802815052867916073805473236530424568012514380573890664382675157498652502310699532833576919775527223403597117117544835375311261019459295994641365457745103413512968339917743135238914897400806021376901715523499843514061856483968203172603585158027715848261944965674976023331782562662781242518617688636014128821061699931859406075456281219427826135985262618511814678447106405375929877127849668350559938497051208264847307300013910049971822776974537920038380165780508592611140307528766102559292906359880583525306694687653879301987670693639205703114532887722811237004305894367891524032841248647129999385827072951415846665992490026730447579675155647741784178673388474259926392985099907565726755298529560737085423824847432211308392922506944681439901457994627833835972133176874485517246620100125357636656548187905620767160585888269543254069401888776479965638542461258446752576722218307358747859507034643019957017217244867383870871153490663167797321420987205878604362821552226414054588335314436342294586520766893256779297016364240952040374675020028650257458021170439753538977028705197189017598118463046406117723065014463646333950673531821884726269198035510930597030368696282814131688184840502534539071575848989565226281890084231706786298562500381232860232696767830055367915781094439768689218451218357387385380544621995723267938094496651870984861271729795469921326868435523253088021352460692842950084641973416018299552811631123206673399526321529330961130852443663192495214353107148953649974429909187610206964653115465520788857894653369284256986287897204859632921301349593766013722686258476327496646958514120394683440590309964862016134111648227718315418863633932760649920717647813259131149145080947340662101929460782261534875870401408141893332722675216802984283954457082765877809382777257611278831073717666566947817518554854647480426464962229790549338213872161125284874007532614490622724252902020883163660909709363702691056465119712639593756469150968895828882618864341549448607410108076957756591959586528720151811709810925572099021113068570881851687716913037236456168097379936061709271893959626157078649368526984807745504810873541163778927814566891388218954944428776898616848336889397806886428965331072602160712634594301904268628555039431553024567561073288944781800930034197949438182430559498474946863416439985091019454096381968288962133074133209418152371510883704768287570167611800473782817409524449548355930062870865580998743295735068880224085485991896541381243798060997157256129579610272212382874056716702190314671585931732430280501768205599333272784308273418682728993654212522581027633103599148455883672245863137583917523936089333735662158502977437616258329496602217612164395593460440706487024838074114736621847186329723581454329590169023272150034141421467913759488605855491832720501899227927011262842618598455111330173864287106485141981960581019186544515088968826704928167363613791108394874564794115722053789750969995516448705024309112711539861812796558492582315945067011712883623800667207938940282155726962199446591630654288161478255176027552395338951078246080363319539782123637338533871837688538989348318254845827412120472982368814060474599046612810330201720181827601225564000650855204624866230641458243535815964569361145833615724080994605205200041593913369882279954674277375517417518146801575723666745459424367216133211545105379989596950987437102249152558989631803898898242379382386618996433097653533185269312732219821631013108645129889121457997605183312318366351810691060090543965430480369292228694635099962600122115200824133075759605110600541182426235588970070508974012787652828218894020200119722325967873576396955193881699953491390569410705986763514660746314507699701606536672572888680602855338576213331404181115640128504910869906602929537227933284955211019709791144890142450065175174429238717114864644392507720131834627930667979733231229633428614003258801508227519513234397332615098915810071306364433964650262413592178365634716842379808639648623747922591384770762447269535515066605881475807852785605717885103856713219028607235995403109263088724630273987775300849003615664701961663881553727896063635535965046875383326388410044015923288525369448939907363950550352586469178408593043251587332109582152142502525201289623477680720448523251692162357234553580624780377624864832121822910483933693575653998198398847839757864325812346531972317326832790543726847499295340421854869884800574381283171998025235190909014079176560864364510209387127275926641360499886076478961300517570148088311804409613220781816115048502444651243574468731230815684894264208690267234295925816342154195864017749286594701570807056427014717590523380507656174311804382921000279710780456860224739588502984631562081670658004704484413127461400142957650295555809738599361680846597630158314117875841231358357869693098318748967347643033198549846759808819636639003155832303224053604600203918901915349124403657223198590380884446140313229911379584618374923716107860842305968566919363058997351378570249023352772674062863550250850692922487413998218567051675689782013780151894436753744744849798597167500201870289814217531223009244223935756958347787991877641073722110466660693485936180720870313726652274979997391098622910711374410917596474171006954564153642449034315063259213313072565633607742178298180234864134017649606453596310498588511000084744062074235931007493559444242255380301356793246173930932951602380437887658930676638837341747150629327368539012541217522037795120091081817984405919110734876507273590379605948030107998547265655710333646755675923101418095687273745179793206203606098361161979974164134140777181495578313119719753262922657295027389105837235002302981844696290684725657294443030541824788855464530238235829824503612130963453783364110167496058633827082150292990953004368779591351838659522369590388517402945774825754402627379664261523215764356972515499283358277847735190490058533631966945961405895710074034269336496972442692126793959050220107977319227431274209487792230426241625871375898372319692810529457125841021649356928905262216666686104022975038803102215720392986294914018439311640249458107897559082699330397529826588071483168813401730384326760244844956451312566772146857749564007188192063967014277840744840017350732953119938906573545674856213785981736863895345204908814203328866193760410492099630483254103671041167347959421431943343585709851847324962969285773860649776162965661875043929387513241311973489939840708135681396785358902526171576281033643867009709791708595833153890105645992811088055973612476380021812526997562475593949986004006879694431597997126229518080720265887340914567371112384076878936950081087267684206474150662936358473499325466686669262587574263444137904175013143149637809940644647542065921596280062714168648985123769563914016142491673227028296361824755459379826241141568542842275888897168657104758828962027464706715063980512646833134397137481485000791841152275809933527636639332675677096878421443118278713071327359974596562768450817464848386186435747376774263100752892981162097497635254935997789249519274436287981591632425597650907360144482339477504566096855160417738119143857541625012689843323879033273459075574974281624461862881666545106136081256240906599067171590107227706128045502145266593548749705514784004441333599039685795654198998860572484518698668478452762418574402443409280289061881067048102747001449681576887029623052756433291036815237608405336586668316992042783783490988545431175624947043646808786628003118803003585243828296751857611434823453947038968800260745797452031490644584631856425331873251448446016511296732400800831748937230979096809874734490518302771523406081779902643346729799857252008807159905223123756907675013173641336082244453431535401888419543604600310795345505567476445804239835794125718229655497952504302223724081808251529378986579724917175287250186400618950538217830411961826679782456080478538452579959373798536485570284475274399787824284057859579119614663156032678632505749971089990394566226836833335763761007800869990905413425341242268532868957188472650878299970643041241435939675333095793454350105317857183685586327650427552868116393697240951712407341494213363950095184046708796553707437848710295378571089796160829842843013458747597933034314564041827689386209976541366043217265147523837066981563932352354792815366322337623921678929574131171188110367077923364813603041248343114429141518585916287639265357536967782343982970594676975840035309879343067261811415845544341030969920494628243067813964922962709724807757093082642367629964796669483148539036546475664309520677300393000053825906049908864009559188004209446524623575038489916341101574118667802653125420059250227610715705831368720702811877284329527998262371902999481240172325640132574295668834312340423816373584430254089709135976240302877826757995169419317795682584091788992108192805276658447301152750120383604884406238492249073660528608813222994906157045265720772127439046364562393421754194815391710060048538247439158725368528493884233638103134271839979443993427267243514367375917236989413866917018113434646669730279245362681001299061729909142305966165490420247023091510470756915020322350360978556529050241015165464129446286714643928106953745761165152517423794399289283098875395644847723226215906564197825869151731314808152129175843442168142451537203408282401193811505698899195644296373883112345081392041362662849370284402376596873285815283234121084316032389884914914306163889646143838404502902485184683267813913108778290849526139465609960751969061833146822196375361719574131182782791714016412761254350052014910412794747525986874927471710303307627101339700570950367393239335924273626474221945819841344855108082597494725329165134886680637230280664759876548748949585912394254975875919351450817774147429596352487693596735750522944049805392826415682913592309915430569871902737212523988014545457040702454043784919014852150606343427492140202562715655769333611124267516568348313168361443578960169746256747398279582869891684999020126043324326352289512572776528041000429687520186972277364891860212862560111095596497932478334738246630039240779361928700150028393193802926512361371098850091053791903323451636049041778054705449110385942556486533298114018430592857544151292022572586898333406925135681068927539963327883993103417450717536267804964584242427521566811309759300568157373892796443523787878162036821290294526648879283439600906266109789827537022331991841909791909996744991557849210319252892077536715885460838056024574446289154797309214549923562763739840951491020475532493945202833686242173481036359042075701802244555139559857640445678908133625639409443387509070809989354504951341249108792081923043555455939462454205295296694248017875568627982803600809898599812576154155306637038498155153568893312598041053287282091526804191884265167137533069669143644810957687204937964522947175748380030607455834115077411024389523705106744830366428358591448914554229811913624005276771321343132182666895068340683283189013022790679893231835931478895219643978584095273623652241149371673851504179427180894961815179196040298279015031121011857850660705679061924434727113052521514832972593839150663448700330194023385805107269881498873086227644712890884455978939432941983808733089105644086302828313001952514877377491172402900577248610545217406763532361826054019516367856649175052597132771129786710136649040679944791706599448888427334415075039842162360240330768258265600984299733897343964925799362825265943337908230016304536749048137658532691393035617619878821229025411560643444426718741731863456062877695846920944715490503349222356361801212541778904137043988387223369561704192767985791301736116483890516764135601319048630897128813236540675062853678694404536246676680015276391036188927221554005106417770999898346250763333214068431130971206936306872666275499269565838360584026558607120444153681877872530974690247477595167282435392014281897786732139100748764909152063986998389678265925369420425050094489001620366491000230964816571862939990319254286906346122365128012362655505189566376557162100321865927425965569613234217950364201584789561747794779733633049475773681103328198606747369224394937810280535946101989945551362664878928164854323718712315623721368553433683167411904987960983297201045013474121738576382685918325278214414999169789302919804237542709509143121836951623744765934691802008003085408042077605466540602635938605094000271057580051565746484152999895696480996406570134380973886605991125462284678608873672129976517713799853502458949972540396079184221521964826055174261817511820690961251579434161853029189121133126079455274322802062537548816593078884854431513224586931959201023758903069935597262976398776116006264489745076281833340653202731974163614104088140889011036539114213895124854583681750269634861180832854921781535435231875660125451673722427096440970796668747139681862836147754271314963920326266011600185558920713120199400031785786986016088892187286538761830888831160311877925648003398888216680617707093187004163893496749027491954837615908159700263950893491610275218836490151031592603838779314020833657398658145638182627581887149338407269040381910541455304928962351254709628163001216309066951605634594856969497700040649004423339160837106249920325450668562288924447474363696038252265802795483726086113340837001052562090867289795054078168714837139492024141737235041888744798637345874718051833585823771238890757469925736080831906294930755201649414333458496189697219469197426001495410675524377207338628656557047296746074046522541500253831484326818696707209068344717875295205622257091537926466535805415953351265799181328562279296401496648958346135372459857644962856864031718007545214298632650454256298303522494008056280180930393653095088800023237909245996984777057466386469544341566479858167355432631462134113860339735010406169612496730987295177198616744864685228213619369085911724232691266153133947595971469808736939008112254830452752024182782611774120264901363667640486026587845053142274437526376757548016805111812683953175767711318344113095214990726556008850626708106120415516231802661579519848007165897859713594920023585768504359307601266617353405571476526524873845335107163960559977395175494483791072574387494022522619158279837412766327738624418916837684492760125547778732394169787471939756724604074563052707962582600916180471019973085375679324466653298274346198241967822817182166013860446147550035412704321669448814055121348881252103745803818224579889769812785863558522494183752703895500045189285870838490562981461616626796472178679037997328003675277829045931968384628068864059654048752790301546016115213346736961913640967580624366841461388856586320775032366431237915711920112078191926581364265099031581745209171598020377706421902709614942603814518925490238914532902992573848929316488145245588097902071472956573384543775060558455746212544510376663826310546186520758146583083232958948566481813122989647251887416749298965649827285215638975010541142209827419846036189516215368504104909082393005957028732880637758274382641781499573026425379185859750650609498334538394673650579069352994745783148043524483691897177470494005532438605111254907098495710222122622606312033464571215236213797658864111789996649823129965555693378998942639320910838879258329303164643655137920293173068202497295802479313401059845024651505008684233365038753923497285579638054930194929546971280748380394677957094115758945374905966825047565841272283563222516097108610006667054619982669033355618103697991671487106335278896673033099913409465925279700219378948970634528062260569116792884814951473712126916964370499719038566635699181409525295030669649732565726212195386260593173690058961336061003790439956685053396436833853663702508105888222317984383513035674257809315949907804707560014760870807896893672246714559849784112909421223638705164551102304088878071902949712051977510575003229321230217047352561786184541896637978750439616307073228151899026156431025438909980220961510290838059755555100441561341758134094675152680564460363439088555348296143913371236924796715928870999071232605142863187943026935353873874729127862027128596685904696632578085023860358285183519690871385539394707371206509698576229382750439581670800682389125426278066701306542518838785064659168221404075712893387409090551418851197621412670254273176345347420475643583268741335127088624856043989259544099370856323546567239738821545154554554012221421747374398769732477905914997243897394953121203024779624280688292774103573223142269530351376671399069427547983850358803704479082323090455796345654984815829901683356747177282608328308536764133092584484055261806343002917107291148070751794436658852836534329842471246136503310523678023362341435663594148487683306064404155076591906561668808180062219567251396278527253900137999866869876648606859116147583624221857193147956990024978351318492064700066729847454303796399983992983704353572875680955679894066061397960079374106699960923175066714650621993326028404773878537142107166200622732596504417690104811185719362785464924464531004895323286943824203813169631944430952396300963686359382913272246367094185730508070856808060985722757575907798724117994307319826397051581449338392641304359019502234355799531237396922012915506086231000261616424425434955644528599988945449633338415750747051657059129768922949901333841917368789762494636188511286072968229386053702302744523547692323304166064790272947647699269659892166762108158695346636626635071984742707730522075683822576636721055718521465476541168257186527475269325861312346569842738593788930155393590742312627532146547670120541070232207690458216764028032814018170225233014764936699520362810375730773753183483305706103326300008045379334468826189913500027724690308532774513279398548322519075492872679014369000795608410382953859017784971099644986774266323257112247727317571397032871509750672690493614077160780465821587861433533057088885049379806412467899445897661721770390627130915990076205636632616668842312993909227743877709285431249708099680890979914814500791382130419575512267148650148395045784214341249248679162091445740266373545542755306592266481712755065532979714811652320792833933479702769779572581751255559668180240689405740478817399708989891356581094037601144132563841649867354818606083965517896912532296504940884163742571833874787242984943654690438240109246659277881003065381575406357251919076942759814545270182518408797698890881229748166170025489142516719942839948639453506270374591323327415271539495142681048527202842476570063891348151624244275475038706066736630486933707651705052925104200530540705330422270008574741036172080910210145804847293606748851601645992505779328315592741655191478203748086990876942235987444459333144583374027035365935628467318575792201303046540513741030714799520445355850283525136653790501967540742181939058419150335884446172073142722402129906255443392657543541815634839817572291126727215671368667936449634876473678651282802388540609999371689399169325880745093536382797140084555376094805137427605927087357949020836166017224751431952664967896847021601041113510906911749282611207347972260456346114830744342977788367591238993235540510653265753001190576602447515781996984693938773756754919324640502792956144791113129008795805396014228329305370097737582557799176428856624493307494571210548834977061833469352445171538613872094204017393332175463632840275624975882681345055154416206048317796028808050786525563548697572812807009365139201179354239375825060472238847321340316055695089821131187615888973920919936712645896314266923662951217509481240730607929627146667710406661386017534505546933785418570576376613810892578798200723642438854407814370022029281308624403222946606767720467353643306404512016250920834775742865743469606250265123548410407208345845046078406924007262772952504863423014149081669260205706391259399263925034975046438493465927018340785863044122369600464150886035940782133894188994730628784527126873455970501512646299217255405819572735629873678933714019908509837836882784922124880898657173216217299173799180177274750976717055229731886914011896857792981415578016188531111742128807721616686597137045145884223985906861139202009445479194484095721616397244225256885755621892145587459268225206394758037535231713400752815040004944646955642475207190652488962351759721004035332694699814438010020929298845635893520647694375005655993888544336508319206168554556156015653071733127608668592405613824483274400392323238210600009189267748507730993948343480071431966310467831946839009833513561632369256475366929515145974854098905849082435671352394422193667323570881934387415803203559240396024236729479513341171139971740666852385051111951828162779405941842495951966662170380457514977845670133921614334930964985266841261892318353011167122197253225322806114513129423198400945750897736010902815358111201295797418446576502039237870506385276950318613544302278406452760269820173219230959181080635786198547266508150525588406592379569682095066926320324587730201019966042150345926036563996925535064669295582233951438640742486468159122418623387640322501421143641237131211973075494048929294246761346921485687730747092167530600431442780662571900903337635109371862280193548510431165943010757371901995458090419539953793295133400850436180371306747834108636704542272049092777714314062620292416379298908001244829112233324194700463363647901637336370224516724750790646992896033179163887655375222962275899665740451660884327618296804894701270369088219312801561280150251677493075224962978879490165105665393349994918188592856038045704405678046704974172945627940492901345635923357833912062477261481456109561162039146758648029316640097847236619453923875907560204457729359213804685735382706311819178140183610426845962771632103055921754774925680034559530338006689344814646277415367662530488126365802284254049796635383638005040395778442575829330247868802318680561846025114166476909557672835981104086079619075043841751635968836952880696056949136337657041673931002029993386229036991604094037874601237382544309954107566845181569225353860086468580504522073800047053740726422550945504190180600098905091138520188554641418740953337840314046782021222379469517525863558384372259099604074586650140237429820173361531950960789264271721678018285580262520696412670675095497324972953756184295916311715103033922231502489390376390911647892264553281125386253788917688150478641486853041877636173724875201263905819855348529156894789504351837911503660104086682157573144527890415272363374558012747105904589143821294169512970119435233337645807992755032673042415068795323191235972960981250681466619208608570788808594197015079956150893890372628460798576551054239850967593060890690578186484719755553411482776890213493860835709080797175461378201587088508669371085129595748618825819321308498728980529373338182336253252565077383346329447790981330855222992250650588082584297800747382250019618533514417895580004067950878900695083195875608458663339883931541989935028941138441527788163434865635278309378962788142799100325133433151323411992446752366776238949087894197920970869057267593632241913759100317824388703811282183004121878971308592205883231804473097762397792582947586680006797272605162978767439923127527510908486921201759088202453080130187994675004514293315174396975424406768035483041132293428966573877366217503912482169022452189405240948117586509837864132707702794397983338387996775646309156360382316259151642982204898500960535473422210410473331622462712160121567636119385296838742067782610493815786760829398475569586363088021115334885124679993770902521823974523959347335126444062714529657250623896672327510647941704581282622735173603887360885364685781012990435675420717746843475075837035947999373433239376751471379966340477308005940282769582351217335177117541438430346004402032700823314143691318648337835025997487456352925280806235341234438541671876620270384072112847098175777812651258300024183104181503241193201334253775912135240737385358617281535709635280015696267311630542329615559273587430362293334253901882792129420680831507177762976321465002150488329538589388712915939250307757940058187003445874563977124275354869490912914169630764811567487640912065753845107501267924245178434796406701273309623391373104510894568696539964610927133342727779401233937396317066887206709992336747239848362400608434973922236948783055466730354469742154839483136241694239170627532604720217507941932884019881301421204614744725992083934185441862103020970891937185793347795945835603757810233739394440697613155567021982274715300234006297955726057895283558934205701747942290443795095545541839458384419224053176994384894290581483767701053161594158154421803266637167193731345542750927159311984405175295173223465695743401388286252941483794322014179157023014499979784892773035928345969285668061120235356007400210910250891651027560996900801053021944104606281439798603984706495712828035360359722722018100263935304391546011314549591940603365834478470393491279039438672382041536752687407532147107072024715077959712034483345474076886302200067408678028370925835608197537138484604422167558069161971812385656216964729317427347558924721410982839854626382051250245248166062304450855586897468577015340412979012869920094116179932468875940378488308015008997396829917098273279586165700433274766654064400013955265759985513467506913950146971344307536277085508133244381252322855418497393911707169898987396505571956708174159498426283361258972912836470238773104084619549789891688973072609257091345440905196034254394059714728876096988278163627916744553864001235537502294270659777164984102354101698250335935286046159567595901455542945621342435291148195205540357378510111404994783859023591758011623909892580297033134747580056308026760374520601023335736402021969753403583770785989515236811814715701320297095952874168713683086626300121016283819659290450944826009404472033408114393781283939084133997646864631668668982934071676978849606583628951487555444364090790272085184679282416565820588460547107803439425391847021208654020153267555093224176730005598575345959272249420100656680715099169675196594688348936598370998618673114805467868920253919487108416330135707717799763985126729433502762618983066248426949923142835362721925614337572478449299746440911870147442814167638119059647970942109752427457062848916698567698534384662531218888076702123938772796589889250730287521962406768840868618424638674674338506913448951388018166855250166696049081754793320933838292272414948801010118360087124419078612955204219839339753097837427053944598178263456444760730876345415104207568766493414155651054300762086185658832105082562809160433604100739957222838196623951888405642757711454581164319932387786526222103089692123675105901674804199268973071570664835092621660861863116678509874389726956801073003433736794888789962744344438192385457343775873192462739676515612222127751406146269015550545044635041338074935466340359160765878305076177472638352981838517324773135223654540979141278056222135984161147334303193227968863362667755655560615673631654418071303855174048461959842742591676021537396250560231053134504915214636018376437201018712753846086092018840420127474616443577329572544226882426004000793216898304542687337260108777290700550011037837136737719308766297499689418307179157873986998796596192553959409567998819365918687950224588151825151712658792340694542370143073846490903356209411881145846719484131402412581348359474366144115794876601658839467422194722809510547226123770333933634371468054448630186993448867371487926923742194663881214756392794068709592646846081512642567265004748988792695180620336278982716665885602733046120638812019110692779172348574422943794149202971728478936240337090138879170105278831770654146701107297972546424644070681641432532292998976755990439077759418110831858208537362819052056528074966648348422060914704863891167556846044643928832361074216977673439582701992655511491200115524116821873151556340189911562944659169950820333796532806436281511544481726007089290966408799337853796298614405788464062105792069587771379165985152384613461169978009199251917180527225724465656164099471976168787890763474534425687766320288722492704735480256676540414802500981416814274863746877214199021221481286686407495739556740872745925679365263944439375914289087928052070926029880142699644251711819680367033734258095516475385001028128947786489827802297496265904721863276833807089733896839507495493116176181891947257461895931907066513262689865541801866483363988156898249849348832319929057974830385758419019286919151834470923733945881605327664960463007165103291070579237240242627005416655292657140651782834711998468029501210612145775364666044686312699203165354463836157590038202441617056953214311498489180442151443928807806331596498083364192026094292047910083262696496181719428130522066771582897304123009830023963546007853972293569571564070693485601331715262518913128186060648320444567076376821541574773248104683346466932536260052867591046429216203527139818164206732863522516926353383908649603741800561091413061371409496874309390362362589127706677247059801507592042123431721623131678099263533593815617697630150875684882568612428248081032245602695789319200216326843283053509704937162998597928864836688188533633435489745155812360617305751170208071587955539779524176316042818676849428885782196693072462249478635244940122396510468623268029747221616334761259571939945646879210501399673487865973797255195344470247121846362163315853169753983543835681978972532363158243819260961277692934558502507700968377161041109636012373379882896340096660113260337079594099858087085360043027973404475970894759930227380767667556704710944982224915590886221253420423498533755334122623598298201750261935396803382270678218700659690297052105104148974352762613409488281493854739139366041064729917212329649767877400112468707621098011693721903436469825265024839588541215619392769227872493304398521371164344624095748457113692256549188440392715603551599028645521208420353449342493330627823847435372411700219939948218708838722194836293719511095424298514484111978196931262546282482557505997451116097348923400072071543309356529622712723685277016821034956042717668756425627245911497124746625144855343041018870979037490214606032357730968849610287522112715747298057324879107366198292834791281663746741556467988239541978451535443764546480194380394999989217383972823670315774116786239109216841926012045574328978573874074200344257375533915684436652108301619798030145533216652372124327228959382223680191080975472860527917251222677353934430759266943241011253198180042795370001179086909235997968436280900273727254252587186213965017638779124193826036727861714100528429645182593913709450266671000529629771981141220079143394821858214222130002851015980210354076158404433053928641127245712316201223079059825115926471046921173194739254252044925985762434340281641042375111903353272031301830561292071241168677999514954788771055842748867815791609086446300991962575411020165855652766705538958233511531215731219779735469039247424557705232063149000017126403314609136855925196377046218287203430390836834765992682824418921533202563344592919826728215292638106221451669320547977575465962404843493315569327914681211325834280668374956098286634133565307365188777601694561151842234185049287836209219265091932894101744197502132655507135957634916543148052875670408455154170277452736020923812314609008952103911733274484273499122198882939090242236726132571052176226370400477276839229660875704809655370071776080314096420674622613623096627390966281285895215121891336205238516688482076038747835794143847650519855898313222012495861334859161036879928315156857033413940832911566068641460440514927217209028419099304104998297021801961496901879543262802326531672909283934256038949955398785822005934747465238614824135807788508409517499740728974471104117569265159892035906337226868205851197829248164341281698927291458452962250955416601585113379692561537227995414003089977175450331037272075177955832468633524564808492149395938578822323463999410594593520344596079808025381577370572565149967419538220570294187394967850391927835183650806011991720035416179006726913334751785514009559053678564404352796446028457459204699104623135167803878461326425006445906052523170966109414217494976728836129278650576125805612826218691129805294279425671508289415546999020233458564731766109743711697989045166170327396520826279241903300322757521104998378339752866293905644628066591081958096203513739755076344066647364012322398158290630631029395219377311671813662656042546713913444567104707694144494150510160389287004945519866563029010703787493269132535351331082582224528530230975813820236703835828576787576954329174552553296756289619283210075646672411351074974013669598056868421092714728563331765938475174382528666065186735597579312881727531877793782871560634156073233188452965905091524395434354464102982694487727438003009638604090711016721758572429754049474273310615573435307229265849681922474626208750801403703013098632133445024172988380246906191693540194686052853938397006515483634214290846630671440132312835397326140153076875044913366270743404943373061188689209019032498664403721855160362377736055199135296777878117896905356112323662406298534250603733478691738339418893420565914595579803217473899406888511106157772188064152207362986031380394935282591188009685944973413900359093178652395212475890363410737448484842689279577253192704484540657311211174399403127669959832835180666477086056515579891034893455651189112548530828578300570704759093882578120456558632698267509634563463404854542459348410034945852317729199889389214358439687555800291265376279024274098857652837956997497112335424129330792550311453263465521698481464922660141375913313241230174942349436920580747274251859552282341048845904685615554373579048506225301205418051327027559039163532912583242501706641592584121778782134037352707387348764640060454820117852850765731934800880742657097695477943240450310167477315316319016725077616895262221953999063086086256942023186428337674116090015934571855342163776370319071046373565552288730190959629622734159638202199357212075902966067392502360743289332399225858282664872786015727531760942131217815921320674511786446745738612893953956532412883738445978557097634847257874429009415743747876915148602551236698826588649418813169632218687486037848769131850021632032186342703528058856225481378029440437414678337599393858925575700862315211305538221467613203369233477704046939634529373987556146940026187490787792238462330217768352108815404794433503826987739460620808123488267457872957234616801352029130696211953839542835672037275070554919815706286406459284883870500757145135040993415727369585834976593747692029267393241422710747079363233073287182819015225247911293887119458888840244725352673519181161001417039290219199414589501434355049235274052627780934451882046110405649811396092834641357265924939092073854263506113563893159083610974046373636094667537265844312161367261887665057967878333628283482340774035337077254909938210477229579294472225083640152288209589050767858922573427417529135273880990891337390124629179466521575429710410783241016393674997423673329524164211271184322861731916598498843958970838347924436767871633993970374741344865994743580758794932482844639549799962668739502127373679363668546641136872677219715037803144881184449559429031869769493951805970703442963593749997939254747135478106817464640217046913802116410811827190282031630800008677878507598417156765878021098698297238018572597495265925267497580701503023786767182561522901428879745987710966775809963069848472414617143857971996250116996498590953878533425358450035612777151170788704398275039915412674087133874420644370125933675039743107788889336451254478971983027096988156212851238190527014653346612819550619489981054595563486615416572570129789060696590691600318228190600298950391505572572630097188393574472554537739947765521475679961918520591826183565390018578013674869638440380115388213026170728881056970142962643054875069933926188968379590721954731795140068793399004483591466743675791793606980117153133328819256093610888667450463698314354333560080821141892251156571667415236079371720461185224418362638204056982464837144940047888639647707601008380227163583375027922763401246675263627410486487622928883607766387330070972951597409809213997683780260503911803198042176939553247824035848815869386451906431366536059148236704563949971834571728899060844273227478942687175485492754935897897105436472772620110996733502270542147039638346093542103365573182158794899715451589785958900834403029259944323385438390656563252569626965322330931544956095059855382774958071941713191414815357275598620124885009527077005561728970741066335819389524985096833796269421268930802302673976541970694227040107957331526461904964902392014474350736992352511411279332346514751618945870108243122839898562544333932360093968447134791511051945067846998051421044456662330480338646150402164510596484922146869168946223508828767812417725541060017548796537485183584849440258800948114250808298977750506072278437228466780818961723535603241720634249813060048789454475084252796021577409490928528904546772092811962839535491263779501884001927185753070489614480093770810499692376060797332593988330877226767489111914583206931475172111349614744092472402994124281864198400144782343377646225385819908386528274722766337143084720478353196944635350973320362189452291387810849842281314023765401373999406374893480350735553936814237983001588084082642973008051862159831187881380546688510847818505149261341010388916893564151635923319724694517905465997711763363192856354944630839027593717799656047392753636567778906758470827662781397431818306239434530344499674170143199096404669807794459477774047247139012265288878198963689611019410049291545535448074057904971386819345699262390958023187633554642564320648801728586966054840124173448901038099282503450921512780572643672826575173507879788397916339954961073183575245208079363307655202288186598249427609211519388435494984144079383322210498269083556737804471308396212847827967806995545893000558153896262074521072939552792391411364619298163788525168416177251126484325945513972194963331140382938536826101875132919565869279243287141647271499975233814220732489875421304348344984372030281071862976638589855128331532058153032700823318391243211557177285349744845604480068430104533517667294369878546196296340952580455377479806700682351397227766124364335021596425753647853918367039712129385666012389555624183776659917553315586286527730027380704287133241988212338720826380255009170061483797102396147480396843951924759053883834438374505793219425231204383602179837068711893205250748949441234088194175720611920082016972236921277205055737276330665584819072253945306886320738521310288228579668384266408380960962907932113806241467712636976087499316445269454127010545516692582442364963164299622158401836206005068885913716684877761748709484272550197498134374944586016010926195282825605406792373529612481324096555256784649685863532945355784780867212697321314053409780009968283726939339707863231104442405076280094082221248488456987502769511545398943406937962068950568773400984502404174363619195512849634577204296875356340334411856156298729106392918778069070569264520391133777476639214378879440121922474239591677199345049852740195816084879576116993800465640569198554412773932684635920682227862120188017743874900468206639199280243420740413911952423202188497627856518356093766183102064894931933499512609838469540785771168564025736920899389575175628001518709912121757987750153260871830212765438982413276367625626755048696927934854705188689401181453479426314471801635248231129748294884061658682000054913051442065773891487925478816218196960251620774075632500842827526338384805094885096758448846917373125656666438389049851396403423774686041380721929791051058019686022163744147455271246018115774496775466611694862017437847840087838618197087166634337150499507874413676740893748572841459607371589893726405402359297372619779338144412888784514474937059307139752545201569234110817553988052249293807935098082724172743274394870395911554342249229076233121544738422373797528380550700238664173683139520755410580575039954486792018733107864680385518723646709214160016201948757599210288216604766797708088798585384461467394420899671325733439192473295849425273906977280046199782229118079472072523243634823099776474448605182065114902435707477696427766874912638164518469635368628633313608814769234906135726377759866782613229509061090268724506846514649199851423021794530440437334078665695188685922360719283580576755751146126681605604630308764862041701440303479497015697642982683783802588287928197036484151605544582271938530507429594213196192647660779216034620958394410972246818583619797173371265681542556266062483798492417252150492242260054595758397090290847230490728684457604041136710204096450128004647611670814158794764072336812494391455788267881246351378679699332819178233343528121081090163585056759868484111543033483294658401405778924297111980325241399496024864797304206721818099415377378487872331431658482578434270786061834560132805019434608290065658582975059915067263318017686465304014878723035089517772072141659598498190485224432859430260772110117929051314896318213674917763877684954192727923416113983894223181844852827872907292434763045476778135566736854987588439943178655833571560955898495699665710306361882382002901518405045093961206015947869058914021709200536579901068657168563843199076117203845829885981592131062738324799747435864330347915170704326534718324047330272628174223979656870819232987194975345464766677819496611987364468685879057350790991096551124661036118656488336130627164398075691215938702561484648526047360029378356551020158744562440526039409527187388938112027897217886008869398170192354177921032101895217880706282091918619593726103203653993867424786745089935874161973650623390809892754412173851645812845860124038160554086787206798847431420202627140842586821077316739227374819209065734413204685519554594176841017526495827451240796416573181555570643279914076103655971519550298633581547801530023292192884972452875450310111644729055889963484977618677647663294605635460951280446564303185059235594035483979410079753099905279058008102867033895636231606287660418963481805873562170599758239177919822829262788202375766485107747270799614443301798986095645132179909011636538846446848882947228121112659945700937526021582964823910585773521810833203498506434042613599100581847600042201416462929052363734013948452656907754072408105071347944932620130874241813636217899796986971823721459738066468649061218235882720714117618811763496941238583884030254035626719320697139542707999414310264749991292771429960559832871059423341983186163486390548223886304401998620896127790950653810002185992259928085304275748253254869395783978381272295254756131080940945099214527452694936565843422450853254160645326655967114800079907368638682846846341790771769721564737539673930878415364289207132287963501183782220291466726722422434205024220027915096616360957270165370331373477806687760952045132631237055921382036703648526456742834167565857511736921565215452340346680447692480821460681641162457419387039640271865886432806974215899932572785458535052544264507332707958117876468534154512347571137207414797182210360444551083203865741772873857051211123695479659611857412396856008089583953478759487113914156603001016569324417184778240008439138679462714531616034685295308868634087317152017310675102948331114843852486775798259380714193911686904867805870359278905117895990274790727534740387123156436251194090585180601009134113703221615537045827158286256064316428260774762819472058207457596296563575971541801044892244915643450295909455399265626566193945599637128556479545609133532165967354907704212652759228099916329646411991684620632778683637884056516343584350234780138003195940288816911276225432571113007382069887713596423744545089008751894896276367919541893975280194890467394772429126448158160577507672431531065257586818622464031258379550418648013363084497563079133724292362453378077067951951400263002723801074183917629906668026467815661280867915722431350275496176161918735803756878280166873582854625799559087865099153675515366738862063831207077992637622180184061998427600366597619890165833565638315880190685270892338061647389093019865914122477313673351793439621921421559039762763996893169525211424282604968927126521668119760148075376257673519241326715650164131511732463607794022476759469462027343529889464610086728459002223670415417395032755136521705714386088219918110926914418957813077724736137052110215513306325759440441661522834230886797806652079382622000181249080888439823289681056729370998850099491055163810246592351700255670885772682277018057991556222323852062730499371056842914722419800212522024317816280477790684404870593202744053546515432730915890219095862427994090596989746621034638513662278055849456984258610891322736119596584745986561053130052858713644725778913675586478788146958956445908831108122294652291029061117465355429869994163894230039815149828209670327725587156231096271966269953451891150353977369273481887314781874740507472670657085894158392587937669394160266523046149494581802907845322979927902524931430087784746123657634927144554818211967485026614955444468857961732757185682713113717975409906691717018819022753078206232666628729239321000621941338608585160708829342260063654423643715913017275436592754870994497664592974964389282550538528613749321778195163913630953412829476423963705303284227416064382524690258534274556246119514428461338616669014962320365370293627068145831771832175389328613649262357180854615181124543973381943724198527997336079046272652797684522727350293978302403464971806245340496989825955130768150393290110568075796210292074844851173196625891926296773701446901254040841915323880085039280870810139140660373453414993342092110961283386072255780043279026956170653686290436300401430318221528913722785168815891612104775909573459694259407266343499233781205633077000793042927034840811426316146260094984126240485423616649401172855070773393018582383081181697585071238453697348008470247640229783781696508903663971036026632785244590488324394164093863287921115736385966013822944634159553705790589407324997224084702022096117573896727415793719454695091591675289002666199015358150587156408192362037483479831276854789184070410522703693904635295988760699883659919337211478572035745693438265226615407145269034369297213351904749374568691840475776772193336873097107120202230459253285052393439566743893799303860986260793412663958596775928505660882254850318703123992871633195923121376471256177555963011728267140150074092319206889605579685624943090286234767243791614980208394809923493883789559500147191106673231907253282342609970766651031597939328856208122573720922638875198587041866348179166512271052699902769012107127266186059500955536035407898397842415116311895555343440736147566839390940934852012049042037512426627589722202281128058333318720594169164496707378590042676425392555710074961941485360815035918065604137776183575845442656225084471894179644357981478331105448761654023075335688137595652434021522548832271601646371848660300793054238418335220084891394074750594126106011585258517096552466056713258918857426191774416492767425937856647831964845451241742583404942854967244595543559489137770494103141831976485764741782145229381985794426985197552023664807189074080603713752178932885808609278556341897305258248035723892671087569172052800843270703065662929627633879902783129009066071596001584533194726848671729620482352326114707371294273904909282487549600531987566184242923066628936325817503883914761769857191006009272405718413050908334541845326549657790883191547695760826114773114094144122323296175765913382396627875448978148857437081180091075054076139936354560477557494319869544850442897972381755585534303797072478692582964834428743257924224520931180954994807036601657714412094700879994215247081504968097359834828987644656445761822959827501219210883004343232370119634709927042922187957254778877479486423993503470539690583739131831054121328465029019648499126920478262441124996346107762955527206260548088307155879136514120965148946244265749398413126600367222365195833934491531260265557954137434486868923407852364467458403290444512576004974292174215260829795127449773889391606449335910628739942558159934431819766140342312598566084195626474639218497905621783606446047947682105488763211194206151058772561471798327547291377388774400780527245975863219303511430802094021744517763148966207262463205057437184456413939892550304349560692596270417469336484708212347872418217992786376815493320626196485731450096979686614919407878453847485070267329614246262402096479772219100154226730621855029827797931591292262698170222066336438219753376180568466404726262314922023074444170948797096380621524703575179656971991655136815805140066214556510303899027376655734080620180460626762003577764302783817037817386650577112125630713281624753937085240570359987113927555340102151955045259181650345334140851190993133956104201969108822901923214605189788789923172055380225694037302085159697380535366718771974105742740015185904335838723979170156914345060710332097155898605164129647421483135842583466774466532378444686570375200058354803820801193362404015235740161786580753591960718345813622513915475902604736652744042481827811811594496484682588861789330274239196150099367477283172085938740667982513512347034075149825341457063445916624837539003465923313391784695834764274126475764219857998387577448626635138895765029001695114427184195707619492362694616788681508664044552887717640096388034255984649637669533082940689541463851112574689174119514043749294656013551344240890678017988706683446260818906321662134515695358945579595249795404288033084901680205316213379155508135383011310148017621890096043502723021655201956966850730951007250468498777442327586446881038370337912831024714447489374027699473010601769750116567750758252193580208082375781463385256936397052649130278316393911211709584874399113325573343401034555076557852866417703064375468701378930990052106886701382856149664205727702090520476576463851655408212044437304481759255901678328132080068710689479596556298052192649540931741599194177726357599908047491390641777384604602708953892915886440245470349121975235797378382072125372054934294178633414146608516073027150032017662593641019173381583701228643346652771543303252257103237260518732799188474500867742292556004333674044057061374657294058729633730359950513928281650831120265180571943307292157721357297464340202081341956779952063069413071940941485500119049547979456910629238953358611005917602377231305109697483426157532547808278872660882781921248328912109242524599545795633002176781470160147963230890097849417487413049346407080065389454093876082704511309941870725497694108939698451249209868292330959322285449408858717199561347657419079997843871935740546564352790079029764340070050233915673240509630822339536150140051339024746652671837641362926228497332971734972784202569977901814122929713951039115388051484154275285442380521498182559122451707891236144485097829806813991481053254822076192627193926184974085995341124706156704347232824951211119032228361362622855230575477276633313236623535526730816086882548623330781170270956410158948557723872511499602683158778700120074924436050048077938936273458402577848088081879597074008708232457545174932835306749124857428800899410297484508720911241471265746390099981450619684659123051998476956011540417741548888791668906515033917620356456808204871523685090108186289085171097700281527869104420498828634355525318973491714824374454114130440787614943184768635421607159260835866796682933212166895404420870592622298481258470873110125300368186063642570650473612101101830455267427765614765413765469951097968572254308577286724986337851192907916290416172412308203934020721324107295542763781531927804739132254227021056547353739601773690732379763565765097070085699059311963813571206246184045604541578857267522667363656307081081891004962868204882200270972687130340313549457827661394746362163191394613962877240534413548132802550511056891254278938903999611133828791951180662655116242614369844400982978176744167428609805517119405449775359718943607190248261431710064114701441148502294793697513157838004614797750701067822238198741397242775416358702305026710591175781970197778319843595523398575298188587556193064222158046656571722787396469757320769644963611555773941775542498923212053559607107937153578649943407490528667380911907266098174784455206456224854284241372798612353546548322625822007817180879388314301020834295458464326944447225458871196862516448171209910069151390413533952212426100742307346358443648816640231043431572123026230745728136396171413054343184830445331879849640496882557786084945803325658770586943151262899577733617891847604324780984165170248695850428819815966388640363796644149413490268607073260373180852151569957518648756332831534365886490706082812037588613778997750583304100637965663990023817870948861925613359035967012871015048192649590803545505995819959453731306463663379135432354600596981596302991174932975183928094869484291912786114312365641263995471624941920558973541563044912625098514209381092582569358676529126731035830327248250454248276833049319854669342077487733138358278515023031261736748046022414907841507312169861379521911782016095603524175929761383465369063391544789611916355989194311094868009042331013368616202522987212026654530840104463548477984694189795694979902264343869693736826003361703516734534324666034120287238040891678575962625616246043001290232288775314659753094378308198773394991952723173389110818401809537276280962958047542663622262768243187127280494127547207821167027776955549532321493869747427114382329079148082179181145416799949040416919567278674723774360538502172811765562349558685279409679530341511986809651314598250255911889017809599812529674951918591474848391824827489915030137086166426758436566293700821866978641027097183976220614759115003789977531425604759037457181470025021466547112740503351954929550392799817276231722019198925521756541972540430093050206907073744700238368032883583814330548469314473369646553608793189418479233195298832287103762836709278312731921018328050111929507563595018411111381250776707197932814376850652343566912091009749485838677619325916001055432263283512477757331517001457067956932548169336404084015861742461512563508709621177268740842807987563898751097930069444575657770857302909081403490515356832628171509748321945493162778600692728206107746156431477222427207012450031189026683312222717171740777334938854586914747606672464751054048145713336832132092563694656524195550038116400489609247230353593157815721138601413534546761790954705524876752208089900813868186869217824600242548233528172792337526394478174502105392966981570860392360704659639150544275103273291524298612887376233538436050118154794170622915654615690792760610861836496254733267009496003332170619593419659532696684320091563609174878842224701320504750962310439976571805984783623180523138484880572440228841563538898347896269024568740282686371923249255127524446022447923596680019679697298252799496440695650579122639892579273870907188061398331172484335290227105041767224753874271332343235932067959497676921999175768680495273073510070765639916375716799904324035687741806483679171631500954554762457907421191738170659398838202728088240031678589095158531019655557547188159467001468195903073941005231957645352945075680353409776316100188655290859262784132447263949618945651612543190787623791673464589405457483891758925754592262566711250857751648064972623682081570778791281032904054649456230466906623588464954174648033567747825321444589492295106025093287426118541933218351787922399682202356793850926519034532889528768758167694922505559634289537953452935567322408533056889457232861581446384972930128894278549308976195929069493290668736881080623182785130122979428047618792567083647301097739277113805163008266055793788703508192272072379490520836417810398171959424308979834833625120678926625727641219445142490192240131885908727643332468015304815110419712228733900683596556680504276956692220364162900795527078792045915485952852566157886875019383688120207493626021207588380863256402955560283200962348690124008019433237985613464598064576279914914361236916909066130047785692344224316586764625689076136444244271433214732420688231430335062873169285726402573797027657926641529951652806938195939957047816498226183802285090252397610634774444054562199472366392842231512795222664474272880436793280627786157349378583246759526747584220874550835213009800666868994872380287121289603649324030139180438041833538848314353165978601776510998058579325326146548606453833124468969960297736187012164836707332850868734952979027978299805871830342252195168778357497391946656066596541706058006818689751243543425711642147768166050707034115288950391562966778583923837873778765333985444841837257560464577277892951866041185133913127265186767632687487692708113486346270667640673219875563849542431454917840676505478453810675604942364945847794556003443591261997815908470103876893486409768172163623021416638309146478074465388670777240429084359876085264602303514379956778332885138651156374261772300761616317054001806954542761368228218367024434143539773109210866505238478718487961258702730724556651335080354866014888734745791503264140061709399521778397320648102934778675290188831987273354244641399216228279422885020734088736442297376257622492576291789394219856925077534960471222889049793167707701484693430695888466709240909539032756086489910227402403157535605959970702938168374232681910385861766382061468579365425113433390706052512550152153002942825341899857149610442793281563642253338064092459537690236278347909845597294952978723027645031069506220522116227590807436763165156620268109409620833936338014463919151341435290416867449638321457024434013709231467294825632897464857224342122432220923273577282385588171676822275776485224492417083578439706360208518933738591262340246584772301354501335386723233072301648381084302829077593901536616703799843680862572887341757090095755394867791056433845273310864579180000050110831822989565634448078387527029168789799386311814336132288459796810145288259170977652323229804647740872372756102805068147909373037681861708286983495849009556757457516695125572806765464518759303608845548308192495557295324658706750987343423926291297039397241468498237743695605735448935209693800178044480348275843385828305967104029407505542376058098261353801098519717591487783296110049522182109299613970360867440857293344394630902298349334977609399316845189555859541013913163229991091401985561128498982295034215347570957998998929503403769629043385660327137008928022573340937164232839113243416221480922997085257483923004816338087828187764081772401256940689786694742205703080718663062644260764906903593174700051842615985578753076331150419192540852835376659081799653090404027749242316554316153269129134896866398128224174495780291816434624233338263915452229430776181920487560013776405747774141940989698765361075345878360113226225541577522455956857166282499014055919148540411582567201903303165722229504050782477252762956571311811002719840447450358757835666202819805126760895059535371612622360904013399670369191113263085830596807973488853177720181129244548841678586535954182335165215695280074591705843603586821660862271300946886263308060831174927274063349578804099575975913681359161830060398234312329067577608712992126780400560690572018681352792704389381167276188994319655286784837065156395674708615949073715570585284341686200897883822249209532727562607688685481069283450286539674802156623700142266376051035634892822264577836046818927396489856651085655324807074532561932396575172167149665484029478496241194674940245721472471536960747179814725627334312674849849483625787353923847861413281640024762976109555192566887456350576052554780486757637208493312451509415915582209567689450748150842490545271770623384134100610039962889141864337472717523744472281063453593805065735768866485014734747715512207000169065585535434064122848410480571108582947566720149662884333996325098214727458567576261107721218641171378754651786368303371637197313028304232948870660041619029927440511720262983280767220788972824615037576487086879343156257939862031972053487835447297728156411160042145171626938212201672143723363678033858540413389155059013913393212720398873373749587150206069920471391486296028541098454594424105461249143140473886839960618935225772070715416236034137651486959163118147566884026616460662551032778049189753578524885671676572368255005693189044625496028268662153319100394199726059906809574077008438492021194226153520272468597063496115028355515969526236188127400010237480745198289065076534485970129316888759166185013168024422255582492940974613437533134486894193403751684247819978822449113967733783083343658045649204892683718561902892109710147869642834154868721011681318835088419994050476573611184590865215401950721650258217544062652687594104740998311285371841282118455660562422731876009141929314880035523651251291580971007776960458391709729697202229129284581377641479446615373868839783965907933021142860130890879678159594614346516592077311333218686203523153347778964656873552096368516885424571330398557967018334578461048309017524602856001085240370441614714226377623470463286050605864141115899758179486050935732953290303885152955333235955551665222739076638883063520900923831235644685338360124635779724403562145111401080312448613885220982487504561248411028222738605518885275979323907754263528387738244994447200980345941633903225011471357465665686267757932660566396930214617104508288857741343172503832273015918850022938909102705780967463329628411411664814291893135734331090420462410905470081390237084418796165454571214147714103394457041072458544043777840031592254566119197767966001845256824467214323651706675763230242380655075235535652392606512957167907000762711733299940493897360184275998141550717170912171194536547091814906309810878338312695465582919571418360461612560310022238061937806917959548226026367642460458480448140546239845802169041625372982082546894715230437322050453525174421157684990398762041654657919660430161374879930080384634706476239320939411986310692404835516734223591371830133127928779845847259589224192811258811534522325179233499235292850388884948954642807329932700466551002296010613190054428639028154682263689139240521772585800512957398563713768202681816723475763775481519669807103275944061706821106816683524867488046720934045072085561474586255886065524126378664628374861053300459650870344822038299383826223636545352436070033389380291225787931509220517190427965974107294439807242588770646514100079934756111902566149261183844334583687503667949209170147685954085705705438439998022279898934732942563166695338074758057557303727305759949476650316205226309718879030539736345939761256899314520060150561591399906668461880320590627419689458025482870428542103443216339231886100636560303471266791478362232031614976100614090174744091754204091847359448536358928317089980195494718345927526663364767156530154712656142666242528550022861479760222393188302584567834450106613638646855113138211575031665880581632644786466493354059153684734481888274577669098813684262248428606019402451951563497890797661495464741734818176258359721871658727469704433695679901750230670913970764247534614302992442006345554067060796334614592127814891326736675182187793218723099633818214532072143850612738070816592998253159210447453390520896669455965358515322242149933124333287174305130051904349485882521439834311613911540309657102141546188786190879337053269012479876217625926817061477286784340014281154761421533650370425072646054075023080458298191162636688807330982654667025332836874015692252227006760686749064592053188819893185729722716420092922876874192601368427243949088758471285804586442395444433190294303123113905540350576145673835808901272877545322264319363258984260561122942714465283392274468946854613984997638673635906466040090631436194394483187745996516516444569172226291414286763239699085308120349378590580976861213766301948747295817498778093800611825918342842418102028303657344023492747753029080579981845854083603204296418828417551468402911320117936183309109020893145724861299651470703700250683443597473310839101173912470198183070865375992346304054564381068559256282061402440123332827181207316427298432059104336095768872854159940992363933307151084296611964304032836598435761366552419919786565711985799284048813284756578022745784297247420879824654471609021330345480230179549644054867006580273706565893477398928178564980756203616853602587477241786047752007283350070420316546657932327022619892694505012756475926683264124055012438621457133557821740828140462012981874120216224918461194011603048274448921506429582099428127022470704382345979681422832660673895599600292508210200177368378322445758230816090179809676986887108215337895587479511626287062677716487123894027305009410382712402276582475301301274616021108589529150271590440442226522598020971882127511750871752776240822134365863191982546402136253284947489317714909198055533342987916282790787551393638017522140486082190480809361595361222640957889484536132963906697056221619847172415993636592565744861679183293253835298429084456422898174542787813951215986977726580141205761295783280999942328610542632849710187253825751668321867182447514816538586567409308704116107332871426639041286063208811020792815024692561359484004177352264276547631828561671856433355050361358794797847689078773215274021920899103828494089944287235493907265535921658713951790948696917942514502680424397490323386785545619759757337795055949293167891879807545711676024873419920263196577314483056838926044491102454452174348373390973178887730825249001726483572375237974129936766361995767550247802888790336792791336166579068773661133778258433208013686246822250160592156729387930149580931352440960070335497818774095741436246688782004105128422861140208541803330673859793496239920482202918869130690437363115249611994086325867974275687901037988067672516963703452671730611712654121406161778795186644202013368339619368913700053773300255762439705743000141856134822555869802999305084473836753141011163615784307899622069910271571597698930047355270497819555657617817124251698880501921228474296885832422699926789584260700072308987437316654496810967394626162906453885065904917016450002061707503504650163863792477362650975286400665944476885811834916175901339731954687118287747973271885241660167408882407189261086287453518897267582550009067278449724555756771955532421684848625028785902776067517709787403439346100263883367437014282927154922065357356247747235841666296652783182600848884669289294304843322557627741180931262759538781491709689786192068893546067582004759199407709762570627977200135766880131919289556624736862978944122704016171687896388903576152217504191786207687605096717098587740892079758662397276814032175993414471494285459780608855572236667185167016835443444770396198746947769947310297291036933728773502868677708013221390475547687609838731327456859099636986138161546901088904205726626733113777132783242505759077843186173230174686703757174360408519836307183316052121016525316213134531388523266609228560724784519613407879721585035702569205312719835069727330916135070417308198639552215008060378525598511663220566591011813566655855642460493234226438218804166878031533337293030865758486212440014839870561114072271021530114572488369746233543752065103866756412811176346776106169663777576519917442281275814365068212194497226930562119494126943707040934270047262831634745337645920840378817593353853964122240926088980888256309914880315092642337107489587471923369382268611062280003033354707620928943622471437266261365645601736863047152417296931751550957479877130782968293945751138425639472283410897195837485141966525495430905358191327473831830196258420269565952805384633168379359462843075869865242090707308405268195645509978064698370899183545829835426899034489044213070483397147830475773987785018359019955092843246465674253910625519439156781535443207642459766647420558134460749737458444095082138930022355539415284696031309185373186908146878198368896891025314164905271143524679349000899762483287195408796952420865078184926915122178804474118227264768455832060272735090697357519477791088443885346395975730410845452620299772472822837334793139264197007280858960515165745095756445578532892875333264644615936224066039910546982199837944926886065776948746667324872273452563423481422810942665092650784852474506580609460743321472341612730961327501632799841562220507821184634808149326450215157091014719819912222961467960432913651780375193152765442901382987310015437879602044096571544831398625540352131944189834659572915316493095905820433132342259096632070404107784495939740241167663568609651632572500628164906978677062804613808794700768049434201116399563508658606621340341120434661240970401211303721033175047474353637125825503712616543514584154985088348187245336118884803966575377855843711330988971512026251794413471596784451770488175376558619241260589089384252812510269341304195531015741051896096045986913219611138966734944692377170718127229941222792004104680127671892239988343126716210943116619407021251633879597073181325614966642031657587196230629605067126818221075445417377506355080429418393519978547675198287577826610234162990962534802862948470485280069826363511856296182845052576381940516023353847513967347951659682760941449847576219466020052969873126709825888472658638780563363260312686809188340021076479072351832468340534800173306584470846261727317307119958938069079006670896466338378370125890394940528387358641577574029621784879924324497694198473051538918264005589161427532032594557058121211665984028559280973073547894142814824637183544402278230833538797313728418913733859200805768938694441903458603662595635292381014519991530890186834199382706098749902467444453652874313357671779062119746225141770588441592682065213584826380520529841319603756623863977974882671694165969993756981610497279778252337455489850581154244020325652820918985537644123554789968270277954607837991737409898373018653264990911880295839300241342299047680241993635800627837231309066489054632324239340557165015150443648525673265947401234117190201147105367664299604203744221927886792555278934819705204246548091660279515461223665736826857517387998263081836370981021752091532836401219808906406397294588441379137900848497956626359284313756706656415952295954587854206715569049081089201726843169954364524137617648765566615739914360791941754689505743860789966061370396275986550100679002430549690664108529855399430178288509644873032576453759434694454450178850656655327531658284537169523595495240657723146607316156110235102687992012382453047341846434955586682075035502983764916934826994620699911703436438898876566203560102327700921754923649460219638962528248238362463223410723542242218778687543779032266943785600504015137428243439534275723922087560703443167946660706489299444801517777630641277771739958943874617984772646270202597590274873152853691736665799566953812958170848404177005072670869704811667261749153737646384328223806668278803474629942049013929471378164515778120856999989915213500998223324077833240105196567612169303560775980178124272769740409115439440297907808233561227301220703371552435995604288462957852261172578401127893527655657881825044377331193516824145385899161910745201279943228675186340486827037177636945374836096966726194637513089572211933762057008145520884212812294277625670014969690864942591213095291688892185557411422949622719371180093090267888409728220910388740521668527886856426584751258944628177747935843578727508589499733563294933889645562330419883622399969791554298099642357864450200347589378187219635321664390152426510552549765360383134211524793231322385278675677998920805440713058233050856231564395886419357590426915895459244877499443913222701934562845234898206995408269855530644352907561961512451295169019170003317738198092024619107938800894989932383202252047992568838255498630764087745703085207286797453236674144557034960346270475029864600973086209312405193935019478693443102717124606703335306090262977884383072881013933581344291554925204557323108324972230613439907946820582268959694246590787376216966229324921146513719559180519847993781433186170694461043866360075291852226720954014367691136456597502963032901957160557460194908683732342775637786214407778348968762486426836660113405338361258793143114630203321501017550207849033928389844940701499719219620420757546119359519573478567615703537296712582928192932125380241683836362695835841970406337826621606115673219761063489225346971700104675838358449952718383743113938589123199531105686277814654006317986467043339901238791176873674463074107563178120564351502047292337794528704008686127420067760607226149231266353742421054280700288210700256910955066791008674934954231650122108695063825082875533578030028743836965504881568874242179844610931269055611814915359597718807904046250803684050083262937528480237518768390075373998829991003112200643911997488913940163854084658954197879593434422542613931333751211013661739752514917223770326189454523614871202504186913696622256755607908890995697202018176958003408899489397667752739392674616675164211399331204638680155097662248702536943582063116054087675409778235735946538909029198004729025167670566224495958694811435180980640137633547670603163594839712441600575928958073112825181029757462329687637244091279520514280167808649916215508823674233698166098229549481323119644092736559463143199522948234374994105995688385645628318364319381282319922447669152755142041501303828039737472818514308130200831452872068679585594259780244766094202627009954854051277742953037226015938410037356765945820846574385379841634222933959981374342827642562477172690181067721970700404506232613828081988954471269817701995275344911032934122580354229411187469520050297767500988793849821507098551064656684295252208216977668192615009936096288643554655626614344945720891890880435865450612169312426308810002111254711469408095566770446027997550836877435692912788943578630441266013519089664449561353627373737154967320893723589217795863474115542258211720732464239677973102171735957967209004288925695602825400224583885104141733368687927873590142337840868568100043537553402514495556493579855987175170085238802292977498529417324307407690596179520235494823708934926700513012536163391084368418210169869965722139617441042319207856637214474593728050150305745081439370197813628624736890793272524438173361453529633258828459594976622793228340988964293329721296303554941488357080849591874014488102531128566837151996785164183921952215405904197629569180935312843303432316571465534548146832961878536643974454560613223323833651663250939494964144658762823756581446779202493496652589087626377584023372171639133347094135633431926760518056395980598609663926674406941928733042625439756849082566670059226464321987572714730191853264229560210280417379694950867036277665823189460877302949358854750647893927054505687287058645367657957911767564812591934220759328208509065217569538397229511648131086489242542202071213696221811669522591342000992751677923099666368953202261528120625994235834753088607211226830939617102681310383210742772973456352755228346950535077996114340051473395474939066412287153102493398100741459096234623756448067729948414832046262376557467350776927693805701138732002662175364313043193167525233694426070139339178314172330163935800389475458905714769572109054371965794852512788846434184972196628125792955436816783476396465953486117469818946339227879544408502308597252449879936610765112977699043446635706452892844349723336858046031799622215992410487484000655069842445307929686021002342723960512176466736136116223864409967030363508167890194152354017134794215584843085661425009289896766022600387519445698737146189513360766847810702114458001833107744692529842403767661464283014882172335810082951786200925079637093443572324015340916212902248234977978321682796558709026056855077670349324521813760597817693881987020036733872286395320628932242716460930303355325309749515595983676813678241821163491518486350784838773033710570536163413723389464929634490258300833603517616822971172539221689730974497503947928185498936627800173369082160568541660345213153538454728900589883456404263585954690966528032388593414196972628070828176314561215109239440018423288272784676772109686148935779981870813117624675868237292568002374308543258519585804017773214548159797642047162754422956973363977334093794754684102215684167974418948527801544424837619955505255473237050497700716924753403914552296084424507894087461562218490703751162086044596234506935786684329395448746242919846715579284039296966614885131700060028092962532478832965958782137691489007603033629149225947723972774463369079094849343896218608852899754691958141321095390457886503951426702750267483430848834147793562261040928650892435669629597007412786623420895274272051873622656973506267303942787015983318173132246216177256488034241651237131403475686297380188795715928301027704587702965858305960683136865306102214630146665499555190631041183269205819142735689139723381867152486229305616676605977265017953494985433267364519026571573290406645577989945415936302989308233319675012274263575909234175686323820080049531424408945684577247505095212201581839103123777757789109591626611507309171497952017043585477168147668997576851062342547240150200622188307799628443846239780250762127248616076113171913838292930499148231499240483316421151409147817736297586882716092427324276056365282049259942402540955409421416576157229630418644724235607648660142185011239025475041745548291533834401653959413620558712444900708089751341595645078356302652737070168715118688818202819594482025926893849386098658424532286312772338995749003771962720020183891709034381606184198763083959982098936801433981236504717748020404390132358971389683924782355246787602117064177916710762399822650221482730277818847304095167934052458280388388634050849576065333976688217488274077281500970913070928461566641494481123922674319905915297374183689320029998417664497709799782556433903377014448864603770880125414416016357353362940657905699792515239180851256928758686427891930052125308440112228650838311347493368117287260410208646126162357988907102098283885207095343943811728023807888212017845540664274577858731134856113143752542065703169273587849756507774124775866925175671724602569975900394383022963642761344477827567568032642717970988290475950930563476080373450773353078765842523640416391061854205473559754908760982781580485264855085892200354720851789032082437907423747140217586116508920085032596912319238890973354628756595973078438074217366137521678604617064043856545228286230047479623778881465923937710296274959833282898304617404255812688170839328019536786393859691936192333493864529395769396262038824700733285250712707194915647007227774724767481636844844545433314689086595545982821471242038962427089743010723294887149804142965404080217679813129573511902824229385434044612151237465318705738601193656421962583895846998373809268856607156956013672042106493582560405773604017309238440805413500054626554774945753397817701939628940769007068861968422389789246276280584637705683619914536942915931902212249285341562560168054676522941669475552609620845706778415241018678486453406353974329583168264029075794082895237632405077796778183332731714039656580737428404029899018528509397604462689824237508820856983021257306835350550870289667559205335715966638844319230352900177269226419986735268741585685630025757003276414025444375131875920293532770267953054039987998040554493914575627452534843785100954283326134484578351154305078742569924958570655100431374877140578494888693319484614216008558945399433509094775644211061006139908062883836335458671980067418158894848772586848075320917719221327963389156956880941355414367461417030560909815618829925292476026642906497489665717826710707580599579775450581967486268844499861844884091830819921637942920395694618907835084791248228162781666913613689872688036302037033663011976108893326444041942473166300419093662015552960708391357712932517453094056212051315539595771566463154150094870069105534161160219846181168327571818714689504598630685657258875618860353831516428553868874189761455851308244848651011470718248631693404274701923341446027621278104293114310611315253878921687926210603004099641994448784611044375714415960208251149127740034557306127677822244225695449669290962508275659687683569714187346849551638944096518866984612181471930125344045028771657544276275872944600284276124522222698590933806205392039894010547052302111224454842335579979608833958773186071346876944781957834179020866212658852548705195058489058374956842367959734358662027938706397266666937332277264490010312407691285828906274765422440103698024229500479425884622460347394913467935649434388825741200854162575442921132753794058643896190920010383281689056750439855275089603086447328554537651493266378565954010070353785161583081180329346264604543996625412265899677640505518227906757621079550835618393787839330213713681443298137015874409649654863105497228316213741307274689170428160981639018553287873834081424851304541672796451370078160858759935623029205014198149291140866438054154166564124831325540635927549254046093162855065375866523635949319159915417835461675760469374637840124556221153817669875059242188516427524767612807265855253232895532608842519352145188384899737871445387791869355411907928029434442257473028848026304528720519091024832324066120858969295958286128677704034572481249364605509557457988122848560102201110691477297297577513839187868179437146090623529952035433923683176043547063428218393752620753136856782490438613613566567073028801369936536044627385641229995576009306172713434638398639023089178054443947281851739441515921521723782129618046387964377694379900022557464384319904912874365400101978258770617979990096212564538618275475481944706067236355804335418040396687289875232607602816248556229412720541912414674359635477883092580140879743465929348545134235210202344282050950640618418204387219942238919632967531537648737637404691627790137602639672507440716347189790718327983485166834996749736820025173486410522164568198702733775112818844763774782620588556262914716895005701829212951996523481876372230551977577626675191956487657463932509842034854803097456566214460692887774455456475747448802298870176839840334712182854165510451218411141649791270577935637789747841238769817369476654397074327887495080970508391256299531144178737446137853035203968919050574440773374606115275177550431649679913532902150897834088711122363930463628005352034274423303688975227267003906406234492912243508265826218966709786495513360811617280250377701959152599159664010130921778196543561540885919813356517209950835686222575733259505859147582760740684864403467620577284655751946386455542826616983516744251256723665117885058503903401768698911548393960633340172439772537678862882326139708305879002396378864170410958868425179484787425045485934754231390138370317299494977139884656127291289517788278998650663347556898100327117727752268753417320241578698188979883470180148374681086358670703365190805691827748193007443412085951038121688761367868520206531866780574878903906361912487041734066558491183138244827057942657291476607387597262097558212857784265033861712421118927624350784730222370527385507637218042250729505621055830893317947851334426541582924462534444586482921398655227378489780512497079263894305147775254364835423563417496448674432960874171027690799680483586810249976720460272928703961913044493364766728651458708563503756765987384766644729375480629329634079192595602229729642177192433721015261101124264036182200523926556511890039318395151244087059188166631137192643234928202728271031668886095407594796599620582301959957344393801721728963916444161481944600185221886268814609776364496471018434817441171187158052281139551585829769208540213759337834360327947827716812364067399593585958045247102457721630341870136265116432976793055746837670960625359966418234683228206143550747494107469625568386351037545038502340500153253304703794872408816810093685020015236774096784985426253093534535482507479960307285095309009558032350206751000766897806546543106238930954106322827315424519302289542264196850141040020620752236958974204587304147254234719637848420010134641863015901605232382994231452192625748797490107673466454967446582381955967949783196972105908792279658200193549532447726162524142996956754626184956746587134766979950303043801267206970544653429710847801700178827875671143276509011878764974876726482413960093826412153375246937571108877743822872318216212816571155790550830425479027983944485356405380379406694563117697364543096405343505800514397526540215298243263720282648785569886988092394850687352954236881299145105139036562802461897826231281071296252594588601139691776033150556511530699715560817679033833219369183245917203917896336185206006032263517984652891258108453890367263932502353751970261568904518674078154080304783575421311715914104760310592552962665625467650582640595326420397328103376997796604469348516124460841903154768767219631648354589854118975010049792702723666711407689873247650497976224192871470847288528465093882892698146885407652596734847102917164243493825121205816223875531653046789269381648908257193141587983689566329554488824405691635895193516939504907752779878186391770677638486766280931710849744375307282673255953926845049171633755128602858190893538915727942626872617614094445092627445866215100337990874694073341786048352438015779927779842920548566187141058835345663945150666741296556903212083436547686533135280737303904144840868269746772706726284195458169615749636829267422499523328491815871158149818847479994570402993008112174679912920722939241338714643824333881187650828604482915575725287462164239771158716491680315861347301209042528462658972074127900251045623900191676062939348590020100393449798770232002351886846033929229191647989472634000318678556846652728883890135885693198459033082210069012914008492737240812732333432632609127147538464636106458107225567630874862153152752510666793086389941826817350721204314136415161936984745837525017373258837965879755323380604386348686900193924705139798429539275980558873517537072962096972245756783877301094671813398741471956507547161353744436068282116036974543252641382687436216611766789942103661412118747257289132537199880576925271561368648125329536603819862110281689020317598714064341423057513745935027481892653958142695292866229561669105599621393975752169521894000093070476430979729087634808678557949676016397106903683245268935799535483216254927056453080182966654712899273857314332746983929024019067235769065207259202313208377291166179017837985892807266181355710578467450221479852509513689881756194647656104774540513371393379471951709154445479140665591323007794043379213921058465169125475710700627768666665377704756486127467690790595927418152606274579161895691213275993589795795850059139360832293089904552779075832209017423711836713161100796980890563445922307677652822793075217392593140125400675483474977642511847404708196486536234814029304051824027456999189471245567087983255141148889858443599048784552506871762475289704482543114518505150812531307655190594414606000432850748150256763158504729824654700134548582004816507445350267466485876831120758450563714422668425631732473078174449459083742991049825864105609973060013521101942761913023262604765503191190758882188148457123447695743470772337199699053425737983665053059063091377408593891489714238635499300956520142308392102400966188917083819804433287908520571491726075915399638123813585550140393308208849249798312290174851038132322305908740362251453306377342650485783274261463583338517896178351065407681868828047472620826326251806006355595892552161291113619679216808482332070464197832438286303427882821779605615185060664616781854128905265480752865128273891670110374001654069021523635669626105253810481061733484733885365478766946833981675212277438286929273034305316891716897232960184113345833520614234564073854237196271899242819543966160806534908433681488562640924517779349747918503283768346188643848154314089422335224255966883382016264234613125323052025364221621614468848010594672605164515355483023010211325917106978495439978457383156270410685720017523897931590889790391145817453503499481269945074005921239504383585276917001596306423459740960717115724991505003611578019189662059239608654525692492603149390749926820499293364622370016360421204951248388553915450249851148136346491725925494153908821246672983127350649515102018460923809244006099278629816903269814533221590885502362136148793048546775923714400673595709499432108212020699649192908117116906497469501036734490234494765313007957868579540691948435270586000496481637060942803191105905631945357003509583020245122092088949890218624792846798915856284614116885794111118066595498994250639928533054694901473441413298088684360277751445871643467810063086165667076532629628634212862977676835778531963777278694994492046414905697952764100446554552380596729099156430421461003590958527924266994266489967852428002170484925189470117492742871191154640399911581403485391223367001085995610974348707781112501074545716586881744612540169807235328434324996419137601596986367082001075115621435970844156513916827675179088122405854215808473758370454050218230981777221787455305271036229095845601957833740248480569208352786819483327974126590542457127158247610538890541515778027635436251333692400628156112880051529305925238315969329439830882171940829201845066075381702789416173303150073732058483836433508274309621935902400933396938785726964397254778747846810089187342283454602892384784078055386541063749356224564795252461935684688677948907710157441183724779994376990678248081074682343157493035600466287419103551651869117854378212686058879607426800615549354446569208047833481770288589013523385102925094443182054965746165956400070352054884166141048194074968352545988482287464144176063941227423506979482209667023761743104251942265502619747918571123711572063222610736708378682475581571420908785740303630498751013553014958969156475576768143050855725783221155179552097698399628227227992626126279481660820105206769355613324088679697875817614135873761204813015656693043107426524790481392822727290421252613209792679363205342314767462541377391116560235498656457348365165456933264332895055206729152379024601735349215539387952132922680665917200073627972109769558643567075426690735571522252770417912486640432584677197243618124214553582156316983442558209821714613009077550851878020396268994292380591790164236922904019670737598430443365812248593797845042211759643242759202436467429575840238869535306454079936817400194211051902713184242265976950923266425167408792619908308461438124982196220937683475372495716841813071528417726204292565058625924491218866584962204069708332563956958201098133061826121115752965097697728061077653965741777102654438560630968149051742672671657056760980758845080211750919330646869263853635873462943561903965716115297883060128990923028022137723435395085999166919249575907234087960420364401177098903620650022079215901333262379048045916207401135086559217057744776206929813435769811132071386820278141371144800963188935112145944357589207674707194866250812014320428551250359835148790247831673244041189253267853528624227052452986042461192308773822136530255564349991349170583636384410673043132075140898689427875985276661117638294188064604637270124723090049998577132537115505648942486051302196840312164720315683871376517313819156307667463829402635505452650785348581390772848919320982855066352453018524101941755833418892584682571882450019921546732965819857938743512243752703276006060052024178053092475186768240517391126459639586685296057360963000874442830340823275148608367777921340587053532864279903553776886246066700078460979949481596551969943342461755469778001285687819165909416298512161909711138345380251761806501950034966959838177440680746324761047126967100427339279613355218470552344662557346563185627858840674452588778313979682478254496773621774290940001271246498804427496674486316859857152435750063645042467656031682977616394204988670802635448571811846455421559543499166581601299157961680126746260496077262002623805207581977486082322673905886974550039340103570556914256506296902904782411525707696776950815469660032334877501664638172208595453921830982886458188298447148754319422887493629996908773802528149709874820473629257941457121659595350125943006661264402123909402212974410737783297678391041693117221494265740833036154262036854169210749339385988283947185394404485760255139323034212771347389885076024627001921125432613337621168520220631536904364801959078590371466346193515319543853501509787681423869931675516969078674506877491671667200895139434611154894745698479448088331029571480893204700449300507847031084413302875484649839797629570066359261061727071533196954682183709272302130468097018266330621843914345283392349988090541207817755529848545123412857558210162765262179475828155972574727621992714910025920301202945435957083736375286801808095659215867651099421951884698780825291986461963726116602653161824071814892902516708365048326761568987248027048600293835284212213278617424723858287057473095024688483300479464360217407829082582437928077995291844002796585215808061452086880123760382459167475736688028357727331769019233438229555749461657985140228708113240479181532275821519534386568749640835027834880551311757149231438653608427147654336731102865916129906694959000069553487069956676066569438124166412123706332442796256574716848079067277601476653027038858953411985967955091282210133893935124630561979523213989652679194395197916552331803439891128844988947628864976205183810705864952105014956531796658332403014528309374554796631253656660266309426659429274522269703175661928277023613520833229100793218373811603892010733937555050049733792361771572674702316123792339140537839520915311038041817095604772114036102500076388222738290724648891924304465612230882111188395722179932551001189444490935728347692047118047709921771063955491212611103073870528152639505871338715767282832740831694602869516003062661032212022649119303982647757820503047391535354132405606204681397503410661260632177883779555522296936674300819114901177206164666115421190704883359185552549262118562455138835852481440786762827297495717424791322448834537746382798629103625919316053972092637778432012777112397108517057830624668178946581194037450688857398837042663123875767586438003138032324976189568920577638810981300307028075065784117081590739071900532732018401659277644247136462802506265307356067917791356817026924420936235839158334894880264643302643810463962049513550350992342249251321918239617181392575843029446390342306947470303029797060483060158447113451791402490825548841587936364645163581153169842280435109289541511063560117196584893330538713091642551538436419727860341572879555593465538024392560685972103602305541397308244443549880299713805104056367386612894090689628667743085944715121006772853882451153100647953528523694277563382484405433260337604821553388268640009138233455419895508130392473130539170957164600190202237766495785873124984119943210592134200989843829181593616648733425143507101675062551262776099940005854376671552982761937199428117575867312340699749946244898483858527574006102528837345889749588485836329563779261082255394903034946620231822541961019778852707900488251830243627067289032967565226843684581925805408757046595701594340473041596581156970673462318796073427639287205590430801137047625020395035003147395521261038924274418708303589292402746325254772784250804933977052013080660808008536043877559785455040486801381411961062188333779332380824221752977128370330651778259733832594156862086730532075585252832231846550585930582238634006276787929839359243629020197019034471451694928179699875012242394564420192928499419020331228791003951428934186887623878294593501014572029066992042349653282666706741730505933531361554536380364417323943758160165558821605528287802213418582377525201208100069643397887642020366721131845250687433445431751321079593591282786915100902778329826440468877515657647659131048314969601721043690452543909319272202996487602856625524115916785727535014180301802535339212752785766506858611888753863897274818292094493954958597273896885854383122477307405564784385858139183221219235335059669980186465872297028542790163977451147398654451813578559396619680413568986831432410127227476772656186739099145068342500237929866633425183380886491428808705841109072031223340545474585744175963731523231255772493053639520183483690508749280605290640591654018510201832487277351113802544637048282791952727146495626951621351083857408115333977803122043939921808031477264419277636564900773665228484506331616301332107099144432998206346932012331100328878630725395989141565676513780103202841372730096398092621036133546994810916517975764972774692158357623996935469551098651653626243269110641815044399390589039173734540834738647103338016717519623588168162885609019558292091671544638516739744191874186710451582243622165534040470131725663014222281188379132663776898728250049813794176143804589825768984354796833548879799711019410606212934688669091434255608828664068288632074789609505744243043168272196051880725527235976325573392028684880384882800723947841624975365445208851658087686131289431331025418111974172753526376079266992684934394792462847561782481117708026300538908670196447730679904443487174297653668036801230430062340332192364406099292942796185345258102657713336408858170324120927298298529736999495822000166977652699728565976904258564995855347488494800851453843348426592328141903857270476754046797941492276023564249337630051316440225675010359141161655414820226690871207596028985930097432360053584431421755213455879151584386536845467089464609990663244001207738474659075463645099744221799044497856114395158459745692757496423722812099272538988890038648637701225764158955516781619749035824761075480511225015202634231890599972211702822792913686012541261652856123160687296948047193747564742599716942498558534624883017556592019607410931493419522657796300804294966195628079016935363261204100591903545027944970456933467632258490493141451122540694192676496017349600865778826298155080828414451445174704160974097697054604481607180484721719275369819304890390953569168964576360838377735263542672636461347186939851564666221780884217198912424444132207625268347533161379674596425193646194823292694452617682863585220472079983988268741507491342175045972365823495590462623290457339184062497034125258018143962477889567600317310526701708010985996745199620407281303170133465245075924137032236626962448769397247190264447286716389962030488387013598022614392037209985528903726360390212152364067534813520428329171754183891836915621342631100762136172540582937468715863935144025345657345576076742756387087190587745967686554632712959298295314397888320018855063246663237398132436561818217182239146978130697071625041969728647005820017149768527802063346381832808750939078567229426599318716655156388571121741585640346810922707937458659223969865264389796026141483590478002577242453262678353160779319729760286916288584810354549230470116990760362861522285617319743184240284630828487125417269053306172484613983392384438189643626336161750701352238892863303099514921848778036464407966757972333392616151016434141536487022227557257662059707665170824616348940043825268786137388393788505978194995668130157548570559143703757740232388000759574058653954907556001123505139776516658396381707069780575280665167019600584768903088694023158596943936112685946201763751249072531856645836778883548593882225207885792138658330554276905973885137121835420551063824823402436216428238493846010139223768116036157655922044825086530074620407834148523843822784460664032293047775079304809318114465202997472991303931522451528596912787818565465595671166681953113456615113321020006493713232000507966779562821176479047948297169045361321820512126144210653175409759056746226893143507243868832701753777723206467534361136342073337225458218896737324899539949504983005309272167173928935031198648598843241692665235840229242952470896636228994823577466852468879989563376440457215453875619262721997138363491042676827583674028573928556191750671883064324774080759016497285336140105083472429496538669379682184744455418455000933843819488625360748130462309277350089025140469077127196603436040284608106461624929705907839412727442859280026482406215016368152099684257449938737601373811599168943440257928288850003896712001806620062205706445668338550052283373151702122233690255241540410487548493604925874072418221980309791282633132959807145802147410004085914518593265101229983236413604796281325263054198330160900788962215311748644217582895198606654393215207860479541697734233698538309667565837915140484869375299500521098740122102725671687559222810104086708355062272253977604887761667216163986730764806071174085370047985942335079435359200229470247150750015464957197597365302128525831330431862449900803181792419838411874011893806442802426118899897737878007369783897972032862345708778078168238393776401660483719319883821892313703384234977044230407763861242285497556001051175058182875494720848434455933704926144632337443947129700101151691613051687160930462426415882714885574775424506790320541590180643281642741899609574166316563739575096900440366767630373682494478577776368857529608139702304368423996240063642490789446203969819554243811863509324879457188333610689698102786136983930048414328931654846879809214715876045307005135026661490165158783064113535369740444406806710234441544114147403242966168864823793799673117502876826624395411054116010569039001326438389896742516259679111560600066753302717138477346166663538889965474007593084060675860947533180807706303437269882182617967639577129454926869080496648203323542331889974622353422082457239960070713716126358291527149127098986238279143162197915977886398351227833137983782936608562865827423170415480631488859047751409010790359374203640413636359526269470190975060737226200082235889818249030378480814597146266206886721905560640302656034465176779732251313664554746525183415410192636635819817178994038600092556197119728202539534842032846258222900525510005326856939767682798071488222316801111511406725320547777165844593978037066527733140857691063711119292201570391774012176644191362390300043984562277658337494501626734800325737268277788745786179153496792333013560739069155975678029736391471769479806009959870663734322002726968702358537363506009776242765912122616229089191083365126769249801849815878532919049015517586553722586428933910903486916501759397223525158654595575629324744095568199473564555446677626838058123442459017456397007211455422292860674771656338290042727511899352417520311526959124830625632134859929218635397017885326829511905915216903050482987007789687568580447204952648849461314432821106858246527799354964770006347801109335605596591959631048510511168282147303506164332058715004900584798440253131387258387674273317010397482877597820149983946907990279210194692216441713505368870044693641421863525967770190315903820564969979032545353264277382755277495373158018937492515406640664697400055987386697210090147875666767821226850005173455650501802294434674002090354103139653441546166568255468570689449256304783393537335835597255265089735522897538421168439581411898720714401117182925805256960340296567057874614661787742245470811497407395930109095817479988468699689246205705134578209522826455303142663432203953751062983646989334068012914874985441651833068329398705900149034301125671100508645503689594423952102205841234094326329110314196670881548018523337145904304721037678679316796791723601348698646999510007909065270698488017286899730381682116611350745595930168587380223489044583900965942150625033543995632996227023843388244341660546671258277464928773492608285112879640979800134254767910861223418774827897935219466779711499483135627456676678872233681966734070857441786503368663319993361357666638792581526654919526810575972481790704112690905380748781332367783943119604734969195556701417681057749950430910095170133059772011876329879698717553427196632179545394612642457352163355141032738326905712396310961119546895349157822228033875564712659348520592228994798848050177642848488864734901169497541755277634512358101799429930153006307003100398246349903271052760526239751049400677355115364440388004327792903582278041089878954966750393079337965444062431420856757368053024482832246796223763685367084273259362190674589189937600507528611967669974974387721146526431037974463611400637510270844901059646197702985920785130590613499790970644965251856842893420811793577964705358300123145368132457501796977418312956426504824558022537167465908560861989822747496572336158209925862963649143917692594457216604107858293870398048307345719601486817020563001883980275444323460680980020188481384902889365489484559406804127265792296615121994436653035530691236929675970093250521511311323098318412869264164859409433613909351480439313362251738371326568565626775414868935740529674755166991826430065603623231453918643124319088866412173521124816470126476985201942750157782973929799382266599580581373155532749793118397289028399609294033783289247953513171007688570804447268717138720600264230962454630460887673437946739009033912810493928512984921740249822920871300585149339884121155967544800344499968781711823164294109775667475573022487770331691416244023731417989472092354507507506923484588009096907899697888159482915810347931814269736990811648109256454062487173551164820147114626528381916098711110573803328517112045158925155965546935307087982248227391869936374185108827807384757206993872810779268933584472479690515845983804869533466362254705590521669122803305746985820617912009714321977932768323974352762478780951027586948005292129638714919021831859899000150658282607863707160010053496239866840191135371854142379561537466504224530622107031695031086395934483668878761180123576403378331367048392728255116533438827486606339707222907581164675920587336484262734898451121460768883594481084664747703929495388598444253611656064682987622460089851980491307718226419161822603780326079466294521405566601322068544830689467283282116050637240728586766426276447829032487574845987629153166029157396207934566302705696972443267444644209073703393676257592116540202138776877575741831241552446781862581494437551199337464721709598321623700822182107706739495857964924817350638261616024002256422214303413156213492807911086531510590117400861419301802130161526203463256391739642571209842258207582987897184054396994685823712977947930866076553934576531724429415776545637213761716483605745508335580724062036640822669212480276414563028123911342020910566552876028189305125739779283823105562229626481624713197054613495746241056855609324181955698553866261118470248775897452220542649121279799435001178500720434689459342483295959172244450578697782775642972195648378206005483283486175541788406406429101254598700750386786511258040616821745673784143228210250678431763911114182830713997763683198424989435807220285139401472555981310931812929610520697646244865451958639903269337063098522923216515092392845413378075637962983795203990516336953589934651763477466640969726086498578121225588214381731640275419722790665386495213434633945019054706374653595424506193816701042729313305129528517328184467705830966538314150782980805691891874402555878445199838161864843936875772444084285016604749590780657150406439680982263396986774906406319993972901842425872051045751452286280537175502207832511854986140154728153351950725261822219895285377738339374428599540023209475382379874649558260628562082033060929840352595747407040267191351283789702935146835227843056380214810757026235619167546882809496046669053109092645053985182512531302854676500699097541481134323702250655077803466245010866352085911674107881915040362780150708438134494049933578611375588737752902517600713585017623477241126699860159080086509958049288433916556077133912412537939976432090525744792866735674306647204744320114732085032906125561825895792284134368162403735852144536654307808409536052543709405998864159647653935515173248224442841448102068083301544880134548372138172536557926260413253254486375679304710412659697139770309881865409782346491712100432219483553930801456796807325197790508260966780363487822427411244920950658474318944528751033168846242741291613984680823442164671294177135264792973762223596087185125511370641647700571778250464033772999876539516068034709307900646471022118635480849943931491316719358412913027648437845003995533337835450709161246617301227423912754769970842099351424614001891878054122311300182945197953561624159014924646128485840645971154670654238820257537200429563915668247003000121563927364760141159214089564396719988341705566431102695428526481597735207104920727513754719566562314095461733237939588547206278942733355683524383784488532809033777352625332412185744833767385411557657067554604949968850478148130030882339746492951703685869688923347712949540102852541441317490723372969283631017959593714178372882907925981096633103375900602032722291430688371659405036992794771755051742866569343409515027954820533413568265348400624388320537048298489701682587241814706696446290095517029698173901729677490412142084447540002728698008556047199126660072578738807302599379691005583810905051895919980157621667703906531884830422853254886712276040231787781532142980022616013863240128545292490775739171352088030127271838361839446836976332853793539255778813893472022851010780119046096696686759253592645177959071469497705864264432832931489277017755193332358357144269809458652685992981343358839110308111735386634241727266647173653569532897426732802757561097509843645871850657936658859126182583072370212223537200472443653191254938730222517589443620456991566411776996598136978458111642924187413731548613552511478864103518230011387256119351278729293956721049760301424154279703989018167815498755234110004814772548578128173476890476564396840974984953419800650696185526487659571512294350328808051640911666940105307044200596342287843775147268954051987775923894048726854609944127315021298750809507302845140882645241095613950686198337614517927360996748736438855262074279730297172192203688869175960637928550756762106901452242415881894821549149922478692261556009790289201775391876763187757831415841184140759662689424145575848888285432581355952498290099973120691070658349531962035556851593995140500479933824578315428623476709252715007883953863094378439827895589898096389322397777367076049104988171844672433819694267579477950305579638129638317899236651159648751394685687461476008778110325466811023712555259607437646016029843974688312537765169843061748405643850456369279355573432680443156326757301814995699880902263311024130920269101332726061449239120251982435475473401262102335586958737341343098193612852506097790858264528446999426420143177553965267229196791838611654723997949673192446385533490646392934973508137469999885721604699632716590040061135403064247870444977438290004194044849185378688808210803194546735422457370838560230244906427895748715458869769246887036515648229097351603676835728863238782712458531137400800371842875410254953875155154904862575094139423768687207351956329081866639684990518048501949754727796991927363325687490498501768232093725590152698024241499723767942307833356968369103346057476095185143410904869307724207279438191769501426664694757679621424446782976109858790013600373375602316707875402398989277639988501869480153939268511330748382858563172537403363066009389771112923729278644254210250212551194456965988596567453553596023538451827727999107794535843629879782867717980786547429545928772942691742007354809624085595472257267913143738218294535160131754518696147906798783827775532554789648079068554793604021896454876825692563833007321218049292478718810500739882604814006285511236298958083674254983017480361270538609747967003344893248059552313255288157844474815756376285394433481935158044551625527822920601144406818238817322782143300938383775066499621121295242690757631142675655683737583881998875128128542497513851286380371871355750746389850214084102789977124664682592475279627039535133838147562815107258832878089776051944637868563685806613018176828140121170511980790546921650862041318142477263175215279090218084929729149384730145739080745453105391426052408220294769206181270870478425142352844753992519346955919833323001691000157558121931282078764759142853654887733545981702449433135274110418231056100785440065650865535379586509567945552218839854720243017532454461547788879862435630771231767124617277722855259627024810319263322419892426901601492106580323631447894801811663670099192213925980328996043027189104964479853885916523058797053669504682613198274044890050024523221254413688005770065521224641850045841316179510503274097500477622701894161403050209612981050810576164983007954234772167628838888749590351286367133954146035808075366560162793774111875274364165977389791215999811942723533361160483308257460806173099022270073172913131383540414550088739095773898536984090848893836538249683360617714749741332743017492786763435973630826115731500622390938351251736003034216230423052209256913468238148012852515255168984353396761233129007305029456602697727821945188631862856556279330831021192496980583218138827608550196957122800206196172592657138552191926280598152226015100944116028370822039944301026543225365178861372394205565242217219979541972588375044222056291687063012747410076790664025050610481682758133551045760481668268967476143989848873837227736845024796256227442574351056935967456624663332909156963802517324891769892557851305956079257891262633701947871626908170672293592014447468629287042696614863851868185432086737838026658227667989226686445101539392733356689360219079419893848304049333571839639221981564541551856521234867418224322435825114120902079851617528222854050474971793366460059899974527345779945087342272186907442119665789424718510956874876463350865688196886663132779135662754189808690158647527320303549551835817828900872506194629135203275652703732922610662522857972389355974381657464372560908961392858437505975921756977456271254159254461608793522160748523246027421824644613497867618809440493322700113405530537868672470513839634574849504621012860206688270898647312191400127325919333212155053427585911023909798982200792875022392720917409950707649318642948645970985859240674414457287825936548236807222974191985067325964157211624013582747244017328588715683400016479290932882088693874646235506991845283363204222070863806528131205838632548755646484737612171707147457043832670278709481348641443196612771749444227678327738071938810782106591450970094190676816365236722962184468637013465762415408048148741199324663391890421113264199982442922422788822617503465267105938040060107335348341363861199010711240753212753178852494214572956842319664378411916963481084880990033689360119175182969686987805891470080504130656087508338945531401011550383335874822262247643952505859898402838916218646477875529343092463306158556441990734335660552629559555891535076012687862725552855247692077152330683861950718605125619091189592708025704372042065482326299125152956099617458506541306323899485561022723301144737921434293499523845537562645814475440177234539946515114416531245567180937120920258272928485834346552230499537474038881053963667238423151014145993515115242016326997187318977007625386417996459044470303344526527813495505554777656576013059483370674835562563078528249252360095228000706949100080576136611975828080189193854988346347280111948083542532913276117812279488034157507013288808408308079594800198917294833811474118362323343078434480725705625669602478188001661741992612474623389529651485844454331368139453574607721933276212344449396672095174142620549312956360327410812219264795453232659254910269615285999464523189840662306895034554213461850940893884315645736483199193175268660287203831135379700915331651933082518187259146426424416322828778934629472720961217896652901147615771168136479901148415518346427647832612422759630365538308204055179373839514141713427974906257980296979396974156752733253563133379964263456906819103254425582936110028391202751207396264948732751010280437695024346462317405351792026706397945521452605847678363824018250868800994614930543545460735195240614060118169592764868989099782976116219093475103428414491206210633895250291945444557423894091259658356440171409438352397690660307917163291792520277261342670569788644255804278448406882332799642722065250930980078585686332417658151396701840894160595731496847682694366074748181747844340556641753916946676691087334160689127989389801896372268387473691913608502389106349137308278595473277092727887383251426277451973365453647223471704820141244617791205040495713070769087617433061473015989953565209190391049559627934914169034586671250296316061680175936351540988727192107770915108348200768716832011712040207246131128872615131412646396336646027922304154912451958507322805115970091189431024492116791551493006352008435432932103407728318688357022126775516892282455428500006635761533643617285755322146883969804145594596088530386742150628094524696372813876883664595812258806587387680156592685191480024029163433793241799653895700448763070470138410390916486381811675617729732175774254986326464651839631119048757003520716998193838126010161644646212011893139133959571173148849134793543369395718349934881955393622339687333178263005392339316083605582325427325614266210160684171974940065785137958871721752231741792546974123842190350428235710911194062845582614728111799514362647459037311929446814250598904935139273243134411355174609802487522270640587552275707279975338147946026570371500823680722711257842035831775230383003645776122429414848542793997155949242374649245365669814302604693953971458052196114362801675681880552898761882958444839265944091360007108844622489686073369618318873484097400197626895354131247096048198589567179523883322172777204266410637550291984923446296602353683376744391315920615169211100622950615650419630215299505605962129794454061191375872935884053878130249255971578835629620448466101030237951007888737350286309726008422624064268861910163362403843300508972247250378920441856236505145342927408469642661438297538366694463787874070293797594270199157315861142093011142534496214720967606761325742286053534590675194266794281242339882170262941265756121803224916079952646493832816769903746587412348275896434422056566960511320422698047708586947452635082267871486210188600223670984070074602137911562485683744718697227521495361244401615703593441170936348569132488034866052838970879918318780650230449032940377389402175242817423888612457683671890945112522006840780737573495603579988449897632903946241338095110029591014947774084171498693516977439591349820369136240203962467523373179469162256946160444623718663295884683296383963703749880578069702251890166245668890826689052757120789292922748297038379830782775720438360351340229323075275960485102514913258593791895255993730307396017001490650099344686657074098569905920354909003595800111932236980566211441350033460133331084050994376425673866538877193565450950412900712736062121898004911563879354219851918490327255107814316951105211048760185509040860531117746754483076433982251131170123020410721563167400663427536642918217014831950737237453643345556551437305097256526818908800890087362124565970990465516255607791480214568524027958738227432508857178517715311301525474854245185758231930719029844253454540107829246669663722575439189527820873160436889345123929696748049307450652582477275368016714489004710936123736545365838022803407987029405299334125092917217673751525035796843708076627749372507096903864581666736027104245915806792112458894179613741182026845848960874719004577236585538283823042796659576209069088685380693187154679640654033192938997589420569687765603124279817367022268044710975749900553275306499448129836664786752530339068028028482886818778943633868765923393840232908986788728970284618454839383385892456740313018114596379316282709501664446365047624885932081775660094103436381080042433759393016941401079718400704647748755186495454902538006712203358806650144106384533839448327976101376598258199724881118550305351766856211871594648293330569809202363535370772898274253693898723349113705662701131374475591764172643653796545889293237070979376100475732809073644051699106826363230848973350729349425484281464256375879985135909280124717438475774213925918679798358467263785974739796512961111414985158214698464082516983027188491979716437347824322056231828419899051771090285321704710479151965420586322629901933163227093066023058473506307507294963247532148904615469800837647755610028228438507424567093673676226351906797112680067003171510551472861613546210220837184453205352169818821106534961963678163121644908931510792925040767398364397069359355089713446914183230845084320653950217952419032598327726109380967460404945007543484269803549491083687414230887736695217904173935005032146534022906851926785816948828510487756420547382830945694985859320683542964605047578486116231951156488770337033785822114824086589949276530142561845800270310750264997039552074774186935668678016564496618847557569014831450737782203516464946276065826503570487987515210620359239902070791718115642338206279062684687895164550396880182445310625331103067385345346600068740511040521637578025040617726590703592716815751660360124107486653720210642632135479299941668791188720780224814509100341152802604875124807812438539227794567602714397181173113725778466707448763081991548567156444449781780454691516384828625308920575754378223889292778154742251780801145822410354945366147516473894747622596629676874021245230878509183674959281289628276785416291279354855960603663596592316622589526143887388092726153546071675377104796480970543146726432726270483876322994306305191241228605084477634087592658434690003523864221640708814792185807815075004763356979795456831616905221228104711314050430410435686265632541780618753880632280110416366616950754368451004061223491560112198838907873608316037109061991627373540526405616948531408048177586576338402142191770938369931565587868522780275120108928351416838122075777185093266416919885817480253758299952226590517421111945260653275443238707343195715868952504384068472933951114794343331100936491156098837559435946754307924650545845825159167184925516501556457484393775366108002363742167859857799782689275157015817744312694067010414383855168464231635453965043760376016266140588833944741962345540343631838128279820137994557019640903299753972548305531465981672392204819702536558363239106938670345426615276100584899207075552786834914042561974743881289793088717181053687304860881964199406107052165592460334411411789959628707831915874219318235899034047515036528038215453654757336843184182605059044344653929489478175489148462988325122340624697705138939895897939413454440047073816477684599517378749422235484956651907222677652031131046739923497865564639860638222146557297930850826653102229444733226879891724196665369799168030093154611882240077904722440134965174261129727081390044790910224024107090467488730279960225338443322162551022286447477797877558615928733571597699060447146714009014673331814817466219586745288307983364706836907847420602131520047790709343258730468221067087441450991245559811101630218476158569253009578231851605935063852448038883860400054765565971161191668411539602851366341576956902111485658143320279468300346093049735778723641402472657044031849393477296508055306440569527650304458419769623252684831591717279670010825170221353718308490834011621675550068015128762265000630681687640959560907218744867326546417560094167421369028998702076586107448353166511793671176066273726707703788773548215812382144518107190975045325451695129778046808209095110346685158503961151739863187066963723733596889593750754175927611960497648759209051243647849085492956098204301763374825345220679752583288926206944734676606144822784447682307206064740136199199159849613440826119875153555767594851663078734012974631390593024116867615852169566805647948789513868512460360467180964930815848102517897636872401295196171409174714764896974209127761338031878776659225883298222594832582873690213802093094002890516556342228070752489867791612611305004548004940599675903127683423098399935472371091968968725392691745103863733310388746183046740486889649659490427291711254096979796107606831453455189000844212113583798937500434672261996432385906188796313971044021439239850509587416816434776777601718532511743407778224114771641424964532302751187993305611871510116095190980676945175724851368872879489434019752362848947812794935237089513884072901146013990714289141872535525180465016887615730849404173589023252762022539206083647577765862839795440622821131722709899338449259864828983033437958907458195673045275231397738545013456343104148878361140415075117245107058836481251744783284131768421741609722437985146249159713328107840211727827964111724796023722699273386111268052580360192634780774528807946220798293262798670929140601305206067407188546669872152192028816172786663938838780922941453286751134790936011302771859301297631822599508940830546143648543488914162891149970842536949996858003688882181057570104767187449531622129571181563764925479656011080196122655484308641223554672922642276795942345270205459797735551642869480401233956804709605460174471861796127265480304534480014840924409236583559375658261805827066769315067829300122869621919947511090166085612074552446031966004959965272712756445635814614445839541208467079686730377987237067538716114171636976720805986904853653409467636099260239413258158194896757558815553071723424744747458162703060671035479579866805598049781314832284611782708723974948411976546297296893754269850381874590150187365270615919252626787136066356159245151909245178126556979703217977121688061990285358594815531746116809882922337791957231886233392692897865852875127469944942690337417029963270126033854736613255267939419962764996092401793857853895550340809750360920519544760199267767554207759659055483282096385284903958370479946770765708495391547326540262535637748341490403183608411544778418940777214498255104982223784945369019112804895035548036731457176913469487001727830695451527645243698631207219986960971013923645541102805610791552518428195991561165909044705226581448014269386723535364518775020551032722038200106252318914683329579101915532441806046221581821250634771380309313363386415577052802386761601302292739813438105572376220641719617842328453091435057076559724304499609256677047397296639259899856924111276795469555363703684396220699347252874361105484066491760055952274687294013872879183586492703259224308331800844330202496121520082656248673232990003447691374649549890706609228616066569538272921342681651640810759600763867136431686917918115474577414226765582041969596368893109020047896376587011553509636446863759963546648902564321934908142706670421194806454032024052445603027758213495893421648585639451721486394653027443993663483645959107035379863306908243885394246889879114274314239020054248640546740018451564807491552008216846014676326622779237946334324812838485649510764599530813658857652176212289080846696618034404706148362149157158333269763760891873575241692441215251931585919548796936846662460591774912619317119866961235285241902867359207383017312595330157570728178722549314724774251793651199205372789385998499261563018062733021510838884871278453530282859115878839818813383280269746173707349777466154630595040516352256375710235125680208130059557814743496515510585289014450259297111212518924718034219218184120444507192475057535390521104676625687616558341997203219337376155387805592036434724852981475417644930572077857408537379680773123681196402205091375872610065749789342387226594689302526012471660227046567889372332393418223125072989796115239292153409601991367654621317167898703491122618531189573502234562571326675857850937740980973604132018699395142291024406055454084475786710047391570703567090435682766454869716040393503190507802325273154776096756488394344979262543448919132304835098203459212428343738871351283273076462965331066860169685292552115498811923154729985602504272443032846383313232663105134546724271428435021588415238903647484472099820995736599668673588014557053782651741854473275949349601993674726735852554113671720975865708060680269992148063792794140783093216724494604959863079624723241433939677477184584309173751969944922031122931683690382754936733699648049892042739596456648459918085714496014285952612596188590699694885350020913922994805536493386008974247087901110836920736335581044516601319091360527616922755332439554202539205152382233443637414401973005586312939828269127733363016886901890994531181873248821487606530297523045328072172060920647821932182961168352297368418948051948923049380638089773994437643617978960984473855684646195865492000448918557928747401057156150879971332698154378859586654012109982403527198187377605950687748383151637307449353546969322480345887141108693792197662756212795205203316327424052977285113759295915977755725532066567042177989247200176537350462931742764625824338636023240560075433427412657201609288851444326512702364573728977221220978972508113899370441967613497558776544868330808396298678014183516267998069652421503103504172817143026733390708287574733550821779508504615257260035691426304981005220330802871022244965544332147421634640403447822880520164119858704159465561766264822156022716052728165971754848591189725913102298600951690887540153961405016156136563186426742872126635760501538091218634944985913887450543043077494554257191913645101182877585230136055293375607706091052357066297245935422560032381861354892715693640232579562092040855895367732326355577465704737172244692285566635829325083397177563779887782391243956827871830874298864179718317756491301436151372785909740982365179505835518177522730881886854989174247464328760817249457509699524085353442163239641999654168861337249012641778376002633342421779072655676567360008573928969749328632970332108360951277308150121000138822039484256104965312205175108058282892798992257819575990804405520473597672537172888733308117983568748006504538093300173753568627994385530990011655836268711143384541283654704527798204716107529007960333211065926336759711625935920323172145606740930166612829043301502453410379865284131803828293294637439125673507813347937513259487990321039060583608846469219014594802899647156343606058320702645960623457908288201564752597794084908107073901397516061137349844775386738643753509181683464085141912728106715355274217865395536226217866433826392687458894042925118977887717564852345048403943552217840103868386400248656612327650599119696934487598233734526677137496808026035654695736164820295293133172696414399312726699426187708787343086357262075117071256645385492697612119058054237128302386991140572432094455733643421286887230202319150298907235583959393171537551536912562705277836652666640385052903129155618521540464353058847723789919377850135809544766254497177297235822042592719430491578928620522503079048533825523282180042575913866071615432512504410278252442608893062190203660660612018793429171076421466158979777368574338912331188808081008140624740085628521989565694150444526778339170793756935933890409990587473652784597171076979144190547885057896264183533868184626062304388237996647885527129168334982730385766825103603138880548209407943000476753678294544231953030938696094452102534547008210857954444058300430763066552349855252130170633310694369659895100303440417648768259484633438431437090124114013118513455383849919371429207871831513225967700979891338152165174903734921835856037916314758241101059597103142881339269843260817519481833483749643811492442233025959278368496079310143703545078266520823785632291523310038615229068502983630123484932149434955243482345473007930195162854785637504533312009613339537256539154716642631314785108912208630641341230489421461118215550208123692805051779992919861237376190696269145660951721530855994273334600287816662344172928267969915022321912195484478051904749821789556943638280877147661606198678075071766332817763160339857961035223193996596573721622647427295906861631946856283778964375245193493118444934238987955428607061890200507183913161521136363768653786010623312288197702335520612909596931082530951813388689798495872355842730910485869433357542564068411763352755933309449087663993138445236166064001974930427695824012278598126342849856207948598063917681840283182656389510313857200021915427339856561363624498913058884013727774019294107452901160465813890193267060134946147005559184551634789165842293554448041755636373738943784200798557844735924260642221917417928526689817972144405716513535021531076972752199758655973361361357564849732974300796253531787546764816503239818975527625774409755619224249706579525231973125035517917232901010940495774472499009863967250959588733257305528565751544721858135156821963710390815012057335896029437956599077598898767865694362207349653324173392778370704497005996699889570380845215552647828291901505619575551966824391502267001285290706346627781317338651071499395880898307665777406086414523947953533573643503726471489231467101480017658433850297927451597681236394360199638490358591475983261482411386875506881991680478429564805519235821306648801169454812323958165036876562917700294050405091471274085714285273486332839487785727494755760013033144795370329226863487203922609168048826145734239887079980122108038429030694209222837187616572071430371724406817462964595518723717837912868681937664165145222937019004854392096787269242098173557821185011821880971399096572152912980548655157046997170097433799672046909558807117897434989922978447076998660684726730032335841349164806431053182304535713100433098436170286671024699364829772348234357016933648617839734772705169349849050816778712154511563464569926219031632010465663754518723207550138437863197044089471709958844716433256027335439060422113517953973436816473197973655967709453735671315939879674046397716626147523172800236121088572910752423038703292253935539380637210838729459718281351478563465424120618047831896470366149948383523477711576227483347211103025938672717271755484952087262397224214885745840364624680273581682884778239571713454949520354557656118018620211806721972770293502806206874689130784939404545632710104892764229819338030558141404224878713393013758440409257003606021189842191029115674862356926411815031634247458528461785650673250465001955235483683310022865814840070347150194611350939952152938016867040411957190326356921763911373613463580974380004080608364693073138931590180471894735761733877018359324154313286320993006296534834843070743513867762114007911767164418615879001633997314457691092696224936112756485640752976486852895537735773366193646128420382899516700236139450666945796883825490560485561463405071320931639172732860496584180431447687038488858212416025810984009498362660099634933785922602909106509962042620296226320311562087283495999955530579282418309310843795681075001789765285591915968901830258687720086659569698859658462213272052842704466190708397084143347944077686938247838475634405616567364506611712355787247277341110689995704519990478129145190562425278726824512849420344792572389139483908105084579574186286640623166686191030089547672864450212802584324032968542260114231563709844740012755025593438032266620726695290275210340554246686704931488832220130066780265707774882934019857245938523862538192408239058970800548697972463623199366398209980830057821661273672391840257665993063763580956010744754613011188862778264106764886050984251255137903999786989867017982522234322655517427413025035835858619235653210806417070226885579442255274427904499185549060940000815843520524348212189808559788978648394466385328420274931913444746733025681356994068427666089221132420428663901227153319321441009349791150379543354760827833371395955265830216427239655547771935750148097256021312589335830788077237898780858681985045703883966577705045932632814792158680833513398787004284182172285718470588978378875446161988829563749297802889551889650988364867819023260649915029168939354591046843202842192123366150622089349988648556735865745708474136842502871220601299873080415147782673296218573215016035047539339789679835847073540126887096990816910830764090399812020188851008063481084894973687733752543734956948651105889006580905325405326602283272832655542392321189704025839925561906995552306052174904517103972993339424856902151805280353750833186450203843089363180935464210611023650611829010294590421351624437525192259555100595636997619274560875323713589139006082760142197255049653758173408741263460457696833091093163574800122612330514575940639726230494271154351379081129704527519240812487666524346685225361358975213528416781617636451840559384638942181863084998210569454733751148995143509309414118115782364795761357372057072828528825052432625054921715550763691376217682160714164854432118325616741751972636837358835646531484667070446386541295258412727523071768623882008016502664223842114396003893191146743302299680046145559628502704255778198413659967512872934902728862683353676718912154917807913610813802931424157848820520382854207529174389291327592433556376821441906222688046578471202157196704017875350052988772206785734246520564789739030117268594501139417859736752975571427531725932185882227187322100966021027140007990130097476950108319087481629679103862110342790671699078177472956169194106054741743701107530639433251467261790529071219884307947998865835774989461501374332021905781449492389223382754302099600285344841808594945467536557195306610966355034709177986157010890582639564027040800984512542495863685721762486984593319229924336116555282886591631956023486191980921575786937110057290718083935329529109388621669312508191676196852480920007583668226961706332499539254415427558886169998990574662220655455189523112261039286934397903067423512444843511247118321757315447729026576643757424740322836344602649536744672210305578463193320427102202813024321987798827123253569459437084570927847592111573643904766923887942274741929764732605091841562785970726933539805528996542563764095159612044079574738575871940808648636060585752637533389586738499920434284864178199933401960907378823290785845979563946241446356070423463165447440599646577693573104727482697120322043269901163712003582572638618838266891300677382062588322578156082053195517252203257116970991796784390175971622024335309402220287697973823798794244962789946032104351433737107166396567392504607079488205699453191669626540037029468906902211804040094892316403577765735154520823229871925529577104879482816690188885548630418354823664876641978167574232935066462686750556248245272785828073481141479818619677210760946174195917780502595273573743634421181877292222643123494081778454552860974735977300126873430217431963666450220920531335980310237445121948647226544036178290519435130762868753830295898533227861818179045958297367916639891436320361635513778654517810213696044578545965522052649580643634720443324049467057209759077759250584961409509055662273446993401372195850235077264746885255552607202202411623458264796257205375666052903340497670723525704470280549686755759776494426033649540565658720217948054264362750389120900566188477261991809323531889288815876243442917638235894567979386696388068758660680201658788922968128308503503521605653823973230840087402085904326172334821992153493426430803633196733439617998018437716361905958836940395559859226796538383058760269630439955509994841547375573292099808627115963138672824830770495066116545873511644579035801864059597033035098008644081854205547794635325322344144272997537576091938979316880548883109074372053402038845003708755979480592616736501382882335766586175801501629821851246594014945941292896184812640711677897366637374762422613190670217349483394055731725020813704612242973883564896212986418169993492043799335177950658916646964267223721595451522608579468213905943767729789174342638268960283392562224127999245897271742866296334073108365439716104187468733973559171608051143289865575329181027870519305487183432697649694941014324457207765540791397842442799767802987917418355776290173982075708537787965235161883100998831543594841881887335703343371296243130863872730637708160204559569947437777867835057603708828883831165781829954630699952690741605701883595036997000238447585264485578168986384910777455889729225882587067267772464555694398566041847275594697302411198290583007019035371849610432765124637243537830280890690756376389517328738449634534099500942354745073041829739723562837424087859484345585437710468298674989659326451436339858651093855927620098838533430256529843493603968723162791484690944001991858142250540761781524695874842906910510120567255073798130563533828152610468296238074179446945111825991502667220518320178395731335635941065193160913192465037524782344674683762774492039300479496487867995239898316166832243222962080063766244354590803109342720540773036366756632763208404678894201110633319145422970050674585333662540593424789869654408033152201640698697319962253787527238954485413313183977322585159606700592664085086607336172208291695674522706468848535369596007166340571580208810500654394454643298761571869955721075131183008724541970588437720039646939113589643079078301792774690089767998163188575729115493260525639303554038845655546462477373268593204750878896735736785430896980766254689292135616880044831375003501083013731999548448054951728838365817518212803798453142113290700221609416980077335931375287061105275176866765180942274589318513513444119724876351261060840721754994137852881015257903268118512231755157105268807982887196200426814397871242072844384596772964786778082344427411365837330992523715323213033585507184698428648176412144021998702396375689201228976429417302981003066560643248161502106501120497209515977019494184629062909357221719824175567846830930474673825552463588813798222331858317993980208945644926842300011230251982693977065350623653761931811273083755636898942901826787525230731991432106483352054749151731239611424397719966501710080989792701692086585598699045378893626219623075074880480730726663108778433671389125646239754785347676331304963592312916639264259506587360837859292378130850011642579328567228226210089492092730137415911887107699493906433086103641322895127324922467008088012473097328486480412983742033755133043510214714589961710263315149198371865630446170844078028459903887069194383877565718374009006311937275956904626223341757844435553814353268048891828614195989557292429870693011770161386331892345941096948386406655596811340281114404945285470021010625342585443741772344868677967334763256941939176124476633438024895957027264759405829873895197146412085987993835317302440860951871835491197088273070463022731128698240177245714470863217418452117515636622874481015193255725737615494308577973430483704760055787535984114904474855700075451845056614779121934409689092079109243371527050928119371541167802075912029641069903181809660009657621068153659050178029171301790902367271573386445498802486785602019336477971882498645377026987286628372743127754362571964630722485740525517289058872857177443894875103009713436364294248266060177654661591561948887536444167480950348466595737196894543059214678446804856222564617343622604498982817073672142602400163240776347533263463344682026090283793947205662741010605602382721903343143675644578463443961289816424408195427109967424006565602709483076335032581771411772841839856018192840789578641411408185631485731989437488928297189556696581619698960728998552803180124247862367135454462986652032959055388239020767003963452939420129162638365808047934885327817095220256226917607858195257091521421091588084262827833298488877756730931311488842934113664810692255981690542289026792902703916389094481072538283853895919168242404707501469882212986318033914866788558676503353956698279880967846848002312411518025739372490586124581414615339336337641688824656714217179510175436259892914755750070737800433826670367346621652591630838164869919339239699046509017443217000991939234508997103785973588436703385986594026235013517721519774855084277263914088750639024371867447424550527925398512533488685669082552361602379430020028399595391999585854635862254662523025199161727814938472543731105333272487614002275007626143392696167073145843688484185334711527923302794440877635321926130242885332409140756121414189608370961806271910815461336920789249719415959933195557158512584392868605622997401066167602219054919379687652098610451471953996098833899729604307109937047122143840213509805494164524866544104086006352018603075823758104951498639088882605575105961108984941881548446890838342054791997965384082242833838503107365716382503915313090034588920127550575252569657333069194411237112193576289005662087293526182236117763406420832503151366347387727076501997425899596872863121854045834950674534814634285337687367969578084125141528693097027249732239587670261295036018070388738108077593588388156933367269298605685602964045495202450540743981581872257521549765063781848287500981293941099711298444752829611245193012191738990314538648462304174619860539148779787922477025366160823423752598062213486489036832376002657728136013155738385461940270809738401080156778645252417226199535778924098786189394707717114322980976486025016232587153897256933731868165379766400183183159053439718100841881533314046130503526711177286184934361840816200060712584990191560045793703881666990359972661879669219441156424738065554093852859014299325957133790180366751027633931618886501440422824253093577502532068490415399015031686502524263704985700512438382643831039946667516187968001439800975480930236195217070517464910384378512811130073293080389005685431297215901633753347769517938464877884313573803260991956995236543949370569839380643619400824205781804475718645075271024630358541718050072066159097879119683411874917953790045490383226213838943573204828083107880247307563376252590547737018358832607687338625099392211914005923927901558826369476961731688138531956979024232035930833722859866603185737700080568267759036256053805388969951291230119864801070533602387116352979950086250482884386641139389092064118054499115606879938794054955147383345406202525569569322893705034761880922510484918474030464507754828537257089156368216744029454247498552984133438606952133185218634127227244720775099221962942487286684923523126790142137343818311978448360302357372696415494214810336648047300792282253907315330246347596960764766130439188245651086592363092412362190353092242816768618664655356595006406044789633979654764120598602211709067062315965066093262948193989017336304479247723504273046577576660012070308260297898677683661786884207377756984340385478178153621221788278086976632182815843976131652004683121489598808804773416037101130706365911001305795009767471449848413538050949546813919942760316559611171827348630232708933621660288668493842960133937411940722467724622052494036657728821277015562088238540899060361518334246277887615128109714753713648186573622278194603971563948287619629210685621867764133532099674153268714662672875295867999338226505859045409586161546049151271910862144607578114687596986999515174779290491086596860220477661420749330700841180294185884069596558091441481870950351425983750532881050757375332309508920160445231321690894618731390316190814513249048461405964844639135420503183159971295257772163892738491738631468141559839137798014515055802230514972651270057632254851043674387264920898687947138296876131107723494319265651242237885341441901605018350548313401166755150833173503443024703609442572011113246871350604917486740648000372116339593882638664222488748689581041137809901351918146183972121087793351367506814309575740067563150410072617544910357280570803517902357416132906280003933499458092352038656093281465511752151116923109639920147512507558583499974958241339714131768108636507236546528863438777765644150057850790912644901705741836744632046582267215204357853620338212495052113694138457808718888698524127384843480508602403271260987692753924667726050642045495335675696477363237669077639030337654621878005208870054569042986791382544024161449696781260722078099958988491402065817740540550569480949724837502070945292565620166688732538430479326936607401119829762485428155563043940143897193469462354698328871962432868086822686693081778794434124768557426136701652939746830267691856840689486912559948116085568135788731281590649179404974429203958505321661702104733430127818184232648215223651300921944163690060583165546225813363963366618227518194813697357421118127556674878974416724803092492215048679741125993195393526639641668719806922611976638438341626862013454883459735208361932016942453732196186441454754258888568789487089659918385995440876924623521361548599943799922903539761127734974482934254809771853376013401279043259052272614039188424226187621158473166130378556276507050955522122158478051444196244338986338976484675227481902822284450303463016968648697527463469196067383886360036469747276989020209103758438775677833667726235950363682873427677408378998843803074231262653078504755921635439100093058907513253969814795436711635594334120631457510555818771482940531545305535928632347400700960649013600076100025775932784123027202396798420255547554129925803084918081778470992241452547648335862308309976870477843173651575089722934116493786799449179729892581045762303555880564246621381993924006695668887864632184970360519028221907499914418149511049355471439511327363665468017677253464891795212697588416291299054463291797494389202975508993676321462460179353356593969350247449567805738741749711281040541814588513704782183242460996854360449080319504022303486901288980440273937672046715483739323648004271202466442605645627234125903710991353418020138573022660168615095410400862346234324494478313097473011540966087541953873255736516256344967260546960018500920579371911533753723635331530726239310222700048893153530248920859635554787661349659965287996261843720008496406755042676812049371794723333822248777063802654978265103800821232692329013044190478816138058783239057151859130338110598460811159886594426638904667953107453632712811017182583860908740174878480884686298416852299206798323980841692728628205283514932292129420660225281817178095146094046310736808026641170576455786282961121738965640196800575848209138626881979827957512695351160428884636886067619175020681300373095339023295701796495967110474800616198636876278186003086556824668236899184306561994108594429003397840827867848153865656593620969649523037963768974604469628955858398946381254974832570709568544763636055083609193699676672635991606945011363608811865168240565276324666096031983310179047743917337376808641857856119663972347464422786826236607125967988784895332209676174067926684241539105926397451576129481305293157756975713539639745808816120038204242923797469139739992915715345446050800441621554106465407747255372623738028387195896706447933252663873207407124864377669008774913294531452035174076086576630123467306063617261914742986733526103910503948998978213725133143765611300153990031427914212154453058524668942043852326490918020562214606752663030688263415361221627761696814138388769582219736356661152561492306281798690122114443380541701243977773564237923730196067476816455732262186401113734108045184738893062863025853245276257807446169399172108751616465469888053618127899508937352243865342597402357153434241281282399419328516139085676522817818792302240826682852398429337564712477232817638413919460515198749624985387766285214704900722722724664407816576155403188393009642089230349945441828159121848175433385143576226867648843493609462519533935581114763172439014875732498105879741727869539765354133277806353460891486189993233947608349142830436379540569459385270510797389569628782834788228382818884752306741342946276365558477506687835420744338395923906818017764921836692987795416329040753226771452250079464859355651630328260349843326361387224175861076011341520205821517781543072899468849862972045466222561486664279465966106865064135460436335649600444672713285990635796869169788731256795979270817257921836315738640763357438738354503097666707575387648839940971395054934723349905003748888314227469999598063338406033875125594400968532565636135924794810314003948243706815835928604078847363506438643948452500226886992600126789144739127333822709946745121162397831811778935641069366149069422110703490601119013610430727626139773377966340360581815003917176338052161267902486349822146288438494643390001574908321699427993426437664936892038408217339633147327448475680496826596976680985428879699379563546828195262597314135472263548636831279428349470904583532107903252563204648026837003397367610545348079685349018818224153051734393610635498163966577728045554687665798487269502563241951408548064699436998310324762093943053773093092250075733478554248094056263094731606654163096829714056331319781995002542216798508787607369054505718063596074865692106679096685895868326284659678180882695160006517620779475894838191414550889899765531509843291804156942103424348322373198387119442586966768307305425664671281069043002795420963638671245507120518823217425882351501624609382136068639999618487156752951479020544556258936237388513624976168752617262469059709390562443954311063682820290171934765302318285879544017774935207033253046757627351437288070792982761038566376084006384883217870323596832100367130131842461175283637186030170279365092564678416136042293184061918808237400430876079551965441298428539001805086971158127632714329114844309422622613044203462475150614380054611950562358317332309403871053874176892720224751047604098233345597576713736658221387408718814907847048122930701462187965363766866607313877327282387780916434397463397079455051234131152341535643443153801347827730574604895851759947553737223784673886937294264730953393974940947748290965258789576917882548188872151941415313413951186763044226242173135637822969660288545578188242852116184310666282429438562212944752329719112957445805819163485596979293890837831069838949707810584439285563650781288222639259865714978666007189110693812310800017930047560901569543561853639714968759737384067034345181915501482420184919586624760694616059812518343104849237032772187040608037181956687600530189761872838731167267638437019280615302359592441331783962425003985835957988701080734690682870367025108264525563914508180875317045363034031915561742581616067979747812900524054012253495531751184476596207258812204930596132661291068320758448206350926242211362862489692409426271152019989525225316602745845308557298303363054006844980964808106187533768251316416467323109659364470575990177811754363651699289948265668015793509988707587541829866657600691905140123678904838305125792332115920622957851196700865496895398850306906957647596163424766885918708434432548975320355447382041865884137290535742953768265356086108585596467324867447713258284998394788251653229792496542572838193570454277704856372723040073352784395914510205477565960287223391710009062587272238437928794791297237846778818863677429320019174487569823188272303824876969235847177186539880210164254736204178615780378813948372148433816770918902204180754535397370892644847156554983500638475686520157841098669748280256665833067590342510003114227074513946240720529910300064540685968328030048669521680826607303032061478250634515385958053605263935845219135496476777107082641345583736224294294006448317682202326623695212566758176391433036352202589562716457882034212494406073647674814642998262403312605085785083221697900549510103048786594227235786586806452351753774869360908203131391797050788898011907163086756970404203117966424983001558824790975996289898554566665248914468374975106716409177511048946041211980855507290709435102186040131862938321360731018843924256143085050824552904496451802708331571547102319368899253575520625899162691873087954252872437060409060188576396042069941777618071529572697963695966398292767849542845885039243309580019596865506572179588781796655605876927858949428420298859942598039608612287188319832580322480125613436169807987909702028278697588964191572199986876394491851411234677841093691895062196760376162093156320870062140208894186157119842925194104164168083590486123620207385065386457416594917629326294245616307400809263007986560029323624493609795905029721274933804647696404221501271698225202237713457144447240234145997214960090238620549632194098740652288723455076060927940722232362197318175450923101904264448570029709457502414125716001927840195128723968098396805369126326739193906498981100088533172073259986195029793614474191254593579897151144562769350943016269699927958829018133192815551701576062518631170149124032016329455106372240353939998479201972800362520732053519578034286017027241667399728472252138955039061646147030712437145423452912627915651135429155616907658076738561497270973281877009071169884100101781841269295586398378171315291404663088044887445797919557308735297014179202118966730269384641440378424724827808070876956203873477304003773123415063340732191355887164991765116229557723833852839040371846390426961074152195437012154778149065554257732164074974036889551509114364546972792958555426748053428627110425353778055290279559442946628253950922241432284005505915458612755347224527542673693965845416975175070075549452445131880611250643975697029001116195118375724766024009609229594586725686213831282164359554324660743723983005639487108601382646711121176011077458355747045332129882553852271308465709713861900087503458996929332597733288101264559761393092119883484559421532797269470339688317806018906887389215847422229521570983021873680268427843634141550090628326468792817588112016328253172109333669700563566749115166902119840026377155212084631748788369903860029961283546669014389497951003971649956244329876630357883612273305916199240751142731633109185212094573379156679285125303259376790115778768136851446853970846621754074459810614512741778737446904862406601635067881618532662908425625202680544731852591564724595509716751429650633852263994364974282788132172644484784363963760638562834346795550470762591665277502227748405867938671207219741246003995924221378045287838799216690379426314051430257253307325776381890955520786334693327881490724147668965995330518556410566374482561878498952605257807730777030333185186159156064000589565506856401801034410322449936754971892572182865216718892858361666145858062833838861846017789530286555418361744048846206077394784503837155211377109282012337800092810566595180542241962798353312775202252740683633841025777986527596261595101729435518928761744437542740329014174873106343655896485000789103339315011783428370223284670811899586879944371477807244125627971157407054975593008479477043885992701172578401287098369721046971386149914217327904938644682557708547840881148907754944968039325685760362997113701298688272822591749712954553781455099321630958989221975452124616139279253575906145377005755562388581612685789286490463615352760671459761121452076150832513293849328147528484364735512135019428079644758219038962602959627840121985719922989734970248007948394927025399860779616183971545294382855205312614579514834443468354535656937724027522012316503914562333184018704465928661634958601542281988961709041815031039895796410964575254890604421649121252803274338326228980197138829606331413297005078536035683101813147419876229892993529072955773609171107406444666739315353700698544509595896243685990679693109839515806385897512467569283972270087075578160826371357101416205271870255818431391132172658407901757055879444769790558157169286859668656410389708048499385764759065155269692603730087012500269158034985050129639432643424654326270707460951268588147128013049449842915875096203727289848593964983292809686706659203071994595067555030763232115687554420535528757431491731591841847229495610442540231773452050578150633829059981339854071785373970155690611565133676925885666727625253572982699048766796902100384743590030303876522698679350103172230259942976028234161832309188908611991150564159428296627932402671345520502967703720478822526179116493771791931015408002475894824727847404627937551291060974522661184616536967857815687398544435242712000602797269034419643886914184968397851768302824128719648415079938729323387811432044978946556621496807474686786463783821118854317739731511249223891201615889419138720072123778503523178531670807605296978751589115808951671767769421156913860941560881693563739955793887594596217173985878736218483863289222287087816365840923711177021259078834638810070103015718115703859558403654912611172030928525164836843896989710312231929819064528816023023038421171155507434233458020155181737742488394508198159171757535515550531956022344755613025418204023053105178789397278326705537378037059893073282927800724812515252723382229944696704814357841231762945110790203076360378552648329850793839866165955441303687273739843216700499001874164219707791154926982345767103279358866830830256509372757049637350274400564447780044975426639497812489612162090862790803434164395546631810979913030312851168306393512999260415864312537620390615721918003000874613161501910241457294142313462341293430685158521482753926450481454280911404763525971280352772006931123017163459544107841639196089295295413205370999305388947751936393070613586161879127820357722603193874202897495819823109886160480045317705016802365119229259725226524941557716940111611043595824901999683678854570791161491530656497270870365502182583019791654364007727889321560827497251215604300110487319476225203751838298833853296073154024777982638669447957100904442054238031095546986671907243426995369566126452340473989880591508785915226925657007679688382541912356278775462991067545385095710196714324385727206593722798925679069033471559773916754571422123864646539210934457287483185138798604916012330798462072310595668710544390256247206639951787206673712932210278197694519812459040584859563728622959677531276099732945256741626140522992119635011613188179774655736906493785149021316130480076901017619605874879722022324100750564752073533039096467516360603636427462526599418448724193860077717070845790207362942693284308419926376227802315127393603535942879638095953648036789584084811393176482158567553663591814114865261577245002814434094867320130469685906298003844273873094760491763117902500536607555379825420612885853483550447359409624378258711923692258995492181655701402043966349905111032958037947003175355085482016689287925889346860669768240612141469461928192988490663653138365394424937933156235319854920479321055987640015274150662198192700514754614773732662333063599699769364340649342647740012801473804782025256111194523927630796081321264524642068060586310632272291522670304945541059353775486502354170559023352181854704351297122822384779026820441018828940202626152225758830267332392683872264562283256146954811419942043441817527080885425388540111444976579762663139340457365761993602003782655279291663587938601460172114385498326145811372604588841059401785698140380833949841931220464027710639180042824192818189819962918647316890792753861844924459637905924719448669401513862942474380121599087206288372438695497535641035428363768083858215515054625010554603224436141254037346406025961286633001003780130096231135231844613850535419270637701627759301438869898697476689147171765990039006341619992417212511161783539866223858540111161583358401669019026387720212089320157514020672731175510104726962752355913767515905886283784274924534969743773552622570069618092080980483216939190605460321052276812643706433436849338785965483565622932991131603717302403331231943534552629050142313212490516542240603153751464651627713676836524589021514799049965659518300505141774592821161193499772080169719078842617451535129539094394374384491634005583118867999700212478088465077766208711817711207623754822663573904507231839858595929289119755412847764512139270544184978622981638806285808813380242563310314016019231632392758483834107780530365348445164847254325720958098059197016999921490494228103714934501412602136926079262358791293409754540906093795534457659544903981005756012830805651104345192346566166627903994692346614926604994162266815143676392797337909082221620957504558686736716391600338962859694882001282190210103986413320620828041108241025659087299681340741079502650321515711127757263240236452011406594861781194212590916541058291828367962900623630395935620744522175810729091071775677474069607210446218709714612913051548061979091800704424607104494728159212885273534120578810445109298587953482803477324603072819136878033826829464170899274814848485651678987842471646527400582779206146028527597440848238063117370140893813417917880436337482511690821605982468074033418182982644883072469262862013599576689920585003582581700830494200370527274204322977782618658628472190239899461636258141468976698631009235435799019072234739061813498934245258515498662535259766512909697878430187785162783635392541977405985227764849098957591510773307890894686506527883207048891409330205276644205355791021443986446350165429159965393789336309543874493965168807086648849536320440265989610952198540330771881998550403396218170886592950001905465340561306593579768593845776265729163895033855558434880145834011584487620812712112554128296741259072346943302630457858210904360818877395952208148239562480456258049748874616787952843527896691753514357972769268825936750463826056182404289710044619799442700513425866582390532888030875685041232389491757998209580170399123636035195387231405247023210130483862237073536958108969469191685667937908446720427190364427756607679050501910979350383394040735197683807941850140451092943211968192640295672613219950735957158716981843368677687899647853307536629306428698987270019931942369597341858078431573457951993297003590186298937145841023115191478788490382435431544133994476335293649333806206306043980760852429763497891441627043040812477375294167903373538990943138139454425651866153648549273198329712240200521435191474852790786003314503607038316681342445210027320281130833088739176220298001408835618967338498193190458443611716888942220638064331883780169438531429293082560223980340326951535795824020999410192803947795190761599607108090303283352555403274526274745341751355287837341821218233551480755243117541558993648000716400741322348580094287998195308188622640900348873624462999615191546090532576920684818327354132843517245525569738461353553528586276055398175024936899738418520134138231050022310364666572818441228520655047645493985611203277840934250219537010785030101961769510652987463070207424433331886629220825484823524488177541246997928652710342156674060208429496043507745796594692672490928113136097621778966336818337906325206062622669585354796846944998755775978062153616798749739103471572994858243203742862857969900915714853006395640696433804781322446091518334628476153749454372514694256317285160528849480363574769951666459188044673355267421482606303891121155434158207039781661991195486290503462752029914066628016442170664565337969927215811085805041595298733153798694031434444273317181557023168359262278198208506359963368195737058682310423901666723179609497291162918144068171258245696583702950153305073986183516060047266272818822598347507699062737675904745001723093340055505996677518077065553962941320987982565633755787734442782204356195208554239092887211933081995051013142249240357675946807853777200482934267370104747635545839945887957730143543669188041680905290249804342216967635948358762457403822440774911365974932727510970362714556062407919096891288848893531907966099856472401820036554203785246568043414204829491319975631817941377309550962647987136645184443519087415745868060361280151568146411651382042724111493393985292046720123669065559878060994501840319930626644571299841861073963544812560219621120059066377275869131285016897294538652426232034768271093636333111847484500450686673071482866199922242117019584087632492952721409076539982174164175563978305708934866113218430057933870247186806242072997102017218583396209903776733686128316755027696445865890262420481245894271004298987957233329017297187519632270389813390730935161144086510589387271203433573493438753960204060149118537072102994426817761534195711853587440088531185125686891398372820078678357538216971317923270632517890167487804766615251867285298010111787921626716599805746066021571752254152813281664095544469619809736014135022105274378086206913755151606616994864621397203122324092351553539413050342230510419984490405522117023264912103881135521480274212385845727668008773989530501134133433084139739707188548630387336675671057778592416016655675319432230006508438808895448701057695303588738843817272153404599876058233675968883733170449146280347997426481940941780959398423258785500568377543000035530005722232465154843531886210432311790550216797330215201870440915385435876194766365628017061139469420676454590024391953616299823845025582811996605116216513212242869356961986003052300262218425412663768679840746828027063201844698959221415232548729323718913246212337969105147657208946859255861451018730715866782510621900704395226355317279308167248607194937595177765148404938846248043762228017993266218498077827704769722234237867414752487207094944013496088255015825886458144369239501383895125802300861353280547275852546629273928880864020690896726593160050017531372559916687382461362659501243719237900271610782237370552283133646134401839547367325826065739883753825440736517832174574117222140721074832789499045235879721954598550592365317397342079739232016736615089201245764121304120002609851914167280838780362127522819615258955026128174019368898178418551931166653412706118060887417866265588914159905027813154747079129133531253786797581619489816787578452480568783697267717451426381728292300587089368317077501754043369451516318209251401605546457257043624218219997434070907800807994267400043655598425166938981277518415773616687015912579577976813154365789787586857837779443449918176560421636847656838922314351532818803979891231489130994635525964059853660481357860861619131325278526463046342388966571403164901168797516832216529970682296001017357365189669945468333839022124515145893275148492075816849503941075398312118455784518809120002869280868333907533010015633698351850667316202282012015135328795179273437419926374134367103205654292962088705040980588576968457400159609158594536932531726096933008534207000851568819098999903007614338293570295557788675071743874850806230051021209831070955160875474175711392939767959587640597089099401463046364007997799917800666881286094542873099193354778780341265600733782045029926882774766113712749707795606093137462802793842430343218491345769057966473224149243149685288233928976933247759796112744145014009135508372972470181329476423526282198804814353394816777041570426510027062417254572950604625090482634514319640064021171495586585328038646455044948724718041655806311495499498778832973584237322610267762014457131187971671186640532303509866646609194540821895564698394088702343943918051914177300788464147853456721780618911829788073614918283747050995843994275890324251213572533385873072325920748606181109305532812151464275113124475867038562064160616225044601248772796404233629322720951840180295734687993772094172878898344602661666032896378723210457623197057929097593472546603155577313694078697785429574178244896133137942321614284661510427147223099069051978736319006207766426536839322261785450066812879458514344719049227939680096670673507795226312265892653897328063467587210738403970576587193455270675548550115402381346285405899609744524657596174357674415473411118124524009187312124223453708150222534295201497258617321952378976255640980760912470935095071333396338576965385377428372364939231859795211057248604640611730533178291502522421895330676659753923665904823484911981608954203233311566196532232321655142058058278170639675743811775534817463913282557239593569538095025991485055910485618294697167285856101271182034906119693282776913378024064982257888163645955559509039831794730341514523131240730136111613930895316105171274305844877201217866055892650806416862325863274969548410076607711676799166691035312993424531814498743056802130954597074609160197432665660001220174883710151667183021026801019092427648152270699995116453934785623612623908668548696219130874363292382210582241402193911342144134432359029127120000642540147150363762175774903932204588254762519600588467428575369203856386871389388735057541859392200349887408494653810796912510471793873987866656358411395447855206786830732051555482555004346688041728969375802251054308219326287710053641426734162608641064039709658654747667917369170451707762476715645103840812852020561979738355284760430994103369754809727049681196760421808140674824998439655490315403607901624230639074071693716581794738712569367818606356909037222365601066986678962951617790197147216756365469645565835955173072848801568705299862327188988764824482960748492572452036525784210841804174181041694517420091154957245024625596068041645404222757060172755681660177904687190728145524321993482719865554992394095196777946574556154995825721078076467321279154376236126446780228924851597705193667914537162486404583793566096053165925985647491504029496625016056284330421990650304861380330673936141015436245217714844329768684263390087252392538429103269852857889000238797543598849879026631932712736445279644828356237037892825439839515202597147683304155198763123346949816259560431302113950664747978388293792348588296702094571590860050254908008975578932222713875071944419089775376202575284418716870488132844308541339590976910758671019649779960200106487430240446144986017717664056020820460492469158263620654781041810211424377333721345974407283895920409232320011398300746710190727906330248215165572013272245911648719773563615502204437739383345519178430376847620024935765225127003119183129607331891163115087491671514394211882519512956076729638859787607127586221304700472205576568790219352268618797336505258282561617663203315009485836734719078382336268638079153772818024619075273067819907141863384515144561083732340298366097614502369716883961744647320419360405621541713205296183434437679405438400887909947613592339314554942969106840155667364935156289596666993072105074727850459742814840247380094010574732905335221476932609595028218292770985253137329010367205618176435672482418527541555568624080589284787884084507747738848826906014545340749235028352857288725102850163064931572035247785934770716706553465822997336913815576676554102466137458918141968768726869410457160342355335026324350720953909280661347063086023547496058076534894693847987439717400839651795968826362024584195279848423902926475040982500348031522128978479489230260075837557137166939189743775387510452141111987077668629253314824470295453777850101303537120867926284747293713918239568444836745327415418731484715909069379825960128457197132061070855205706228276644844845835716364926746416831731424495660433443663913980301403207712349049305168080617711287951854539937905470376347709648316114943867134959472342364657350943573636682465765622359017026475418670087586930911305377722171363619805357439147931122795591025674941108909091318629407873954185525693991310305055048142087603148476831846668619356992609194058033757010463925008371539770399052237639169698986670263255400215792905208135051755873594258092556835512392673564267360457104381323891506522763230263866099674048145842372598021230224006314465068108610260534015802187497917969227678547993197585150914079421953314440176088379778175546069375671546278179136699264905930134043803980413763999287003788313613022938182379279246752891460118412497361028495407657831429134631972674842678001127306477289163372048832233008946216201640956440086712807322392642066997572139724313673217309143105930197503246852397107765660599838586439868000162551192195141836637419719126206980601960689265429183368989396764724111618087358924525771852599683940327228791489773844517490778686703787035340428631257699499874926238860712628595257419108797174767104217330437519873419249368024127407024941756136835103302205171910632475760878395802745136282538718411497963648075188634398048762254741722646050304824125191365935507657105327424870888469627267355840378686334300951086475960648709675213684908812896400666994637616819872184550346178491017389574012908228251085528972123335629697007599063264836952318542644411378732341101636445241238369568149677438754959519410193896018072962375729630070636302854486979232224186866201838178330033076498550498980603809421327304513513828748201285245764561971663873352376427695194173389695862567853183249806282863488212780624130041577428631977914070769032100612221039161760522158888438183947684325320730693181177498476489056611676966821715753957735119861665547688756606422504146855211037031289704261137231490825354238425998207192079433205265034230577187957974811809081319435085800531164821418808106277546308558975401303220782291009182879666036317792910195647290100202968681882840161250608006473796517794577499949552676614002338504892414254796772767822496400399448200131592065656092157352794274997085606695492322238438137066522892338468701071377514641594410604180016442656510309242202537854712978573148150512624426077264331889337925502887378846928995388132917169608270222443372819088270694194793399144971385877155279381941876267288286096939377321903285764107290503888927209580532083471535191805886207949412251075423853281912025899217887369118874516664432348008674226925863538247225999481161896948497544748591056509917665978144643471902229127624223458499537243438025012941988817243283881564434962248174376121258078201713771775940520154227095424049135700461600220645833886473189805622108031298464577624112572094516853555001740246585062524625246548866185402758641158628540584841082150517665999377170582715839855793703627570311364763038016033946621502598303832674572278690914077930337094257790106055441747645834103114019760912388625128511105808993918308122635978878053946118138602223867382411258881990778743935791025028037812439549797858167740876685150757936072056152459210498920435038473303067187799962746928687456635757674471124075092070930737863861231730233668071413931395361046119220865024770179245231240368512754625875454687152930082947817974607088659520579596088286678684962199441027716058091629792506989734351104029047767299122924687658385635569812345444106684395554280705429144422753617817215822118535246794034317782328414815444974067237963449713776647721768183564327922594313344165419546980642040046459273683779578153101745755611342609013955198885435351402992004249226637571956077390889394254653413190702477725297905863429181710223539608808247536277277584227312924239099577190325184060581478633338980555593684021180450304575083743884307378349628664123872830706326343409010226798581608611290471751573858703267842319240264260646807581938150835081658050461317566309560376767861769779053025689598411875865942987419891680552261074957168583934249009689946105567183256830467699294761146465037668109266890324286635884199063774439344319720757569600707763651380840487665331868035691739987720595549474714674163570647060661737750911800637541199618413079605820557041042003430660887637353114052455911117672594015761878346681416178148822823539900461295122823692663980213662747725816585376784367917130926235311794046971817017162803319182525353147195891876089817065388613160496235160314494896705382674082927135190361061366032497200771337395303820075622995186378298700287585760303575704242424809801517793049021383664769465497378850744881942289414498873338050940124677911271706804900329914040860871122436813318076091829937643004839350792754615320046201630972340056535614347425846218683288551828415536624875683971610033144815477383815442834639434782406373328406632929652555724096593401218738452582280584658911776036890893616145931938284756424922405387084277021708854974056056963619295239900927255351363406489434268509603318385726983549868839244728594430715724762323499116715988162320318002240090974338748586308791500896781885062490303350076798701425275864263251787032198334994948786009185845582236120519545084015527133893015223597254675885797864279929541215106314848898173549208071158700673001688993906093183441177396115314360881664331799579402407699160405199220431090095342074993937673878865259767132445120589914890237071735080208610135935371034282491392683697225049524998755281397171367730072890405955448874267818293744876363177735239345096990460269218194388347212490939360226545059830136517435278138732679763776673205284393699470075381234209123536786266227042828724385497432179397250725033957628798734701667082202224943138796463993814070914485851553117305661612471635319569061584184044433576572173115227436141762630252650179678060603565367330409344407241935312877974856718853180060023378429772451629431530730044383529212494272975673310688089647251111983715286089864812193300943331976561118419041398276663156428742000680901686201135011687821578568317151432775840809952826571138054649200415548032445471180948818736526584666858119539270794636390209954413832615867222764608704119003689167633202829903751351730145049983814318329993079481559867125700976793312117912484257958370769366904799407840468758797265541540957479785525442398382209962172692920544768344708194374937067194532975460987756704610808546149876427762024043454302663836378775527863359557962084337102908302218893026204502844066697506679416695009601722567676350235652481747285119745077002661810183873401433885384971966212728258109510369491989161215541792282825699896540929351946234644868342730110219796532181051695457953994813358936123826290421609945577135832581430533337022643012527371791311210695072154309058824738849856725270836379139998618102172215321977563522719945113473340891163165507539931311468893022640170671137902550259933460310026797634555420758750447569859985024986251049503446412683339675635929030023705283485936771740460874730651502312336019184997155054580830090482452068484716693444354546470969042727380748335949789808658628644624479651986098185403345659241751872004266106771245405968766792116741121560684554971423575000745622508194358887514726872082497778319009152747793952970051415362455174316188641819941731448352275602049379249159252678532616385609410580432518120971876544517925988848591528179565202638313635127523146335513651445694825902422721841226218576490765986112421698547551156701733224936262400775816140037163805071725370999274579079227440042423002382509418900962963410966046697481061942116809965918671858788748405088118694492085314417017554380923191412870132362391310628051974727991429122832600891091109722869760634978925250946864779153051536004842768296930395561628423761011076775035694965954905186553338467908465925391428547454155417445138275567165897405943620958200935524458258747798667289145703932760564633695563410876030917660434658514907931527937522539224507826252492568323006968840644149142721680234322690165544674539799699397118236678573889478824208882577045838578044189039779238211754062527744783254795112103812795615532560749068730311246424074197850295829524362791240005807334482220407257113738281477645755947449112526624765559234470599587235289656630301184812421741630513465402829038194104894147434337253828297110073075895964988364471127456249322236392019497669732134047422974320861448758459525705294106036934061621898246257107555033788979071159783702262698706433232768983495636808464426086106230792645011209222504894299105998905128700539721239000356130016400678172437937774263427194534247067905723505588656281154525794015504352906764633171088915898307634657477607502222060937714638228519301258270585750671477456938697312596010521630014113975772957711444095134092622095569705317976694274590096800923987991028122042645927969358780140520448817152964800115990199402844811708161119630137068232445353492786606002642143984921850954233169328148993770888623557309905081622330215521539554417081498813696660547110191186264975121405011503272971119948565918019825771991390052378171878451976978892939426343220612559920232748047549917388233753150685231493208803111990403126723755838686855031037084764658838549300654502448916116685935921096897064332195561557063401908072995022455322964250360888384503115867928177474430253269272170718390474206788329275442666691409998506450253257101684599602368599850753112612778131213567060695905214529722563086625678166975219032272520284537470662272181827307972818266972066385839001328013470504402640821505050569645733796637452946200615427840569040283431361240405214759076835231643174805995009108366323976238784192381500786145241060145568027794249027079337240210439777771349836788587368384265358087193987133432357419971446361962889965676781636107824464669217149375863070608581160367733986297687524311587843259917308287745355693271043476488772059829847976807115656319480474915099990221233834137164653233229981247227990957720022728544207014394118801019532281873360045896223999195626414621955457899541269077140460188616978418616864458575921583476135810957502465025853595214353710401931013688055737226924260618534363722695109315408220099725910822362603553025668230960832006126717545900040567853627425414139355221972636494330717599530302341639849866269257248898480870485900968414952423626904505914185515837198573361498863516294914172675469474605710486126464045919216023599619891534646502669743819886100991810780176718492540979317272832428656803877429244779731694921818461193330504703916199737234693671769738018147714787202814284230509218846339650964372058271876907124606681660930580893688052819908897708562256645810668199078752630915099983823531748063257156433700842535954868620619929826580708109223460667632523557361551923047791145685169585908942872386216128547968371425335991687680644991439407395389457473853322791932902190435573078792387288436572912978712992740013795801308822788491092884144408941953841957571720196735881134278823506742472581161287753829434503702848497576244232704109412403108880777738501397267526809839891896120331380184824451751885677145995387665482218696075740389627423186512493613154189702980514585832674384187244507584771244016368867946759944349137374807260007315092912124824533347202649303623627371085455484677795332675276948996383077636554550938969108339728817148857424441932532501267245615244456260626877846954874013095553631078850095509101445706410750875712397803194824351064447454522032462254225779866312589455550987140306538005051533446591012328687610001934733102587678650369472478432039417333435226477548407147218638295784704686512839369063971069757049701491728417731806889009684979045690410229359063050098203940905270522719514092554734133516004351087412047814903267602337479131116138969385365208756570714483424656365790376811935277531011381450170645359132976738524812367418675467874723149416468463448575079150888504019516058300904846336468790278671298324244029192980633878539380208505074600214402376074431149886949040880396922063209258129335981700051903705060010674016987740450870772599687302804737879478081952234383310014626525119075926254816777929935928900489303534910963351054653157037427098184086786175718990544153356084227860125176468996588648584350954355870271839631332850178679286119120217594891414295706590660577083983470394849166255670293573027019019178418764908723523550139706907437637070272325725964389200234813530610527910559613801574267013084065164604073021891180268756662327997663379126618146657715345985016686105788862376199437521562336904328136657191109331488439124279304009243501496682186688439246770743776728527433842962164826216614056789799925578052743659953832819818693430817336644230643088149783163531910245833113023574688224411186818988731140923139215237172189489677228469939812798329240090574842281207817406824738232005749766564192804965749667468632867053457934552259354719572139913843195265614447155941965340237658833355459171505551313688150002774020296723709111250451945889732129471615612628843605756857808343419777158871362109263790510079871531400626352640031334249789240185133881302826011804575434384197456144712997257004793664262760436738900355509099521021689745623164285037916228789589554074162761966617680364900979073931748490272769540893497507041404449313761644414988753032552835672297057723523491508733651956356310338823209122966211036607068018709962315521576201773944407301190371246809514242372474295853748855858968568188109239633222903190633606352206728040861581760022075320008099760454904432543764985260264126560298683486771145919473070447064632395879533436790990996423142954191841803659538791092932708278413666988048273366265676135983869115067259008936301213837110601123841138651619554422186784690363922163770030395365615139341297574655846422568788783004605448106092351913085588316908434606808044034036606297625542466014589329661455850444005539346565163722005962177095702471863695950544602188609616818606562257652268256822152978498107790937516544964740441392838810376621946494995660011228091749635828647552230656874245766288631765583883038411537373981481428558261237567478830582959001312696863595416864937947698780646754673779775486177209762703345252969577507546367493198096922945557358277344847125411882605375976482139422829620302775546861499845661105466549371310537559749602964326528372891811136147476238602535871956751014091493709312307442654004308584571323273599638892732645477029641202584920817968623155383249623312868713119068255449760316799429439405558597060189312529042617068513823239316760075347204684843238757927431543887928746948157587386179463401207748907614574872037917228579319943091298075622943876025851839584326184120769867892540385136892717014053675935978104247733048543129231557515629673557779620444799024355891086330941401833744107118247669833302432567286247524972675816991303335263334246690499477091018729081378654844421901973649813424928409563940759528958655815073958518965352159247450889378983258738678051281795156433788849839315523540268097545218836447140108089472497442537562657560582074244297119371226513043873369029475243123354585115936290539262207240857951868444224731193722792931124567977116657752032497136246953548964902540431436024025589170674326151631687848858589469656390898269448939684844530730299485941664658196809439216682012159961111296547081704697094686243851373901686995579519850365916976623078401860716663054199869004412243574178672340824168505995724560984041487606597725619489796920732101545595091738442841077203631034904282987560797173219216900009157648692811567961900415566930620649538835121828778439749106314361602912438176427672991811878891031908932112843645440863177028699543068917209469814138803828389453444042817758945627974799641246591429563447283812178258421487455800856751387230573466401708161038691085703924647245845658905137715529120537021111740069823705403345932541399780766444190752384451281460736505974838902809218408684230145009833069287479678300048709182704037700795935948178741422376789772817234664344308101084738637172345359427892382881729528698204278063332022190238526461168663311450750404171476655217748330491466511899410573127614896171944331449098226850966076686626508286939998624301325666219380747406031192428307390238539536046673812850343737786149119356195932399969580558303994575983482027004857421016122531536636413694463606540515925892249950756702111238302350338194491450457465814649513252860776889532310339473477370830186738400227680075392425111896251109572648306344734799568103631874000739440145936653264053235338411142177721392177024514447445593530994104533262175625225483105351411545684448226962010602104566486077004885066960885914981417583145744835735740586795035987982436663470019128786087238086012064635090102421398097722274389452208781361409796158903623228309083597480483660215238321837790911378352515349617265399806367331685748218505450393872681284362628065680655267817552790196211020099283914666838496392238076738830907330556091367750194871724931733278567622177441233218786556726721241066888886763821525342491550537071395599699716301864005340218553360309934411031924358931645523744037429422279132364957868632692704206832496914596702247564029091392996847262402418040796793191942794395756246943646979891704744902494582160784323594991285583568311563760181255674070110623902594747038561516858928119970899603348225603532099719155042908165864647808091156119963511116674817423575591179274269088504729542367492786491247881416065145466714557101188446659086187988596640972758313823230346808093357794399464249624132097691180166473548786428910924588539162988813964945759557624518453065133757712781648570790677812357981002084544696043481451712883415590883246835506237327912093721212135183665831840656080647792234047839878013761277154185833655027878921859824954926696734937150766659496541456933173995217191487017977896701455008934043577139942019326506875362119867450034619232268680196001615553315061027882828328598498194999845776813454078465305423725562372551123202687443862337136954572963971532283273391349187648720425828728864261986337058332811830083620021529606506314902363762493920373710936597425242758010726589835614487515976184517418903394343641037781518217895675177256938567463505354925374623414856757325641606080574082283476758136953803489119549417063673878236186146030071762900076291979783486545762217648297350970577681192673178239917863732910804296728256219364800283368819907593988648577754413208276258942107981482558175904329881938916147081721576285817554769551571317001361164649545945217594211546098359522253786049059056060987607203055465307898313271911583818307176566931726958090019707831379973259590314560532360460574860613899945918742471130455054706601724910475130779885660237675463774931657143740614017218034387014456835626988340206743289774399979121710175206692140647753906453712909005931370349054294353824085619284881223127370150351527355000543133592876592386711921249496084646389651529208977438148750286441099752113309049781413459161472857644173349294073252468142229527262552917728974935895175646854813874419108463985283598694069898897398304124630065617845202043012021592762713926180570421649477631539811908384243924421852904650179943402992221649966964938797702705617387779101067194980439592781190531484620074155967473996508463821008464110348875739467163788245829848039084375894240580077152289592407911704648654490563071459728378722371692876891008450656885076069691302921354569545952996520500648874210609842105963287287110505750203822116873829122684336931805387917072768582987641814172383866321549361171762534495802310152013377399003878174180665538247802865137779893994476905807782425781539678911426826754171334750084476184270008336887102034592036798905821977802870558676237955749065874057701629447358452457468669532058180090264099689000195237733899500650652263982141516653853083611473415302946040525442458782338920966064189089036485370822569320032084223970357428283685046671982562684772287743739861140109827994767282476699099289876794954755630295070176397415561392339457109343167827251171220578673082834688114109326744926449738780205418776898649842478077144582052673119556946356645575349134072648557407782375484259635726726198682952321073031316256876653789096845949782459102523279291708449715934424215803461128267618938977053448395400096173975912748627437034976220249206971379720507571214058285538461572347513774811289433980438213264716582204053152431843805142058552377741212459648645489980647350842446445889420979802872277274338645443312691683445611626537822914487254169687744390808795873570218282621544367572211751854770132448350712734134097266241800266502934061118082042519840281547359034299879197625005842102529826645637314008592585469951289631985175323491839831333793810372996233034232643833148913607865554024079579256420955303752680211925799997657146216587032685802519321054187193831983902892852644533395304291415232740568513549938035018662481565910869662317524477690908077767500342609658664708045094923949601450317188379167765965381764387391521040498679412599471535179172563101323112854095479883554359796639388084426599806582956807361680806775717030289158004711098697777240609877648318706631649661997504798882840038678998737037350951674957649872503504124964360198803141735986332835810554718954356506653606653416266661100340443033131166364591524381213357782937350773430569523653174279462099119426661914321435514550282387117255640966772811589366955331423692506818853436735437306356756176786010559413057558806639744504130521093153865313373422051368747269879049480347463927328889587666452951142508455625994833317041298405723469614308891464641812015364674702751088523877075568926428213824317641443829060886438095462160013343597699921472296737132083861441905559157711294948106678756298531494736324357100507058867427142685752475655060196848036689294102182219652255001668466695588283979056388528211124429362641950589763408734285997569660194531564917868271372578585613613768058608372685722472513968746633324151890716892695128241093820722466286100685784008602682364960222290697938611678530891694610610525062745471752679247209764936045705839674614290602947842908424114108509788908010619238529365443753757583012589649398204745270009393715137749099484188191858109663443043907950531715266393615590730434150468110690123942858727010119129112048302331044479488719841034869557638909148062027170311065653513632627782394704719589369413876075433103974261543576103917731249730402843968551785041774890607999748101208080787617092923698344755891445971572956305449805033713658631265666446392738672488658875293275264530293014980343754528787246045568779617345185079094316576402971751180410881196805018556257387633757717422971222526081352369728381272532962090969153717722460010116393365569237560022540393070285905128360060659910509752270173064810707257646773372582240854783366944192784276174450074635422118177359503219042940578683019207287102980608958704620758915105358905394706379574829961938455273467192662960020615311081516388348137191849261181052546128079628710330402720959649104677328632665071276543381309017431407355987453127747678952912437860584619809657998417742527510472105764463275898366547378980816416007853660710008408566444589476211457712731634549812118247013341826622701007326826346101883193714050877140607697807274283389167128446095271052905403797779308107292005829404253727842521121981888058357783062054731729195876433710814252824116450329962112556193553246570707974859539818744768815309510993022800712331904396400622859107477399271758960421919998022397950370002243126549844007649487232519922027304235511793491854068707218943745713608668173121334444543732426438973834519278005830227175314379734872272902864424279342356997242849847977616560143324038861722554907226186053659952669773419813509668369685940026642098325832197279969409968015108429452290029705078203601011229988665302555233110110126924237824158835916395883970163564545394036147496870402726168164337479593745012751065650114822723435638701523148351656054355104780905093757979342443648404081330782761101774374146180660525162736900639773869629487952439986685005178331290640437343343279459028348446767740979805913206208045304146658385350918513280555275994701521087701746169881938544160523463387219293691880061003446618055313667309742350567939164471684088792465969166290034254924307458570777128934509962389625635835817896551468168955634630052815732171322992830906985879463824060528491667449965416524130482421188463125696109308830364899148280330447101099339518925090138748944345733313103939511980768735673098911230945598380048617783784420286818674162678116611805642186728752513493549715996275928821004652888212568050978544991389691102210378409164290442629845547230880398350631217768441831329548605068203748790971152157585549255608088118835076056142948760796081688077641619711999372527798244321693779765387814846458649071125035414134335229635190528456859223840391381510832260619464475537643620640050569854100405689142551834469151479434223208928056094889084923195349898057988311316877000331411565915669251026188276668768643999990242353838034560266209576319952331684099411271447233397429899943967904227218054962195549494492693053104733256244390282710528182641083491245301394538552594240475417400133208659360762405002553676610367563533275536870093101390466983757233472553908471439983964917834241809070713424531057885623166563494916946557778169927037407406883553746319601340319125411074231839072666493291164513964636249963356510062079277650090819685761654480020544826565723067147577206697962907061102068322088761150123214743264004334182901719109484971595979261015288286702034560835693117178689136668040630366413701568845453836354662432510229334275052964074665510747417314137738343895599774805794195176443382429013665581590601827308178005824709624042821474616102582195214511548711008685657739899594005500021460769027502576695891170183645078423838588798524732994003611393256167050104077793046651703163519055195366925074320762449082019487855272835712793900944274857916101913355905645071645710627949873419909556157938278969963212353151508812702103567503388316625767648417911282268256395900142003666430020177145554116171576251677797388340279241899626466525250839060010479292345853209295069377536616336437164694247997831237995146040694379668644838827877929187249113304814248715178437621228093865153923535612253135640831263727617955492336871354026508565447240537908919088606944332421508236377939103376225277354752784665827767748356794263320860123492475109065407305114226450081323874442415534514922399015230749259135796102979348607554001177596562355996855754651822188906818091564836618495002044853821525939734783724907788443102044675809261847721827138514604979570866947761895764815212475991588364724385311260899773419616155548053682937831746958556915079431118367502968699770221292811545480797699331537951833001732271515666249316386433883106499350646718083275784879040910869744010347408532410925346733880445217659969654719462029633203050663755242520464766323537906822179916439525594358870502261153820849750549400053531073291974334962872544271161564054624772455776704074930749941066358771269272223704506853348149184693044472376960954360030929162236155724496612348794641463635047656562897200450411433444378635943905188947806554522942387898521271533855007926669742565939158453896840312979173152241812611879401305543454696386484863708368487477515168633939458064985476465831822720349548408379893500314695121128998399245997532257678885389884264975965186788834015147045051608152054051586211626381585878394832486367361251578949975511565423896189936999233547867078564130752856460015087070026538439483759813038386426039035777498517053973154992439759530998690938430934389548000411261113516945417711197290958162104882302926806487650153992195329916488349026940979718290099836966680711870570695513725175372497725792494686346344158163849943412717945128604181433243045525811839106700082969792195493890514032376039620621033314724372650696286073262639196772040173689734908825465924176996693859132900203680898184577896704191749714927107041829040000969820421756534436340063160757565800568905292656708635871068450287353740277719677369819297570940735363676247226455698839360136035137908487671704352560217934343391415578454157358293288846526298419357692292182440998207987681963823380425663298525985132506508104415653394084121527593505354828077868548229346951575063025021722671202365795006811654545948828664287847689858306885629386815707639336311885032578544496493478554307271218909567878388330555425016639951940846990391555052245445493457054536523862797911852274456031729011058571691978169578086950875651955909394341181785533518714120938979929637340633686926811389551182497433996124075258578747601766128679008542577036240104036154019369321407627494443736484154960297295426080176785658041005532057982826862782910403254330194422476602319412672549393523427456906897251718565388475621175197452922319686677320900993033945056157126185671671290473812451934131667767872798624804718977720764804194529775497181658895590877334016301389871146509506955403264816952363233615495618339560594695933300628287562263577683810051265147442161102408254937850549651183572080922650410064974604252024186890316027363165097954436527105175657443411241283724349531023859403794077419910125247588961217669702874388422254885877036020133586689831545946344184052028908155961848163073952109579425022604775143849066341637856545455693618510797154839836872740562323301829021449220966098535990000800013014147048275234890529597393568024555421796347704444872764515163599961375663451483395527559759540935852177900862868292195991136189237583370517761715739715191479697817438074930198845818431328803862949237584783510317337000036429668336208003382982723971958098415364162497310596011328046593440916518862223224442080486042507942182006972436424715206816446522737955077723080425785614155650073990822027015283814038627816038494709162580411480830406720317403924763645060543465624065896558369050723344436071810159888042522134705342298935493205783734093934523570461372848116791296563216293409414171135620835701495750098792649414263148151213723686271378001178867826342220421805722732168915288515494157731848427811288144213058922866530597070546374203609243861757912319731671447087740005178062567392239651393284439010928622647590030713319236354645619346633654606904602159813026170330106059048874200619578438595868887658121375249965941321889256590215956445145285397956159554902807189421143951604604457770220617013235057016182347068681756227161740871605573590798578372240193194662314925537086711969212593692976174021034914334313173480630863608698830246294131559156666836061074093037813003369788967202292634904572155907539760230255401670561934372789388504124977652630791324568455805742901346150881023011774286854270860655814422359386667446000284926811950295531833030406312732508326225567788832192606807390408813300814414372219015345276256934341328555020842412671566240575863038037165982179914139883262360339078595935024414649759385117503862639429121930146908789530138732973611852083065733779274163380906792910433988532813033891933999593057726222839575755124048594233252289623850944918838484293274341625714511659570946260556375336878968452390301958136542390589875555515357262851778378177821182497250994246186406324706517613133842073943228483126314425854603455656763568077841253387748494224733794571090167467552029212217119140473503010101057132039060021232004783991971401430498664661223092697809851601789903159554389282879254347993909406825081769332315692215230730312418076538979380192759625852852344665012180983352162602461041156651505462712611735294831459255732062519168749263937422230599245179255063809304865974956140397658684912121489884341600693743081188666483651316722936389711331819231732260918896323623399786121142715649580706925522405886185083078943421839615222765516226619054578287691518176714256573385376602690160550596084205392681492677832515873241842624508214485338516122201649294861152828534394486510864775719553883218250601218409663409587024203255180614731366903325641372820056801073628912053002290198970313111058588592096375185728007444391978072337103885643996405225388199657708085278524780006327990455439670551071836020755149952060853778508130741873030845976084826391048496722099804962237418580617487753441395350758671347755700609579910532949956576386972116400406612767033752887457434670665690639477596030683108570825322480805642295559247954066237902434632284737798272197007331905805831707344531780965024243111049611256759229015156610439158055108079245243166717919536480200287302449032050104102675101259482709250551653052593746998711885597641471300979449724546343252011890855953415063736084819482110926696232992602589008094017894066758103569166706987894899106840409574652483781026684438569138834340729255494987567158477907866735109100128780961984350104151369086396899948338965122823841914266391453234849672797582374023707121054714172590245065946583836270680181473851052098975551279560147890642347538336804608127773771361824616097773818707728419598018933429877307665869735498666596275994401864793230182267638247245774255651370956803051165322546323813203358414037663099723148682236226404189585178067401291259994790831487411959130445405737820003004456130652854501998749725470882224776920228260883968622435532923152583254350127569868754146661294120717020567719677064184979593979073050777948130121665977726403483848093938227624223081268563557074085971442372602330504533248289103435681060358179947756758077840251718996056020821423130200342820402191686417652477434818905671821493973696435565277511805273724367270970832350577756751577115191433868400467681643554823702999562966637305421154966333135231802677117855876640826200541226569192390415382278936997880673398383758343247986626462077871118853825216416775993801822023222930534639729302478324819680424411252229478424126720105227054201250024165208105446219253666143219432329541288076314955245915908802307736883458439778889665606397323432270189754520555731055179830625034010540745519593884071178684609149428219425380288047279342288691244304207801559803043440017444352374571294288235033976513539767152782023708153612609808715408826089641111408659025886329093213797059929270905559618076485869214312106444604282484376717310545236732383211646324149028550747501661216423781206695385447784946295601289017709408981084282288619892444634726793349422853824384011011284227665769001760382251440447227956839681856226677998733658755895340918378310703531193540581002681032386353779471288437415639867950066771837996411444166967592592366825445604824195776336572713391759866369535075995001455468214236828839557778665151589824201111909288791215285846839384591315844783168295963226278955669299721014645119412194690224087548182858359591832831560402265597590024843041046852913050967414109889249457546324022842129630249474250570038884422086961049586743441561639021178402466969468732387690163384054098519409477488802343997213365998598961474463571366687624449406596291100938524103273050297131496971208473649557739246013756457751616292137329220088139182568246782960422860060333898624736166730306229934543424317121751503307254793044507447805045554713246508910766491857925324754357169201320624035147291473373975920613596251160104456669662998916480574540850788745343694714594745457906935965893532814301285497650904438298414593356674091655487881946903138349778134399300022992877523611186607893918206539449539940105281812574855688429896666874883334364358157492116850716097676949307396121486909677177335773802655526819495309666716393689287250200389717107775361751108277222256248745591071425080804435924729412097365016576249119835787180554961928434480402806968572895447687786482392963525266976887464490034367500888833367042585690792908621922953917994331010432419067732809790355818101867902034834440473202509091716364229014528648859772625593014902813836285404368275759216387095987748577336769600707727949921640509277219887397211205579966564768267261051368785918412915596441969633448096389461078738471813053915534266017214847268401110647592790868086933777840063423311430503911853097301120846184540817371152643212472737349624793284763282166332788890886069907570153170026236670259702236863537894589748089211806421123198238583711033875164580293930779320818664116130533709124023330961029904745402711696857972083521016343680733297371974996198781878846552196033741919963619882126582350939310648047670998346487685784538531066798942351556228602156240442382929349787387696668051687764735577864069593096560568625240751746864292216475640463314234516472769041034797519219545680231749468784188574508474098313911015664188905780540991232788377327281246399058329718054640458554538220260425564353445738713787751852721486530938264883345932132561948813736331920852929147745813034105173423208251513183967988186943563109304658435595054520709372051243198821400072527773453532493243472233875907631938873540165682252355047893198253323011533384865750748305957187953820513354931209580860587195429222835760880745660317467481864737144433149437864562787375013467993532842634890153763217861927492832781048341315335425446491555759592338570329318526286665117916679887489150369788525442064120563164711020344840828606099255588522866681489005432021345923255330311527343667145285029296909401090399667545886405510384877955296935934440344537975947135687168620811643940124223751638171773842743512875793957615736060827849520095570506677940509475222604495999400756429721441034804620484588592529356571788177773972166373291403587272848746146613353327409066350765322419216443359997612614653463589184244161488148596800134174316144565104140258079001253698110449623549808334063397891345907888128203690073858919281058241184611430905220983821042432838815655225983660553371795953690968790000815788077010029047691441605078905389388092936012963189064115252734492090050620811389049269167416573625579225513285852221422154872797449408417807505947792974735103466154364977105756098624094155098924125880666117300521947556218340947434663718122726587913701780006860242704685952992648846310676696775434682532629173614339868524103164905065716519127086161118763269538001964848350434004438065239579647404838340202354448810094181694596784896065277392423966302677427310607524504397506532076468830808149971580553656677581006351239108837012273470957258791863580862117024894196356366140801087182094105520689347778579548489358426203309018844012697443207052003001251960478084207474655752568832672918514864114526693358838297063440428398596667196421252519283337503708910794333246886022630243336522638982865605219959449921561025988528029559396407134002661583458394639727616079985232609793421501618353637554212438126789610852072994875393330557497415068082347955183341332287268252233851324194270730975926407249408273588409131679428474313048516544777519606796021479738544337055705953471303548251514258660668731203309094951122810765146750252126461941360038371323399527678908078406578008771028604558517206572085719412618561635604282366854984110721458026107153216307097267593041288668721043804518716407769038861154174673880789628587625724528154903654826346752163969115557140031256449397036544734938203396730503192679395146435070596891313009323826808884509410606823237148199379056137072127688564829484951981100731878401666056566055445776719003857348638354474669853388252519055386930097497057269530781340499959077503794689577826900442265105727663797415452094850866038959768543826479640185018957841540006971185932469980040587144993421313996654943989055857951108499626616053357718479717968220318998468434278790456391940172412702205888790063254302078952592138288236748296242421351110076219187258603607188340664350349172958693097466310584720183971892725750061143685380285897147267323408967280073388011707981126702349125809353991996230711742146110275343817323043060222136371395109862822799010350764493425982371094302335968567842171421454272675462411664086461695207491572083789157275524555969367314606911260706038372638777356767131302496451711691648949647537101170083863279973594707165996326846317968188681323265813812262288148619249455616322211192873848786246682200518659499106544217497566807368806474272990858919227401931397423102155529746022786534898324507138528668259423555085858023624182978639671831406693662768723405281280333575758603588768301637785217159714684067709238644387548314685166350841099182834467498902727725550841915872356516329612152983562172551506221579411035970089378970560339935039747081984111459123704268870952869335771830520348384109493570575999960158695398366520077550373653041383536964277677165800308085077014429534841366685216062198440538349143209661801102909971531605555192497337431224611644147944505608267993780983568034091912866563458296133621096667234399184271354086924434529244135717854454221240338143770531396795419078250509560249196274608647439844150451401825903900516535392274462154393015571883734765454396028838088065618319228006678440735032495282823802995197181905466567343675005320765254133274051836593177367582307459735174286720069725549171840512524045779741981771662582097932102619478421496658861703781091870501218256158890651263473773109316508802248276904345038539107754198498620188077773186629671953395601755364139316261333954906994943099081829789935325188303840135433086097561297715644484955495203873806483598806443669466403668617536100318254224256090781790648490542903192279365945417144735942047735072036600040828242160762473204430601397625393305542106132703234215305742302865740467704541397631963670417258575969486615956355740025676792657889889136022288836905148864041981840932684297326106531716516460173952836910931894965226543487932807047894574271956638665580492942497175942437897854973474033670195717933231175718071812621825104123012869396889584065742988188270427689467699280108629237513395390949153364965392939118228584093734629352024346332678004694838112922296547333860699790986203268285829813896529301292578843357217431754841382322947724681813205641206345466921175559335347614483147513195969208121393678550939850290449266914138440846103782900338663422070061392427433256707533089694702575012303329418466538978932001645720338317619843096879385152574420187602045053347390272506534721590036295672922093887402870664606424613119082466260020741225692012438564710043826608878437175501034629931668766854716115735160208254189575467352120847748621973372004551204601627020360314270591371343467568307881674884912604389087939380005104966428557544527307361950228598253395022552006912098919890032734824509647685783662185526476850024447260945900169439776850705475131804858483520776892188989728100496111152686750985259524174004705080604888070488483278324831097663132825401350173598311611965161142682453349434460858261260932882434459782393312006050914191574087648177567401201101657740165219069138598454779939790229277852332487125295182656238298515756994705424158576760684120769250425768549994920714758335413038597599065547100157647117465189958011154855514164736746246997389150070935516808903629676563221089630281110017403350697892160636003110072911869900383757816425057991834301450152481415735681800124220473886435839372353428127954646755208085620596936298416816791481151857228821340170390975156278836778993883263864465282784166364439840835168646438004886343274879725980349824103623890738063010591127237542004662255747980709505382826106872954297680114318547161831028846461034574391426609043516568970366626679590696065128572612656193543260958269080748668925784995286944815588376672725980039066623551242637057155291454990159810778130300738327035819509817281101873241565483368961240780174232663558529352309628251596729636506679130016726889353025980243456052494662560067399655977596418580223531902795144276212320036267018959239960356933711147030042397713651867186031935532221812864956350479658269239061392085018457204888496544598325546089894093089364371987265249207481152292760529400541629408762529226664263017824677336614109778039822223660793819085580126226391713437966298676100313137734431920325592970349414231898626278740268528454888337498247498101439121531691863628478954119495284772085608783784613361394755846883593538641551946894293250587048313412880024250583471794739765942449659413728163280654929678000240917394500009577177216011627047070418387157578559485647602895469916683864736467702195203229387779552627766227449678638938307675741680562407247206006229653665389038124857889209790669665522328285964205371983904830127689766248843295706405257537016194957886744198260804108913123725117744989757119045847740265512597013878030703491479373636231985075320045161933624944246242081509450372733063862719419558366523735578111635986182094857825284121415338283604831922618577963596045748697753928299508795482813475316657563038764724489504442318864993336234770969590865484369509637015117404546117219415367295570861797189243027662750264797899817099966774127690803039478811635384570270200847045560443621257971606967244033571283255447129142227195766474319028891906239490305416677882870039281220591109935767725625576046334722602751982483992855375109598921765776192640051055373713853452093198676480415439038223337826913058806166371760308889920550782144098080557165267114921467844920328166902478150071025996791094442115616452389207062942551455732859522355943030456729958669781889401422891844046197744025791509094683210220771403540589041008472639507893142934776718027655000972459042877917793521101716383133809222251228395691834288957033839774020266816924120767463027705112839843227040746333639132415009498630409708009494874549207576968840551152565214073620616629731876918016279477003988072437177008271268789690168947274377882057857238130861147185429413207413010383503027682797806103352573892801742147930048503892168844301990746069016987611262314117029004108845313079198758668415079261120269025494448007353033827458474027998392775656158442082505509237956734232197407569872109522981791408792017233800683771930856537859623402691413955450651150346562082168902743928780783153461318219481995980147658224985094616446474445741560061268486238047216552673242346598948142023173614809039519229678604336116970245377718407019723115804718620277391519846750795580289741338945361415874385148688234898071425002813123545239598650569418928535426015726145606503200077029106784116800099902212202717436777886983265675385184976422408034136536242513177766235484873851744601286455566455617105500128676997205417847626677652389326494284353973670559768283687540395295898510778279858269458656334467854786120136184874698990558063864332265910781929885170501869540091005775905030050664615966243459480704503898766738379821560166916926753560800278205210796231380512118877847300716802782828325507855642300644465976807854763050397395445052434073896394552327230236667410713833239346648965576855376607091416814371517368250856257293145348886843016418924983158603849040839675820358162103644294708005075282018945278600290016149833731496933441556568624256448971476838877124044975510892625173978383752251230165375551130089945676908981123427780134675713278362590733957035450312468193227217116491680054869627209897550307859660431130017225532550180131544057999885531486887717712055235611442070516714236283008877887996938676853422983691974428098561122335180890207887561844829413883969652535265870900530718572838488501880407466092778878802949828808317484688327789415678063386390487887207378865241444145013297136215876424614109944602775119188759608141638195973486217252621881784817443583042580259365522088358474738174112654949832776391184538558770476830908137392704759418306376161928009037135625050228326205994134942801408023731614260150751881664638388285070497716802210787563568170238984719693163940017717587023355863250266872077440783996271976397774468121238347871221107296736233427849458892604422956104389809973058941152116188913235515833746541481274768904181271855546125254457915507523816241571676173198041058215954142066332971706771468994785622388636495310536701051097447013146225984365743728027806413838418984638854647948003409761754621424120462971227535923432406901998188947742026328996514998806858924665791319343450585037821466330592307250574483498523604108903600789206525238977956647936391234293267613287689135809188548248137633760634128057945181359169903329279621194390408649810594357231149124146538915361562526338480217528859001271855655962546140496508918830184638954841821533409571325466051810517635345287039896213509579608940845304565656501465542951250155763089485167797724693554575394934045525701714271544400706486711597036151299879544348629213472563051558786783819432480356919751868670655817952382986226116635723479664799847173463740306504605884063059423600978479086677100504665383133687428982083193528661473346825766895069876622001525477220500723265840996723232648525232093386240639070171127382225744122736030350429614729988201262524172651131510563563343956103045432669349957522561660652597102862202091298215894508531266763693515992443351798010125105302238847513733745483760924241605242017765481013359830052551934036839082162134726697341456266789753080350825349333476091088834492367010880111925050093270653824254288094785670910698281054484753691344996738516543496559691971109068914277725156726943392543976125419272473287841657182884941804001781553513146095337611475903007657073380974787295140493303521680594987252031506871979827142117639141883695043131472433109988309959012535071000169001296346881037641652002235099990331047811856065042118714644534132341770850135216494146579537488197333513776671948568008673883937756186120785845885028872319354115946646851625733564619117961396747207234625558445893548103079776795115891891442698702601619231455083744982101267861381221542749771510816051226907242862459560286813318401669549808224678085806378387557439378148853809162767018415579900512187863224445726629666405551469854222847916313390485617744850763755872042250810968660007242212551941390235297681716875814656866883592800438009998921325697363981085022030093362274309684703957839593578296340295748410186693892954037633084045886283194393450285907679157873371968084732013195790279855141819441379927201658079705167837624016508805319322658633792956227376490243376314068861491292485459909363014201521691924658892345268087524319850094877133356461715896385816344586794009310973941356673587244694307437558155224918226635118799913246087927976622982690977751957549202071560119088468060718790097549747833223169792934928758218246591216273481683449148157702987405806348486680220237894541819029191201098456842358137711216810642520111257136092333331191577815278649812922459393538895139975540241142993501909679045249441555234192647000681349345585275899931081095760210263454614431497309454931064435054163246009804708881643518976271865828444520429407685304547305593851260729634413550060257750714906055814081212028724163832572964415334417846582970586635566740306270803007053672305906498369526451503128640828865440530824355760289318808980052659144252329871710417676775584589881361071667752111405497033711190287257272788478684006955313512763768142866468315851527550730079537974999595862308079876336607811874360964473821811227310674537830711005126858525120895328797554920971233879241471622418632909663044198154698579028944074269094274536531033446377017067686063559596480594015584596775822771535827159505846320491968052449727812553917216775183871980148509010992921620315603061066603805310692568469537499069441811499598059661004539547858946193613315499896273298592749287782521234844793626444087574295685844678415023961067502878621121621724488335108321556507259212361924513717231569579083866248132062733038039818674261860138833061490458223972765949817873120855377616033146545641517792878685959055070926958452880399739290821351104979247036149444309392277397851819297281925030299363895582159457490432699341004297663639704655991580955206997205933861608666428495859226727396230706675284562382908455150543838510020142093792052063904490532282233978569157586685737509794744290655307850095558130969425057787205310443718278442327801805994450320021858089385449291702026104831083713138442930445834099634855177141107194701090230674432005752855361932179400651167884469318286367944431450806580501860654470733627596245283569022078594133349364180818326365852354969715785149108098667799496305162574730947610411821389650937419204999198301808306549707829886834800029823970713848630619812775638335855026302581136513473246604140638214969413083100806416298221233689435733761556610217979361657360921703529552656377677034286389826090274796681593549943577335238386187455409753609023680966852897174921558605762609486254114177719724383187664329583831918513655700732321416592132593338345657951327401906456122483640851182490992701493223817739704479417111057106977033894152748126896304848226902666675916111888210978191299614326227540765096697193743159271263599531669334303438771074257616231109257579750320229829493591063935157414410868947319182984079556410877533973013027941667167369434372793353220400002643693661490588012607378617152353192960880948929879926626012939070411964361486899605777718022672346247161975305609416959622792159018798739701164107308594653955436464241101096761065731916444180072738588286067733865756950582542378797738278049835615143041676172659144993350933205786619991717090261220172508605593975784887162736283239270556505992031644138830114306794958816828594502296621906979718610705362510529195474996508734670879046350132387745177753894071857237093732855499545745185005726286897952907125144297146792567445943065430422131281975741884802744573974276981292505715936899244254071333989849281139276471432833997416341437926623007882379134048827746601175632550523933699710381870920805770770004735350526471227755390011567460057426173095102715502872989611691403407372661307129323168739229991343714724228241126437054962207257809434614979026458285937833004576337764072711506107067692948625543166673229990851480849605006689848034868009291556641140070078752409490387620032639382020973976420653619052136755803738176704008690947003692821806232158544413348816570617978833042105332815100097986317559224050538776706949633355505761087195018838589714132845691164432522828126689090232871727782734291649584189682193529345539756377933111582598624154707006970088511414440675445902775004108728874691787100357777770384677640128304577831927526296649630107754166365203741085580317747077988252126226284821559990608848771335594114284713493785260561856845918115154726087855032668174149463983991742851182825280903982128071080690104884321819590381300532755901235724267991533862253880452766888220286181461517271458132862536621838964726139039173215383943918781264729804681731298351255981859925624389678395845249929333907728167572414297488404982213372089282677622878104359647774185035361961023911165060952090788999198242740890190600697850448600105703005807069193629652469853413183254889827352574295081195974687258843787167444933141168937636485230686493523829683345454779463915128602168772888953107491399643426666447649117151491406875220873931534165147007773461336020498138708585009163565036158958297780039047970295518165912905274439794409099580930707496539296538088148634244629764337319146254738707061266521367707686368958693754906693779813025769419970735195534759941881119467615711841615976612221967737078331528426313962107152366204700693129912115731160588733659805078094733841701451481676723563076633483042680103260301853305841860177483607749310528056020936702410393713135508310622515726694143660578113327912107992423374501958866391944594470106221109926406641974034993547313380470907820398876207984099934333047279922339957686240101075573095568958200373180109853697030986727227271095973052789381188541326552314560342426427412714064612120742995677088333783070129303456573608542003209968710570651111688118591167441381814128768483405805519830421976496873277608816694168781367241018838776580375122824671942927652566175459760014171701440716510207330923772844124325974417144044570514405735848146226429615696823866873017607473500763210856463937192929225287744284131670565205453315845676642484694509056449352793083835690530924669396402250763450399818294463150844256854995140027863227253526386040179125439207735940014794536748279223798595354000684879525508845860341883380581522206387659138285787478658246316239287841083501568676024432369275758079297550749278612999271677653675521404359717789931790105671665051683197615084949851331641706893036242360534072392978741579558077940388655834478542868254052477511706104160880468792990935842993216790140128359330043482030831625466366107593327428202899253006148445908630531738151765895968594193039358019489989409148151437182960000347790393568274142495257029207614664054960125987761782532695974764255150778464798057847852989522559087011677860755893009076318191358945206646598916644953545221147925117723819783796942814677707879520521128014181063207697249556440181750236727918116299699892951807761622878483503003991069995032428128388152519528303862597317263665242400372965152896950516251878572590501923681494770422126849638300519102791660740397023544393859854910746115583928267156418038072425272345044029777466827489752324457669303095558928975772374720151823813697306364165029681352099369597129171488446707991591802747879105257482144573942476340044132976288943057505281522352215372809976658575048726447094748840922594965701561333778181916865606699320030033012410414131049333053345938186602074514279473040882108225879983520685831192540910045800763518989130408978439585592415601181983722533618609276727659583992148242928700531139534882546830155099432105465700686438472165888318129591045214423758579999643989352006806641820823631056981996371821547384596020440490281952312977852663080586769475401129377968621129295559865044535714596505722537835257380334494887041395752928754960848083499833738742711036809128216138347107988226500672813856987251303068088193316670384111127845892533501760506935291879904419008035972886822336362719963666617088826702434778957185093026942371234817044322266858753028002071106554316348795706718892844764764368196456534388569876823194372690351534215558323750076229903019545992960767312204356225945602812425776953032301160880031360632252396340010332506632302875090068299190132036468998839749001104002935607356773872384602304726649627890802022900470421173565728324384727616420388464771992018844967581978668903157181186807451499479460431119784163152486290564232831076324001929851854568553114415369375206081368174203306464546044454329634392754615451192427376305835252578578856941272269914145342484197814227290823240867329396171119614570470664182169162266240840197739876327029115502094506015735256725398681779997887873441906088296766387529727052715186784115779913273527042750267392639409834164555490151881869123545320813441454489082710599220705157466386644442716343978436169878518971744790862781641176928066230585782324596782562042699807823899105370970055639987225884745158026981379070852973893034952491180269354906729041508304515954633606827342022641045213484268592798495070893293959453177702566689348813365973310638493946441747841773760628558055421158484690880512443005492628010854298126052023814561221015799099485270679506067050453016443934377761545790588639725019882078557380406776924586190077670716642203901027492170999936018929013401558032083375020881428678004636000959705521077087044584984724327511510335012097099603840266296869685525053313287912336667839588762733261587122809429636843394598078008044799965617553416592872641735159072037836797870132535718696017723684550170559353598504367010513480883928596012855204734551046344995835237019703384385587238915447589886977274290166695338677311233760030610056273092716571576470738989442955212320231154740040182195449575719113407142339426949170542456839095779780268832391122459864554595556842320906568036171344819542718992093209406553630516557692108415765491177400262855576709371955892136858312344650281235399467671389226530334315350033043470768730888422423754014068016929610371499885908171835143103931455464570450536151766944165239692235495641402542213449618970810567009122575515930730255690605964126462441324699148550291342264235024045507774792801451798262707403866446541737722281730041649395239791247033789013513616709281614450311032398622118779160283480074834342130682718531475355442243127003032609149484753460598635487047982667853928497459017377818574836819410946479608272131344708611546378020643552723826822432035710289386898515434626047263547030854667597790633318302380694246980463612110265206565340851410986046838089087002704528764195677645025580174645728375917666041331997586285734912542454638006073127196628880989801021142501497944274974560339801661706242709717952410146277133344701976129106696474687232220664460445942277399302976623997093323947083926467128217673228497779795271492228809040521828485651634931902003643357952190026273918925549452660772216239498247158505592197713494096424277177336218320444992524806422089543704367875957367555368837465140852419616190445647765710707301498161603223001611060144841847030403094658525053315395694118940272131765073317893613574617098185099546891041397013433026640688464510895683137527798092096696942636078208453426131871398638733280520181080527408877167164469802611750667635027456018272044527217592263636756217018522975359202856102361473130325154183095456792430024581758620632042909076709120685861730780964858085108072004432090350065955643822868420559235297041521252528757859593293660577776097329804385468263915256363387352169286073912928313226817767097135182951346115307728287813790673367335933606707098169487916479477367653923286100144218265364093066097049602889131205535927615037378111128953958747454004831187361470444158082483075750358960556790161218848313177740232169547255389561867330234746230551208188153539504863815561544568146006330900599027607169509018861813941237438949848233386233545039183123966022981485000051199765477626611702184032628933645005129547646009136679091733412438381007476905906068426351307214534429896605739064405063182925216925104089405132233995974159465974921058775004036861740623668506441375673495841117779667535291879451262441349833555407005074530155205760514981864175701139620565688600356173696265159326263267866813838782462938884147103267669844404984757328772145513684742861313791682060419760602149977263150094863813095060673804002586513147050923727709238981073239885397986377854631819795983559411119445516097125187336625858734897517381883063116601883370828883168006993820723305906962087585910555626522717426986494589877030033903783474265504489532321358706861125621166025188768724393954412246327375589393589322807136727282975699970807956467215812729378360227102618029914009921260953293686756679692558740714129393722291728389738759576278875764349762041679856478193121543877206987223637582148585293930891501750685103704153717688624764895765190637572210028656057077340259318457282356788756596281764182096774029059362558545687290215831262053464764016508747107641052230292754034717717742506773848454930005547127740961913838342438726984318400179360105760417567686450958034272209639948235433585983961882318261490660848323783205261531134111798071937611685047884037327099161387902599963341813509647432558585995365145957307948608583580601751774064732467972366697193517070153909460676297238279450738535322361425577995577760000400131245350390239882867498659530390952636624269628604458695644509550806385592879782481098791443841881565638184395101900974153017645064691125782219560185635174474565097118340851333057412606104563202562767047848547113928562275120077701672987235120746709186203910604108866069150409967715156286153490156542745002185423007863507198982865559480310142261717240696442163826504548900729348384953188221043618004159981412034773722804035288755552615010167189999745659819649718983785480534285409328782398768262811662292099477988198794413831612846845202430725153523648515532447529226055016858516292310662758401609951558398224632222755442030697345590934077671686254710235980563056909002214569604774166663342639701688088332820940131395620808488104868413928213413689702266515550624734621862658903425017744195079369751019749983691856983588244347333244847947267836910521953771508454857096288955718935417566551972621397752787268738395953891993355137954411186737166181344639287831129296061471953903592239111441140235639534876890999315867006175212835182499747087681969756214050275763380194951427293526732148093840951704620760195432170615415924021978382238920476633679951746235855345421342342354746990587658402219980634333429940956511134037908114708974100372225888024252425701567086222828704516515367899279627259294669909414557751488834881702298284020190088326239838343591190079345592121563918142219765341823913345885085285391249363664249537437583057578115943030603400992402519062941438844346782274088301366064462083782235807090314288796489929394036041173702165413323921619784468179706331888146797383900754103179044711951516038318624532839510727154660895270992874399359211820691358923462933369877392376346911509259609277265916352064670829552837006597447124813867981061771083301570950117001393924895139031277378788970413007338446638902833457630885790876429437481780563725677378876572874235860232938956711537814606139269087692105723467538104699347729614645736557633924627978541202150438101007286399968747021688136471949191893902263697157601671157260957900804585444678132979842735350494533295296355629539005297291292878765852690510348600835526080458516042668947265752279510167063633391463131350026543868071480572644374311155100277881413740179243971691429112305284004937273051966178112301668151733911582223413951628038043907175089453924511564807285550707808232241900300948205579441213692555686213547867315352908430803694220435672490763355738788195405844531215560589164848977565501142972112511401822843034689747288725225721805705095685587936059265842503238490244284807604419614492689248759466645098414270200023956478353127373997154266366864490064217957093204043547417614240672080955684810449206077607349625625530419147481756025115488985474867727549842140899396072877883664774051378400203434350486520961132778483439789093896964367340242153002960734756290318316922181513453332313242560545923351721984113228745906199725182225668514215643473870295430556820296429289029095941241574976646987109498868874310401017251705965654341587945247265779840101446745275481712420735612893202820211661575781375123170834842530249079670555120744527065902782182757522262750114395406158529547379722730191949149848921092014161846829119278266018383786280068295519459623073639370993933624011705731285263065325918580841459287951174706018952953214576197788843077736491937270659385023555190720188478831560030282730460667897470064102562544432461317643167210197897972021000349108799932538353296904372621559206375795710419891029150207469580822883896932335182251807819593444041404209129438210931680687916670462796126127098238904297256954388725712245747070681483661708129291517661000356339447135576753265536179202995533781238264142095401945995595186706170215741056981832980722697352395591021170036395095571774674480312408430609093688289100709775844380690666198488547809523718650416472579390424855258677130980764356699046266033305676081522879326002966963120792804321043589633999432084038952487651339313141969815392123117782312575973286365253619233571930755251490315447072029357648285584586146093646238702473527038820382399959544538692640273356719164992022538444588913159103500459145607532963348562531740100698431395256043262077642202488537391983376130943889713069374061608748305493506108000234341645388564540158452967493740348615877842084393746112050339688376092197264142362250940712821364802316765854652679862269951178906886481320022950977870634894266442649453228687730349688442558901337007487462789324088290591501517759194976300846960868820209016068519047586358892688871859729159677901438118480336271065334924294840860145238010125715361536514352447798249150560716355729033134445012742996522325790220195495983489627734298814721080619759424380455399609715889803475885409777168064945364485131252333956627594957256497064796135659916095161530261579797728060553870561097909113904009669007660834095893377799249920561342435026832059730300786408667109505209537451126764477995203505234173972035175452450267228579855206237794134864341715656750552939027821973734571912002898228207052003589125659484964935380947428705177891173017705199540367679785196918608180692506254313546804095801491551077909165929136763113571002102537673783098938926280341030834054716586193659339780792782942960305032839828684407146111093754164970329550023516295899525090305175442569425061803141922598074926669045842749273030777286216860509519295062740641576536184770436158817334498742644938078620203522293296367344425017780764913520252817872769043961983491580178721650757297995440392723277624170669232279406632669489700848672102400810908683858928168116954741649404945284619125535687305416723192408437510179503803411856964382857465059073798909667192364996194406963414703412877498644127957098249302767074179630637173851858457653420216101524735353438145122891479366745660340733567642168919252401860310420881816816081763494113845562048017833217990476496409983121458866089599023638606305176036080118543247584040316087045013139726035613828121520686426603502782775233180830486956653755520796382867066010466799805381743449279392690583405328192733839272333316564527408131535568291009632476399616261379697047334283187219215067777047557638996788996506203413278289014934438550043408637898082895212476269920117511942445627580775114761380285712269839418636286909516026924441432045850449154574702059538562128681357364114804149777969535626768722870986501435703542881266967816215719246817737641650584929662269667364673337012969571441910112304162233892249244329338818874689844184631236593219977015461708185191214107103407546133471700284048267522633021923945488073246556902454607167321565875633854471689465995409039352617956581315772951219412695771043515190073006207887320890387936109841787623296116076167276848785686517787208046567351353561572657761896589667766298823140588687228341719741452356825776094722412388920382980764213336945011030672234466117233409764246182903472619364098979617659997116375091532645181371450778743749586692165035091611636308239328240411818869945318662268461713684103116819310031360609220775468441243917758474567547972552102959695170837306066140800045047518592200619563814154148064302231734926248079391691788037800834034743486620034921849490846968997987626943412385694919750745186456722869543883852866134949056274518931010157719766623861306799575579826607488864413200877516557766091450031809617566221859538977656224146497199284268292759548029734505921721243157082421701610121777507639162401899207371894054017027340198516044551992090799368929399374649513378785622734169251314267075731552306574128403988530333095029422326120270851104112068666697843685960025369544266486948126310668950755571164149317801386975630228121400797754316647472474839584644342581515858038794353395979139746456431386766214805163632708599402799407876389587399063990565622800607209652765168852842224035816701531601141427334862700791901332290042242373591154173852558728171048961024788883750975469610385115014683488461103810006773047271411755770027364276099390799940853705137247914073654927507029694258126759756507445525602642661098258571155196147112613463960647461349093822960499472146355703735480852173900136501602658606945993628565403363943496931751040876945689783178161507602362367129971346026804827671957154042367378281010189611496734342204582308394829672941645937280709278701151152272266950396461099839668831859692147928918755129812535844938079618515335179782335476024633994544447701137788836031690910436237450020281890318003069688329128561091020840022351455971656191385713352999609297645353699986703382800438639162269268099363016606529692848541502360078749923593415627459364545459376357272780974175819412548970592074434484636754709692962319888112302735286446946523841296787496322168036558013298693361995327309737949312630727197496461003136148931906042234590522816203801460240536385404390713900099754424303746755473712757500097224211478325699912309102429149921358707148766202735794204725075057214408539417339099415032380544864487918882818419340809510151312576407057939319548437837473359481793318885809587041974140479859282520553849717209952145487671023430821262449642789905794586057928652283984635147104579661614788711227218605182594311968853032863957100874102824729343963861355708240952439827771011838505408469965551667657214902941691064039143441360050245787502330449073685865183449736190478494561056880304478779637111775084179793044538082937856062226846556204306786222428095715584660744697862074702446794468869906164359056713108362327228017555554410156800435484961414134612089566731447065107176420195700627879444162551130698910179546092716965460234860755438990698081226567713333222192462471322345270038055943589476600703332916422188876991300062496562949844749949463868959363501740580071768057222151186055378242511177111046392786061395341518658944998766638690808842322284548671395333471004020190052441060242313573295711404480563092269977161940574930767167137807789480220161424136648026642704116189619112855570050883469516939832186387370274820747828329654170312749437035737611523206764211577488449281490349731101905763846302331493895883526977040566505628067658804744297893889960750319972595459421904221317557006911072433652381727778145939448777950596741065777433063893878315756625269097058718175618699100352491487732303815710232760710023733411093996435812796786945221450745857551912230491344975878212924016358572836952706109704569837045825771112711936914788039006134776995212024136056432055846586711229965838113229377915867555301154498824892568648035914548777216979682159172307759092018911489747817427661558985000117554802014406250666390210223714765808590880676614326314513968721785776083070112533672634627778300000082208924963479642788135058199354778075276537159523647945715304415431941621760469165265349730935244602750789700821332509438854102298639376705953402639999031054962391905331338078177502801571036713713597158800546716034006945412350665106032599205751708779951545040100985770371773181618980942157688289966063932024692195235511912539157976649473850431910848094837555912910363042816401589509596483703320576835169900389054989095804955361548139248266645361671951554531117469895106275140665089034152937003264975649726083024147013398631374655757995901505959017441452378531348429999136599515505977152131457649130432711816752490241384183647758656017756075771282086127984829142344511009993104656951655911986134034119256919972846956324982186777475024581242495607041082938814314887337533463806465641038251933739982944437746108033772134481307346745312329694275277209161153151598306359180922938589275541038324223022202568961779500978673290669248362775333042197930062598852841359763187312603298654476423985936198055437142671153227008737431083395937061715545377630148391492093563402073414506533023788878777075120845467661145188683381505648144045225975898908000050522705961706157079911684582864800510920994050073477434087333702902950034342530783409409408703206785282883523122111708082034486193016329928480676495666207393598901059024486338904014712161873651341798970600093121444381741864242769943539612708982290038803012821383882656623224001868747200052522155138117433112460815454174266517466895742433986971388523112975014978073567963694052858213087725418243310196012200407960680923905257111712053874689495195391903641464806602681356528267819811211307983076230182492434358519364943726748885417486744274699630405570345338228712619954401991218126247405924710903985746207504746210679717680230883686114705418918335234812605051748000534456975632638788900711625808788141558991057500281547138897530728850527592389775804911113669618737291082583922024855437460394436371363843762603500467301429518533984988713526584324151318467723963755614727884490304161027123453243839913175611073590128038455263213578401503064913659803434963709694598669577845910876949207647453095943898365711984406038259751507432212908521962079735350277499462062778073842116336170929869596917982257929601880298546542479363788362944297101611490419255523349008197408261803395521907597398379868194124543199500300064024408181927872572585835877067993843982530568748151057353428477283126154582660801372918495966373819032814775972210796661475931511031110885837384294407911261201033813425130480071108298480523776133367411353046841155666558141720679792508504673705871297332605728299568558766562891108204394964325578020724217830396536305393365591109728840087475344852782724883184196758609696346560205830127835371714894878662919470155403116118562725581696029871230434170587322733114671103307983782336717057262745688080812578198211131007542875079167540500890266444291742463964186639994677751990831015069470857839729468531327366964904626864252785750685518380082581481791109536500554931784363161588518510608729045230175503979000217009378297367796221299439497538481352515822532225837618970706114001425737789858473449265843518856940334601508146127929894732059294012097964089663044095155679915418819915331294030249497727141452030344794047422879644323060660009346588230476179086749213073066927704501702383770748587163713504374207181418737340992517605019881365784849370660214986266384007809357274332619133657646430535513453960903412118713223337864827121434073613916999415783695822744623791080211451688878453144429722227553964159754717517532753291750865641361085000143158801592913728253541429466348371881652012057392937478682853048240836034983164137835506616161452884980874663363328040082756896422858251248032458539458907568385629621236771090227009339151722882506040895254636379109469364375059970889850876141424108527412041024484270270924469168335506287198270038362686012582143666233201154867833031346680749475090927036596821082796553387032840922445105933464828725091458916659930836882317548852605507199556220306943558839704184548410564998351278181325917986620558118437532705923623485937361791577185925049031972687708172031502209464896641666215382035750075201933003418019487229123961293127994351322422596391837875094103671798625661501577165406410851096788570835820566068402571764013023038539060492929209890099085482995785710337535643871997566816948356743982964950864389982178690366920257058759759206451319415591861953272703538004039423430727548915858999658212976423110870054818673416789021706665806508810568255022823400195542998826790325566465841233907264681855014792448071342560719666265290545785036156656372177702638285774321869692901865329434677989516221461318824234451757902697741163349845319140418413027029020492684479731456400642024938615518459931413606109643300923881667838409560558359768730489205780730673249952479742553650156829295508086694406252013509439116644641385892394007535991404317382551486564230909558572189281705124498828680631940086952073020218649087245675190617274754106567616229565344513241813054479832020652347978881644651517171252732847082757389280748456868390308858261598115211752918697523212851957097084985440872692515834319453846603000549431433922129450270683254002719406793619758194514584967356777232517355707369873737081594518562193852747784046203792347237020575835300685147955353775940300683352876450609421648484777015049838512149986777642375115055299889193911252332334688855036899727198266193888291819261597917195334364439151186983203552444822898512733535444345631926003968767276643234758717081296279717922305343869651359952536903838262705399369118386983978424509839139655527179189007619013549283887532917615502108602782207033233680190179142277006662725075802000909400947683102451968200174307731371703387310473470514743683947532315012078691065971925230232107044989847655668076492757375385169439476142092010640574058333245863397700430587993627514306166590396335407546820064429201634689437354460464899336152741165775509664527875125442909621948510876650944854594625975943776775129338295315668402999280352462086759648822373956438255121072563981134850768857214234177388143207930784936747462187552590016115078440939959809044383568854642701381378178554376460374918740005804385337700275650921330250471763976198257444290004342547484056948750653800089109216062057048439181528819500274181316657653957485409349933597908599910880169225271562206430177873503155995388776359804128140395615395202153210576503378997886194086679814848265577139128612658025707951927066706018907247590890974112482055434161631749912116666916973149130904389067839956133340303890622893241662300474689193493120653901144474690073591923493580763230872187568267028085254111184622575979811875341435824705302278848187017312377791871351769566335011979841603546064060456136515460779695665897037489652698917206405451902434398459397775248044020945147476578851866649708913031109797724809226185943148666555967524673194792492205466235055541388210250094702200655011945450282475205233534571117627054413993713094011027490307848683551107012034517907232538356587462518500713682132516441720136110812991431622510419984006797428916227227005545925428848317740972746438386912605123077442595118768493504928897892425093603755469792841612172112997812571708468887108566981668402151327432684416232421961765136554404861533555837753615764915828959563217608464879691366004466027124896371781153472645182382005654486492302531484535708824992471659278217278426628255292409958531684420736483822330300504984672009636129416341530639958121523200319641659996786504659560332053490127087024056763915668824314522870000978475442523913905259578179122962668936097582592334093194386649816439763834913517086841924842461699982759382298793577241401998370594738722226889335852036307840280046500527612620721856664102231169825745536485458856290933676548467665673408689714947086586833855130319814988198138757805669239728692750367634973749247204484845538952823462916681587526543400146032224910660045483796963631563763375657305480616205882811342696849441054186462188229037446129797911251466459768488637121118361265563770319610688823017308759198970009747200433799904729952509554650857687289646229048759994158517247481437930013736796085376191796284198092762077026667984738561754623595804112644842404139155578570722371816264879616280380688691342547718144195461831619731319788727649954330753728996843443849332392040619529756193791739480852248641880614464871481589769238380209604884103641499309492526149876057188586455971486120344105297009577614815340180427253183102668652750159187724673230830607009748390371619116319148293005248527798449275889301165680987247299285916381156936307613778763322857449655128351562543734036430970424717782181996097430695585031565229973456439592111414694624327316570257115019329624057237446031190839969199989239763922401404396388416800605753363277386790885634140916799502831139919738337020802826120285807326923138907670036056179212904202464241007321793637376709868212733038972827669166543070810337094313898988499969726586140020506095178577926722482353108174205231485566946104072613341927124070542085631945629979084348561121674056641682976053334370544579433217174673109226498147800788385084241682062226002802199804540810256113545474650308594572610911126190521643438563041860506093239613554604721996887900048638696145184391509692550347257612844941259937604500746002007451150651776938840183453762351451897181003787623849683805237477202014685740830208863923429485233915604239416644981987170298333123071125904736369772776190611927605303610751481955231885143824505470150338310984179972830635326603340337301382097814421049167348319073174570799413733177698740016876111249329265434533302443530703101061234316248794052541258814328705627084013077349855162792319995677468544170193526415211257892295777824752876537568440755170489659534273169660755299713380886575257025657638494825816003620683987457249187789007217654679746211871869246925183869419623541331137411581579743449001127440859475361223228966803913049625401991862296768991515711364695719626723602148835667428892769831931816620381583094202390577657058105363224621682973716953903978282962781035872945437441227384362894733557615206940574329681089728095860302743722460943411063392471978099774951466255749356293675457037117768452477864894777874497455661880504357149782698475069837764438375362700248190054587564206355234249074815202540176897538751258520090405197112419380463119491374811754437272789243578771210763423066919924635200158025591341064435763043000415212924916181179323617003585848301810839230326261668132284172704102033611481007712723256240489790201540027181928185328082041252030513829701305546731960379411752404337838156303012116859093528773864569410981210919982518351522399995212913895845097714689916174150677663636093701656516659863203770343694293352505534901533222017174428624836189896424784144762661026068211223440328320293768053591551033270049178685712518961724318726521790542224600634062671361475501830946872307215944875964000135763176612302612126936546838650757588777501932361699027596352588321377392829710191372924706177166080739922992372518045253181026779098624536093417013862262539632051319844568458231465949531272084030015683948853020927120745249396348910485414255841439421332666215154812297988455294322235840932739777165826527745181609489617944452602553038487108912178899375500037874138384269206166961261441849355627418396959000479619157880023462201333319776943400145227546977511204792800438119106064305793283216185813987769534879672986746488099408091026230224806804449778816013139439805458785683093519053980213373048611379733391995757580930732801221781885967055309015986130651645634246514545620145774574297732987552508158291123409497897219755627263049856992872345687915604099195311230053971752312382034199997777221955704828139616156496046921248451186397602796511275516168280052427435700718988834389398038039450545522492149942778592587043574381344518741600259955087678105563977090739894317023299168004756481053176802606057638373916113002675259388908346300751539855357625403789930371217730163341267085955727051179082530492077652833157682292363912889496016747275138797252373446453382233055890565978159607815703599543944283359873617292759932009053604827157688714595406619417759351403373979379531916856903326804769708432336370362730918051298587131704516463502669645285486720128435660534822781859409466067773155321362866150057928612147010413506802654760635994242451371537904036945467138229846508141843583296492819609584539607983970751117842407384582667131404255197468457907518064861208622696994444488349143731993429287216865532036887111267878551065593961531227906851043632481664437352698327951511733744065566063265035758037603069751754212950727920031980981171110770066625957716286360838219375589696686179650421553297356515700161472142012761540079288042943065684330023429474151721948367483089367021806330615995013710021184059549997087372736236311261220862880996970308567717685555366969549821830187460397447040105935050172663673294721416290500754246043870337046420486446941754206174760134157710593530185370354027191240602316784380869654044864346353394114106788904249602755218095296845786710408220413052863950753838980877078613758910165152954139827819409419815113430879110469461622093523677086258759045063791221671430453532246652744893954175833716719207188415360881674714409427968801446826676599525907738777313948453558120608178588234975129318889027803065510354669371934255426662263047320256233762763147999527875238256687247952990811127817312833181558249503315536215622272991975654246250471837558783737038846597312606102644629197161466191477369560122369944621000652977071576729236302172194964188652285175203575402822434673993806904971019836168464707336363617071982917969404109367712396819145858440621360308960664315616505933996988452145852179651837061209533770765506843173232076461108404838703296477059150967306176483040360385643372343011415809634137780026204775118789950826587952464040989614198057056493811377960888716594100594911345115171990153002491682255525814849914992210415808258039718514336589292708375043329133035457763478396965368266640080923163888963456735325718517389858996427115231764349252281444641188425967176258194894916414833753060884348881543502393141414183441651027720252064467298490920290315705785053557483522690565964017999240113793487049241469759865545736695186149124395679506637534750319226079022094915139161029192339881894535006322005233269421712704089266405825143204272027803631551450427763446817386024515572318065190869877177814871573346741318428984055056074071528390146750009195172986506465577611447581156997640623476511796756054114854228438030133907513662359482436042164376997270046841469743840470651353005076504933710641096294967719093179617842418785199386227902498629631237190459893272249428438609195112273566200374194007574026462874351785975363192026621240017789901349518796653104835841773737176217708101616361935213449252594682446527018118878658458952827487742905267788098514329573219327786184807461614580753689268720241203896513854157941659136114450712624078875497550826533143806705835207003657222327718748737275287649420292303586038250845155228719555629069282029666624209948626194129338392366249640318174378149365659392127706303827872246137244007796750756458345896773505120625769995605312937311919744949798832162960651192971196113133437270904960842771571129687780333528345268154721804234230292525401364571174225324535704243926877966384749802214012617192353942253306213729864062399606826297701577644158083276662650306490963353503875451788393852968373261096613050295135305407590682738087840342676487344875171843613770134730068370163832596099742298163670255116855573376070337859845832455128661681857905105967602709940228058440798424953711442522125034083262812896788699429108262074692358070471381908756383259238185364854899656672690537287571201086905650701108530926575372530373509597316417010758225088369615811791186596053383384201420208872609792533017681640188105539508392044477048301233393493961663328967121105178915918255959657472731300400036041790713091712706192035137112484961527799838252267622319533868751946688492372353483347863613800680165968643145840999795064869747855529464866504902520539039080351480049113431497143128008077341846477985139471902045792919611367085583329780602238657155562138421965454213671597017194626286352684973161876163574491707250674694249794204803755965336845870909500831973599633705601407749387098029801917454480929497667965569294275455239661612383751469463031881490563430393068289449387706396597606994142676856994657351504153830509602766507471096815930513829876890587448184991068091952943947034706286577751565646358474078362774276928444255206030899620671124083480967476670417815482272156969968565023493226726471756341846212239965354054964103199134440307131383053017011686632565613833677857523451541249607632448770481726040872280166892198875964493682024420077641780965464726264549055952491287091126352510388417788306355034546195224083229727079472572531351395155641069201846680082320214621299838375351488708297248666645980359215302120413586839486682363112112242378537791597208069750830116771647113148065854747570405480346606518378474648753038519120962074952859401140975627847263168928485296302893159748533430055357086272038816744505316999802967371188665129761174804798194433949706170205939944641526485607492825153735299855495019867697172351325799545892407639734206292948995712829634754576710500337803134309190041044509552652079915180386704557167333670820665313325189454690160916863302237976822795333393253507444023422007078427880944807197015810635475993624657996723191765228617699345536002050697492514453458410296120948173201393021738626342263093355434508968700602880642380608455821575676329848717940107165688402989870341294362780202494595909347036470699385710771456738314961956435178293037629522614782721381050041074077601871065743665895531466859762012084768203845722148795832848662382166393943472580099402064069554958341694227910913732863049890700498183530255247711274257563981100699972996065084473885413874191686828977517509278356197951319134818171752938224261666755221521961518844234856452520791024913211916606301040597306304269122911529570647099178318222576142678844410028330513580055056640333764066547497699364263005602544837095879786038398888124289097364621107835495785725157303183020408942926399075269557738047872363774560710766269792495273840747364209357900148126842866608916709615034358425092153761425892661273256124668246293022835256565609509227870352439070388442470889052089597443703000166504200657638359420377170606430790243027411426153129361850779362217510849024239798219479633332465075270720357698681726567471543388042454887015319661052421214519563236518304435434526859300372158840865762959670645073103458421131395306823522434060714546226221962980670451062459322067121753261554314872812579967229206031177738122386004385811932035522914176113837773117725812692492749737360553993439545412782801959761680012374554173642512748483599497504695207675428643368940771442481855434154819894144714985408157897073264256276351795032614792961845851899516145015518373474152376911774904504240280152755312846453854320723489885090551475715134990284219232602116851584571796238850709224430976578012147767562974937986106100270589595801569247961413464008452911203547370548502133660502065980490508704686374234955868881597027536026650716884045322436559663127257336582924090152822167201857272740140181722932876211139821062394331952671844466018271667162103125606591229942625555901304348309830899652644665227050324483203836369459012709351473575874349666222895656693766161087946708273985525379854427956296381738623699237778064418925168158376976716683601555179966250999225128664857241328071371694142247556678140010708455731502244859466436200312333484120957243490344110405548831973034993990262836110353275464486820990670215056391359775319011128274742508463448140675359044885236961657811797914468259394663688934843420846256234410754684303120845752188772764549749548878051576943327634464645114338469530859921725823174559101156483288212259516338836898103162519711244054385956786248624248235498110212912662605284214864975083723205786985757888831864372106896459126251286381164554247133258457086072407275936271365015753787045109739413546272365173655440382326711062309344116315597143568576215700087771792145652898286981623080154221552402199651933398877290942099199039597934144615992554085169300655000405771496485289890866368786857563872421354371263184103506950629961456316321007387661806736397697201658533116231605167419597463412429729479543845520650231845477756865945341469022426971354437487193587966434546013552700277272508657241278827855429403204601854920804306973601649669855841402842497797001360548825003925357204315790312227685628858065115954066468559681470510387126226528898551335048688305801815302486061941630803131604391633967100181414423271086019693288590004882747749718104261594162054203260336289551630692837442477744252481525216744274956334178809766827628253283695742319849182229753694236866681640356167041408444254125185785982834821848863691575775457731590367333719737976979185135899908813639108973606020369551700794400406643590093668368902344003997895506107020396033506539738644157538555748018940791918760565419861532440475957548755987800709264982397785505318595648615670903816082817574280889931254907180925141297779299472438297922935304720530725355927050486039717370045919893364450221394644397977791505216543800777899931536024164124756346879179964477924664828382632804860827059682684790933930422474701324885224234171734092660471889116126180850219579335933023780846317987856130932093393211097925527875925855526323170391120009378252024334461698742219805538622494674595625096946967146084641290040599917152808054326467810232220668320937753262797416322201583919487092720486217925298672646811187566071427675891419370674739232333435920771104477428945024337602434677565040336244637212924727835630284773348141672714982355436680499988595662393523492294581476029347523064813123581500393508396013162758663398515793825441873169869033536787971350899599396088655068042066771083030034576294653106135787214859600185965050338561720804141141171992746983540770015991139580741838508792829648475746424215947387323106702556071688948528386441462918200636331779772557198434813901608208451905370351876455687259361281222513391705154289666278544439786870708275289952279547487243908630486911890918541471986780944450097276712189398250076701947277255873267117565210037927708174646240964069759421179376494592045779065967948446667002238666253956987857246825787398052478125270841664300142055480654147508529895422876998681889888066882371510933390476897838019593299581231070112628327800848056594694745045232986218936172694303640939221871855342033982212257091588081534753246494801744621047427518879625791394538570943188341185794843120314313613907490027394488203460993038896605671120037921357248124121304540276496488264394489692265911477711202733196937975826449390608349959314593328937124339158014861857199589050268013557146972189054966432855306721891934396365335793744774417804416250670513608972546489772699473051823734232683428183097493746289114372243601919958075148085118827884568966857104152264461025338304021186534439028758181257043109893612714226336248263209689955612322284289097535993374820604251850780451921751120422304400641810412961397705725299758929678807743625426347397921084752968894882252468678052229578668085806460034934862540791354132539825048760828250037854430492284467027825383631172130790746333722167013153517980191940864497913862841768003215539481904727209617734272335484211691759532331985492165138868794319861341348827320423333235533953638209609347389426653990340516239036067202783267323676284177542970070226074379720216868138668133264652393738999500329598841615667332822384649968594041372241393136845661596578363132696644058174711250882319132586400826463178849163795335107831690397063844036643001040016135835837146492784394783945461708813066846481157509178378949370240792816221580913198600673601983555164635037913850085566679958721031399674625050045867757504002489202060401458910722438084269327993577600669552269683858448234407862615177284803954600876298927738665970446678197411059316186000677943983836172510332049959163315659416268838577193630182339979657301215806133382780630497987695489262008155604130612330352359983140989563125809511895584044485041231716215264165601974134608006052062117932006802789409049370259720285816532381382610492929137635794973060325434035157062443001597164077816577718972254794486224958138543999728320251531434444973563482461471964427305480314402872538769757528162065880265262884053720118589740141444204497563209759876620285303119111880768326328933818060849769936749763601141103020720456274973471680207669844414655396123773391595898907363375112019681911013629025490720772918815671034832488741811063663167297584476278073260611319347891259000409480383111021578935229251588785734376594545071858281281870876136078420975081046136858239132733023547199857346848659075192957601507667833889908128232044585168361466634082481210460605560382988192835479357358287835836234240991174728638969929439848513767506770121515893304904782490748529104431865034649328348044829369989461096517801017444634221823070263414078200236411595002815159766189852489711955741651584256254116726185042088371466960834199893823638126783566177143863623069820820437167332534201200248656886594379586471389406941782705566573389164405801230227135474269336008138029094995059008124168488001972154120241417727454976894202612845322169876398024214678512402163193103158235935544846384238959295905403889994147900861571795753296672262953389067270505071782984052110936400097557164237870815401126472430415185911800811492820995725113394777182267929800722019658071651458580777140969215860025373623134161668066774292650471509655911799855236238175994268410937394358438786490759319611294218857099170199034269427831741280696381607198616859964611884584776487553177112575343050812927286394202805205156651161109729784625087213692561326845528268489555563763984071587492129062995546858069319789623385310430856730998240561322169011432380104557835252878420925308830927207063744973681168196974792684690259542017273392595595810930336515381535562211440379542807516960653205561686558990127293414452843135400974154081040461281907215760369864734279327951355244583312288463162064023222227129936306585359805266710771668405302235176990420604523596259687973338207047299059264954649347300405587926132168994969873720788296832588063616603690310232146173046695782413114534871389568805399789440340711433211861231248611700063201967994501268015941332885407905772692397185625672042086503019995193889406711896566233889064016951286570370822386180997352541840439516141999411500760024695062386887863945556872378002855037680173898806640273904221793430855149635063903824272814802801278353268428494285567406936453254542553086654953575489198110180901705006417142783168454805326529597131735369947812429466227951743576497144476396509769147880043912170566210234969346621896198044395353815500624300124606135655368188351585322162088449537676652598375091674397714446157458903013796422745472759496895131678768236854577064801374933668458848398864725509550898794506788572168541779928022508455964399021691533095980598670960140011125059024399780966544752561375945590685733868045040910411025776219301392180574691353729493276090015502065888007529994029811754207155365918033606932055545724721090798172930102583732134247311396632165159068060213863846574226836090443184624533068890503965648752771922074193184546177936196222605304825449722238218505022889309165053627704753307288888503666211981251294907806668838040436192938653857756525047420819484120721862967255124874223024341522894905605294951583847878111539431299194862755460152261508021337740917233617842430546424888294264425226576962973845054026971514461981786809364119988123789803723394617203991481739127740678362683192980999414300012029458851781651895861927257406329089109141590903470721083797373880341489421425749750359451320426553096639344542279178650268656126714371172681861996726405856551349879062059148345661953309742059720574027191712448241218956007998190349185757824851627843279863911918880781029637205362133820224024431880971494269211195163580621448304905570823178388668455685460992239542462217641612648240187576091873531664931655609455913049738616991185242932366104822565735920234691813543427217567162875015310663058348340350783452261631991064800715538094948466208240568117957795643400268467249433873856025832300912339258174593577365598805762882760324690827388178889002854267748790288040986049163851292163702476930473533906140656580463337820465445063231375372621834928075561079088425792999332481935080806356642080106061412871523674648212842636740956127990949504107854224149215449087212049330910240425027985881613950916225044977825609629942950968396987317068967388450792087117238063614835214605575199563910282838612968912092355384496931442757270330216230302462484577587088908963365798618047942229283752466649728178222199654756278371429870511072589989091672993240394503182744438381965948074066962603551573968240727401803688384479342209899251246625564115041530684721727674497975681333763905211876202048408345225992812285786354763587081558525864691492824663703820419501993463499731080350377830306511249004986540464406066178457100945134038029183356576479710538291392880885066720470053435543948162782352522944738907748329331253259169947118998954459431033768643689162230449528443402793746766364386550745160586570575408238725605873501562477742917725928490911919081320008805212089418934963132803170016837309963949300389105333482789785147148736268831013728836032856899508947883847620269453606923235212644345470838036736311676109745300792410725849120170660103155610900534565123303250598644537420234625867648813675986224283237424804754142723922552713829230321574174957920112262017228959217523783973156195383927584491332813750596293447415254669878869190053886485251414193035078245534079509009604726114738497463637297829231935103684943961900081259701020030200913558354344156814956737732925590941523910739074520645554327378583877047158645784939783566789412531759048070066081787484044686692920707147451709509395284088229885314602167875973121450750440937423387408792654857850160673491982138186494877983357907813524568425861762516471551238940477879697174403046638392021081362607610816387624673902566958200642942954155973422196663520147566449963442738557510600565938039561820192757197873951493749483475741810513211986760255799199319035236331029110442389945961305049203586517709681249598922058911104983999148134459847580337239109762409846179431718883682624589212511229207018257577700385100675370693844158710654937494341696989720298429450601359859233529489638940794200801207705486710679066922676517931832500746890474515150075104838000506856012340495853381606080337758305982343335782757509961977275022879091852565214988983933879582074165640099810988266625020267966070695376862996015232489608442693885969300214969882228946085688757886025702925118613380767178685965002778904886911724451803168313937148032293555791449717691859719686493167267636705258706329142362969024385132139737232106335846706606830260289015836328521330890862688988086808638006241520873701851315421642565444916428090268391445524466493353386680543680947410676331405622024027615717287518182492469450125945088359061982120435668667252191568807350314214449296156612169651407348497378957880075785326566138056700852285488539432592742841873378781175904031620734873549963092369155178519440573718749189318569973069886599704628139144390493238334128324870351999861101781011974740508853329060623730935044581484439434332191432236816783476176854486795796534620693180932535645272878047267517416052280478753019343192987531643139449672631723656149468499404499949014890795612882986939630623686324536164634877696643287653330539325225817560532936593383748087241611432255902288458013132616017922390346352826379116196915725507297728332346309930126555588708710464570435431738099199661373136517168961206246145713889665271577373686152229950653247135782467358028889191114711128756937620444416979508315124728996227369582471092824795666357759393401732603368186008541041555954010741478772086558479377995578520627384354655900318101184321758705061542915435913508830700005652492253013424941329209958525612735693081730836289876785521614616883384898098778857862220156565648023079758605340867175640627778426333035576348305468763814356612655146406448863151845970414299676630496363338408564098625283648797033030195911198265496426567755212979971377857507771426744284636768894693584487329648517184618177763823986217380197517206517303072245866713400451914647604126809541572777504780534922952258297477672586875689693113133453331559889241035000085138672284752014250160057553193087303293364686733884598408058447178302243311678424682832961743680021261457380280836376118382351945114632241651774000351858294815826266223952847870025616775098839979279107186601624165926369231319335737136978139140009227335796016523110805901255823183573639561081178826881366413507596889328739695405003898788605719107106243284753821373204361363252752664544651053477836491746517374952159439870571403056786146119018966041327850310950489775559769477394288446538994683554316811700361730719926646903149658662912777011866676366397129526940695698636903521071750067280202349316890822330930177158517669895787722746049360437603747639353511411693756853520803063162086232513399714005614923396540176189310918205607155634125651860094537001571568957951574787865109671782398898441348714574679701686536482774950419907416139285143086528242508188371472628826872194433445846698850395524290392849496000399294828165421508859974702940796787934429790359482721163780974947237615145756997010291503474649275492246366713740064202016340555290150509371723703744423086319080695410494189897390506998753547507835840695197656981980663400584950553412577434119486805372383405644470186313930883369954902710410384989952962065990975584512525142538794929737150156752684740478650156078770990011968184080836164971465653180757747380577091352607387897180816676814179246552011057821835354621395268202142282825185812175689279235105131884670532947672257316022954654788957773400629789659976568446823830005596154999122067347743496456951330939556519084031757088620914198324864614699747817072410529284148779310242244917224044405245964711951118615079430936514516145034399986075602310433313665908447482970938993312417093283144175733084496168394305596562363907321530345483622548819628676262451218443962142782711795288506201494384693036578182953684725660219013206596730999417050907172540216147772969312482266158314712635808157967584334522506243854562787310096456991843124245347132758763422725778703229994278140127472563030418376459527752680883281131426590679410182617207433989985232582752142083841360109015611587666467693778854915233936227918394117105203711472102215137214405485077437438414171633816679484731224282637675329946245435745477135325200055903842056472840827426089702502165370997785425289593215180121103576145977820875047097005759320696623702333728245535384827440842679929613865984573745603117186372903057058965926803902653318446254716956724561782620298546312052151976920099678629966690124354349031331646565696679464405619712644594119064346621753690954213192136426743014602692225708618534141254857001089687075455674786761570627272417086862960134183652666286983271048107589686628074255981842786081234712455987691537185091825611590749691240280476915841056015783670503241923409538530301773971433848193243715929215398933216126279626815199696315568180936607402375830806933250358259792444035644094432606092538921562778657962076512197837287783187865041492642042557446938245242830693181933719954496360618735175671956723681108333409249245527549444644568937707359575558534166648442055738961624396062964872676432106415091784880091711437176493214341562679238074973646718231212621797495960065335670554833649854466133855913153205150917068283413479171543129263513958508251101917054401019540897175431541020472608714994354645502941366602020088717755134916561905139491091851935299609065479028064517435672100397305281937580534800763535080619484167347624261927555091096127021789058545470140797352785174067212145263637640878597503215748042922094694511656799375401057908687960051469671355847282246664517184921241939279369777983498009206803660325961309838539532066047593517096308280313771898567967618816564717017282995559438657775009224643444902390283371174744812005629824154949473629223371556289096811631357293867875943748871680684312793620525865795979630633366176743850899940407458258959497297471365981831244108141497919702452072036474322551189657093723959542053782110000144020786118158955600263880325750823380301290270813529469317051732657422381091077060187835723035793745453106586550010080599372920902427764349098105620401435074199377987464436837640621184388434833262324576976252222870893497296379454534424922184071764619763804972141681315383152833632439661005459029410343513648452845938704563391978424638871302592422145613604718057089749212753292167740958741347375296865804804049123676149429307165799744172757918575575020415221485418115312886863733788349375414040927252919254684148538203019650961748643933783942410826538945664197863245470687475980212498183236412804802749669067668807684859844999383745855365102928395102008486109674696109801833568571411021557535590328993123312546597847379741014735407531304219358795840895186763427210650254258886566015464794054502124248264168942954071864278456471912693397895431736291715080624439372366614371585789258324267576567887775977254551018940044876636779799885915986656213985262970762371885419853644660030794431501774359905957565857420778252478411682270016639573354280707128911167714437163638223023825110352515853245050853533891657295128747023245313657726370446665405072930416433916850013477864282433132617735075345009767084170138577435336568621598752692754462495520719869239852918627758222373688181836644432262672628123156301851576550642300710172398402274107233614720490642054875430399563783973144316850783534001385489750173665900003143174418186694460977783797752309021263548040057775714217403167410659232419990203703707290437859829942745271894118159448494666147249241001873289767754739795062609027122729030340561654734395678987961864253001690466871423117961527555451987979451522818678768481694925573770088488532644057250396890991796759590537284118809471078841139659922597458780526191230856707913535193927001693631156688286296602311801425600473592576802645334527001264129880037126133353977901812666317032647411435214073424197475086977289572042980599446724438452969866358755787176928894358822195715518056467828432192333918653131586198619829570222567253495598108204139334773699285925557300793215786362572171478747289939663887060357311400891280848508626693996606712598098105265023030257020966674664107129405561620244555026214414636587255565977994938825887509898012068275460557963347515632169364966741438541174647320821634782006333546037910234692330691400044764640833820977821309774974181410513789134246991007665926539733225392612391380995140115855320832754887243523709680871500737900518980400318227929293650840350965782510724069993372789423436866504301725110447531739384057725644954721406334230360159809045423578345205816869091109778483533708610456913031145598957734757100432447593475795569760680031206562748996984353521624448066947577966846401302973501243591819764955672830128300398212536260150180713416011657722220542656845699674008381324778781973295501069085452601641404571288097683534306237107869197957946342544565086422300316688493634662123416680099114089320971221181044549973664014691119653853572706552804300401764450009901487345826786772721578186796440053614433579127074367884567542300640153073908797948760968662785579089836564765799388833664830626956997566911025873629159670491839380155586407089176189545458217861680386729752859339552912335246457263306610399860802310153926413631145891065736983036578393201149353575789846799583770422490266502854355323292770562550757507116372743737934709379038401846921264165926472759215043275404134547597114837013744690598899614902532053891130134781352806477718952590936336209494635973533685013836090687226159947813856896444042617580497629584489643459677427676087994490999033479810935145322945631256162082726556224340683713489967926530984815329666614553076816374965190073347946066985611033451685758596649264781614245983566672992135904335667515694581993722213279625561771652704909871077050689201311470340836014024694182210921231470342555633786625273586674701650667341890345652709198138758400532050283148478303918456891579218445278138992456740545420329980660550873038428353665798674637834513305433140830870544028304936701195213074336392684703981941452872472503493232525456739865735682525268642109484457507676954480953736764751607351754247715416686159781560012018032844279758968859714708006377696136569210797796131173395706248955663238406708203353451640179789162762882481192561347849286627211216585169149788360851520776246881770575587596928820816187496083441812680976195249660895272925017764390476177094482917464532970775862928207163670023597750966931225840781178814672511635657108796634447591303008606910219700699294376764978736294508640496578318912374127555646932746461805581120480740373228506151991796708511415395014911970894722517383512538786141971379167669700682855093335120229524292664648137031601989750550698856724788934421340294636275479143274129386891777548863330751262109272220890887607629306164448670571306956777529058856117814509774344430643317813451584710266453798649578931334236516364314055183248792983971302137266446151312233002054258654093413336479054712230719167115322907251014850211577069491704439667937742628961083495298778504431344866562517252171254817032336729996601852003205356994111066685557172821083067352348381693196623329518909745739322150272800140893140157267791571839279936920813904767914514159419534388791660207879322694454380277365823023871634797605603733065624619293026492132198729687358724925658077032101702544890068645823578103789454589429684293806997161926390425870692828762530186111726934823665893892033082319386882620135034800751505269641961979629309610268429626276941236370129496871101636852278668115070235095378392768096878094816334635984033771252929317903371384257881134234708584462782959809170475433587546801781695652456089822200711449372210139083507685027025487371214708124834618208518389754181408016920371790432930496439411410153596928911062837885014028092878108029608151598201576631037743547911328666113502104099945917309921068759151349851182307835994393072818176555424361395079444166750822860342571808084216114539887334695419963868914065494842766947197951280944263542878104750798045378581854931402616868547924037733740555718963332413681991447389986195502960371696795231839878256154590990580888107759227769718949920689935039265025526316815736391896459732912973885003065381647537280703674348319276133984618097065884836425767126171077487142139108105217139156820741461586585054266068641688165205678580966040843010786703633282988765715611480328439045118083992524297987189901966629698420883833288155036921138421555477341037691202580825353405558767479504542197511278282166613224033795988297195725403433985999290973850505911880264835977237227689757688677304312448511618646874234185023690868802915421716721182075955756546076307078417701337041898418518560040520549766763642585369908854975828928522332086480046701352306188536042266400888053695528071275300599044017347492631534322716029218013604596148763628138544647835313421715344457395378948916584874043313402939342994797124035648321327144737596416902626949585728220039458443865492092804847560091743694843799778964135807366745082654512710703871030765853934923923552781630741079551361972832798515110220989578275030701008155449502749527012711537388662862246550406872516080869971103534784368070007925920282693955772537415726442283586584845545988829564599212523713510386058857486963326112090684932912796191066411329060383694554641106689371589735076156065566893459265290542158311396727747430031795948136650500677312624161275166660760044204931546854688545005670099119637270016688589653217402593902227926309086983685918043169541284206680672833451377668968875124080310757173520681737657255764315697957245480330271548405907820847207217294389946488054527475030186918452220209845041282000080536942902807192411959252383589461203705033263381582682742701092572966658039662626304048603171879425859877661078721007795413584372617124964741490312733722110613847109821430822351619997803952243393069788078461080392456543946304915669168874511525286881193670892462517793966371387159629117268634102228351306693162851165509700447027745084859019860343662420964706481990603166323202754175296821525895058211996368446311852616454556899331518782202190987076176935157824588086230845325543666250796490272793790147416445349675474731417402812756761639563710155727455990111904104160542121966964648299096763515742278646453514149838792191655226212367107983367518550953390087486859854565625165310827119685387686737218911871273386309470922353161626646279269171139432326819209696031581614819729909501063832335494264349873078203110684733258048077636221471986676123995789656550601404505441743105181807565208098033301508369047866599165076186255685770928123980073408796991590710092757228694332000794783360003010764789236669997885681113027238764806850345938527437752131363758633168868471787690054804384795085963011116823345029621111889161117782943901223061518733832886100614979892978896302010468117721523529274360729337735038406524802732976518627463009946812125696222760168083891950414368231281954162055088937364586808379823023580904405430552320342358025285995566546911267713873094941600552796247153791217198087630959412463144553293026303149227471885321307357462767270326553943085576463235698986301857541620616054739112333214634580979183630666462082024275705509614815792885408832290033532303961070502793182889526666988838379039769575015116744673684713306909917265209166438660165088450763445550993512157631736383776383846711415248369237300894203647164383661153319933902340447487901572296678137558639635579543987629581000746819380879262518169538044362733375437061162338442614306398461547364515196093099300092151324030835374128830449714419341666378215324684697969497060280623478825124182516682508655072207177968891028184874494772826435139094551401777230663225900850213977131049615116487118261404334557399136349388057420829596912492517643361524881546934942689078507790451097447520245658650346370992998833972614082736014515222544056308032079459917153391763422872170450878294794190343319691017023570218710383479717932954991157920923395153204694782947209206936901544068482305809174889113858864875007491312188707632716909777080835252579444354486017751915365970535230627345968050232357218985589053410395600895340987510181443374641855338458162557088764958555169233547302059102336324380054585862895061827525009045339607031270500194569755645384081786671160334396619872443964837689773671597700031630356170188069957403683628131343627193602819401924874703549602185364240437022021117331177374121233215546782478265998398541263090977549596789305033384984754959477875053074785664213552838698776062055613835793056959662542659286766381649205239304457257320281497088020958534385731354337570086515756971030318225696875895596487665505637406149503710223894454026096334806310346614172751744294491803319136386939849947994446353032922621339794991674334811397074017519391657204145903639628073861678294950624470664691640797137649742418025410126084386566524870749079680390252392792687021838835241476020187585401738045052689611696123927141605755106783551724779573272131753811071081123233553551833483087009947858767076256551572829870479793512646336078268130138893500339514875414839008119662097758940956546371717718351150260862513759513277777787803465894867343416745047920718658364983677862863379928221078227392130437431442697788345833904221730523201026563383597109690730254135746409564031025719861425015680114565121755893001918491369557914712018107601786943352840215992363371653332179602899998601172247870062338087662714514382471342237506551157916644792658391462096221779658298740262179721314214185252260835440818986146429018683704019257045212468074382671776205512804108453405735637242935965420218097716513545022740241253050019128129996439696296062196577403351313736872750250963862212509402468780029276461273821651234011319502071119404256251722239750411134624173343190541985573929785124556189304433324053021669569553304750916130106418942123023322707217627777252044610980596199837583265498171542526459327288285808793306202639875740800960559979500963789947804524233265678777089020640909983816849618406362531634494238809577785127143997860574245313819854091473588174869058846885862429782287958293838171863536388145605460496226006026541185360282720812231076778628377651904791992958217669777517048648970173679920371571137875122373857226706325609794104763396763548789522194094485595043929700447875372509565703789558243128102410411494276944918356858815115270378453489968892134566636542098368231686269301012852898770516006352298814211037843043236100348775131548170378648361569105075301740717176881561026485745083462795278629201263463814245593404004568339781867888124605902889740727199771028810830736168052638406825732278384111571023586828946978006154229591214991500022649332816988329935092035136941492587950084063073017940591190865811282952875634186470563440267729089621593498294872506366739016196871520932865463375817206209146698650510521999245569441775841159876855113864387449887895506745783725220522504089001858708209087473690720292664452411827698334123294355138713308577480537202659586135345115273598509982949927783326689786708988850784831471224909637956439458956774618843260387458347871670485730967702732659008242098840577667061096289411468258619575100290398706894959520890374644244413971678137601214656676535449937003789687362947212826844718344447701658943725266782126823149696606334851033855856148610447432317202463842637413173634189609349907314417130046416591340734973853600843444082202131957946713513229597872668612234973844262882714055052149579630650068913519631407274644975302099197048541542153829784353993576341821064902332159222210703806933461434764737624484634026415524376309551230724143384467423838310319867034667489229798604756603809254642699553494820902112851121061446419670957694362326510346136725905738378264749378368853013737009976252052261625755085608786262463058618341388499682211384299036389729580907242567985991850899132658738773827167546691157421621890084701362157861175072139070200985051243936059423753119946276786913105765322404232857478945784691427714672320745729700629472189566632022390354381462417874518613560937876508125502392380024458313651259582946075310431986971656090442982632966392548613917236845228352398900286942755031959479084951725656300979712121181379231124297658321873648986559620837903558060120262466966191999437255756468394027462300712884220717469413166956487866718556520028375074502273829128992078781673799659512174937036840902041718092977926903300772630929468543620252782920730742303721554724714502308392262563896247239419534263498158414562421566179935853283733850372343680785197740806818140069677100303982913256865668978253194412317029015727765742024444041936216400388185842173693070973442611236452909340122223654455480326250528088546121397555472559188760602563061479408708202462006393168069294254181835617430864794738181796463536629058538141209292879558849871021196923741833215669667765275774575388252441876895847164266780999556900522108670857130441139929381441945896140557002280556278003833435876767433994246217702481136544233131873069617010758669449886163480529960914927458791347383577464430615924308224288945905813577449774725228133252786741234111159494047134485671613326799312245072268840251404300614506236933053481191498811330089003604770649030089404108509524133920838869165099743356469355072547855566841251355225803903805063880038242236734534152509938547800968146007055792526281176092997610659395435664449722079018349613769814309303179830056906127353209545022195523710714507431828388292475615793589162018175245861949940105141236207498303589157303678799077522798563402724433587723213125864781159402031097778240159477796849478230373638627712657311259755673096376153131689640878226780530396141099074420607808484350302912937136766962897062376203956616950442956233965431203061097407806096690801698111563121825130868659601702142046284515073429782787387207907361032620729099855982877554574905895334514913696963317948954814853933902417376060079768790723034631323499218915665744898396077603013331774441591638713511923543115920137563502852727285392693432535274998352436374630106831433079718089388818965729519274066362551127956430450348912679333056971321472326729801734576876163276316717678650046641697794691199432762850171036508448695618813202952885498363674254640932504157314587260271754862446847542335499255923323256267605123727037714568735468350267228333517729122582220330052825570034116905020868705684573997167992797844630928970624815415394371916150327913534142156934447299409194602100795388588768128427577614043461525673840683624566148569352535221511003103833923828688945826969611603252640981976500596404654724293212709161791773923835574367327717867518182998940144357321322505891734993427054000683602271753657927534433630293953791041647549119483494604866666776499991944473044930458595771520330574343559506832602394567174772347662455693655217350250349367153650276311935566946706706443827534500484063330242524675968985442865567085384277231519190109459471112925741330691194203830936226098542095761138782366410511223588393818059397517014610975270158300755928344329192067704118455405359725802054748352001989944963793818905469520392518788756384447947389271691554082401765740539955215794984246525200549750993075639553744115411871085104171990845685506491590496512533234021721205306267329299112859654557419908183889006159746722321076048285789389751094631920137328718112681563468304897436506222390556077621158222441318807674442151897572848524296424989713694601427289265401506495812591573944064100358398927647550607490009755906499400779920240190813205087212543652054108869424736695064705660712696443742977299320418684475286932319670571771859889697178037360619636710186139249665876230772264543830827280634315643734040296077882298237364661994027402531438804447649052148625805313884768612878175100520523302261523162173497695529283081145103476498206564510474310308747038039661104850460226341597964736080397513493617160667862391559633650485356972646300075852990112524202675341648170418143507135034595080403704347482016741371795832253317102207258400625259120090306565319008606795721552639503527940095510149116294630721228497089810961891244866259917535191030232222336044398245937755618132000853029743700343877794630453539601537637872661853012708229523786749493620047893131973641569806171209164270582751572643080412088154475938240264385939857460091632983919806061234283463120895268151423026770184351961301932923717435902805794905551992040578179018793658282860150957399333366265435737730371077152763827895144035045908896099776592171256601847520562269879459265705850950814500565093581867789047062914964068089376558486886154097856100922174462220356594195803294419924506560100670319865840280591897146741439049294064579107485376199024850867147786403533194042009501923327413942090676309003156219378414609879299738501156241001716423147521165402375690870885980408685608135294906588378242535208291070349890204960586810140259907643015290013104761477953629582478730541750602337083504196406359320313052899912253828396892382862780268622966958324078394719564296582810185053134829873991528814582384916920139431534080174886212638321103465956901934619439388439658290766922644397395879928399467621727176582501867380831874212312932415932541021390583866605051739702224347399241165618849460333334770326127799491370192405436281903981774059111890738563759983986738040999180839823894149699618705673940136016464211252248748886537840674215827909655326455042785561119150066240792591589112274944710706205830015301297198444738967402848694697955448874286818361378163320738448811502054493191561748217952278060259790966553114955032293353418770674477203290562464361169094695674040950944795505521092370889319638401227589241561268784844946922835472602710504875513215809829848073279336046158242507800997049739788539669105125284789387553645202065656532022039761042264685694267464418299129864964191286923232450298990700814320750369727499402961090124820760117519673341557081013865989744775904483308574275062341498123192719594922844492522321571569048862287320621993521094277315823380678524650163503915127545654617688483171556653439896213146021531024441107957482457182812071740425262200688231754818795171865916064414650472387374028355070733809527880011415186016921057066581481115052756781647715960839255717593775051895552741003974440834587157705342816914670899789659368552396523356407925465419416507061345411138374057024333593056296764615343197209523669941002988494956965693101833343210702803906437209319639446839359729906855426823818166097976688558317801013638906790916646146236063128584587424855294217116898513438996330407891019318205341452485000710133646484622937580675058296265083822744177886055509668536286200579557439185255743090048414953373213252746094974373874394831186608675587376297741889010185233465678671840917627825294597059189860913273061061714456114196259400185063115884471435533356573649321955028690953818201069984329724050057988990054736738940215073624253536161631809174809802520949508613870587964729600405564027489905543707379136494343914712142528103640602836537007763929204616927723141085482679466778974061703173368845073575257949064734905462847776441785690057486899396561036267744254578100214836169773753797552827368783412583745854458244664129186650766536866598396735409227067493073948654998597212656568299370188187328314403331062341136455819279089370396030862636343658311148949822643416605406393723068617163682436853283206496952648273637509847994746893694906589720725405933149490307409529855143040963805108953847936202937595247573032422548561326442148732086196745245959712111782068822818106890383797670363018095644508495942193604655854409387966649294820011003415117885163056733848983518550735832062828938829804861226729219814076033226026656314789477465499844681613930626424675833252527700153292952123491641921661989497196733145137795677122384320994954869790207531128637973924205757658726730636223938862298314280669928408798222982781475350407842639934777043308504128798586114236776018272443705589082064627445156055175894695517977293873935327388747481261062811891816690800279763856348101278711521919820784902343769721763409142128460571744855559647562487200890275269055879940313249967682313265061500200216528109785108465195013498238677907948299014979683902670560730637084947001574734043900648911427376415152556163183846447622299810735540140182255541715432215470403061968524178821048145350811567714340600523032547892651077091735982052953769903797754291814898223001163563955532466501456305525917767726667310164808854107474432253164578335760061721215695220790876660908691899476593871062983266658572621675389130711927705694299216032099994462045558434295578193807077548469570118193686392646346029904265805231702731096052676381901581730811345989041341241376234670613525840592652331941683317722854422458278086031449995890978116714980890626819367536643181515093709493668954457276207452409531170784284797978310826343353547665052315094947424209298811745864041156776686112158375723904029756511397681221830643618303277398217787666928446795409160592408626313942230154515206952112407211070608392834662737424362564397185357847931095727822324827862547431310207572665522098668859528881233625149386207250327979550910007231216849858051604645904161355174778727072846230956829985850047380808124289181285613369517797975639200790713558343484975389895433194625921361170605298330260518601695617406167207429364492295654613727629307289991679322366222568983152404033907396594107215569170124001047820557877924137801656377458614245866166804572226436017581051021307991950385761472625372542209141647178258666893182195644611111761210454104262963178806890398019129640818248783264939308810338984338257870344070240758033277738009878350633409665178477631855343207107475888030760442067235936631897230742750763580325273444484220524480908703347286707897812887894247202650351349247409512760034745598550534524619973821501437869539184179111601848714654887277483414206579058569825137239578211589638701660898144981958174427800690814530484907532600460235235501767203787413999027170354259729379538180307303979439476658350040373498410238283333471129010893330702304688094345251537854278914337937577996189060073556129023394902027117913829702992201838304603092931901462300477190965218702231566569100039331200571597082301655776549047858899333383527163603284052287086001233572471591497187799774064032504644896064660044563147846978593159955519655818137783555856864714506929233556470150133714145251530882113310976129305100114992138119639903818606882437369514262772023098657433322270986128888938033408784518576129331892024214125887627220539195283697188292167576623792445011584202029988381570987635713611885664225966212777808217050944300826390393893826756956527025424631153932312071429962745572246359916538341593075090009281999660917522439965677900309161795626697382740724363921358711224844797225289158717052092469117596114866266663339850042811949163059075586684742832898898738621407274475717643527739012320836189550872941587276290850197337555624103774403428087998268489460853168900817027462541729354704661252777528875785628518881894638396045927178964122398910618203731869551996208109898012621294308893325844463439203691248391114469133041119428866630845767581088453885758091160436514954423870693251096358797737332668701707966881877220103755603237924513215288096877344479380497856534896975619148259867719633794542670704584342258877185064101504415391066206603451052579785892215167432799611891480648699262000323361814834662675829577598714053726951148436233446430214090181162854233293125864375850750204544743631851760143894586491082413820374195257834161937790345928002670019556170178788328914114031654126806050122405985511753763367637910215187125353216805957136057692080468314836179198696671707502066704333541166332585313328717295058457088753208171370516017567685575057878398077643671191606248105909829084732235461189623462875096862902484389820240408033792955107968515010100959611207776309421827034738140518685894375498486808277000623265326852836594633652966333341542066038234668498025320150837003000409619765503288132778124300312567071274218031810648034882530504284172567282027619102363263966332684728597286202271156662702809717652465295333701643494310947287710917491573444657350636461511754200100358785025854301091778058514853759141110650268627590088381543063985093631189776995728538698766701988162288924580091736127301938372643550152716664469782220214178828745505746162657299181931680570074357847734324962402050980452243035424317228132867532356543272093150677990588742122315920752039792758294204288016294145430738114303688377717275688624208012675552727577092921809135515682714169428065252417193878262814970695239031244601149836427020008121194246977506530815580720249184212083683002824580541120241583601397173010610093104333027252331060279885323094241616586832326473447687612036624825719078125510233662161438747912561012233441096015228143828582458202431632086316104749905643521956028277194623213912296355086997589374201501595075002484290652939909412894173858988190325419156307328541420777934075602930717394770053580267478812037495748757285481488914237634435578496132542667665523708840909041448583262865181354414432694264083053854968326323357071959329969792751751379099676323869187885707397571943395498025637947881624625179047600209468582295072829664510912689127442872848451575318890103270143761969022502344402927652985682892033217137343035213692014786992337474152395841271473358967908351739815825268802930171894062075871569925759130015243115645136166484681700618095547911971707314844791357383705816762790245630540201016530745671813641324952757979844265978495467398684570973909029491921021719581602807122655872414980225933810404167730345199784236039351119484825381171996403898246717183197721552543298013513514365893588510279274520128685643697361538724232509749778733910751459215249779123888305416036086952115014584970763101137795984049269402768813308022667067841066855861333532996662194736376519742311984436820028819781801692595752210545610440084882326562954653814066980505829520066480810000027479917616591588182976496027480168918888396619095219766720007802147329023185441943346713581885430153767465319575842155661764883693292223768985448340311544821469351356850894101633782843366687163405562047263311600192871795059372600584556512914490257311576047210240288458539538142163380079808386387343209839603287434941435052209522335318453621318846625283904885939800394776847411292799975546436540243552382073582821366437693584553450417557125338332159090953456206575787262423731607573998898490488437763600989594706617288145794443602762543660318668937510297669192441065694036433692521974443510255006415028314039497412720198256950318931439861920874952752457773029219763071892522054969345150580250148409043804380676980290124737745509386822332185797583411578558758247811021193526343909725200044366333032383856758382578217893443183955994219236142452438812334629944879264257122744916262067169515108042060644757608736842377412581539725481092268818590795109283216692437208367431846480025973256051077911885992920467456593874520240275782672787813423928566588921710226599444291669979587936640961581825855572210048582267088419250381748656356954120002079343313456313851917070717620599618102992799991686140856865385140743474079871962793276307887524805544401272246875088373371520047392013860058913966438360092115927611792179292338197111720905305272756835100804177714688022607964612602560132749012759099227186321205184560877820531372976486522437166296972439264527550019164974770664061780679124436312162197249357925865243145894296515533398030161699139288493830104280792072261400672744255106445731838512968755059014676606211018487740771770676979600092928345233764319581585212352896000617826075643071905902925710434401088703084918140280509318388442948418981896583553866135488785290152163668509318887935935449735002998054989251787149904222286849220731428078912946610029888550968834684408485859383663072314561916608843007492346671478431143216611907829176044328153342098210116756622773524101654183222102234808782433369558962506406110269547115181354239917334836292804122206106278247839018861929974991213616314419076693864810617546741160162428206450728778224309793071703961550261378054833375773488726697959871151096680112554502665986915543939110821199193516811643763444879848262491488414128911407525178054739021615042009530846154573925469214239494349823625874757806762703106391446807329546811401624970441544822231206718072840163577829810789109671353933607183628387842256008220100915069408562768350203232980635526713017452140665328159680393954605085379344809132633062792560264663957935764649073343063033307171408418562261149129358917539158702179615366857065927866059895783476315735888206320628919693670004043926757247222455292740318793616061408034076955701510279974375455173377483009342423534820848698227441553855019907203265775589465822566540530545824289742253288881061185846839297075385074346500575262072954768846488064774104322544585183091144611157146533884688704055060070672590367343048142131931222619604766478065864593775971644059399163476059309744145308434344202582959818050037716730207290433067521842572135931630473890386724586215727793859145174481710000846457683712657968596013486002311619141746334259428500248496370749475876390397589457418595032993681767273181396572066203473635897098237040666837996461445746530087691787003448573332253422038923557435570728583008892566398304470547415686086454951959976578932115840984425514094996985733964673419393163413600227090579305439401167910320656220003591538039502120006333061415330306020814374344968734007847599277278846190728706626986594669180128253137231608462941824577462522738203037683687604747342857661885147862670614917957231100899240131614377323617928349359150266559669111840727626062938080581893704022021441140206276165698846191866048581262872704838590162057379182874107445951653973537255224864341238089591472647009383917090237532268808425248060821841097449911113939589097928286195315905929918706994835914799225503423708174629624129522463335408606131480043658863170453702791285394849248487008093840350959748998486353888123900852562287160807376405715105694682909783580007976131967450313122293814658305504397230502618015959936401391495846618245963183826865705693976645372637893995039267358269897023984538292379079870484657516619143101200313703207634798257906077955324798250361437543279417725876002271473396199506098194174070515156265521286126334869346809627444468337665738693708247201464419529989639888019765365706629522585246475103182687930857935071963945905346272829089754792120279238262208478897917689004378957464143925799579502039212263644158362055531045475440247163661802715651175270987239726093720694004824308458130579620435949415056809694902472058175804783624107542715074123242596559893990329462447315814643763376601854748446191262963417828914531424706567383768931739396395816081401860355190302206990996674495701725343507541368961204715821097820109788277892064152916010172752874487945558459651630137120716260751815929134573085269120384292608331874752616218278822113593024318431680780749416127963396822672351426630365753777065894092244715643153119579561703157930093129775700960466220040449452609219183836719130090867396427961406696414489840613781117616299588449196089870509681615995151755166521770743228141179942099671478862990093094331320697969146602086037323052828773913675767648852786285632987338131960783575470317998845928027441872723197054709806607708064946916408635205126423074742063789503293554636801048958656788475980515202021331873522597036875292859127153348911967541494973091059808050518625742848058436928406655246255170019879722349915157821888124519857730244004886346574257095804515863330202818943072006884176611003510543641175988786265365578812845867029520097737811183228325017141879148173163654084905563554439814980918231287963616882638096456221861621208680380613027192990624971637323149629387115113739617327815352354048777815011990072526952439849367856456407446974955017496612461874221648427784684302282318983512052594713192794464508461186586545577171772613359288159039069228951103900846274211916224453759151946446901084799500408350689132166755424166518303355523194303717067992002165477481157184510010156090159373732294883190453596360655414928223244311328993893527752400774143170775687658293293067409724818508177230389654753964142628642530919255995256038211795324112149642711640194477771068206923613884011388153828064303642870962968112724586103962281260916680062141433622663718248652158601037360998494228128856315491638236025858043631427170020515922272904757745485534428510116504765005458864963477053159336761220246111700727265918253647398327254434207606684531178095596518781515941347878821349873184585390755869929039311278528879519026492541492564818988671520606652824343157701266038604338411938958113710044530955767646090013640863881948989629111830147025115414548651543452605516580261897366477027299588800913867077723164584836176684901004172841023255998894318500768216599618893039128851341237629283441689407485696669494243943737590196990144129440547264942551336949159829764627842760542707947113944254740201159430317220332963515402898173084100167156493414998944229982067438162457532016969007365611205057277969084787919565012423144210558314800472710287077343915029692679529492851069726303207350462158311113351441825136051754497971864478824485406430297828789125680127010894697942152241880974559484356707727021737339550196967727112148341394775754153772744331365655782846838941191678897767723577858991901564330416137929004054821340220064699841858813669665615989811013849187417421173005600224599936012256303564924545148390315640261012387055716444525143996183940226841972111502611660135034810830647875409294416930458347841557381928248028209679895062935236913974914457649529339649447071928701761509253782562982762281821578714691627712191488909598629458238599131915536298306017758150149120125812604071920518802749264795973620484844364899011181532161489662805994304245846338096596013380888368317203515529536062010475684280756914868809453754392426522378323755073402664747496316803354480370816364004999766873337991215901319835207710056041227883497731191818193540270378132940335676180528095877331138693969682345065694203489779934775155578909364166105051365776855295990650202040257549711938751065572387948398808275651216664320939271981876816038854404158826409895780437552392765074858287873065266632182159028440872450036029386057465385768858626339902890119552688730048964699251684198376064024404705228601670445648990239476144855034387174782879340497330150894600110866687745012628083866555802888258797776830739174072649517531156660843125012964375791811618969364979316271687575025400379436575206625990821297051195137896782128759370847960344341559535578015040991375055165361674961681327920821489243005852750164391268333185336352731842153392977795323185808469574611020150977108719430767343458642494114926854846217320954391339488357150435338021337207186084622143975781048740935749531161216816911469770204518864609419469370932251831847613397188935690455151336352730169315465523227405833529188918845146625603134890629593743640104222121463848789772440720707552970781301569908195111197053562212720734503020734405757584722312077884375589441796995219838070396895291219501098764633965692420892317224496488259898665917176490953449161822845833902059474106398240035413116076755132470548522773640285913667879234344229388456908874836805197214612242767247797880615483101904938892738713343059858462686548966779726848389809573985380338040525821290550851594671791185772107716851027904259504380539739970576871256403493542418752188688637543230076940036444198567916574300971144935611350041082423357391965958862309497359756269866687299468002478354400202940462425617778134924449932271204302995548410148568883193423449890782802110573700585791263965391546282004323995294200596694621655128032722889976378888300836938634882638247849391578904052688650044229014785000918395157347751704638172858480335155059913854683089074247396674147151320204548605723738223229950505128312351527097850337778763693242377858936776812381590037348430892693082034271062512940796329736302014545485387912245099775610199004256706953688615481699495256051220331370244247848227331380841791083748314078690598148717941490135757831676645528055989949618652620473295156414833559490570440874908346087836324300619160355784625595756375082744342294648011508214327627410031424851228338469092225034953645650841678255699965728384904597624098504331893449945567377297428216961708081186501879250206328138365702565657786123933585412638091778710545560333330782919931887871613315415633339383788325040353499048636230709104570607199836536607038493007584654606938325815640023626191095033435596381589285106935396141675039779163196288764092439235031704332635548139028031769182573897267718103981952749960616025670600238562274576484120013598993725269892713255158126630024898513552060083099431810868281612019644389462160500074333253575745583028123285448234164791820837437785880118986205438522689110382346227118232482057752897415190412663321109762092037307735182689408302938994924540579488290358675407093847264973534750369097681863515364682013852561443143377245471764836313088473094020260587818808450040126703756943506747271390655307865706640188350864880625273254478252887656153981574404484410685141655108055801997651044800944534714421733113571165134196490894069235588242992630837716964400920354136854379280844201429695044617647525903998863453444246969251954127073007051449902497676563488680439668519639141399744875684343471368346768440519162830240041130044446354390410505055108850298271630857698099102124005119250524540053399685292147701164548869717045848981572894223132380904524127182830970314643994740961088606004646837165860072722358054569368046205745336447730974301701241468089979573868469272872236222590686263398835333620275220688149926120623006517127859534662945582594664377248162675537292420031798294863918721024756487985369400501049632160746529248367733227496080748114973899868714005306822253849419139363092140714170485574836596343037881284885493916098279073087347563515959634828166521778338425922970342585380566954276409730435529868706074478787253928148333098815629972325547584283133275862524809783012601273700114903456038580891906321801911659872173714036950838970730534029451209488615965054496598442134062491751431835640911508963303028396376294595043658559905540609349166277525371045168497257390700786038517259808746612658521942037488563303417250478554074783925547060986908846382523369103879725437136609529415731239819236281288716776296448927422316521955782661698856041191315750242105896375707794282168120845642249170105412039529571201952043215779127139647323374777771945688537250268451334086583624200721968796566457407623463881814836892183367230421862258474003882381293939066463216503273716077025471231905852323368330083008723714947958490511264775442513507720237206738320759630202472659985167426586770498427518626333087720204119317848318284321894470359342144795503870331413496130851628835837077432810526488728262349134936618347865855089003040368048635136773062790077174320240877395668215563831690100929540276064024740714391987329140436471613835518336453161197181269605336890734016038389448994733720689084940633067863016966263510983573071837498675884707161418768676174242772203532580268074880496259560648284619335247392423433202214590067468429463774695378955715553572718890832845932074269132859192291849860229812822802811561250659140952257638942054105694227586382657585002407344171032393164908906214230453190167692349873437206663090232863050164244643167643328491171371811493269454396059332323613162238588499884616186320428138414251010860697334904712070503665049310882041498996789787515183894071529716140174179977313326763930011006404208912209623919172276275201389749264348544292851132707631578257238153395909884503026960993179975122908152501855633482256305751077881659654074178292693088369878273697386124435630416863528486929607107487147655711458321927039813842577154591047981591782786270232361891518263643159551658580828189598847627137230847886884458304490627413686331191164409876379514998977598937544375701624699962326693809305971983447254938670482316631170493064618586535681535008208331582919261669967178290444923678645891047271039587162622282045844709076635914320617873453736936374475857719266070277135890465546417008132149489382398028535350436052476465036991751443769273302910770203811993043673912546782365571034199471647502602413124424663825461746689190024271551691903890302510641382436890421344025102077328766702293381965104843512724179155924195784561877156092044548849105075881591060116636880088261230040319509753165768303172966445381552456491347625164170865463539790286690287242620340186272842441562237015796952575997683711699430071758319046255895261975472344891797350276782847789500643276845634072582787159011245429903810818416077260809141532501146803557329977648018670792441749255391114249335839357171904132395352260973887966475244656380136935162480071656141327559895984363692263122188809770502094523033427763835717431788763588562805744616447897196609303957497899406020675271650926375959243699689973941438052553059663308193985331352493134957013215700116384513943609506587631577126792515484138916653002685178671178108765948267450526245086268886687163716323959518307751653569661279877033900058167919493730614030591636128781613090070320700150699892988543913511848723984889745471954236726007773118676558384958528648408387033478272153172143798151514128113738981894332849687132616043713178552940655159792184378068373073591761509725005860166881528072944041158694121739147017954111798100824035916585708191223061512917131718754857604707580889244221098310473984869444069855320325248412266707792032578595276792722443073305394491045461236411310832555489469892912920161387752008560279694070876504078130929334514297058017013213465831020035743489707536662451454450994101279869149675132490321095863269719663160544997580231445977578403201024474389925904830294076130577961366231556392143739992505723242487719627667639431797823146795765847192159936596348754854588290020859191643715418737687552709039631751154913189886824813542293892702204383650757989850352158942184713159316484903574838729613197148290213706780537697539297764247686322459204309147268415624484052167274849294379914376536770630823219362292813818323678260078677685861876320720474937953631513251627826890361288069730345518171501801303466385456690843342725356745297666131786368727123545603136487077801999101221385710362094296161129682359172194299983362275450857282885532988547424803189806038040077775081202448949726772204983796475639787438288025829086885297466068857898990014824702970807556029950597482547612644244557543959644977774865232720671412308880389518382597460285338796813231022697846835619397393481403463795908518979840960984084297157629686856734101746120471752193691898838591605984120513859388931624599058269794583530588713583469035672306218404216229258515220611614354224625806615960944471146672643125359856425131497683758069565744302781083132617944174015367110789836774244677334685866214405707206123636600779533734180492407203337518936975992445481523331815214779479300641908554509751435676878870679225646647546550763381862620913556028918209144626438966863393689310635736270147269838752787176096763341179696250277405525779531702303657043373116326555010355006734659465942180512349482027862860445876870543437412952133290614565112217026000216070822729437121510942232929511498252780320325313262160045737580073390761205695498825169649924279198856268900781752489912860118586903348074918328375331416512461672563358446778886946199781399099317809804538843833472447411496186151757676534255352124204433143064787586261334065858746730901554809568491482726843282707641198445368937189150599250465674962192937255298603136975072205032303991703152145891923766620165299598404082160747716341454128204043944341211163887306676878004619953842559150321377400164671598674167335498717506096649185350660316482709592903053181613994614127886263207150601473655962961072475198485623365313853423024627033917729819197695202307284622965617210217986029072237761310759926526430135975706332219600144688572785087849046914961424036651100047998051137721256839824995922856635710224608029936873553430086510397175554240364417239908132427288491401938945493374902784812238162680532114080052717645030322683529277606794753671534985944227577645609950433932760060199602055799105108616689428291764120665960427347684620716261559998564189467661485633776307586782787122206581237559882273907966354915564893296196221624027310986830644046013073687013526872498460201799104058810512255757532567583564492369577489300980459065765601486280170445594959676510386693420398171879645570775594365019618178575613709827281639282475751975248554049505874860774265246857418535436867152746194532959652485707800740496821850330169937552887966592473223874550748294112668135132862323888692659295449570817908458129972087423202142530840176653240357088099929772783187726193290501453142367964270731196155036648730295343592382598980924884512158932919151313405286082634798970184683755677194754501206207028001915804679400955216635757691860877977825883678678765931178115436837481707040684196654762932989593914770994182674869869556426025550395829886345628702603481880908621660755368660961399904358757825953249541569014903565116017385985581366359242047181792388835682681680985126194023790971725490997554820107832110915309103564278242277583721385148477655833569391980256178660050352961235692993953579095114537176971977715201706470805024943009593753815716515318313639540645446299993992947485801035755337469948740325370170939906934045018185021320103438753455705711016297786060428908998714773823005216221709024043334764221341758835178466890662761540401793802740436640009173789527240766560466779178204081243055701517483196948902784939645882430156620376824406604402991953455230208490919739363659025259041544219878522780302845019923109477539560865786010745293015608621493558734312541128177290386800920643961617671484901726190139193265729457095771744852697749665896383861164006512623317738460383264001876581391325824902411073243739613678866567130179839767521655673715048832986729375929059821202410736365703000190557626420189206053484719031617174339850612182313159350216055471063502858085930639223306098859714574533181282387100474741885507015019714473651521416110533248264504370824533236059572994134558332170886187937499482104634279977984517297188066461693646723012264982418757470923382075981272696067391466345040337351037576990603597310589285606036164998393258145741737895610085677972557511342584377452462370536543744680465670683476934753627279442503424645478711323013566818307773828236930675812141127578442554951395153813211401968551346217757007734928010100904897575723439617360625652736664948094075744785009165554366646131069592090417864740185013742243576072425890279957389934327929688639586798596149349191580577880771505940661974112055650355332681642064176537619360460938734601201341954127678322147154395093493904874846541116836524983953713625204812844880160786556739428922063385476938687318362428630360168497624075647402258456739702708485085639080183780634628879364198864122255741401647873747865826955614215900491449632619479429611199351255314730754593225035216962663168729289650819813022584481308208541285786915369515184246131753293037850360889464801400720431580524082480209138684835521263579142176901785249157219752443650556298844643369080634702193167750316149593719853789978493680179134298127954831312656377839122841582461481327953471803280754680054916559861869868384809727621105284044379617026912894204019834932079342623508637798001496566961798176788620080838329223058935651201323480102860333268838009911315696976872663690279652740971823115266730712097409658758036288652428795751355693004652280460199395103859199702409623916100252707018312145214245564784265332079129876675734012293486816263607189093643110766430174433502121952628446931254871938541022794255254267203200287918993197939166239491878649268815067854210870296850906729688503736598693579713935214798955890117545187838444066178028643010248931253761289787924778330329266983807753347581837269116989826428631903143461561406338161439340053140053910634915008116172421634879034131188908630260921981585809021443261065118120027186441568050792829433764077574193629697337763052122340268704371627002728815755026303628040903463877899686875297375060704575140386422696616290738667629344793061871579420492358783514053644463104624914285863515191176291058781996387529106311451616369119639794114053542624816729345956761672036103546705333672933669002466105536111818479894450176689310225230605922450403488287999341891185792908500350190238782143739742974128327492732687543302304959626962943829995506245833357914715480793281155380646552448717074146647416921542117861412560256237715047590204633054879741400799638879272472564613963436240480287968144254694985666351837764911589787398787438411956268590938934950061842263487793432919985437665714162742268417756653031515982802209022740274099332653680177684339008331793059903079077797670276823695476841725902876093337536522019140472766462292443995124571249812185897640838177964146241012210696891610679816347845652207085582255732394299471425331468813192357642446375312060639467195124457222937773891301913737223535612789454796738235757627676181789745561192673806312246506174891377879467187365562371213298583179227321095630093486265487869044817660663055900318190454828053727934642445221027375186215081097080987849438581880270650143293135871904401148779788187556305802071672923707432506676245111029522438221409984074607815735190767612804284294437357460454277511474213952977537072803469658688423391827573361324348387286723336018966637412296697373276645970367051067687866856234059635935600172984384677337861690730380027781216323534609193973235809093792427465730447912702372807516441361647330525238072853938955051335010153094544955295153120418610270811443363938008880656799537106528113001609114231077028590100082775211351951427993887588200001665142532719079637872152235501451984899418518816720271977602341398906776879738205189773662723421922711175943843942648602532992460289368811028458248789413269609928687265013548746086586506183725120307898400180158451934964388038175108592647259944597768199852204527836789586627132139332203447852743143431671681406506212204790092162725360620279798591079805524960205238826570062397545090039722275704960459785270957114489089919886253075476084443595899502688799681197662634834635594105190073497843969595567640881837747535276068844914163029903475711192488953161809007322665594899259806556885943685607116352991070120150882715493490946662679281479895113614016659454148723620372337074933600304545338348091165428467862310749546437051821725616476050147709044924640166288362670161269423603526043440241869811107622541724833543321031869840657550365716989330778356033580544474414675435532809373246762709216486649753862236481384922896722470859141514063466549327286812396420854209693111640814097976867549355167871649912883635770405058614266201358401025309305594277243922937128012206973094580842830845452122158928639492988656166580598240453606728870160851743906910741938598526547834504950455578258101124691505530932014619699961306234427001783822888888496897719058092403279413073906619822730255286402983679811852340352844607575064160604189368064460760402981479622525551197509848678379556964419300210650043042872273762925586354879423916880171357498262000559545417580621975294381973283732791053017760818431368557882172843374480120664892230208075253110760827698528634650315870484592051657407446984646826012127205475661891721755966809903272260431247077870308984673329244304769097475781209118714783697712461266691849661128918538368929521780247498763502849299716983447620943047207880715380439052675191999532100317349741019109033719759886011909271721314470348881995121511881647410294606407806394164060125010046723873976542258885133245827951177517886980349011446330756001640926513277926642529926414973415603327716874537869240538386685321228088549577476565046278552329451018073631896746797698483698190100264949279150417798825805700946425857469607383992135581518940567430137634512428010578589918131732392751244525964442331874008977715644473245639544174969582698370476192118661729792887103463597216053113911758442329867691868996209954747998270136767609002329705958383456023510904358980725549522974773267122002256098566280088334904816671072326553621803401345284363908467683230043590129072345748152944557194901726045677393821539728355674112378615585610190571301292134811933092541969175964888569017209194921011901295327933130279098803469329035183711652155799526438476579835631972888476037311387133835358995545733981974916710180855323795844824230238465119308386684365387062889675714224276475591750704378933194249886752524886935035070876613934733602458017481823244077609408718658106580089936081581358152746269680721398119467622020127829875176714996092843896453564042655825632638331787984695982213266733221944199579055182114173349642896186504047873810510246481806983850244292230082239462052302277230880661812279064949135882847288615766706669909771280260657248172572119386305978018609285857962586378643803491442139855416453827736164243422903240391387234526453792360127096306117240007788380438450387558903723118832552445778530321034889754131859144764773586167123236242527681337327274888216387709172593550817415900869610809172631510429277780104369604158573083645199663652833124622316901836405240506330228591916097101358376439125562124301311544945869346196073970058239278554982325341514330278771009899045614090755159011291784850918535108636090068575401350834914330419334244614011055826728998313179246701856942708539220444239264641676722674321349630644522353878821802641833666752246235607495912661887192982842955175812974462260853107552449403960216914161290912040592282643225524554329121042558976265344118141853352787332696362103861750746729787093925472079445141794932218682651348767772843264297081948957283881204191716272407780514401429916683732777351279790733984389996729063490216326990287664352242462914108970237720847539345438975395455571244472335424099424668319644931009700438274180102541830320694467977118319526150966072235231952889886074897924627749412540362457480090301735265733330803604328420095958083927906817417195311757430810513897499419219097493566071543139311192805675855406723033990360064457742497557114701897539361824947402786793102354713239744020319313852488662203779806279333730726089065689090047875548922918896316157255505731901856976052789691512881346556853654542490250963581081553660114645451203243488380389209390654460341600602008737385018533869633410344174016450899934391464425767249030969883419105253613284644926231507131314425894919652655522591547236552670679641272857146872939515503823439108333827762488268629393937014817013699571858227822584376743723504023235957140289466047494433015796296655952978956557197879187955131017115076147461633673174577508692239986956391310287517348377345844482574309798273130265534391721827312938789532422791243291517144266919383229295121502108586497575643538455322922148005240273081350488961899339432391926021473600984783856905784509216813942795772057329274402902377258521138905389241971209875221090708238877837964676995999460116586766703082006633873525403748939866965003661380150077312474879428372614971291719734980127261082744508145817058685616342870720808524602743024214094915779590233520321148509598353247763507573585854487669274275348797441562426891380988577553738546528569513447138532637589927034713225743427608484599077570133877859438710815148567649233729603581097300922332263814113786933388509004960704465931658862643172251409948027525611191519150667328102618826536060978722833065686503184303026177879952309294565112395060844927498400226467228061891980031005489322881063779478304572550804029992850245140009675997666644686039502833372287411562952454798943967375894988105203385259610549005979200746791293000181109263349250003275376701117913226447060479250889874185799741914579114325117037963191955779951080807265232909135040145762679219330022742690284128635054608232842969625331737328941363743931356428699610471835323970308927166249463904866650401493431234055333588644998840117686522725076606663772619895987147653579056359300123030592584731235486737054650718130832576449008472034202609662884555000631692427713675615302479557044896797066119873549896757263680121029708449108968925064516215037401440329138606936851364625017893053093002477951068541267279487768669312179784003422801442818290123395025310846294707390572443059008479776052898327949935161683970019401950319949261736010104258189725391589570596003789305494891015756584743934406653457534480994337881895508846750536581744731867212858776093550253325079387429652329937965185697536817534093805607200871915473326638086818428535456652913582437315779162111265426730323591419001050883960646783590851421657902290370516880537963027573356764302044323308514271000979886492659065095711269988131103873858627134546050313076649918977868744405544654046813107201145212982463012149073780412458315134936805564413931301425406906068072817840858129692037532433211416299196132625337613437260657579023737827513191894688046362087722537413906131075495797693857831593056971248766329700811475300325708626217456638183070593358334741979890292507561487145401368697464539544943486787384923221903569892284208400906617916921939004879519155346786916174411660439253792846319116836368723988252742637881004607133238149758392383988953025991846720127348023137988182257427780425916023848146714483593313893736234322310915353140896955916417673919191359317714946853131904302187274447545054509272108964901890520943489333180212799019997961647418175783056507827262846751499363335777242884582471792980444222645628564498301466175728977335678208811475819549801040470023598532997031142542865185149192885674324390559219162706525847139980695718156669136709224330905662661461843388539224223773787006010148828022300465816570645162753713291560635560470288662836259521109054019364620584847161554136239482253399631354932746344959673545916272528437015700673626661720101013163181320003453340469629425856155423828661627625341611906050736170340345706890382077940595202276429126907814763278069948991095079210957306008018539103275705382715587310412985388605842786861269116551570167280045571764746469068032074507503862612734056925077874824994892697524044872642009702604509968021212971277557566341415837628080880034752515980600265036259571787264763712447171420304824097026602421533092278844762966875487610969218674177327712510156471524455317178325920540307340602557637604092404624275084841222008530980918888344062039277962272525431665468595985170106414390126996687960948514515235674068447591654244202047683646552125882636010135408525650459300798773198121626446824499843407959435748771776339873344708175733185333397040347830243028729976847490211175178229975481185835472540057777127534472092527231865296632869596411190225096618750634737557186205232028927507587911281728418742189589012860737690935741835804391758212078250411452292753755612199497758516396868129911268496664001228466151136236736625001069944801004835014866821116878380491055431885117007806534455959712037368331520054830767118702085477974127725436457690207814457821584371889772199568189600958190057260180842027312338929041441545992641054172210366453456768414204655621748103699846094788054444888343443830500696783556186874665186266442675286766337466398909322136245041687654944733294761184307182663284472380078486394069270745295224757067480396674271527837329678280117693794290786443351333550924966601452962909087293179770781901676563211791342452286898549545598532504663440077502363815854264756739020350179397946951350867860407509566596261231132137236549783753759093262655342342504159563820211534927184789236142984042919442041817348649766746136583236110382722381895285582401939011458999580115982754785768219240671675282256002735407882524076776545600008466019820079986814063398053366648793553276470842568881976449485226592574484282729706538903706797330448209358286264340887802896529868652249690906312079678119657610907705550433118278405559904214994972367542558767669595604254318676878241763990484368190249267702282098038396008752027546652615271059599756343949904297302367346039677448781147107429629012385439832672098028091396382178332833031384470194190281282089577113301603714853823053555749198308532161313894447516240253852423241788374273340376086361685120372549949309773000301983881539728399826709325933698714310047936876030026586902376064087947093079727391194965604255644928637659028867280625544890805909346392677053343511321872482910338370751258572354432287490360996732378804958404122790341165452957978607999292583950686123820253393685062048655076604242483776074950445575585335140618279826548903507946393925459820509079808324404869973154638635984729831445802313117195795928139763024674717690361095814440112950818974278669462618948279853799847651354280371511367477814576828967441219373093509521706393382690026307675022495471678818786935304761497719679800655460671002105574682997922379295016578126296025840814226131604762536512327371929710581911580625535721793768726267689553482797855559818072996905484113298241116560761257310738722653962938278637733655167065042094656701157193544439954029916553930831360398243955677235634563326908041068951851731609127663622665598865761092482346270035634303283937404058774218663268870972465522390611486374082583543668940722198675285329729085307079809043452123689294662887392930491662152014072546546387460458163343948883365721124037023009074192899405725878715100665957353253885101629854696971271148408490037081494150359087585305380130720243994891198002843788793867957118731222751932707168532207246730389103942096203052842521096457186364541107468818643209461030226935836588247559666179488315470923246307179405892148780355198257252944067830162994535551834152577255323256796456459378189535193650352265332902443452270630984101671982911509033126216181969718861248904564091744999011905474036081181391497413703450987549182160684814975681084765083077095098900214321899328683247093528038403569210572302281439826420770569476430786619262868910873187402645589708966844897515145958641951757403455036314971134163106608614170431060811964687339444272872105546347571724250954365199602157078412102177311689540698712741531324163606854905118054251166382664091402937735166444521199489487520447766563158200743266464001452859274167515079386181799028684012196916718089170735044306707632047121124495348192598755174413075703069920573769571875903293899137178031931482071429158997037203196340975556024723319008498211218610159264467384827266282560771458482049745710220272875998114721774714912232014997878558655342738406290092813959337271572838202240256818005845688781932928068578536630737303876473567324732356051263036159565485019420074142667516703445528123569082313679620456859973581245638985428929739080220607254643570663213084540794851087862523943103195867394263438847874397499538130269232700166289024469423735817886572711187538622720918582453414862776634631735527777229723562533799271206539403337814187400976281304099860342343447831802878145630151294299367124256643967424923812147973976748637776208913670430779717212796157855105775049155643641971074976314376953217947063927568607994179202577849718669423744503785890070529058440481126967698788517180143456312930220765287879424779815528605620238056351421471688054220672667457083939502207604524433089460120647725791154122330931383047604038603808760288608222762713857640645483984187392610090051781994137731032818365235366911452876923611739947647036665291247764881601683981434331003981545819455651253909554702898913491943478352711224179041573952103700579742819760085386998548790931404540252878151867521389135302643350270665902590602611441326046862852278689250227139565715965928485477885861030407457809956773378152818318910337056888798545466283311261770106392427731432201212397744409385315878399491150179197453606243611293327684835022294808524846149120527321591332088116593262571098163863661276015584676651809534963162738139211539888208664736361040043582800403098865279987457943890034053407991283253693847261810377784500112902259624896260869052249352995664981540356910943086141000279707580106685976513340198449876553585873390375325823747458721444502894679217419186183049854119130922914512319050383933880916317339519076788039268044625973346597993813151488273711088756638428783789021836105862252853146656698952319740020916540395043589509349547795872742364274833502071404167871303725299672017573976371320434749573028785639187444504426399632366745668238481764895874363607820231971003060657381967500749904415297526025846058581785060582425297799834349429918803737470728419504875647269963282429392101724641190111287759099914165818166519117344022868665757169509137514710658141547167711277560785296959516844908948641013867769619391493739754222893547942826930525236351615752486437155138144026504520101647848919291771639503201337997594185604822758479951624401310098633487756628403890190253514526654824523061409877356836076315347190244876542168600623388070312951828618977374475845369203389371254190743253424394141136180558052878827688437737691985174751242069681795340065500676947574720815893958056848804213729254249087984306912496896529225397767849342370691510219207197376852877021321957069885861306372933797678984946770483711509573548827748082172230821025877451126534265011191245270302710818954242873511702784782509361192300876940839088731030556432133841108433436843187629938639462967137777843376493865979064849433264568050686330886738700083596638516719964682771967361898559244730557048250068298394204772937919689556030225620342069748371595820741579478949221971186680434821832842393868228351602180212496883533586148342447724065601242378773760866628674654140558426740958919700632021420588627370835133458922210470580774391483168857037655326795821806533838589117621127043290881646783241756556278387784333488806522586549819826801370742382082291099534303272874557791470563308128795162816266371997521285820462637095131455411773456820941258986376048823452639353242457222259760447376944873166970369496710151126301267390634621974061861456435170882637700096481655180694280652109414955618490612727923592772679106408298143958449506630429444528597432158622899348509262898858119547506597191938378405405167014398355509512983488278738461872921367767802420491985846132057350073311035890701127539280987026935268355154123620663644751947698694314014293626019067367757831111283039412689512836611951156510045559190314768997826774812743655443342207024515246520412859327604038037101528547425915209894204071901924072659447067320787900833919535293229869433917944911378536154765485003914127202291658109069057859685742455828119654265783375338610584420861896854067576589737135598823656667766848182356837052730047987199338433785573244306782069553270718477676213670340921726451372280553491207651065332830606135626933926867051180049711488189162210343371205457007736502517981683882620543648542525517991808811051299479333143490610116316730779484528711739723178699479875295782863623705926162794705599577739933837663758911565204985693403292489124609402040155772973586817284388264007474421702726367160875477089217655675570113918579371117551378362224701870557350857678450694440317659075139519782551606070400930821052906703576643314282317340793038605870390203863869579252475233267098906851938539436118505314661128659973476775180113559820943231313656727987659906443816938107495914725699674689331723578649756310709796771011102184958257572877145925888512590601996017229468454956300659120740850788471985719714484355824798908993913340690867861549882508972816420742306418672078140597416773947536525798709238210498010872233168133282784492094850462416366523406322034875566263673446090084387825549891918620789392541894174534557066508201251724244369265800104100672548456625227152862404561760563845856553617729356811250933898985462952548348754600317648234549809338210695457881181897084507881456543534099966067930631066162901909377219526159601121690473742264518219874247242606969277877892067568628703344381946427685195272587678204894076342851424756801540218108375052242368697661154597151551451978793897273377407399604196494201898429202087331082863863586347861173010073380521026045451966398408277709381645806645790826623906689221288544052595273731733785291797732274085778314613881618796268419524954750527234495112473383871212386735488608461299367121096644143548187385759927709344646521244697273569290446353701568774918273575327243190913021888581444319398063511783665968239336388669479957984456289944755292739705980019669971971667122083720205777642398101064938608005469572690011829130300030269425212273867735705927915012272872432840585478209634805704393985049809479630132237582848343854073651130889387220875066613022121897996018993392997332018170118537169227445748313823463723655765921387724589118862519176646968328752291692336815176788202299501040306609734184513149848534358115042298368364723924875715557975701123488497618707672980731497188353163874784998337595818493157038569652074123481327987956351756366110979268683241511527056520220323404932203948821704963912171248984921725709728877648412085577563331309858722571431877068724567577259916152798179984022307842866013361690864495100470025339454772975540918588188430036979312241977067617219987050197505317587198736360670671308791164289750104909590053400937004217512482153243781084149590439523199112280955072172410836132798908825600582894879887232672838932605340496107227137024765114914236346184222557528740670837940290279485736775755509806099320247343868629459748827827537799627479744778978122351899810546039984033590537867126274859690513848929671140075591120271884808010021570250410983916764465100464626713281232022896025269174476664335167242411560178055761568487411741228354308102833846633247759579817104429315726513562920040488731396971449148073997345281216791025071253511364662154255899529021914160596413103695692768435859432021829118781349511547223298632506099093625559876219583152004084421372116846396595453659758486354015496175736988551683517717296187267357882069414743822710960684013947364157589776274294851953995492658161481485096017192948770150379741070150281158396136229267341998371929452474993374012093764596471837772850640564228892616750657229784511617934867798294969710476735475930595853890781122620395433549167881039743910118837973797266607811054099468155677495753771252046100086941159297227249986678243981660367583775381690599046382100487706145262255771178175548295413704752169138231487227866260972637356923083446678497402353586160125469848530641729861463996342055586167379801656900934449935162129923412314481557590799630892394248200559959540761597903894089402846210590484515543006317474241837064058093780392149302349657815118636274575678441002253612022298024908273409044315364379233515064704927595557855430039435645956090435765134053703977374157740847542049875700965071400021424082996726244126726299831972550346983429538294114428663715822598581063764073866218663080655268427811779667851218105769609317603548128614997218756792333129990892857195027546937119971009384064349331075663852467342430412719980290752000011418759713333909831300264696767355460322420764058577393913170302940175941300807613930547302645326155193708585134691186798214801727701776526027707855506565177230012005542512485089273414122134575216571734853757799814309050679017773946036014395045446067624565762175349204077175678619152575937722867577530494240452332286872843916427013810686626344013573432893890807628383585379613899740967020055608589971544100299102768132873407396364509085004548811639955561626609305438918622414435900095967926579441157319337923461218001960764552733916128229092128453505457111457043245695772937188232601179510494055969898645797030754491022621648939939764312298695933228220469872838834547835519397277534190385226898728414238406580421766617369688975224589377200634172423194183255847064010875621022917475606180957595267638458001114266862272115578839103705925153719416224497621709820115313099399743237695344350679959734614324100397970029683648452056039188450197552057505272730819148570364536169624700964728412570648472096738505511996842006873245451913495381714770189480279257711011917289388645321962056622640221517605471662693368483926317982495947928010362620966742512429429136305488849080419766071606628144049968747123852059916240333831187502404975118059459411123941833661623125628684915624508160893298610686607281091927323009852111555547084227720133215653676738172158378556376090267763540127229068046949957279219601603618644789703893468732274989235968761426161127450062292620673411826286559442613646024596148414956720136405769133842560505433534990970357158152604059017568153756366499286060498441769106181704144553537895814718478070178074011884948188866880862243902332603586549336932428777022237508822117318196841239504348617155032963449806209720761374520455711136186764679357686528761841553471692849366819894270113098880178536274276685690328636781503381823212485496186807597168935690150250084034869410936668330880382717691226049634445546973712467323738118202980494479946823112391360484119977732686057562050867541815683123138576853480501352958362283974055930364176040910181594289540036887365083066766305415326292122915362300478654115269414563960759864136528816103986695542382357707843867324737235709468293660688879624768972996834616820220434637824272800072063794211650587720516767235849838061054403060761707937425379645720457372508827755896193533755612988074233398603036728410394087128848059675285245621993372237782945334014669479439328684977480147075317760470901225093545583871379959754140286496722645384121549390675755903401524376424183013308900154509767653923256494534625111407065567790561387689026364210529348363507261632179001534261340801382002515111761705049349983259132911937804227262790412117113351750154156138750322244074879563854944338902638496582189417209597038569933586104685177037900852921546538283730860635958436690351213152765460152967635796986599702316457939876440379427410217397645880505585648253663172396881895913662363197802953978223697648732811472156413239905687080357499810078397950149029654795277931934237963640862983214832870618072823283550201478047181969209590492601284594926149661040583179084491127897200294354607810095139126095939926725245624894483129569115318480973924566610042544065670402168511905654563201521648913415297924558383572007348738190430821440273248508487607457557365364118667506955674470585845205431351232757085617262097572279896321402351879564145732577868014682800095391231832464293747820255295297964120011632253136773026853642195026529014861857930708733164994793976156719727078138359046918520669160543116449100564135072907850574149094842064585923323279283281322282025414340416485222874985971513091519501918430423379694259209783172229832164486990277961200342602985361632313167526703195621956886502274449666705454936339753110595405684963264173967378934636510885623230236234172403772166580335267857406807539724160325966789134087738330658979361597445810744156957949972907743353609441974945482962063827393811008725247030746878142463490774514952244226831786527164789760117843150664385799354066775230841684813210088012420433570008034076815252149873932319991436161822124549824877253478738312051715333213162514660161463950668808011622096664484286759402534788102853170004605072884886601622480527464644154351333657984016527569518986747513176710540096740336162029480220712452876239996822443597954341416125910404421514906030150625017287829755371023925566300645601788935779264545853369294046060148440145345204231537709527388268617925167636541182463095642585327569778332451496441860364795783880610766655473418873865221861538474982525937092092655897396836406733697862861509838206576960206208579756849051507152717609126267914689812799897987904960953779503842764480311469262417306845307841139856928298944085360752957693502292922473445386126041995342753452165326878881313892181474770190497573360087013017581382437972522559331553460174311569637205162016243124994474001171839460736789017395666540898360780612473884607264062598793320325785431915646229983374436530855617154364820348201335991217164277046687432349434920658847001632022724108025846260567380116870621907447198924973716667063460294301918990113145563945833040419992172130035210361826737899830545274389237910806634750493366495990591383605694564071293232507525589170501597650082508028607634386141606229521832190626546281589679344299033600283731747687342937587993180287744755597325597390704264281695014913377981531244257759721113340668959547350817146156473922344069232306352270081943166758031496947568654197577159991943055298939347947620169533049297536516353747242014485658462795280369368112309793458221260946904734857862143404777775608332513048150059130821210142722928213226037500559134046489438885308663375656769768462650271877951811998142294681547405430708485210758212096684404849941467845102199242587802763931226083898735764099175770307204197919517704438232113700223346724376893064337304697654225164717956335084958658294022311514115436648809902250325172529229052954067969509307249193593251923519015748819277065517980785002819223532891101047785669855281433297100729432436070879045304176320407042070954756300672617202035706406905568923131538361140383926295851225461362066129589748588580729928069757333697325104485382188601571193520802481027075078510200640130806075529463220640406394774684707604656202989489404596332439684119217871496580169685991024932791285462181594764102969632744899141386792687263154193729976022794898246569012359890063977095224814488672147777990200246510008687108528413967433382440477410331387423195125766366827290142794988295883641676738175096961424580828291215931933653935498877953459872909437314946032193075465764466451482735246482137250018431767804233801204354538155767485050746062392939819471461358772559502664948534228358065692379433245480082426253743798948614113678163906942683785632227701433417346752791150314776041332637705647079785647791204267098748443002017421310571782462013024270022601453114402201181978014112610343483069469310515857061432987889589043073047447502171836004164621957790836003634475991175879335494178547592224370558794759449312007650644335701655295253881487415459516842011885917750317452288609125502439842570026030193621770363791946652483183750168668164219385095102256273072437700898052488298771244225840893765618381660334813873128660132195119319151289972314204118171694405543997945315947936592576252336689853909419539042950184734001885760534141046023545408930280248296636447649428743117625940234142037133875648434568400456812821976400646966642239993784397167904729715674682545595912642466637108954106982640953532443535512503488396003629429927624986856199933389408165082077355318399345278854055562668338887808133247479377728479368673246895754393004127715761533278401438296789777743701000666668283569361984520472629350519528884362124324863017650592401728293160695648104928111240401848417721216909033865245442513722811284998668374182245758453157294015042775108949002964241435064104092045188740477338608772747726377370092733500319753812741397351147219560995352101077730237999252742365418693873200071830716586158760286924312229621752218251060103193449986764774329829545624952520497505938603904369462902290143983309111130603556159114195386895676810880762214989004407236393887300384654067838964820285986748835094810717983701818713797555367270879275786984908477754561262652710127700358533461289414431803959506924403164725586052641914132926037838009951082098617074141758423508820297758700874806776896464726789358331314186157985608484130060726305621402582015637843896933084367975313437509440106058679667600345293805637990230469864835587255904617504961885157597739067507713031217523206562823189583146224926335889319804232519093084345312901896494616689174042986929440995764941420151342864975313418655022552522295436483965469317342983273259102033937968556748952776891652179993535768121181411702363249300479824823751404035608042550673103807753233057764562836532735576783532922336748512889004360080687198159121188406237418862878221230869949956860584598524257158646300348446996718005866654872216563027643683537784576425184098572765846466945258682380932338839845455068413867913414411192794944022595170675145872844893557810460305927788341744763362407417037064041669190043543128926770811120630108432040569813945125421248612337990611624528545054817036757929846001610370624303987014676285925017353336607795862418987644411657301041482468168098865735885041277476928734161912362675629914778914657701749042129654842128314559425441775317549255895490418008868093373013792503884641796224828979469098962573106422813198745109398248644056172718325505755620665847443727365021771692721642227853104306641670682427402042306711458862369069200398429779908492564589192312746337057954940507146468437969550763450782891982538755610763576664346456654929146425346548774037825597978769043594790545154178945806403082993158247240887220047900026388270517214108765213993843203184127642221208059693139747105155538160711252046879385057216580769293278666413988548820985569712300027718046631541965094754008411760500703034562606824003488789294671406082756265731875662223478068589029639091427051803232611682431573793465557937493141045728086361545021424489313911698239159132031201995455681389971639015324426573631645437469230693413189339700851932237391546089211927842556918633661751717289008507532567914101555895558819682815676022902344027362535309511445351798890591199146240169111662508943207337477813148511737586569944351379660682337340679957048756615868329175556103100968616689549524993381641389476899092514704342700650700522258592549865567517603821489074675177000255533242378167949634126445069609805155942708002201987852897478769132575289023663964798028902712946766932704207215316305695067478721372074168622141713463206910749258416967659920115813341854134774059439896174126293025669882128889983004408302835033318906506760545491953842836101266749678436349126130690759015202694743841131122173971528349765385744651081186908101203505659430931041720246093901323331740492346730070812383608734161664830380935977326498033506170186229033390307681541104026602616751972866359069943165852355023845764309970910795365374167871810065210790177549966229386323780252041205876838637941258443042924356962336315387244777609130992161359388282521411892266315562773027923657772954213445631977237911438871693291597503419457869046792481006130639883189259900776648975958677002141358074991825495681222788357142205449945749871301419090761912344435310790349151199454143316085401036490774119794429612301111030737188841116751770951110081477105384397968378636833377468206811698375808889035741350087232862049130645861306579332660858685279281788511067878531166531617005177439076914067164582963358257339570016661847702483023234160559627934439421419795534726850786220148324469026014328008601343902621003030209746729360632096170487879297397157791741193573419088549618500758288792778780461094935950851625975854383250741782620223870916679656116033108778101387098162075919452125386658202570267272628259911290278689292061588930537647089036924766805185384353520938023527748545158295643908082161874516844940762222747468800268389009988596538785339628958692318017098644638829944454216706186292535402269216598221397300032103124759858473389409212169301867072056195401612475673881721365372837267400002309308461881103347342473487920238593432899887047060276078235293656542954631603849917344938707798534936195540553690683426237347398214216821692063784643283462437503486976505525779891685910997835697241645329417421380234344909252635627598754479326015052750811390216185945253545361442360209197828714109318817765950387620517062383841807767170880271535019848386462107136257331599709640318886253090864666529905936575554883405103074002089813476405519385486518463754152031929193002363337847250719148429784047600037331004137169943651277760174221459685182502047689778876796420761683790472292055770297212816662193766698871371678053355279750044239855137831953080546887050460237224930224187208505032429359022520285349771840183286228494850090483275543380636691556505181229790418590998115135619573868488032795153465887029643315510301196295201178056273686751457330122486822624291758537507039848446957965951298341482905683690390216258986409130356352183682824119846746805631687740858331352638603332147924609564889263608128645766252028044512424671397401459615221119281957930713106472251355254085712461253979530691109290989372670841798707833559494338343996142811634978245636837088255965320384767649286749796881222350674413023502284749909364982336019503957978611421306605984454894820297675599490080018030717468990516989758357895020325070333092057729777160528683963403343496648403169419255442579360357702634446603082139767515715368589003991975258234616743697130519903721088796503613579952748553581848521775807434339132877802390071106891469583469673891652983149764935554219110634241825817686336488109285406728550602562363529073660956206909808332661502168140945453783572649041556563473273274278066645439419695253623578679412212559038042472751028781926940860669579567496580203615326769668843467449137079447780667429350077340870921741471388441770615889709326523714766958420424791184911686018464681362897168587500115536955644970767299056305445325456874354477651355995717665231653358750511601518811812133931719847253090182569672982041611168059564868424990402314020121634495636247441482740398978318631424239138608490240899683130542693376789252222007871922478635205744137817596128757791299518611650273123774267825889247395528363754142812435863794701841547168745633437366834940586218183029149871321663421652180744181907023085549889390578314120976591550594003745863909876580652934526036930041092521586490107384858613780749573139272831171194086310523188570330741194321020257608003556069245713010069146079205519302842621524247220900127486027134298582308449811902731543797327682004136336324684196274886043216170188165115318871433449366770757690119560144146902768938460063266978870265016213273081710342394189270401403964562523707794836664483004381151479716003351655281354738388769090200392377816764447332466089858667015576089753262695096670372331222053848378015562478805026480125537751095170095430475830855264197866096079835739633635904431896973226528988703444525345188933663689886234856207526520334841008639820572961902550522191109881731732503751271502949414029721152253060553234458185915783559256771088683815707517315993114254469966411536935750215862562323078266030363689684009572568394127315960502443754260106592535160588831932396374566109352573101584667425588078643900592361389795938457142437078185068568405339045566511529358908975107520877674919173962248310203799782914176688283041530704776516238664762710589691165688394491760083950920534332576074541059312488246644979694990408186745432458400769305606492773722637202674364738106365402334205393796890673484438087152984812866612220902965835382918162713580224991026095073665532795085232580045744149112403728509273635381832363953675826739913076324975640413562803312813613695565647219250409745472485999655178446172951696795980774537242447402683545811404712693973322995713998657637253176320969364068060247752748228932694697041843786395707630997013138033876927680800944834803842522124498073749996107645602224240536509390657822479219191693746741662584152676713841371059615384813070691936094529917236522032890158704835211702772893067346497537006905769228519389096767127410576301014317506524090114366854220256466967641513383123647204177869337528852042648851996256998949714230049103793440418008219495254136870212634120479490831622672804688267606970970794701915801977133088138240932248975263006470558200891358086702659742463569868023792295898735450170165365618178664420120144009434216035638522898147092735048264996178636202911869524954358992957428679467500765869084242607233319507309460117325460481202794723633805046658095963635840475985828774045373875055718214994914864424427482382682200788573409947633765129333160611713663780432393741784536676739460246478219821507953427006088521680542159111996959028761143495547235370887791249033652994907689028158953002213883706079808378286742118917651158062488855848614052364021736511494257435664960375844258228615998549724314634689555409219088128026383080186590804231963518012344407871555356991716329185480739923675575559524865506205298176731770247668632107622155954720706638936384389228647723395591064912966803936924891916507375848738458219121806487643017663828615955151214681219807941056313348530042787401884877847934921821633929412192360020394642715853304639007491547232721942406217196575517466432926195466668588417841576008769125941147548971686110803680728217871423609976049530275754246623277190202592817828237753137737233741125132584135628669854918294207686036266013269122937933912274350834440520953277940281554390970911291216835631360845683900154080178942358678087838468769348254868828133400517048642212872737293862760061166453689597682288759707762785914153302824762870331735133261028487052800130132002572219675077656133428730542065995269952263264963707581926016149966082965819025065470711886848500248588708340490530878629759756124532611344484909448398671667839466572455176922819275697793140590568245763834442470550971749976574349956833078460807846881385217135078547961903937488575315051668561343361362556062509250059661685755276202770348222137072379084532227427835601599265401635747350108442169476328407697883624070897451428487809684119602070269612086010383147016517090462142194851185552110921418878511423512430348701457551196597309493612025343283676250389037203998019872828804916867785068119676400757647596289946322311824149838145844432511888842060753171938437262547336297196569934994307680290993120673679207362877931824362626972619571734885567546185870049527811184450661995092499931172556953508916728845557469598927619338408454661399198137298724079948106151819904042563472519161976579407565849647928637232154668649261298344209091218692747255553191073047246948409785215294987390189684908239549003478724330861191508788851320660907558734240424255819094957781018310367892718699084357218946596840825951075692023462287566985446569205430434950475398917703666301598271590909949708273043406433138013978041594097403513190104535399777587070534220122463341331129398578544716625705150763532179062705423758824418252620014640395832334974746946996004406726680274387067446593941559142738067315670749728160991082822628936176178231765920713238912064179387752361354097029199031486282139895921468366635781601241855102264208188884586192293967334702103681676529496216419671311098554721957519303738712420237456424348082535536823966510904758669628746067667934937509446945690513999201688673709262978070401962781903936306861797030304184303856332471354465452579795039612177154342876038620305725389371057318184367105324460377897397220439309411184589891208447180581313059242001510732886408005959308361595690687332253766134011175284444958272999199430399866695296848029441707940607352582328842067929733841617989078224019738599568973518956651687788264695642031749766797236051807864005760677013868636657268273405643725530182803294723803098910509048350646537137960521807398349671162091715431360773147698950596922203813085225140699855421903343751001169991863347798327963748083926243475851862370546400366346183069271947898650358779348838122895902408674190636765539135958412223646288423030205450643743976470772767327570443857458922747243180425945742798332407689192986513523704664613169686801131110415541864750585517778393986385635607101429636112257814019169982870793194902487214116927936012684850619394049202905963359337565621234563491873100691290635915485981247351772551993822736144115206725608754666050183752097793512560304346771286357877182634448153696477444529372971589439763371723712666542095405925810458864038450077363385616593778739565984786916557718155657294078020250057273438937643897471564002046502862657257119784069147589562972960812915584693948232751797553844545589128941407030958845096356847550493785071307863353035531885760095079961969885280395196421919834117497668960029609482305676675280518033886378469790826602303638444868800141607009365578777974085609324117558988336550826552674690760316865574225563287579013286747044189211020387598292303497626015017422607652259961534921005716218412326386332435395535206974719319312636145516216913402996884509848083533457886446311784686949988101226971742228805604881048716244372292703576684900065953619447383332984905688946823240170467292296154811330124255755413789217669071182461365589662172975619690747133036617089544457216548072961851696214263798257460525289014071215939008347017402984459283418152951283116147624032434035491356429897982932929003349768701202907572507945423729296556483774741549628417567077860458261641456235944462355482590354618266668396157438276936471914882981773623661655233519150086267616664350532750343396926268525036090905616299255236079545411297230509904807172225239681212912454283604966558057114778033401869934265418868444521386974934481476651716038482287203441437209985424217974835751765705308078809815484804876190952612524546959457248244321643436857744046560715105199896382882543768269906705855747455984911913342177829942335434335266995158720648708514122294835631862298775732957854165745648139256575373301715001188147409047147111368278991610139687882201249362121365894803985886444925694341928995412979864113119094255957768708497739442436717471940816950069646114568754602248803780054812196149914063440559962830859016735605793173784191810232618521327504898414620171802375595408749043820725757582123754739078289535185584221228050696306577083473543786782391960082080283069706263746304235756179031877141925738412860402533351498103594869825717537792179912109509906529385533451737455400423686232415962616037343218108928063103886099750025929983730102136219241551140045068982077992628350854261921243079052736983599109552544095865130526134423498114111682177105460241253204632018658145485309159965820565520778052066605163996496780679777643091492424114003374290720674961574755755455798691435071141527988699610808964493459725637790148390280263924904388465591038249971061555485293058057424451929264258832026249768841313484811757785517952115412126875664337027603496030355024429839163964171805013148973167274261330776879414064119657791807366895796298116043014769102543098234300081957628452733560006122116487866708740805772477573071718627354096797091912716240656071128981290642168695628590491141043376068581085302631131407372031003231603486364619495405458473329841290249767019185267365692078313807463035256270485009183865839418292998995577998236214277979392231283105307030115827258175807561158924520736148212048808135289690892442275982311720266412518519225825839180695910413262801705109890656762768154240066805915062118608069771806254038858358039002591447491677904703784654433486507860596244910112464317359012077044816159489242245455467132359816007378730013730115161413334912775693297611612542096999321192415967524566566250351813926547564296365876378974717107822931098367733224567636355640240579050385920161638817757247121398088195837715962639881900679394445788232275280358239952855103813706499252250926552299597018148449388032478518930135185068364508085660762956863389317614294964496015857916851339792667332550761916003849208349359808748740919409428046591796565570067057312321359193895926630616393518912915789926890217806576342438281412550624786773420431963654539485709147415501396481759378529455583370592933651493131186878116679171831914433363726846764376380341272666668204669035063284001411204734594123085134258336609730035903503681946619876193268449103003175996879050752807789758496326619955920287924246377350445493649425010875497240232581205760499408994774317937539043853094125941435516179648676739428298372197647486749719270041740012836374030337559634380334028666956138848430085998233577692320874500555954236652462941062680555337733686151024542015735047465083149906719026102935808466788175105605566909177631085371513291362864615217529640726610718815936901495053321118421358330055941769071110264369193113902626627305665711542644149329878137651075039302743544478596103293335595338974424504947285534547323273928281457049876041917419678587711222113784405549385060334723282644117833139976367092671424713195773820257463255004693859529620876910998075046002206467220214864241889806132600022055647336797209752200798335626103679841336223873546094267989532929831018821774805728676221307219249172630316132710194970669556550981875760796062392966745901962317339405978469555334359863113733049196983126143918698775371108925779767324243048056088859620808320083046782668167510894933817407269713559839253342564020676221932918761763522107255253287143508788850033979705075569376236649598860295757450112989538056602122184024768414333635890237868697559660776455532489221149198534023433628957910330229352912102299310960293346787581858276141046777210795872815448089431078807480361267606419618336639768619075918870653691285134236533231695940094226115441418987722758913315691497557054325497588393129247292483133607807218624259434296767675778745502312154993931717264969048071357920869946040464463661727472635369970904284710419198292525950594971913431332529066212706201094417290555363785500325533142324040654160012756909422344607999745658967166957323638728121373280708907462805054297698201419773106463875227962990446510480051368891539775650121053088181674807563869078052685928002792807671128736732022252536785362870771315918297586796625381192939277169924696748662487734509991737177877931668358628801115656774841977358049527506618811901019556134331694447211706098788361586081936466029380020646892965882456313148615822082211331972894647370068345566529199762240473381792915614172488670256455025668717032236060383215081944030072653537794710294406345031335349229705161301381941702586972787127766162918102848907372076745547022586211571010368247644615507539022408443364576517330598131029596935599472363178381381923589836581699605695967614000531362576988940963890260583335987475335197020364759725978557739526772306162336372928643102788012913706840854037162189297378829516154621327906463306970557112164047382187272923196630347909497867615086925475996809756851119377901565135079412240911227125990805454256726770870522838908638141120684533226695311136784089517178848417564933014061066192393262553555991104397510303317486355210721278950438086991777360787722726033026532120554602747305230880968407027420805198573531182827002294877577347198444867185075106496299697773437540004886342810200039170989784150306372194083444281621578444868321962971169764785472370038805012498900093860716892099411248765298422446494380292501466252440986259686302529527288683056079674206417271332268847780985889972556433563545059732011630094013716020145161578284721569426697934008512733719058920902733316502573730720964363312974847266103267285314962080849068728124232347220841226959688170721587257823088703731261303443642075458940989384159853031550627252336605928677582746196275690667392021467329323476764086291453923681677635293442712370113541897383373954696231808280170848685971904711600988851441983409193251562788015397098380622362926030362477853793797373835744284735647902490691135900960765133988373627858573294490952530902160893194141208135628417925825702377123680196474268417044715059435942924383129928068791978792351333313312084483668063794725786750956334171062071868465099959515875964593190180632352047984735269807926165617925130374621458618088242846124167626272979437823084509382554162312797163217824712612385668891194228188743638655007474722755439907763447543506798730256994368464326081291979730376770816566460773931879473716877107631501228634042453153178416381374937290146325949792820069117886379790056415493450123745790758904164538928159787430562016633947085898193662199942110779850050254363745261579810458451445774696686917488817987683605816970285000617594658606676066116461274234735411849217682949690080115909852022365249537560915549687751069652795593135366342218669832230953189847557476596386052749326094722756510705008166916657537052378157752237593358050238981356877636373926301921315763448168409780269125919789068478176582164507441086013915972189248910772244632797485035763950620472264961339419964414283903467728885409506866961176681251373736666207563183953700091436316714275795561859974460652051088386693200474604855687503107392161395054123531943704609325043067937424286206001336481141626034803785033024789311756566479271380416697626011762103763939290654618622016736745377289754742189591046028222736641648186082691162305636617123101722683533269995199402081388257785323916753926240860443005991285929089628205141549936295096805311586994867356146621674631357565964402836953161242305264878227138210454174835619593012718218603303826443638577859065871956315615865297800251794617338533566266833744361960380889501640575547686329978648723823592473888356655013607674840735272734706604814403773281353775639567098209608411206082951857822817512997804243131685139097831284810799549869965514209251264515796367174972592173075324294065568569474609710774634336529943913099378269481995823075329345698994238656481402385955392249928844991600843266638400032595652525568284075651868646391187659006596485597348395485807498053909301999812199866269518720737161498539804918392201749146739314315477567545089557121083193093103541061634743107416538864022359292890434106298312812804718840154480272092286467616628225185237955389697653656136126319559119832153276702497589247851215444430742280411137184043454680480066523863134921407907496059488704437870884281882635730578044485912562511698561204762192651680995100054237995924081171258433544086313862165784937608734062916038885158433605587560091860628162803007473490270844125571338799078572784701353640488532029799059726623330748049573236980683084603353742893759177279077130973690446738330230070700056123552113519435819838423276601577870592107319395346332651504278165682001097121580125963682351404036451245274552589228142627731707476008877659226883339439662189291360583912476383340315842638992282060327236494900153904869187292148810065070753832474968758557098960173651905589530239561995731156526507327561665534232734098769955561008639073846794851203771291742324375973151503456645883090544696641603647062843582285201545793219287335860392703304452058653155341966288941378921967270760274241682704741776142565944015523648445477124615642063521784636873309409193143932178020345462399168928709785225247886181882629075494291105333556892765929200005527628425183990088476314535018473946727348734804556359876368552325013794677224753303544333896795383288061488221731758025332088795518247119130747005716172375394703945350219784127550211401939273427817944798715154891428969550357252503377139472385236013987762043431234020934566046502383310447969865538617045357248345483159719235721961511520689563216959774591972005386083610118165594968486639755893301930715920410377806692809206616413648221631873725216893950056373403573144507276026759959481760279839965122979344838917982728078166196231781701364942296415753672530807430073214957995332552294176611441605737348855210171421714303176445477411825570627020908254092562301746233388463847346902281805356734477914641524312485885318179747711487753516498541090532216353050289682673433378738983078631551375528247564290594160887944791003384250160927281077920292884644753983934653758382597644242246308854645113538576282580298154468699372843363277217721563289477788281573003741306810782865479674138140884014956484097147392871905849050154068842178544012110661314843299435392888218755232474359635475818212684534976652706339552743555328817153290616102504482162345881465473049618549183343131158876768874107544881718332606427336300958116214822274444000821479865472941375174600057846018814125960807374510131751689581049366819177399836579045636859431378095251417243553670848440379826025485444966562034671610450732970317419787315487188992552407390019563041048880987025323643145241125129635227302192738459339014099160951116605380837395500678225491196148407398701525673309433701524868792554774819304091341347917918170585255874476053740252083290083106830242369019724897088478682148443268069220774902057828627635763191177080066897797367321801311280982778995749129356622656067951288938651499109637801482242380473847526907040678941347604701925890229515439852425869509249041319467703275478078300032112334266578281716494593634264143793574050285723315884746036610305779756380005004765624444022851238390030624614041800397001812783849084582932151796477583440399457856226042018347714009265998337505288580290276275348477311335618454942859996155319739760387104006863832770905959481976744285161778660335410951706063855535792554690117356036644176929467320676168045914077457629466961076208649543381808639008547293296501797334414640298086215493692491955297411874150297035471601762379717692776423632657160927685585965699593373133247302422411611711106298255583712674578299824571029644085857734900425258400527693549724003393990083913698958600098321873670723680079052485631261776686246194032160907774863844613127375306813870030347227226305962549904440341948575854083504053302690687711970431742429844118067836279770482670071931174997899324491450936599375851886895867415888861320911484190685179714871456551121573749270422295934369998554627507512012915216114143468630480697377406056235542002134791217850530860221451359395485351242832057853193236015972353850141687551097243916792106648217419625310760797409165029905751393603509115766932633102186656879928797089138863934229615541120990344876338647945000642554556945175457179420013964580939851619093627038063995053312887885151504316901171463816675533264198653377117353566690773466956233681778554225524671941727484591884256710456683941351826278776595950216159483108385827821237889826406937534759139407495076071507739724735663736450988093255473487946218946793543681256050865145346426994442766585689764885096620716939303299811155699941921070291696908510236501647672860806768492839415281513933705273940086899418742747262851823421471620713379887361829449206523565369647310158843162922686449333040231367609548047548726549904187166775764051042178649508361603475472407419977705841154546200931175434526398810607271198540697925702392935949078463027298703508625241518384761273958876959466346037209018496448719593971876377988992842973162984123384623690101034726646626533124581780487099921679420779216069582501565921791423246407027669943022372296526297847253854550647660872099313869175925836128698052791178511018609602925015477303573809766022124704916744786838494603458761673899951836514001636834008016156095613529755470756505403370691494170709911834994991518866083877058242534032189545384728100791363786238917887651998512798902924275173022237254186179057109630120176227169341511182960021909056453575547553233999997103403876667143009437907552565886201645254818146319305522336123146913060607293822502144971525452017294245897880085625421728326989004189964112708112856475174840730536545869372784985544282648336997187573789514364556222880562796669230079764583347210430925055610175896239880203737201935778233503178420531923626070811972993519278532394258155604499398118268297995224751633768002779464460530502749105684124565253388397673040042860427105164082636538242206195497708531681560799248870337977175906647119404679415514017085381973525302848202795770859193121282040230927217345759013191560067036206620019199925662967526556238093343900896517925801365572932651991746261845553202868804169912034050711405317496557139829727022948087578385399093453756087232291012187973925931290217571643997585001410810515903094098659787102658712530950166248268136761532806157960112814213643606545566796771245486404150139451625742488690085627839486024525262317071317340157419837267853907632272666787499422042993771494418117874320117248830480875735255106055573083628229139593475398158479623806581312243100885561506987117612552955675328606322290467144209992581291351435231745110504951728669559030593792892304755057841144736873867246133681570038895093149156168312006197972783881205233785264856688901749417981695734118267318063647190420884025536582264149555739266407606368376173993915505168631808835745386033678037326394857358813368971697881930837924994642749667718269768823988477871311645833410386523175631355555973301819037940111792955876297047475480939702636247160317415875343653206234190046357585116919905885699979853544094381402259976637657122864069026702278732077638032326494011182900947418544297093943231000704030485382512682403623549044681142941864102416345579672370244483960097823376928568862849617786679705587704803175782567667332008572485360397511167915826890903586682377194088431581875964961872522381340933279197362445543441340285166985804553301563855715325696899609860985130703764531186440275971074361459099911312153574326355600877427211503174546673683549989369502224277421816996881855218679318403274092993099051694786960171050794895813471808955339830260470671678465208611135203011019312718116296101564751578754770288027670138849500656705742667207808752843674148314008089289308591940727754564690926714106657678548229859741696721208108541870210997285969762948662594394858916055982811219284712884631530709219164459931780874946516111155357675667166602700056412331584630498197464129599107059738092877261835649503976671216790966751325119570466105328553866419147263988611967423557285808625449539722726843574153633656347619307791032063413123068000685486977904999043116505594547705917481551377017512491317913781293856247360823297598977717092187452432092775511480986353001983982991385311876277792417391176440748734288998797438061010222595458051536982965610944206670581526477621914000363517537908414105678677815760562596044959866952096670818389844908928863391172247396775291441961555318433080387200353710137532542580618857800038728279752033289248485215797655707896587699795992951261154715549543665438869774259000379846080180283667685377498085934807024558557886849179504303649419082422326857057246398888572159471491692874012976051459032250223794577862183951223436648614524423621761864013358021644993235063722613050501931397732588778289342523729312984824866757471453595330607152433825086196807838249840841960969264265040912090191584693688352311249692585118387994849620723785489549566618946222305378202256241119869968955440485453953319406504979450950722241608549507412933638377322561900096574456339239110655182048038310135981912475817604617587636651861419884317110107637575409536843783382946478245389738019598680853527467844138060100008377062267725980595240671738217983510936918314490418337233495979134338971727207210103638350627344184054522583866973529562287071764401515874990265804738269776718408295917211932381211209777900011092561794067237478623384192199092691144008072832359444652848530320743699609834880501466197562253377390936333792142366631583283024534526738190079895866330922213511493399330073470944189633789400891327558877504578399446070896303800326539222937894429073682658741189049299398337696213002175520086941475784991700781531410263122039568239252710490873114748685089063525107059216538329883708453415557843504002427163622562227727799584133423473324784821161078848372936800539406355015886572804474090808728869380737106196035416212132003362377911059933417653544787955944313383332979072336098998601353413318052657136819035581442670068704462181457501562128988024640523771544608399050263750641818525335425020782400203158766764251135101217381417403136414653405345371090922605333756154094103859046011320213368987690084492291666109432046594395638401075940673943438531718438397757713707210030985268389517009747606517055664971081591255859941472358589786526864133331958200029101238836298451160860966219113979470675523366431601211237751845562506503900080913909465513508776364044712300520106932773464830617060498833341689678653586334690364671988824992858352814943466752885179111977774504266277002092195207999801123364287150977542811416370182966714204655961975540557341959484642205738630059611649227631444322926760467093487460463213702334083209796729716863484660253387736428531660163103307245979668683820798068856532558246263553178211165049568213642009557774968794243270624919966479273648807103840958251345463694822089796577091451002491885842256664407997517801499838144726849315383420791560933552732235298651505254533182648358137773078697701085922966916940816857187090585607761979541611592902845100253044557579879755282076490863158054893662834466328113446340626636815457232398760816948406528968252008645373322890802941684780375352333400793159948904568419319079846577021965502198851931749053580539758887043846042143766786681610525879721309982587317140432346408221040989921547532310246979971308954581825738229470766126206437573257437085544524766851324284584402701817553280244507597693993462459249091422777979169159616206807516711822087174098372746737015287241040759637183038035484719993788963637956229371355703731468248892541024675861378510060567002035667482644581834193820880004179842906706792273807785191747050232648727413144489678224578456243515880794220575569869546598864048933594151439349446374482714175824613639958364592886024766412017956206221923915553699188586076977519381003064491902658474055359339518475140416853104476713657075345570475307015164494955726335615282943730602127473402514589121793140232606864972524146372772948148900529367444682127550915029604746467475862012922258345800815372820968268050378491649936260698195788017166711775708709039495012950761902852538487987967033007475091429697190479557072370143735859305144223877832234913059000248561996237553702017486250430776383117817043990266171086412295260235039354675805666980392987518195187840135648149737771600647020947801491912264698844143830476472490638763614061884001112204910045373127137948746934275219071886888423508844452779926029765192319648013930649297560951720359457699595334230059554559972534537768821816691392581159517625570827880425281551177247017380470024811992983238859986389104836514233950415192567487988705876267586913967372178573703888891903060904875691483358706782714947199926765078872466199385744298757781972485192277965599853193553255818640953717155406559991820766978474342468318395847297658640442101415067689950037693332876617034026585884110732451564259835179158886976309961168353931038595011812479145628627381248662695372992407659248403060307486670067995341220019764364029317389932637051555830411297256893100149566358700281262560759511815200380311822888162581424239847810862637689107123819680357873169956303993714369786429655818333878671226900085176607284668966073715813182911015515443964814767398881451273302385459576809348274272858088894807898347934503598885783133475152337885521344426915189602937782610926818884622139244553338637467181454350493176142827527161118883755093511717089872914113114093366325710323306461984748767647219932341281882757238643172202986333231487396418204963580132809275035183392323186710841219110015892052536195771427838702016576797642262664889359698192778925584882677548297367592904121427660312675283574544504896717758261975778943714188730957131999586245031264528780055478713526833679450431998562505411664736567847128491138904024650428276354935182827703070096854717782207413763440729137783565681690343775956512810649961930861948870709836177888564247620257436467183004633149099944233264210923257260046806124549122425262341886407183709604003602747646699748177606680130998785984800784883289731606850746717376656438961251711935545936821127539881466204334435988964082492132383296899640800221640776007529460948435611242521417153216541295256536504778602215814558944368476851225639396905552117572693278670287672794499271646927608760533283543751629676747254038199773653400470260127262065565998710567439370393904711140516847378095172640301639175640893227910667195653557610613106395954014359839240707748250263386826405730303539471461006806618439918858778470348814709694326584543013833481978508548429953869298539338547985418902972662723458563677266375075008380698204336506479379263556756087828268179895005095688510790454529767037782514039453322501568856257529014480794231821439717734154818380294687429670135028463521453237208943112178157106449369447672337925997144072245658081459320334203394844463316690685535107690238400965266347803773552908391162812516677210186685098865377193102709774028408793873062050725418846642153268727803728708277673843492339680296260787530552258334693016853012425644886878972931064736580873349254318015461874023031563041197999548253536839679159809181160045189796335354452168273459583846188254024502952188096528484844235839568123727745939353006736511554375564931098254480336055922050365412351678624595977451254351799326594985465861930734826500891571805495350302141332069843212250523203853985928894112033423992285397488151704532475736405038880547930169075322185993573335298563937179611207222934427912170468468943022090533023131403343131517089886920532097206986649496970963496498680866068108457355281936066550966009650156571906856983380407411770997195050223227647892664642702470462202978198943410658144269312074813018790115970704107842681877928191185093609329027972033239378735953747395627613698240579116341757426355646478290479058268823315349570496501110986128379647624055853299474352228009123054886551676437879962504730238759339887035474947236254035533481504811697092918401054651805003576458453051881637066656595566477319891647391055415385122462484598522164532956358825285857789944214529500877524174181638956453315911430064531545370040549353441712786343489772374263187158586378337236660642073259082495069683211504666400728221812307158965238933261684080952448388418656464366427666248335580711767877029894878822494391175404765338869257954771216963463820736272844976757438918255348826343026065571537332328237469975479638928403069419008795474018493945657562737394048710540427555566276460812226846911216142879881022609050160957605340429864658366774129205056340214755150034880514541851043606895577734482418972887614312813012791826000022032695623550407954049102242007256485130915558066155638675483235418916620475687411077890440423847877931622216199160689316174223374711020083930100852446933621984230266161021173704690851241158851446653505917632497564912690353491655585251154281542708825601594034413761321762888652729062620274683446532672724833798467930115622132526362479814462811589973077483296526806294407104049856525201403013553228638137733652436876040302455505533939047899727584719634769067267156915344645911312769729648377546152027924379002031735845968351176659953872147390518916888827952159306998103848420847427363896556720039172692424487598860761036270416346191841303911211284790516535777396376430586371207474463612090559782376877243433985755342089200566233510540389716237852685765562785513276818389518036308540359287270959750359546776465586237908024778204162848861651915178601984739776092764149774742368775697831517728975649708587523831796737140405251346504015225380892521893723481972766609132736553303756524469887017858417103379638728725893354007279359854050665067433517518371892699516089268949209089014560661756498168839985554561558491153750755961222718321529290317460329264666145514935920909776948981758865935607498998876672143073437305193801845702239827554836368982282770212913913648894404665295074357162445916339035063268639441988876161938902200594402595597617360883086855342615661581847740548783974999617407213115917250112048118412487378490910374372515734287921523116678760811349655759444481999964934604463018067559035339362248323374907383675761360457721252715585807259383337295299644329252156187526096576072869963133844279367105035566927929412893184958002430470749704123242722105537375789318518861686640352310294114919719471215063213638938857215815447788739540849669359579579164537461142049753291721210030562034285156074218287416620620750078220638274652573536529844533197355053007033434844281169438163008932451431632585943515717105377052575235834430662571384273633261573165024237774597277589400202417239180012098145769618530288802808174102994657169181698035695592568003464212520575746964235979585088687300350045797256778139695964101527810260738731195828150236747628027960491405148714093152348348459968531034770901740639062146885204798394579283735917993902620596016575867754825920336869304476670597002154084418418135197020570780746292697944556352039573611386961272519875213511240696330039375883716069751942485520277314652208404873492724663400393220558742810563244338651876402424851078145841448841055990116366352014652213228333097975455110309373345618450275913339122393584488740012442937733242827738757656266988876189127727898666305730623800994050964279060043793195254515424485434437448844839156126868584438570951606485620809543726943474851060203253880882940001832690765973615255738174926966767860682925026115782129236853228772774531779615448610047548223415008801535920050105750784364914998451063689885860955663792806150682049438160886294368937120214790261827789208071294336563736038051462160940755001489692944034511100297676813769053533912522463733033278288103929117910240228604823187168468018618606821048712691545885598935829634402872774887228900186055409323330533716493118128569915384798386762990248197410616136072681187833089319940764560315878864647696899474826730505527343194051985468072114334369455969160521984658850098655379598456200491665677948109005714407635239724157841660417118464252196577128900780349660394067310150705279226678031785944366038120152461581385015960352281551924552828403707761503196959412415061937821577204622439650190247935590596425801685081773370942162137362936293649943615015618008993546023070989495576340536793127484061290939093049005832387970140567466382555907138343857963831230721178510708990918877868973949605156554401187862906956806689337541078275920431470374865201563079447869640039350730515472888036075121228129589259670214143711330150729694839007135125187212474254176006004473976790733796373640158588133968508648344718458474060261069405898250047449112724545487329887317794565722213350993801172217264093649209706946744914478695959644765747354891838091389695916453867150030309238301533443798514696694799781326069541781454651751500565819606673840736273109541314962985843737374980199643669021875888331826488417294667700148415535413700250265775192211668114419589682333718198743789995915332108856625355345902802315765467550764777969879936148986698790683033780552143423026356763821037733855585370549413569740207303044133716187333218107408400266159152737165254958017696386262211245746828473102505251760627194024340504881196897745840011157495121850217370739353065950510460273197450228437374962519220131544512080735579707324292029120700907095550320697783406392453136637743266674753127271766376735748684596493748360338938285131311392108883854419835907676253721032322568775509796116645511516280270906185760118422872068686113107523145092366559934893177894602691905100098341975718551759823902808688008931618949909254679886595514074626948220550077071095097155499475254911849764647660784921549955379193925455749680470953473184572568242109738124865544709199533661211048373769774913788523237208153469602737794865693132168192903334277331164477699353662205019803985427845697735497671887024966460095222786818402349353416935020981524383055769047156952124889736851026543577416894204825528101785438075521371143541702542873387064518971546109777970539380304702974488424337881350120523696996008333923744334369810562866809464328683081677748825458875617890434962976233648653983980761690238230835946237455021768690514932947819295070624260460250346384948688890889021981888980024584346001361436242795173787447377261131696421325912498621670777752816811589953126880711106354641191067702033979480661732472405312751633637728103628756040277973499206362199340693789503579237497709292122692158309576938987650354476921422047352344579879773151657314746705926578973035104044716985989923777836340699644969267931776413540899462134509905043426746382096066143207098132797171447289738275739058192695153901276258397512612591322560399482015287548847590275534276315027528307130184870407015233014543446765271977972735837042152790405709177690478647623100316352108840475785591111511557069119753151106846512961993069326239439485332891877998753802171591100561403656018694238816383647720574712677120035827088583956725045058087922094893383480973612820315614241002529018983752538534275589436524865461705042268107738198247559546282780648963897198637549631128588278764727605273213970877497534280208075683157398643926176890282761638220458646092316645121830909558324627593871549990640408064641835016952325471980876008756027899759603932991673383157873878960687431898807541279239777327401511530242019603035074244726218081982982541868683298227893679607508049404144001661941637145462743251156712219412917658322291800068682000231640113124077093927027625544062163982214689821841619762379133280367483100083133105015740034527583104945497193450594661539350118666936911147585037435735824364691387424826812552211717088238374617885632382176826801587181314467826065693891974357876460684984576985025036134573434906705454197614763260106347676985204119709436258529616336940920354037727327293185539449109998527078204981496813989434538045345302155104239923284597911887243458007899744144206276391233883928395829397217032470295481582716283311048560600578963182279841118179107396309796106594713705323907213078290648692999919614683392896689578870021987712483980978425608226262162733934001416658044085300657767682786838799463317433118563109738168598637834179061946275237152762864101378287499150063151401659710083211330656767327138767577998538867928498416972649439781098545204820383159273104024950713240979043648636561917073287023551471018770049878417244344293627791477510767755834206398156180169585756677359223789245303986108306768393435510679432587222220388076550079441752828877634900692922118937703430040271476506716264802607599767017991203512880383173679704248083685598237143304405036874574000841483490386212983811164017015079813703059233888539841760398485081089569019780994895216531061181477863657630323464455057073015149761597593597177515399937110017429766720768981849548184022560995487567785668534375098847202032279702720576840237273159545165919049870928692176452541517620509355973693590396036776851700519052924274489650975183650803488993480208399634509432116416447999990936818650638337775941086154962754363414868303434986267198245843477736222837728134366568604058679202180972088828178672461029156943719690471418933249685832050562688246813390187130534095013323165990376582086700129225568962611671270336432024068669573251542961311637701290180338075805956850497477365362574393769095943380230393140073549484179562815136540472005900685975545295545812133458803362075178970964685079935017586245535664239662259998312556832705674165375621111641456028641466713492819431482880415517312319678125479113891532124502025981135530903069741615690373510020692136098048666854212537289449025401198354549215055122432469746227639739178581018977141524663835086141326022976288410189088529961225412616616264621956131125408833746963769936188326985495030455443965739310539958372781787052659704037457886749218191777429191595623531796627993668384956710439760118200473368225234321685080967065971812593269780821877651085303856848735374810121874245047222439759587113791168096078951730779589053791320858034676740568421852604675040101111473137224694021747400327130712116660415710543122458724268693381664828141030220772238135276582907491150378856694350923201764182064238246190246226506998216299128875611400086064224716858921603977151747305711147882486402607142746840247333803016945224017498304153813451375420521275258580959289348975142157361998977921023573512395985803935473029360474794944965048034066818299810697379181225042581219172540368244302908787110323450076031434341293796447821190459396493525347597698067069006108649411214693011129919182744148233151378693290059688691814147323199035482087707878494763205662076464679188372933273951775188907584635196278909889179587521568928333999956628719711464046940672670864252206001458765880918689775498337635851278546162789330320858620345589312870265067905656083331386737620110079789068992933503767493259832704175412003682895704016519263047933216099506323145333839668272348823801255185530277484069390003320590723061906360528988544974310436106216808406218427661551607549990809074806149844475831638540948798550713175574851064745032456542825137442545981180759613797230765013080205245781679021317297575094154278320137262331229080661548904922172785329452701464490042378605705795065204547692472755992081985667382400017913080675239745324318982136624997820349124834248335368441064957540018710694274340680065986894958892871960099978043837034253899173306857601886049601152761577860691734146874431217699929956797339461421171226849167063988151386038179346365542956832609740460349106340160192386742370780736154310980901809874794813883377940841492745625566588588908825125415096925328119384537396024838648829779994085546376589871542915670192035829251699170078114762180268655409935347142787616514448051183968444677590924860760385157716022728455622111803092281293394928060987302353115466264618685389426070658934007934666869134188336024205448923620891681334806128427829740570887501486101066510498972120140092957320189921537551623813876612844011931986039620820928717887319233656949274947022126134542672836525835358913677669007654342773746514782517995420202066207807841147266799468806169872777700837834499563518908319383857674286271929677313064344374579039580922507493092393647820543464981458215539285215276885007951821555210310187887113699671399426262647952905834865045849557193350051345119654615642351664301066385858891890525336449957074666905600934009261330063343128267510842563216833342561507776049327411642399064889835540571138861185437112415596556851297183653578910281169623466086532990097135044141042532427521054438131228102371591473136319172211847733081315726270154564821990121548366659642479858918833134171950060786830150238643633496158177337341722903647113836509049871353793618844631362754337299522738889366769630732491195638909024019422907010198856538069897274236310670305334273363195910268798706741799914623998183444121618919928064416472428223779409383932695419697685890827003752582768940162765040342716337571869690880149488123821860419763536148722637673219658458301075883065509500819003332199497344977744318716089959302448445330351477288043411792443388773368061066713242044893688529998015912776112591293320116644876797846831806521142473801406868343904647180336051435505460129708624965790134365156580145808239862380641438998814184910795196711295034620571771270435274351547619067279682050988590648411510873922302337385055844329520474237657650935533508619761553857812029814215149512711928288498884195670421406316933315466923572859366319129962908250800748752066529492342383883749945516687509040403413253323628797614727365195226315200871141958066728633755779594970862441094831269784282249123357060181368555710149302526429424948833280331307462693053009424246048622937105110567679808482688356377912305991991853376853230831431728101185073678737248098063307354493128145617448556234554683357109151284425021723303476329567199943336117954302721126902805283440932163514453131706014542087707520567902196886441499556809459493807074688031277554735534677796410906266518429123115816793019300021862400110636059090450865491027867121720764094306939338614553872153311072559209105700250181443650170282132950123483692167832213606004005813191570661366630671529859980482157355026429796037704643842599072291394397346766606912352722576916330109771154567018020537877726526724430697660889117678494344253423495771866294514487648326532131334488797979835974457748035263353006879336092128864714314687120630933585728873702535285702537106586175377215343889727326359176737195554031193652414320735272188918598146882298084642181026118984960852469360268438045998362575131221809906234388732291475662463065430215587737923515991668093544561224994677409623833919923346770179804869698687797579276126821976945702142664321263562392603863272991316796611290200247054519997668726101409071721999699739426028023137279835522510644993962092180802805045623151685133970356003618511309459168686051425983990261200845956520685366355585028572838929539243397854201800138724251645568031555552631831308722681060537187357871019422022453282195068033203165355698339575814963737877058391645080489306956164904674400918134732131772786366024421466729463178476612830308275779814727537365540211870465052640438110532298456267394898064104612495659231368511266538662768999697764088518192676203599118447837472913740987767154459394935533820935023211194036730814733955253827903570777068636616417202004688040025027742871957140919584161157566728402499354790371436537055573246678274511370918064461785095348290534004433594525396275976770578831118976243409628720527420345883029430519442403178331476913570075150387923549622437283822189060503027300365825494488482008527028013675591438264208783139903405411365629587584776841279001235243893095771032384935559582337023119149121942125649040766420709709563537325920201696737708510052373690099746327244263934457420875188949485089574227552979459558875495114271693728868650113567914959572187720262972207997842844144909377540553081696311710347638314141379441449431734136789817274378976291639751194921065519145252719824306231550417948633398806571562209805197487641864559560533400563750448099515775112522444941113024305304902998787646959728209915599248130218790124341526632474973192356209427579290215905673190713155120030769044145134986688614379370519311044774650263514388551922063833804369268251820674363411059568469592546876388299960085189488740157399362740616490932719282212604077075779642462860879412101316503280552066412076620705128828568696076277392755045464832922476044615085142704656988234831622542825160477140347372401543304039490333967518903719662259873308195117789456850451205495757153504819518073934162829789862556262606419680268468418312803691227675315244611157574216164810706661327499726568863136898868062549051303633778377679447303771520076970502931560538915811275720671477971287290810771264368526236904680225016631598471927528348549066316238632400282787965452296703566912916636162143167155603168354598282367267939323092270710850886802488551859091565031122475030401711326151616727093436661650040901015405449234991686089068018703079253102259569792376878045636975378373495192346028844173720474458543717618561244196559682971682354704401140537027443089046773488779718613829118116871500857197925648117438458146631873520951108889925673718208570310250329302735617411800019561577053725132196633154668272042096214730634664958185671182664244888960261167941736485235494963326540796084543484613398660952608304258959187853379985656459193396607159826770538666804355679463708363599292339627623301012446315601412591327930178606666851882466730043511637668225110869232301024406753686041189146967680244667416010291458613364208483394740146834585892913071362703055411885594704318791254147757192914385709095239639128778711938233748949986939594137578623873222728575655132617795079989096763675950909383774674296714051084665858608048363023343232417415228109668288102993048683727583599117906507263279009973239257911588143524494165940713560542534888946908820536664224201532477156331040809866534856795795581539275261271116840292734713166547062855292131325613985804255924039919954438955295165984699715049962244465511408044506770751454452987122032828267179515750166649977322429378779218963083918224132383723799273315729135595721348671857552323935327236964775451827943583404671904066187004841494952996339570283543509673816398441091550724953251139983966693167560026950512035770131314461886190768406975659964594782949088615078426768484579687435144956437704256439433975344462074974444450053269126607285958939200786645563159268081870867134490000694520985846156817441234512638727261665259664260684782034918260632568681401542476801450695194733459233076565358255864692309258441468140729408121099171198368145427307403883767992375870528740546173388463142317591058244636730706196463274303038212959853539257752818926526029414263754532707093552640170598156112840108514543029006634970693751342363872652698274481555906556686779436115076035625386977881751504800996363632637682389746119159566599438078140280061791476730049545760543765957609737219043402174807569499980519855171985975940143254573090065131071401783213848436322558059331071538341284147476565833870133543798170052545528854681998148412051859316599924950504899304617993981904494141513178827745158269504977421412342549622500357877402945079568471117636271447853560124054219373692001015745811574436176738667444222429873342946985278236023627295508934528776619853084523998649061475338733966263782185703070704404165520848095584455072170045763952012118807566246875284907863900090229541679240592014267541852334831386682665436967875861443054274508620440164930983527159492348593012312592968666062731387868765171429154102051189803308426094500714089544080900638717658851652975914596460925729091035089880145331439703445280758201526843412025507473677475538888502377737313520265247831632772189754267568271362230359319764015701230661802855787234071523879352144092740149197878731870977963576270632119555727567622802055146929578794069284812857684319131517826658171128438992966960145027667741477151235476066068464085820938681569288894710864332019428042418783363154300757314688549456174970764348039653096358318775882318269580832074387137284680223530551022536661410749445650218494837257012701079433466419899905301135388190046138374383637766387185638896851414194728208427621114840110046877626459223289343652816605468720293634031756700042570336965447647503632086410839253577348973221004423666609786290481953611463428052366898381879811724013679674022318179466601126296027258302531782259537228208237054848758448461991493483423241733653031959574639294626958725971431284871321108525130571942202497435292778618966817727112645227656445246766187280420537623749920167069572503208769530523832012155026079049106746641254698607898890966484946051513802384951396282197214296552974592734414182381212282214261437825123916029748799155295797779416815228075548032542612033801709374668639736762414876514130029537666117781177279433263687802950806489741478242281233518432935710897368841534825999631815438549055612527942170601115190146355557886034188090351571833834350584487529754061231709443978496841479822849013990629132151788142162748693593440585576879823675028031416135640429989111542670123682267593380817864739456630700136669605554114735052415454339579440963254715727214661042318325479931850995863603742215710030611843224029677476205134905733665320048398174850874090544148285966534842884531256416449342544980662929290310951475807408010163972925644559599956504352926307996079981852713827694907820245013262439749875313750938140965741488592428640558400416690714124152959604312184131472684881347213846978454994901575484946873603825926790341312205475941269562387073049029244048845983007498919083371348721600283398399654184009925368958602984103907327196265986441393089653624135750815291891875681889768395874642689156976804193630381770836141332659099596772474975643493223322363036957532967657226061886806679554749699026929602303582291605895559446550737822549375031303879447932147523108139587107559346892474986674438048136538109975203677194469815322716095952914834617189728768925891795863719748650445462496288827409869210195654414320249666289735059349183271705166807094997685811664152450498758993007522513783933887133121488693315419960600764951633264208757205239552971231762909431635286820475277181091560477913104120726562531718116513478132382519507285650146687635871842493072545246127006818084520770344418366822092187284438361318340588284451360473585956138334901235567777529937819746828413139611085616118869466454060012937207241445752631681116995075798992038270284606447959667054666849386675968677953462021574212481763982674559132512438149508230051457219036429619280485478676450216271884935825373341320020172797188302914106243895733177165866921055093636143020372090803449171255811964542870019601212363493375181982287390474238461142409542057715175532081040187522732285303317316250383257737366479560564799334187282044915085235174007874957092318392655295892941158061918561670436370588964836663440300334405342493971923465337121837501557518957172805827989918877001555254939252246649846115253590315553427934995956162118872517369237468982091448223995351331308423500209175481406047889584904124973622217737422608584251368007928050847161032083794413470167840480864647302077793008034088385373354851185533013618637691163964012126175930587137461663981032969860017027389807349047348199813881011053648387381809641311308640499178926579782512864759355084047668982587911160529238478783891349444847857843841635692131193201327304917861221657279173957696027555164892680820124559028095931945225998506036639940944937478848023893255057128176631640349054979354303639599553813639618992092322305307093263876114613003427169123872323309465208653888851231386393746177518425013979641194271344375240321991822447815089201581360980990413592576463836530649387547777038414915982175406060635536850184223406335299735024540639086952510217683817154526685167004655724822357882534653585924402729537954746580732456839569792325168373641108519461782600813402957610039066568276139065339166672113157771717701595395585520733985310484004728699266565740496116365537973319625405332364697908031667589746430496295617963500275005922600413401349784186861371772625474099428721697354320021751468943303230238529913860081876912090182081912849619179872247916618148081861326314780497865951309213953999785238201398884090443028660904885471226710681008522787892466582385471137593550671885869623826273242521436173171720291350714570198061735112784531689718140751980981913808915352783732684141931419979165060483292809637173546970504673362365182766602180506009682023841403110777575226963926164131948408770753889777514158568485695019178287420942703182718765108832506835200046412516480774917025514022542227238465741496314149662108415378283910516469896779936236766951746337497436837137874015604043169398666994190481838178874645073025078973878742711380058233293118357677418645814711304848584648354719582002352914235421417413479836392804603778554116729806728771568938680867719864166432425923148835701362415310401090360311615404798325223222530662010435840394481701566695475785166503642784088176685527040061802712650052057318409583345612410910652156788505010823225967061328070934036549909788113104625626291188952249654299791101811381590160507631892462928434278478980600585455882649129976650052619174195225100514499328642028111665796454857357394022304874973396680894094813960097215375226108742904098063860828149548306795037442281495678171076860807603990406449508516071426764029573067022705022258665703810125616341840978646805203501546623454857337060914091417217764348205722534688923342024332201980566956110701759030397248160527696382580253628574770518214137214051676021118624770596887026428930761366991773678667330988764385350114239086125678155467494556363022433858620535715927876586877111045823945893408574911714121801526560033732325775806709780778234072022108550439279862120446820417383917300615567485848917705909432236797631151204920066008794641400169456013517847601775242066103748380358028753398868940167888503374192834634201294661776149305309532314541413716515635642152071252191177435859566309098730209408576291642021676426233940752496942185785122756363682076316483406510887940071881700007125225930099074298070728128832944155515079155777614401414060415258674914698286109173004297786014120883770796511739158765756614394238045960847053388001549326194792084831934307873661684893780151497511834947445886225237534294593821305800536222530311552887154668684058339332024098389673160569106321537216080548305328607206789381944339025798440227380206682248054200656087162582480205286247864558384006323035095807783466913397657731585854317875566406101051788887998131890202743459429903689116402852785271172461468036171084119147473007159758250406969929427877490451710040841725629588371543117873883690546443687740662871268217430459687073131030981968584595918197416804379664924079799529630257571792514164078539217785586362041061820263131140357287757159623384937659825297871635341118685978814067763067824186141668917074489018202671877380542339365194971376237117034498098242332779146634928175772703720374324240387495049179509319450233202463682688377674458489513274281905780960852642956726949712495116863873859834774697649485264431382669974803740771178975919722471668871856335835160170239783268992451745391383191071772775967182145486460745953563051147233222347025754351974390181098654963687579178478752779253952422714623180803490538585031098316146086732879946952176850167822320277062479922943670906586617794420713760323338490782321954363231055951376319071674766634347688983835427698209685383133301069677704427854428667539530241325553914524069877999079434773217433162446712974980423321088449882635209108244021681487739532629788760424089492431209700034794467680802671033941908877672417224041143461274962198054152518380581769949399390577747663781243959575182369337756763714815134468139453455259275364171802394948775671730670692925395740917678101618428439942379252137199760099196230051428194485649495545458353754018530757185368348544102463057881563699446843692642268892948035259084417298024572332828246868237094374078263604922508475722047875599956845576042598539286529586222003588276666463412004660560328836303817672211924101730704518836455042187241764731030170802800906300430184595883554203915534534447248685467334498651452031826786238165121301097669253637007614250068982955196442984602972039442869163175845983511792727299280393191171154274263916742113839914653660530005592724834767696307004451142006215879432722354876886855857856636718453266082595513396317591925425531059093366571398018547586471045864544037265443374920142124671935082961386273361686385285872792049393209537348015395219039495336249513418361335716032630168777108683323430530924135645313680001244567384696342630437475813296078154357307941669832440049169558813233851807317679961617948716003850903164151671168302767074900626162858570065026042094671254913842010210552944250937880913359627453977714106838977035878749603071764608998822104697733029135054177616267885625544651835589983956300380896330531572261253029993994195514927406853217756942272349624348279259174399264482389657698865836514822882906387409685785321374615518885709546989199808954893892581639941835653070621590884073192554365673017295664444358569056918684732172979571980116033778161285022397577468356602840133766816156485149349038619968722559702345600563248614760882991334446841380130591416717515880153849167309272685473339578104795890219663103537471074827527691046623567499177000343388750430245640626978254076476001197325079607811134783275197296105780857848014383726246950873738246261597734256593944964415375469212359375965887683062428973794799099834976210427437721645600422869531471248437607231042302797530746671800006154995441227619509806971916756466661518901368810212444748118242125060156442109602644025671746648547824688497638772782701044835810643079568694273402584922941841657392614031580122824923987885995203931313066853747240916390408801733365644479321115309673449270254139343383901569954634045543555196324036209028214151934466081856281857471774963035659104831185211771852943205940932714094682414520474560317466488520483684725380611495995760600087938509460719747308701525922121050784003366508109598712025456518469426484615837489802027822244403778807777972481595623740752404731665158155337918525611603676869646519481878796737649450285631370456288844291459233560805832732681319621362565043045159714477767885615143578083723809854461080339493833775408118507233580587761386120293088467986555569476716761121398577535891342850199449790319884523625494072228117873442495007122270709628824171466351826288264600776610329623679415034832427612297441305048205878056386785199050381808357770395757798692453488663910286275684122497459403529046121561619092849786177032387885079280106511688859555672078199949787328148674440351633377078008764912834486810547252810577179654544464669401574508915624455573419090256393094892536973421373784069629244522004383645943194776570104134002406436523029103019552760185062821169567913516475862992794188192218344528902078428358893007921514233111807114103563946867123738764877258333350076798934398971800678493911360253918653084605789791955984968240873438098250250452464431936863284150772637944268845790471238458558001377188207261227525356411414229843714135787520126843258521996800135230560164253993721445330095025920146859526907035433656781903875350800642601063585762603941482465829700924058841694791422568821596992594623139160414718237673152958511545291597791044703196623764511556365595311851402067627600889380267492968647155957256636085283074813842602113999910324916034318558042434731013299052079931644232771801194207623667268992700037643457313077052346107774115041997525040630086881221126694781429486060069670280356455381060366886775690341958954981106905925751161649528750495252500989465490613953909339304346164939652141500516452157451574243967256447598523474235339479647575862047169784967161187969876226414129958862172415825333409706858938313530493786550318280292644193026220449556895962012685164475751249782603230217904743365108747095627558889901680181700525623012615668597134634908338791363057313256144314702494794051663719120805520330113732954885556007585894347753283868714338723674801766086947480812878069494812582608752514178695397558518842949883810742019669897068185893093706550763291568542582353726307759551316141629142429430388168424702198906486953204733665621843057729771292233029937268312362382696498648936379510249661225137248947647183441088163263389984705342032704255299932317901443134085700389664804210592678973917881406684172340252970448915338698921481231101253693602355101658896992454820017022163004601832466548935007881643314830879433398735836611666793476897541593543297378572836103675429127601619391237566439950012634437332194869064432497509928194677042736535839432216202308735368878174188545683648201449154813216634467908590676580080265222291178656750933610998427317910559058808632893474984650567436609365320122141785268887930788068603561366438499992323558077380115410132379459455587407107482330164825818950160510316978686840140510562562731726493466369338086333043964659357125221506185836981427917825937654295112173576339829132397538852222807435415724266209650550038641543200352614385718753947356742571921692884619428894779368045972859521855172138432377714450017705481246648711764689642804171960027020685944285832874659328098624809871741929198704250454664799776624471101030782598449587039912925356485117071956304012941552631294921334781090597703889144101986937406095400648889497698365149011561321801387227079451726722691295271193119245172219704446128863377994719577531690402181227192677091014206318892584659366441838039131528734679612489141985643643798090412825516944555212661465058353895914306543372777758036463574585362562167152836274767449809782687953229645166202419884770170809603482241802973580636567964048066885872754675730916041575920615849579280820087516733246514704083452879082563700986318961090103919791969462538349284017168460914774848336278974955399863659378357637125418156133254343522719430428371005365414324416842026316963596945336765136873507951522951610902665628207166800780804938788163800091534542802228020284035435041910830692378346886046464772478500285440403038065338101745925865371449541526253651734316297984808740504589529906310997674067344032261482226861668375729470935795047776344110345791263594295313071289291890172552467055829523204368671098483075643917515192428904148691475543586433331740947712834082033957972057138532024520900703741243908136052412304348919002718040949724469760696385087101849614534404934909264657873029462814741377917795987056926667004550045860554920741749095294130661623003694918183325291977010976899096619526152695879880647463976330497546607509218622116277547613646242703286765628775222508631329485264821699872359468751197088202585864335804465225592990360813302284987786397662799754082343711900243411600851564085060037151605679345338393893929313344912697349704137733269304638474619204844792435829119626083955471285484115420873248262626184665363571051886795003443248819911742858281842056898447823663807460429533366173432313960425167332325784759917024305227706562880422781684756845065354589186040710425523190759047101528193795420244290700333773085847159444175254999812154872506678189464830919634127948343684698213943528562139305791933100224397184347099484333943860767073278681876245171937559984919662233107261932267314722635606838851218006072346939473533755936330149117465126993146234241702111119721725588110959837679817174647437904703507882060577040896777832685980149862398873912099576407975170856928222986904793958615255521313801555678389712286641066630896451289619583284717748857779158438711816854412370550241331190532982566901166333811625305754315486974461112296403365140251537227957044445612600680398280535174567945903713154882341715870307500020490513312036821101672871098980680702824242957281138681993128245177664456529613339218444510547042647157041885694365157174078161672418868984283473857896924834097891141691396585304912195658254005414692164283609835985838413370590260709588798728874441792561236659296678331476721896851251123381492960257817990708307375161893459806583428040707171412427612869309429415711653330479075848717939210230445086094464973141480159428934484111544041680633094593667220844847990369782073432407436703179340846082339738681866030726774966246044785386211499600210300773560658220860671740370482976607140777723890533034249460020004817284529828534015327675500693195969563912709052310949038734908424716187815052155684669179569228631931778839418761543466639313074559032278838636987853024340853042273317483247252234561820778541699469521898261948158484590007336015896926193276349932139717388723957195335735510040083206116030414070674994340589304385561542750097457411422060070225448629588525588245357782687756545144311034487346937716738888233207462239865208659043800905775705188363157244225792865361178231806524164773795189009251453233401126487419168729251755850263658464499880022442207815247025928757906903071908883564740686029376800380768133979559699391100223197180661164705764463661157625853114149787752589948454449204465851238452662332738201257378505217781786444811626372873456264603271705785624974922831009147269822558792810826384448315831649413435994181346099845982167930496192788746667304791298474495687309937294789937425272644666217421700017801217568595313416905746574695466662710171519376375419561603392939320641739089529515238230570131012294697500424493000588427257767389800939916964117492684106184885956623376877938982699393394903684090406770549885197256581013208146133753238312308646279445391400707346875358208575752365645134299654872800704334339732216704513344905032733277465731542633183739262563942402669624656549144727553821940104276976580691665008661356102117997291186184629173661706884030783335818398277675175404041160110037378658719391377427887236899824572773783147798946584865558136107917488268716813323088405730640138903837134532307012014952888275311057331950207388244818960613949855358326892379576125821826552517447599681242381712314742477370518506399552597236204599105524860657637008525957078439622990371579966371566360724999084724780609144969946382284337495637175128210443103227431664923176185873361639182047205127785974370759997704813720832252284735224688721236904418817658056687595435865162240127551091000974249501612888921357103004229305215898778361090796917046568334016860750966638463208373198307026518329099058582350437421438652425964427731342502442050734152442893330944589203815020689206822061982003111392101437929523222441842553974076306371374380321098170881065747510730198445046599313911863912181695704350264698239386263155645776728524825862440551113209231272396232172614615992660725003787459812752803326557515683741426134577237269418945554488005800399194372845124298392024298440922904733743017120798798458459875527894065933388445044680652437855256317648107227820005212320738222222114052750172231947711581404370009617965779828957678673977228200844253979051125146294988527656931809579354450518617968997281514612147893813980696949200193768793699087990755869229459215861558819714399123639073243361667465336014891951933347528294805121529110061149080867175760175686113387630833521562921062941640841485467747352092255949629379161077688395518179811271904837189896646627478525246080950854377041502511374607590007751973053398586356283823264350496759734537430390400906689852973299591097973913912122258052575600499719118582787260662302741862129521608998012783447142155584361903949500241201715778022948320404331056513283702493911905584462448122980001805782558198982853522484786421566228086310423805252948493921030356256989744732484593527292697649758453386597479855285229591822202958239042471021188016713198735249366577303958524774983540619375853670092481980333480840426865692962243377649621365515474039662273450727951067009167829794283043322466575052324467802174310131008158110031295633992703980634674410183750455555295603438835357278343000123673290975624926330700342944092686210542905587434602531250076232823301528993740553988163227709751878529624759342854871809670796548219156086880646158997902728920834990059654249512065384219084729425846141049730510383585214031904862688084410694994412071682024948212269689808927002650080953802849468379821871292642490004181168219271566598321554343373796491809156206625789833409670688210753738297556170014635314654330458214930703870892484343213352461851050299752708126358148471020972035939060147168135927213396586102426655506357520387431653094308158534678928006415999035487348421780739545653176235166225218201188880155350122966414122668213394936353667504438811226156821726697165168067907032263565870250371528149336146807559336109342254846367935517760013564997180779403513215012771486560185981961514471728172250860327532071029006575029031290861581787787578598358835019706363491682701199978178189172677742188281686635985691628957008297674875477848556545711097034268461351024927514063504807840237637628832513762730117247679777442244626299188587325009905276263067051329511350305155683921668147618217115297593452102616785665829243857251543588599168957088760737998473683272239946956719603024304119835789236443549611219600225205614009337793042177224428589416010964593777658620871062371436309890454514110718148359356235163093960472384070017462294616789740138390062504422950665178306763955414114944245940895609145846365815822744067282048418860144156080643951862076248880418355422421077336625310623194018523717322469311778235983945961892732633400423854200489662499362232641714898862573810633196431545994732701072348916364263238796836625842237192736337682060999334608906071599924061757984068977016167768629426377687482788611815775364010250132294646685858492201826681756387286650507008094315725830084726827347826405842262654865856814739523808916686043723463910446695517099801275621014408628307529980636726602138711979338569168412369121719889454554945242378419425261624313679830009169338139597539373703106338613238983778093117059895650862513822446225750370854348254846219782528870105498137327643752894835750393303592103305583259544959208097686099111929123516243403286293385277772586555213273974497348115500413421991028056346275176568687718588404143021010002803145171713227261091735806952437404609907147289356862091539200004791398835157665367938482309963288597891511259430542133293690256840013366062085403227578736131758533918459702345871917436031136652302438611552451911917708232040093744242031137776558541956271218234783011418950058248737802976297212526298908942293578623052632575073685898451449699522967873992599836602956215224669867165218280770414557329134863308112050600040754694939823714882219335765946789274119153721490818031957786939605008451751320431416121645073138503950955191148738527341587038880108002133675306818616970165991980790970384110295021601346092891480691055322103840176051149730317899094373589648613331426547084219774325041161727249805604158738829891262471543240216443864564811388709367030534651184341899628118763903955491689483926576212937287090155751605844014757616724195235805155051941739728601083868480958043210885946518688665845698875373452702763427248803720040063128191762592359278737956457110245013172376601972061099625413076300186656383563216569404640006383167321080187844538773904597623752854522738413765089037534515417385047211266215355231742323242345548095486020632114578852698402547750528148368893384633402740903927949507342938987282132631908267906489535226187554337084158510654631293467717151464244511151605933740829095494128903287539822873608557323071485286779438690291141354875198249832530988188492846006019064391313047866243535900794250822908946560180972750144632880266520572210312619250463663048700646199850915252740477812634721954976634934073121795246954884465164002576144354854269770198056308409545777314619901119777974383509903218328957711213415572769614550589024668915052017864678730193895625572774293656618723984939033832538153245125824524290587521067906793734725004757850513734130270969916264860323923759781665518927860846430525837697349399081198442664023832454929464244262956998988592562718028090600724751525493682840796789062780078972354668785583167432429714491886972059329368059496668066225172019199242911109658350249435345803682293324625047432034654942892325945927850883515040993020909281038258954931981761498018992719045622173475854622243899793650074982196553252792024391325051490385582238603691643181543850939906774630627956800472827111560793485278019832966238833326959167620323768728622937243406513369377273258992772864587250680542972479537956502557320586601473613683354993944709392055123657958392806195251100473989996811888076164141750065169844380055588253879860773624895093023858106388479536587264196370954214323489598280816306920300777974948274310024745795846462774549666549331722761987050303324816613555755888630832151535254154180366056964446474305313580987032645456776115303323532908267912818362724370623138838896382032980270461441784583442999302742841626239416118375044044347290774939577850031042690555578072768455958242225689081459497001586147496322997699998951245374976633365761787579557540781107244157851996157623558876911612028432147014035894472448189488233761094519259893199969874787483956219857055890906333220872641424759131432128956369194461212433161278049377264685440914390538297640462476474336378952161009709676360716904466647464105603552727751947960232981783104652193691184125107193211013818078280939720280580378860893759333694902327911307036436838636769811814327748739333703560589270626421148686353229745338052571199001173193702756286036094487084456791546318452660380140566357741638679164197894399642072049253976711864700215264217942419409619909086725206306975909680974102483399726779031431584817850361893094460254236224445022763799726613379699351630974139974566748370603164617558424775922857590003759869364970751287984895277303184192791707179961921782127972745730103035330171879911149292211849912225536393780631868008858378611515603039624338466371638719301757151721386521178047927444784448379284338044174725977022821284039515294712385717314009305858088362250850334357229784651443823030157384319160553474665540835963561446083062161082811540814835156259101828269726603207306204586057803055397445005708262158737819450945906379547102716347062000329890193903759222395243454421924413397965622992642149833425588644822628821263221868631765046940265675348854260466558334642516401644689397465896229116032481914321178307439225868637865958077435416474578933849521182556697926313312285799647467564944669143895766964754514939556656350510812457438438177251865169139176224629978873968740362190951068494113786818040136670843928009342840337048436357393413502424252320280916234261267375609158616488827558852592686210374011045095430505558462187858190105198927153229706356033596786450996390054186258981821138843541379925013248818880461647576957722024614215030181159057688421692140471833701792498830170818025387530225878983189229835042950837707778476831142650753589112573656580340183102523745642184279753051896058816410203632652314004011259810005868770504741032317804510653506476729872661985997929859792544967965895868757302749491418900538930684152209007455156485211877503211144159242990628190532270700231371502640437871591174874676197143185558872688661587054269265912538492621935530894688134225927630547352348532300850426978807574347647093536432331932542126150819002295122674268062273044387857021123391923611305039227516718987586733306548418452554766437164628893450824820262699257384862184088998461890199577355314194301551229197715772989132237056859456869531638811667905013879630462123068281308999420071156270480087710442181624656200691909306907163054233263402299727520995772892545661797832016559248863059826873955781666896417706052307614593387661414465739230299104737666897459700214951037389732923644072686730064050134383380900223252818110176642593246967104820754783755827876853100716300729097150007152848119731062535378001521663599061263337688832511324655175615573988128663708259433672693773954948692944425756549326174989493098260097502324987289479952638851439809602100195949524606222275416431622985444384598420183073091186658116221913658857037394770499375531941874290504542858471929105119544840264017443135031695609513636774035422447141170901339391575939095477189648915962400397493278502113301461666951759723795009098693069378445532019546955202830058628812864452203272497136874528003284224200822248747279606141948282707046035323130096162873918776083814945758580240408578318968547838195526413160111496112300858464592820864604069832670554958465768578590484346004123392449992582004304308433545740364780383710555460677885955060102761061389294165127223818387403955784094329825331244392460544053113608169482923965152254498141412136737294992951154941081803266216739941683415166071487053307686712193356795952772262022767822018744366475291186822213800092119428018166655775103713280232648708152653623552458092377466396786445028659013934266381593404576557096809822719166744639404262446200977166730948553348187231412124163443006984461952106957982547003989392201231804140845317574452406777979103803688667313700987810411296880399504640692030123116754248758087377708846474118610883290547194184804966717295965606287543529318385902805099866414889430522649723360897208058727363745549141205553233193506501838621930842896687039497579724573918492147226607144330852612758018292275038854356921409772827492724490495249489001955723020894916021598697423787413352834208135857305406410871832358265357635516775745576580001964095758432663660452264317376145961611381731345499483415327077025453812736779651029726017345179397569718329402298092104250980659453696752394394290085698028673458217061305647117964993794487608412933309750612038452505406529825855373575572418628678986103085295723336918517884801154823044690296909301098412884701494429937186785503298485613765520569351184881797464152553313244695888470210462115679612732838433839101584545279325462255489266208283100614008902929453740495424096539110080770380142095965979412920929851862716076630063268344638130622563202537405252932423574316733804360415066789540590157707644473266765609169913464837815705562457509543140685054270009861556065145381633175470267342569710744043991549524495841719619313845482857799434474362085510077316170768872098890339142530844135245561734379648625708531257227566250000109666480177281677313489273294821403587721894647940007175357276107967913898744503678882933747357423600802723261580282996043319146092539777159538735086133807537459276915612538330394111803070704474626724440413313916242275858688763805441446220370718663640946450176069654551958759530818948005075512252008294314234219948167467593264719693504078342847801427958134277215363942540174715257453243492086702331750766611442423221933540951733183711199050094505506949901940945932000916877072435372804391798848321507696299918380785717150093513742761290076017112393123904526187239549638489090257517344018690119655767086623076136328688765958214346344694243742434042858949541650193196688659608506967391781989040154209157343379857273431145810112748006397256229396324835760523335555396257122621407478931315981043412729425751402407960719126331750285696252951233957727673495222275881228377621091420366292769696219211169537688030061151581944511439470801603905339311988309351402767024363984374712117878482537986209200575508911194243744150273817077462640914230081227860787540947640320398611558532694009282710050499030174305530747423023217009710148018650534029531160800623589332535555457864303663520765152849242902226390843019708596631055612855698048392102396156159899305776672324982263741122834410683371922897503216075924998430502707458759712876869299656313138127563691392121936704864300572183905536659116238718104897454230830428594082914212291142457903906322861761398691144048512591157039129212772252695487248455159997633483686538363662668451636056632004458182058253190813504982027889590343400267448590726999301203671416760359382058956416167921209171810374236099925878219926865026734106766845588313023392093693982197094550108758765788276416193781236486501110001782939966086078662319309556927375856417985290235241333195091636683913066073348998468596699585126210129064817740715463835472877201899669616310257962795934769191578657144733003958375376820955246159405776048297672920314911051939896717156393650455951225855941697748815383340600380528409424147178800308966472119304663784278228997752208841206243548425454270980953336319683250362812738426869456454725579837083765481079161631642890524961490320745439119065120680833637013385571606099333581041459668368620594060992042973523936333425491123483133754249145255253244383373666038084817718416711231803855223792843411242981704345835099747745016146020994008517619353194034771739994903420309369547667394207926877674904431401270426091466270554623358659804027830410535733838617793180568039988212416522902370574118213345849208324152645184524215437508339458586242214613923304997760934777082566532690205368516012925265399165701327713537545191830495559624439162388763529228521129245507495117082222357799970915173205848940811809978687011170976606823762623750636163423242932718687263072910764041056434764318999587126466008280076261562011657627153114140206462293503779727965581066781377921150770618508296665075086199310813827067638413321279833270485131581480359852702214279084090283975537788178051092208827782729924446113913945981885663924737808898398347362790391745109543032291154228237772372499583323109937053091129273149086365858757970431520487723194003343161877075346397981456330190561518013840281457164865625829592771215672690095605800562913526832229132966422520747420445149501699662467204687975762693788980922784366585615107276505536125556476950910931108406344091900881980590231830430788068923848090410793351866110732592068556238089554989059674115518342127450155977268709080592428872185743978517526764128572273599764011673706490749675653801078986217643864383673665731712945959511935425449341946215886617487230979403568195838074439954074427003874091289817316744035457558350528637438147266429507546995452505366014710818917666767332965655194025493186569736137600075900377474831296118269076156890306080734995570979839348104563962427956752157569730068516839844176303560267683009415630214248942291314480100908014736053418821521138879948926913604531468898547946221556264105271552667615775922945133168739378845046137354658136412573006832936091552699666376226129272083387484614699052663169767607830003037047412507288280704430076737175685259435851699405943156777768963675166612010505287406820869490499101438586514068305093288616061508333927345484214429602368460196951318309410541858127879894697466476499139926158787988546813796311090623408362601211217557828333318486408023626834611875252019735257709190955495328225024687003855466308620617080325956662927634253715215903962881525024970433525361961719293484741074064517922472188983131048031447607123435190774664901120752310950375065679220301278196640647646073893821863069940633905847946731649269437053314562357017004373793235468240068731194853210095934041134571457229058273334654164268551388657565620234409484770134125052032379221144592506364406779324763051108359744390570784882586703527255344497147806601887683873923449553756139112434894940797933309115596452237733478751011611874454750610805949701531446935191921723154151746700975172833887302389726167565874043405267180989752550506470759511425471413395971550362785428401779835805698235718974496248905759527045573079337028549426948531791003380730220016391953356138441387508010183748695667213493399159165501550533229907224322152392029886027754770696887307428654953691833139934569841242465244784872277938837798097464903257290996933488175431009782942527743146261214938229194026337865972568434630296011648916388888296537612232120550595513611877784176459845534123896110809692918314437331636695958065685531736373164175671053859417327153968664320535084950152830228461898824108024536035178211828346144910345361708595822350887618022265706625459850162668664869241592555369845376913341101307342396474913124351642447257008256516557789365358672480987969318701432384549701654738391102820824073122577601773569580740987827775604653738608786939308448995877803301082616466495129414435269014728715466123403273692041266250197193077348689920305479437755144412953960855866035673981228940201831592986106980053581966250791053638923262081189413998525608468195525412537343323697831362310868619174935529100571508655021997715814367082277838095505277514557551099006355530467604402396820631315743328409987209883028962225153478878369448769251970736943077114906053528394611643398146941308684527262666208200352221792156818743693066373039356762858930614896703513565594809448904739985676263841046565016130097641055622563082893498283452595440772316166701999360841131967773627638693276815193024541888450059412015005418272452673740910786450474996024176885353614635183512040564364898040714008180545107443530905459371522351592121579720367184618214034644120661824118386615526308834291964072129239607031705585581972472264242593779093198387179770356557691150123973685994323079138842185924691581493667545527644192670981763461483173098904088659616006879537198540317496804691425869107693168807003196484319943644122428689792848522843042131625133350962315696686844077148274226402658764042242098802127608768908286362097562111432354009801244251425823206408614123678920797544373069680853262010893489004962702469706398649392449898471889130829530794448119658523550025402344003976955011773728316374609335586555603870923774802600216008732588909256110205043039649465837911025552334873193389703990768396407587918569030790860008677984175750547039468429976951045242533036402047435186482655775167716507784624292211239034453244169656325872347286898056097735871850510421872880861781165177511726566981399414490069486267996708978257933397636306526336734079387379422886663714749576342246020159661771109465602010943261294475364745996219075345500305392307743162569890870624294660995862148343154313610046224468425792530309146725030779934750550985319387675714664684357646407577631185403552791979303187605666568131893016735385748423110622748719338673148656498833416840898649541688751821226965964848688379627139026391665383300980704274459843281755682537634498227117352165081292210921835332212272290220601195871981894840443125790344954377684082262293767233519339716740280470434510531184974268986322722949270576388033707313593930255585562082716532035626599781490214834445182517032819267172110279749414368366091683868520214468682769093199902677925880661837162416153539349808047587451166982012523018240384993299522383355788328095586203274702205672898906697348923966477962919569868843288381000028496688259536863828194007718793766016922567462919384067253408214260442722489131457436099560574407250440838664812861227490937463860351158645858370554072699924871655039183573157579852158106480706907614568346714922134205652931593809716723125161959683165823475873259362330434509462491736255520777170902704492580967402929397888867861502337273623594189986976560512005802400486662467803542725960713249174900452871071575277969412195770262971617442168674960792968209912990082517013524416749735941736777556911085785143411636790040629216404123086826256962199277128595261359018350275771750282802256491030269820002611487006962095519854829218881041643317154976825857241628328861821491691927901438813332069418291364601086037321728335969304950521159721670090082207376564105840180787891760464718920911095203489053008788661743831639600605935180846029423866964439013090009429247901127288967379302831284368061936522198430783700786240702789030744550205049653851314926447495519984344188981580122580774028506277739219457570850818451149817412768597577322690088595997731161349548961410952307499287631846385120391216959670195669145967620373727421096320426386503930999727297328220363354636864520951730679793292647293544229153923991149873978794431718514728261121687742072124999411165474312120535843056786459980539375983009042938079249460786819465043186989883645614513674758558008258051202439925827927049638456063362526821780380737592819446053252843824314089610862812512092327749720689602499060663866787789505407918328320077900603999178686593604323119345779479459299259879782989416105286440890777141092351070556887588994503714154767009757914888097293262158965679834731541782173076068211951746841894003181314343672718238038659582524096487287270121325201868169753682069206275582579449519678910830791293240716636326550689875518120036567319622942632848762079650553806160425737472961537275120321589639072012253993595126769148029015283186946197587375317223088011701246806888140831132295630348823177612733725237803172827908332892834560246461283873960897895705362778584311064482324260077120223019434459103206503277380094050329133785866689262011628919193656902854064849650800956939773499999863272198433840920112926041261845767864929256913453668583833270674406139483220606840859390846428150869890085120961559182609967093297281813298925257555832130603087888297128015621991018488272928457841091317107001169592258695014126334347120703289492510733402498067948764103762731060707577537307284227714765786327286820967544408196713140447869346813587802361051176142184259241792708741191355200517598180811665747885130705992996723038441517275872747126189134466524973254925635719937307830352443290832593189149677103014700223336065978482601162920495069943278889583437027859140020085099730981892093613850376987168109438956463860207310572087661020521526045902963645359602424164207928157126359681270639122567983630297515089411715058800447769791450397893377275737177232510067851007573383391516685351115204505281131725972172603251074548442614432372843216288374532760178271948546254235368738051441124218968250511212198158951761009276536509358844562195483471942993592820437165379197003206890144419032557243105210200789815242952974984922665131520787654372859331651869786198594148837772992342145496691098623780377722942541933356676579038137230415716743694278314849485899156226050001901363717136589363509671321633761102989748033746356704291726426421595381761494250637438393209221510726702505882753482174840701354649932316675071430874220327580460285274948795652439072414137901354127347726469676283097321225844911116903461956279580743223471827472518647599001410638775689367446606728118494616760491877288958324126028417687091922517750937101763548842761837634638231798962550222599138703785741565308217993149019845813806626982976758377043272180648332285354377937457237069103604122282094297904124777436631465508765230604077754289406298978736338897988213912257119658405824855815787436204636187613460602819944419492373690622853526483208685610166485673872745497001252905164881508752588946386363023471945172325360978322289164203592026992719216798695483576510312375767305187482039139548370317761589979352326359433687280211622104136652973153095363557145580342628598829210919308707648076650181818852465953210467191020623248049855706756443898886452147697319327831826015816079852770531636332676546794917459800736803330470098100586198218998157216870572188040212596807776367023632857139311663706985164388970801968042118558482022782010113837925256026269674973767983574629685536325108767416588570681825581958792195012966457946503933511707685609126325378950029775168239050711980575151658945679145360650971705630506816417810868302355202487949282004754683000173244007586300115087732318750860403962792918865698268631578518252951452023609222911499614678076722036607989173060762903732942518663944686599935403399431993506968647485149403316475051857936603489339581516113441385699474877908948321726814735148750205941312858345831048899532082476513860145960379618786810090387590161794353057196541905438856611992731274669907887193044462283747969852684170919674967256738858465832782324393470773480124469483225808370800863852708640824671169245851366723672884171891026175920740658633273577387841047366144144902962804891590602300240980519806004981917147289388119906575637344138171549569340722674114513718124037903768992628149188142696389363112188377254837933050419900982586031230986556896290725079028809517862498747006372488300949511243244305547689333671753840351427237531878129624651268467326687929338013507858759364572032822032962081301777046666786465311929645561268593295609274435849388473590537841949770473322290519954372803418587107551536248681793929974547128066146072047628152203873307021412175280158059967925751296156552520943920401529741714509581337480874147847623355527926802591165819618545410814178285517484347798771825319006828273316689250223205091713762946266278798563673725834590369598855906181018796294470350108850271176571843190683525457782804714014241781075188441831218535861218501521514307696064824645141192927554132829409138462294451735153662787101467166424786724305693676244299088682192621098999476220632588691860309562131677557723225458698944946289906708782326471525322397806209816706016668671551481940688819689862639840739716827371415554467172381074312898359951650156184505863451335849831259326806407892480973378489017191892548394103279404327730805245970909104686170815624213925910765080350919738467947388719884110424520170074905472204112440256184409009630325015862586797820831681064086867257485787312795642266170049253622544780456539934217638043859765106859707668422191347644588349594231590418170576992584265504264426010750229699646438420921556672420908854817430483269314516515467606277931025264769564052023045867122414594390600784539565035366051064509348414000248644491145037361955896368525347919058944448919012789326794351121769347082783048800056722581392583988551983125141321850646917204345168236492641944072626637087189561035059022440426457959778130101335266260354115399416319209645909538422714497678233448579932073663863746178355507338925917255544301215708222048218762256067495339386176807095623576231262122487950334402286135881307545117584219153798579277608057815581183670928997655743952996223613516657334734754995081433407710292263452294482597496273650113522188970234821091562153445730196927909632358058610015496789326262407636272637675020886271289111044558813098457408321846074048553017108696544631325626557898384160849804017671341083400598653607698068619429200682758038066106038938226836635970373283172380722879817363001471298387639641970461643902391255971689925843003848142496451950113529944881996548964775838531301934878705792249596027187605264195276433892361680834430677444241462364175732806298033321056588030757985832920815622883848217694614387932075535128129792535982555605361452661594536832385205980291795020888853169547759125161344121451534870971735450297936002266915552206078147656667215132590771003796217055112301945981552279894828777356782754836207770742583411796129674595781150787342790600715741758800091753892615025233782632062587338163471444003459778973381284994241512084664177332196082229059419760402365766523706079903695238319149438196293969290411687821793409166096829468943980368709969836251699582060425254769182245186478743252040079349499759705461401865893205467409986797170351465210154487385621321552208345557849722520088987772882241176067562747310951891014195087171133546745295535964572519105635709629469766520174184065374944246037629800065384157206701180301072289411310234084976838284923890631658510175321761139945427882488228498569898928471980664220077748839241629403415781065184730969284222744136969774180820194426140748745335357014087191972538095404095920468397778477061680984891010635714896162384706240747961399827845263217967680568435550107390305595195250287010014025451322125248058729474829329594455663853589366264906837213556456525609914575602996954623422607545773811845711390793636207541591861116110265531857784861623252166704489144054110667963446697446244494950870972446536993738609838046745467066368007600114057337164232030027496608113628784748759755276454807589418632514623956548979857213345103084318734776371508665795038409308731639363648948355524700500603937747067508286478116987481294525341657580097870342656128794992046773806730817011856802514238625515997601721881205821244025738513442912672706798472470696323490847958939793735062788743975006501341257446593000792875720909441454528828371806547932438396562699376526024263552732395841406276054372086944841570708778780652073734240721187140192295548580827181393146215971175216345861300394088952602910396376105635953597868511868768751762233221262283805164852750694697744025326863096439810449629616639029971229028068184260465324695055039349543486341239506306059794514937406517016749716526121773082718290485011359273828133338551845439620901766308521895626142850221280236014121551561291328776621273916808977053915329895985252304926278982517622288969671636583881395293941340769202631053375021932172831214899267997171854823142785056520755171669448747750633768738471049148534118211415850118122665053479968980209063414477948396029411706330615597090426313568469145671655993700875598621776955173949479450042901715788106716630137630917297794111631111758465434862262021106122329689183579229195128583622827239866995196541867885498878993132414902299893456630409369817655391620445133871705132281768349594434498423525609769261129633202230933106810458067432927366528094774313395851280318443786946466295586211089467959732144833607799526937033236345068216216730518870152945696309470372370909048315884867116140674690473838097842794120658374963520662896637107525406485032764322686386007335244654320673554142592041057192001102454747653032616713412375680066624930372002029164711589710020580373040210204656828097957588391012505230397606855309738229297712210371240056625255969476793447373861804549252672695539073225527078079516387309043603217930686200729158499593126578301010760081481233928069933935650352455887481308213806371936426155688161110573573971991344266360397738215429979577536503772796261619700290735147949703563916050728322203976308669603746212182565587466271647592055146066678231243541941146104115784087354304644515532036826193263669879367623013426213897949107634248349740555439789114231342501620950239408175115984279076142820202602559470248962593366276203756587165875049349324775873512367867406587370920076423696604385571127259912819534230315174060859294594741897540115353326424551729222777028083569351602768505246574541836738280311661132279013709605937170337488949769531261250974617823458891268896131753254156040026656422721455716723180264936210316946675401336302622234240657850982761383647036396651155921141837706371367579689682594483596235133237512622655742862277510337627629137511600457896261653887185538921303339482912538735681945132415155458512548247057190960895726945857106186978737951836051902109006857666203767553243221473239104929577381851380852960545359961537414118370452134706833031539390711010939641312418405754198868829774545349620872034198682226576008922292738761181890931728918298704628742935785891883000744120477246106286144003556737603860831312769055639007646772657534679805418754018975156739676294552005671912865805223295620331960335004562892470572914077587979224309917512752683019165468011105771243120639342786485436692006127244959417796223229835459659213322063381688746500087843210416250221459655714661915018625857684504567696622040341489988926456597408555102693180045191670909420030293536509867881186736308662318162703587265644366267464365011437929251847637122084729387336138465741748397972583568407718273083967142022830276667012803334420848574293238904980680162060396900950500947744127595940087078194268002152604708695294412244307885224626401319733509079925156445501260256219875535228440761851245689835740514395145079310102765807024636563035721557102570364472411959788025712707462186322152324203390791851477489893010503823620929997216283749083635376855979169078350325910071690389066649010464500252480765258295241891341378113171761303298341590553682306338249591396468488299529510086589502785204050372539770797129505338070860598578410661104087082842882871349802499953058426990112567018451098116436454679862531951844973529834491043829709764866135157337009560755645511464495324492857809154787630071259305192885880937535233625489954528745638634315960569951213010162041410740141590457278182990445956785883960966641426049380765589123592890004031815818289869431685361189682836758392086586292186820429957271396208327516575179225707253883705463868069404398334843707769403118835830503762987920340690235994738213014217092337996609827961460574880145856577140049036414829607945118345928715630724607070241870070924277998602983174943020498865367940866479879584603662239185809722037245810111158281401608910951618531481604615389135899627600463196610566758058907950182425619339722981958137586846961972087040457743275843680252792200137449279419229779481662655171748036271465367301174859626758183207585336862386904239351744853839307236416590168279026489490320811877748972384682316092186793360478774929375430989333607005015838835277947410389195391901523622784124136996207098761722995700733285824206617022550015390372903445756182364574002770806189640911661322660471094695660815246018588019045991302317214262954092425436199201867261341182722020003537465992999277306169904936811785972669207711256173942826483420148429417537803415197556135638974988836898225420261890072811807694564240938062196058412107262820347563087987368741687988285459099955814718855086944181739026602420886759164933945370380650281456741671900284273751236286772622588962469136985228031818173355626791743479816170424948712066911772991428823967840671477111469461700077038187126359059399905701266203733935341013607915447892002209296128607395650065854803476944497627347175546583902201848751736737841711566899260540992242376629033337784793750136976160966103935125169696138493084675531312290757489560056586655623886984402033140100493552076185352879140947648161244444296211321335307860104849026627022930201826492476856625944683873545801982493030695358684560791088723204689265154423195847820880013320658739998195878723153373914287266494851012065651091663341089920157226877721008601470658021918541860392878637799415299250976370838539919930738047320671454379554073795391069533676373587771691704863229629915757524884255245631536554386320185471800707325066551214139526463429439312388576301589966739166514797946244348895753582524165730229573238754811796739523239830028440561775706803308657249067568049218730395565651223958418291944867184992529986674060359527935125134238429263274600194135394823527407634781809220364912985422534495364181355369522586359370344330418663117418402218556999270733340346504302789900196825440189154300483325758079049406688261389554572692449340002452372624232991766860058206472779131127396469182480917481851562984842919676036976432487737077366455508359254744407042697386537753685495655061542456479336191508118173414816700240944403786364846185982930822539394210317275973573352101326761841609851447267538102125001830396930325227278309450446959004745371417816314630045452278230421551298486023340123439184736222777082489699410200118237933508882984587370295069032852696952584569076767126035871002606772287605503981684725971823170824195286911970111198906643080791588022218058209580801379368329615765619289418768241667178204404129517367930202680481463896817847370935831534446659479727048126685598302603779001621039146299640635878756423835342218598294319669639207182315161776386444588137668392103237603166484230861367481457146784170842311088501319780855738099465442348658055126515444940795689257551117213714090325444678993999777233807764732754441548154580253052770465520663236710355819904206366715320751413636244968219351754372244524044656271243944454402912422886604249997514285536695298117223697384611185504650826262608601289459295586479834503127230416789840195464551980812170386093280252947418565715749611472677152759487446928104422727598015598955950486198122089973263354186184905055547376826873035872443646935666359504949897966439989792590045810800963442784675852071734344000279321711784431103552767899908362650588614652725081683357007237150743044814134994444076339926101915245293814247938728470533440378626330798747242848978949401324086500840452835727798110990412439433705157243643334337163817216576958754391087714211995273522660920016487598861310310789510780613213347373947807388790145331726167311891138956594623136812431030918593055560405706851774064630222429411605627657326338873643743176391447508444546975792790891127853694253876010051674301009434637158299489010129604222932010263349030281227852205798683087731816158527528091972512177927311133585250502100862514224609285783213837884947897200040370616690186393440947414460816047243741425882314692487264198672915725263461478343853551592717297581519705225103793288655127555707604954155496622576066083513492390088969729529795475443146092521389193473616492781978850024585081273049302692068477893665512590509299288206512374570802744960795636547828121182890133311410737546978314040766300159150627108647489542051112899797124959827707113520370201560200657033760497787089766859573280417903031671037807634013478784850404506057172557441732026782628140379666572932951826669144568140799651991062719372208676474418615534436724805237659566742922686852756964441650351118002720194968622227036581920936596952269502420869195642309083231949899188630160890632789050126515859252646173207834198625537675637109363926576569981063529575039827902890763642448068755973651448820850264141824377861809014222583098887387704532384560302188194062715150859906874753913311087793293292856772358468020289597191833435095803196588859656224805620560012173603527312915250255476471379943955618493812103737311034050165511713736650804894885143015832053345419018513997937724612188768955430887615139437070924551307337898208916782384468606369279403168912287450453023122038380879867166867001372227178452061792565485081704654028820518963500326073114261636507726143208920444897306821828632992833809385374444417973799011215946123142489589969471159101251213669309668478482678340190949160927114892974757941807248461317646558316716229967227559092227916327281918833581188263702791417664926420144186624605548352969932777024652731233859332927923830511149248220252727349165155527928792923850993538641129021851192299624978890469130691248266436436420322402132215545254282527935462330035497293304354897997654486432539323037174475930242862751721398244065034235541390907642828852065097909350936328600586803371866013487048520347087050724567863545786924907014750637844183112411990268276795863215530900482803811493809010409667933479676219159621804005279879146333299382757814418721968992771664989086569077265900247833475405392454282716411902362011737194713534721470583265953551776093890928071464946425658522786069593887533810745708152065949377613393087163807587109518343594512156899182356521246701770834423212073660967033663358834430140634024085822696863620463949812617196555609036911151696486820941167086775037355893586911403259946113873153550619443184764389147706121685231565026664721161895815026426934711875442499544271254116856093859859318588907029719339719811933081978906885200686394065573477419934072157040331806829763083975055274072993422913991124003744618329840531992832578670533791898184535280218695158415352765965704922563628592181679390429446419408109754543373512016336230348040742528140098801265886845974226785200058684632527527365701500253405872884156090503526398254416645882412794606429241230116879825295930796581014245377222486396513213886263938537964161668298686590063507893378889407410032342806870764558463827999949501629480295365159396378405381947718895766184459782931498074382104634712215119754179356799881176206866855498689763005979839008924430253226815866357452221295539189621162749215270563255596753094292077481459704822083127951052076962345741482226214413130758464428435145652537661948576274761038534860112436557777763494807640260680601778200279319395930721432250418925778057713049616419820480541209912499781802198416187496843789916240290041652995765586902078862203627521736097274723085060505419737029426705422837141347993672703962704213692417746721802215537598138766806954226178253608641044971326546856476428508690920550688359886424433369010389456680366062607133363604653917022763442811939561417534845879325340838977952764699582399457224340256567790451928725902111232404976115610988933945699780069517658008040462258798237431996654664873144494098656052883464592194586595719863275274872656972015845759306294096483674437443367328650459374555305422075819384515762825263920933396188860192451578215770798984249784222386434236912847893196063536393892940853693044921894900531728196208263255078675826323835536549643066027283210360370881865581650777906915521283685100669162169707284962734917916439088606476355144405349322093559589049827417616177940321704243708093095689062466729115340243885365373721341041473748897502214668483800309582066207997824205949697146401302428641719838691430470495299100530127092217544640177119350152751197778293556938250549681370090727294717842160997641519689307123695658844548061242242151557700643247868678947492872655601422019824135379849560820445021354013899098837385376987807769021830690426786491254228611620413201203141815107013387688825010622486872116730210834279435474618745837793397874495297790329734685312135131776719382534108257470487014838308411397493572708215493200298793425419709797115725479714246444307645551542388651768078412848365332991461680001122120941336194729037904376989837061726442049658048236623923768577786453059205555421313049741930264669078001661514338300207600211151838585080469362868818391048841223663980263602580090759553306599699412302075338504969828452629471800091784264808563821360835284966055708084077581965239207981505530378939606968678161512083930730953448261160920670975715419407796585057126470805490867122295944858335907987718816304498151093527734810397600074916036628406211550039917353238359677182835099384647417503862394121451383352039590361299844683596205706159822297412562503270318420048220422060812855941289910271702449203717324684533734086907717228311960562239796227044217208895499032939257485848400398073707604214037279215407493260873370444183110642405465732023594973241953846761612029125580358427941036190110006601921536045321607624663941081195105100565923071788261620714670804142487305964864484851016577657304716634574455444551223845927923054560492181841385438129263064493366888919924603368962829170524942682060136899960142336877015421703887701139150687623635889883573920526645716297570273556794013286263709729634626557685216995701545364544823771719275134284537373300358371188553795403311937416777449808848123099209334994566559831986028353116512612396803948011624041289426988328130002274386625766030487512612816465768323106277393182601614137968793923227690728112943351642549866966235927775613704399874693072405204688850857969973341240538852370583536976128786068223559863924609552945733766528180513062998056919528909294606900853895572195112991917008736591009699047770416747231488163591515635951985954224492244409590848310033222033774914330650106632834087934833838206133874044377802770353293655515730302943223075300487377022074194427545644665539217501230050596904385139618748944050160536370201329364584193764846725881666588384809043692870275409756102227597390001150619494010952470627953839548934455730956698430229451699438088408763373017711997633383480324234033373814392763142418316129787393244798498349610314002739639418622623492139400688701330038857369897639683856722411572475207203447744724370976474297127526070665511577919477138667408363547467649387788800049461595697608789779663836639738769334922913035160773495015526887917346638360822946724773816991199277370023063079291626507349957700392109505100152424161932998362164135138054494450438688296685259821794555100528917070663100721325320651967517203442129322575882300483298469426774558357235935614215858885166089254263636491133412472835401150347321145035961901736665142302262469833221496535727853602927760602043848400900610452390987486160540880034458194511900493592287708353710023796577865265215708397857464819400716793967700017481663999293353463193694152168759820763785575464512311885960814965583107102146214384793726707738557274784130730702120460981607437901037717934620887461270686038505838442545306088639467139913775155021149865866127747210557859533990987040744130156430504047179062869541459001016244943852418221819930919070382652339960877467178833603586769012940882946827042465784880404471983608535712493407171875547014940425406227198870492232055955389520150836092960070886684122827431727896805981017303293440872667613403919205474214141805407867566544178389189903575165436505112779925571964949517674887204884586281007750036224339587857735396103213880419336782125448516896856298045010121009665868908831272997137543563901986333475147959350816652813386973459926465332302819968681064250246433967831400055079243199093874827776570331627469871687478186618678359558493711957665829780223683579116160802075432698300555571893912626081498116782769070884423928430040236066033707741659368021407347408134493189086708787541314219228190083187005419572971197650341680546186629771840075596336895621437728364273413849888946083574785267248988445940074501245426811331513521978486662640439531773932800389073188499435159225710680801130173655423639225485035313220336236737101746543465059077321397174339020798422955937239990083909733130031082906433896984789277131142382596414522153195802298649176500269569257067569818752115410454300281754659560673436244156064184072027967089824266818045869457715930264453027470208813411992259984289482668367218512591008525841232663258194408028452808528188151020383311502065155183755667758850236205849399963315183558068783203803814749212182102787029531413183115613092356267937231061070841770796239667266394610319600955995154347899152215114641169300414199123025923729021058424288176087172416981921010042526426571049380220483863515125663139307236264046853335768838953776804534975578386197952520027875933104768651551795281118541000568231417309185004013704063654584790314328040516022029208225735045978627864150288438398688119460669049310815908190385447386283773443170627170752988757891715089359231412533496648138388107251746080477280388060319694552713665193335365695283826341376162701646464350759222475331441413499848236938061007845358646552096203929917600799809737483645521916380847896273782802016275184945171183338898466319860462225213734477344079411163125983134568594244274028600526791096776362032940106361302406333661518221738564708459729358899362204370917691229247832704650079016990480196171877804502224559066682892025510595893400585104496004636181010044804305340092082266976320101945660867639300968187915359624559411440944344349515066301754871141732523731752165231883105643103095038862228925784656884613687658800946189401825809792114909261935403407313681111124384041364124935249919307108013819387438089636497209015031951439300709797010407208544702695021589016464742963047863108687708187910403850726460469315099351514717109875358738538188598465198036546809360833715187883409005379372605462331281121418123457360271804345048932569494482896578269791992733346767453896853670709777169822647325696453915439881831744567288824936730406926401291971962300054906010489984637628860853567821634171004924441052976697427200637540511032462687585643356517406052249434037264753465707037804243221869502543271827184592868809676840083738065269780218989515904789611603304333201735518009294670697486566424858134627447866281167341347076818499328491780708825875337880260656525331321613477736652005608493144762160756654096830713741541038957080542074767402931724882320927761693634262731783228119877557457479538963356063482648648951671352779184629065302395891692211810014721859801792791239923785597482973284860142421744666404452273938070183761965962214160953467287409594542159198964281587832553300651226838493910340930474816308707070741951353644533667852373791167637707079255152508392265295957193838997061566046859487995404504127870060368278621519786289980017034361437126682177596493809723914979945674808139476706510732038425412366663289113544331707733186928669959429483922388537309016484741455958693695801433908748532059858056206592950985397786265201523309399402155401033054728610771407801390195136231157511421186679655603471083632711707830015100062963176429757671746893683316663351585505403974502667626538891106992061201411463822834736966307202257459592156098705871504770547195788395066693979137895066314076557686675383473984107649639375592656223438007504605483087318016445351535580178695669172457955201472437273051261933740688376305537343631175295942074311706472542478723693803218420604272004616826902709180057191846648953252147131631518700380113972500490525413645029004654918288754645950421303848642152883722834622790120624132510572644364627474311377816583359331859848758168761968498808311431301783405032253137352515753473980725144995189172441945365690296150579019978521655572634015601469240746649696272057879559464019658859162031699223450692531983620026912721532636634192673396994730897314323713962796055330876924421561176969178430975612892553489250841581460495532787955234557737210671143539697452789040385567312265756889168057149713117466255650536367341499785717407984077357491715897400488643098529383296209791177264386121947204662790022162738059968346853805724119941161114790665851137668746359044605709981009550355618824883073133429734351289711425173294160460127618274335227291718905682245380839884339757431499724019018546849518059301664219981729964358601271360665930055373143917967405563850006509313939060691422790692559034133948897843725348963226092898830050029754387745153361845179846131748548397489320561192450246966598964161719456118568160858380582398098116488378635485152386937191934597057452951314444010526511355656401067210066771563385022877375587429001427379293261785189923237326822451126876826268303316740473775080609438434357262268500682318657607422149409646981105752725308426027062590940812878834766335160528162773824158652076164873145270140582723097097292527230715544803132051762749065575211573980342994268821867137843674385277599132865966805169180014338549875553335825925720153830408553398325395756561717146673047878148678917620877129066309849133119266062474458551569319128709585255151387068354500548632312955348117144844856239134107921526504233199481556989630867953183080970278842625966339124316083299263487451564798777549134437373557776465157328847065990851461776128346162802126604786425490236387720934642895751516340631843432428193547924387221219254549043242765320489877339616116961288325357257488754065301690726349611796906893030912909322942206285699384791004402664801193833795513477518855040080119801732647853384281624193633639617570572966347376748025772147314137683553925488733241412165485171316795743671535830156760968236376566968302063664799305957403244161038762514653059012756111818060135936639388344035509254546504664542289655977015194224841008693824117540874822430152575444748804567874633185915044816078851739858988050193616012914832711701683339221883626082403645502023054631329691385747631370590992087486025674547820417414487810461953057537081523877878366498272600750501434980780941224067975858014352574695635633909693859525685131283389333786778279586678127525884460003788421436340831455292914468261425733708669181151629236444354906010469027761629012743895118011612383837316757876747685161733894519745361459073661005712689404200400781995672855641709855210706063086427240374924338841103761504033931543496038933061848556292482864499617046431092225723452218102734726235428864463109339221728252100684403809983230574611991639629048792521694476682134879735153845243625271182337710395838356189116261750365246593785953600371146739422374627903028691767843090289364269630448838665326843489262878780015201455631519046064090746110951071943585554225849695099095110894680443352469646566690175477086361880889454700193965623639779121770442476435074309205021391434044199483521255306337932693553561575861405591688345268779469271549424870325760057812238730306307145493773709138570594201687887725764287826995572535725490459849873294688441024977888034337234592851174830519630577280071399794282079644788164792801730652106849740280796306496348593800011486207169054952093541981577439628901986858659944786428195421709407769827133276470713725933868060311851137173576497204789786026511716022962493955741062930779685273306273848630566036924449378721334607961676650726672636950071646113510689173528045013143352111296917467311931059887522804169680450210057478923781105630327344666637510101765432090102271546370683160408820993806482288091773284508936467987430245550404861798846652846498590301768578830067138044070969855569734757575951368311545636930970716782789168054390079637327592172929738875329348768662047885574536522988190702800979816133226612326814948433920324920591340328347754608332046592605886220695481544010237731288890632553800998097755809356531504908833372246064387276301944883060001366768552837227025856298050965723486236929609188603296678212242554782825761775063383156966702532348820225614830036191045275499840652980388008604868389241731187783773617716684758873751273372068527823343507129218820436849874720161461810047950700845895925996775537912776136448566125905744858541780663573725456979574949041257516015623690710430524110854276449937564387067920722824122657678702618934691028559495369891400604568518391348054762793453140668938282189291692099180782503696911436744578780958524949845622565611832442290813369793010821918082957428738399165074679765157199822832045917278267324781016106856605456180250901183947340622582495329652348786175192679889236981159560751009979557206899252336995139607528854782256664624919639609273469171326655544077447931611851391334142873140724096580300153289697016484156721433859405041619625695830497747318633518488232806493401837157708874217058269634152483979119613410878584946197359933349637363547933898978994401508284685220241487584016562895357835334072774578313979058516029068056633001056809543252090134095457335984721153395791974590560662699254776289831478489814452989476951786437704321643441742249117363400360184501682042085225025792865384538740785184623523289161975875824440821637399412565839265769904230056129574035090152687730029356469696044306156291464462409447448689495226494190268265566144692940517532105432252694927535466926164631429528258090092630936478736202824836766594043942253210375668533117232982358702877050233752647290125941909573573513604996557556565380942928269975968964346206649152436041831060654844771635009492413151199042603779584816029536712990687102272277935213867040990438260628661316331706315211728066455844495703462234250326816781504335811836488707501694300268198866925161539404945050394998479196574873079258191611920085637891468114560280500606483629134491428697100236118050126832570728809656475108154523383288975176452520489368888429050849750913005697551402555520736668175199429595096117115739560966221287299205699624269327975471120352110265135438265530669762774959991408875072629984161483724348075431249564558638227261184116482677039709770239694126791034911189568157545425678342156841081188346934204461791794056850325032750735161152304605381036553300979207746046722771459005831404644353605374270464201824795362853454859930264352577354925554209449747509803649936807511763343017963994191642719297594783582181988679923408157094147276681603369667278982610452017771847555402090964481505782157575008295866946879092272460809996169810439428136871380402474804460982079751911536874254971977688846422353424030831701919913126613121139823911574039865881069240552880434596652564022608499311451968977019009696451141025980016776953630525190384523957485348768551139092369432390895263061459093364550623868560757704432312654635218838663273339838334569379767875312878971294495896774746277327667610944068700907131100420974145668455653044440796173508060966450931415556649307102390054795361543971191417536449260301405685492084203657172097491275786452201669220341135927641009878008195998711489908710952788231011454154679288362463533991434747948212737319547481787508867421607196262052301639017140724954986140265635814867141898535759937362227666144032999595802921429558462359754718489073263725520446659904659422082981277984989296269148510474595986491687747642684887420676007957144586782024011425671929933818925859090846246188570639117205794713115095892576335423411750909492058302932625821545206460564306657070340512882800193703449700923875669866314675539006682919459281781552284244464357412768736379681451829569656296581900270868558134363481103592867339748670292799989174685309253602685607720581378621257373566374714932183221767237647419037253758386967894455089189257816681844465405018799013985976640447292564501248412564516224116192777564989382479632244555912970995805604578600383108756280197664217479398134469763590665847895833307348399511486912278174473244118309636850606889399487333576419047831944440783618137024517866184062613410020466533219202210444117661814944951165419623468751201373093678830460871954175126312008283938365597226501982915295056148755907817901292825530191370402494300929750255757613526666147138019020071094295821198879902744980495648789294885844191030779902663863854710705542253046914763232937554503174686643015947753509498137038634667551642454479702240746088218805049140018520535422724438268818512640680382345143714790518620195870934819100737053238035868139947029473147899857889605252940785036355849577855670215241827862949441257117309678546054255338332054071111552308818688986739222334157461014428437699640525097953660058291839045743756876716523100480322173826896496436250699271004990257180681315883430863786943126000246107702288836145620920942589106460122939778456245322934046102081732275011699982178312965108188726103783657004245199089758484780830731552511473933429183811156212343917280446849028063158045785383002103854851305560481572427371223958066909484656392931417132297071189237517003704775386509030136406144642018025015441418869319512748801785495405950277453709498508100743500892119426488360114915075324303448802723894559841899093719985514740723230939098486145747850597580246905312180021223116852164479718251716135414403709894024548674575476975721431292152050100322462415606908180849908509966562616421282514099404240244649290170325158981339487687610898422869178017937367339754521946330388368642926146353349539790755739062028912934757967300079351553710218146861290485265220389903791990126916401547361090334596889493324892756851149741283435265881956630391848916359408527292074451049217720701242444838665564166205423040571787123739965984614560081881917122569538623033326099453317342981055008518156403829944895478535107146699858416524578968091144125472971053190952447288188613249486243088955917238489533226096942868110612051151061749617601741128992623030517196296948647335437588363236336065793068561959414074279474763576233221333099217334117208414589436800228759984704101904722918798800473647463926154299653589149511985989014554424170992975006817126487407486193860800314439584283674476573349182261620071700005799953302687681985395065113185552089467958224723595978090169197723714164166304390180445952333829133892638446493128731667278889431201816547290891916810148254120735769919264894390341551664588583480892727580962790339915675751302494725657798376633026565150928127755369720860406881992977495573724920964934162266610005841060274495769852020571859469998319314106676732997680688101324338779173347561837227313182542469637357987761976176041992365065393226218791556212735718016191989402846441235756587006638605360041185891882299953104848838875147103432481910554317109990131374721535032191635836704738312004044623049024426472459995549648238183200383581949584274853628975972458474287996983593341678321591185076169553785244020500296824686656219572467623416176030128365800843389982259922987555317075404247752403977110595746036081717253019646320030248988085951169983889553173152308351280548248320438249244715456932590771104133228079274492610055313745797540395714187584407622671592941559365219514406371577996662909516020233832187814380861903206911879390031543333776921437617285689285066853966795732000826009554286931121061130858793354358760301294947637545342843721019629057021687382843743592715435685373790334058850155576114058110572723893665514938718332229563353685261903047471368526625820451409530818468007020725623967000683221487953951405961924693785018604064661821797900251088185674754071039020321897229409166853319731225428709836176579408155028205329081704532386762343207200918090665126202663210005301961181174320842456595495586737593202331661202934215792644593243075812595435262898145675201436342564677961858823964767314174180398047219024819632027536397296355722312864517191545057045373509575767811946294871779855824203156975701487485345537872895647066778636140581368660493308214452245466466989192396902890018491321806367408677420937119599475234940876798181859961488737486565196481909538709488726593404496847698711042231251221431608201171509512786845122731769569603615610916995446227489935585046077136693895876396641676186749431950122741404449499550948167147285712876562549052348572474670925036036385533234037766237930670241306030914726814594296834617197318363271851456830404712231677954094430371162860632914935632869010129223863446670023405393315410875512750232014880762106697042639122279291640029122223357706462365121581168652437568262221845997017153884282857688687447956487928557265994837382519381113203100183644588285188768572242769102137668678976794008346909153794975870886439289630836659880949730879802465813115868144457039052600400660576652104904351817450702104083298879856842160863480003931607347448537753072564979105624221418438014681782216401919171789772631739165782217012156223008589666933600222945438114863227034933537713511130449179372952589697834642369131298084933051394855122237870426457176351402388616375916264009974940140666844405068853224290916993899519840220293055870150896779005397465226938790473102886872273277078194875152229248081858473296639510922096502556504083016668069483467889120598036361288391528458671442826447260307569325144508785069002400512654695870066663540109686026490491770453030516373042347013460448257619972400602893651094741059339695967946155903282138670533088095817862011703102432687398652598405551221294346754759483046783937284394010929350784935321623160570120089152596150183181787256892447137022277482274429393974311669854355316530588702741680448166251473888682088337219013926688341143483448717017482415981660821354778062828726570476356507168515340989605462301736413423885466144922129956965735246699989381389446200708564572507440774318183474954991834226777122726142882456339687683926327604308665227079038185549513550487973074549879586926705072168250311238017569328086725427806603347325066879106160013586738591597318893049422166763639171090052832466475566269499798483026007529063716422944495313384229414248667606871147070263415005038765131860381288771425387164058023234561509254280986014928961343170102163962180576058603398080733440455520763674552622494950794817075182119763205672300885494486373977394651440657596124891463102489819501170789518170308433223897772364620073013977004939030524239034892961502435731459967922557757407853169597577217002539130291547750082469676506550637895291679028409815800979717381118205401704745666697422329600716261256602158717623814021304265815135984430058537326090651121048079568417886495291838066101912596980599103470885110777897306340426182027417924663571552670562644103761588736393342332546235985004048210343195432532218170682025557378317784597710923094803978223181113487902528582126217968257160839825024413897643914698651883749126452991166689060244234764973388731061649830699528018458183777613630248323846168259393145090516760883841015422509893419417096703482000984413310450717367499254490220872694598494054130789731620883431418699004520055822602257563917141787922337860113410198424427225101701298325538821830111320048422520298023095128683260693817616099490754137795745589370111087012500138695519216947879030679393653982354574749746397180166816001374407650995981189561164065896511988574904514580859465503941705015197951001100956751563528820187518957140213171686498606530941387657205485528262265401720073613209848222844830210838286000458647389164023843702000484459964087928380421674011904967102682119650347732818394455841000509934980471640545479183833880868122175987763046942039963899289205948025141063940260560277727348694053541952805725746196741266713633644666115808054061642490206759600402772497151739780525942164660699719365965877003191968113262879987349793975505558906036377188374216580736624485363770379486561996283571558841980843509389524986287285203043378816473787257401808296069942096982076777501635182032653351091210068926653137319141639717125489384030517480980682314314726374479778487570983643410718113085845880882619028088233773051573573459700845145153885498689635495195142252158950312627995831666300103415057226875190564985863156709751477426899111158425945932977273536314891629960267151728084206410024216953333497566527689719332157697968638497666397278330637708036589770282034036075996002447973822421677094209159286427277094501696171546888133422338112178280529170851134772494055165913098199348369310992233940793877887730506100965705269489590010437340276206535150043535846906632298535435260301921884760323279154460233523965769143371980980529888739090361947922226470979365236573977431705344707800262347752278256570809071764571553861592540585809812607950421028544410350282652615818894112066222345242207263704360389251242619628137207461309789733320053577098127698363322024939713851730641780356164181531475223666746126284517684849983751825505134509823091476269895085487936024466255165924149245198451727013014520820795738261493497790691651006897305072526024162469317320399325495489991424664406192337382204009300408180804168149585414321269031959351901782038503239051296104170099699118570207891694429754423492464374713112349198944945768719232581030733917230250662407038455192597798955124274436425102883920081744901516335061415792439494456244166718279995428367505255921821824347290164823328098531039386583283475823040947294251051586882096966704985026969377136285901859752739913799089857703207039477483258152959186498407624984427215426631837018419358823464667536968215383591830931946420778990123070308806341826826560440981072455233005700812062794983498414739703252564811750732623257159959713076567547742530515839111304120226217683248413518501634229142223183963441014568085046646668069097984252678769097102717755462152252266316666306218865062489176643332469397127743292582785003166929797801166176242622536360882364945715172466150724251453233162319400004562377813323063551407310631430434443290945743376902338502322339532126597418250948686864837397212653282066079727181972269476624004195228367526110471339931823625495484691273384555763835956530597363345905052885556109662498263357916885045122223794851648320814211369371985052390714850601448462593127276414106274433438393296377720846483580904673665528509999569882260723453247453666615329573441274280767434127966329111522138753521163993604292374983902116671003059936152152662141008545863137159817002766300989331247509299671212302095933533892490331929596144851046565646960331233008442749602002507871223570938901938502090397441723434077425519967551688914332744672244802842554728630182607756862361560874021052977710244006110604718623319383051906379202239858016193898232494397339379212704763257837768347023497194909052264300070187956264697038934765637870099291919553012137755376436987925416835790537368032050852141629252067045244615622465641844777013172754354164808395830311137238432276248484087265714064099587415727038763999946100290152900550293315962977037063517279974761183219545985433963955301332777746294719689584385887690155385649638917000531369633388102712747772566529469707522933500548127617965859815162801930624618548963996333515230827491026740872726605604215025163090982329047852255323077349122554223867755259912212290008721710634550221471516720347589588581073660131543515397461829524878187169739645830858112401983124767548787859783261129947436447518023396175563533826917018151579432714978720143454001865667985290673735494531533513752546549296548661276543330372458406519350910712387979800618389713946054213262318170405317846568357644356019371325166929505889778719633821503146384230961843291079750466459029412977366720108853965928623749227932839778236321544631308152588124815194251380243739555089006817393496870782410148072653531179774486145789685145624930598030008103484462999260679301344688981168522994901060933654916086556102661606115940506980741710894912135054413377983668040766874857089505405898560138599726788488207683174784853157078834414844079990400412639261816390265702156032257139402080173175495320338682332422288484155717732108216378565676953663509610568069924287759059373955111829188009956423618379303867523173513820806050859204955268107966004827300786678970484099039654580360795561125172658071602279737014725146148209339256137752929169554719903318989842729299383758629046047245623555602479292572539276466025554525118481590981950596173585926056080243038178501593458389189484095453904184861049796610879091649711063338413039254166294123661965497306293744716394479244282917295711502858596648932514816153983433006255388622755531097615422995431503004315218326843775786766219170227286220287545086296226887600322100226865978689715839392149040540901228503705232004794496712129659260536195166479179346432504313049381818706795868501587532698349522687904026243598889623043412594416500687726226690773552473465630735755454981272988914878531461838312879468891811850851009376297076835446514822416452316372615523169578172732462347886391800246315663118177895616522221262335912172624150355596060233587730548629699656803082301423352803858861141928551236339946263729941485362778038085178394228684875422428415847525204760344405551431021012686415957548928367481880780831671784899209552816494562491889714872284216244409843891815601449540942759572345307193096191122622476713390083490583762348188329247207961082829668023699827373298910074439712698928392150439643208583176040950555969103637129679355887728235255857324796181891071406746659140542702325375322203781470338624325051525699283143263189649957703408020252701363965487164035008202084849011299672459716289785796337534162909008487960250622557322919256545218408219396251910967505830596846294396240817297776610378886395585710233046010531433778021382322984837148374631229457826379537438022990246043330633501705080783565400620817707986156660199117754109740401383829922981559653921688649526199182287338666138407522451342849662408497818817323064665047577541774252550169350599738059777910935210835562182047266874035759221724147733241175081068310439295178506274752077097621808995809615188091595750054144670969185101950989199990987909926381500669835157557812801059846992521662660879967179978911630730442127523362786711630309439922522240624766302097363259081641757882397874264863670808100189416089182371817061189433393101832372544246026595362357531038948404150063867576654301680247437036020350172823052151825598627693537463514867650367138579343134308184889994098596355287370687435182835982801031764735716471187185369514376470493456563506035308425728526511870954434922129356952724947930354896044530778438286741904091622397490921036247652074972525656522362395031256496512918408523145657201043952963434452492269807967520155594242286968148565314077294283720789289259841122379557684298671729224691800470789159517336129053842799059368008742806311073296657018899848705084836183230248001014962406542541498656890001717739081421662159467665863245101994647576629219413306194717727444423562325233671962552963406793420179753414844712380868477804921324849906823539589254911611866988360464500169033880538084304814972027270092420612844117195734120676142690185112665040508364263540898857946994073417102250112175262106409705707809660869056504461471508080540258397028487672114966314469165846217943183532413741725824830681979750833971566320340980189097642938484903230563945870386850381010923863071387788482813022837239250852579255003283825077820945971292685242662740669509254690239133614480370980881179264780582037230348070937554624775875470925350839137891265136390194153688163911492173815498299528761211256020974352612887741107169551485830758350343124218791898220440314826342117526130387683442930591072397925238605646454433623080750264157640906963614532962359158506234979109584094187891856840247700062187471788719384072232410767763670693982964856556650652420390493842568803241053235008514887681890661881254951069734242099538251788131111910478206650875981370436093095189966654752143459072475073270714681139062205966153094712662428663372419861151599040869730120252433158094491308526189546153881437628567077105465186931118429179277731928293686442059203473766834352741163437951561361702883577329200665869350371239126901971396149213081821231167980168698946376960028209914194763384385964822446277054310072216040139463399053944159242688380180569801131245096559989482759434289217374325743477845862263640778949122687961973237549648549831103707007803798718399516447069519041775405814053285527665056188755455025132788662087144321455565891381528239747845894649181657430048299027484362625937510052555250624269327121466632066196382389692894899960439145398673906310096486063711658253806091591102799025647000721114752106245041500887308589014236851404956918832161920230502483502155458132326576596596028256476094322682183567120398735446679169062060264096177360351147512176718884155457900832519392673695413977934393778780421351590824047423125917419853924477876739735307355009182691288376733543375138879547025243339010053838423297745575626404162625606979688927041407978230113026133870871123598139888979675152646755947922466598344717815929105857515768506034840170598803123072979134736626624655115040361589265325879990662046502193925517797662854501088002071758229903162359696822070784983594219274981667271254158132650625747469042515466032557087201449823329985058726781323733419031136073163997284784323972194623668769613126600306870676790238798001502337595334014895470245758268709296638771879028586287672740906900796390500389750555605165449600434832908705613983564389553351915826714655593517157186662662227080955229693311939470728986747614288138129250865087695267797704581361485581133903263882686276016030603825954485262508728064225545629023598576737353787094794940576256257154070696869100974746240279966895590827724400048836175660919639132761750479019433384181713546866579538733018499954933303651172667677120415313875147157895025572292522214381248873217403069444290381877018539999470550958128349157308154448388175015046007339554694601010600658694795292304303090478762195776033078097975621811505935451858960119351758387958461077142100527578098079861593319615308513827780475924385246587632910266956434138456048262489768535560605121821694294681875040313235763357924177036148658799381753862182848698469012297190279411886084613901590402977314589065310533900688267927330092448464877665066169192624866656000844642688129992698791863918841443410478606529957226703496734228863606267743009910020383839766910787070817396343757519823755288722949257205313146657678442948357725982315248553587051732584760585990735345949923115485140213506638300560767234270221055823441076349289024329481644880826972733783276990117180719501781140709015507105399488536671725338031420065939548192675516338817779323289045509760405249837998865780193611087483106282152277695513341623749377058379631457402744534264770883860758173002303193908524863091869536924254139188327644504150907079221235886069422779661883072295572458024974300916392089975862587033961062087362979414998530188656603976108663543576494761023273468317215799710987604780362342947326306192674167230014336928017542946725490017388585639663869790782544424160123361239662878333314558962639904733062499319960448521782905991700229516103060251878662644555684506537922148587522960054869442171537934858705251799334045237182252579469531041878928724312082190571734079835878052935125676150474019643385052814682990758801832545707017978656097645591549324038204551331980611937379209027792329190972793625128834939025901637976952040404130445690904772782822131316179869582141837645067235383700570744198409925115455052735068994546914663406495881110337470102657027488483468801568026680574837639294046897539218300967628904922991211498625660608939919883436030080694223699720578982124244789202956284385859994177447179205183403263264977566571670311134245217632994215897226918973143668091490161287154357739428957662907900311225293695652137736852446064960013558449727771962874790787680977995148062351865188928767683075464384236137721343836720188136108152356941527546543843208823522782480068405792396591549567803249216950768225077226615550345794501753369843431987642230661958055113100931031542538987644644277353933401613264253942775997788554248946495517850379632872277831708330096628878194082494682449300267588113793296762866730528509024223863627412702189099633590803541518548296658000181241784596796263741440149469103187805615550703871972409258539875678553412131403359094904886489505268565154728031282671111094721880481533658199970453753248601755970520310730806594170535562168488911298705671105585488263790570578465698745008340204712581975796561162249940516803600386830727208011700126587042395643550404861965843082865222266574753127211179801074816598130455645719595117815802504868103396489841969131715841426882475510716023774815067935681972835861028176989719169227511827677959188398509175393193280479934741444557308715718728069184948863476279772664039970938948264252644905306978110614994850520600573354901220657207408359437758292803779754248799461648366715564746042798355949575721126693990315310593511313200722099029659340848160753453179242015977232521488254063827690312142015429721787346603232025794993038820891091476695064724045143010554073323374978791438635770646890327543667844877658624536039773676119394237665949644773934650493389609977050955070205997839395256358431776998106275931512105416289334303974259908716364923055775275218089246623315452556117164082885360835778407946174839589409089730899381670308920698180638187727815017187653106816567435070751690021930964165578471805444412250927814712277492781603594285068760542385174635044758515991060774684543842188327599101636165669247794622452284169259255263470598081278403522224896154207780096248487423854411099966712958296936828553947001915400364377511886132517677288087295606167423691715655154251154212013260449739449879412894853634314173480810222735190798370102808621621045517575643189973694139888707723097931126866607830695479916151170365368648538946893980573513377725563226051682830494681114285421786483157363143893385357079424991553957997189081449041599434981111896373159687894954855912049992120123824813631111863172870553164265498110478654343373544065450596674408288905857542207730269895051758187344356894618081310773860206614387814037954202436166823835664273425716444645526177706995463360482430578130398337952254609548294770721123948044791027924233000636220545534500872528866174153812857526149257222734029672815144313064397637409622371930857156808342947336923421132829258937696941535434591529324538749929792104927114633898590732004320166676252574906265396146119557509591762838742813347240392210260989060296565945130925549697796989641346772859286334465016839416462127241524348129755524141024783034937279488357945716014644028691252836349674052172212328068807932698501324072275660033152762797382942143171356040394696567889041560687398608035610608111846722840437198067235526854814801452075574431244558416339098229794686059001159880106529266965122502132603561799699622825856860287569538386979291569763292328032987080495686098925679142565868671198111180130086172991095502657103723027804683133116481871025635029164245362590818156828709278131847309503558447678785949397424598770692734636998294621795273930663924279875399741491201192657622539495953814759526209078669229354599368296385497582057216667340664988674058606158576350841714867761024446663732550242775022171226095608570512553007887648902878088276473252690685884030617083747037415616868185098793450514154209159225158898958505589404232544436214162526945428983834020712233349694735530504606636683284690011612990721970061020596167906875325229251393553642743501354194433850089096068240014242959039853325167146395288538082580083978671338260789873944339439402639900698069263259882974598415945151987934929563947327459523229163661122453246786633315911132870804520412973714765630081305026400027826350587266124566067082300401652831938189488275347578733362141499041655243023492354372660316971382204489914188548066636374354836671341366748231409672107540551095070559568639553892985202203602747671672524789172305286217677446564668967059039255329535160642711783426859984832149123161130468436277048785444119085979274666731085962519224279671505290769231980688374170644672208096108957022771462746428650427604617138234011521468639310268500104207092319230382269949519288659741000589828395486447633190878853719375678096700733638626805156502072785145678329928603305878366832501947348056545167491578811943707580226537814492900344600614830212257023982339296168117385381550396707047277537085284258328497534131014851859151982830118018748409300907287928677511844859364815354943377967116382762888385984158605831687032852693833249514101496349915430639313082883265969422415826013551985449088106086796152615186703171024155777037433063272806177255029285645928932934932989550563084257346953160145783503234775970990110190700634558241497055474252089559351435249346287836841299030109611592159080824296650505010545673383958682568043466852350245998235722794104561801250841848950595219193067624381458459901666041137443893400503874629848329195491992173019275726909072367165758783051299678275160481992923671448779211847679583178244033846107297530840590888487571499531135503463792660506193874111511400120087499420357886005909437997074028658197614138309004284097576412239002036121281463170957712299360209050975239047528508245828726696478737153892943303945789108576296250511117970350543423851147609257590117303638817008909693929987743889211835146181407743813982948796271697793578552240364349798515486052172964081045763606048698279431746557160914460406232691753360802002943913310236002222100211976733527909078619661493000647713908915891144018173720168012099352669392723723021432385938981384960829702159263472310007534547653023302693350052775182667805842669242032080793528621453855558907935247888442579860200606059434701610069761191725157066565398134998542727814928962071001499812408411677272868301606429820803489085820224289608899075051444406653201048972644470257880190228499107416962643009156669735852031067826335123904722888758041657308700393025444036253952062564823316917222603115676078653612183726526855268465891628630935839923429237194835593689841805469277145085988228006799327142981878074076633272118106275042394174198015318253719382662543569865224039166859284283280570736199073439798308465177622884676512700081349695058763413405524356391783577773988573249887323807661817033717594708992238829015953957568635665373412412880552898225018476464779847571806078076479327000480248415302619180392815771039604907993902885808714543963688064733333788827770122628314703461031920601170846015877535567135766463124098756411030862547363876723660834217481859213269292520910863778272840964586611910163601381993253517304379376174689184667040090150480538149510970109025365201918320625841748429003732513572223405072595815091296962241437727440694771730593642737728005321462558404939028464324987104145931811738957153878705605009028049700511211498771605597274029723294122962661288375385403916768778429694316859923763425263343871872250346966915693798055227916297359126898509673903264023330133710003585237040276840813156433623047467650876665458290943664052049068965486511905500517459073223496190232119533157850888148785882536974525387628764750933798697040754618599187835364591172354272989093160852266312741448710948557867846315802207407511074205989142404846142099510577964443241257469148932258900037332281558851299892170795167671158658773100784192532328514785510600139562338827246325574910580944453386636961169249664951264279026346864135456149547236377609862361192917812472701203393162163783620852808016992560436293227878524604330006464219443668241520973734506784254239271936493648689285463267533801339256598117600921366668545929938692272593427610478861588658487123238999213623265709519552282579794121638261384161620681536619175340029902936187097566050237689602018810638136404345003379891689861502442396275255154007574371600209673978572681747171252126095882277965474961894204183367095740593911269224164546667262879024091403122074606681764526796474043715736911234711628591239286482950996434467128807172899695220037205179962043958686517133257815169302249411296585554667747815988882596903611960020310076243574919830336099328698058265302858224417288979162977839418288637323672963750261611153929859928337889757706472531238700044878940109232613243395234300991105586353838367890189099333218540946719806238252517106574218734104781516958192086850463533209927433623600928425620998252470347131375816649409170000002048040825676973911932124640746633080581884262438513738509501555495432860249053186500391717649065313380588754139888179552044713292422644866536734242752621493737318806928896877952946654331495855424338958238070620429497949006627402156318824416369183366385342925419014635921385994224026662393823607816694208329143963100041858432581969459980873317497765539064111014343561859445515298478073974234316027972899606827211878162488295323730159350365410584087852490987881437609066979144791278350305381912099846861683891238113120939149124806231687239224661317522529087668922714356441540131883517905247597788420309266619927550516117745009196581255862250806188809252659628309497361048615078478947834498775081839060460692683090912974922273791359849217664906666725864492049689379387990898324266999057307728046285057483798360975921676962301654012327189773476907174533243996422919986929612345535742937684470111330417101279393528466018873958246123988592261800023877924393875356713469366682536880803940507628259174844875883763923844540255239845539287878286571190392506808962314917511397946063169183116342327773275558193143384008898956189062446250743897378013137885756685915623777910336968471310366484051015845536926702078169801206602726063329800813351616461922020363568438084953627321261363720896325562429247717066737751421390502516771721641272401811774898798761765299736431129927475505045995165576426198369583582173897902495735673284219677311267871045651534048204620335665318078363285112244760272696377682947916146373744280090419410077910703139737551460499082871691923893564378016057586731941058138661136980004668391379965719100210581264695858613708856363774437535364939862877326099150515044073372686557714092916752339699148894268473122145081511081663630577291478557610357700474916778246718253733039485036323368373524907576241731593228219788976785269480241285043366539256796902661353529149619638049589353269388798342821797403422665083021040847832236999935007712855550280116184608044780890716454708338794579079169352033880384048339591753038298245201380966868363983793092973956627245143894899016436007568086946929727174593540275871626260162002937838959419187572501151173438263360271717300396434999477638639254610419386393302104069497035987112662413582354131797235164601208749194023025472693452369924612198466786115219432126481041790877378960775458670899573685383819205691761321398209979215516775762763615934784846537611181254472523686257071938854720251982036320020109567805156348463199135437933564801415174048720472435075003321101622900276790536384618648494461180167021689541991485419381383427680253927680944839820638831972065829351676230330668553056250232136932796666700107196383596815791297884907592487717041343283011515472361115944722537673481869452072567437192358681353710939719095381178874814132908752577440168573515302958695032088582726274151090238385253495804628311618403139497339108575802218369009390692479496642284484803921286894592108855066634032351516710332158438541873536362379684917645675215439717120661554186292052525884794380174638260608828846206722299426214709381378005424302873795661764755075449637407551246675404709361814179106228346630123385193745158538504037991357986271977389594857452327446721434485795211829453866046969129398714679894752088968433300440506213132823220509742795893387421702397666483957993134865633390005316474921884352257156893983291457014940780966655532487983005475531927552370534668369319829873288160825151587772587802443995866431996286918391363138960307218386409616999351381360377983659651935018494626588774808253666688592708391599346750844469043480544297722458556892621713751540378891717680688782016523883011465429562788339457072847273047051040160939581415554135108559003557101154575405728961613461070725452734497232961958717032336858374680100601209545748517277888981326488824619983069494488740111126523224031609335309514802408281576882860982376786432863677398505130293224763512366335161714545116171382604289139733218350981036046176666017782623030750899810817987784042638363767246178091451069182309676810284707430989002682061261435643507809228454568532540475196353946649981007134692877222719451047996937935526406296703427827106960285188681613901934614044217381541061254294119721719289275865662415655789760696453832197162509047510249248353975485594954713035427289797822069798760845430008689862474105936212171970838066429931978081836029247878261619809082058409338364696261013755014761429102484596088993043596098156269815253881080668361848444786824323636911485922747652132719635234413014952508543801609487500850790015586344802501859180621012967134042689164572079245672551807317151058595408647722305527305621768942770127972190742230273226364488122682551298942542406268649321702899574825026062934161681028782298493666684782691718513313671090920282564854506749610511598161171784637478806097308655681643394848376410306432040484396677851094046501108819294743347765244712740645668969912681704491136289131768839277369236829769327150554106178853631357372346564071198483953733786536689094252745985203353723010524243418455179327043031158307133152593135596671438799124954808824978315957288800860348439236425099370369155388562994411905866161682672903538630197917443112141941329269322426304967943723250164511582128871412029701548982880783904046506272982984517971768582441559758608504881319082067981140180391723356725636548491167249979999987494115016819267640841507635084983371928275122569985995400472415152956954406950289150537326920876419298097586160953820842836604976637636722309741034892448741699128282825128288802458138632308641897327622805009269265815156450733111719798710713059615403849143285868553240832040894164842814975420168656864583118767916835669430588566735677766126597502236449986166597550843037525465567408027884832346263376428853350593434646286894424236490040169772175131699837357826700199661983649586419068807429376191644494912416091265833529429813544091777200342933946172858549481814212953958565405513033581090730496012335296535910174584870063275428126269513758367976386580859569029843058989571844706481615060443327896503768193099364615858499176541301138473990344213802744634272054754449932985451693893783153049825184004130201308137637311857840769400202860638448744196315870098747905214732827698266535103111158939153332325155008210978961614529753920485902447491204849047960137998375872147692592844856736922607673611621487287175958711643581911841025865327791786281049904688271258633111040454407101606491418046447174133910953972835215830060783979826211212754734041831238454447217386059773748830614040128740604097591420846092257538985174072225064756178234351735237912030327806775298481896102686518673014729110993336481156113537099860470591760933556579926719207260565775375863273904289352115925807700864208211013936644985884900309056393379596839744968384376713313477728175631229441672729716704191283031169518978853626842417765829077301570395182693673026834383622116587310196306109154450160926837806600849831881480304282174625578972837908995744844564245015135654195010045245839473242132385311065654611765692949658970894742623854248560840833677341850591761399971445192862307944420301264413256934098337548492921401115026798924450277147617082354812484874727648525521743593772275142518041460912779587978045561022801874856377643323180725930529520869588948158678490709078706057875919798121832761570659213766643250455971515344095258658327251238457629420749399261579293365102157282420754752942327836654072329061465096997984594846470301266044066120996390069432192703913424757405523167588585994858385651264724309952791388927410003301282747607350666565897338506721245209797417840849665816050492418070054194726164687278952082780535753431908356041525251498362344692347352403251305926679470686256100441986982407871004378021208608534464189519740366451941718706700750573158630397781208937878625718411608906304481861389542766683973153170679599301860694633024882634293645154048268070362328874354148255170991595227968531809840743665566537444088778851853761589171129426249824706764707382154748696125287485252142083741292019601277049807718403771505882452949569538912176181180594766021861532999208606500801587370039917769191271466277125564639852987770424143786948764176500833154611043914621171747999163981941116613742983233827165373429505542094041766102231819979092821432118390638097448784813303718337389938538046226232823779086848920280586306590015030497434043652369524989802932633392401200757392626223375201338552769096551500982024427507575975429878965250680914438142798751639414372578956678848792114256418073347231520901286051860942437321110619819077230359228657495348419985550169091117445628896885201119666171988779164818493816191373708556637859849131049599325749956329480274992603784673511216559908168361625127486689939521244550301954678854007891476629160638711878745545129972249880784559118474589725123654358967311631237179079473645877713174581618540620116218746761064256757051725089740458734494574478810912120110828810060939374737776375517064732985366722890484143006666236106662384185122844514984828476001865625944027094249714669621515272331977429098477735858288538094235942629388305262599451223920054363996587248689780307891400444772190874294700877772613781941977269059794106815633251811132534908339882819128362003857308291312441243499227798488743299232916519320465021464079047771706170870515516999458396106795465462989328161980535077838690713173285894089364203140286244530243611125751968719706654644995211390468739582104303947609039927213154666969370427491084464970011874419428277457588423249805615612809336965882083196555752322916527413957093124063186156062997748036212506226992212273791274125573269095838435688349568790495301040814678710608756071200539804946929961663496455827339976495847770667236742393933621069317453102702464765959431653932422423740423894281922003387766925723508092411536063654389751004084259528835073337440230583439949006099234161132321640039879763171334295391042697162603841980762277157998334181838993831107674975945973713258197316993599083114322050094071041885252201985540036095019482843490069162737690257363876436121217758497687525287117030246723678575638785463418943626457259760620555276662823913028893774253214675330845173634658724038505917085288777104158197886073641629861245916895689265920383879850176207580503218813070580502430821814125042633559476378859447483395663472120505705066826157421546497381891830274771140660137738817304051334475003385895529772901779494183319347227191766649485735771738610176050494957651208759584216214489552371899457577140077205435541904993420436931860483563222703855958558577846827930556606399638685044732942575090688985754534217761708761662324044279700313192738880574530122805738392920700338782950310099971125645030369887763012262599564097992117549874529323182355491563774613182054228706414859848480972306302811831476841882796176863958943471752131074309565474210103758756535129608496243965936457990126459167368990300957971554380844461255532196868251985236670684413892651243462860786711656810368119792502336686443750985535785919424703738202185009081792867668275117014434430460550007160696824290032466011465000574836431175995161110867900139685634780822284084110438264983175656801955248223278212258168135359577211402633724947128832147061080750738704333269068182957026673815438950324417851267337392094793764730450932565646543203911838055566177862027003677058177473802630482259725861849602687793768691390631603466133696901857477320172291910656216609158349164545963634619957146490161364680430783002967645600127948070942395433152107176039090636922257589256437304672498898255423317730852784650485139807279357247389453668407556069643376277394128334616627428083045628638130753270044600603905825556456352491794641238873117674488278997312362776348272726156196500436657331023057745886395745727757973160631954997955654270473539480450469364608499165281267588259477584537510840433375085867223620081440613744145259180720122481462878536858895938093466708356634376020642815428903130671478416723474327452764225128823584999761002551322744787942137536573610247839276241890577504212653477143039398443657957415642177049750268498135212886927257755276905302347555320705958615535670015605138905411842972335774379709779682858799511145954994096030217608961606452094598912790964862765776572810685051773877856555156930712378597094389616767839817522915461307474029468671786006156377011900808022820837586883281311745543923092011629670429471698248968049596151116890206337163366959551431789517134614495123756177557908988698043546527956814881623180065257122714214550743795476379881444199611079674553809372099566570834298373799040830633824091703130084544929105038122764678443258098542553755977312618847358757074348262801699513528072785467914248483471647874194502006320494757198718656495049933651483172947634696830679526949136347355234551606110305658534432190642351313824342574478798072430354813927310878394315818971296102050161770666837146445909198595755582469023153877526152526711523075958463910693898710467215974577788388719347267731897587298302282007355960592890122031521662990868031097784720214425008214528917877151067443193275248106083595563539504033029199224759884816707555164538101370808619420469098874487398542621690967925968997369917341827604932234397310756758980078768462862890209238798388248465028852372474854559802256074400264342713261825770797499237985823655659961416750991043229998429655547732011552472073501392247090604939679779459555758812280736984508176150841888719606453389110593698987676756926288367577770244210934209777971704839626886823460274668164744230012693248302942885068322912694121695705162198731994359788494904820658281164547741528768428826343828478121685578024946591806363190483124649665351789680183018230137425173361162280773255651352622311759296791500041187461656664290574799180226322710453569211262515652366307660279486192923502755036702968115198211814895073947348288973557082225822496327959740805699292540821815550110933445736288722277267112147527802558929089060956531824720778941401831785576718861704672380100344583132655962877046667607286934175498849299508004169508834840987948925830589537939812681318338869243231983062119198485198472813228903251047563152711674705870291795572634352764530638023733976382538518737062147347852958135188395594648924219946116197022185019457486351640606229892636720848600470815367783059594080728033865362090519925642614881526643700979577274660185524567622646459051795380209625283298104653091011663393090786876692662891767071212995891789117916100048077495205305501234301296157117922219289142644122343236742142524629607910791822132720975634988113684439182867025761751879360826492995328031061772977310549999776437193291355660636740168952716803111738967205113526666456645589810434868742248396833262106105543489521257008759999788449704002602395530690942768281717606968993143217241215939365802057319717620769248665879779472853299821385541255388722651813891130548327501300710527979893820653863801283080070710897531635794985734416187964769419117083761931585236869159715224500593382265802644887916675677280113464660059640292532462157834171828003885519681823307784433003615722838684765309799113102686089522962307479584242283675867294984685717054108559411544416002619436109191721835412713615895981563288210529335103091072207748504402765711915665847648903087094172572416723048595606338938918844213569772196427883539279930899019846169078934728875236262181433311409089936463853693866039014472822219328983413124623036961814878524214151475366656973182987732727398905290925401266067850466590851946271645212065074246121261912042986669083665551011193967195017357524523075918824732139546710569571849170303580397507166185389413782751546008255692916380732411290073908580444890288641314665116139039488974193784314470037373377481153882621917345518416859607592571824080066660977847961917291258637799548215504730363588059907255783726582402740991485199406022542076429962275274596635442474674800688487686496710542038254841394140855350539736775353354160745054109754144037051275771146116664927443970478170392129385956985560348112788923905816785547901154311233838454913474721872780454506246891078691453119187272040285079502033336090416959157758297720653764923849580006557353907974825411760961930149662754362661325271145856300257689943872139269717528905623273507597075742920377944748178025238011717813368266066930711907991722676227969330196751609281118165697523022749948837594877893047073885223184204516718598400763405896011365826591161872346594591888445776264887509124000117175447523857302147098229934923257412732295334854126115985053036454822081559258600231625768672659974996235141554983997679720010712380162486926825988590458679745549801308619365617248758699752492933045988067053474437740405744786835280047201079216978048247361328326298558715675901804389482920150537141984777433783832724620806890705208843675447798110416987664672788566005984752359008756158686315635839048358635056457693864209667780515515453951198266594781405893333219477377508687800755993187269392849145771296239272813321855126216246147393245201902434180915851299937773799365495141212307508012098058622518677941431793210029903826691993131509961078233176979283147834121556667140589358986873490169804559649824143303971732796462494474310629474128853817735776669737924778557179906406301956039896420281592519856734464256107937898515905102242654064959448613170047832595595148151546737459695572167106056966213080467910206165961949006420186940734768728116181430755944074113489277810245555431966732305646114744433018495433982773268454237710989734467535352724769923293894221357869324301848460292854322679581094834662435366273557613864657048578383177353672395646859271348339917488201904686225511043019590474850922142422464704225526380552315174280786655801835019733164608597359858580070693356084160039855665359868859354718367820451383406542875527489146112312468818227476569715585808537723709897222386753470238379261882384421104436471327714292244079482191781995359891051950641111956174019046203340354527681889799654442342604735964426910946223082831788066392236845245656192491546213122019333977581964864631692529673279628874704851363602757158351239865809218559648926752852239171922404912113931353956389282919544826350280273396672021717490023243843925184873885349335300309774574388308039420158957759616579368709266684041508096370197836427909144918180591823422648010388821060429588519779567997055906543548440361840923976669122703962016914314227198669593135657366333110887610087636124952191312952830516329159431351687782395500424410213958018068142365846514066723481041857728890680772421304151558713716021649924327730438947078190636475774938099154004827827815474712545340185157806306673047532738723226463435892857941657095168649389941292565007935103514115391369743824593899496333698623954296969635458640376541662723979959152490829009677852002624290365592454773237040444568392405774630214494343502026987304049665662082791794822069320997184483906164457876535271535110589948655069182169760522385294202134433208567703987795553382012810252769042866665998693022229063680821957588735124087388009957062476443169266612737758202304678850347064646135918515152160537421337812857519090857810455607810888614290626016623636431530818986026630824806785279318679969475270781669879537014231536748686712956242405368052549512854243354798079483486298560967635848837364225471360150428142585499229092077571218285855555438444843906758001821139364971554663088532731291595538471141654159743203222174131753469776149417825969065652228083522877532242038322599594410095860311011915588075756021407312501489621884252049526016835622397439525470154346077733797063043826770070059633762256496065665651230277239080281748554303378866200780799809069062774462057944127258990193770539839149183574862590936375016125900932934013350520969982327290367232825479668632382369214479915906527103222977271998060673809778409482971845118698751095765369748373412068351405117439968280381286586226158337262781560607418494489056877554128416083452967980463871816994923913013797575628443504409697527423557678537669593894114394284929579614270320499394323618943496859460235715035787192288543752594438011406862367635169980468988952934487966905797157457874998673749244580201849025644846245027710941360556226652923661649683076073098422097387000809148457420926072975750171064069570485612943526170815375981269968842675818556341215670000460479944647602176756221535356010363205374014586184208644414233246070464339880633943801579740821164944425109642568130870508778660532766048527122702682689885973911045024602741571322341767718893177460170069110133149038667452067748450390456481808925942003959780459613107013059968594886308083362979436234477170109062335431071250591147541208816381819197066628691998103521040623535938138265143694839201869774697078720827401450690046737849453737908769550654840209813440799440014655443640395800116796740568107603157947813010166678138730390384780926393894011607268510064693606208454784233860410265825214260852649375369224188527914246560547396152501803873721023439492170499735920690799514247926906537291213018320831662238543566808992395405580423736072177638496076218244679418804317842470149438284993053118319022681453306816392885756986933056757196835731956993299925428973651472301264293255443775679885692202710158916395335463008423060791368798386752061302433532775334588324321583446321327271524057099490905466714391976672104403807181323491522509389320221584631543288220440126372827780937118693722856646214297719382794642563255561365432259782423421805294369458256122920837876879994821321098171490419568778627408520810777312286264056401444648357260557188826872077754839036071467417325475082042889276448193021884299543096621184518733247737117086151656885158651509937298871228955395717904236019436788631681535481596139184303684474715272801136636040831317935676856468996164172049281327805003738355543149095306845863489017713763293809997904693663974508210725869811411569039676629554841978011066877534809703053733809670071429539919986456246308935809637400753669846230616811083995913315710400960456631621310918304662494954636025382993510797428425621839113238591609767492363299610453193005913871952525119272412198041257029957647347350796292912615033201223939075913357589610974201586945714187787715630336101992922297384481193186879794109415512367390282342606431177843481818273030464900096511470343234048067473553794046987835474675016267180344518839460841836274695237187358599109197068613546322513708885917587548277312630167528779717581158393299509032678018462019167592528350944277505698457091129210265859093042629282864113249048708098985661091949036724577040607860869951841004822244629332224893972047120106256069262744084203594369938855726860322294826691588997818172222445638359658827089693258192169490453280219923570434005179183819968660416831571570863577164006184370449988522754289624151188023986319220134638567418578275386136420890563964360077666748495005177774851214076269767962150143066956531085489459539259344112603736951575763757586456331627865223503083538876431675853627876017442141089738815235606637502371484462909210839400476633753062022877441613548694671094273080511715595314786025109933926006123496658726077530921367188952483819095844617105404200486666522231872600472956954673359167680201008451432976316663727660413438073830463506471038620497421460360503181189492424105062648064651981896723668363512722223040292248363209094301303381797275563190354763526999909098882216508447178301728990383937581575485463037625206689639513234121231329400895974500968945081281938043374964187545918757000129683508115005042510424430557312714709467606091341261272067611006807215508647243870925328614827166837622760736142737980057506351305890772405365769940430177713403553774414545650758597506981262801417906999749296416613042437690981290118481968691623215289426552273654422390180588589672430443619209767034544356869857478299050355015706030615891475493935189807619722525856468691859660141284932226981084277788709775334106382596845319016014792457683436820318640990897779378675473258722749960508073176698119824499847833081069178890949711373318605876124277854916041595822203230095029605296163192952572423800477281749150353563715690247665053955005827443379870417921691516909624338745468353008874771537169260917293529288255437884057983803604573353120381810382269550394428195390368284771133932284949078138308278093401074070573068366968727792100776787511744678746597570146437168947574402329414761565224775172788150735538102516049553658351631357940255677947695324011218318323679431977866181868190207503623742328709623332994468562084474037606637949722606652431812113770125715923946158080398341228332438395990223018008213147646923143396225659324528804706235780817963599810011518475430930673747300536993224492248471920628873185401601563249283258206061213417615992338882686212834687736645503809850056697197818691888522981898895819675095529529001351891471368938042168820427046564015915582483741234845710783049075185501628699404929617581151167239140881278243539443764025737518788027796162845589963002722793578317448385336481268444599364423282432277862410487508048557644785517665425726382816537388798774506042581535745311783553648290227848201970062216945559237911607264243486836920610471735460252218936743891855702845639270462380426496987135807375381636303998108783775029440096589366630608864286496466425168371397699173089099398301820779208635114967685207190420178180102077536173636853419029878248758431339176916383779803110359904931607440074531118279967949651873599253282634904825807813074491233463359738497111181088317405033249732671938390830550533085028404877627405283743000003155426073722801745386005346694938818857339128807734886599177946757207000452254925071545551160597177919727607375833723714568936264293285288527763213234932929976781847644702424542973099674688409054180011767678586728486475623042227022186431315336348904673272246516530729032361192240616330860203898670780674528556127212696245217351147900125593753469292630806618061670709205608386366549257471813957791808971726945633049901828458782659565511841696187080036968328126122584102721343960850197303902671347845058040126064745582241428438461129653245182454871615826002578372386586773034496291079417081613376408459476581848694681135625689149653901184331890434375266275222835369012979429282566317185102726504784460076661809449666142480266390137148506066885253034768428248418511446121920893468811859225863543800783989890194230789685094609219488431904587680217135553836187201453684473969967871875966148264357818559817845106040889395617048740700722744172816174377980622891324761929983604015797804003223473749270034408287205450100247163843400018904324773340949468898431732546180112289840842537961304558816895160551150457652522157278284785810956226480783803158717529542149437105458145231634589287470303936611695057728489601113838135076933796094607412133081954038748956364838638708851004944879588952203178794044062031671031394362515312638193994617482532537426424241255889142689008333224990264353212545148662879970051378393415843223057417823415521823324596628947766659166301474373776375670366336284651765950237073394323823808768963196016560955461859611137389461260307341982821448000334014347500895447335222063290096824332092545378950585442949332695517508838011144223710239087950411572822179905607153328898410566594142571461255351427250275551265014141605856094369766667031931322893638285332012025619159149182458631276184272611403722777854175680868747710215551949822169766915592982412421335199486392367322644668522146061508643775451151103474889445031192715169266851089523251329434505465105160714551266770775771869952732697907469834118271159380834890146417307550122311158511144368163491183760632644622848872395511282103777371616935155123190635211597666218711923772571638148489750410658277331151235779094652250929264800815106016888612426199181808014958292587100764768125198900260804181652352577591791801342065589375318549139539665881345940086575233561572695420937583495761663742423086143483701609835178736124763077003542500538782540207664337060280656652158771422686687364187194397696468646890602333121662226704243702232037043850665816792129615331231161115627007580133246330611687464973191260268065883962490595995468733620326741205573694169058406876211830906188471455881141892273810750488788804631096491066296383882168380732973912266404699548080039834179187708424217975743621621920538295841779526024100298697086841714443419471702679882837295371362020073219748769786477235021358339954667183603995890220324854775676315010898809990143387809254659646158620498342386756839316094789096426418115632636763580393500267300873909968984423077826748565901357084285567675110746938001493260465756441237848890268013663094838811423167514250850142927635547809450819548549021096617821334624233914775354366118846466316430249981951629113446621746608651899962208834458899528423116325805944115816213382902873257997173271575224694195322194691412528030034660030902480562148660150219876231146362149250239192059293499460340382813796440702976088701534185765944456785897803957671157313731529379532496222866821347216929461616998971614856264284485235112500208052705710440091115136486592359760575142147804877166246737954110022910637935197799609557712825814034769744126666482129344083751063209556718164104823822290544256072886544745303447044035136748962226248835610785926236539979663162323870990821075680563350653085345364518958362983610565526401677907215085827763951759100270246732721777332859944956942373257488787529663772112395060446352623689980403041150408888560563053540753885795538686745274027813983670451033429111956475897537336810243179772605155218540163759083676684711905937024072029244496866668798747336015889689693731170638948768190654415329370453950100804101383533157313159030474377420266393117471864184796397939831066447433907657083232131142660911925037908556454833620045133667790923117467436338720288719048281164414696144161525957872197623356302028204020562998591954632183774547017949765215508975573915174704432008567614461154729670460569916708430600977484410053372767430171357028955276698830817112041428235687845235916457020133459672834241936391630962392608277809504235463527259315170626885485634478259274337135534909031795348348803410482345338705571707138900675756554351655229546877760758314775184215098584301461879232233684142988411332407166730535789280002426629065760715857136244090923594453057662674700436461812720151694123935299348584691434462448611832211852800354346029716123596237376849281220201224249350099513569551429164232721388326282192195746045396747567073031311858374162291216377137659853679855047477086928655868422586222552056249187575107323121075603413055052820247019325171311302675442732348347106550892073777737947046194961029775150938723144721351857156224448324926585350498056875921668374380133032437105889811624830188904338634158113956155622277243508579913332476243941239915738512654318796829374522440560219490446143177530555418819799658444255908136894987675210733192728892074101461195046724449192281309449276051318170179278503074913246552986964163122539961776151288556823014930322137527722493216723436443093089882226094835470736262845977622543185022054909008231212485008099464434261069792054660730635595296384570499790231269973847825381686197653599930120485523028457574774122696175576840539613150933714324906205730686213078449814151096123220631572860178645003575483332563754583203624868185565446671676592729582661136217197551165525519327103885097154882514603837855385939710048489527497356808457262927863681709814129422453759194427133310930962685048731591189400613705957460096384388249184181563675107962904637008295805563279122648095740832370629196294518224292448610334756168402682754583033262636400175202429561629993385159592667334199166349442883809901456682228892761918531374958591584996549044089069947256662041869086952329363382394090273536984851338081244301880015630101817173257083026174611334443276622171591696881136700705844130275377079689832380425327194853547934898920391506434190289615334917632736947747293734750971827599591700006169745924258765044455448725200955531518988892507705995302708569524610388042275548265887742854974815828622182319986522316207243439845026589986697298672174153908228228700590119226284610159391581612470414611409588771638741327065870326902353513228895469638001216623964141164646790095239100224725117079381985674329339904821386734112526256620300253420440608229678583735122036970709571232470971356439981878640743966081422279630860149591793878277742942793645960892404740810703679632382203990162695191916196694772235553000888511044171260564946730023037941599861090242657911834250550843495176933493909624411422822954225303227677143966204447331937820972887242662391672615518552645329477385323227955443748377719063111496401925290033601345180662478719834422317069123557156488030769604171670014428262722581018168420355297005602011516657259402425831730390717134265087777936961226072039025920148383251365553718840694413371553709354692767654329761489509113127199202924098153448148297293260573048089424373297198113727751002180898851253498992892166076392064137088565498368681478439071066389338238133382394610861642692372459003361899824294801232108006183421952258422267595046047604982691290131096173291924872671259747001419542194296012818533943035938166802182445853334540601658956277606221213521154505721936037892587431380067366383184486011327323747600399707463900010136012971727437299324549852546572235030785996896059270064264554573155540009803848564382669274027120888691937211052612532406081089260288076318061862103166730186775642433042436856687460241231921306498517795131401139261404834181234345649615237053632836684822535402591424724902529821438588467298425315240645617993629513607892670309256109892820673038158574407384328860058271857161388432079760803430977153668092709448679691545657175944746767388256475493499634707576716561477663450827692708870080290888194019876461563858225793550571384472092379020858527630563893327346525088587786057776659107150128400210952239515557740634218475385698113564386690325477215742536158978831266095294026611082677912393242891947249332232640782591501939058964360526633213301233725723930721846701446396661316505880585575501414182706043835273213219860501779055179168480960222055425643526448889989088642958680063777023171820845204181301228885541582597469258944357803528170336561573276417532688079407743893636795932240838379841559822214571308866318266373749803229351639957036464580736753377434685858296893762550787899172416520800229550513806613301719137245006841178842150372928096069426216580448432946076135325407347203585558016972830164382921230653044153114340738817178551522902600350334429585036456141883060923307396839698871117063382486642085862257193638232735241272212865241510606320809478322726675300500456307706157166489219487601513584911277826187393017618955686748580937992160066495211741860613929919358715075071437553562076631659991121583068832147674861481838832038335462512999753120134142979262559925098647823454556964701748351043778508606707780579629935782826766003110122924502295733131136916756117432962160798608717858012507725475704706322511350963224260655874701133443077783132069114041389594291515496513955636056843804034881934368618048541310795315568835734852166467724954298365558876851463297052695414007105554506213955984829560085321657235864786660546284932095746597425570420544787216056862863716983528862623556852856427235724883480494760109916268540073984219623636130842633728824065263143670583786984335826866637268050070644372239306255131360841342470416418258108475993814471587953837292297190649104650955500948259906185792249822691180398997343365261389585165922267683546495318756478337273742382335008388855766562289577323531836649644269403547215882171887883005418032718381794144073232103995263996662856081129129390008625911006354753736691748426677345895772433440206426009181424699266257914755223903654673099691999236696606621506886961634586357624244370018463546017959007709502584053696825947511142466446543464162558311111121509393853666387458632521162928588129763279936497288353100805401855160180978029252384511836988516601342710941414184471731708257330305936065749930231467406948313092467805739548145831235811079965378076708852381393726941469895096334014332284500454749492731369435999478864140015444575167759694339179781164727968059702641018924713877130265648606211787302749101355820138594880181729218056931545629667521264678298284439909039953074936217347598995143221230621483585702200443361898317782896186252523231884232401374459077126321211078954477066511382748579560390724509866245329957350066760106758404148073138467652463479107063250028093314773513444015745106912852201225919767112934556044138220047047509898950343278555654925875702600540462394038822220037293557272674593801271724530843302543925707660626417016647324265899812866007667035953514751035077746101091251894701393027524668557785770957201399426439691713518246140182089490770852000183288045545943966315924013510067394867415091745181358051816023826627206411846182277716910095541712833103075736791632491508852553976664030730976308274292570031171275089307285893161276151268507918413239649670222877642664814541260697764745283799132099641548785352569346179972008106231052886005708288824979186875697452361035651895510692928558407958390262472777808565605757941109603273242466159804715750811686340049494986645721523521004563738444985244905624698705378270671854263455562808953729533408211565702316834708247693072091409148288732050916877848913570275310245345278693923202314848344398879850772947113089475462865565751433520502753029020006287830572103977409844845335117109282531867869562267036576564906045836802218946717098400995765544649631513256721698103465070822577939616747713593287397018052598512521649763531541111558476392813674915375604360093283099843773919621927999290508269574904003102881555679556410608981350182904553085341502043180584217512141794520298270623678487168910977360970847682376700157246362559786566118556052966806443478743686259414878240217174151069386728699317754875292445112239101922099866291428319368616581746924186023942563192962554818704583800506917227852505354822314388141956526252813927741383183986158298643752588855765964065538693266286160553150276831814489406381183002320155641296441267228691059793667720398623707376399877051491607412087299013995400079654429234331079977825417381680074355448350787035848596497380241570938838191714395459510722811576203442623256892985543113789812249956968189719190542629359578976402168410781905812891493033775005548767548407222173593596524526425889135366206584700058000902691773726923276051578485407397243978194639194235921597746043815828171351951480653048494403463765772396960419402502956033652579096946171943930216038798937018304294828287871150977699138760095234367504763919666348044223447326618640986681154627369127378669290101459020086427437090831377881756413368921683826542530551814196676738790946490293942269209125320478575521282755101703488671801781680968514264424648459286954225367910466238427017390699430717525447089182872305221281097620846901963710576071051202403272548728954024315158760585763988628514362441141418185371776036740075171167043341516089414741030956949966171632055512905707381654389032842213843357414365102000706344836384287382797185301401606727601583220718216961658117256107373249910921804289917123460358380018527306818359780579261971303697004626394081784495178325004736113696081793679996585988606085045581541941795030096230118481111676407775186971903135001143597180268596582639174494468248457992521699753643579948928926712452397234802683261561810717480128315157540454401663506332099887102281083775274894476298360854670380849027883929554938247335604271517041105173474068262306235262397887845449103207303461364635416124954348008151631237793407987524515685614977123937595852991474235720697473992757020694518597141458069365800711218287093850540118692142155143007992938318203306065947879600438340618387742590891367353178145507746828448308619669138328434330941262718412171450114735202168836474548221006735616140015013314398490135499791330830141294345767916881862404826305526085205085180238254744899118909768840182298012057766552081726726113052995112693207573818176928800440280721631641352601240298811846747048503292295420163772144811767869231460475118388451844310036149694861681198788780197715020335926135641109977789540186695299498381260070743880288351773955164032853210530325715596712965051599758189493645410600589810555001558068148602548297943836902895993890578943293008405151904492970624504076244075307490571261651652922051691757144784187749235355802158713173015557269157450370454927883473136600768713230220258532274504614059644812847237353144251046435015131037660396841612991119845226479126126166793114328297963671116461605905805040032826000309757012980205715282016493337057805300177731934461385890313854847401859458613736978142485017101808904671507361496672788582928355734636801518145589247336641535483465473634870135389050202251497096976331014773526128886168733735814190066735126938032718928996606191584146386515689704889381758714044693743426446155830137098567299419571099026172822302592060458679551041024508097414947985939692356981744884178746448637083321001467207293042417612426939658485679519155512425640199677527739903603553327878970690832603997607596205583583625403634865787502802291576283541419614871629663791798255771411699282346673419018021390791195678631696431704532156353718321817987207912036274886942478551279603521034281474910526408996521638292841726788600930959974799810873082175247455390975237788191966036166507539800383056596910694911870885614964927889400312533689686165682780908365724062375529314966081577461972148283316482725860132747051858302214133422842620519763347375691347923877906071430613398360758984472573433502565302777978240062673760228510761147202331099105685860485462097274972137832357701500895125019953891680230742031670543712928524406468887180873578784635302535294443850157691109294204348237202528174437378570889908755410640435906441221106953328393082979615657076724016315561591213421502410424197188634350450597651973847992262727469184195477856958120821187889402642875644477611715903488049028552969537989487553525268825413412894104913266206285283759913817940570669408428700724178221733738253307711296198474770177080428648023096786916919833005039009957139899396024615893085855024528613484908482781994714275154827110821722420089274652091255045572777856598668418695994047839857737425248504862666940745104466259305943105645352093377274906220470429385282207807431343723298375209132061764042226093020028854795018824677024292384644545756164227439790378294021818060162325348772497139153161976904499991170467766215434686881850092161888772696885283672633095970757378091116912383619578241863976733321056088545153371713161353538496704264566153773561676649907701766917273772073532957549925122027380124713842538700448046360522197236431829238087008353625612660098973733112828834342093457494905134300410053632089787275073049196929184621325945675492322821915510902660231360204796760659181845044118214692257096324174182420481839532567786560151996783131052302684522328617211912121507891975568876035420780750211653579234704236938562433384966960002563577919662985322012645582507821993681843043391513704586122977919366141879118626017660185579220099141732352302785462894421958411854866538024573726148934777352930573507588654665117710456120330160280509016023892284173879848653326106668830955532538483309979861810686813942606196126526757249012757082014088274313043439070442430081451616265420142643419162995722156947688284875086974187001221710665574812640276162135137589644233542512346473673985625878748469394351053949757390840459309489854072808537414768836648349016865657073438021685494538654828249738512407217983882289667609287557770732026992672001132559439278092778930193300726539724832934841579213642832620404718080690378018232600721828893860679704573228245245095900967655585429118645625379148198709468233225450569678353738634296846905353594123142303204375068403381467949521634389045094563449611934297757031017277967945807037848924157847193788237449111508898861717139379657137541861726579910216441023652098551335542897956644481610013579579275405469538538245232415398451676585885912658122792897079995598119131159134914512362868619647687578285831005370921762572108022561899571511425176704918627721327264483883172830078284858676545232574515833980455098576925227678263473986719080970510987171860605548379071106234426252022202074752325340472587742357787229126342635463175254082775205227995945438076944511645711695736199632133024544277263154626991086081125727961083796404912740619526623982404390345844922234361507046439390181194299209145037074045332232074871791876115347522849117030091174251395151720173846420923549775111288476273222526367403811677458531121008219513795389292413863002142855114860292929119946052214354659843489627810617440825220056305571152907676431370903838144494682110343738312798139742904337657344895851662175569948833139033952639389674441987680975327971937631198165491499660513330325990540033640736995206412189034017429654802124026372798870994330252151884487031257467686473034686940318147865692957569970303064989336935614115776150848119862419932461595201612673143939372193268513088010354042022003324640510627763044164677912018157267460928625800829148647357967044541094448592940419717353632206048368773456346174568163249912565131809275836161849605252495729674026286758615268699165444033468448705096642676914805059267975707855201993440794347800016771335792238672185090679182175271267267156777387718946077581179936141879574876702793343793784901755589350301441029912905202723521469909412612023343346361945436568001213563013570197765295276219878747283682081511228127724929231892870711478958981388392877181262950162428797814625959339356913692887973658513150936440965765786297410242072830041515665220783297445990164235737360973806190503332407114972352656511356580974580300346670212788934923313836791135725169297581182387216847553504868157135776834813707067802781548133048081854608973596121265898528708236619757264027957383439765786632000437481787362172844653718675013951437326297118750494343823793389899370849135204722901117975296883850406427504821303715359750498463360339837225898589868934792175847902819735014996441063502555380388886410252219761783260903277370188003823872491638946395399452467644996662153743776537434570777315807176949032441324441467995068666774857954320855621523255918096655384364594774037803374259239968171031126536838362412858435443805131564493406979905452248987783255711331559610246350499471389033746829911068203966686211980771523382325257327902571659120889587582920638261674540367784879952851423257670863188395403715725592229609775238281707734020900571861423004978774959656744623311989988754077116510592021250238850648352029516824585995948841003009513730818380896802758223529802969201395147389908905102424658413597415890415098590513197624782560756522336524151741826409353461021217614652893108983138474657899059898300873704447751932165862406869075533902334328883454160255637620932283222190755781407765031832764573919778759849802247107837900059186086396978129749472344183218647169469221504749257856727867497577225398428783884033877484997486070313669227823977823611888376109348245811323563182528647436356106386386968875413179701903406749724064973046017724543867979043408290429814087180728953797809101013531146859768004924676040424571402199002180363554622464834406353279776956792307529207469109302219503721815083874205829921298339404257821155258113269519982240285982016366370099685818834008789432644588684993600031662102181767969824235941630353015610194182472252601050617331575857495230065494854607512595002995797254515948068489199378503801297511783755649158016749968741717636532596058465912073021017087692729473830577274495991672270627350762038485799232186894202894583663287914830207940498276983209991525588232041976073832137611934655693169765755388931179705378064352467561212940032439805632531374516673948597172876310355435642945081035705336280451051490771430593722244673684603608827165653543637507567343431469604383682295171422840912011979886822310529663743152354822991151148421569303749986195043646801345258703521141914619318068959111391883840266998984918878792353438748477843653333310094732992956601863744632954728089144541009829468924282929209620829378809567125069344564903446831322580068705423851101160248920874944612836671258167179289956839399563790408363534779545611060734702494037935252025539972232668629981624283852721980252318209519257323351631167014958437516734656319041276215046530990924341167225069483298171439167480932867865000623525896549357951943320014063653689708333055148621972243444591552458814667437037031910302028617452565441085876580369614420791826559045727705160948727420607182349875071625736892291175812731743643311132680926922103004282709724659125369904218210040147591980269609266579726253079883385875099399624931326931194020647339282976212968293261227335324507776434896784350918846725291014897028399958979038634934462435461474793290128929436684747678171284155920340553241011090332143883231928005080749786518339821187112848245446894694865004548300671925972777914884009306860279118571987091412769073556743467822852068696082010425475388028078197890306826663465082655720139750745127842977811437641452299796163224178565135540862881157906746190551778667691876494084259118318582239190155453593711894994394385591674813546087798983393229984846376800499549207294102426083732892210018037650510210494334891809320211635090785978548951377998919716960288469060926433395587154445650325401765379936112473729799027816559829594773386907323464149984400146603120060752099194948280484595627843239867457279969840871377690449116453346149096048634878796717502855372886238591239342137504948277002911853162403763534255575629502214031297527069394986354727955631342998114659299443107546549208496122564658132673075847975831723393520426020208057398532847918598265859996500209060646190331789735271062281706059539377879228796300278488068484849043899142577578768703116907940499305139541513080145220266800053477855679684570798026221869493676128871836789051180261738598901083570788648090091791862589247795294088213403675424737697514923059080008051653241126747595019763171269184251721028547631703755987681121524906216329407981038686016355091181341946516021658643469169240990450948056589662549329281162960389847572823021186002015776867918924605252091931348722308447517071198737813455321719721751237483008227778318479705121360216905735014874977395555999212949741088313437322301333385286357777509364249766118961571585396869410151925223081786044324893190791990400073131488856649920271319534730276389147336850092808465756869958104238496608022460633732914715177025921205678570841060459842809596782621233621384915312008402994636358485364093249834087159881489229553618904749939600134692210102653545353764303656442894182830754339536631801718738218262446388760124762598005235350369665398062567606698710014007718927809898312094534061219515392440289907145518452782162590863906868893159150291305478509549160687936486816648127646762043013845710454666914183278031613244682316710952273101765289977436674782127921147979118911197813824868774860083524996009160436770008314811797230139003305369246229165375837347915350707275528934675827808223449985611284197309369605048953868597905811045666544499199830893077987798173744065376442989174253624393067520939331657374520173453921792727866836308028788918105901107517119814619745205270640261907635789599178924184204435810516258891295539053473051277571038882577006647139177218323195219655399243576464239342193674000113429237564721315703577504748820998678664751588605341421366974460127915307811459717632020248368913799417688184628898512839034223217757123138045310943840240250153335332739573645661143763674840495016897612762400581394351559835554152165469617148986017406764936755367153485433671926510268779160423890710188524319171595320398826324468961819860600699882270717937941341443702071671437308018236882798286644278051695614877116815299784686831701544136464751613941780461188662446787635588651186309322031658884818398857219409382781468598299658697427260567785069875663113064671163559465423940035420483211553667207686836029561056732670995217543499902329781693790072139706705279797197603755991439629154291743079390990979176463126067204062454016852927158594838925920174979364460417469941309109433368484388718753586572961936712792807904749544150446715436686576724446461717221190713572322816231090023931931123597183049101891956350963453362632485528753579505324202266194500722657848810538667541841922742575655031370491348381358485588285896574115764093967748239100362357973689438806775934944887793905748273737999783735840101233482782950271023392613547575374803361937052966335602224417234093355833483696960135446983700938974189409163474560701286476061315530582165763288961268378384081852568153682034300247957202782231375848506445402848249777554092955645332317168769758614278654597913731654153100885814872652535722976995523979257280094145983068184626781183320525878619561736582308720774795409750491582269917723087992398505054688868502637812656491085524479501001638126696608748954690811748562557936626378896467742142466632059937293901559555981050955904777482722079610525358954867266803641990000992291339460989072821669748387491035955563576959336964281626911474988336315880967146281886230639000425776878888739411788083462138788109196821122993760968688969651507413312450755323098281297679612275929999941840089061653642937351191324544513637877063815828123058331400607912368147737777803017853404821530077072978235517086645686890998646007110173079223918285364456668627882809669278536146070144740667873252750701576786848908730762942214183074580712564327179514197841502656071355424880701210852622674234065660943857531882042340265602088836758409234490402692539236344003587811847288190562410019555396343546699367904006837601121233420271594730705222809473551853311336983529687373737431698177199516457352971175709981184812694801823735886108664534088297381468127889736436454839421198718115594265075034369512998888398412565870918895754970606466865431684420057864976824495716450160993238569197318642923317387918087053045375516888703927033456203064719554866370637831962456572444968351265650620292297425372276653353875566262607741599724230898075419748642046008512071989182348894241158771624330221903238727463995814565014950291717605351254461847914211430212283387252482558621847464208436805935462749047425360426387817523448247841965525330333368469863017498495216084698784784772939844912905100417761907556588787517586497354105139601853616684545600213406664618843433386915896129180118069961623558634085441548955569197754694597954019465019815539979816181876010023388756404947677042808143971016593482457808748470368203432352505108893243460402393613253978977736072539334860698549259251154235446569957821526510902016563696259652533942041350179249551743836557602990974499134166364646934467231203339844412791199249791578105374284205696207515834994794231646839109549975576355983162385589413405093295730747731854586847110108410022618465596083473152521367530531733354273982037374279816962444668674072239175249150992337718389604936001672942274287428596197162568773387546144366435451685448425243810525515269106613689248931062385607788422108751853935269039134852421095035804599171212592624245090057633210747487749498557879485789919927085066875833085693917691909687627837875007136725610112599804168860687673862474028421025814329604119372182673790056705840441481377465627325960789106940059026173615737311716752662603855535132572917845293764561512460161802476501372275820736479724316271489774150642242824156539399568701912883049776721438098104538187974347348837332550531426170496095095426441844915511945610841764571172758932694704068216592469815411058941200623595167377468767720955774539418649828502466235230742606991426676103153445016431949377054059919968249063501199319970650934355092495213699246540673295478545401824753927887770504471135924131992588128534099963017872813050708335378660095349935578350079819130527966938288543764624264869519677355094622463120019448003327968736032870974830707196778385987338074313675511099364765760762932867967581692085296904628457282480067340501327040028246946630265684385186699862569284346294463958051690053751664295631927613025125909900398678670778563128734472661051505934989297804490346035757496628959213067404300802206335201887509014967127857106484365299079924894207718170582952431857987024811674902389729780765996795324059868542452203043310634824713596909412482696185411703261353778037168040105229429337893801602899929589916897786723590984787530468798765612385075080139684831069461524574631855851473548774526313710458737936670071638249092766831756240363340140230671810094746727532582426932699066352006193087242053013176404746922367713554904798257755831467844196455019426273312887734113102398302634155679723660249878366934166527328465100195448325906572663649083958175713577446371290492230279210652963186005847830477852917633498495255269219548794759130286061395296355859328835674224872293842792138733879973244121069081751364899172461324227349069574301225426629171490685868548982948419018504598499423901571976234329722466695661982195656004735276074023311563036751101226372737547710600589328126725868978472276378155726066240275638908465523523759495024259568880385430397912963256425568955610040391335214057535955468488034444279776109329253069905697311108503370858530348611886740038719453068549642684932818471452208919225204992009849278686535264928420947844818847881202445791876284575576282051245502105251677027339791991621035056918354320180376881159033327128226108782131929776613193989249793043003430960362097459950251609112673792517204219411470130034059266074726208580317126616536814990868431626580494194491702817519596782948500259677827143479550978861890300785510545754811029590498058802627761894421750233096558440162567927025637260098210221559635141418012947707625248388832569063150403944164013698561337854110805362606680886354936105027397481274343357799133427187303170784657039186405117583007899119681919215817474965475392968388703942691922881131396982522176579776221564072701464226214778399554269203835365187872528742289947178311634902024028841074866046178993460356556843690099175300812515920857595261335509833408072396964166327373495604647269498280872793513510633809882198848896678277332258372207740792829012985890251028213261557975458872357834984384507919605643637216530348345946904132956785036741139567458896598250918107044289137520477070005711456828985288689248837220258128143639719802705451478541374900083856695945553633474681471423382488761884470823334645693234612432579058353497730288618021053684162806627481278837317787533994899573300107140796215223241146456976730227775994471624683262811072887348309919034596517938213625130390471660306878093142766016665353663046542257868901311624681006145266319564698092698637137397065314047041980783568980938706486480642481243976069280454022829096548214375044435221138612830945054123939229556568703551008668637122114537991311391304264757521347503896246172377901074362817372081324147066544026162714523528549466782480415341953954407775045008357212307961746192706721493841181121197039915262577035524227999432717453721676357528731194557254624196502577729229529192661012474887708741691609625558269367066862773549190676524801265368242112205091356483753187091004927351757199066244507504374393584577564426036728558511730130820008481645390289304696383229559809552142947992901179519394860582503229865798318852590553583206442651240574286785101509723816210030619191197356822589366778520900972078169926498590258045614564821506673760002520251752664624784819899515098872363167662593895241810167635432842682682613989276230446694050419583945474571802307529436169913751148706921214944031140704869187405901454625164527352333616266270533295481784252392626238038060503630180291339106523441835148977684381407367490156419958995602715007128985259130018864621421763038636260829661022808813855039123380079948600491202210768270182567079658059915910759563778580901902665887060269802106924979788994288163653770288392908543499511430660699176525718354029294841799758511654012171214729436369238306878109778592905085255708329908960172973911144898994073763577453844959872029561665384169186802859681248200795741290772594495452201927221394365672647421178424479597206133255257217817200145773072096124262159653542108659876272505790856455169598361118644770285794921813967612053084406605969941413561245779169355030616670503913121596319435083440450060394848404802766338435674881966543730658041189496365709313089661661359910255750490231673609311398851482129270436943862510718780387249356457540163852649652794998929599486718474592354732834722690570634864370964768540468369727404838437427312871922828425310311327749915187521011026749990587660819217010925352486016749232232320896791772606324917260339542493148181697828164999207688175011690452007971822528295814691343614344926768365881211165923266759575601702125615744923561955008652687286660295101953290585138131314681336263587061951426575155031137605481549268605709212277919183543183407623911637615530571282598287093901767252036564182441718212059340759705515456973571630359125244768301347953437457450633022251328920358063999018113067862457670426002324496852223069579932930241564313514647878164532230592591925435528569068545038337360909294783321874306255274319746713940521685810830947468516210172996046791862326986880674202094358971580584604431143505136172722359884620033711409655691814931676793061958860825818719922634163126241769246910923218062888899310764681937647272594418303426369659437871370742001177178194065424460173003825888525304473398586931614275192723249133685223413957354448660804875105609580547179800512757143397211474420208218048271540613249725722020866572576385400655593517473488379287447958622215996878017732615692756149772985647367292008289897456397786730034498845240451688727802523176098052803601038682027137555072120896170979035553132802562413513152373153426379476063643330638003240540567069643476347806425671018040991315023059008336153350685169176439830612102689107208687124710572502532652453776749671540958504717672406864180678869076010650631021353272141756859278591337242749148061605489775392231002894662262961858584488325685712740598080967041928523495008128012539180396095387351937146063015123931010474615145755395126143104520384143337049367907806684140857099258464847754908171742329838373326391459008170116889215238688810733434037724851198987452139331623358319499748496495873675359214879814971378619596455562340642064525513897255976450583921126039743793620384743927774191202270531445372418441480969040846536254267677230585310109468154173986645048108241999171179568853516503936827607999623459510461519494944415682260970686970714232862461675074368454584934041357887077100142663175822868847851414221319194894248833589381357280411915542053812026120683284496256033616052100059348964984883394357825116317494962198705585442714807370012112122073224776877082115737422539122791633522774209977022425577637803152107212511005468209089680037233703958683643186069209163658382945334620073472152528249966723935350496332042389198866702713589053464607688316277909890378140792589360678627316193196292208619776887886657859401187652002110776155795298268837884776356780518716932603246337916615276299689717588968311236563330913047025374355003420110030903255010990741102200096673626431838968474428453215364285495200805241990766076369513996844106240960316716844146446199291311683927476536977151366665305210239543027576957297667402617464140432817594085405307952517365171166248312530768321906434089616385909165077968172316057568532617750435496759219802064798046759265510132525717691046542012608260995013181603975609776637184960161896312232702953438316881333922959505265518024096980741823084209747368817985772481577814617705022548095801585798498107404865900970268081395658053724801808990480165874503003957805972545794178185928140938920939080819108757067072130833679016975019269868315114001819986364717983255539342886545842466958577970373654441677441024112913604261811059048733975345685943565670833222651103814094274667934887674777638788466845967525144321558416120031152863503685658966376161235175243521690127446726055044390191033847532108284495344446968158998518341429719595307246445494410462541040030512876836265127152835222774292173397062677515134899738619429107725633612800504208940750925168693134270804264304675098995397128321171974723895866196704038997906440225992074845819058238951724516514882935879232358932315602607221306275008067974882095166856334071220141406677617210794032727927163145042304623103349541779963548432824494911659869981352992640386146637331342593539929348535524733272533718524235707301838149994489640569063899467105819430183144952009934437197728299870835855057534507698903401477965177595202873755548288576986847825465998284498141804375471684078030401031938259643497724331391842446147516787014812040113178659242561644209388290123952981763798388587648403717715844936642775484782736380575795005873550749455533543023316611963490133228773653961844872753335623182218527240066280484527463321913882977703982873696995576127763347116251732817054153350029857643191040504498561086806923240658576059619828854022754165041707734257213259050383976203884481286618774678103585351122278820383959733620698556925092827006026139767448205405648817829803505862105520747042188477690643422294160954438151097002666823389979508609158898751850234331212137999341609530228363259542266876467108583281926774788250151554909127247682240093473243247935496650823340401781340954797523747150865688897918069173226262350289143388565285104862964969258662236021809164850239298643384862755358856998998232167003040650772989549265910076802562077920070273702220473732173536893063654897939800853625323461712639167536013608784894575735966954742638355678406965902022069789478161353528031005055030182807333725686507329832370268379926472530552354811051638670022619614471160477731409968032396647769475965264960691618718958290048365685046942977589629412903915863328299582781677420026753506507676728113766702438242705291275572026171942568896413561313220442487035070488901187637154539376882925561484050569447063127153254391122666373009162850199744932366730893612337691774386968476652844002383727875813544725238187838650725913374889302170925649305106517098346350869711481365755521547353127962141386227401764698887323432921082268559507111531827359832763941981520061637342556137765064024466238461023965004254217295880889753568198983949179649225453044621485035058691772406478241338828722359737230543280894314263960312041106358597499426948107082303815170239644323796296399967710997336251455797150120236553733430754607084521618005590567455093644638925732521141467575648132021843829423385175613733109158559321264988314140914374715459122630736391467832900930032445058557313248698442615637836176890033119800166597294603713820672755320983795070376572474588080484595782814116717248018709196807866999943751647174912304256339881441767668269355880945642630851489941729400850324388105570735273608183742176037815314372375980728061555089215752059158412704210370224254806459709935116183621518159007468945406397461803386865223996888056605214687734107144715835326576914625785261176630426239545790101760032114876739997287675432491974451095541359019593809282621049227289451327912985743149501516877663118934685952600311087874836624164188056230133144581389765956711976326658648155289132474535787624338425287088666934935193351682256928762203500356918555333785074010374569771379475602710828844626338668824582811318763660308255784610483460071126085828428292767711097886161039787772877920441201434686592507872004714849695391085297399882872579780074628380406118738922345672392108095593638261961458708043628601287045294566746919741540940404512963863987156231395056964584494503441562233603510733073704401040072449166558126393689553669526301344093442325160565733349556166518623403444877245885037972603805526575712504242001159549645486702557014151705294557729366245137332119536764442186060154671125276823964588837679693054768080949901597552651714347006956389550913659026651315448801959093201629561492693220221814089566297670059323176111431840540622309439159922766243626011526224869599998723403309649238736330303279133816400149034038853069138483470458687837521881637009329321962573080940514445454633521432717460344094814953225058515372819676070053451176990182830568370925767326248291224712993782099546894589691552970620679176557892346330129924385438161477198601926525820591124209852546837247049139415051053178765499066524357690854884123482942579830888251449525953999681392190643262981153550464669672019377583943691903396145237730119256436917335734382346471458101846715718897336863059008322312942144411574616526029890729270954492055165943675796908439677974156173115113283852767923824738782656402991510729230155681661200027567840759611513265347345932318081432678787489618074726543206956317718181582015473748437897406446642286046951176221044696634496332875003597547110676696782154596477048946535754806772568770347717205908655026842927268938156089036881766860406351615157737200481138416434532732846658756542851523585240090506660775991091821664548925529724876130093252320601858285830743889412464561136478347137757793365282259881205664842784007338923602799985805196473065936047535989749539155194480806929303551602849208166478550764797403324518197278168120806033449722513806988417491745057815263540582973396663044176537282136024978180934780429190834518634256205658671043607466464339065869597440563196841357057827068474632801760426587023052161199571231604034348845427399036266995495739387084086714863926460395437001895633218119871241724430185527726463083008925226754029395945251788137334039222243176142168202343228790006360561608987954594143939503590864446623104322947524684787672893466813033576462619500564421258265531947089150033875148607042569657153062428491842511607403353548312301027293042305304371749876791173213440345986052498638412232004631342747047405907351474060985430455954092510446163379589569128093095823662337871380629324822179152106099926841310243326105279120656379558790382044201101791157802007793465099208678213758156231592756297271641357845135943187904485663448290166881033919310162692547146105026142626887790850085463910823387534429860030520417420804934150732616201346055852528928291672804304419783176880504116632469674111409746249746099529313327801013950302061069615459565866387694092367931944395299614522322384126554435089225952848447349472398213459812041842871787050724143150675627697537761150077538555379637610147719417432672250451560176086832651153712828249626145817962761818719906516292382661245248028350528724602349364874871914214752868929646840334547283383069498342851964182298834846793983181728448879289474608380515485204785739328305076166188816928327436135218755385057447549312328277447136614928288481877302970007752932239768026968811442540148664932853464709769013278948670969233959558044841966787921594111784159716980435492491273774341317248954060154984250038329409429103027735585866443572670945530158211959929336002435499175481445892465464247051577936946304154438006864518466694843561713933522043846933986444396452190159149923237624124997618845781720651488676610277773528371393806336986793381651822154624447937161699528453705661354558755457066037639705802035101101779511937394923441508583498057344562230919175278039135537212100861348538157988068154268192311968712307918883798885623294036787581502241106675847876071718227809250303906608086632731093689114235154432913248430291400108562705342023868707596582191985105247594841962773032218221331104688205165824830421568711174249274570478560116086605179819491571696080913076771789191334159528610056955925137224824634084417319974514832514194633793806540239628508358591707903922755248681552387561682091667278923280255185932680429544968341609969190199164107745149458107244907783083215147114191050597105234487951421955021054663475242653255016818225762074049988299030425704623672761701492174499579438664084426988458765153811199766067465218795161130225149900366516662656339181406873420993113862247830829108806347477680900140505181016847870329175570803321804009560758942321819111709362602331422364562929620419145910674374748297529388279725790614145184452708263128323237180064834787596524072821528337526691788837125047613815759062261225634674871519246818030279741689262080958578532368718284414893308690808626098086027970255979884083766416421022811777112825769768180953291200878235297864516985702458353590349347561852248843710295233685331920014332958190967082632745497632744102156166452673711110675647762479034946839789370993715874062958495571268188990289249110478646084950477573911607989093468391321150672465924299376309181074667570362225162271983485662349317220310279395277323736745374062082003192792663224635703204739608723134891296575746507723617751176014768570654066383390716893960525712080924496337829063600783303110953297780271018862037482325745587854145210130310718751749563432694823288837321118856468659944941638699913979658804732333657009643864345759616735310188502398167154686554304360092505679730522418972243250183904437637169326246919382385969235380129389072758141913079877559162456674921219375176505181543783434320713025819224907206566631790332058819264013607558010117160898000039737764482298511817034779076477530532191555113162536594041679333126320712509944195619584703807939473004596908655563202838479387322387638077486687175655700639077988213921560918370791981641440786190163309977989891849348477270935386852117850982976494886658100659608575436687162999503526095568002429635809231441997706773952184702627635898940401897522720223151013123591170290092575678912842151588015601163914300899409609914278138881105853985369017844214062622510580423457784842938515852673060474700971368642721765760475071772102912879407335422446988681187605261859092416739725708913500528405456014683660239792608754798310518478070702518019225269563934722302968277613651300661461875079765322462551957089140940315311668034744212724949472064165789548025900074728354582165361603607866604170438449150651338895731271142085412604487552240846570640901706443260025938445014377266421566552547904110552747347034743761360348020104535992982839230753558363907103986594645310124089131636785601501121304558062957124007645876391199221546822454229905061545084406778171784338726207316876790605186356990583161028424450372543497173913158584188876582901792634360643232644254675748932756114780381051641973844065579505990207118668725621088128011750756706704647089331312507571078135783584877469485096966805881783122185757129884695073967581729862485787012744911630037636929815264393230909206886766512027900647877344270817023525707543342487699219244505320715293339579628606823298684932077706728313819938576905441430064141673350283451676930254650765531400786686424413632736626296141235747677518390407162172909622687470053695772077332684241808874476081791828038439999733836166278567702813029928291301261798901698893192273283789368823485588036386044672089025774870902288403870539109607981711344481415099515677273022496799167509321346206509963143831964180988062107501512586982114742239822439662940417898476568552465853087612470515754849531540200805422694246037652715000242009607451442805932186131751785147418363768173856010667239865543127128623453661296953196067823978857352473568730138138582841771912479017270197513010130714762713021462140949367665401946386304738878246380912347309594285012454634900201477546077164612432193404276847561787789976100001381035691521999836574974013173735640994632702981774716410396568287431970081720370164972922077297905736344782117212710640494473572457021505308730853371845091193518915994260551895651194189188591603708355945258750434017674459086226865351449240973820236275709587413648405915211553600658328314759687261493521857806262655622115643569159849247634236436712873217144875364727211962457699621843324154788528735649432848563104358392110394427731375571825584201816823071625198817110447097381592627231979416996491797535280690602751031132240057702883362272304848917082498221515291011438205097085606154144677564809102557146125923468263774607124098352286051233991663357995952950943685226052657839467072901041466308568575350934939588867558415996248902545538695587645134799058881586575749992498212181486837353958982815642348076085615693977820121727269803746883898885636966133628976243766000968704927656753812754136530359680731340539824174558578918156299115779080180943117569331990981885997161405972231784774301004286043643235581955255590354198630097067907786157269401416091488830798350629565139035709991076771105831460901392679423584574473441397522646257106784091011734314710190526597877236796557030140053935373910358252311970473222292521556756499540620716051565342015453126819939172197422375177262456731657647254329908427768212606115911562474423729036481276522810184868948163243030318056348951950402823477165712968937202825275339442758639347756118456807251496524322089164447178254818926922184782300955889093029014102955581122021304984191202941274091967084517412279075354790221858571599499837677186720025224266388734597702641764244821867478327552069976590352550745227575231942769979817802452560510714922636851768235230592191978616788545953972667419147080392884306988177934933787257792125726717049455096575760512720336960982616991185929171011436888937936097389376234131047128613585075473699593121264523882566277847633184289804852850058033271310530908048194935625653856341880880941600579410208033645678966084907559424152517741823309137636725681727699575807816919856602277398257088128133804489576749715896411651829772949606538411721531681844296770235545411781868178221421958979571423095526339493419682277249700152394123433211566918591465040601452238125579001453048833574258372824534062645296972954457940968638877560374642195365759641004800709716820107771669531678023513804810262472470062821759404342504635314256131394216763149791846006467693968272685760619329600377889655859256500518306608292321555733678692990341357716745596401593036280354012763578515926618430036606363675277376043312545523128529535867751877139631642318910142664673182928545303983241914512652077142822510345572800654534423592875692938717163893263056441635975844513033405912087276339342318944299444738493842035068827898691581047880380345403528459859586632768465373817074663650839964606549950124373012592516528995755415497772968479414397924973424807272144775657409988528031157986214923550968780448584094902543212555191637788395089228966201371196280042634246497981808623849389675187552321838994034356336339890317838784240465559768021815858910058549101924890090217428893273048317475557020139703371699238296611231624234484237576206519493188892905132958670059872195098671826233145009491569759297829853249128736462004462163423694459928117408978892120607381965117229581258811483173471125677239900826186801028417736424012099619923633646357048817716692376255791816751349819138757039322975846364425161752198111321501125514814086821369549434573162560674805328850222558195750177000027267196079187943456063720641730585640310636473128264888063851234548401971681938351650661096657245109881070928922759517446829985625793987122976709366648738315614255262283553448900539955821314038518846810630697165391602977580231173290869138483302620250140499925218462115243460614790393665470132027123399384821397145375356108307229734615392119183157864967353020268960043157797385339781062963099920707146713873224912205567130246864719571853360025075350759007562076934768062818230445856865576984918643473841796342761571795155329479153611951413143883307244711126852150933419994881239837593258244105525232102315610899513557181553897910440298013476258854535985920583095259736022604474443836645670693477904521169709568201452449897243789522029439634206223894475247214546414458833999447220121321314080865720973169151107040520005961279538346102878866795900664534532189337713541516421033538420626519044353831193995086287353817315704560580427041872434025451185999764563971091691149728605649933224446472198671452959816003385614609649565207249612164404200074529308523922228723069800400558562637057966644163667659436643219967054163478728392211100162608846880930293776828347618205118363866599464961223156425753960140726697030363595452999909485316370706212423652879418776542786436458534178618794609575186505862322090064830931030479101902456917705768766646798214805404028794667123109981417733370960857079323470378851598789609667938573513751995162996078606542444299306649610957518409654512896049013335721963712136676318872382774294881151096965691697779675423730571447958617039099749489137352004981169408703143541791313366483373696430740511984527288181161836488778301307643820407863816216733211520764666187302921161664977527710432579433502852191892286626171272246763099682278434186402804357549464818386595889209599845399389896309007394226726655001840657895838271291049190350458111246791919659168568714452705020400199166107424072717063194049776895992226853016907606739305392977737529342690812681010630481156729898188548964202498298568494463417575157042620582444003708936319336571595621367452061369072564604580461718986594048844547261538687307006073824220712271375320225016591669382006067373420744763246260353684676851792308316043829647633970519344833848774410307757240070879192587704285788442835329334292764175913264423493596063333653290410540421922237067999434771620799622342806966187070396280322185601333441317954220037368484151665526842700147922779209254256147823098846082449789896274878933157978363685116179155014537258949284662629271947407567725315838060386737180132464904087856681842724810713685136711486582311858616862282436764356498818663518321800927905035627269577051837471809224897455042764805894471384838310615737324311716153646422034395479663854808473611231313484219058379393248963490631587494247408001282817308923562302653022533741008837337013143661618384666507868095962629581045365914532910678352058751147127812291963194546802180966778694261127960430443625762387574752806023564224588117283576279587422017162515691685395818555097095307116532191214877411444853297862234978836915810732455674725888729038597303496927042026401189698531700762569126156340862930651364099923990866698963247030960615961166949354841537479135738159211155420847962324234094546055802677301148693688266774138646314599223389733801610164104162583304475766394794031320743471679114691343908542652293712198198989287291535318061973569108934857482848932556140276660592393204629129535561689429222901724290471803163062850256247944855978868098132251040645590677976287002750503331774302353228141451857793567170503671059857758467326057887532674293395913872269404508582670675954162179831658450668134110576264793025505405989993654814554165368961504646372241484082660595795668495425577393550529764827689330837198983010092411047198135242550390524966737168720194013545035974821527680465212821453927006198013927488291439474201945711879737948076995818000382634149922126418467553081566782704607130518225762489041375875594332435341754603203662060731960933891666286771858458630621979212658424724169648973415593715228782050735441095177028634542269053733966470913538216739338502503391063650577843331021357788952353549068640802539656850705255123528332542950725734005813646932013680797748457121642193958837720436229851037890406991487700559116342120347575445939211717016391946717589534953554841192842784773773161590253254685139087734715586759659977160392415953398241122058401494847031247578658075518475973319022758037199466962694035379322954567322766920065864291477865034278700683003291033367257256437858918957184277733392392633927205795416093906295796113798040268514831265534609869955310609572140957931181252010799422846771773276271732019511751951254599403024656512976466025024459265081102845562015635181824092348645695792764713175156199376313240894454203093562811935558486561780397974917949563501395179361334713441238181556858722651148004660234630445445977621911905896910375455317336163313309064652583199024624125921533874857212755188935854206248468308247743282146480159486584765497479071604798728775006126289372073788990138646894167248990767356421988237455232472420918305296811818530307714474655837795239925027433978375226831485273700145809537567516284823081690446322818594148413107743573979373522844246000292894705239349904920872555013224235926441453618116900006216152172721301833680440148330093389028541808667038974310406836510682660128245148215063880559362453702590179116501135680746162781489150479095680963799094283878230658301920712705751846936120721123967766397080154093257560806613128960496212029924156178283039895762499662992161348186875934571985367009396490454000581524107377352306389112046860270716484494795295671019118632829895491973656405266077794251337077481864522648635044004422628861932829793523423897750642171202978810944288518063776208956498504703980676460423536079716255118366002309346774575316795739267238926606194025184922498456078463484542499692903622839197546213077623316614338703131404008376173621574830068020914203496186420440824481978017483185141865298916989640984918769080748800119967307167893599066207494128157508443767178225105566457815671420864637018848316284016225417995285537334764242356981433993504029959780499443546221269803797461154449078814815454073761545376430216907236863879319176410863801650646585837697637542943426947273320722419989852291192202547996874665781401863317250168330879957787627348247154027002014286589817463591781949592932040850274813758596257930633908765574872765781784084274552251403610809141579934138222672469576553531901837731715030876001688650774876915590881014976749233179365766483401259782202502752606948272268781978335988548403971935511445716416267652479478704777062166453915653231274336015871400490057883246268228214936029127018177703855349976023072312307559921818945081579346935762050778624032398273966446174786104997115227795670642434987014194052722172628432868221840751464704003258149849851095700376712686074190177207646109309133796751908234889754247513938445245817392536939196641646060588164254409905929778644433061049936263714368656330401252127808088361228763170406056150958293501764564957835612630269693993605384073617295645411308494122527848515033925798629975872954959505350292992555434348549595771119218141251778747921936519331113755693297715076761171447251581233281353300135738597584313020535071569905084626874500812597037943910939667158892111932828891751320822618348332619205500931578937946446646389547139029036365411386058286512720133564972763843057256343746057073016344690103655649017588469646533127132024315767674490939377563846582026792115385156315659439859394163551730177640125177122179358951235724883512172512778652529720309376827741650402355628529783615892132043303922055810051071273266539972463705939084788142491294958409265092115943350433586145337938569487487701823844892727687891120304534741717440871312267361876813022827772886184461096871504164482261808594237949892522823163148855325164217070939169315306301912113680327548206416606420337159608058048722229161135800183728578796140749471445773134638559457201787609357011455506106683466413148041483492400961884352486244720334537638225243213269080380393291904623280744633093864201996181003779718068386542411934309871892498060776328469384213678535231892056726726155411302921829274624977043906269736071534984825007132133640741173592478201652955726342682424987351618472010939155701750186799803608969098800503190200941563757131204142725889987116703942140322205311497741068152560750015427969060173620654713934046471342635601126300907115185883503289753776757056330055192429630296704693638023286451951851678404689010040539785547948513740945535833863822014072070025988712618054448112986925745666459413849837031957056532672973667555836903437055277742184157986823707927343075299631318423066744556024296976161969484662680673300395120793460183016622253934920301232614866232556223047954919207747500637631806142125034523792192380322482581447323259764012771973891744782714453898809753256515974751562660173475117437149784908180922329783061939462166325863819023253609722628385645643395952310960811492305839254649579484542477232716757373735165380543182397171643162482101741354332945165950671370576957243509785229713759369239443926339288999156333059281132712842975142675115732515591885810494954556454850360967545559455924772929385748894960738535632101650520553947340188734685470636261012642463871710370840401761072225720011047404142836363476174227516973800754745316990943444138871488577126831235116731584860997887486917044147247216407789136311392219556474046715679596249552256308516348883030856196252176474922809213687056126406870702107049812683468586749772162407563489089186606792294474874913243072750065363443021334329503673465745765866020268498294242555421742950309196399843786005424545016105957526690882659649204401232457275285082409239094697528584375611249253338999363069758013484714209668345488435851661478741629268053949259470571164660781412282686925239684235024071466046751379730373801238850076909544534138674000254619234252898186144641846000646866175505846616757090384187219922975508648833173861350429771011903210599451648273844693306222177847540096199323707124784029712875812494360102131934822131481556343297046064868493697946967661306572798274738393385978715613351450044431630702572058954801936594486495206084971629865912633408736301063991949293486495879360258528162188432130198185370394568354620033752632881144743368414609232967907207286504803983421445112602064020356618808907797852942379774095240229825152401380667896831987431387487585329864231473823214344256758092542004769189884292802547583030802565529817683379594347091446475328192353323753673246633620892198376067000275124615522884807816659745878364978040456852199139571014703954305592631176750058083938412439719813010075933398179801885091464959471062665072593811620804586806754074989670285030542212864027741223952329713108752077204967808324945690316630136532823511380273969506423437601161259872894854467593914501744359539638588466947997808701552331655279550013533458423804952944737737935357330592348674999043998265051113119326328258532320964139971064264613766749390165341513499492075101780133319462107680230779693394631492611031385014076349769881750373932765153126882487065176161121909840294691541603211666392173384249369598517565507780739885424452817847083330028827782395907806565358355590908369560600013412439499102111280075090009428675472560002775130814161308498621064730861783168218863905927855435883628265350347029598991084391555680852783443717623519594903949598463701917454328359469024623754582076533944936891809654872552955256336423718375889400160682764511222270130965795257434890127755935097864920823692773461133248356326525667772164568128025230617068243936326592727011188775435361845947789988502515844281537664359876186275887077283971170702016828604965918831437689508920889668208862243348824470377012530513742685051368535415309901545581111357512334684466024843443892704920775388884073699626495617428057895500745027507691591802580470463351047739362556254246444311383979479060086816478716458966316250486097894316129891955246900935439593114542215794896416940323411751400931593724017678956085672451605398186010124474412649405598983616602537694718841993647402139377644756128789180041609528218866465094993806273100882737798180933861860149427305644825741844598809528787749184325730317127444536375050403401223836727440652391907300613860217231818303066105647273617600629639252244752395160846494395868821671906307434869135979297139595282872693217169308998191674727945424423613531140702320780472586447859971312411166633205846004012095496591560197961472439070516466903846515813650401781968207867311775717673781249881345607321226089490931465634676078505077802386610284713995618909007884297503503833037709116165066077788483997134545697147153254641392880094874650244418029363682716202755982435350845479701300686964641249102825031286867365649984050539127055684886186139676789635890654369289244902013231661501195061564563499232754508501079489458069244620230379075395890424094824502989939395638866741340608786603067218463688427541752185757048147781865201530820727608897085975360225352268712908724454874547480853883595278780168533799432994978515109495035233518192027490132766922561953945656939309644747291724928995983280096435773887167002707967425649781269898964851105758175497263410373402829425783061601238095386022647678634102641884199769384816290561361717638533682776060533672535457538294027570274244459771903507004087702139367049282616020934835696729868392768220321181568898290254158306360378007602755958563880569166237907539018471727646497331769388504359907345293355346072217181720029310566138826064539286650649352244056677126182911949564633600701782358971744831043339266430012124072623232110997546255991667682844169108064575266082174709769288447560416518814619847643938098981677453808520820013894630388235830222511836527607264690121012810999302211437362760598107136226054531845663602400308666540437195257545827616284082632256711453234154870527249127490233566013616611609913171483796653926948612704349161125148342005165899870478652652699389300750670336747837695212786821585576208476580163169722690181830453643897918342829341896513726511647544432132219808820287595917169854229430867981673272858333742776574839224873443100947854045851431134569967391276030055419551346128727252254914397796146063676531284359553433481212275759777123983245984998892864020782659057395032619812942640400528548648084849597245272253716902877745704818403548202313974215661010844336210597994592905210048176666788694679559619276561897892098142209644213380276335478499796523379114491707656378587189757921534202889188027656750448859587335212235654824720876849449222364169394442917959009428220034359447763655640291259295499529640039486165173481836879847389738020088645243050671109878174675764429352347636902072584133766494871619548487100331144613938467814942159512825873419339014590391297392226028297899460157755605089766820385709702403804145109786793149361101645470339249179645853727263252561900992744639004859297870789352290903056910553712436859821508439856018174627755455994569503237992034115725003014664769018021309724070726945805693799723559896923090259275756290694654884542881471798583244488384693586262107975988912628435676035438935009452316411842443853117564178958959596429944792133391799899384597706334797291318729968839996288432519060074280466658867185994271385077694871866195309908845810659836208328111845126821360807578435491791712783588769591264466577005524473787677094601717634994336026319666786535735985173540293480586553394403187721210667595569136255184257815787133650968292994337423937937529801636037063905031114170215587481044509482527691883792014029995275286418385311085741453692611511407061480668662466657033715294525459294363105029946559382661883903511360268216550707693453673720290297593801852956038482648653282698141295406678395394894052157861061630606500301212984864745024745745827227052535384263541179226907518519913382419976251280899569482256764479415559315723538716253541817281790323172065545824022092079166841313669064556052801392472241516992646728940906833163352799213361121443526129028753825400168166794549541762552583504842513020309675468198712000016068072077371443531765639957232020487429424849581342223068529478530719684772622865990080450926104472320567479032178161707403833785642001187498681238564383342340189576127253337605005002624418112723510050613045502750875323497522495307995248455204893015458596639277023721390946813471308687766796502944641724311244396136849682851483607267034783270699235841595014092756172282649374701056461460210367663286265064420795962327806610423361980493549203447338388375553034736821057380232811024595245640744686341402451650967330714371391751233130779912234528032548361603111874978320647026648443023602372838006662064814129334798853682565736128655887865178602571277244469850252437431902209174493290770633573335724433733572032161796923770056253004298072704484797934943187586613268283726837287244577794283317366938663154694943424774044542756633968452207525349066490324562756427840811132075225351054638610191206293956496745237585795348268674876271643597035329102425065990171401477396447901822478267095486713849711677517084579401437962265799227325958561808777467692929783773144341554512524041317147282793554853272557890038821355091536059274263702915524831101887907921577813473921364072414034514619578893830682962492627065435740835468967996529150108274241264535192436376142358411864002371353661313010812195879288484127648372922798310146233152471603805975919026755864953830563647498382157957053728414339392866503374783330682774909340451370193967525834520994485381063258338211162268412205142806463037094105460941495020605085697291905858988767345995627677235220551119975760421652515977092175406767384606149864743057997293429725249034886665365613667145389041474948825098850145393343135237935573835615557380268686257395073235183289893378161013790327088639103259441764161823086498392284505205358617636032013648372122859938199957854597760446535840607726476925357370021966632301859150585248373074014399576742787147409567386506176561514602573413699500989654248523219566962758645196235250779469331128819484406449887247657932814526405037536790758952481114626109069177628191837641150480958503693589192962211732005503678210345482646500627983628509742902478766697244663225303883382258444198820978036697677396896990826754582137572054141362250280854286120561555807269327768886025648340076734358932050034528317409655748678861812071620089908940174994747403358694005187953054410296380312883419245197700427216164174749988082953575818999052071992434105671141041990037806502020912784621333770229474768678290593478748338635440693033477571036905451357097045810583122783084600355845877401068022469675326070805721325172280212319701891196008911523547459327630129208990641908626965231486138491468768002194354005783003598206552255322686734137979566266723440608636468759906739727611445080621399973545377182017478062505227122505689191445093459490754517271081203300418204423881787269020799172389019949474184403039548919684364575929754751577598407106707823681515454382545185185927338740814122509041667996294513740237904479322732801935488188511420928497464417235852973371614540188552071718004472634273505637923022761444900144820925960441768271502136444910029270111066314721640941357774222126469178598636764669886336366621697155187657239008082650489367426895707387179571612400413135508039765972941556199134527253122546556345329989429948828391953216323660013548961159854305454174529761911332271596378050386580803759597576324033611126733090124771234676777587443518409076674376278302710091226271078052789363163059227246260045535440509128192844892675223879343984076976968940754346295005217030468618597956202782704736776669517878147091749555277815652119086444899743704024215123218266820364347830322306681553172159491546756542729373850209229774993958950189151359520885439707716215895971851239011368986530061436765237185757318616188976804567944316437332843194472730044048880244276419460610494077617068625290790682086913643408082460814363978365933378641288397191612613167739157422147714866398042061388299818932646378241190055064063046454261864111708948941846604955594413210017012575719160325149068958169552584096454217232808486208317618833126659791240079039118967958605733620539716087377063212543127829013279157991712660147073567655023082860032761107259432730646676415926362558591416535778700917252507873323697391830636260590196166209459160009080089723859287373255219135825368211441757159326838955707605462130454599115729817532556664909792503689079223929190152954473858350476175960239859790992505795182029602981748403468317252562961011229738946993275621737362215601131677896200742599719498742836628340401547687907115970595801935724933379320907322427442618999547695260725466096896933865880578763871612105110495418002185877048765799089834298408612340733339296045563626932709981637087609209896759662651692065379769055537955261411917183711096936372670624402410952693820784866874408748445391206844145215231652301230133603944696878493876496247848921874282795359137279767994500619610933236676433630096662087220171898745638611662775006380575669005203184830596481318336115176642948299773487180392318417681093941291506201678201631214693444000437459166904938039977965767304944035078445247263602499869593305812853922363608679285522654539310653211973994470238350016744727926211398099146815433878758019239861165458575486299394379948455574128861678822112168927765391685859614141543961377791867185006634404852286554992318259204640543881240965248853426258541669719530756509790211387918187364600972256988181364418032657144145680073012418862405671529609499944944422346742970633803060993742834456075981473505052711284085532172809215302263610764391941722719130541098151271169274192040407520477821005822932108063160804390020970109635713861190913258904224115115068437677086567744410174263583616434133541293756845182811259338542943708534386733315554214072188258172221006908627833675618030423621475619228541134184588572578199725881333480862976625941274751428621787628302558516776642283902027660120377218825447611551136317608224868647867651570711873116848617490787341455402812259786345052484870480742067883090332660694564921802939767735546383094269083957483421249548634760114321607343868989184403865449523370233167766196434699688335723810443511911870301747755733975887909632450753467513840881276512246235281948636074910644369380817286240807543705504532976709136982825907706713972700425431213745869891213453518504158495649980638129705518387363625343364437437900767237649797765187327986582887898761531625854841589574274696139718829393259444724873706427782831694776991997375606421067668867869485526575562456169839748463467431796300300073808418601959296294809626610216929341981705996238628609446026902266806914290565387833925693982941857908384530607995879194246769240478385761199370577345485762357216574105621063069753477056478847711963730893437167438744544589186012393939333015392246212722307519640982505543573389358531770004588867749383451851484140054487295734146000953144998319172622621983393747502152173206034955953586213109687199461418942847688000356238471052444795341844253133099482898357212513925457423543469283128676335813204130442720836362653769103223368786630648688330117064270979430409248529504617985220894320326325598156736228830663661589416887266583662748812005210478734124753593304455702795565811966423912584053958617897111337927902924109376163731421298827969353483371289036364094994383283298919896755293270509413625495989281238571540561256538206471271910668770443683559721884375644921942772549187609994782373881656200061131403046616500348818619458122055208329647564681139997097743444105955044656648150397266006937978513268458958084744600403105622988440545516301921124158836871927390347080727256179632760885839076636490386492153660216486221437788180425213128405206930143254787766427062527714319020823915406012323470172593986458635438203687839508920038754776303798615168627812634672396422604792141450021850133114393906790672773734585349064177413974479072746743148936690967228169229895135004940655662462814162129062022539446675708861010907175484517381016069744662214855360980945613727038065650317041590622768138553208809356063713316234573668793602402514309253099537256012697036478852159461105859487622000136686531964462636549302388518532344583395810179963978234379884344425606985110249835865844661008813382514082008984426184742914998730221673621095562777852602614824837604048310921003620971356903463808476011591319791539501447459085880637329301384418857537479105188018564845935301380075844133112871886274981264725707116250235755379408149580920714570117281141557919050397987524366054061085448579173750742052125046225027438070158448896171815821299762255428021917383310455261447204245651468534720656730194237851411707668557611768222231794060379431350987896775990749000804054496588211520769413034018148989889983725452463986692162945520042619536637052791876505662302717116472041157587972633174167574965817492156678694635407690976474713207782257972130144161153164090258452791449392058647991440782602371718172983565506637283485137914444378587679934241356128471558031958913807423477678392073242626418989920974105040074417418093563988803368733405580667091581201373330689188661551950513940920802238365621406056036923861880520221375921252017325832711431009438621101589714618341162864765877102451607398631905756455260841002499325517711161526226846856193666635177518621907372476652924266067060602160764639478688045961718612299445127883085068515909934617467134435127134214447272523059057645853001871342343415170911470853833995902066170144526567455956144028343961022324004378723789201381377856689163912194460283971680501000057400874634945929376247479834944730807211162652989794253948886178776317809838129594825677050426739187984827329183230260909466450118311484330561101395242065080416596362437932486156922573987470443483529133838824575800601060635283268309838014890682071821383724137367282668661937270385379152790380374551273428215015928315361659051076200886533731341801259675539586865311778540892777084663556952157936565970044787453977626853546488133781929503646035127551500133906229219584684389701860760281781481738963391294451952594517746154917276875472447066006778927812593326463202881952740088898425188044899501298330337692927742409647829258837681924091191771142797916767547057463160642219534131313396222166921925673741590023523621909473714320691285636663300574920282781364318367691295409811242044622287750537990155479242440246741505318698351550970532701750978020609725314934713397875113675310984661725067556245158787901420152467209809562922660744735766479230003084408953630287471822795414809731504565159413025573927455505538957005034959084524741584361959066723546922263303512159126561235108959197551478053808855090384171422414074983363450850634846328322729255480713752428242142848410897006071397915710380971595609814470687923203805406806095684061488258206023930950406044706508344525290528994436363439655450310422251947857185094995710468863292081537837211539796230746606914249321196171418128255666143414443171490413735393473991215648315081371026085448802157028312964374815677529884731510970484395339283133314105984221565116484456729634223922278092979991919872272804587269188141401587715719523917164828852111681369027457161029049829797747589765254293817889293205241791688724323383152988905596519853147795939899775895059288248672740439796412780000647175167178857034111140939225253668277461673474032342068278895138891258999343660572884265479604319175324020766480573516034235355998091064038152525211159137444812740715884638048427649718238072458067167662386055773712397484584262719341809880165055760702361947531214006576726120788400697980320789505046116411535144950051031327321083649064540465263725012768093079313429416041728805360410197914468407058580427545078384988725568422841213061572191954351148097809631295804090839010915573857865498443347260357642328102895381314128240557970982169989407435230008081494943688845716412438752780591500059484656965193493180029755819213299120509386608020940575784846350491717004699023953128657885528292042994111828460093758485478225716605251010856610504051834786938699122079263738200370757907450586603032576104012314418954564153062093631151464325600616649092912105362555455020760868861340961326718612684712921403920282894978431281931914231106442880477273578311248162296857298122078659215754669115342862865491322121547983958388250176344655216006404429351441820150594500044539188109380985871962203634812002477133287277884761173630119190832554188363711954017359639471302688084557829896091265474902364689564129991584309594204196900817897144669445897123739915441077064257376928081870518916568615121626351186539343710784156897010248196415841509563475784780135346596209835539591538088968413647988289640188377028802900763717988276392663075479040319501641241462205144384726773834141610237551741988142677294826607517275759142987897851065445205827260508197223695864544717415333065611663357914788658300592501750397540015732881538647394429598655286094912396577517367908948944708336415989113873363989277551014984427579809506737182424387004200384827125326462824727962495497965609421120620111791108152634121961072970605184920859513046157391637795881809700212250305161563739954576136370247748398089089290767904078743364573214845211589939821195941083425457951116862678072181747333182833045482934927977740931771837099793570008991071892324405086878561331005972353994666637049458604596582809558311097759555945590761847879690283431240588431700063119503056443637813919383635590611991346079626098544008914494009302526472646730659371814223865842251241208316298534563498648335055689630428733101585402094221464632035580656662632461653238378255577980326236200237562993513973766170030927918225583618861902419889453691356221682150028319467719058911633653302399546591865594850947899088730454511282263974158463065137088010961076531169794309159077859472825878570848568190560333874209085574169939693857328252137990764922617843507818680671392541901260644464242406546388518903821869992359242555693787470437871390149942119429259397199923125444371754541956315619913443007150283724586336959926033038382180371229291035372800581763603647117383162815322076350097656377459684762127156756054333851993081967356906358038988510206247733023592989131568174584415023554482641060417368972491205951520382399648752047063821757027539941872379490370932669869689183862499228493821785000143456550497646080509166293945249865136422777555523498233003342249960838536169817831564105494005033177517403046793467765669656280886834019892264634968901860305538582175689650251050685031460468526417506310496976025658939855859809802835239661476810410233805780471096108668689249883904610773563444322496210894762275270266314166494570835187407716621736830334900731727232846540208108522382709638018107192623869058206666741174182009702570847568458758608146466565880425917646967033189999858750731513410974034952719816773796308406385610566274446272937548988645765456483249300241925291895879940701022730806381704786467545719548922024539827274482206103033187470541723393284331585878465560677066311494891877142968071661128018639626294965934603947969501536073528153650271586613916226050066804809929258784562580932203296320967174277570752433844797936300911625733183790790853561520885376298787988693757416507204181452525651101048680750031659541650157992982316549828705302375193643268926964900251453423584464182380335869798246531482644252705698567027711476677858464528765901926407249447271958762407044917882164799005469777821814838811162721667027446642221388697191009042311005823580970274775664837129242124067585013994944949309477603299318005585983560311527422832477239798515949849523846355550617393323015151018224952357368816951546710693182484458367611006730881952506164303764015996154651044304879758459085742288367805580943605695119176302247245746583281071445117096639180338313179246185929843937919608413712798448359385087301710627614657480031339554486872547803795328773049637909088388388149110689699945939358420612020402683414862446323421799362547748631078843028186568899259216215690254844405387455782850825683228935027117828621670026725487850171427383684988426463282295901388539993800126435653337709843805102156699892329071950281739736374645737389358829381357255381056872533301678113482527096653613520845251159301363945488011483859670373464603412411174906576026033186939065849167277506750778402783453924940055890543301979089196958663996052134893968661651129255960459305640358208163548170593481387203300103400538849675405947919989299815388944584974385386954426333055944919265462978911873427882161026183925064541984138263230374688882650061287469180657568081584241959691336724039812377261836945376345828278030434541196331523846714260414079882455743593380395344660245115706259420169636256943961083182222495382615873355176728788107461213910635222457095042174665800176082797443523831149855398213891409156439491188765778517790764400623200787701954996210235998161706777364814211033514853529309310797043644271127433584739785631437217758978754519905177194186061637024230198296386959801564698659152152012255946204031213137503684206279275529092013681875542645939341849483691899171826346237355026880546366685562183128166098680899238871754286206643824702622060031793992235488555385300195454817658967404182376805914773005166368968746175112888241883123668323263626535712164964263708071317978289531954299830733021908638500677680799506722113153189295382570679425542179687314195680071843169979013758126866672328325293249259805709184875966785481601685119547217651408628093188367666427383191431206760173361426838208473910446150277644218961236523442562880799266525045722623748893427062844410970462565159844808043853640149513351346267699795615804101600044531923109417270833893668511123745399438019159376050610272688955107641955058993793093977499934278799358071873300620002652544553817650305384722420627324686117651833018853219154856962619368678365084830836690457067113618309743812103461840705910998223102277936602030344343528390423271596332777964473343210407167004311301279115428509325983586783624112154792505374216351639945923466824688161305093053498783100109465223384015941547041146166462196455013522491578506548197992366266800914939096303818054196853810045881776242382654963519053380036512516630945207153532540147958223090944354425333091471295928689865370504554331097135460046658039379441987670669136513474285475884008827250087903676884522837111914590390039155633388074089932061295028471233023891872550701584642222554603637606990859178598061732397768093259626496440460247729606770418258593153589740722223992765059220925979761611965673800076779704989445086778062291062563142067699124446167757307177771133496212373447224473512656146418873086537953140764928001978694066195574474289306336283345410306179358562352713758946821709272975305616876882255558809674398939850395150893535147327684427715330717972681334753473716111306263206264484452517936624128600889883814206175952503375971394471068051321782727669734578808360025297782276201583930247917860252382704397151324227197799546077844079674728758171808934849293474397950805448466274125547775693944600717362168785964056648673775180386610904056314861994458010897738615867730654486305372042831182875999629560074183486011126682066307896963416302247390467407677068956268172974790470489361369169392380586202938656816367827166414152594707408368146117512771924895859886690978185269339054484107917286955970772647982953366007861522561854203634931662445538482402222983277042612066218479311517387261779963936216717438268370710155584227270670528524768534257785520783364437840683813384479470569564481520991155781041856228405684546691443841896566537682021509960997559067944581474849073409480875736155644650530092815328042064184004230587922120415784437477981254187527473482925433939146087524938398948236521362724566617870070163248077482152224855600010188026876263128776084179906446712888996960792786300668586305282561668442570916782796622575288175570579679051170097052292840878396688857077379976410767638551277641918048542446351580455249668589183974340625670297328206328963916724435472592391320713648959117214367442289383527048290860701054059010520533182114559622388911669302532329334260561090499783011042177481350550069619304363692726719881006606364004857262831698689497412199628701943737520875308923038553754688965602010587854281871698131129981297110746013151581820130970797941890159816565564476258080713126020590453276514520544729676394558673733590003684153679155079962828803627426292384689669899519314481229733692403846972245527002689609792471758818964569939624784598390600991117858559552626194823972966060783798620753030094067114547345382508250085394842623712272305471598643282345944121392637466182612524109607332612438284781602046138828634080607806612474141877372197321406339572517579769102658400572779940613723785931934147893856528687431328197088132355638474865901014780871553015389028967338062106219872860392322934732193314758278185025232235450077142596977225255902000105478867287061940996104691936919621374163947443354410835235489906720426017064479530227661926578509763650093246628101989455914501166644749231726604472760573115446597008944737208053158686649755478670935296956334867066386916652648530194824343161804859533887212318804403652164637953166463875611839525572917379569272863198983853110903744146082354320733213132031260813932482002494862673654493360226911463368518895591405222908986845182014995074793123854995408359800207573228595653041643982096716480367022707711084410777156455541113263151075459782592130030667021866430273627993351575642814947269779218970869114129743496269038815541417681930439385793177669975532646457406048314950722482113368880337436607929866120245665293844426044029635703388764897023382634128358193589577628330718082563061149869200136467500440833701159990898014864439159713827479293676101761332139517928423730776821964716817794721063321679135865510793928464436826221834470761950801328189328932430524808793351839174479040832487690194323364623673533903424409501895311290627383371786403479200868763465539728968314953804763022280430657665448192310632592523695821998366924298134619872048334051673413007190630334219390942349126802285294404745251823260649289751144441601414326653728983687960342602843800211866376921294442763358758026684947678904910496905208243310662064593136214391390042718975104388629514466535280828381349076348459593710339504151055103684586306450873789248148424490435212887709719435141653944210260412801092966817729629884195892335060196489291593313591376206984023241481829245923916025709996557846393670801431889865510868466815072967062066518963750356478377731049930303969706909885687099242134939517142348674505862543365055610715662466563439224322851237231121971460350167619142966101936494261152161547446719202271873917836291676948068203029769142257354368815334750665581975144870033579157304816834165787595206518675570115951962366612493347922089740926579694513408913084103949547439878196658497305815549879540675479424998976128493484255518911520294244378263834092556362357693539829104982969313337329524482788319305288949958951260201952637148589358875374875394646894666670057171207860048042236290804086933882331776112033177499732949074817760326125267863075109971788401582109180382601911419075712551932618125543593048787787618620346766262299645894389149298389172248267941904502115899827200280168853690275146064255982364961066486501581459161566778311685780252501680225601213367062770391354503033544043596288663997091354242522835589774121860910627373002412385641282252408189659649874004129563349456774351481592206862857035050048794690768495200569606152613896489357376468868924370725254289456202611395714893345607547130116822549694753690616023128020484953641806442104854241073631702411641668747874319012586860073319914633449133616751101266214117416752401481268431712083580116471903037477974941329234705931129030764651680970316757978314970926295286301761506602863732264907074096970031113469109280523803292905096458925759718426227753949469901720190328291964265949360142873502065398096247833545767064046905817818623699502142764113420744298624579727401482842224845354002993153779472340997723186960460801794276580793566610833192319148181006054176741729596260200596131851018656564776293595524381219421415701274103328162804298837288343521257418804415945172817438817095547666071615548171731613482039475337286524988515990614984275689233233580603496885637236881363999495779231547252197364697309095706039938501053487434754223349305138119150848723614435931944187919163605289602185212467452326295529988138063603135416716463085174618442031731208068022951007949601852491162250647641689895384330810845667126501841560699395764718933405002957706655014602282319056373304380677278411632372801997134626964608551066121514329441464721856199476723865414290281028550085342306545534450263812113591533292544437032978277744343220623837619381778299753270571781006538398457093571301763259124726322957082581545282135801658583242112594317661138894540783830606646103407881603799960914596630486260576978025743662737493769312291673510122537079663558875739863709081284842504954915269262702329963049952066860160178777162377401220055665186154850731897142840897273017575194810228805723697036558949380413228814688995915999163957839551880255986458603702846621989766217256731154478194626000923745023651069310185211900223407391016711633869159439453979221244309224740792182977283623959243322471592022227010596150230948908521095069128377975802047404176735048383211724705482213748074838045494905497397445319601160568631234389516261985195839255640821212786695285838776476918720901041263000198259868003433966189558450331573712080618400019559935978503361378962425071713442941078418591322396909262886300871611678569104812049667053891023543659447430617814945625517083846900003832051211485279150086439381197428928825444137825815672967946348884228154872551733100991308733740410072690239916871057429940418146256845828614707493417603186375959882239843943045286894539221223879095808694204108768945297941092105549376970003775867773303802884372410312368463339682311192054643013023955143001530151979376153803637121531346683754797466868027169711039766167970109959956722087322993453234478763685975105355697670121361460439360476738018780751932607171611172250796946133409156613094186643107899748090848373378914287082846062098387345520097268792191968451508578668543917765521281025955569670998160777980389172924808729650372830070407165625343134283883442386789775152301046311994850291104752075198291028059209566939378129283594205983555314849316369713321020383303507365035561888202568884824206592280663529712976883167116567363528590388090242844454440902416761515266429318318630085551612477059705260518462510205276827374916844829530660925634660442675732739033751573370567420514267897162075362714856661053852712320357939067072026913257732003861458291933755173799455193641653081749923623872418025668034148174450918972526356890068677364120257883609413551595105693062036425007565067980319312474111551350479359141436094275938589964014487947418514255504950747536832747363543852117680928071552571752091752270111473115716178418512212501637807463952791304111554934399033476130354721430727605101244058777086398676747511498558868166614177970145693121247450921481954975380141958341054983564593192230204611136677389811681467594888922062043639328515151428458254896438558405720916768715673959400514394696723747523183173631025000759733260120025473502813762617384453881207550537857033716985983618331232466072555847726919942089468496189875796083493620629450906443240449989771004598753168385582686693035226083095532326258507405797862368750931711759697206450111897991748979697912766692435048018066005049449601718862694386583153988996440829372615957984301541512136080494093536431378826244233782776989501944132621778357323375440183984979819208691276429158490180476054391890529342358704384980245991415930736453586540961573805431933082307443421641369957712136112962278259599571163918723984534642134477554156394873977472816533880952237958761857373395258995758333293872017400675575225250758108530882761679631575886280101127267720426400900864383844560934231861334099421211123550016443181357302426603262504925343855754837744539920126195432268874532195641777400647926954364556819217396067295943322719790366775291484996751847299085766489449529700670435642132126893622189456421729644003534729633635930800854577226830705376298176288482347388213166887492991623773295073304072005545829979988994034756317434607269387244391877543798810462490536361123579763662486008271704424090108392148215362646070711839054561583521812012651361833976200041067504199199169616363743357481650463658570246806758084791990604731338947755816509476500622836505281043039022729684174341779540779210759583376861089343160623846049526714108224910122064853726496689933804014515055720505756861357637155178208189392424646959282452959241031430705178613115051171542400889643298642392374192407299132165308607286772472716903712408427931578371701206307772622540219833034264865516559030832397396087282747727882634715391264306435800979982612989001161507469695842696921176157767204290021107039196097950165603782565209835988945542711476559315111146005102747328434423549618504767131700393099072994580439964228025398939850449148119825329339455198573556248579034155980034326978428221979655096536441730842765407191363900877861034471340765515482497495244635448133194491543261597468798554117979788575788827257022316461053003693905640035418785122680859967006413471888327243106762186904561057663281913465005037699015531155290711490244186804272187157514709215228268818626324676960593578985987274866341130708607046708772155832544519261293050195617977047985345924062086151836370126683487247785875577291748055603988234269040578106926555265586066313528192328596108334732810297093014763971292971844523955520382459353199585747176465809213899955230575446641970143660794066195726724745565482866517291997543449861548128026262869548905190036588154098393450489791035821042831151325418966531546792776321204770107005540903886128404078107071447764834251011864691020864832975087639062668046858449069036646961867800253402119746356648465771650489909788638905909858622098239363707550090499698752728848658085835926991320131498144189787968188916837519984785519622782895331935364200995477041279561178766950470065738524488479152898531291386266697602368851356542528147227419984391776526178480090439190860553182253334437591451374709521265578008570773814499959599975838852992461129387488566451066232759492571542596985114785931913515583629315087035996926195715371044095585416041263443439410183285840282235135495097339511397905260007573482230396186417778234055928921009359493888419378138051707531687259443045320384206759403011356801015253143211803594326988989105120816786529246584599769991007957777256287151684958465529845962053119494612390109932122622709884152300029016141204393744564918016465881845555192518319209597780385484435921441674514225963183577717912211723090245440595914982774656287213117597687570719176749211935707462103558041029287351535137176469290125839158819957262544081342694284683451379750491103719408166539817164608899709253880448603371587412199973296063505123016063422942174438025572643335388825695994873313496320080534472956430093829861280429310870360994484316750284498449040236008797819056804417404764373836121186322176626649530117184573401063874292270436660488772049884835145206570128798682968360321213340416833418738652298233538644338835459213783607595671477107758621596884386744148294810498808326975215921631511684816337085698651072889240433318473498323658379806731768226386887116669582452705245540789649396663990804656072277406050598772620774321988087092717881015757516362106781102344830408792145397697666598925975276775880906939198624190938854356043539371400979295871286736689356478232197386886838610265502314238266184933501252632831749985505928128459172013562527591459838641676397609666711722760566566512731309308099802125974110513894313897437130861286765530428709778303027566126111718311241905934893402924645034404158085167764949021860977124955413393583854599917778931943005476448480300431841081030696220952107384567968319079831723718675598326012606974725070164757265006459630263768748347808919045898288792978432760963155962715773210053262710232125302249927669696852598071933112142427715846639161471506100202564875227872045872742506768219077415555403196057050621710811304240628171980017056773545106327203088564138960462877950342869117671567225310943545682239359962090114704119920455042923029044722474295454442182748202796408303387721143922014086255541644300838183431190356460144154677478648913324089603300415712513940926806262147013418228646027003356410620025829780700460488441323521595772260370104121738392579952226101017815757225563796762396537060443412776981956930582599880392902511005218064658237375544536161494877064819747118529773977703142950212013092892082595241712895009000842797231316656883480634339455106851246156150783649816358831506515978138499100632592448678889463038255829823013100456817504411810919428249987088915341576010142587618688055541913123776846335403237496628380847951163704122467659692003610997730890807031167198198224439174254826503781026582390567530313931209904578110699275865299940108396460248515793338293268924365659491405827862218689279325453430108093225599978851075618856705841482999033125026415142195550915743441157336180100621699027300582873124187135836663664988399953656694419940716103062339839699776333531603193990166195627313887545609265540780918912661170130495073455521641047428474263713223330787164952053679189384096663809577640820991668801120662631779339630176036286271398297715487880021886475555002369547392536436889452114757321764116800806798007349961758350454069295819682400851712046396806755950434467767615717378606312272552257443713702660902271396765364708581938563274427390119526448969185742373229952442032247184778720835828243231632839183827740859718293732941684489266212271109754675895563457657349660368072055872849895580090107010000214806073602442580715311167184437142759500874291165288791005826896395953931432958021343282931021246911103211433097603672114746963430224388508682012627856902530808033209980216534854594252677068235601213485822092994632675089221555564348239311994775226949554515446858655666467859012847845069713909099976017583258577945654005156728572891741645346292936489654658683542107948542709583133301245761268075662277028999723603331408912393753426847381242835788405116012015564948855985972125121918397887472844899253231571125184418603801970818027423157985161476948081979912337274133788861225893225466079120384740005172045349931165194363791804586871976526624140855977329801728432490920071897994392462128125876085695096924449871892943585004578880915107823977318940141480393468984924238334464355098198959533794885598691128250499896218607472271771181127954755793500156224976498073788109670606466551910964362377929840328553652952283583145935534343291769648947799397615181749656316458979330874995893864767654356514036861749826992443686405867515463712924394225135317308453897788459280818869071662379044407426385527587562886262524251999057688844694858254065820075510297085551016921144012773150925051887012277013296309625487315314003318258159993626230078805695721273572940040918224547281118875123621750357098716593008634213920682427977395795808277813729719725396357647802423563176761580956305835077691327813812065090228401004307290034261468566496131956091247111654768461320863263873489070818298954247181016431053780955706918849504687465515105682333673770094834945939862936097235758746674048668613685877056762881719550125399152549516627309027114204339554627533172840096419857881946113009974026676327321441962038196213488542984080061528132942490887219585308976062731397674624251431380802964955183845088628743683750322472110981578311657183087832656299183773630811266174969834082675039182828993689804981341648829345542315539746976980157139638439342965716591651089504341836287087112387254738572656411254500315543029481544718358410378638521868728712704422265597830416186980468490929157663956782223765542210236351050928089651720852555127260684792616951855859467025361610054780680663083677710634037149185208895871193071036971675683267861165143883359998439570526287272559911166287661426280448488523889969255958117731381380869855469826612084189629368475293952646266130749255789404314594489545668826582993748376981620274519402069742205477219477519571417267093871243150991133975232523908819317032141792278217366710876757599595934421047159561884083875998682922179060210870716561491952788753265167959367007346674296465071970815564414466190046299912500024221621905306214690898787317487473668544469987350893702068640464194275828626121388855736174179192790503368718492578520216711818746079307528866818189259441151805241732474765798341181048825837153117849764645940522083999687137297343653938811234634374675600835309490372938178370205134583507480516559798713130885519874954501020261081349418681914352849253045527924873128554101396098221625515664673712810804804533830565102673507313705609247986878506269618847205946539829974707189326944891743354673031778302466100006965493236769984175723894630514482328749558754621927220004451932429304899796941644157576548633958108111511133002246515660816032815898923849789394265514440031328633288984563733724527813665187315361641775132938632844965545368830433339298855148164299190548369908835579154302371344282495390813401549577072708290278902993697747898016040586186062348676937557562230653061123766991660676258146247669045533244944051933488623907666629414184214530911919408307495524889085360182235726443542978057649680974972049694352395478184264142764132186913916728475904382319574131605971991174309144969465403901166220402170023330013976847657458139284946181918755136140015986750562144776644219034331989832516330201820704785024835376717433210677141603733440401995619309934258837001444083043504627994325900137924206620038470922096732820111836013414357942032757414725981787039771982909248423930965821585331747762140200385221884879542970021060935163329602009554179393417492711152932898470081984965162960133405406492450057177314291948866131640726526953696954926852719798054259708171320764489511194018967162652329249078023343841593665167784140607159511605344357434793493248630496093758663228648132761635458303749748224797657711563104655974981919870273672721038114824011105021219171890606058155297710991960792685705512417534050948868683989271245434977754197138596865117933411089414875135771304334096764307112501280131527074235662282133761048246009653681108894557869992587328014686760519067362111271408365345350884174442567857050994826127363886222639185241520874304653050370311732760647937606456815243843870734944424517012780578883428137934324735201643461670905316083559789363674775707223806071844500158923968912836287344401270439831446284766760756371342188530016847262655963747363558997660349276740658654982015702707012275672753286138268599500082164642400757332575527652684182801008982884529063478544626812893120976525570926100856586486019322467545980339808698287112383082893968559962814594646491443991997864800448303515760612399014748792874383958865477306703571634446759606805831742859881567111501897915210715042634873504108569938738526203753295403523346009648339291501480087783585472866738878464316646837643466725268416292406038554406672578837341556358820061611753445404075645836703200454834228176701435661777610568312906855523140382670444108581572124362495867631012140479614395026415159247140710599318357822525336299646916132077117638675048928650920974844245469374570009039709140694965369382013125538519908374225048512666588895432184334441949389675417219589468427528344447262478741333003026028322846699213593327445850311817928032405214721732178090109708503185233520826395017886991272989205168769519478949065831461961303835024808929145209427195645114445741628354706598365843154971358051724027534077872190930715918025079048149294693819331400830068735586979703419179716961300398588396110150189674360130938026235499392861919661369726311026972645567395532294258935189367205443159160592612109806712971214336484052817281718165633754841698848252019378892232402950593285771557007628214040826617684528064972691807178280762704743267367190965088077557669961702085479542749619461586103738176194872175636334957910811886729581747452640679853193720242925998714626417997342322754873171698992194323296212571689604570588356304755779856006237848547859546399304296132495502553674586391286515343942402463486051202037616613530490797615387102613437601904445478524247853901809051472682839239844752217216492585905334166403580811329217581555303943958641913576192367594038188141177053924889934546813969676551050002900467242360527039476846645043112240117273767003297354896313604701374926324901292466110049485950367588873112278204505100755931010027633257423452208536194866296037421639236788719852338408862368987745810743586914150636026638009606809051296552543570726489723154077016788003224216960303912010313303586559400349318632289336424208230181768208842820596262092369895809334875312409570351174041634667476627697465582015577643936994437124802879172258538959513472075294419626945194958771443137534434383723750845959040337038122303762786713078073986309771240617799187496866601663312715456447469489462294284037134103759380693134711847414466820562669521163980442081070777035888967908030533724438630582462541476782825177702881594781682372738184785804772806399830069400297855131425708664001266089893283988098299525672403164435062636769829904280954813315824408215637552938029970810104389013493360378450824170282958026843005405692101513667591154511996177357544472017343049134971332840701452019469179987778042745392805431512168101341950636234402417567751017193645434392900566422035083182826055091510377664917915310138577369798472070922336375228859536391280830099209097018178131384196389704096537065875100158524629397431414963351731124930205049696145630257380868166544645885567540509294043508315357389673931480984918357175898394814496456388746080244920460744287609249145454191823536864551387452534441814639911219956200344322021247814872330484559677310167979551959014385142177386029115342029325380561497902434805678824699425558278364499991042689372733604799704240611352733921351083845170754638032192666299056544594754276369687871637289914109251517451738723420881005568127379032935479705240310423552848539460858541576119039374893364605564909490528459038810149289035728395674482283507526069599638157271508669914110302416645135358988824360011757232176249857224168311495129656563290850990347194996184185632110169032062551497118815156148297925135359942309454337654264753940388305228053010556181579497907969807938528017618430107697068744664039633138080600736059906935529973159855505846836847235924108096543754554148896246457601013811546704067796368196685188055680183902966223442898293138928231649057579883250463761156330767899374185912814493712389794639126719999078633792331222530712916815797750743642865215798562975527369523798971974584221441219340715627698359466578046115191058548383027428942415269381871502560203171311911679695404759214130337954972748621143302591089340888029860705045949411859399170947985000113111510426196190806829487271147040638862467767511030859361979757758064458457049454745231471539927350045571207391121683711522695748028106715472084388390224792659333590948121893846174994966441092080536523262580994976772543947874714494979392472677776893245636865884225254481843367472579458549646653412395863969213227737137803596366306466132629636058569222493971800495875868599161492400397778068017414123111371932651278914129398690614806510251185772188645783570327624601946783569781557987945149010575932102096818765432106865311136292811883708570079622541955807441737174178227139910873487433176053567300203192106716623311966699532972035087347272547706215881936682519602545081085835427765787081696060485315688803097625357136688296133399536361615640895149182884082404827819613040606820078576703059566079327207755268578672382517638287105808164718138228509420051565170969211212658703631106610278721492117361353547710829215734443509527105078025459385515998577011500911800437746223470382080178649369896894035924783860383895891589940954423642058601629309746671009033317820431633757056333713410685530547878125460934536728119901175029094202504243859877138610754923545151187837498890128796732550719152693488549365723633976392774204877470490802588985047889228938366624634400274055403541468910141535969828299866817983901345832592559630668481031730144141276107886177453202473121364740604993885970994285603875175371143447422648334155656575451081285162178500050146260455417934063274187100823345600365756337270523445041597749649278757728621358985927421154637107448499633409681902236691497329626463040407573232860691757774143850697491161890557486082828427310953790184164360045241543799407315372929526548826544503298617833968943369628312756330576615791398730928329301702382830914682951200692974975243643006119416769166032948784189793739810115202053750890641848298000037923247061103941843996750958003253368780864158942575010262221154943141002515866456262309834687808045438043301627692074333217092581874816545239093784849009777196823169056021907866330077016719222102773857414731536547094865469162785011671952080981238225683217226340437118580504719975350832292667486020803843491823091388662151566820600596513330505722214602700519813791833452309980889960228947628274982927951862537214228384894905467436102871301274917453351905134412259316223811086881818035019567442556711137486220304299639581214887710105384879343853370836584336319972889489015586274635488466070748661936220630841431035615525426739055985304295886510345837288512571092328135554983528229516539522262117284655681428514462259457141305124530520256927763149010346018898738128727234735778016846754116545840005754790630050739052730754806562886837333217432183042832002526540018696136391406354499556447045158012843944609989687416163386970700782352575006827250816869322820265806744495377932520343534419940103514689253684592644709402261468136231177403364643695887180289703726795868655140753757334924852996708409203182611239416934799445788017130879407345481187494646923395879203015877509176700162857217795569942257322924058370127369094546299312410435089598547196085077531186792978535779256743420822953169809798232975646787042317406213003252945564290317322628020800811031197512516784343883349338258690600266986788630971292043026125206872285526469969606768625420507567046422800446839306751490601846822068101918972092457899996361889301309573046857180471140021328394581116330890107713906990598581820783571481665225550404977134387427759599330001422471772440179363649929652092056713215774868273490913731425662150022092280874091364405795805103415682836179875612621748582827977043604020005358954813832953133338635118613454342188262755636818719123990996025436662534056381622701491464670003328822781515916534346840876646630066012876689366248327294935932089614390218515644722578793705544881031546184052091171019768597206448547037531015634428533604466643833326345081104909413436502716536516895593487200996207302539580080031374364087135353381573451060573516771651927429713899954144488984331393204071305731114522733681114116525256225982966226013143097232775468273839697902102783833149692194604879081044979038703803775966559354673914728767134098907561569932699552104544828415237341577223712397633506924110156936135624814588584036197806295613149946350016377810104731940959019080059327588969260232138341434171083752204230398403267961244983666289529951055028057818909843373016494237063728696208563823735420236802869975161926265621080056335243566838845092618740123108329648431613705690947916823867897584139641767536049184188015747911841223119340654224715374127685794801728927918364078575767372894063237221065212668625203156597854440211891119294684787751274219669339570794782125187204166240422057750547974176080734392183018552263837250539426903173400527200759633926616511309980104939035436455181334414307686926153878648742115505009574707483932725080240677256813688734150112185671133350997368064574662476843145548788401171487257046485674613575067939522246355562911381318684426426286979180071882329803999575527063088803518962909818808819995022820893990637961255245717998455969959243372662093945435839521867760121120880534423935584714876786221001333732022181289853607898247204111516311152744259331694821172892758868764885623456141287301431304983610428592102310854997156092376026970992634786020258339681235743011359497790640874525635610867084656167850766064640495720853108363901323863022330332565478251771187337295890300225133879893381124440137507695093243776342942665071469415006735219008600888203181863382969025271424670180838417398569937669257634756709182235457839998112479226001134775662692353371846136420317770359573144596149766300654463761497855046387235611928717856526741280957184834175174144328607203506466266246767664989993445286577591658004291284491416267256303192782180639421439929251388507270743306026553939527678073486020153103862619207492116486143198657243483333193807335340939888821656998950527981322998201693911499646452966394661642217848802310539502597343003767531063328580823301308789140614636816122908760682586530485957509069784615396803472984126799671533819902121120524611144698969311545973047776911901397461545541130899254394730600846668085371451222426738708040410472437541110600237675623394776688200658318352008357370603323091115260421263771938078371037488783905593682959370733633780911225307919533364285115526760030107721448329961468240349615402806887772147246489385028355652033076932674386803689684767216745768492399703807431063849775515832719322241215910731536376529724585245170821572636609642566451818956996855436138812353760688007117400681555456198564836350871734254214376196511763576704706339916247480518821629638298361441124294585241092850089179687177481396316156639862792779329129412511473830701728646191025471026905943580441059240496701044092424987385866756366662429570404178120811995942762173988301326098455462134311075303695069854617108285783945558520439994711173058946935089462023373553362225775606893821359138814406010072220830530533001133280895403365324524151570706077500365684407954769949697138810950259064034744281197864399593320053441336314341065176065692838879844849667263437845278003058304765712418446363382950255910719764533800954473200847781119631235334944403987507645891991396177620731148825211380616432617092230402310540302707197178328384428667606274191953744087848711037103410611179661818880930799325051116325401774669302397766317452122199226365941546083241906522203295259400018480864544533704796399265518269230586055261980349419543703195740444617350017518475277445148477208009026495586385947433072061858417739400141303874230763927069485791400736306584656930381277901440837311649129939163489597494615424767681394419737293893703192020164915850875050265681426199337544233174909440478947169196841811398204171843535194862858154725869080821255977077728089480958479990049847658284367870181207202444564848919544074596104783074581003722241327723876595523666584608327334512168256227394753616756324692129703925518011843109705834778312237378589226578234305215956517075073420627560071750527715432370918569700998175181823378655583814489821034841538625692802936021456505464287450121564156186917329144957783869597489782692194281940083905291768552339914241098812318763799064109122793840232650949891388457334461824808642543719687619552104950649082729294992288108748258319180939129571003945289340375492494186432581734528196875587758911096208291205252592014157817032550264627812386678750368813442495342432659145379145335442947347928176155048083886200603209817012170948854245942318898417899283431727990540272244543570023070298320393503214347045220665054964952691099191119599200113055124155027911416931828802422830935605124636669888192770577614704261087752325114544753672137297720235420869091093938273665779025545097518997779472834891832723859001920467821925514553911349577493253866566588174677078641738033801523220797959360098881159899746494942708322294929649558704063174407206790342179953869492324894203882724526892609214146089616248495018978132465614229266873798536656988517884008946022412460758993263267193852016088378361622837170157909825328274959002844804286308448051516409275936629501907040035609497480723926648372490623163417985984184394089010422425274999285843333384851922890125007535689695523460521153581443799655976421648388865786893792653153593617267431163048793212572493038880428942460474072911447809948962626298709005151038485304800883204739044614166619251393578296523057796231351579552674326458839102669713917787830923680804654962652930610182676658100299722715378005684648584452344793591069503223631543648073717967463338265443137688811734634823855167378969839922716655369109322794112313136178767121092125704862805470903978261270162953735342538658588495889483343550527294390964248289843840152431889299574149781737504335814161827283767012629986823249111305893702093227134647252684800487687436182839567822695556560688498252655062847002120941369521901449514363977041435103556508867032364183724431114490582713503336287986055800361912707781736890837337818788710105515879561792821519808815193591312245053205288265643806763131020734313741514805471430374712456005987572021217537669972386469637236509456004312394908603012178745883788092719915740878922136521519553506608067080785546387978293169333498752320696646632817268867349799292119649383363280553869241941331280936503559142707829891337337111721978957824980780054152956832798450929689121025250073388229793138677176173172908887269578460341020381550274183192272023724365873264002680463741462824895251088098443738042772482116343303440509664478685430275743503691439288570680704072903557716385378763344258586603984400618131020832001835154471073602327704154503938249652968199319118330880151236269057387612699610736464597168839822896076322272037691266405815496451937408935492495143688534139769459741524507513760690035957149263542920337171047462504389984918641420552189890918371307729553130191597291068883376073638968540247455490002308130025946214960823126555364578430439872095697229095607054554943157489337121590746871987692600343245954689726553751700154051123681393357977120840394164030930451171398398785773075216702947025837091668502682217372647970981188581743494122190570581541907374434806411831649660280987860348204133292155796461562807335168477803669019500308821123595541361058312902177008287435356857648939910668754668908098196381482954551855496409804008026845060818254540084844371051499948235457059869359859756779446669512295842239647610445954036289041679513431662385835814919584571038996368982266553864350267722036621935638806582050097665459038219815464709186163674826233016231557477195389235060660083886742906098752880245716277607875000087927775498207963303535003105233201678390288985228376345537000122638388977359327534098553396353483075598466583642574058825655932869819926884577325867020096445584557686716420500435630955580286248167842000494503677509165015580436970301406567263487391826892132934958045781311637471114135223167596463903449501276047319233817696419367182875451378856816720859731811971963838618474274555751544011521951360838293821400479934452587246068925748462804411949459810954655756466325803798365556939062492370919202424716804261421507193124808849565303028664368053680381576196777994130236531431062490998390909673778841188969831471146408890127271972575950848584250093436875418258615402751479339723154038112620665009564132376522664769974008022500427835136416783455867177601926170989843927340597991743157004196330707574910030020432873341183269696966162521910026881244214798521998937747029412023128102077313536175513272641142079485729067513822228949894149272624028410544354969013872355367161746130179517424829330384570642743767763066588893782271287734346826530037864281153072882450257388391362248929021409954774290880890491220539401465697189030534890605823240680007628149978268516160063345384974615054418488969550927747075425240659986636510503954785483665044201065471956203034285535739931034655834613502561816738113180028087523660978117334226572894695505843015523526300825359682592476120174658971822273611419712113727636144578147452474054915985260344011141267411581238379608106472944218908354431091155350803753068573619629281051603844531780814354450707767523687073912718450082421941908325595494766838286275561118833814297286019788979617970150075504253200804036034350433513658211116472372951542250139463127204767658410808864113443230259622662610326484416533162643531038917449584286674688052471760537236183508429723197029494146614592349424593515283980111740730414625924323383398886502436044832767563078298173599565831641109515814609305651550311557613636781074276811061309888766590693510319206688430051093425733601410494770902177864708331808466979576324911319973864184883391114987982563938128947809770990136585813792200026921215196474584826849269675364789707533978535376548611851080558910391968804248911939429548263193979851577033855687963444591518342831742616101007756836588313178345512568820497148765281573082164775936017170085633941093874192696334445402405330360310029027152336771108934289900034620341174871813292813417279842043322010543816730208114319969433399958281738888695369503156144722657603023200380821460055595478169994676882353808245688681795682695811587597860742412614889422941481446965774763451094286025667734756106328535243482357487715832268229670731664354217553555959958893327042188359236867783201531611051247421413337255435873348336052265155572991582439991330695678817831548562681382104142155393136524087797592315513183218657829681647107942481152136852885610672361565520003616796175327609845694330658410615243921284395352961947774671180691752118392250874303856735120066181477456489163813928984510472119264592512416874031566891456371245488765259820703013645965356388731669390717861744393782804420010479278647291347987207512929904479273897569501076032277033295418454782312703626445350957341862957280090512208791495397781832722373130890914512205995138173035535638095457276526361284782325993327109638266162931030499382108547371129435174298430578352095355201944620370043514447758393738584300253526623984271655284271377594482206830612383339887913798447875548376862842647060223611637467959266332997232483464139312343420704554899341786840735625189989365990167176153285695988155307319547309621142955319884784912529210374511620720415206371921396228087829383397046067327732909863712543799897626772441246156791864784894975613727828881724343346795679399794636997162536389710112812365967678835860234471327115253171360771662657477446674181898164297931806865336657805610790950378837067985528022923540066144537911298926702474130800839509726880959375464896142739779443546257130490099802655052718222292889221120637653597959348685493900341694553595224839478408572690144235753049055294681062061004801154966795713795897622746325677608473243671115809284650374153861189830014076725391278381228171881171232243591126918597108777877464265376336061263878257173539744361993987483885744859991323975936835332130013954570373589832174579994583766679806505083419785930203676313765310957505287034513100304844870413333730684091389935939855895324019629915698814231252258798574214638713772624097368334605632698764191215555938139854521815702530881857468681724364261345306534533579397043581930249673744616972576211264469706581944538942202854304702188620431303376375291813995931491495293829013973546079265155554834467596320104168727558015252573910934083398373919803791583747009400742055224333492248087937392620349325095369633848918495142388615077815226329458889282725257200794769618842749675879071582816519073085614908871295976896647369351404634195374785911885779174504318226526202023950452637753656233034444396340103841348019340527587687591325561062544789209508332733605309357269497482341642248680146711127048839900997761167140294972266169788208856820726180023739856273498545981053287476984502028528149484357211997704292080649255715195288924076813966046876988795648777747290672974563804112128970494896076839765173535007476361536535260427949362250552825942016580197704717865922277168519759500290022045636136924980049476186415011283963713617761166100065659418454458942399194118695146231787410221842842398170940832859744080621767265724493230996482262833699537137058595991923116361270807182022161532366803482094025528368309726283622681099796604620860541518160759500834982076783562543497302983031662759292448569586199480556353013164680124814060393998246752690823450510694959056602887647366161802218673935702727408334281514472514410833464512962251565149929512199909774082798777101740052737590908335290738941653494663990689280982043099162152407178342134770721145085743102092939521542253038799609713129922635587502620267810467719062578577283078773447613611267938592479330958727340021459145996772613509080505623240536565560295352362290429806816210734891012523100896717767924673798743762484018407076287514624355535299612086283790460562957075305379350342809285688240957655074245356990411858517497545581994957281164306099454986610720595754809627610017082422829954344441691798172546310220565939779241025353696944101388736032815386510562921279497237583454291374167522800716905465356797698558760410363471770071270213224550670633365036371458295337650777095254475790256470977753842210372783409725392793416241183380115338374591411299334961767972365040412837573976559153418001486610955550613313570334224786037578997229999747355096630853946467267276288002872248443989685662637088906667356221668413917554307998128537181206673848776226177885826770321884914107589157579365763373305781782368037135235618776173221983416742282650291755680679521772973135292614939088642922056729726487672190819358333000571441011095358400875065890135569569354492457157444836938866249339409634482579874236082113457247869553302029724255868452421412564628757636277212880453292618748333269012967555076240641222064463317897356709576750946450049159908441733370127463190499556701198817888777824046364251684606581865563934039654123297195384034958800907349423983585258934317624239037067292604559218501108092816662905839806492337681738697930824834483374876739474550632566609973498525145481036428290305367312157266397643945513868693452238752389885027113521021396027560728734346804970009610232088986673556771761395861414879091291983859892975402174800799857045741927163139108914309355318287505698742456590419830370243983812604820973646030148588644624075412469447175915392577109340966433336111480346015978893111254893287593117669864057971918385430529527283437904539577991871384091391671756520050387760216351314723040838871592838771985085232757151348626980319879227318213705257460882034577741816072363087532754771530078842044862644892810708428181010231655108055400168405068930744980870153797050752124853087073919950706826463952624507733646980787275806448823274659642925177812475250222605529177544225791094007217306048755082844095255178813667045116071819201307389429915726538109611568359729825640885191927631723114595496577288986268306529883399996606483019866515764379563462683807816737618391580876266990049295330140669790467441556250700845820084678701206112028259733721982049565976049234106501085565843663158092221323844107523175899024513904370163594528908386098452073184239401344491862695784932830625753811500332687085960147084123978560524115294621496037599847905996422990316460623378208581374131944624962567939349436401117771193909142379708722646283379503503033692317030112057409259797334795545991667353338172669377056792380310275172092530275718565667360636703394962556508007064051985247142825979329298902016036399882892989344705286219024037913156048469699999032567347873370392300452070415090971287643693032043965878662862418703378655050705646126983626514263695033491850915405560579270593634603727346322671864815750778287104328018312070187757621746896311867617962178886290123013369140806841538815651550461363450415238002423727493123139485595876409369359609349459237086136000371045504019168585515000526594932850790092703745913271671147148454316858794696986963026774937843246096432716859973969678850917514815523305901501302458178912200631705979816626045122032948085325783000428727525999580747896353142743772445878839689303171680574182588090423581744043101443287102619092006488319531411245277902045164187658551871051772711174759777125742372079853081678471979011200516739755444005844624291071143928455512257659031060947199357442379025985526144779793308457966391983116685342443937701882732310311805143700062480218973508071520282509395861538022682373546299807970417885657972769081230623891606846484393404139013885395556854267025673130122043338552811178104472580567139382721931986071518532568950682413757972145474670813059696182066915444039017048092392870060499638704336056861963619111822042146415951745587350794055006881492001156928175025135039335067513458878609208291974168233183595985347531100510766266343984234107961616180205495122970179428248066036528835380715751367776415971560162462093919621549881197033671201537757106467410345839124838939854939737452223570343345094164532982125012609625364654258608369520844986040901854362053944748429735739416132750353413810448671925380026165255283138584436617438855226448787983042880729361834410230056554113261275912968789485344861366775061417481759279789834115899262057959907914345943059089959327976063917529591062346968215551423318076788995750834412893804248115372950928666728219970921337529762834915465771068323812355915017800845810391945615054657896360048685079366634309137248128132849896023841075822798812617142304660776312231219261542197178161523713372320907789775589839910999664971071855878373845882144970790113019470969627324025704593978130714914391427736230012159343005052884932296934529865364908254847885063723440468206146317483497160207277112402792831683349509994023631949997444895321424403301152061855286107150164161640189726030894140334008535952304464334568731438190170979407559189336575700867665249285533488045480504973778062776909429505955260914816885512299399982459543235268308103285904393482863954641315538091679341282082959766709737656501829823427160238985085289945223165126151277993396483354083865833908068389376746614063221365676127658973446618827550324557783112705854153085493714844648385906036073657186483448403790856206104576865879981164834299890589488051043608418324073570727855628331539370017478041715336021202116799118677512358981503102604070515481536795139839794146698642038081710088462180182472346804775229431294503205902214621898720952588804163402690697187814613020131054336617074050916135671322473410530863971353901726001833439727372272022466302944043349821824401119223187880863651117381928383822842579032002032521261475790830555792207131562061898952776620966250692327658460918038290616002603227277274969971058491281333580195098085157104382787238362965384997616332947775707990157976204560761895582585198049179991209918989647657624848133390463599173073651883151654344384351845814059933980559983796629031535012882298815723314920496528451563384322660346071363693852962389676485179693184359844941935713016983296924761255373293579771883915844169204380891109061411686380127123922001040500183115369318447899561875512458855135700581278578417392780048074835672916308375808169386238453932841101350232492823936641664283314382409540865924456358145102754731669766817032803046146594004626886917681300153089434950463572036923779725497178489650348362326277345181859619840785194448924730308865185344928037619920405375390201748112683543898892653388812353720384078661513619025916548525692677365981216053671260637112147662353034166445927769179496654374029229696759721891516435428882213142050937412164468112640229737845947710943780840433374888503767301083058482982385884776334397936456701658260971799378317412359179281400884383606156008203465290692687467555014597931006487019836098293908399422952630247163708694485890319308076945023764311057381099122367820277600488024799374865441420214870336830986452959298407793781254985620540782817762519440240738129818170036179772613300877631349200105731585300195305307949914097015205640709216572491397435326368521880230221259804912587016604108151382583545432059235524898360669200047768846700450442792139280028663702539422505309984530518388616952866445658306719094617860896543436569107920545569948579375109196209178589856580112872302741219717291524535422360984124964668591270693058135169891129897035607691618897353330139215383762934827822859501280108918541132828280507407236829721006002729488982757113898147512727749812164222863142896495293346102851746825033108976212755519085774168266585593569406595637278733663231048786499203551627587680973739034876680311815840359627645699466947475375505657300709751536160207168391305818227563767113986914039570002928661428961622135148724968927527889285952902378746543779804881723140619487513562811210277812039829640300128785221327325098194565956024240101530034110457983834259177590383762760679067387645554555004759309753189358817134672228181207304504474438766373898053612041592369393189015511678311417676628526230216524126092384475853965161004320291900136551266645847249812524651492169212438698466595577881740759778735371938044156989834097251217674647254849151649459872211837560780559291642859096486786953485210092805192620963371912513456346430381986582347957256075957284742431691692413365324549288394115838684243196294575472879038705750771770913462964740415295302487842083229415008256664945563316250076469727684114612852073932610121547129268570865843866142269032161412984438640898604081068134820887859619511328102867107272423345181422347524534459439042751095644857286446813298611029049420336267650688141558312640911652294019190483416915445532398820809491067066644847096304054367245027993894461489279097595700810410032649797641896417781272685330492621160007717192098137847798641126647714655139954118232153235001947065523011899301684221441785584372652202175488001815078824600632186692566689717981381600773030398103940132090619398659924810330994237061380890442493361618921263795109372096251804799326750300996015927240932152217487751598360086214630538532995320677842977349078556265201446669346791251726929628930148814277049013339675468332978999984101222277425128251166601193191243858991129818446747467375592231909697691204266568741655652131918428254518146272317668387536789177325702760472297747005788316369099982387564357242387715056569116742825560995356575958466868843298657577441731642200887098507323243006382497821350232723959753323033040343420783627622924369089456404085376984932276977793292403881827320512431557320637619971210144134695223301438500757201765021638066637829446264557706073924523416377507438835050611044509460114072270624854748101277432394818443001898573997807582332845482126120785607731840230942924363683964828431888160715826592644231061261511314643337971500831234370899272299825529625056186380544002489973388908341380279264106272570153133666819870320214328006606525105967365858435985816866894017046625239288505621375662528460511561486668649931276683754319294733789415685670501702290968388212035448807544516210272280319862158269386370092353023219423141498717371725349884651380262760755503310034017855981801749290349271150454720379756354549394781555436895804644918012935436296683233362479465704101207274243434669413462559069080286859212026740764135016926120052770467061337002079055244897710369705017418188962327740581996223911427952393178276585594742277402609832704895911875961265581791979528355390071530638996866143180637980356576970099859704169921381844012601785581576055042632826500856695623797092574716612302238356413819035675520639131612437829115860256137489038117413124957323303314661188935127895605606332260023741947245580419350951812839618769536495485671169271538984998311204426614040010202346555162861529396679870491381372525648217680573801557069305017697602523241712863525854534075962198953284962568211014138963452979589928362038031120905648532328407398053228378858795560394203645788586743394433472818059894783614962175939751205456166687496165993525489502595049213229138201380904300771576497822179096498740850505505087131176190484677455343902417905806068176052531099132397910377523455347910974701787236907912106110715040974799050967660414139618503271754599920617186424127713977095367376564547839164203252516945189326177858157589811926751621523216046422727248560087663568538253315245531598573862068343603897740059866876468837740762247549958133949789284015796583692580281194597000549729471590581315761259699841742494776555362505172618846341906528658162364261085218028891999740563378589953935309620197230660690619156736494861561502670062289122190331508030540099052285164327333413940327336150459126693222420974010407089008441156726589901996580365249620689862474919904362004938078470117727629472969474534446083633564997559386890241311658782906057990034044083270222829277690837736597432277407772305819934751929250434758172557954158649471191737334132949036715477667615272731839330053070679392647233386061565418976291966687682907319893945350392456983517234825295716107388626600756909038506299356724731352324848743729710849955587032252168117173565532955810682103827499255225302723636356143244659336667177150218422299599191618526411236653347062228901116387464319705853168770360899679688819925542098096427431846448482675708774649169450131644197804254198475236872535735164619460346368489369977391347836186761113875258903452991402843596454478776914863721580960368048132082379316370057338832160411196668071228538965040162169305322561049757525918892857244378764789247960083241337707248107847724203754635444133529287104594880093232561147369105359667621482117513377318754406022224364419822276982793083677875809302444255078312379032491525085174929481267879294146161254749439900351507702722616143434326919576560590147457388871724360505012369968202528696338869784080370456764022547779422372093914220877899371327943878408912010573257774862470379805380352427466756642373490167333078442900469770656756097702326872539939361518963599006571424068504120673788348712513897708705174688736297254733119612893123764572032822392545123650213772200058335218853161765659409240703454011774402471132936000369771966419412299180560585061692466656856629519718354184117228107975805358576815148477185505594241873810944971562864849019782649459212823863994315415530188157944201577967759675567883379642223116950596788577515350308788090055744723463486734464995912962975300232729770043288314795413185756453261732414363085511222968363337038613827819835950833608628922412237674708203676332452678374427077137002369471139768306014997847841877576999273590499545312335706862117543764534120483680172077792974671698002200816970794543799542062615027710941796150362875665789745692850165870968939445228680345024976889762828202126562294065545104133093868223408839946494905907076548022742576892630355865962435052405064709903567925212236228715397362780310346402657719390999786024253053262235087616888876335318292353444940187999247133787006087850799042279505847155293633135498462554745792975388851157776360656911630835544879449776946676817347257853961668528069803100341801014847688016142761926742981301513733976080865611738756797071297968729189309962489685635720972255581717884373228008771745850511244780524496648199468602299782327300191808624562379907397894850681203540976415623958865033111072621976278081715447684298557225129156355480414216990029619582838460187059957009980132795782012067641467567680419769682063607999167930057909224462593827864986635629167318811723780217548270530028015316001071189754259644268613666324164596429942347812405304150142755280811024318457841564510267096861356550226248751322913666045974030203377771933690830628222204861523278653867572439311959239176482268032000454065148871516426109270880971716265842782611666686953714972236667295579676984448649766961872290469372838259728824745720764518207541244929488447720162556033315671560611074807317065188655899038014961203435697077187538352159524342105707217988857654740042822303277083129973039891074341052525904926389802128723984073451649452753052165152409738002156606454309222281810325799711816014097104881956414933666007055847356923483887033242311474864393961907368863905031677638084687216314756705785836249102042724358084660444931159021836732206017706076380432293614812186897516247268301122371507882223351768722057167147875063901084248099057182841126974216608925918651429696781104769585749398314497681458858439662654036854301585790489660538732674082471214531549653569231772104960074696351741083239471837462375346359286547300960501301498838484897327140929333690105259086726996284074756713312907579512320788176365117346375070725431263209552286223713500846706827951156738521929882913525350209374691689223673905537472236170719775775719890818166389371229937962155199029942048661917218865645484567969612707470845040610036638068615992238615582345270808069603703075283804936521215895872567399973289964101405387588332024895411063158469748643667137523058899477818246335199416169862611841350524749268398081993144518318538623674208947110204661498809068157988078429096994354685657501353294908872355442219432940259360886064607251817791611794916410060481810492482675131445274522716202262000936685261246627558282663289720555512818546240107778231980138094044367782369721437242318953974536249780261104628502852328280494390929029626138701648323219944728080350229703827860749541828884761330437241840947306357147600919530151816960766379124437545278174132319769045984298004712156361016943596241810528003144870884751478070248803727497620845977404015392333913241434478146755619840514714320872601597118890516901677342732782856394640892538678028791006899193776337385679737443459087899955356206841121068775397612368163561537776227794877325386634725203082981975140000275822045378222107112127935985928791088695611011356199203875613334587505134934034584260072723231974701344427155623094427679247795240092338085053502560523747030599164637229617901141043330421702956214756016434117717916991476196762469467966273501403653097595598272258037785609740262965656528393776301637917724290721244291539813952257525352291808290085398595454475536411557705029257312628883084581652154174298225045758961110616384842819601126620523945290426082490359407313773578933624022781992402145451060040327997485759420441029797482303682782038384085754066841410890680091518598452970939120836436855046607006546419709413507395072330726452118690547365609024111864611716768039839879284774897835593448833687574849794091736982191017615170100739330677496127694779030959540651860675722935779963532013754538898825547586318498586031855004773742446825268540778419180909084903276948093464113995553730953764889000943378360995139399195290622914061011211825615808715065540326562651649047982694605959456979233001735701006015444139252548991906488635040606646082353389804416186716224885946323428034970749254833208476064941769974307876469932221299697398053621139109402519383722347628902127957033175005369967227340379903640887945559797302922005879268103227150705112810254178777877772734881258368881553640038433741909508291190380723342501372797502883243147715241254697152781970994390386014734073869754951792318622504853567193812495175342124060922044346517637731447101863042379830060741955073002760589049979861146595737543830593120194990347413459663050628692540256756325189249240967068350057710689628011400137698274986743469829975726384564237741953382220583058199991406529514229021382215643080020358644088877098651150686264607213072899696939942906343308018874447051980591037217753473831401404014819174223315828408877152838773979013638254021096089659533212710926704681354348655476781477636879395566815033576750846997138637472355945257755278172653458027220228612660381983308142677595801442600673053477320762506245494421165093544354564105203950666814883729047315967793803921697105474276872102962266964618049304103208698336388887089731026443740058661505690422261369058200160752891207313992357837095378176504672330062545278283635581376288576733965023581571934926839828586350924886224110118740045772458869589620634551951884649960760878501366782068852292819786605884372466983323236858566282386199097980758740366630476348955298251452518892604143390593727468862499741110272930783742077233175684382251194252645155111264197109569577316964492564585675822796460514541362087944454492357257376292205558382071890566557539231807235340241889809145253626123543433924362790431089000349904531159482620831909206485278748589239120518257411813326703755857477867417665765472676418977487817501858674028341903389607621645736909686789348754194206200154043783930279557011597904876824134324790962799634814244503681036196993399808697579826508980116426215773505224639376433217378678983838941922257554323579605153058215495402384621395383037661030788893457868056974497433011353433968728238682901312776512909496417542125347277141411663408964251628106810079401405530788820072108422664909001486362052050990650877470478113447975336491545853580890329580008004191855632267819379037003125982806655814384759329930167618861848549086390066664922099160420858453162929854516567334650938471215737540844647495753459596022912022284290838509339726370467305548110337141967737159515096216688162148322123460315161839920292799091092342221343362985825886829950775076408252546365010207458135915995655105784661157929878721625527349500371015047810474943626543028201109876813205593188525394688446160232488633852415041512080742763029080274099536615597522610438240973595081125906392427448604301651416398876466278325669255597072544869485503854050978838464068646223097887611713851881690063823124589650692875244846276356741612619928984269515344913730635659008068901385302046858625756601082162548965711692819798935670751764822910233112021858332873457553577768918772470178845146249698063737390471355496973320493172741198187906043464804974737939062812725416630740722988897586970205627923293646784852521846086928013356980453401846739811743980472785885867958008340334631121039053479906392380007134819320971319399340934041360175541605376539905439680458608511486753481953624862891514948564206073570713134055227215802745943546046993249936042699011854875305427022898790843540049118828353505984229976644726157772541156660925323132492397377301902273222682734169472374613095606242333630324361514761103902681636007526831666449614349771162633658231238496420112132509315343785351334313626305500589541061317981602094203162714281460666963818796685252564612850284141203062695878107615323418961530334729517710983865522199427492030937727174101119117740332180151876609210322174081882784764123109405532523977408696892176815406997631264144292936871993111714371269223846036069242165349961035210596214076364438940924515628733127578187348975807688805030807542196952924669263610249835203600703524776770937248200357387406737875023939820874313351096951328263994821945008361980055453479328002663388547615454744244460363994838365803327693224506116312311932639405218813627558704377359523561588689553766495627136037065655801868960862397005690783004217619216408762666068067974712649836487167659123803578462182156974182344013764134206445181845386811153658879197463662425777913953810242683768520159798045797438370039538713297701021919544392702915292651889253431425031154122390402495441866381147002342663627225176657319109268898073850700918861001133449637896593308379056152350971282276182521206831881519141787872179790776693293578328872708099321078185149919256271022339133536883654508075039242313980216473987355975354333340981712758770624875096072848216493666631764891034858312217666173563525352744783376340897861151704322005149087465220607858769816003957955365649216876665999755757655748177466407885129140687220721820385373544805658780771223150799818381684136088717597071792112116993207032088284558793441981899911772623173437672406371508265404656268297106990881930739085120847910409319119550956178063404963836643975988102463728812223351627665552237877844937493495268607653148496469868409427409474829389818898405330768736114197919439054550282121416634724850588827701117129757282499364582373601044142252073301877983038918061630292650145825185125099402419835304932878123312611790462758859959595386322943922734743333428842764238136263618195827305861354223451598738755020764612454528579375414051333999528698101644269343421507273334439235816472958302915917609000474886374321067418214336033349761755294189413078048769480628082755769596126255261746532005305017056539138256227767525668619688170441881456520638242499519183059695482402715488750360256658881116703308571353182567707843929556519762718205692512283611116751030050110792113987127644495267897959244351133670571198477031921365147434367508920980852155317135150613471952385538297223213343653591154131601516067713533648423325222863976623271220941723319936463333813735179472486922424338446280669878208106244703168067122564316994679171282012306073181384892398562278552078223016722253581488864669089646911914439338337581295132405838980297087458270688738846927589609635304039990438674576489700190635113188578037403397815048271319289684094065123895556246641110721866110742161992886811870178220570521094838096992789708865769906285711270352656463096272314438155378619449519141653930416082553764245854917523507178564974198679107785780981965634534668782748506939915537264364427794681512572833871434416882977898124922881923341246143672555318422779167054182730015315394116883291964057382563058281469771319627916605189399914687876687164947391508314019241615586309075439874824670764240190624079002467231558665267788679787181934784307679084678028126294047033056927455037801314155394995723425148483614577940226599224250657578713212039456066333518331896372440052212426383144643627216332845981086239686625336672960014805899361528310806237050723388185155531461479441438932357561352213254809473959112841937411601314959854660535657282180597982351698607437500909210404986539611225458252871700869706257035936888718557864180845231760161199894291630538601912614326853202792571992016773551577212685115443502499839295556597406213635891295769456681731001634243691991430443179302124840523002119122905355930075752446736814823537863418561369488258251128177381347044880987856758624022966752259990127282562674317494781855445000101688282859059350830902323914058914678709211574531774693377808745853552962551298417545446101674707985139291181951839108352044709455709494722641229845068889735970453041025665207042186704721434312906888561580866561612610789802305714404372614582890854647948885695582429263933302010827540757901170405714209536478075351733005733065806923115322368862653848527519781486295197066744989274870881177993378493772742198803771378026919741791124225621845792327119997072888758447731715680198563409393351342222625907355699508173802482182779853360160910616837184652488090518326033898836729251639388015181651321716721674660666594841757944693212306302306998372534160637246456057132935432953998175691529220860456827618741525268383147858812396532058198943050597271405262660874147255394982949851979830759126113989967379298710527918104295296219914325010452261507877724919983562120975826623440955418443335983454241485841924719301749266147429002226003528008836967645068541177974563247727335863811245614070928965589287578693239750945255518501033996319831975083331101575893092470844708699598231168687835353247640060745699653914417144540059009178031155962038168810552595083120114101507460373354604324075079798621737303961198144048983373412186022735325833639277193759398113875225618376549111970801837167590231523661663706488107833087329937006237166379335979616336585773959521682093073883456368997696481516979130652343181541910792841065045194025532935837813206012634817040878586052567479553330944858120191486162981061052980529417613010901239511973737546624575292255267905693282573510701413870056871256918120518540336358366941035401081897738939388485313102392175760114975356681318723984603726426068078386983526288909237451809759595883124900758471352238472639820621462299309846769415189980875950281715038894318337726366435502071582165238479246107579807842032350149171810367980825716235389999487539252580494801017953170633649934729317929658837091778600506557999371136933066335569870496340646060531147775905532256822396778880173179328734810889343480704236542108394216368999298798751226754422220763884757309264684723354605434197245327715116399290653332838828105494665576832813728667901092408723362359531753404840319739285849906623778641952242533620543642663986605103619677909555563697505545974141668229296113637231229978141867960163274980953367418402912399687642561404197424922549380844798280774099553183434684489749582928784526368499115112824003017745294319589820680636799891017519736458780230407491467662156246882887220380353237501017353711805170884739003762980502679326073977064570315707255563701443832938940688973246291246279304170965343631035405023617450216652423911379508241973345564020376296227746364798769389715572533581302453243414876453804748420801962958229700490005252880774784632307313238460441166167440314464122182609316456462011391044044464225905876144523522839793452546309464501353846328331151369776583419342636003336148318889040409574272710067556045411019667049927855361120656009938646552412466648591272850746689894449264268282834857523004995508060158737679203880542911183656577512207693737317526446338179114469699092893791580803866171906030517432143277521549229954364293977536768225436055747945657489740293861655927729426696920095794791338391902591389018253892373078523536463684772877390152574916669325750145555983871040203740243938261416428302911359330856401949523252586990235741994675955352933102775774779148915436574901788403770886052120796550251711204593426099400864064700932955792228328546315630538687295104579088433361713183995688721201690986068545077960665535666281076486507885884934041733118804454113833187438318418381302359797155445684170858593051784023070190550694389425758843126340874410703134481499974454155231379372039772459253080389350472304684313732351902042366872119228991744172838081506107613526018835509301558768727285112899930155020615874214435928364935890331395924059028284114330242906767582251156012068016363968607543720426640490479649467659029751965680252378674151329013237676092598023263085376214228402958290161489134096415086183358717156249095540577073359785940632538258799207374339903360689703506289530436400730698584494206905835544701140086231972888893437523175404545542845425549345471515703469235347836684892937748920664882367794775468561962770674744398947976469811278109653646616289935209625934543799842600960891085083200727684972835105899032214052670493122428851545955221537332436558628947890900768363642986196512907058402131688880154428814664204059123064901709042851722001646675306028962312345051290888125413212661357318372923484757456622476535392288814989844305795847270039910159186365609243133978797065258877424610758619443677328318315716231455284782207849576084993903561548509537316518106486837883707271585453719657006805954593170901011508404556329853856279344295941855376396127124199474611037332663878251071003320355561802599428999264684136538349052349801881187134733538518938929877901301320613372160618063351166401623591546758813861311526526252576613957138079504907845708211842103913790392046895886857984955767497327372498424439694278017412231701681999250680248652356341309444471677624472920873977267484995686142616897850222451736449380753076481795358989888504518470765471288166122136654644402386877194184999025289589612998467595231165558824907062926287938579226797342428776458993122278571453432577060643831488011668286752754401516787356275443288875372618993365990448931046708535648704640766970311960894522590040866066169846791614691923003235326860157972922056581530285438790215141939674917087069857066699923862735479274797429066266109752917473990567084882523474413307562652234854825995072949140377972950177740904506728388902235238179213312441855655002986962915454678457917636711887593411999959389895062059887440704938069620211752916726560882440476605358346912510056062077649610163107350747474873465250155429092711673918347265964656387395891258245509657272335055872704316047253692414681343173761622346083138896120144344964356331964814920399378506662294141292628486700906664235974309839464670610571880714651810854532795020174807123096324850393156773582629743118344624607785557715179971985255777122123224481445395241828894484167219170150028484931561400031521638739530328312464230854644871324563375624472880016368623488837875513277317415911046324229409454058856498653149799559312237387646553901398432910587872168937684114943846061204079098222290272867056780494733881459522208896990387869728125356697492721287512672468820005195722373012168983137764976610692885025984784393232481569711428926014893180113040734080167138297145207188059778182350012925868232071323945239341643920833268693630239950179321136981194156814095339101958434678784617837503814068522283954123187233912170837801568003772433367688106122084642517054745893681038049195459695579181046970878136103644746225071573920940610592750997842979952204533895047362536340069878460278658129469279553543136743192698139045453049208704696393465456973701240091513764377779497590634972621661198402784799961302402941148048761638082695287729650582609000393662516524579307700496574231262678393937348527480645875327660430815096054312611340700060953472899215744549364017713660560194899890100569175591456582597427402340170431811891717166423421575791821978428109800007193841357389371678229458033535391226330168602676393426232556566833742968454329701109492729550534871104704869458694787036277153435555866665782816532906741414278175351038521065093684500954366571662073397069684284672301969102126124363683047600567980138937242740739621607533496205947522000641061572717756734452084585443957671019102908563021016836270566438921646491662264621032344107090243073197391612893899430838611458228109770058927512395589247599600262619390257190673051199460478595785237307242625429281269569345378039849062265855235854920271425947584932727696426393410534549397367104049580561592432518096072474105117941585785899485297312889781985643606434982150196787852572899433594967775262655763391068707205131119876731156221073720390027426935455128010303107449148726799246074153985102614337504833108650295928780369375054958644320897070429415410405584550259638605382959029235326598046696786876372157484891321025300422961083304697155771527076352470391409334346882728104475349733795571197242971351807917939768647892033758714070904215477402061812947719847263573469531844453014675848296179249192285337330452452653752834166991630976187907743660741308590138005055830382274689963638190837347554345759434514155257100475599547783221853971608435630508765332334967068852317674040485948416526151766868598007113837467351310053890079594691387260249412391060674490244699749274815698878020877729699641179223480949898972951888780126171322130288323776148317946600197451778847002878640502509062628230539190984676650869658431999130648310698403314403070815984690009847567486439553192044253565464331289749644419952453473883486836334570274051704785264765772072392585087289285319289671837679617929638115493730543321068681098540761697941463785723870722568652896551665425931448160334483211070855171989756469274818137427480255696853579433219278823661529365758875362579878252308110119106712661707489509513729945020173385543551872007237988398898135803425585100834141779475234924537981923706651227812195748156141937810104591551842878285919314544550745253243128275162850494997322644803511445382818994885383626896931624020856015077051223624377868091380902915938942109311163524059230864606967171075841541008277340300380229267482676086871645684154316221331327829646715673165343036276125930345789939359066470472386523007338634606616215940455023981977284930983126303840844446521775701793230782823180974073394147012308391971768700223401667380839781229620585675836625039583806139711087806645703617125958678758469950770507893880823465967947650540747085098640614370635721562527508713293927527728210146879492310860431854838548180256744128982586130679589849468579445515639616541321971838068643443727669521861947521377564565341013573379234859213088580100405696212488369520660448668029202378748627788317688166916228058467558302203707555058931662392843303236952554738819565430613974968065287089465696104536640705087332711905607840392763069781690409334556949030355213806409446381921423302087710129262389633657602856342313149277209139939913501926310852730777018321160720276443261084986287070292852170819378848647592997030947230740363824687742862089736377296829308226259779551330243048548091393322209486123034710866459813430494908172172056524340602741847110200656475230756455256847099808418901614122099108630660830613042351021449893256511731456567788333693220980025528382253648571825109623642364163106874569271949387361246247114703443019587491463756975240039763275127451985670453030189607901837277448199420612961929826826308047498781707303740420369452416238224521067450715318068361737930883777340112482634413365504960470536969475258897294424894688448138514923310459780169183923648340194238943549379247448613754840123555261195591196636652938455357199020986127480428023462810724577572981501465106619320077786309006594484728548829832290486201230023759173330845012089351097254499675924861454817177249644832585630463678152451721931282253913613446445505048495244892080758901714763227929884392092258616744669215388787680933819901079111849827000780517407549521261504899506362229894556034673875589593787708002598414001171322384564081718467524137269322608605509497672765124474463566656718694850243429324990558868290362177998521390138306769328414175765822341000668369043855973892681526763843592610076221611616056809863168723911731308840597198404983012367898038059123843272293688834403365435643919431903102974633750005083051414849399696492324214807227658257321851276589280765298641730692542055880881452336571722417058676165398948709848103037393642649506574026710761081280247764122419367807639365250029234753610714800283410754669986106471847992729340890970424532748119187987613535172395119161968503578755285215871403751526421878544419521890082116327575085368798938797335317736945539786065057372599470524775668025916512363937306045698010725339546530486332550459146338831182957884499809488482562349313345734857836516674657649389104888547530042903730061502190824805936606261598161871025986371404770917238533813891348256043794743104635148657957247332865549707963545404693810208269171794458858274837467508696658332730390782717989493854033703375837447385589349864343945443111436081900962448077457223867926617825108855541230117616235720703590346558778194425357059371515317902338483151751305708817212763793662732887767095284450715141112086007338652944213075415274192299232397188186140337101839933119909701248615844834624758137123897552008893636045242154882747047618306414318069945646436441590651303847364481966529639656099958563089155626871464028344962989531850130806167978436679471596305733637419714936274587133530159683078863141954558201923966045199020996680868560288548058876514246749468733508546377378985441946220886294260138577488085274326041269849313304007644925079681723717160987701000783810830960907411647814558462188932647286568406995145814410908370328613182768599468492276901733086306016872634701321569110737151839773492427375117011276934624064250379985136120750677747699983684338753196260146613203996575299289792806346798056466931052949177089215915889331451529264944246163771380561369921397294103009169726652625281787711181702398789460300135219638202788282519329976843059357865960664441680077346248546150093179641635788548971407244597845883168491509278582233451584668573570286019870004793992365219214011559728361504208277476495174839581987536354434768740244509004730423310982684336205611392684388452551818893406904899005698437253631503073056514980136191109508989355708642939503164118868231832436548648654394029067434669993370242020996202916310579712964360630767363633434434180909988531194544116821867383291287505272140532061186731127524695050845963119385708892459204314899303845305885555869291043906106238843125145936820048561804302540335662638185265526590702227457755665643863949516327746657632929871697779209531194399557269131142095501444951541527705131108376181808687611014467001041192582446454115402318737890978529676816107530536611819201636778618295464857053346037279128366851392318444154451700167169715948498102704775158749870991816854829941563060494770899912761131489461279824699740463809932979739656860613233017883115337872525074515637023391914755351435089203138266554123598301010826806169068095243345016097552482846610853999906491649669833097647876691791520364653236465970986157626429057668987377932231050714425194886849817118233509675015726212978597910002881742224439231386749640343425144670996220353367758632289982839476951530202307061337933155685274753595265736502384483041990216427305935213185457504168870490308264785767236456671768402818229189070710640073985486068511734335670972636774420078554356383707308688139632965547840059346172430424148517666830072395760120508977483364472573940490319494870268229364112536344895460981090633882155895385414943238721381134050411967513598060698058043397326297862630669585126923515710827516311551503560960530986996168390069958680171081348013490178850053499710062913917969922291890685764148101580319377080400361769686536202768562081244619881751507149557715629009519345800307156727872876138454571555257134706179248298990210673246612687905423981917752237487107748964816235487004047894509528398748858174749294964283370253437457733650015336485989902937108310143211616838023424650162956792490937064191929171461752021389137473936064873204790980128184620198378085529990126416192841558699866587756217184349766790925834897678744262281552341119413569239092274435405960547146227878735007747105178049931500621032268700262077192190865629590721305558600573472539332448620619021947523242999036179942214261470246468293314240671976589103356554993244875778585001604599280490492929704067160548035299904829399822784815313766605159264307211797700474770841625030735480559806408189523780589874195907117622180383214345589941546272535358847879894645980694581980338734798171452913067092119048590941566097909458038124880414234574860780831624049564135888771397319924118126737867119154412192835445205325429926735474874825668574264320406154991673221697961414287172037997138082616093192730796471775494660941910838838229182040286174436397678970176875404489359362551938734921656973416500800444190926251537340332878212755944506217088537600277950914313158443379852075112971171840771710036247992006084985462346659012695115331170951075144993519786343986134333984875137685863243425489308497586664346923394996698003022040742481317858192651977394969144954736403936066199347299669778624141470992434142520109893923322809954581994613607675989894825867406561650629020714639888401978293646832020590018307426512402651840775859382020923965586723681606736876279595332996166611130135577440019530090483941502511093775364515120233957857786043455673135419620944269844655066866395640307278567560135135529180861674737156485911100717660316408407116191815254468253060025727248419754296157512136778408601118298291099933844826784693450833602209160871294303222341400647173511898917102762690512171753090726340560499841282083808269213045406217271310693538725977070288928373006182045797708796247246762540435994207837436766155126507047442884899758265844438964481680823109541772383373945865602368618354343012969270208078835970860148564905722519445867711926540345891282359755787259775393412514426173739298510620472021222362817605889754056806537084828308875634823519603123915931715583866639072585578826030011669055963076699230189044027961948103424571082988532869519722904169924711080586789320497298028133457753839927266375931067124162773405471314966455262344868070760845711470984087329256628366682877806776606241482315549240523290745028404543935182153536970272416764034508696123710686764561158763998778544327759793419038743771700142003860009923793028131636800598977044408896397310254412142611835863862716072624038669471766664328469226173307467818558558529474489329953096175716577496841893959591548658285311626622163314524704426641776276740830052144400445020103719643311903802095037455578336965819585963084259765130784098918827675286625325173677838033833502110937486220259749330135829947021362471811919042067332002122918003823289109400069377596606590023946764032300685791074168715922374882002567595528758155097917323036367261122217453493075496924171406872398179746460928677951820252735518800981763447366850239089249495633898886254146903915950243528445316233913192655826889654263575313839429393277603060438944387376157094545994991033859801993117431318278206140973808652439750618815190527265437765557601766280036784910125452356244706979289358775408358025150365972285552044178620234283820220249992301607376924671460274410959213057433348745379224836409447239868028939140548121710729736871070729011721303179961807793520858659085431327324738998973104847702215639918816820108144506671767104896128124145923597686072897588343580305530592735027113230087304997620043855100847080006267275895710776215548571669895928273175305201859405793122480273784992768318998800907024264782780870254396131820122918521122560515749395741776944080227695896772521118551996844670489889471173891893543628027665890983515253974668930821384239178333627415625074790677671950260169285021597432791102179225585202108426434783875758557188465268698738203957777418881880853459779053472705916857234004473768716574830889776753905530166805133104458770101687595952820919973987762020933063730040149703424465750766859679007148065575757479023842978692311921593789061361676473655499121236219804333104793414621836381816197514353336592358824516504411479166266857482895010655388120741431311615638015044799490601946487997677684218720476682853115936254728465276486039857292653532760119943213520000427591053480940788752770535152133962645331033699360380406675352425625815014345226882651536382672140331585109199772815125321443117926003444876717481429117939175838864308340933843979878224834458704868211715684899050920563358337164228842331631283106673865983690007854103097948223440103403873557792105428718199515000291647889217742676305729069329142815238852646437299864801180753388776268683478728467036406992435805360185083638806969290256923220275442068944199962894339202041693858861696112192835051228031228032795517560510696716529949181046454705138603921977699116279563191973604148041560002634696952993761239964207277068731054877693199480177986844073059140910676840802739166906483004457471553334077103671276855776030208941048182216645503065389690022936614674995078129134257393760079569404972508997274114933442065694903412096664114353299053267913049935953122266367800774936775398419193098910091353858582071867508762972112438198649487605759492045394835669816189974228501276834443536917000404549856848562055561700392380678561756041447151297709028647540309596579302249216259651554303836161951362541100617727761073694372320275698828712980206195646469127238266827283052522961493227517286408921704642466006680193398835266353244143819299782847897783170076077851870094395570627561638766721966258513073643523664377695311561104544699223114989499912262957357417161202202196791959721863053385980670571213271902046422283198470661787264925926453707173875977832673807173875385754538819232570287265389501176141338396522090147223892336180261983686056953011531939401867371769161635276790498797691460941591207664703550959905833981737616645111073449988226043652266954214467366142361813186321652286761502013351305195865838753139920702305215037485983753912696096018039703597706702172942668569548340019035734566885987940515889447800806708624720306063374421148998401844065382742428952403285351775764166889199170819818266346970058558477844813389123796050879001325979047989597759398521941680605214072353446609047736503459195076673222451736984152616943283587800460686881201325036746497850198033974337713404401792727148248665968034336054364477630684185187290721797621640536236270256744021910514136470996903997893776980016397936025327233892976879603432148804736002925511014382457188085401185406774398361422950165548595993949824086334236669274000808184298548847505443811288556510383104960540656671398712119721359039230839488199006729256178076349126701433164509884209839502865142735740129723746823770979655641486926492859368058494517892020103918228752629583052534316017370602602251873516679045987933264994063968831648186998539254600728230316691907669855261761690961357739885906937471458444511174233777575042839177931898160007742558235682572783159990520435789704394790280405909483091911653157417178111572356950951813599634925744096650402101052058795722279740307409233389877128666877377273818293080393408854045534401340218202418015118732086162635473612227525683327836292325909247006184409135510676427881465535496640025267829710943653548564376310759658797821774241919060180790441281846398808830779480408169586812904161398620356089727581590653149186031570561079271036067465835531984976075055156558873953765696068327258824482314785657837674661508279867488795599289005058228943532118738842679574389356041152182693570702868037759861325411578284518536642364164435069327432544058553905399566123388014611283380967755568775734097608445902967620607509981862520828376162950287824612478372448507985700506809258503380623286824126964537516170840277480829526009915105421924470156066770773794814149330519581569718027742716320222507433232676743739598744076013034730848727743638951960021228062016295770351915194691796222396240109864023133744089532261805438552370633245751451367098993439126418112871273986404306135637219209916098425334358123005915700263175633963760479413861147962166787824235338020651828732169504020818401612984155526447468069201455524608851963924658022440881275261797124144124350064822296251639769325276956882626032484652938400189495174555897355745491662941236252211568542855851943470254252105329047464348149933476450063536501625089693913264146340949798856045983816838349732243382810254550196829679217058210192266861065927388646115173500187850898428134469962401661468889812678645924354915131659683742625080870789635723240095632401736887597982634441089654970552292875713797481002526781749280148185659713246573938150767008232881389656307078175825679617650901634781868866613852232398080758086563679842798855195983211268945203900450684112678116347162316303225370157209863569663366038417650268706965249336480117975047205378324101169637989818721058906352707382308777706449020255643717896967147261405176055906992391608487993267864412456977537039610893718130817490325338544516887555490994707639009765083045184851251665749682601024625322933434447053951521247148454008440938810180716719812019568710219862443337898849082899885586577959771688059547050960776038128552977034665916094776332554341009227792615743872166784180261256668772665045707570793717903631752568175414825417463532282667104111927854688711648984614379078360856655939760401899500514595954244434958082360533525062175329324527325106906987497200262360594623933076755420243087994939032343473955788293193758960858961317543109817402198380869464309992447979993298653807184357799610982280028781329947695897981656818283008172883336710776019917842185866318248510433904936771696761319677666018365634221411176182093129514059362879126665538316638580397737472859025850537596033489494579907475490748172053278354552060505592555565916931044427586929067425312930153416488445502529213007303041401965763993868160905297191979954149469367144541519215032021277032743491482486235265928577109744206862018289344653812138073304445790129150378403991824286483414054550825218434894000326734114188246999059454909813003093124574404442042731103961973176593094545638860698634017492799157224833743600744713571336681929089281535234441778997809938605208611911789832334448293631725927707670098429487828440818853571092694898599073190801408165103688000961073269771788036103209315423570661245726464500664758252658535261495391031724539652466200531587463079495266430482201675928954691698374810099117882762433096351157496500899751664025883084971713680507504638390220117046090756790402967720094522036121451673640484913502055866225722503788025729124785367082725540733733566200587931137081897843626672888341885568217368693365195951930613691968270615261671655161138689197098535664219310676476769215885762505982991980923127949092955682817766900847626691609658613009606445723926842795336318902737032708603989164630825983158583826208555498195726552821601915033132975985161133778122234507098481885972295752891591647442225622955497741244160413904914429094226649435079102543381751648840063760352261713976157172062687207078004068214183451449155726875333671347438020240830494878448094298118925774637101552106931389055511349468731141309733099795783104228795231299926908846123323485069796730837433700907196407350358120584071056110083696042020640108139874463624969451649215107030361021602480965106097355190792358814568029280655401322540265715042287571484452634689303352802693347865841842326668520643273687328393345933693088515444002322053248622768946600927623516491886246559389491380705260486599042114531136979095365114314650480410209133718097376839982586259182308193998905632445815988764608821315805955867070126544184810957945519657947161259836947389296646449172642314845750224580795115383066249895554572547878874593511889907379770655641614816963751337570127851430461480448900334358390003471412680831676928423819267163616044567104406135909749178528118552654838313583672356354653894115968901621079625669591009905351058820396049920493176686990610990063811910430121156739452098719531497232407819338337664079295829776898221957376925250930889770486231317534695590882030162856570290455441008497021930275589447469559047834796780019444525477516979434762077542969613194095498196259500800455471329926727117780607075041882330026318465279819348342756749795404096482378306156828715310143337241271787026206086997783669511577560454813736265919087465405623189031288783416529177735078438062936867491402682635845846222785377755995839390030237586086557770524995366902303980188360636392573676886101260626834401128016033385951227718465741804577140412387211973273351166927647795576992746126704865792130232292260963747234715121243885406067298015314231723752535048241641170368859644013759762105858186560093193876756752977430286258533958261915393126408770210343897337286314466271851101665058931736306555149887390980332448153157176939467869298639345705720745554835214856319049709492271609129846535027187003914028709098251870731378304969019873904823857370701043387645133350826972508612062923233399620015924345386449533103636413290983672494263394972954767153896925106291203260894277074477640470078410014029663326813869958275192702265133090634955485025619264160442029112327237859296566628319131713489257060508529460978244813245792839434362572268288198519570233140037570548032330076462404365243229056179982138523609813084843506276535889400583715074666996774106896090156984576528634530011782761457716562782678595390199278035249685208196661976085447769904896324540316827140049549170759427129975719691773092951199777675533535431983393846151061993865911919919050819830187867399077535792533194113164558756286996562400847080179504391149728800817743922603692792717028958871266026100938628628437717758447329315379348525378887045069963677894672902245826187311011570611374123641229975084780014929729703867995114077750991210906740689328835302395385517296013190724632412216127012824581782937015420390828174248855031572586766498674847170491153670807887154117405046422734624248463647116549898681196092867337320556509916105782473324251819722837880051106101197140879495007527942448881859090839247865536800989938988013455637259239843459305565895577680789372590448543910131408004721943879527543590863141765043837189686330750649835411977235473138159073777689299549082079411368621001048436535064350343393823716467890407701905423196001168522078583243967764338228825343723683284608760217188640553809756326695322241437649469642071132255901699808494835485024723697462004066281779918990432626927285386057568401419321343782076983371075731999330554732549630961109996121951548542961794164873145507316392234086939575656000244974217337077555633082983180919688501373138495451496130729397712318330939181374696872422527585265138817046320667369400735847931609347227109145341327684441705380534245269374847077762517473570971319466566467007023498384369106000688697887117449237140499261322811800759594734785522303283690948575856074749674472121132274850660484381560608378750877146223428914597398899420894509663383294953370226734238432113233252268605394993269287944634603952023079371431487031034820043954154462651449513819930334951897793183631255602046487494781066023352713716624584389042544443158534766700557505983072901632728115403951852345205042552027745672334190538660096115357218976699742402787026887834742899125118975742759331247797405161931470089806210288018897129629019223465248945827655786434765459228848243999117573964583429201314609826457902335400268846509434462937153054271571076651319135682522641377078221627467088083309593276807946532147204293505492016163480453093968797333856724601655651767058278358356671054731604491619125417765743863586899086352885305832831199308389136528373155505967055443326517989943881547404669007562693517296724538916780002335162696968379287059621305353663727534139650162578893633882088900885607416667685643682601305579411256861429132845922928976585410791404422713935571116790892276378892261818242010648378790219331183350225542294315202171936717083292619553026116253636179602704690120843157623288745178804670314543297075156668212510901308519326171921974746346008382635462717818092803436975868241131393481603620535109291246138168564105814574222832876951957906148894971210200806430099588734148474879606894121569179857468398897692646534400967821102370177813451185812127625721558227509768931234750741778334950929830521758268237994689509051379821407030729505564310811767371479130230122106028541422930753995622823529967095751881113295736236400071025551930519319113355045125280079798887861525638422004462991722296050208214504271921157334763481287021326859380093091303680339345758251443272832262877355009026022331616723328525347036736472910220303173486091071524446558886851960785636397160202470832983769080373305509214751486289492796731821667836147516929089004901692982017656862550686221389539198200159609586937979233410145796274806147706515652907531487202931787925254451747669761974822340182410222423004807029519055127661102569352536290322566651874044789562538082568606049488209018840942367943296269679585973391992266600031883580916479833055319356903275892513941284866788389901332360936132452233762198442501947225886512466729167967196977013858925469563535614976665931480351319847659621478039942017664827700032499143363057950277799775190372349213164703627778209196988105685113503456610451966106607557768726547646754492021869268948327390721169086790968985108218039533571926119509523136856072267436740802119858687420985466946372730519998184637359668647645429376279483455866520131495896550048467417153559444073132117590301598775739757059835047733742958532593691303660410255105484439804837918745902708835814085575672563981307861464948587249023209767446161170607524085219453709899282263739378739940823393481367541709297075103306365956921347093165347621098447207194619315733776301506828066881129092058647161986173563453124771932621164366120215416340956368716130343454960249568787601724263349625406539699973045295902487165568215071984769237809618990017474734228674157033440719346091486405904286600633341748637388776272831988283022119691086291913091536979598369317390031534200673202744804913913453371845436329095783965115793473440516389922375003116530461313522250663398185101667450832550872343689928600403464871395527460773685375997518170070283975473313832797145130630275960551465065672561631503696912368031064618144814549378461790306545802954022590282408259781447981607481613148039072584297115881281817308911993218142200104575641064049286468829539595243859644928486902262337063910379594166506940892997038555748691439629875569634133717300830404042625475245132794135053916989376156457448217636237854042372612656656863016696886691245489798283103916130872533216994638314972223408662760283858957260706491152310120889171327452142728466982806709881081992088958866935031278424625719923043243863397890716712910379419036280002668281297854530968586099242102420411491620343142940084268581710491376966039943686865953137031050131064922595708603228238403554672622464457258893161431278805711102311407424468195637640219561558871528419313567820906727828052371828854865728025296769733905210061545201263716371781007651225456499899173593259010131993526765725313573139434463414109850396995961891363801961508304113547580076400753973987955804404020464744657421014492992666581474653084164624054589334562590913314940402126548141904481125353781787084185498560470572497766759842718607199497165418611800459261526819200457969986827995581440478901922919256173645561321892285275175775071884778570683500912528370535547719848096426304929821841445698333954808830257094275397578642360894546887401297394200599225985965878017370735041891655558551679583360911828364224567166494920362064529613313461532961116699427270040298136684714498038052741549808990663894386921127006620673599255926007160418348469218567346222353168224334037522818643858159085198418295892576741961940447488951247872655808699835931689462885970971469035929754454564629840632296312494040145649673146871909119193937664679004579476687520448895455594884128693158258786414693097885346156407985391549503056651650386345153012066761288712975214591407162404596959025762576707024182823809753622650928698836348557170379917628264365931412062834776838410405377917452505853911963835463103764436405491316123160209243352445638361435563968612428801090097740607067193576048726194708165104612030550685206083649215950417816513314348610986880327103141047006900340292291542154638633833520451598790186259056212857650603422698104235662674191793853579796984665662792226236711526102989935399703884267810673053199924107123877577411882712793266477647486896091381655081500247278712581190654921149673963066093611802050925749468327718958076879817269038579963053363009241357574268489316312085531777445616643246245116214684958706641820131233156687837498968766532323653520601164696651842648542473812114000709871220161370285673668797403959869643139559448782197880340089100376536260018016110480444575787837141264577241699094878457986159268134973631228572613476947433562315556683237751032763933508793042742753648622336960919993834330806943871814163237412222945515538992540944118567827483514247983597383161589545240441495625736011893974978631543427510155303558003351230249857233116242956103542514324714737808717313077561166296578861142191060711183408712300806256828403084027998656527192049589631228692829233567603602276664164690572188618608313728925669322768094200804687431325340610321725602992192607237068465308002941202365966199815752089471309229444155708841288316076835610062588291588986443657656491973628024883690014051739627878285979969152201962489488184837778868087973448792372510468269112265335175802913331475949392755525104294156967592693323846966869963412481149550652103039389218172500995785869227043723347172505123921736132834396394280457466453603568004653585746827892923139833145883837193971681702899441030079716489866978201498971787441690601855546050696854905063162691334997201164937206572015914090894661260730216781051642836302207063245407317723928792487626489822159540939759871506582950172604646331468198202057851070336208667638781962975686202686717330075402881619280412762161264414486952010467874152119970250875182192235378889044909759767985985013251087731226680733681422272407416891439184472270221347910984508705450415934603309174151783274018942335983828448096193880377259088212204695968451048722951194096819082400581140743402262328734664150731373519536753652915542264600991076597057623909137864840629243954500417977009901795553893818021067961108904116528573010706340815257991070460743844472617205888743967272512694522566179943222978194649067051640679091952136404051588011693607826545061643506973465790415477002976449292105621686782665359452007838739741987710276409768021977171693224553953941512146710109917929507288192278803777841022184553717495410082999088698875317468176042696546824289309918479548657425027456879075113362009609366075385613025951036001029735986210989615293513665422454871254008993989012667353845749249882519572417594798727385280019292872794013204498496554978478680333642608376834011502149573950178130685717131006311826810844856131797982069337894190396000015228775358343509200677537342875580655581744163159704085403827685824971938961042482760809586357067120752430918331625175390039031056770091824822751876964954467793572050303247193688622249530631768246407088044230366760311789550340678462686806039900456389987478718757415610973668054085171775598673945538985567251897556246565142402243005553450628326151485561433021630841442776522256353081798569394940094108487421128967947887875831833477235570199763627379161420446817155481298017688612851910463819843000054100299434091680278664496741652943161694018798878637491966369269844628092730284407146871729440897928760448939489036524216279087714014162390922587374708119425184409142144481931304865698304181537649057025654895167792886610848273113292077049669163254753780549148053810756297181213350673463379144437342949091259229129668319655471842918808508514708438828763477739862646934638844870269205529452231406944156028608705182048492990298781822002905381005334385051848133413286805533967501395266232996853159662612741487660431647094785280775170852525634286245231513109749953826604560270905201263205085619386683394884632562760911409495958121906917494016000965334046051866887951371265005151434654046334274198334215081444023247502138013708435622578817741248568179309966561310030453669947176568691243524184813943265999191917076404498731569987590494565061994540411815584774411893977528103522995695180617519131388326206703631844550649564450412680761421652520554497504650522684081615294470694424472506226896415119424816127512592929994181105775199589956468339716276522166481249579336927815347464118414246656381210054443773918935043319988822445175702841657640463697124293659842451622660563079907188623760885513218022536264712177229651616289239261652295593331502581827475064718000847532387683216846656346599604052012140817062892715511712800861056791577643619566023291011398425330899332141303004054976318609710244425354077011846203288202598942695943509263860541491024338229275288678593518861611364169832965961678161080346444588676661763439018186590708503312844146252477745039479695379875431276424967921448528196908156281998343002643892567548105078612507098583204330553124470892963574248988104386194973341539233954191814829545807892398333768020803350149465004214835738447015592530468775790857633330871320792573163818324115768578141049600369246733095110093958203493354420566205630500019087632644577935122980470820907677129102305639708254110670400566130416395664155579624399490392032216906272810578457156210628085320785813211526567742756200657470784286047378886526583281165606300141398537155507478025201986527522920294273506732143535637088860517530506382024598560771903357983181662044538532089476100275897094747620029216796680653355479220592788275658278399383994901734760129719141884422848515147544826191873316688446123446107496485551459672060190737571442548597478117695909099753858488607191461978010871477097468045825237631576322540859721790591704870397467069698704752864575206685174826029057996698607175683780746829936293957671724915533554500667734709130748778627101919269241317421132843543134172820803359565337156541626873669295081577823643353249865969414605646510783128035123032703856070984558924151319996101087670849320033460857754763379546547459326226899280762722445699604660447254968908980186757223004047187767107068738034050923782173183736168057830483629418591833009061828507857557637407937725231473485023286277815207276786541785428679433353077596679007373500082080997391237508660635245157664778124338075005073432714602952394096818844514226534620354512218049688816908958245800043966818296376679913780713708894401865767915682060884509538450557765859959883110939381217719308664622843774071955665014336193112542900304155113087544201115252233821981489410528407594556598927770889176165071015377129382556560707675603005946733102802160439129285996274810804869811922101594294865359326489421637793175271114189185673674005868287471793346478691124005966495096008754147253350456338804047094477908006598257015099772703166030261960326088199568235193020194636418375301602288328523538122360804823773494220468924671140094332807505448223339649100832846562810164160960102652833148156573406340392451433342419698942482102611154313240660298355944556873060949419295969611400594634892104755207428773371715627291518922275317361109760048747216920220663063317287642635872920841801412246832074719392916594846637517368606608667690009041936494638453891639862123657559248576389488358369372645382520829072726154918570317773514762664808760975600661707925912209879895073711829291208536825462610359024127368488419236180841581668065571729927840475795125657876145342308898209111262084921806266741334618724370476337234890385794174440103031723876698985581594691074521837492860200952695581835555488793414134599680581503907223819175670358237420838038724614375691397145876132287748001048407711487761609820353520445015787367290409221602101652736332534651260993603736468862978667837789679116478130943925183837941623914728954144820717361787152830808386443669338913208345215509593982859264039439235135790916073667671361287709707876235338232014673152177819642964229890382137231348221943980862824955650524438940566552237147803969475413255441583710548027915318799646948254133838518221678492471295490757063790504121489071608506437868150804626630383430557775964269625861612755132928078599376521398670644318481525116130258108730960236746963910577674200480099250167589277926994583776935133227677200551094565126839410542440789684231682077216391164048189113617328964946892123998205152899932219283735562259396490931888687091223345075391643277467481842067595506101239606627167119383629739706897393663899434225699960905568593248009849116105269180989886055787578397018796286547727326135922148693646167265570017083434415632775298161384371722849467777567397393931096539345660123347747925339238794818421226627769028820219162933898137677085962432065775471860031082245720659141657350292379450833975231159794670411250074424361085973911279860793877408801914005853939023751405419899457689228328609313175558609114926650860454193363341955117868094367916665591575437765792600765096242111383624533809030019751413356862366980050515979181953268699392504169967647575098855551232201849996958641924382204389540935831135025516698932901154128745182556524208280264133604358676645786099644414231161239505287002962903849273813930511823832667863047399326133810637613031647411943766013282702846232027537033998544437061646182295293405222886844495191068895298444183702193712464676573526806743716694485724738589107115476396144900957995999348741411166019023302175052339937989896362583345519183497120563404031617401295892515683839203306426732321592734995325669132812973767232902344255701230394094721699820840667446440284198467215373309508738581839723152345500943996402897258434607751041787438305438133202445821756871767677399459721950480317342597180156124808340276555094029528680922782978594436814909875370231796755137297512723241163035540040531569588765935848138312979950146187727643351600312934285530752750283928713882762445266667530842667083927649488765047368900110607456918884121114740928193536416142781558874375263570712285150876385079648261938214278915923750679097504729181171267034450461395350322811509276252302626083106740434207415864281345720734276032879119254049137772501606527915607919118399652415847786609597914406141031951098395062019962547668313956441571151343647395032756505441681060307530198759288227220660526828096590118116598511908494906488801252834310442295719361414430403649654711292896738920037396472301851584684862545339548379151661894828294182374245451982401792108741987122114552220164831528859743927528416997805978720402951644969345534582388121921241020026859116120689819599937786559308880810938209932045507258908337820545546679877323437541293745474744927965135309515369025961298805992662573114051945101052181981152507329271713531571285623360618957686961790903758207416430751270603811708380099041759212737673840963855506910378872813832836290822767753218454360905101503748106274211350984015505350383953170200109396949114486917204314149018710740463214785350606210914702264053943461906892563282426131656019363014115673020980023943494809573174604829390777856888428934246593850665261521666112129462954888046602277374298815155318061939552012623302792555657563904541321131562941651505015416407532201876748438431626429827859733080338871451882756155779912969355117698704941602389675342851003419239990697082554678102019364548845528475321910896187554901345785922896469198168574569647761630213910110007887284452588887328966340324101761877527039719385847160978425121001235865316430718644560392815523206834123886368148084295286019258697809229156031819691907240833842141429874099557352387762222377192254789776981573692687799565691556384169889202813684619113140868613971465274159425187777551529888770849602527090492369954918149420406275292115186933309322255357780676547109412367242242750792733370287001233968942164211785835024675704889683336012938434168865857034122548177145345752759668927968323641756560497233906283613467859740995797714184578576713844197433871075376398792098406841875453437283930887388371889874678274898760145634127350076020683368940794306632953487684078621451933892186016274363457115754603457521289437835060393619675821637995526109600517105647292158048742618881192754024778541830330725073898070048466844690682074293211591560150932402780873726500454416302709543963584024368196564424191955403221156323764704948514042431823415479333932605834481888267556498794612736250548844653250072327969900725262427763994941698717088433459430883867821154386341557188550932292735760074547334347818103690822698048363096456310698208348769779304310707628994095419847272585306361992563420075830311232983646181337222906964061926274306282550272651256740108942417890729180749427399143744832017225288051925994566205170421988989437332322756660901164133707428041318647231122100902167112228751399510568150254029577931343478809017613244380454270729749182688867872280888960488492318714072006373414795382541261919428950903871553146206625603295203568831319236813072414986721366843796226590875064149053036778121042293037862583117044434389476643354900408666153849130379407929664541417029168437315219597680251084983611178434835916381104427774073291406488886860120353081195886393602847436817472904935073443249534828491308432144341549120527261524626307378176657117042015127210932541666096414369821760918133071224618977910329386826371916136390802844317728028130497883736084946860087778916860013803048966675529025906217724552624553541193975551436970815843348204045989654452745811987949244677860767993044590919393752558218887356810568410849008488399146379435803762374215166486354438004554717324659150723986345781088765186787922057336532918233809913664618343492685062102086936969665807910802948854996824327933593119551939467506024137416292549855667256675405864443636476185395138865974911660001761175381330603889468562488368813097926860594575176232005532188638094524838796441206699757738111655170674253619593971845642859163605477122821507887281438932267040819965463240151141355172984881218133046685413321282162038373704399263229162125114019001535619507543823968916934981764764592741755986870049027904382513430027189188059205213563023466133243022106049995803173959488313097312070715502701447504938790550299494584107322952469679807825475529776030091760765128504700581309566512062260368577170915035695147025983403802991740971846928828275120290946641687734693117615295210704890064547728149485442351972944441663243782936536280773244071488587983752712802057456933267862503874232501184822166640514146225274248750660893144640788519256065006946450351650858904337729221381837632853331337703284856880428721651707946954579722239862469024119240045416825465622845773093868530655698892224337387140360994666020196828601601173917121763256527054604886761168440249341298673544572335756601495972224995883444997226688514360408204106643316223402978343555949717566306083538339743456999032938144163920647064279499489030170575753947166326284380703884054119396368652401157805864036797924844861548049015302538861491620690065419351503224810575023359959751843419908007842132719112242178480009531160955948602946652041527505504187658749544718962494436133839909780400920707102035728039937127779329869875157706454481569256672261034428332021202570086402858950336384757537384536228948079682486500454241191450651561948720608445131982379070958821996779069872990875046091346639022534022909440783929194358905684427628272606553337110055802409487342254698870828318234386026638002136116309813911881324167268923158311474685182156993072558254993730461744100753003938120456584399715966090423204396338934298859449909704127011755408267355673711694552199868262961239574697169376122176060260049438966687790863945701013488634613740024667153032472749815945636975880386946055645861911523559888582931400798736232683872208097836725444251073906388452480118491288547305543252135143783975581069243792298360560064120731360712199697659850728997162119873016505959755900705397214959172169080465890478298763868018705845157879446992371252423289257352440385399268952951395036491357592866060618596735909344555714052005515168167866042277764645554462537502887302090638835017003131830481457896809355979469286751093364230669813754523300516061233088608053687672121312459975373123737194175102487239923886447186285909265781841900175220101972081503262325032569676473861911788913954847619189160440452076751105141105618847600674156231355571501474557340432128434183856238509134254159520721238846817763631819650054608859198846207192079643366844566577055877760091457521669187800959002005616196209619361030771880565494501122365835761326573417607762315370092707111972340441333546924689996023200507143711975475374064612752900108278242403534496699164154140078769560380935298130066376822005146083622417222605414635742003398372559589310329224439977606685529387837562565661362887235469771013064877970857540037756476298052165295883469279234955273809314166720805916658257931575255596158037037678176062894703297506206306520415064411456634998779788436558308727416456532743118282923872224901905456044677328460802994523514824097305949036286158530969148902872773020137214506974313398032510427035485214962423609953048879026764778846567377982428298647425676494905938945793298804085009098939968748125823675261511440779403744404242465895740579750957162019941807767383680557964484208457213395275996835227167035063144813506847446582969921778679863710167288412797698499978246208769865012413166901939672065606712561984818367448038111256005344182998825219779060969697957960907112291927127102308546979746062399722778749378201596974114537092813348530341475529686541697904266605763666339290883411621625771492739308453037177826803109633233970530276686032534168576659600937129807934234400443733505343289670407263557536156279640165052373869798545140297549686831135209431149740760920547098095680433859870019700129611520817013968243933476346611853035251476916385808806844614965082485702623263800736894953691747660704502171415367391772611885130100314941597673331363838881192239851561520467980755350181144765574420061624734647374490820231674322930002189454556366687575040127197716773107393422092884358450188113577794521773910538500579712133326185221308657786757779386603182203986451138799742139165957047528577488958116456647600945535428834432143746918912951483704459324401065275599750336662100542578920928026828202734899862820459447812442300222312183420943723896940109868603754084873087341891184938193803498845481630846599942742334274115916032741086315025068056304738368366327378464028248744393970734116637243696243405624347957308851085309490296901140541858421937935988462683078138849229030965978812486072768852047406681274730912458892537641708293509798145490764221900372362678914897076832113509784934164214649083070488935689245661864205707386293419140842365418109968412191138192776759070141566286034369148161491120170561527143747873910731489145399395130987282063192081013447203334600216593123496443331725927133390017047505466226558858126737739516364530060112921057192562205316515977473092046079582441798471941391446331553654421623550171367292948161696493266993285383678258872442384699715485530714643774213160068576340115205770958768910119769563123504323304199823138896810378489717969416506594439444472603871962552387573934617346904129958580660952729689170597811122823010929775081733325426818992877361778171306467691325766650293079006807613690134624469327564704176392997428999980481971962880932356918850832393394870111168239777868861470672608056076702657997403123075928451981683783084209436123621108235136478074866413050134084540150722687116439957476699642983183694836779750053589386949357700692717642283821481124468808982271254377414072735786769584943555560468396752379196047356524818508253913593712113119419242413905788973470489081590448361956974624005583046030540769987957400791472926312085881567106165531174576264411174761849147029124201757751760692925271745602160620429243244633646035700295343944278498784293958762978220491070687916419870016151180012710303332741242334038035480067407977365866584517870217474725143849811736360842543350238825362631614518102286067253124794732868758981071158589608067777859212560659588282923159191236923013705401560978211958400567264971601365517125911000776866792079790409316724242650410130072464422752357362089704320772131683822102321866649859170001774059072130682577737423266686237388271277805100393943200033467772712644695898138808723366636413988960605780002686306539962392531909312933286342033513566819714492894215219835091717701257934369737027485419068827518000115204047851601338971294619277821392562007627254594492234880773247456978704328796119408045117854946336897416208366069311128336776804330091509168507840538584515390825197995793413341949282151565837745828620216007476604366350570319830963286356657646251140219216112902604318584423710675889899115639802143708248298420063041184974482902932009624414869709113233958255047207449131313474466538538293501299135262523066368516501865695632753088877130959538862637881763727101544854719367725931135981857020824535209287117926829472921844120495904085886767213376802208546293368584411453297681207685862420546407480011095932512051802563692171535669930321064766282575753144667244979933957913871105097179783136186736631052503028506801114773736051353198998016655865944644877301345180016805487087315616252860869250403213665239847178505041960777849073429755094379962176967799962890049065397483613758636699276315014690451304245690819562841770401559359779501417585121529023436609053297557929910461731153755082079126948557457859981973226111443775308039292994163065418058871595865568533489003026183292308732585535087045916365272315601079084932193866364845860886701338797093787625216646836772180499597508847361133065431752139205113841944638530772760118982232426384422792348495892711982929038086239266824882022887785346929927130594383513944109266682626603284343136631166318680539304655661160885049532249583370475485157477192221922444614472437541101996188277559822209521104201300735515430781323677484149251642837173991034436813037904701721494096754115711667179108006303269447112897988558296498954463167563590800774626272044810416298577530826018603615415195643818682423757851636601846109686633556541090534634607615759357388456149126259414312289033756424267356964680607991868034031641746656342149452146582250983944434959318165253993082702116765702103813182070772760297369442356123955650553683095669589547528324000709143857215783269687623850209707588328141873014066800534983106727860420475641664002845918956587044826793005509191889471436597659370107918921724467165034214384200708675855664188015336145865363511872650825046918664252364142977905436322225013828060342071955704288012893756991088429617102991148635098893785216559928830519807321861493901159424124312075992191356235945052727536661309374346253301304642262100364282621671668867234576680587964233390771947607834907855355050863769118344712355488340233052812497298293897887225932240941205886003396273622050600248927044977568127252413648816114899308853306127575246539407178252135830369404631821281591635959590487571136588668388086465532834212339373484563253054562926815079140325008383190238190832645544193643863530248125827838938608571289519304825969266204406166543129770485223003980921585292328982864102878423835579397345224888033944297210664432922589724290990104890887805831126637488929220843233726111251336993754695712899354364031428151034533932334573748747782949456705952561717517868623396877331863469019211785968914626605261335335136397007352951350898367188249313837455842156434851015781594917200317258655110209393609330713482737737306625335108691727907162002770102484246201852261979908710520842396600409841924394569162236015265345839124838446065064285867204771006243159331976060348931145831180648815426811792233273213264688569467057131277141551936658651047730408895079379055542696784042088909436319310096472569083660920503471883524482215455432132353271933145054031067078682083340805840481631831518774315398687784935248306732810967482578484447013640500026684507288324172344812240328996787750002197238958115403610056147670187145758491017567757907729004974619571004994674629069315441708985836328819715874619331194971219801803011491948238405885110843849101233580539339443385041565416317350258186239606435294184436837532162550733705478045801106969468391050116213085316997664967877384898458273488908732745396345428746014489978430625972782640757122303297749966080045104483449244555400032545447685189216162917319282270670003761824881997574470700412803380062054206344129288224390831375395905693449342240185286489138453921796831184598705437935144866235303239254807181374007976143429653589330993854281206463108450398608746450372258912488481783928033314100475779486405927750435215483485049442737310877736560223371160311423169804738634096368381310259397219260811549550495981442231776930967750349631241560382988560438053456387278526993350119490091928281675656359239949789882734225707364200161745014047006000441865982348128627851110723888726062400895926031642157632752918678937298489658392259141454959300391431389012858310278468536597990993181516717631589828447772057739049718676999690581252512443614136398014041370989723933154395041870343871823129262229730960850721414356134131147260164615404502698179377894765581800975550994839325287561439126979078825649055699882277071317123473205080113078582708021255864273404520514816716578998534226088402040595910406648938891388257240521850320564323461411733718158943105966665555631743427195432904772265484030002648461129120182478945269506077419662712251902733856039029739618016763179471525334634813155169646788129108254268320845854614480463438882330604233402065974233441424783975331876954768035708157051184117600818670514283092013880544492295759503259785054022102417287216827861189397638013146288213050698949941612923739108091718073711625361254951491180060935360272261731787534990043914623592865202003609503219477522212714542770680978574498105916733680904445189831869150138628432859346194052020549010098777129982121096727998327059624353921897263732262361125290855168760182082048397882204750082257519146727849423244754687389004854801911026784425879096374111222400860825221661735525583661153243410657164264411057233516419530855975594724729749025126646105058635338720196842140196700931286163893022355271788371933204194435699143151342083525584602147935777992674551623875406523439291058337581956813105090838899929346172215975237890322893712246561574748051208360048594237933824654906449585576782096339745780578273365636490150363119000358163483417415337582559768336961891646923067969723203183517034538079930929884494594228526372905341208512616298884949574283008816154767704599541633114126782478975313835682987124130428474723112403693069769705278320283763901953929701835749943131461494377441991963713145192744505614193163911221953540564491202178337762033518342141896147360629585402805854273559144780012299658307811711276394662294410761001909944058147992356671960854524841765789046607065619263274335171218567635673608411432022585347102825032772591310124863042661320921128905568831841019544863173640622077338402833206266742611312482529691331109740024783237500845407410494379910419099307749429773144635144354198983098863400429915886249020511552318172730556457079095132684148791420693566519503474218869791412917750186804583126513775356098831585949763498305757296886061090113616372496538037120501300766991812652236043034757357432511342384607638478862985019453945006890810400316362740633508350063853793123652874070993781407375488591132600804410706090457244170462587677371968809035526469012120325466095404479664162278922966237965646023166881998703020446797111844061303066055608245644191817881637814902575072125904891795592212028514743375847464110060434970492292061424186034221262910503902272886379765951385647888397069837847046788955175162947531335099968144624200241275686995036268046463730976821333101610132177031681352075792594696370747511295677167619811426231343507986648144531949920698278908002685199546405250789017673260993051629864344937198734852127893086658918964899278285837657945012840225828867357675235087998173594526081464652059221706725969394588043923650792790168771051938417149757944163983523131342133381944316390624291470791715789579313363707127314332896399896671883928286364552861192395073634254657566159523477410765269103285731667409885764220449470557274390436261835563252578092198630210743111457548645634384843195209950637069302615013804264166055288354361225156455113047698159490649448343838639015600940228967854746296426221715224128185089222683528993521316632650425236721982115325289583403697237355764735714295991687974144480670444755857194808942586781498049750248171423577483063922398573575402290047502775978189709037645001298733065462543187917636376899028512964785616157103090475569831403845402151727636778289517966993544020694376837158746463106782969125996908957594844927006374660572601560244821147117196667050404560993473067187810392860335751015353965739119844481586242078580541710049326763679389620309077650886939538153085306365119992629907083352000331994051909099421676818392925953932201390294637980785511288169236362945254508607402049606092099156894221244821418726009201886252889350556790778171013266486602652139801961172614558812994676777895743393706498590232414864017256597658686229906574746118315539653722349497169761299866435843052123264302787568753598200646383588588664788666137082563685729032674633158204314242596668013367563184721255270410539473357473824531746359564719128453526427112984045823772757333163774309285744649235097890891040487302356598226810568008677718236011661704135684328645795353076123394883819861289213413622628444546324629956224232026416550662872379685886791640209409569017175952709920711954934651396268245338811513822786637157088379481348379656530607972131770906836961965912891810771043741692393174211233184300390011383399000834784828062903734148415740842768081943334955780075317800120968207064909588501200195498270315145329621857672440261280898745972846843804242551784703041046751946090413132898230048173733594472041956370192397994706318247366207534960811286949186041773063277071170406720077085595420547287755075539892690593693099098116989978360869513934198644000872925832739928089603145687457633866672948461259615663791750720341981028538442885917954699238675992759492430121684217903475593032800989108457089352810619966806853943138179777198109579757570278697086857911024049205966082398647241926725903865507458807892038690076671400655377531968129305932052457837792026441535452854147343383145926862645173303180758094272682105495262609768431247799738434992879310230959296906087208664068761152915066576871219284792433775049892405730747507443590008321851387080399879261431554441722219022408515653430414456335077450190065240275702070046590637585704756466624414722924642770883896158831093869827621063338572055241040737692249901508314132432351579003903133088906783600490973663123076477658822116250386134351490270487305039212578090142110010089716790141553324596770041624292541734611674525157691409416993290525486068557510037000002842142008726785181026060275302464681129376688841881137406616969227410512148393141013462692693665396927794575090052785306549486103033096452008346037286579499533512489848212274894715183015386933477680464333429083546563055389396529623117270974429171256884416792326709043551578613474434216541585819435188916475019221476918730535003365324748091553846669576509827883994084657504144064760965032894401545098426509707892594522698389273248970752955192039007605908480968077763608403106755945869052533215620726213209187510032930331104528619118433809703897670994994036369325373945807559217767410983997231403842236644634711528235697836942514096869732072891032206058978879972048935985597047597737108904993558338833512690400038172691276574962553432449998475822657179672656490120844060941891545460973122579310775224588335704917947135571826653210932027873356204159677289282797723630026943583987177360083916444799074444011292326495516312517050197060920276344698934059802027572521968291715676104335951407203564813378727490307186181530051481226317957442239084796153177989562344839419532814740339726075823227541909126165990118800759886356018504303170251928055603937073003194142461125889829576315859248466384846151135346395605942929674214672485791122917514061605391207471816934768318409582771162008313988836830778045366492370668880707731998242359040672946981514840949983415141036989619673368460549492983381859416659808894236578493209248930790402419367590188511677391178165015516759927166896125479068467495080760372858552147539893939678170539545576677443937967531459916825298455074737331673437290117793248411739264267635384707868667818285848549203577871410501773506339930423059727562812034386724935456884817729242733144924003048494127539607074736177879584180934212183237281910599881631925843311772007053834441204985723365142813753787495236045888598137124641696538954997961345833573716614959413363625004020226022637657063691647503654307945361973004699896534892138730933508361397388775406630562957555689590073958370628680399544236775704380430350054475618218332479422498470531945773059161655974956032823754357257042227242561649034692686839340697054643592599140248922133855130501215106812201785595684746417343888347387485274774676864936860483260243594379653403776838773282092564002317369635401692831324028416750645283658840474645625625938335635881773493646017538937647550971869372075219705907472080941734702988696083589545968347077531609674147789508119187056899918863864169141930096545740855905102981356587480651641056562908366523173738309084868952566901104040735017498491367259024856245818818982400974308996727017102991448306118223897246948001848787868565338373194589594888768301927728924990485604066852117274981636705764679944355770234996432919659929707675027967615602586589202671269252909482436214433508606269415362023326941233763082638652075574576933015942496128241011049567205814514575670457601652962358252918103025048543761511052961619273655726296811540802193183411748925179287830121944722701969000319397545265945532235608188438742443602108150849576893738357888993429950696629595406522118841709126719838185616183579958184643956090946637752950014776807603364525244814835937890077437480402095144212921674871012662188173289475641474894548447747487267317237388793322058832165073433181880888102841439161036536907425272246473392391484452080040192147792698551197568312642538634742771443231669270632137973202407955340507419390421410984980169470385692041178311279275042540822977393244431959080305308774496157357409860530653901285334239838202167871775321608826632404493058765804753868690557166856976506566922762818730102054258812364902260472213130651534950969360483001501935855955670677853739427355906516354885534054026897042265235855872084717982925336930463195599781134212200819254929207567205255913868912603837580420923142652202604570491549502652194715630004199245474582134381729685324470340140054434059455323804075071347463498274492559420680583368873707679877820493570705213868739516113433972389708053859892780869459488833503381712293876191588359573419434479073944979059804063151086005038477568540804127976802191362367218128958777119155048084710175284660049428192689985785532366202118308903008279360786351937874320431044880472495501435738398984807276964161223802359379151937006722401031170028402712690113776005458484232754446817455763516650236954158462371875831388238233672147045332908718846576029660258001883607217017204307069820249714008820886397931060511440055155936887639673403905060023404691669049072639037268865108673186770262316481692708990039360281512524721040743998116958391662217431430151837184767438821508992029157108476458105017679633127959802106131333293758303996404312748943001602693372719347963505344176203144874561282264486461062223347089557333105946223446728798697892261736550935616053071383213515585353843221518356369082295760270091366252029141075541780711320777969901098723651232644567327443501085003802506909992391466022875475909675003787772244194250385212821514174855999706427018685116821727743760877850177433022997116781749204887883020951810107267161315877707694588009152609558073616778202915879117293264854406864757347018407905847196197468139577815858934085626518532193299667150414342475341530167464451142637122337071106268119736977769609793697681130921425050461334118671068156993987548023851389899500291252147931959061859031782312103761052383180140337913953625619151831301062827926175149820110724543513478801974658869753237480614078226335907872626113245641457118775139943634551535881680411768427118844516065216574926714097147612807041976892599138930606646914638598028877175975589673443313720007573138447944778412823608200704775346104430467568409686656785903121262119177956471351198430723880752286359486324041023714587753536509888057028060577653568621391873847229100544087201780473428638094237396520908684333348573381287609385544345205636605737540059810806459152584361961772642593597902107604171780046020068652456452067797894729623397108042020985431213023550142530075246761523180379579117199562105970743157868543211782682476265646187951205209981997298308676238246493227179379385438045342704924108872611856402688840057492776305211290297996776485097023751009799680293986101737606594662440066265015839662513071242357631983376432794627314577352999891412618463449468676812583454592039001053256947089096247734214927884419384143037238408405345667333656206467361209556637384567335167986762243400296733110759163066265789434857798263684047233048873892595592652228988564251236071348607064387882838629333597313153692757514646002056054293040270085891579225342606597061052969678987514679788267750478794001920972846036563493057163795363364600303356129931599971941877821041726310942365992969106754001701959595804258765363941382123405824865042468959039894867303065749607762311424560217572054773803149880327504797513707033393242632153718016078212100584416443454393134862903155603852819545999667738246833436176561598789887866938224697814997692208769025090095727321188234669263737942006765945499958494591406969110979472784514912355847341360482379791195378969998739382579711518648032400285526059922168512073538899469286504201146835281944239013847372661191208827001630095653464230617578442077359971894012215290850467172948472052929155461012456523922286403097284399525896576822470253550969239780543690338144081022666840719147940759064724392037079642929322864151430039014693524254905803252859954686995412936220757078741669786398046900915332591462936660107719841398775968771191606508278122224593381371585482536741476545178734454842516279580482238379552454629701858871501609282101095876297766568827286118802615004946595307233711340821110723246473948671524232660841308138447621983165307356445033813211776161268942118705658843117629564646100778819560009471044767707021682774669462066410746444870787747500669606798894133918641452083766317904991556341188195788551120915836695479879804916191823735447575248262508424993943975542870647087964782649304882773085464179236654610960786168878123199507526353975974611852406147354882267388947874832275135552695917831533960596292064018750226849090181344934548991958488255903262245141593013645511743765055631169885475005307407366771398819266979991237581213715587375412634973507459649506477083663459334785659068372504876033991169440509030349912609149212866959864881262267268393883950448900301501395264357591676079322076099636360579865995913949218557075343387425742072211708639733223634507186304549182154980285452532087539955171697541095778405843783246243178487002839220397942339349525326015037220170358849303765064938690187675714307126265120891873370911612325872874294297400996009577043078681904049878537685969960176213601171463821562324233448389507660876871068310252533684309026182758680949091627341053330406314903959341332267845931883018080888627688769191631602023882018389691860555271486728859413094618609950532667580803850391369077433982714938711529555217096817672028263406328756790304220775171015286374136328994023500182804101883316568217924896054643206232131484361542012085138973552683203701712066708980307527494252409522301018787457806767452660489085694080631294029405780797571360522853670529023571125282320284856216825677426588899129752148371474942385021619506797369601167288610176250478671690877437393206898839814990839963715620282001769202609026035835669970252648633816391644287235349516257310833362480684376222287012081052526877499545632784332856830045898645732363160062258353714468192232644099040192203329402842973654345049716961427279409720504732714881515350658149511231163391611133565527184703552713494228946949669164478157852057668551478360288764597719407947765598391024796927376094956563201339770752403763788319130446871844249620562982947732779958315866662718862442723491079574933493931165319480585387990304406185187918068019099038475164883789274589778291651028139202449275887689516746583515540280625788320231285954789080264860862643657583897795842559222345181028959456159918709684610130014194081058663915002146148138916785566675598682573031828451069482568769630227194225579406634663774408196707330781127373728272831043076925875020479848092206897717864733441758904695138248129053071683529155714748806487926116387448953176693990729917431728541228920761739198774200197073316220322629059996509524288494322318512399772984003905031053098730710364088133563723346925326737812844747797782391015514249733975840238171066401024107895869050198109364488746699922105645047543109139285727906961871065752668198269517627374880624821405273997957873994819674121975747208907163354755552941608073185832774116098661081999398864666495157688003777660155701620772712725232628063574083958905459146586175817626416540601004869106532700816881347002877967771479161260719947298165549189482802572326006018557647638209488365119684083151285511951848833332448576259190673848641233040777894824091183873791288734237566297916600889131897215372036403505571328488547558520983786743860005244234824212784666170445659146632049656831682351764972042366778250546243121708290582337843394160861330100490183490224048051450618518508672060579746627043690339322448178687744670535812023597073244435553255586616483992552236452631451428483308261428200517171871524862411927666764481984710731834635162794427878378694918586255280230601172404919034564732140373352898872057332523405248699543738993928564006917396224413515998781199767743007516716810521110994981089178001405892646256429604728152752739967863895626747920596598236466650972920021487348644891661865985429131724243777440997041501543442717566635407423976368283631743477995964834792399145974916851845485959065945641638821763824607172294345084383460464940286029753081250593184933376202226491761148829375117963719718347336857702616553526975383676720654271181091718040674323319019389828308493640104621737254249357837245285970639298119205720455671504440888071994706418407695216490972700693892904857145030236416285163608919108101331354791529936678770181463757013286367761662859755577264918744011445896880049452840470106902302091334653193672593950625139730684043551150611256347106899630550574033853685011871783785716994046972169951162689749862421895159689589689595030548732235498448368895649948709685125693193071667109249773243812997994647446277304914172201497704907013187080110815693204917823658384453651526652552401885219339724088500638053856338498523491226215020045697030609177739253774402395465768836822132588639845015926222240287381061108324704569085881248360955262604652847780895985065423495482072549805690246565951011514463687524325815286368526221369342448346640651611762959602109735898992104720194258131494648819481485462183379425841318898519655433106672264800386126863427641986241921732281278231930937272715329985540417620638402068725534664235266106583521913796125945266286769348856164689880634233614264761510651943039394007430304721554608523169953160281541488903024088010238525313322347160108915482627041363783209720046735068806865217242405166219029487864468208829840395670814196639529301444646935058632924624716168181395621533204979329234284418468633876561518639753247302103268608774099012444656613079174160329833072907922772625394448328344827031656260404040301234279222934501742720360372297638979274296705574414402138081137978646631716932791594818098813291505891232245722969951974598733382794060498840788779561378047623465945966012218631969443374010917605817050004870804107644832526481587972110952008724020237031353094386460141270018921158414395691406729762943707772440982502164390051290049569170421818756024022390025953858349740763557833386525173065467205090108658730881987225708579730911323279491860488155827684570395451827792771484903096439930507022980573697665904030779999429129123547143685367061585373795251648178207982602645599948770928849653229890185239451960973040602445310408975899589087873464227956601189163219575809003932328158250657278730091746091701576312402916509253451518734267184579201375297064836286223689038400513288340948780355802517952623166341193561123547577734340741681029477966306232713192733214032364578000850624456371354583381774017380861532332450006611818198493595781034017202383336557999306722298232606132216593752451342372280403636868114355593662439196083506566131593773717584908629693195584834496365299792814329425340687274673029317773285180344956967247619970459800471178579132377404661348052471005622823691231746453802841981277539610727167302328580224298907502724612648054838257350941340316824976122832861643222460933918801308431320205894543086152494124597309580063257595040135382146066986285958172247418315174146568286851766621947983150401763624800669373696040233898689183744258296019923764425736154510972160503145305370412103019871272966196012588942429817435266280520955612287068549225722315798268050821453021325230622150605844409288314684226411404044238539377145797213959289581975269683315575298234980881159297647903973626667119871112565434059663251874552380651156999891724039828177026288160555073127341574639969738836374192074407665621694594408468509027030504376158700875657360141544649070035153645973264459298830582780992411278537747416823931826835475746542489056546390783137516733622138673057217381988395380484958117173150280907286985935860185534244654641828801674674591771219092382699402746875582859107157786741676321006562789066459929557102147476477858267076655692509422120562642614800718347640689185999010633036779739648301185724449959160831178929874476496548474816314877973388790836874388872429749573826202148356133333898566670866782499409704325013341482876792596582960889541072614558890530321087032324804250049992258238969465102929627358768601097943842664468678064952456371313142113106765952349699095818703112697330719467774341822844264850353419589887129116152357677045329764322061629561824064460091232486778720772226720954388073189237113438815462903339580320394779960793758053407373513322678207718464879797113236610073299988252970464552592847241133557316780792003236793917221254839051939065287318718990583358716803755019433713310359929687162051456834875981826662290642366208598597053896117227021377101662942466078966123091812576430337170727194405421433762878591933397379065489402702221228969372628834665468149094507003381531987723073802184795527319286862312094472692250887879234266177111170299367246336472223953652620497964266648020871101856177667872666603054205696950466072302040507651651341589149086978148065186127158506180373629059120168898680733867791068219839380952136983985196531619427699605942574822421845347178960147106095459798804010832648406259009994359075492603034318106403682538382972358507699228940213588990771732082824137549860245392544948348508250522439896355199080595392864588893616036515075127001620532292925025767293750151966651106730052812961165116904141918459774005272458539378538277414440328627981558549508024258126169247154543445462496830810154265863118367060186781988038342052988662266132614094682001106354097860972652395422501900526885679152891065785482058865923556769411400719058635856968868978158303138507428211404841280699480988677156690928895560865817118423741519879797778382499693819389511419986828756503465178205968997481178488228953010271806543367225634259405452091450065508944987135945748453695358811263383059218547107473352071244783953856026412907533151789620607760006344310455000187099041737000487022471824295434751414275030547115766073037952649911905733888659529822830768050392850784668049501528264882729310205841655260180918675636212552389587923768616321022731733437177758814741340739048308612994869064925309296222744333305242287229070409716076746501852366490617196631369249203722807556284807948051912718543123088739531849779083453169471571319973037311828569940273230928919087266997307742332014749383463911741484752026871107280203650852560217294236566141979930735605554275139692771444656115324634141297501770522822476038079022274896027970742040661708933041688808402308284100062900496211945889533898012991859340691902510697058631501838023514601450263215570103706968057857042977229364885704314567347729811466630539818551297352863142229598715017995746999669570154250130689401655293294086068679854622777770247238258881122005838963704656052426475008867747241252425064265676361335686430605525526583924161202667851432490753717655380757726842062752069457144843372925103816970662766568796165019604507042922842052556726003484031931378386700147864635537213536587463936343522535888613557500759206229352970946939189178636047019506827370802131456989308145650386010868569084196500904619896606035572051271308649856355440471300057960811782593390609314417356050065150211802807727709414001128501889789537915847064028200572170167648992478275050490627984794452979206243499612076341896357905578388049386678767702042392403764871363517083278489234588769896170539616007982142194198721465436259669118493844687270601271792903471922734276206272636924272366375534457896695238097891427011541113439449537776931412614292657388227829487242606949680093826977706556514370094726390020346390153133421265387153428770277997591689873379475202336151647540317894867241841344587754894450934412136858477126791732258071400274566233058220074140377770812998021515947839099579735322210280414060567673775025314754248265728448602457099905054237141043489747591040832438658334424001342418198766998640706806060368326900032767310714484936648894591238094218569862129697675587154336219546633977658300169993736248883156864681390077146701430723453433537293941817583832027221449418649643511682031471447613362538541892698918032620413689471952246158906732602871728253655810149370446917617772403098375000358436738013730858393675646977304809555740437255852542457945071933858305926108748704878737475484316540488710934602900739817027226949861800416324219861982618443655595073419556273738667250025726220595338745878469398285058619886488303322846409935108843454981080363289094664813872103520764725761240132173011760038310263255397624038418896285019630767133442945315619299242149988954234860988866580270250890428443032420864638624270036736677284405135014993452388929840619713084183363384443466982051493211352989741451429865161961408983409411675999147536105053533001286906895446199685355222588975060951820850969434030299616833256042199794219775964088115746998188882130893380201798194033933377127405293055161804645586603733936580638968671584637491524922056379511118127653419166742542669912948467904396872295595869890940442498275318456171053855706414051018175190015180976023393800734048301011186839471887500580432079543979516114091254724710973402918364525402973764621345837539504905567590249661543140230895422382847383118740074479467750367017539353314467087675782016793122579376833819666564713072251519776051283462110222664360124057075373256289007390780353847368841522351451039308005889519522527709672318937026296805392733860911820046256962130544208686381874669546399208297782959099832696784804088174462984702217340669983682973982634702192562468580301252537776462183036656909891410174557860723572468983251459897473072076740605804555188615568691933336707287941084072516192222527050757250075915865144536513492732612270541629578835892667012113150891607510672011937165944107484108908523677084434175085611011411302210819823506286408016522788477611072765294587877575255346576430477499722356617070877677911115640897280808114096597325568961449475632907508357081559239120889472186391381029209902248075079853480856246553484293759301161492662066359250973369903259030092635925744623066173296005823988779257861599362052590701657406356129614670800257848172845548132613390277100701718965137526682963024596134611807823860097303824485279236073567422795577233906220693226101907592618761816229518154672001799999944222695790464982050933930803952323400808841854546596815070855336160263901508609670208498064647463964812657497332450648468048288789886481852575693523601032885098671708215107909776175937237234067189385586237697091600553882745420473542407187801632757453906838365631307978064184994932231992612993541998798301054077501334703807914532174509245853735179389571870868900453864807023491294754664440315630693465146733667664979462833573196724899749713598710425045578822426920643626621836761336426274497042148299488919677940454544979216909595881759333024193892945411848926137727547308829607558761862030194881095459505979085728089701495165132307367453830979279745104857820164617174282114656634992315288162578031400990899048276995779569936715028854114306504429561997864678475026864280330930031022995886455286618364275543130248325262989951545381001784863366123581575247500025459368897532915202134564556081604827184259766651139156004908073233269141179027720460846799630184457962139600606493577935518654920633773520417672836718665363883417473037021302816425419369744385235857151189477034811060744609044057352772941482069945764014683477394811964452052808470589104316826422998563224242244919490992522119470454154093242112994880761278096591251342781360400714456119713396446485361908420422588572411098348658475385753675545134617288882138576126094269722339504867223874311167649794483119964403721802916605573357595037430329469443729609757772669630698248537663798291685752532280562097148109216804606408402835078901362570575385828198455919712450744466623387396008933190815188919387415354347830760642515534505994186868309190430580030337112299901427821887785937429113680812279121685137404225705391684494997247446301958774548228369399277398898847121202791383190261173531824816322793608696190328517679173450026461283864218647632695391951305334159307970027572035320169684350832787794358763862403724741976072638259402900536841466139654648021787071372962058542915783221303899944377087693801324823225348757790821917858144122622368169403581052609328113400595693983652468861784146896440883483647764767537737712214612261380697726490535019167759789392408075861555406837197600706220981173586710317704055016180383616010136620215444735924727281691163764284129713920566090671691506311252300073748337383891033492716818236469799643259947156113655284717225667407827648174980050564095362800238750126125821761344752345355740566509551370853840269197059863527386429998181461459662814021397594333162370926078374137066887673473556718033418551512775005159030874191660663172247177467014883260772021995541850899760971416786472163063544539411980768511392197525948946453618927802117712714190958018593926018167400705406585346349445087004553461078196550973922131752450204416465120233154172426643235278757098879955168003141764143050916296216385899016091207714214234781855714313424388310614897422499846311523900416166446581619700751868708013417615702606536714650180808582646436252903935900705264042402836107560981497490676134793428703297591793817014747851848965867648515518932297731745611617223092763199494616902421057997457165955548789042435061323159251593747273539266941133948649359433247352333314430072035211480386268681915959580301025552042348211878639266963955029488259039457979946161111024031142384339157512514321050053638788783180953614836515104385265178225429068686791558027788041627130041686984649983597053138059463963230185151758517528226178654950564893230595543563999979689539739753417465797319887496176336892321702274544389020373605571387526699863871915288414498715481874438806762751942737074010538832329177014604559217869927507349526153752018466731061070568565332448971694099785714185009333538334520033823225214500471822301027869134256475445082073195273482211082974991303409560739311994884194132411948167801237465139599779622129015017671548820600953701659081420080193834556133954360682256594594588884849381975126186540237515853768217610134555875221430877701324251203109983135202586502295942409191056428737317286073886488681640815212613079198865885223840790016166260647843877150434756128689189501868191065653398113055880114038011112026469256993431111620573791056056852895374569171433869307670545625955425670007580222948752092837823723353683466635627234972676427770009964825773807955838091873087028198720314813594967218570118032109450062497185760180750366441372465186177588224324313812162498354890455849560507484597719292571026858085875093561937875495572816366727394105771618089854516607200562454125331966464354374358134632988352604555420818013410784999965307686789609731378519504344817534610911184329983700218330825907334145586031414110420090746213260940737291559824595404357668566703658160484096854366683861676043143327330828284386966493913337998559684069633766225320014162480195102021737312057538720651189348352427161819315446875930295121999631931800092814692956976557953341685370835985453976554557817497181193312443519055658110975199388667255706629890275973441262979004251890314044162263077986581548537278412615177205452068235288731706049312383067173314779044115430849394833609138465166175700907130552457690009030433952318891999725442235504846854618006729644912979465763740482248196600543505991641472842050583283061214411108074042331948035299588598999711218059235882906640901736372997635571529806734436750292345633488964290734793027761519705185637780225120620243461975396843672195422205171305958959401085405583927307786216555411834963677936212517422316225794509366525834016500012354878574448572061250843950949820559081630166727728062323921787277819028761687520127217542659140850118881816560014398776821361233122255255708008047317641414377505370338708701125104991427082722613106227676225753583331895813048309240224418599434529780795973577398946611084884150504709514619359553232648468887653124046013249495700672447540650653668193187009608919872968361619104066433885721189443044151937363759266526765657375739145020870602668737942024990274261020166679620427803583248523682126321279981637486309747902449636669651281176122167903870885047722977745770268647188029323595343275544883399979808792932592880574878845970754458429158179083527440301176682671068353513884746349343005654936451342092813361983674205641734941300803712369587364368539437842593640396716299792479723748617594748390422101068150784332460456644071751674775882639990712689469679165688074742038527510291009957855509978706892854708550865634379736366579661577699782599444651559521760067921772717423606324744856455738030014734594179869475940823726975605227278616912158189887260409194436444089368791259663084043843995844851756638021464794350674357112497856785601185971414384393633066312916903711662261008946844813346650230331601018247144682691645973220108059017836618839806281261508206783554376731431223643866197391170360232015843083376944650438076757190893883413788225711454305978060029023259354885343012161586298616621544451254755341245098555132816481620568111877197379929296621911028011422058773744753551996622026127803034231118494854186822989108668438759317303895727950916092428815776494807394891257966740571000574400450913552580589386490548628430916148116865376243994279128491292361327838594707903941269465306308119348660414705004486626056916587607840565800882668569117663929962465268848906233216014601933605523176878178302020371365477200503320015842350851346804204475901042402205813231070725979588926296338008004513282633636975411390112807051767788170732224329822425490664231863270528072973318516535907550837262718363274472712725063347239812797419215109125048672360369419548679431169606409526742699358695803337620470714483118955979489655292271517069725872411231685007643779367496986239546901227617527409046504189176357805910823739665014976224186655562892148371326211043933501791182390196310433608554069234063451158715846961690181859354635466116417483879461386699903292354806012994423623458435031080245636571051280421748106686229227250066270424395089966328490279861465108743578886956396674268464759035513794601031588598045741036579330863574258181099144619860174056073051867235504407299680736743587722523405500924647181662831173544630932085935497302958709334246628462487939961139564789574075038623961874282282675124133401058720350307474175927347122255974178479728558686530496177210732878079580350101466090456282004514530100189109343364932838772103177435905628352529545939684292646143497931545134894998570424231042944997802676689476193353163472857848860476705082785399017216217573622031576162729235615235259329879966968665128631050212422727285404694512720711895233782528326165579269481550669089972784577898371430375925105259570245001634382262374242373484670185510358246917351864844435690517122112927583812639596874164093927960168810678953041101778551713356555056450439816534636007662835505977984753086170862187325904473118891161533785420326824282467989031026977502060305433182227397649642550241720712976054331354085250600298404718036562846415866065935064533546243904305742904420535118142492653759604982235050818797366711647919999889376585283092714828771926657895894093218039527430573433080748179202014724721389316989955112561595172601553843909388361462260527160493846001102079765829278059361601932675765678406856808763324317397587400585969612186463447994551771004927796340408439520407626001452972773496649007214286114585168055885608688343520615880945424957035287303484329018717536770129595740512792134724504606836002600673597913610814302784331626945157885943323142996711966420253284678941515901658033807957332331504384901317568720836809357905937718865026588424478598073855632266110134647663614094392049234436950626051145754458126202626914535937662404790176742589843419790116098651554522630537975969078191183155064581897760201841891931122257540111162344812137017084897980335283379820661370633550673132413137366109054624025565326140339595932280104185025629502580378264637978425978355902640524532813372386883184014698923608944091706871792947512390775903962430522930997584384667093493984339081942185832132063050730227237354481662638713814654894634530786031804807663438942690725413132719191214853809432268970769056447844241389315957035824876817565139401029124714261957820004550966585673463558073702571768040173619771558189286978949735382313124014321935184165091253445832558268916787975679095742882154193675390041172362307646233442490370488958797489306912008075115030965198296556862855661177578457675918614816958823400683877156775881296627189988279182273841752171008355885354319305117535651924691316361956055750943773238367010638212328319265560791081605139060837358943850607807764924004018540820745366691030136990275864806529875664496968515882275382573416610446202029153589555359822409850760165199593784403540738170861951733551326068203429596651257166868238704520301682423601438213998060993400687437269777333980049321795697645422586636456675336347598311760152555669627198055531643727965004940661185122299905973778007581432024282612779768635181262134727544108309573581708880787525749804687349719703276762208095162565066530499643330456581466819559145789982306425928412799799140395117015614120495868614761535879340069273991090802331546030494385888685883341973873090177987832663923194500740018139563679190644118599327020282489636107176350845258441205372785853200317260320013805094982202107845095609864578151105910841499185460560133816887353290250866692382061404406328943089311795115054719316249008256816072644430771453885168069029529455565595557228712368516767837200324572274659373352728918610523791473729951370706388420900798994714017777380568308598769171527891308195945679103577200049353805806005606307481041514052516333563910039554570243975743532250440935436886172444303310853338533977833350880514582549376050584725865666982554326010398673362997243262425401486549576365069131469322753442642265583666922288274850069786085810216703293407463291531586358399077465038227928141638681371514433219998415797025173784516759409602080380973546858024066497062512984089842687226209963939859105701043125577856311686080086655922603963301266160804111483908725449010966033497171792591444365333211613549036297453540029075490091610262599729043871079898680277976571556871623857854474806348391569836289843452242604118777190666821619173711892547304096390367641470901143191461104646941585280544285374228177715329158340450936164453052494146375567477292083617638714910872195269489050193959150518316332897534615645167409932725089441278970281924705613878930783583551783961454608340996521110084235622993330584472820339279073126664215081068999146733690263422943564047721072230471365276491698187626815987171504354700824151323901986457797874092105897469863691712788842062615686714883529070341992603775153725907379661457879631297302341473927652664340339316962830452478163181955463727623365487707435271834744077243772833382555282673702474639353231324883512215164765804864050031233986824290047588155192355072456992754926209039810135578604228630837072443616023056250291988960470323142633750647273009885315623054485555663647250583375745295516171187124249697262455310911191039931858372514756601490717826254300059520981780324363971263432355322041802878389018446006774814533072158391060201699499404301918841775928858342816599201335399966106609196708801315941524113526695646558817418205568669419070798922108587770566598098948718064319870936558485548666395815023548993753038907468875729489095042084721097213998290303920734376686401156445360712648455965580027464607502527594243517250371406616509537087893838437694805402543317741375638694455510830935032201189540386359564182211130985553587157470894358960320837439019593888902067107312251128049969110317900147722343954941217528243802660865614833513571461471409253415894895445373115174769413409354425850097960247798830943829986078831780569711667852273422004782992745176295747858439623584122771565042293653776045774877834447501576826960967533353968965405882043651819214094424709955074374194203116210782764652637724049393772944254921985893487642901432070690526451711089528449144015539126330126750119507635049615267031679714117032550287752661070105543972499307888054882953922620627084427645686666635627899326087341810034193476767430452320155727295839101205532032989501933568052489777477504695143200189987036312322952407731858265605600909791704135034170400853155814474555057655277088633327093853351368168287052692963467250706082706379313105216291860867131522441866804533568542481659624386356674651322101308070967105541011996680451860764612758682608006495675486036648203355345962849955177070936767223934777468540837436975806006636822424603845614731252712688066014820132888995140500145235240389939472270948537772049357220953649968590325486911694025194135989009593509593074002259347308023581443128531171950890381727127954709725877999697897886516592440932403814665691426790870136092581977404268118734693810782415679893057692932828545448387970280953615793668736534880820498705481665631834280767879397062713862569277060893566127275125233165418782075682422458889620750942455641065705830982355210326278845082270813845038054611370116923475368053126676202870348773773176276892919350239062375695227621700422499639542130939891608826501461011467107764780820779963365698198873459063336274160435961728653351734352040112892162231034762135339342815371646755105180001474796228172921775188145036000136895411392124095337131876287564288235217824400865504340625213221693985829634202631867287805458199933652738449325922989497946048452667073358981764855678625276610211514757960255048098414780337863795771467695041787183952109129173961436991038693556230516083404693888605827692351351508122980918014756159464521667632993986832157150005635658456042446009141783282358372170740241555441199821887221515430290337435899341354395739650986851102584061051648689421797193456876407771215688490461922748096943971586211080956325489716545029662959065513336099251218438467108789954345616630247051443022865742546340131393303156602063325920093644993961858918280475949734056082684690768236311933165999280763272291049048234396211807034546379604728478229763487599420825112223263686074231210740049201544665646620520828100899320640249310834958811872195185902143063987857023624706003120007041549697139804102505138117043831050241244030659649650629360840668563695121137568680474547741090742943061137146128475949004873277090985464725681089413799255779006841545894915191614347943269368702195462502642222061715916704742591122655200018145231325677800973907155157829330027404893410557970082892431962971073660011603995587877025149900555673914124180903499895697739125009237315858321030563912881370520797233688413673047252993927374320262406054767046971915888266632762909030641303235233770139049398880064464442964181621105920267207380373951942607502060500687470229109155214426840380365608201270735895388212413604490619971511525242377883387133926003543055074841834076789802934484737289588447371008970193311867784820474950145925180360171097491846771599848305253775319481372948081157173982867785789452557922845396959732828299327537868845612457975272371528191009576160197164806329856391248985686476472601329032261176795303492691659444962798474821093963135604589731367884040273445755255084412427569745484440132926535209340038495970304120760792810244471626684518711270827973301218263134844491768101500461389253591615370953722435770689739314716393910004678755572697499029493623329856268821966641580979451842469323421029453593799017505695147748566414968088579293198321225062719870821886839423663434395623068453549264963137183532203220304457453117723492334507938393093605206524162713098264050731340778255452471499710100960247764208456102845848055747683145774497468958583094299770081660418124214127092119081950114780183003596827750323527353411301847389991241645791657275011112271966252211223001585868195097435986136782633712065230297190782197454163011105158332401412918192632027725640819529402058986913154176327940989815756984770033167614610946911184200009173941403197448066806782957260959493329048005638666298412943399439983640283142394253821594100256574592213799231087028766000848717181341353917735476752376166297903212150411766734350163041293878148416872517392546833039559752572317980129925794119987936753110829300237848656511119066606978078069974410264691067305836967182429015459772996979602752369492104207561780562312831489687345720950718762585850167881533030132360757621328120674412990212085568924332927941870639027649338662922996726549530218349831690868582103867998341513378005479115217621190793659918170424454390019500224846357082608438614282850252815135379860552529690139762458570241171307936567835015225611759886990681967137515068871940698417126689323511393559009551357282893339374725247645293856970789260973792490112877623996523036634308052965084766521856735811439413486273791562911265890840764630657856096210460650807388451102522625395066576715839304888778656895563963902279464479678502221464389898893836691758666357627230350580165225005508755456971574262284150617162365689400128755247685133015941093510749955607949134531291604986381281261764855544691777552664251222054667696175632128160961655795518058317265034076924378362297772854870593362344024865602029962419438924187831505192677166184791564637421423805106615477555316048205791293539043757112548068286064630283344007211933014286206708793994224493452429692885420947438998627703033027801564679297929476698722796399672445507403161095817306075788112593238191403121415378846369275169121704923717510560923510073982627920567033008752713303967421172619174418840908324688611093969174017004610039870570732568797723955494474012103276318339085083403119030768294955504629965089482692393322320058234766620740762991723737587087038071757225024301119312071768754030225138164017779757532568773875659828296165304374876494522340410581986083886750487355747508845953704098244436421436825345479156518383456289375431968550211841452691414619050317759370672834994431502530941125226407412202277824749900106548967687552587898023730794407272763413037173083148596064663894696187761432183399373229219307745407473719823619299674520925888306693211623913819954340661518684126308874348071876957825329477161259830304733788323182057204308058897889748263336250924879682541091069532311412630131959433412950290010772598327293927771126586170462504810027886257684367110604440820800882501590307950465786906142319567601184808157677008673572004862912838957715116444225717011553766524156331236626033208679994595126195590258291579645841754650848503132609111190422625056143547208160905781285295082289717398502612168756663242957449767684730616577482133650114426917347721753033782951534962582687870460218911125474188131624862201466179926584008375902152438623255755645150088461362058737995271989466644091145793220801675326946858642205108630794972395324726272147065882809718795553886375717787929060534477617769439516129027592688999938643293294782373797386067778243414876074439401520013015492546276519331718153590388727572826594291807373501863547288457574687795151916730809127854388507475831681163104933332205245059072829270284226488469173585899063483747253069501498076685409852882217903262471333078547263083219422379492463135488576207069812033131345376577548621461192471153647103608440525197614730379373449776055301974699028049472537666765996215078060284679792972695887867340976183128854904411846703644156845273097178822646652702030143099421715251754567898477081724986810224171086113855765374459623762103201383914016182774704172805169280812618917814542200392312302601390518015845455685141402625741034972413332109006909121748305445028474798107904369278496416477705726989230337268309428637966625105289561552987547433695930331873382833093614255220074677017761020933079844005875715608746184575599441504384253873596055350915980071067295262555696572921088071828683605098312322059946243059764286926010827946258434289842332777994868242549113049010644569300031575326162203025392624869559981076709714178107898441689452365410271779091914915349229348447451363164754832877221493070747784493807575417648835913308342133307356626179781952654592603222919749584363824444127739148524430485278394728750533040116998753691742932440021457695085422865538498002969071535649280870104682309068625546183047117684697093911048391493936129648613530852935745408902709572900264672559766311980176512123488479139918772409743698756729966239957511160374735770617909841669357975261747059315453912809295113101265568206176534763780894169205101206075076963363802049565219840814696753902510856258811006267592133677559910407247314021335043808436312004651086821710486025963266452776633400313901202944256271380392784936008079706007973066062513226393816188507295745957930047739432249590916389163616779342615094445078989572008068485836275978973211694986636385746549870994003007239363130939438463950704345294983065688158128038936765023148944413872891325705394966576974501946825996886152808547295622655402996903707776647091380386008083616713106141965358124226932613563140313905102475557787024710986297316315349988216732443024714945421001231780463548589251395678158635032196603503009710571836063882062092574306815050594239333456463943447656317315464324056023660253586407706677728652060164271023766872069989453423830133756777362191390829620130078450475557188673936848008278389613350278816448800836808619028602741038139747872820686872585351796012096747634333582567328467557719850865069790734555245114137945330941449576031770032456685808712120335405403025106830168282728267569868087379913260075639820928816925548398175961736813781554091150155504379003801672362116710704179318505631145754235675666949753259404207029385073803461669492504921308126803429438463684333535296610925542516009257932155941484988969523926757599435753975291427149617235437372749295717744381327426018767288534808330081282748412084169158552487159247394025458238544164312014054266330656531785654697927515869991565053621680472179152583846179783850671239845439431599631923009882525748045084033584994388975236488269812784415071143726858013117867413713220065302606175715816369419251986343627070413173165169247970913436160620807462847528305272637445122836713242369157588822107055049788780147652112006751069655661807096535090998415433693086686556129895217565098273929893972791792925929966797445598940743397524763351651313337069567844995276158583110063573332718150032572401796468792190746314949754114496020858637884303842803574797085203853901365870351762351947978183075810235074489181027693928414503005443877887759697535960072375689921087027200738452201244673030853434941013891228718778444583609213226825828090112484842494295917252167935861387581403935979128502338814810402982959888067967829994321800827762884486165336021711912111980472360876964942796094517197797567726765691945257186898062268945528730216196776799373447243304572484772149930113694370799618534036559981769034696320620048080300249050047690434810941055637754132931464290434242365343203702991070154561396950113047288796937628838299040859462184403712942204863169189195820968103271726017674969708861263502862434465280283874474346983251318771973353187861805470815878238606921399675985609133039928847118411241233853608232005257164363570334431339589266637569736321559903583740965981237129784227174054299935564776758197637933655205173043848832275562204330945721467145510638776822259025157789034410193368962608444330856664084501827647607397213793601882600430871515385350220170803488635131277062853574749346607870255203560619283944220199243096075908306795693627665221923254542058084507183510023818682846868865718537854321452845598237396592285790073765048649223317711377881533039482824967424350857240309195196917519394691168066464190132607484622034773192724690160093372448186375876709551248541155789730127946367206675063089617775752770448857381643679210488564395525736630185819686616234578873409080206494582525633358906943945021257271050978368800728786132152489505373885769866097269462667851058891154157035626950519120504916322083791529381311520492906738403663948121289660610074721393296796289595077693348297901287293195449081682695657452586183685625199350387975260633797969929371598381950884766948377926717618912978950155437813572689167797546913982087615368795663661992753054356626758868481457581447423658339203912919052916637957825255746764122551288727424850554853315752154791202675918462915707850464708751261148110471077891069082388839614735134827578464498139851903071242734116089212940704024074184135113177224602010083137442405633563244001618507122425422032870452967633983752625950389663907260342787138963478112489645325078663026960128971478579048833825080117644485986181239223009176783315559061042836676711918071563955020644793080010426931674052910707016560784024049969735388744147928544525907165880795593681949458404283081766051741910142574371327634168981995733990783119917415029822525315249774948729824303292650714821732363641615022789087912415712703553518234426619106431057908456250208625859136937169130627027328620846193121438693970928603351645018456498533486802993370620631099676644975441260913020543052446365257753643604724627987919878931805189460983063188550021602176051897508637781402862566267797686935720164857313949147071001197924151391330981249696063172304970699071941510092897593449747548703481377257656499932710316590340469805880575526149480786627150392764828690005506568608286403979654891842150042333440501168173614936659747764833658035210109862836785351644656442153865841784474081076097603895624089900261104135868850383071217822970022713187861029219740025463383459435993588985128302288422445609907761965022054554523210809104113116986866185573240530348327776976053782298423371169533890694609590917826275828627235333489680485768275737841803345009075442654813667961395492014749605355241046715574304714985960676015050186904878149240655074248005683889757863360113934239197788792203009935780671991068983983148963724757986377420147379006045832118940230852314779502118254122895589814925648395655837743998265959293539231743006836761349904417485536561295896244927985895230423436940161349073448492730279297825789788463787399224203838275077017272464705491947641766552305997145692910885713025655775090900796929187335653669959004782649142983159704779165791660372188292810467069634351623485759793070444119413104507695074040399837573333039832022806197749605934774074164670016241268977028940592557930636562840324197952918157026512214642371743980837929485019847747079122744698706173010782703365210720687990942129465441953112973334832093264354526441445259206233659478818234796182082329968596708517273251643032949587203462843195490867139661319690236551031561744066545556688636674746346165168554004822004431582543538430142155316466402476498422798429108558470019311798420018366402889708476213512686269321900748235157248511767482510432539294054239229826757645269840473998251938861928367214766161793454357119174960319309166920453637607341609936613189283426803208761802118876772759054416323539359889248660802625243235259732402043998978550046985130334875292932241956291101968611490448051030432707271009039083723667075245952158943529393234738714369407403943895496282980775022903776756679604214797475651972032804551119048126337846134777462898639411423889175279872651931224106762066945961358341168231118150157787016453247463055964107990311528544665337539948198414932721528092911120294276642525278778634598103880962414003587123936983441452960602688408354727636181500029480399831172414220408150209376180353611287906812325592113043910236563458273873703401018738136392353522756141871202173348336044391387539232002269900935451175538745028351398799022850632131761968230650972051773809397158439592011111433928206207547717546374668095144989272220491586864164488695935118791497752106223431021439710824961004309636165124239907802151540295456601906965647572203820528265870334171859492881421486816109166253894980508169206461693971826553329644745178627118104585705019767803751581954121576740162728390621452757953994605168163342996944256612126242295635071270047106035597241576683198294734713247957111033359037061300368884416924681150079209273605908471112181622240975297534135622440156379338528363297966820832143136612867043909964690913152239299599908783957009393886969427302325721151185970154676725051108285018684540391753691666246449005935426190222800418380336742620512690928444798026993287307142154989392252313281447480770757261399760292844825974732137795976222310761831398014725356887051829533461283315876435156748279961246219613068491901863933169815441413366976486951054532772486945230936270340013045959262245406631698591302942512715360599897974768909251074361508573717065245716909023282545810457638336065780066548256693081834751224435965399873457598983327433422219232526523465702612797976510147129759938860198846731812054429279230521691539944341390983908723209427450566684406108495875451250021987902675985268809956553229473520443855690251574264587419234839551183937150563042479506243432820400796673730021773505003168429302840530837415142696298643881282484682822033555529507603360353697981266650295399375715597419566121308259123670867418201841788913329993231695243781579924071281177744519773793871902844166640996755918621111062549838413371162081174405966034315028045142934966578401526829865368377557869133533636865169201832627933408288858495692049000715729026179111869815674116694852067354622909235663964360356179669605218730831316071321936732223734859945650554869726151554350640076208133447660502949720777004562585794521259765639814770711834135394689187978170171591232108872685214252653578907479502700469934726643702155808308156768088442664328346037215587085008951146446544317873378559111187871410888376677275345847743019475744900710997515885593894260058699048758605319352462774385476441918808045805585947185064014479027218418822778770916290228843687433215062187812247911532378016892181512545033518476330318248823852859915090027290126529498137787767368707202103616142980611113674589625651126901358963685894262552523462689747306350578209040384682252467522375315160376074826055200900268988854973488061504646520394895361325148853228939574979749439979427700628282171017660614649804056210005438939104013505348411689605329894156720533806135722014531269323608403319867500062539408779177461985244108798021134684807043862627969634065362240883288923622289418921815946780735807076588108676387834814740478052666186977802705404762691285336761258832478581924928541463024868860874755375004234993000650244697900393537540113169559728048116111936201401234658030622626773900163492054705433328007099483195004664229914499690436760222562616666212860614988697949376899870388077875914566003812852011025704703799833224102384006290951305449705493621148989054337211322537596644107629090343101666343049265002524340683855105133124168923075716952744228550419688185635131586261826964188597155643786626466461890133051560906153133337293621485211185710119375796188121693979045079442737075097778768219360544775090696744829202400694104441462818374380205447337621925401640478850810265728042056506998563048652452136684981134692529831524151463112311780392648117557212539332306483188529207415347826287889430463873379005887209013155527130042827552229944834582535949180871065478334688971950674441287991358174097048118762314727836862567564486984817775383536928952375429779741656715563684908947485546331470383195384281766055201133227943180985817292747963840480060564903305800178050822175318330480818852958526729129966945360194848168616674650543819142217861294529660918182345533300570745308510089486915602924900794271514943898238714264799188022231480719599907725077589065098626085676617572401719437792568132354289355112150062440170616552231231139077266689395602270607845995312359508507163921652462351710562667496178908886715215434149486280863003013317880805975381267648312817811043195079233213532909391561978700371581067243253645335915859772732198976520557142652088751310009103719924892949884808861767026421003555150387460919324989579170921144580586663485674702355029446005702521414284854459613411820554685973229001479638080138148211335058367642139913491828341699827796112059603997670090318567493737756012612190766358533558532313065463675480615280112323534114400782784561845828690433160681585265292945133135638816836112066180017337215661650909920719623765704982184196560996175599010671737501011792885981956882871617561342958720982731873714301420992960896522833747778445389877972302657338137233709208575471959438042387493895594084745753926913367259125285949533418831711691265571370473113856542941848504081771023763965634090446129285763983724731067261141820072174500578978945169733382295967920117842896243592278577441589585637166758715066279276577396766351275561604660223257895227661860570680918052330796791291263773339333685934289587445256506125350056286995423406331476747797838940102808740284305551273102022840779246433854411689157095105360303923506201098821414700112799799326838187204473625511569748336961365142067808726209611072557648638774953596862783591408987978687849761518362070850296345000598871229555248321318598767476001017950418128785774217427611694268984547542097144049055384066731615511316609216890263516387191181394219994392725408939971968970846985310120860506909520382395773740680011417591820380000285350287257537613141198252024263009037979055246823227885231029320733689553855203736172221248468939056453986585500251757174516715042809876105634763671926874839288653656064440481428976821864515931442474542900186534937793942927053747344121258041702833728148648340697451563728570759883581148674924277369685134615613136564988686910851480080263969138903135548443336001012674448948688130377916326919986157333151047470732081480490028082835927491602517101177680250090679729237496302591457098666538535532035933671050063061884980818791076209722999848427744077221999966482118514964664675768093882093798443191754406409336402881582915904887857794182984694657785843663810551952468585422647415717671145727514529664384663523625692996668299225580413913387035840686087859572629771579140928750380217765731815239645272086245368824330631034047380406879898876153075107412412585247199315322363950594343982681765691103630928581916262072606396249527143055393489657124664321274932287877589446292154812266064594503898985017014234499553294919348553221041191216992042830039254266961033280547045118743721601057410151097448992004490696905486538326482873272428644087600151598466932741909355679500551898235124530561376124022192599534959005643202276318002165277409918019740101251101783982911256168185619734398752335795890813967965601470211475287018515665251701534390580977550418232830060210082170102388846296718221037689977603049461836064583436155994226195958996822837347625692706379931785716688114746228187728509026210672985513132503246993678372967545081354055349947995323180626193472365804572289977295196571129834065230520361294925927281114624825622275336276710022243267022801030675609592336715841074530005955158101264890195665752238466669599590677068375717198549385074492329964803160540492214509713458006757488752534336286709993864420363629910347395285083916106417541064346049257573584292246386819557142988756299673642179454627566535931422222188818743563472028843298057467963627029780213538426336365327212772415177280507771892235815845614624698174958354921512128886288661788576103609884805028158851836601050013795979342018659542625365090802386782344414783636646283125164187037620499503376397566068214082016692717446541437334907646353685530672152574918486619195350017629170478021853372027991652010866660651802558652847336981865013258564627958505209175169893791207809421984855635999214135582536863044900231382239845498976088950746908698121995551103447285951399746849018196816590505269878003675875363924718858577668649285481655202378856246200263899011985949675470504254422859649813878749258861852507592253586439325547220924092597557382351960396037588519422615933962886279496941593352311030285274811949205388780327402384918258821080498501241765251301865636077192665643739786362435550005942603060521539389967681119095639629835814980667269907380373591629475353976750719720639408551009040011656118652856886307727939375386982124648212179547746554172538381167315743722863575596663254651044378665399480088891424850054611317804880306391418816435178616275150202421921388531720510866459291197638295870148077702555930292488631666596002184198601499518144777708320028150758149807939103594351458472520915740080688527420313567884965240356116500698462740909147072898248838744729993995447176165844580077262301842875774989461152108157237398081767376749419427715676345762738895712165159128232099177454854737592662893651459669253418567622714110840865335874807088150980464716232747893214151099449832528625925692844700376200870607091983428924795046335905143771311827313432282632072952316992780828789338658535412591965632257942818549995533868269901136410082537424003497010288843470173631031829598257369701667018108626334526879258523211414905615684568624432691297426001145127988904930548754950253452037962164800826290340226697733001683918665982096531087791386364430116358321196962259542407624756282780210407018258456328249920994673047026283840730143789366748652706685433970285648447609876810833475857929224878990857346819657967719376262050623746408590957894240847774838659538673060068725826489180210006462915541726135596343068225738125760479943824527646782736648171792417110430735697710358450367256258082210838553714140995472638361195905938153992679343317678402120944392109227947708743755494746318471782066381469533402695143271692527838060221899310989952821316899726211386445340144468729345988556021197265062467405898907123254874862707398844892264413960886534883250504318473653003894302179000051176984772876847773414835850310477923747488575668376306985061846222197686497460838137806861331901282522391411863614897169116566888644189132201473903473913400043430925111851832249478857331505239766944098577147345710211774557533279984731773049064112015045466589718237351563080305168141818467921255631619191668701893865978558722519571254565337701376339075225676708873976193379577044475354302845810097331667938899914063578606986805197218682479684197909462283690766004883017703343437206464614728127548683468498840318737662446086925886658591921054941227458509722640712473572426830944906239922050958989154752682662907954297260403419693028412761709258219513293616631122765482883013497669360111296859577928235103872041271918668520512432325976658838070154160630382785613104370882044738815142709071895569106477115009342240820327489795823056367093257651300355714404449432037316309927302706836281526331113811168379794100287167855214931957426668981868206177995952621358173760814105229204652820509892658397837477320269112201925342607923540860564713907556584558212382798652242263094654938385465338960860268474344728572150801026213583541241129718685881515825117920153658486168783452220033980591567746473962454790630658021688005451510730838031438594622069391254285663154977590628268714271063563724175462074561151850271494487372544197536132021324943457640837066833845865676464847170994701868913700330020320781992571163372124738264844678038444641620913153425683515827672056131913537324800812429128216032506566379445347165651687143169182372059852239409045390239459948970809078945479199351583287353674582089960426263522370144856974753393622024093410232407335096880805262562283007744699019071008353547266803426785128710500543390726643237762369495532355997002055618763628726949943732167846621347126152146163640073482666847372236486396638534622035136024038194988461860781176505282532942764831015131184756759657925502801800107387863378954620867393292170392635004154305077683461925851309596420973469236907845127805985498644591025364504659630312231580144486890064453515157840822486687920875186646821513938457801053493280316477662669046998150003924081548670789595772123271302626401632757915262261052905015603107155914593077443932134147763922199302049767262492128855219632749108319136406844924122910671538658034034727910991023600060725893351108443514679968465359020093417537395921811470335257338152072368391770753441621573441448415665889025324003633236108370820925872713275574156833436149784619351156984059756832536478242651931544803550235810321764772487784045642118699533610682694408728379844329169703898612146344023028713532181764635926641486463883329278291526009033616512746492090425404964971474454098492893857527946475896737733666177006283749500076557192744537301019616058023635001506742964284755505114588966530371976841016980388580615441214155170614409707725210653179278577635223353901164270414772246453389802616848074178447277191775468858173632263172907996160210345219313046600382456266853221804051441286648698027353912834336660470691808055854331458394667624551048722228065027797868375883679142965905572025794280526015985752798056095687379457525752893144575302824843480563380353006988069622395741711162403654657137202948729596369796703049026315721422521944585440999809936146084117466759722023342198759338155143503531844544007164311203697661544738041060611789333150913037647312012734217563289946634951779409196563067525126426583921941282953288839937752514947538794678774303810637084107496672940698741210095031391776920821823180905253569638763079149126120885726238518046716489068020931952560151216946986456200745884916841263079164594039233205219444233643795578237126074568368938213998653166638804057992026040247820353110417096017164710227234944878766295774264115663243079545076140505025721337045888221823929219701453473238636003500704696907151738241292141848419478768103251753188280628933714259522053528749109574848787406142693141453600528492750669730787084429910524867218291294349356694748188075695971689611026358349758530464399036947582650733962256862256860527333531029494845796463276999891936585817812224955039051168057552041519922655712957986875831958772221049838843178478580842762438764090892997284462370498073864226030319356919751237915126441528348985798266284364453300949413456054892435307214284764847605743907951205275339250275990414035420699506567711189240836333479422041583463755383698186613018748177477792686577602369706633843273650418263114102471929318123222434701399329802478389110647790473093933421912547147310202753933660809402445537231270255902840290978811011272359346773858197908520843140035230205869045013428776752080202520056967261879305066728516130760464527974855471303258542826269166038137658406457140348682678851036506694348304872638287117939674016154293926389568550606873679563865758936876852934321567415312570937219577245577230555748896075315387617705756867152333916493929072345453745834044006622259343760630204962397366558686977594825217001846825101282921050320634307541688079513494006347020328801287323077699941688109288567871620533495132275661816309413971426336521534187750643766893679122499032535930016695147785769356102281720528192887625583795106067098746053780154346678360135928536444915808848876157242851821639372600876711263978679120513031982030539881661982967970019323184843919629598761784740278373390399358100176956955935486720968025952574758908574850532493191508296647825128337506769230598928433304083163150358648095514364832210265051575043930480491688828399243740549914377835844176687478132491021090562861089821248692716772520661403254280352235542957728893907903942998256706262802370254168849778891377215941382480461954975419099326330059777579274125841218218132707623749716761766070954437137019516075161359598330900634337204964797012683138496568265469736156483239314226873492715129232060658918769748125621584175363276523067996607123298370168169651564056903515934228076844413382429070168834922097463403543194357028522874351486190283429663349680860074535663089896765695355834744747233689076253353880036911166703355534238029598922617848515430423683346244773884080165508844909674892050101484090045493959533081151480479964715260609435638308034962136938085371950776053559784255824999616637703731101517474712361668314353500800639371060796399570212596299880761386259504077573866814330069371443764219041475293693658165292164411411557098637000743989182308834867722472328299908071742295526032582223861760266429891607116741295895416165687702465608950591033783101570820870855712078941909379476160822673789901340815000597139187418952358178405177651347620936587663686436151764033117990297432479138734810226498741512324265367803637624636699386998421606289283200134410273339604975439889192819217773434436615888276157539059002646814112745843376914128694048588159077285588547997574153062100705045308408715769908130380172483303736254611783005652862741352950726084148767419368563210873275016810509015368583731944691074192770211181531457699555942433762638901682782908907861835470671887603750279032887811757419501091849364430542681980866301419752675996011656926927310332041353552683754900061562734259461076091938417951505825715708772408524316102525725733351190929934399751580524930252753635530736963799015849056301273379075438908211501659415047497749702583177172684755160574935254530805511795932613153782654794838896635245973290010515516468947064570197384203722958971348341397552374288275834738681328264509929201299277942617504800743672629895992593428596624287642274731789396565227916922919360075823350707370225932329281279640130406262741789361035593849120279816159984312600397971762732137177910691369577269177764199550755526892870818538151961052866713195214136796364091744771037973928565454770063941069882076933819161546608821474352177121147866455767766541338963234850889069702548558890906345820331822008046982909373451944408569699562432944393666855235670186297270447915169201730922230902275823767457028240304236881834098684714478513157274846876147947246064539014629337975907691336661989932388129684158166206093603470140071419721239917561125449258185132230292342592554105396828770301985714910471482906140916799216292613343170591581171002555750622479644808784907026729772345800375157344970093592422857316179307457408081694209418027664272699177300753045749480324871658512519657632097176608289491074587730975292386064728897343184398365902277975661036319660827642410813612990767317530266517765139200458052636937081404625944034291570760246304760861803627547099035082316176557639346577507865548968034736381269457902070631862519643013631749507055801950622157988818956932942967750383526339086238170161233280236891824294405272538291891285079951580375644533343813950785162755856740217114719186711994624529415870546867781005189225201671179386465098697715776538956196445947370632956417614092058245205172478370079823105562670603287336991124623252087967267198293508564962737107667855673780659651947424014640634307109789886632656201466494758467659536861514582057166106866545150942514082048060827180287467778021647154177819491731708416955600517234189379787982716321340943232338182498306485982686181970619270257004711638478688670481717597229080270680867415022390899102821790112487751679376685046175764617446666260228416493784510091693047848671782528476764483764420874232681435270464570840060585169053699006222146446029951455238625919498532329871709209502134576001788078178805011210469009347044446128202685438330517339717378200642083957163359833618630865179798232017273481789700580759344410253136803182445861338232905168651561559253933974877079236196487796265569785684138491065114897094310568271980579824829477124333444216875083410067839387292785465511275927231435735723625187228659328655046811277801505956549626990286139466203243192445656278440000220139955535654610477794429415056474250251357475279422280369615265872860531752645570581794561764880355166980241191190004554048733444169358260120177477419239308828234920434180302168227731231297724178469768282851681703003671486034791145009170241702194193891679474333313436582559066154245077880756138683028762817068229152766017083145569673206176449611025206793377693973329794038764711288101504428084010735407636826185512325412853977101925689501392511665758876567776994773968281683438900822364176386121092525396150771744127057134723010900876018516626099033801830019905190244647098856165514914692155673250863130534105986173480943034656857826289952343323593803969800159255507395515684567595049976076476396961090305650315380978889368825790339849851527268236264702045975545811890827136948694084709293463167451339809680402446377417841107792976113888532571767946775469766988673543356512700209623909816749934221350010130076508840614571142156475349916510076445057784508944819440551647780049024034356132847312683371481024514488023360358145923292927838890675257272046592865277762387561807012054672129316004162745965353234649818168492486703761883091642756772701424387950486001083811064817035284906888035712779715519052367907079956633487075878166329493669743611025195106215473973221556880886531508973363692028434849708918956754744537878085410815566957544984455051971293973716232353640328704046153157813562586980508883491437321596518795886346873402083501585351115000084526736024733196714663514674609404724595128750445099851652712244036397989146725946748679145130252277271747527423915690313358682749772740260297578170346185577454911272218454764457731283196690937640797340310958050013596431913016202607985827697486736381571215100994857159065751286778411648832032051890780140216924640911391568804558428804205432648507200926077269372838900581230206338255114792377293507906707067620353165797569916685539113086141262170325146009417264341958683180067071527953080897597300152329976723292806748341311988780569567946802767909820298118400234806455528186105147727882038375324810888096966231252824261331566553282721365543346555435483765141400429189985638952799895768614498704524250283589718980473047557471057053995468890863171002008214845269574453667659125733212563139243838416208612306013688528938364249359335416437996453672805104168523973514930242418541650855335829070654938772891252956437904547263052654518447909458508327510530588360339840507896872750522128629839715445582231614889367569114572645402847929858747619820906668339298598291023417955841944424839858424498592124041523069477489089821621769768538837778249020082837268836500886814295551483561022049677857874661930329239807353446357692720170515340284771111554488356515855795798187495389989374525892896979380472414353050070975473584537304555669512979782890665700783845110156204561480915210919850337126133396138127303885232956736461058532865865192299270459803928035655715716998361089172456099301413841692257993738904999054586142758509253527570339988546996273508721465909004787038565216428535851810171527901140435228997247992378558637542379312458535545226367708844891818139762345015549369095453168292436661777725007631942013085103793289055711087609055943885374334443647761105730881255732166966353692201193241434791300197706960979248638372763566997987701001861396032927117665773130420234687813558108406418711985952377139003510510050685244794771359736826460151535332388645029607601390469042113341029611698720580439276362488885521871887019506838717539200150497118044510449002248878764793063008620075127579894216595668667934775761050735360405020446058470941382529918132135901965010790919275359207970929577814926305189489069719336685077514398021861100843803319545956625614144780556698444633440079673637554642628597072969382778561292722350942088291759693541340309914531026717026679981148958674716801796121038459556144807768247563515702491110889136654633000624222816127099846053510177168799016661970213265146071910183543117729079924552870213237491979861774530823616014660679930391771728254168203102825810191308544037355991476084324115427523749486265470930606206244442734432395351248231433814918273614760559172080190726722978132684582772796607834057266025680888308459336688010675806049239383312088007058655920196325545851650543854392655275198470692719564137952128368530077167890994913229449396843018880788027475034591410805891977089198457912990995983169043979458680306806551087419930005667289821773364964908421402736850225238440374444462482032743693811758790632995214451520007195925884176094092865297130023042199932211567951597393836769346838775684702315745244274698712286080854395714731404756855312030152315681315530468294818871792238759481696918234981123861771103309675951148283628190884507181454817509944873350751078748521279723051854911656832327156240135578465953762905107807005070048751040947637065160133152542658433122524413957490892046620449935718690354135852948878693831837838323597607101113481027874825064898481808524386437036781756319884216942595808217276538959481113520499208964661081530255332127193066429338655864467393672213394151395136101292766950805006863948423107853905328731109453129821736025377276282792586383706606651019737179726333130368609158629290364260210171121978270316461241503904467451260055095253479109199386571161286882924884084169103146991854555172228776238106582484423486168037653892695885685000273019633259673833775847810905108131493303716204250403567849585723215624961236440928948859329526815515622797705201769438977085696224654529874870976572746328373068090984128554126988195860110182910436212317931695975928960184458242779178150843383911355368315326488463767600925135245464907451833071576592882561959125581580047240634321283086906885824050256767249090430738174400061095015136152188554981181116406540402183493763218254882689582721357359109465405914959459735808241794073293811618778583897935367936094982786912209582202608541657055452347544956627757222961090424630196529026935709330191600883350833078476866592811267388508413789767040365905010992862154650421913801686073423183366573760849070339891107545084885350084278418832187613858264306298157668735859847424671286192230460018971405908871677871730666725570180956857412060824310416112279491662665155454327139985867272840959449043492205017544449331757805296595226512924705524535684063648744672891346580895737958047884882951664341471763523661345951964759543087670924681999665376450153985342711870954594489683785304345037554825114671442632510074101237056995759407953052911333289762635230996297574383823873737257256155778580946694867221267588591719064342813940513902855098709635562912156892681880970775380887129038183457255712806216335567378344629511043244070203412392629234001587307850824194531751846066695755547153361881639029283252700839459248526173718240571359507432123325496918975169424966949851583641292630674793000081250927676295696932439137287356914035579980017458052754561794542080481779937684464592938612984711578424016660734772881345346394992470735400376507541670949530040897214977163817982482206694294309160084649434041109626674809817705763435818922416872941823387282611883408606170068273875150664379553937216653375015252204746910003614261815881955844712967739959338220994901722968560914283189636501873648956948456441748858354767856716420999266593650064048046707542676384286003441340727358129587638919989106201934996569037666569459652619683612668655604145761325526803208193370806167936928371050297969389369922627078219295410056032499109846096274309092683125430500396511972373066092607977928924434059769462439046400001464681188066368975004611303636797799858879494721285788865448228811337768000891501878089692758110064028527463320240607924330342169012744679422560630738437466195511477580735516077283263520356247660200419726114251718786564878172638357859412294479158079161990829654388502078639985161110449541783702866284207174475551606945946173086606084531045426407099205927804391955031298561501276936879283623519967795706795666925656565701637422308965207977686891914744008964408934320050514186407334229163762117226559571374300920914741854407820616186609883666811148645417285890305848434415042937836596065894869322476779459716825607205853534675926377947240851150130401252779662724651576043088504426933712891343799574060706905362957722987215237755572440330886840248490270228455400831282631238856588216285339535604719485123021237595318712908499264601373814737596358985316326142610768430314407332023612367686865466424266829289338981970162545840821534070091312872854584974383020451715092324892707119035707113127900039288302555720192534718378620259402112450209333776791543854332020701257079828648776454635618216438464327214800598686715535900395167767705320430139332856588549999980327392475128623640714931110382859171577345772477933198714043691828626154722046284258524110653643469489281161185217220675228832931826149637874106198859522785363136212361773613408975223978463309754779643275508951082998537237310569570151040713620298884068745099538280520212669714071813307625457505145783969068927009334369949929184570106410847434183027842924637866066279025595861993710373816724459726502283707519600195151027872918496544578928025801941883571978757326124343616127111291663566874586703895876086847848417843325019332422366043671889697951284994706543503224007879342931868003371184332180775633841172432557505222425256374832311179598503695300442697064181197774845299897886851162364123987628353227730405266540998462443226692490422673469802480365861872408268138982302611882344657581157956713447176449911120167794043170733017450697712857526763040966551805254492857341501592913749501999853744833628059884476533672047177351333186055120329830635772104822090853677351956345790081101261179022052063499056914179097146756314683620632915974266040712501208048124836586985875712767563538136545539650504477068981931385986625618421212157542028806356416508868837439329113736968000569847268250911098141838048296823681958208306406175631581638905279142518189030501437845896374263821107571558713584801828452547533340047284876937561515476059918339181623290094583049820648084483816456734242818550246289595186340705224158372157223117021677140131424422187240063109053575507017761532289941101059196174789824184627827046848592008685802323803906149436080318936788398479345409576259025367081922168150729505746240854144866048037485204673543467977170007771394022379488201414087128912635699949587582764428869937717466628018518272308436281521646181997137434231953141784371471114000087514529352767474484725625233923485525015137525838969257481581095461938864902170691268320985798847061626368077593132140223784489206163268444389380004237417757535362775255197991102323741121687701619835757149559055716651291285337071828256756813288730130112805817779600212136836194950725396063323747140390742134913009883268745412988317813283862458674338881922195264808656500898855954811820241412536717539973138609075407423135001456612012784823257218530665034980887584986066225588035639480194843483791960292811462759635819089392450347448469471991048961508134483418471191036311220942536491698094712072391121600124385051998528086279219805092577260329970510852716374648787687342596174769788083947876161127564044989297072838613068885508592428239488153555264839872421500881310071727762274274617978054323094484698798633902398528672629097553563777919685836421000699062603150339201757926274738157544241316561283321326270046925164198351336155378438463271203751975152511015168618973090643369246561516899124594986934057447198971182706610679868088424527157615778067945816637055793548929819823144404554194397931818904133032368247421936948424154235897926477380015075262620273995118325730700320111550394468985426950959901384810733615260923890893720622905222832659871040909894173811779670164559586759512758332723616503205597998182862518562588267792410471548570024699973390226620168836348485700581396675259389334621282676912234789250741510234473998376143082472672366747962181164982129149800327943619617708469544843566647436148184010268314804364999157433442539748189284688070912809224432967027920910531871960954148451283908018387089150749802165003745424784096658461635541720544426268211629056267822788978726235598970615313937508522261314553401853695397051832030897710460975254513491656614511417215003718143150444957824995249144520203032188900310593970068988710110973365875208658156246503329549126801389426007258736387199478380101877623774700825506109059916530004254689109585381223176116059524395724582475263770186716916083028532472433574276921822318263902364909350321612761798990605194871546430117605905594207610845677854694428237208518940319779214551061115931666735870267807416567524980006181754718377516416623080027753732886252360067235121610950900378722832652982598431764330946317189673308098752456074864198149192796586122209499338575495904168934992259560510884737692090256306049891025339177384235520884903457297300011086435529205190955628896380108727512140259938641009956388172678421395317625314860538974209347793274619076477399408578646163999248369008238627699217489142002997539978639549773836933800204451150431609545492184601488825558581307155292561141838372585531927909888388929958650193719166344760333725622716136913236004389009771486819735017570461289191293029419344990102849546817184796418621927714674213988502198711097175793804731941906064426308982566462871396186558677912338961154269893857681674456803424479154949831591482786370401720417375991194874027231600160020082414553686515198258343103071014444178565761531314959183034649121197182546576320293981593072601411991988815133444212941639674199292326808088812096167401259256154704851993079195030400625227062859983832575119541669807686024153377474424676460433944462040635614594925058290510778802018729156788013084177961778417226895830312157629083661044565117808572090727469055313610648855235187811568151397663249945139174230914308778790780008245376079795204232611720456355094735203965822636387405637435831559705614827716034084860297195337142825377236018286998663501987272374472939710115217464421341129802637975840298609130467110530045890712047892170394713898913645721053236190515937333471216643268032619057670375522318329838412198259214622477857428920589439905473410449715049786038501579420781194095120859795583980116921474227937132664964326629701295510916190413766594779269949683997302651217176933177545246941003907453985580970894819968511705897781128963499229148612519742294866311228294750727016398858980341005126147979795171480469299119666981309531668759547721579853096265672140692115388331045019023425812915780929565313843964511559655528604885150339996083222195672790308252107885308448950980289741017862262810396500916493088038707978612671093880894405954666230901800753270726593160328974646838206695121527232927100371449987810178123962091178489126181479954862565302068320688193109147077725324143644027919817902920383165664881166965538754983277704547776231413235669654220037677122742913706216288815497980706359687071624124774962229798782670238592889591602783029728395597279588900538213380868198772080189104233061837286960403172600364613007895206452627543509145378141401094811243115180786549179243223327301029308247844590064660599508553681863045983505863446471564638155398072090568581029954669352772204248352733378862121953316745863600307649298543972883537049194413036984332588747413096993105272492757916399403376712954431291997994970890297200589541306786047199453952898875101663310416383428488588004047760500697756471526799069309207977375967634660799890256551580261431339028437043566570556424998659812616291555398221346810142172238559845895258095414956776829652075584097046181672724542985510219744083317436593664969542659226223256860901093503106275983621675616337096439612440862835423063094577475070219439969448471620007527793704746423919019213504381446464994179851864311432860986752384379212953565321551550596546808841004124594586768097140178392124395155740399008248674432812597489068005788317910076426334739645944807406664965850200617355111061539096152490672185797164974308448844102791015452302441307871107352765111365792227085886833523681932626364971551503170485293479483247360958254095282718940566904237085394381893113337390821581778636322102514160061838406510598858302233218615785556390632072402302450912497957435113726443520020455452209757444952451247428479629997420016224044983397575348667290516724383751438020342492143360114042476863119028743748215535800571770534779077088324459861405719989577935470330230925403216414354812582489378615780911168271538591232404873804126868242009231252602033942835895231921934510975956582675972934181798445444078269673735947625269180254330291146752696958272127268279561477178156130569909780958087144940639037046224274807788869833295961090922380870278689629873849987045380351135399882992497789851246768858338681047983246412929336314013797345346847245901644303844599152168475274732235423886232062547076697712806786302194105174356931004826098522760971439292015596167269575014186339981226344883368408963316388065673672734671211009674112300589688220077095739816795606516334335759559190400066281311280067016419446596706669367721215374187601851312026438476715720327533871875855145767764392412450357121006276460554011579737083081375381819868224444280158315137924117682916383745282479183136272781787140148947014205756454567334352007927974758600645605752583849284811211601747191805601412043485125361811699475793434952894480761699361633534815113465468896226565341855301518347245077820390724219518011853801608514167049919511487210811901145236401719081912559502682686873850323352938246791346554036565327380144551313099644792904257604683430272845917843477162447526954340510018530432227183759571634542345317540627345074836253012297654916524868520716566366874732468540967208968458372794622787120072802742689651505836143483057197944289089007942423708506530626845029997819569796719008684581149446272336734923347460660978095149003977768020741297921963089272597915060930271213762385167788183927171879672641461405081415534540635436755100930235251877208873654690457190480339429606618735461576079594513837041281081838529992635244032426409409272282784266869241130488328329063796289062516355576370653488952592830260641518284337332836358154116538331529855187460937359180125139725085050735890242213996427632682624129071886298354708696456661513876255611123548097263985948979679886528787222162084020599036531514201345361390761484914039070640191891389973728181936634692792097040778732777104229782526515943797654559954568144774354125986840005923000269916283131091465236796612824239213371937966898827680463925580793465358849563339374737903065051586095593855719575443929511233614504116403429306971891742689218940421403448793067330165537756149450017821320022545886194770796008059991085782818375241350959673095509275979060695407127198194631104158685274122745185678058921393065392589529446450968977687493681386922139639970889781269638617480931507775755811608097585658026633371032577169120646961052301743243111142160546446721172533963724673895983235269747160595873333573285901808004632002083419743389529403416475951317320279520886998050313949770916556559800747442308990903084075909044597715652892691710754181915462926449115079382930158837131620150701968577987588758889795686791980830909748319810860903539985760465758873073401553715528941636403190011800053507710142636279763825843073159557348384187151093763931234738757679512325515627685130671765321693776604274456832374514578346939518774480409073238416572854211630711108751774738002264133126329091418480312166781475489728246566579669895082542225301670308721613791745564823165817914411779929799377852861432591306773314825302839583740288604631890701251980202652695692241857358607342538758614783605141808514589289649711487443081488019104201924994360637180805151572128956352569579702637846262216191157649993298277503104330386399641312113725695278520386546256644623512993952056182173616324026080603680157336337878542298110361581441955309279068510308877772302015934914717346740743271184001940115716997510363234855183495896890681591436609960353905532382628539011769785732630218778639702894566417406586686802155863144588958149183200497303076449830506910781774411485596559822736363967112197466429867960445244235201099073340871903904099681773124394878642632981366711914540438087364417308674367832609014130674427389888332738295744490356968215419421344278235332412839419540663523247607935192114090655113757942195916810260435081535463235680840434688968178611395658884128980402031014698600856964190091982773328539198004633030862229926841817813723815241579227007575942600307034198421370086732331651070621186343423493115293259615127773266167037389670474752005286374927020962197879075498569210820064561905563868709984533656041669800496316608830119473905897223480102726822508556716235465906951508060743564664065499342248660964965579453398713423465935289507082937507508683593424785146778017056484124137409929640682240337327101922619020890828297259235946573531409653164081180131655546265095408316923374049160904757385920970270084842799655777782171880611339063617426104255236363735117345070059081139173041951740569948228717842315425753594793012005620842800612194827364202565714481451162486408171805128545751338161958005065936026152416997579288277591618369551078801517748163794769080115524335082920029935732798153020131654594823648770309257475965620699599894065581072531160790878482744525648490949576545632599284582245771679819963970663312966761609817293525971596114164826473884948516999694256225247758883920318156221291122793401728712793309259645091300600754809208815885787871343008809416550567888628625393527748918332288191124021746540618408875549224222937437704891925461752993711340407425606220389963427664106629714905021238441404777485008319497594383635116984012620789224259867281623950147829341714785636462797883640223521405212471062881951202408333835646013771857942138807887327917585092867158099585748650108081726614439417339970530585656438729052352361768408465711398946255977670889797841231516178145543489246423287002081930975426039752545774348673518992891544314450102773694377468791337906118835519254760938577568781912023976543861755248520890121993998668600197789318967550080807856491945340366395353454685245902838265891875185301960368212821496137625962663232744213311913915742007447462164261978105255817862362444342873698130838792264978231358783341644832740953082916330451657271859290776770692950765791601380925864566503265425458069674782983771953220081670140777636133419502262936389414558866532265187377343702055777147409371804981832059266659418631982372782466399662899551587799006285358143037984175948737197001673232170463553545364093245625137949303430152565788780105475719006548797308983782782442507651829244511980488614773087854072304860751708197124047544634436478498573434745562165745756811990286584683331560496471206293638332953808352512524203484197475878330757055805839630580734393571658149500013598113262410944175432613716060224631405187170839137241791611735858677742974004668913377136784973128083156268323826885292802215852283734429223597588961121966662136670334281010172826706855116428147019263087153331568076823452031673868089709107575311920344990486201368059341397205039456079841481319807334395331974278603731815857510859532804504223983490982883115862787327599849222114256105312297078046913391699663617867280079677757829840367798925739975973910811608945168101184410860067997304650169787850076630510807149667369177768702653674182882394250028407163236981977199318716326885507578127814945902045826240713930797204087363164483418462114664713154986482156196915186404951780645364084625364107462940830319140534713088580274976100785823720138775292525036072775593937084338414294113738337434726113024990217858836882209097514085154608206468974004759501273028503751691218175651210080797779633407743735245857811137846637384595329363071372059173482381634749394233540915472664403093323785075871529151205538210370367488799200576016765085921172389580776410509859927423528896811745543797296226974350443198309037740865930664964647528742295080038853904701005111093954737645688460350312684907520858322493277351681055169845557667856114169252290229664937899649984610858219981261695623453521649361805993042622837618458534215461627037795902793385786157317720678291638203122516904105923300189155446877890443639192576939521758026842110339323067360897384182763395590107620248143075196959530029602104384007398814054743159289882564511563675967440639738364949550363618685032653909401450294216039119647022573379604841129475119661104648266474494724695656939016928444520312593089785020915658251866258266365406207787139836981216469812337033471497187586203961394967553203120888027694119520145385071599586788752081490169894320540091993005015661107728636814879725885540907403266961890677087436146226179362350903749714627605786882363768820383822945506856706074224865531307562760291589222480477092352328201567751610168328922854643154762782776633443896023398995219882970406451438789349710646840425647692032697158329667426783912803611400188335026201329228142264843215736906627187579067034837256300010869472064200515591254037273841527722626406078490863474397538132882130439552971268105775321639347962082588655327341690512854327556924284233856452754389429338699187235847292663149141345950915421812612479429889271659884754000541800632177093703172771936580308621821608545832531755195325914483300673073690006595767892566170940513418793556767806557653881328822355810820978567639871832574310253412251491901964011596304069623533808900544624194024329765040108029321714599625165643465367548905832217217563114101466851425158294382823534705011163284158633320924763079298114541958831293699317642466343621317040292213074253751710245172431426159923100952095055870827271493231651972879405386094546704615363042385311964367466882941198447494669317979623979061927165687954320679763295345143550985973691497308521384264164716268674085412725446763767788267495933939175891264672969732937343258578251063284720493083116617808565830748186624432309323927617402950706873728133224655862031959902765774411629548126452921114851755879529792942969297986449957455361239796931402180301170437088670302667415059364154244081981368723152281087093281911824157232679587159343582110607341180848158750126148043068144100025890309178776060770144179790771583422779169882353707598562652324632137225248713502452701978082183495034732858810057068545561447825841276207030291258677783140643815068508428352901568668107103006929612197698771360350064183751390979530704530595910952849360622501182336449199954816097699013901088113287289407940220611603333626895141033139946612229641575792638447455535237412381881211938197742138318941357257107115130559539085721699847821423453335688822603915729193217048971046152288895816946074865364792859044835494906446150396955304684824017681103673072134999318327430035664882313647852342899894463022975420292615727070701109131905262979083515406790954509233106138696635759045224327217511921575859877272075562184014418572979866650091184521946007833345318536063107632765125839288473129491007197365907897174751811640248957595647192084686034061657632638300548224299008590507239311177811558215453174238853120440172789418644601183395334466319968653066784143193263808673676379656945896567608950333836492974523667935514715265031102726326575983132597048003395855077081677573239308416997305061074902379345120141099219320660192848022357083176073088081751344793564738353271447932055079316640727662438630942169610186572259435650428126808501631520442789380598963284712798207833645626748942989745205498985406528628579197178153349772739895938520723631942837716754920947044699327544335780170616537188142683660560682836378670386475155956599926238060607423637156645916991447560309028374908777490327814120878333069184499775867531218312441554442390354911869385161870796345719636650918807672358289551712343682787050568523716208941697001039037292436825715256751948769220826666055641030415238314683255979356265996203713080173662569835839159649991402725530263046537309679014988092982869850765497857996695499945216338610605954104750069857887912534152492989253331845493297182623388852559279593875678909673651853204496536561213046180023135629457137983064263025331217501876543624403428691324107901917435167583537077113694956032602153308891798954496886204904175429818876937013850781121115740291832617494117802766265000587271576716969181354745857363424720389660761146606929088382616903004367095963305458697152900682054515464798717491032011955941321151343377098541381453219986995893146665617230460272278475669910503289698959612682027816087556221889143242471870059156412982514035066926393914462597024948468579809440789544830537411012819912640956651667392058015506395552852141621615973279158608345448587080722615249215344796904750641908443809748564044398362831717083345758347546689351794814116884853045375331067988116521660845966204537140243225216948036071075982537753411693072327687611662198567596270508604423305568996403983198320870288128823731391121674268404858382037157866782565981597708318102028217736316429070251278367227125967638163947727749842390195129835843521934862632262460403389255270547856727743674059741586929154087890999965126700426135469514264380659663087692728869891468146127431207878598473891904457098186898238619949600813285879586437719984663769199673748033569493593100199295501469760436589365476042138269943227653879104870857501164632252713650333429018171762303779108367239282972861862627704735543589168576055494029728798639608628671206514847050302572579652358152833864797211010613310314403136383828246596089860473319162541793100606965052886756937173013932910775215605500792699616572200405797345058712270645610325615176790414557702690776214797123246414521126789482673597942448708639838550279821646710995947690641627864775109154930724238972512916769973469034646709498534798121736478739285696878949593974651407651083281181525347196554384941734784668154463388950617214149262088571252801839617873006408535712045767236915787341376037548962759235925508463551530498040665749167958223965861324326949915548547883801882288043050710131541025404792768497543444323881928106090226069652295666948980277522760106665577968355475526915576103098230389768943997732964116123843914404573424954237083258986920468726825274223333202066921369973715783611259452752193584690345100733615167474628237813302003901659348429833848797852855896530504387035973405784274292292218924180179083432938885116047938277121853026138348648409222084151948694419279941093655002287625341692810896832222777010291697454225911027704971379812330919818059535120892111218263302472691597335800571179958256115657952531753944243845531931508833692861938692696895327521335910217669677659825416856797536852026040306203543878635979414411936483749255094615416073582816620070166696599493535780112036732474652478935184237665626674127022611456203694874732376606855950928898320019686398354981133541208767749316474860834459683609515207848397834025179826173597314153031897810943754759277968172693117584984308477911686471232334438223480999048787513891718205268164782228447297611841988630398929150601809731169442900835443018851110269460157047806564048197979421563125574641167205728323646563330805143316750642213183865401437454883388593198097531042836698350159592126104073862337199284506205982818408013031313310729692455239762265775543063169937437761989629307158512013010893708010135622080368119090566973697574882363036465383606585507083806474333980145042523341503580739055277204373467287359543367711069608705643537214893710189966333656083554298619963760699343368203743543589063347480518706761135755671694456709084911982668297851099532843714930097036258867962953908222792787504780533938477249019892217083356826384791429777447700223804724041584008273413347088179975323546924548923771505183824691619071450176335949201608381449052810358494541965827746135844124221950923882784435153387823757145431244135439747589404353644438606852715669979125824871591080365087363814528498169547795793750450549034396489045066262327878016233950123708984041804114165652475460203762196977330918369253275074086990590542272550799312462993061147500914031143671650596485754801737645646833126563172423782584398629793017122648083615389931354358941206875236549817840502173470176857247491947343251357771797933294198737558372632428751433414806556868789870646997768362628547700132758400989591023053881912967691789438594499612766408887109472960323624069897915836398778626422844054101295364950425112792491064777751720663495905733843582795619964806599763832028138225198459309837584080612893918093452229077497279883571945853887924092503908766745551714449252436898516506955690240591994153776595441949455118294138037783016158579729516307487004639656128712503761898449673889433414801849035095039338874703914264528860277632365174340909775706748415731621064035319847921209911956701775654108788291906011379448171820010724651063577684591688093220719115584478269312723524286738550557113835844925789231553270018610827171356555796750890120901501862122501375951882239821286203166025279306118493762904412665573792844003905293826546240920743254325610534453864278477878576710250647026189315102256535351842156901345427425959441839812903433754813101496049196180501961111183177280817288888955962897109850951188722269037474083599352822565901068083577923110508686152481564524574131928874497013213613667975780608411717127147711751877364909084548056816094144622635272375418051393539479297460654243528161314962157129835099521943079782354617861364387800161278365665175287626516510517918045125227522804749611075025662869607163716144866154689418975683241342416446357872658177379164285510287611598263279179100511178021513192490227069441374608686134961033333424094645332737925839148107151000098703093514389927159295900715644515273639945670964188239800564506701326228296255305552451691300485917217296037812990419280988481721638366602965172172742376223615620906917340713760209335244626220580942432175852550536429617739031190311923551116757435525712501916800055239191247647088175633577674623804165614679374296913734247647694498643879609997534633856957400272271777799153358558870541076705288600000848476913191483610802289573025948320367605834577700635642434869467316234656108593574238729665199935865302000594709223837911812844978373025650463246889474128762050588911176234421998434615662011953573192379456767016361643470467646519402472715112293512759174771297327139700784523328443653507828938487216107971493878397982234118536429358601287412007644682666544754640026941637587735639429226544255330933356312135233310962870056347851634270068260957273841277667526708548903520691142043158877046167397782656407745731167501188172388073845728871836911582729330276560773951733603000385617900284285149754129733587618581878999232676408865701367005346942620674532430676476405588546960271902676936191909464998719440392428662401766222996279657684840234052107139568525941069163175392811693031223665105598422709601552271134508204283948391786017186286773098077521714456265422751961494431335476974084860340731601246876363570382431801742112381056619184660213709988737591288380273020180481482208915479595870937590089880366668854240630835810684911767545897459925035124373931989567934471389771548922992368772207440614832509450306093080030901754508313782924557008817519188962681543641523269108674391044221186100904460962051531275590639499196002566358564516333507975767422589783414245031018189356629218677267238664995610163880270275081386008007057887610869205662287782232164797938159834145174493832031732386111324176696039922881215375499092054545863354811354539485841840718218675985937227146575463267064166357851315395715296179978138025487197470970523863908214048671780505366526912739761376264674393419629205012039709784858220671692912774238043182119560097906917664766097995015681339993228641751526813460449334633430431511985328181511274738558136393094652244121995118533659730589727782876613974917559001632924929406682214761701057945052674499382974126748868471767311868806225231924835454746457737091878585745570541479717011477890877350877520143859291504017312554001450713799764571689965865861636517790079363899349753819732560024493992233369550885435522769691342041685591029815123508060632836190145407274334498054131816846314444537623664339436496124350680701526796435398885623787468050940180220972699069986613495584897889601703493051849039108939884927718238826162951425752576350190803326045995872425719945923589406802848614770365560906702622202552024829205142792899871173865923291363378806363418574885290674834060065637075723652741149894379416620932331798981831948614527272383143231956062197694716516000622649450097695781532575039598123410001425228086989996104294293703144204311727035211365525339656822629119656654952699921810849035963791379174001166042627514503511925050961416868036569463063003274777106064221808626920606454581113469684872253622137091537320112495285542132940464239014264876674492603508294618269574321234840056378403008169342409519972705880426531591145529439352064885289154202653108301783321168728316019097073508920237338840305176665107035438612351086096242740780670350204515083345193940414145121208715564463929615724126262732114236357035581642698213304754607327458517089703370349854312665774458677470138708299370168497308294809705747698594042980047383433780600371034215719459092096768392243191248840189860600619153953635662714272099105590505275659162824883146619025898171705508685669197598688683073179651034761282388940072002188394418393998703667363512657121018507722563309972368696476578092371118018063479657120334497210922818782933358096488001175913904680850785167063218106205444857625487994887773528524271862477848163271157551719794717851200510863811772334449029803948548226746957259008181684166541411290448444927021803369878299839360234967643263721503026038159071732338696181849901529731607274992056758705617023163899018215196162461086265039497257095196315739414799047367415573764550288345453843318261460352764477028209191397616425007207398024415606085975368110995891463444193890684834589747989568962825845725444206389582153287857508028104884573328818973017349583016593126150584506379880302406925491452583613126391311123575639267632555832349629517630005742619194964625300217549318561560419198990173387758253201729465048217977505461325054413563356413108475821817160942009954305565060913107942932068040318883245367738274448874157647230906099341473592790410839314698820077173866525791123935167399496842661650448767506213837988981161435431530776079764920049093386829045263364016936854770986033587511361280353000801141172377904318981385274600557781943867082207455220345951460790248557241469037477027889267549590174320419973409111907642185485478801113925933975604581025766426064709748535520550124605662911227580163376442584791998799591241629817785669094259261703959311165952507173584011496244370852001374184564710135799479665177290679618871258484666761451774971810082632598413433322560755288912722205417786640939886252724997973508964977153078434818712571122629060492994466981610912530439510542908761546161134603600918470644021545168562366397418301138920636620047526292170941524441885603336870034511929026129257969842206591304752231918434080310445058411488262075362151922362857118059499285659936000894480554112857656213759378905320634452035414959788540430548603047242314851213001223089189355974069892306366298859388695167534081836237737139034089998681862670983542243122878946689900418262863019261149151935920400015441708726605929685883760562630324150247549021583579723508029995414737459719281984528919544023998232473063934058494652787010199560026230607501734289705877577692731475442492430662961905034633767423816034351517450325222220584917843238538134658240893029868982300870696760533670199601654996236182978508769417399650291422548914863775394693669581009855721389050443396272365909022642764013605161498662716917939522921085895583001290382889380443519251539916084633043123381178445401352755561324200749948540273146824531728417473924255848618678457937846688197701043048014364946800316160694701380274746907232298929297919362916715834582761434391653576186176471082646525146061026233838428660702529926544663581531665042506583196973421998826599156539800437758263775480118128980800307761621504144335382348891652108530214344169146074877514423758014623155950569133868109174289984741585680096988094327992954115910636166399975707981244550715567129890525233592129779059217773824678480270921372277865129786060138805443976537475920321977559018521052440892940284372719108559841316124523071748336313086163656695475638343897027265219963464737359341009430950887812781047071196702066090683450609051183220627257613799012071860623123305826987465394362275779625527653034676388948097715681682958624032237435166872228213995110315255579770643053023798430291594632558641920849750276464378392668355780839766969775814110926844442696603731461131761129446061011264433976487586111938745067657558892865471107883076559525935458947050595341013160741108117248981999940745844718515613692553337282630866722753620833867907391838374422178023401571278241822198338393070190754419520491662891727035767383426649436687988895414032854173283305442193960443816598179258702394292400265648530121068351037810807255253864227399071671491346326762859039319415266465404574712192663080114866833966600209325712890779429309544145280074079531589982728463042066190918862968015083317315988883611890476823755187363101311768715176536635645282890116619673292572569293658385908247350248281608767409522641735861906110892640231143609262132120824506466010341690184012514498811179670962280430849073263415972872585834798822334967542816781269380477257933223363560492659105635077288133459941272618439268533635590522923748508331982969532841819354702120072902671618439582955321683651120326373286660722956062401969998365403286738631662369435273027657306635938231277666193110688278578559871457815072247466255232860585660502445254348203698771275601066619972461698381486898107602547815176445860870948872744306718459929382867315017407590863623381830299028487090189514285114739217285430780634638146085578942909909690234579638691216905224148878357495433475256183557912534994029890113925383709350048161044268776438740329045354973064456555519484662033273848555931238606150635896588577275619193261629716481272907144179642979833381965393091565772394845072151308119463442019414056320350582999573666606970834063331204772785573565049820386723164881265448367816171339614390901678600458692788912676575389711581931399192788505161701503859837121022691890011116670750848874755924910778723328125419346144735771917964635155015226165305272746033607664016393211199843319639297329255252542480188388761268974470816169829833734317689706633148768947590113803154635352127978826563781222859148419488241397254482332155663409468729616046889641416280832636315116230729023485903077960042702547613855247559346716340302101699334416055194922929336266792698889220725188713044718154103975111294711045172170255753213925378086730315258604075837144104621828590112880337601542086212416803088019887096490570689574856616570107293497010405292430319519523628920940328469932053562986393263947117588714458604955489630820995676185768479001604236438575798765614383314821198405502732253385906575054678770413965904702977378593319766208057777114765523576340132033903091595532038113652965208152925724682893944188397423213086712004565008768507263214946289968636915854515481417019466497815811271227289353161574433841854763372674684659410245634931204200743274833697765361746745853903460073501787902240131441575450052648325103187310791092097837062137103510354870162168287890920148502825869781250002509392200075737007413649771558273197767710310231743129766811071976664087123500498510788874328404797911289044154417570402812656831759817899789861325303459544724841906205240669373732741289033503499641899591541403697192738991972878020394177399206283258655827116725078359128842634726418280279947016666070987662269331110192576087144482417739023925300858142238246157609082943902430921364037663942652487371194150626274734482415275365804154394228714810100935550678449694419515323297173668777006281167508834807763844555291042909313272255937653235061171669299935828532470703628664193688670391633568201893008545515972052416225341008329237701460902489830388085002149105980880076794365392038921395905473737064519167734187496355434291298881847694731423481919013969228456206463430058628181926314817901709254401716578875095439539397960977809798208887010571314511435970445027745263568559812264534687402412491655048425148530352831942847982804134121214740373145616500871119048513896948992164940962894753802876647625642315789246998785915934639099209144596012925019567355477671535336920175616958482178562402136070570540905052314646591791399413494913135687875208806380067596679873427797962056568493108894590748373546633581777241332242140225321793914060504420134578302465864919419146195248763432552577369133870788314939974929719352402137830147966457996886126689610518807979491873401463894513021442173944591818910310611033960142861147693610656843531021613268941627823869802516809569693001895624802235251021369689127513732426007758464612120179748491713971801060549727647662816799879266940435540738101241823273394693935722815390907735633408865847300398691991024821045306908552662242579400801884597352889726559425884641408672900433299806536934397139154920474469356797291100982948031673758661108337631215842281903824700829266707599517186926067687223727936223532756197560713860152322545474022508843999041832235454049511227120486699956631450389952487810313498559432333661213442827620988217136168190215962428022949692689840303790049107448323067270247731638207642174439628286226901106804515459905318364829493868792925330565475681596038118896749590614018588436526226657419998670734583310336986483555726985432824825788256445140322308611810784660597720152649532126696650961749736357898399900272418038213095362380546015214693831191908556405238246098348534849910596645729036006405520743243483831949717563666465340135755690803162146624719532808409351479103634719313665512205276140584907087504537038318762025705424375839300091714250507275159468665874095478654847872138280494312729793366095149467579157793406072408981072274572588210817300344361074214851821579759317318259363006075137243028287385810275246122066541783617777002478452272047795565927427092423572367848358900791151049854274747282011764663520321250384461832160022949528995503277174224857371695997369537328406616448723702679402338363301517803425855667734166878848605899004542651730049048874472598698660710223865587924617534853685642390452479789290899275757368790961425108641948591519859359458388813740046654572647397533460832744046653593232893039707071298443790233064557784616895590476673880144707751527201501172756946541091400447617709656170436786990885082718135849383275367953379474644814001927806612756396568408684093900769848658921091673005493797032993741489960417347117522486920961689750558664205884842688463759584396689520099931846578363949135842855704142811444769350936453426468116869253638302037633676811592788778146723018973323017206609575931142902235228827614791712764083370096590385632545874376754187377686671786140014396999834469635196533833810655513895250249885457338317058423700647586312847613277065867056202486917541375679119841408394453553105477011676018334800323300224154282227596132746500589701300162828987906623758698719189550882640135362588574903566334542469230495418423858884813667388314871959821602930853577918920772447337233513541919726044393119854260663303332187962561420497547952990502562549426231508429345391576346904445117954171164962309610215376292888448400726166890132302969925784300086451352765810844500202915385303265624839604176915512799982901274590461334908821584425303525636144693424730717751872774932507539833874214673828666652705630408421878782321671608601572888428188803877628163672946874325627020411018972622227953579593299435673753445633099550058199868017552349900618141231890478826575048792785978496778241852896563394696759798733721175462469552884488189376076286624563720543425179160534649345025732913252941518714861921275295592805058262133927434344952012396418473170777863901607981428035391921538005305374649418667027856504543243348397196181705606698349628325515792813456383022642068279380756393715991695270013858702028189170207948736712743729901070879800864551883910765804087663880565785430639898428318559550371503366941471412486271029475630472298326516448399413587838178925579711829004863160340642033541794626052572850358861225327063979930500045650935118350441161111528747110431012642650995343931382208023330665066517377403736473232057190655544854295130827523836479110647628722202850138857591055844551047899210183710633515797120581039676369639385724847179039350490201284947411243075392587014885514003801375940963356546138350106224014626498929213014179654315708071180924628861276788712481301956203297477383620664040141770826618765909189676080113113066985761267133981603686004581912646368704232202979733393163656813353555131114205430175380524105032727417974612757375029100584030420595403917596546539864953166640272410693090006390944271256714747682662343510022783938676460192011967622140087251119157570554251771830552752673830659879169861265832449331959712276248416041115371915378084090921838976321117848086463893054902272289626437870674042178448174566653677475366779920163708672266045983298517530264360394653024590041310913802215396985330024700636853608465022123350682873338635143449552803523728109722652985208108539263018326763896584872985397203708031487276391459284481037254317734527437701981460280740298938153736020179479543383748042352540053120140278038499028453417646126611373329002982217731884156008090551513775607627108790854234956025857171809977887509108919806205420924157902231837066437465190266375610172588719685423245763938670693616292849648530669105586500933240101548823993985306759137459557981447728511059450828935120583687565548339805695588421102605104825160633916991957317846655392699543118743693784884075584459475863563068210076680058954521003783661395874792038997449658017256725469350065201181332108595368319941871351077039498161164472045675913609681230460892403208758807564134979712426698639456913762434807097753231600459337353231864686938773942996709585811735979482901285431642271544399973521586757004788136872105745327115082216588227204989542702342085011816433125247363492409933714881899901020466083508846013743223186106421280417792722098513109784314533439812133851362617957375717335657057161554890174209470941338519524568489687972897794636337587970321505044905036225850874267966521361349931715523462895409545582781305566567118446913565187753292358398528502934788306795052612625991403763948956148900681388070316156559739996190613060211030042681786124243177659732790202870262693986637442120866499451491530525215038694799115749624439219465324929399786438332036079867565598698348068710594930213483329067442396053941627593772768431875769820337063750625949081919270459359643258347325880044281957513455201007425036436014704862987648634952838302347343008055996380999513198273803111679901980377545984242967012960186349410089380603789912240164436688596192838640087442947258281061610027698238849409245437137956245922950780842249326712983742618561339866600947094932621765285297157710891794933178229548525070918570378702145966293412350659157566202882517102921208639997891967188785415347755874699485996247844287684748738004757079323010642239290824085843554068434334455984359533225480008658592977604329079061672547337946892979905196209176754916938688217131110030208922613027398431220077493311982250981061984643250384967647734664826641104528049669280553642939671168921515282096126740755642511645283624600127138100773043414141623396991456613785290951711038878025312744285242826629758383099159117236462535819514213717971492810738720951565238771560109176529444226630381928089730795916875169102305300112141391211392320845282976899541821323795852639466646943179979630096895924918952932596512555400926538251968042114963985137457426680962860601326362266056056513920804363367373010221810153915212459434012715295597777033038854395319858645091915213436147358340876703945650962992658868884775833369755423036745104309506224764101186721047050768848406336364180310846337552229678129722252515546073903495397472873876474951416749632920426830893213978012124923658610247150735585468190775321111062136202800780033559634684520419062029354354409697194868471003510516506270499812257110910868397550292268587715015849624722306332951779406054014345656284075300204975835442573939465564453112070240323581279028493728059829581974689626341006282701956148486294315618310648504517457775748069396109245271694246050351046417621737149285075414763526111618033707519212230992554475531500870983796728046722164793117088365801037679511079189091798504203880054064029807135642658338082412641122038977073742325806678085375855952102250485006563130511320806593741703290802718815848089960074132813936218353214679992879770446294864270618982415988286990850292128077856124428431901005309399048628721977285538445945230049092431782582516214400500935702684769632521041519017984300252111647286403864148225317664829930088728609032868302011854181256310144962342978534777734033875254469123188061978142361022632769698628451544551532077043796603811602362131013913918232754182175495969762688950739645463820467646024899303677374065391283860699329994194420926145298359345926045231510988577857534083876832718516596731581297987244145234770858785939388890633194428103730985798103189438216530006311768831553616188653066274306921981982790790702262729279751033249893702067202341703534039756901081912088309376499855340632402888103138330371292606436342882447579463504860057592605158246346923813557996676718620902102485143521100047206844092371174900668395289454991270559271192392795045111848315657358085980126590956329284028666357610460845074676367372455653729571762080536370362130360754438456805723182207127058905863148486374299018581715398122892462207108410477435490067530664299848797932460356558529874118410022823337316317172930888990670421186977393600911016097274006990319847669376704789724214570113381151693141521581194625288037285289903733704883931475015039966611531542279449956011023551977527057935804869981268165920920425561647568181172497718299468668991332117410705786903867567987406171671045335744539990395922829809079523660421094894952676426874151439992204310749543743948961464947678605625602533922944859440853342504635197601867197186258073990339194931576304708295034976411474792289287252901340641046940721507240966692113689452861040926143538029583718365624216345688387188582681278251176696538817104933126689006128198938277049682707972649587998345783131259702335404417588267616048917438043551776713413803677687350897285574759881440046289251189704265056825713891845702616148977719225206645194494573281068948209490058404621684166556014125769588002163530696815819301720557682809367306088009147604689115998037577493788211751050505455096377922541518642492699995239641774636056446370226776184974384846665802058784395311673110104507770832734531100577305868598555798036637101278554130791238830228466764142916815642313049561854235137101371974289597758014639817566150327498202986685454413039448699452769816195550720440805973469611738038772465469848335857129391253984196294910092029108023277405479402516912312817906976690638530061527751248907010668107617109154094665773970547534486886170436016677392583713086374974872654730433123529196791180182039492394644220500127930791981561545928016128539840942724242835536963696882246568199727108848027107936902504990841281529202408033596794551693657448382320541354196962887574708977746582156365016928477158492273431592423312729790819774044880906005977945423677618393515403116929387951194523973573216397165887800930820750903559246181213378741954661708361699746689049522179446185711255505075593618692385185925108973912186361719051956422938797425671934576461943794304878679830443394989714629971001361529025013493050813212267712343478978237231929487591564567685841796520892041279067602541870921463178791201141411218013400369131281906084593792838701272203076794582202788630181999034964262025694412265377922541518231968195733725307551410051919454798996483341271572846229712230537825062017729654541248805854939236856372561742098065340554215184870625765167026318419740076019540246814659142008987274030539632164961571687066076166933405944617829436965164927667747013819773822494111263844303554414980527466179751468080509505071125185110536180110375762864457340660605482812882228609190985617065253084596679807771467027267960374029035580922039692411747326747079869959225794276395966146779618716404738915929936760631376971535913619508303373494621609218946362228406763073026275386575114638134934991388391506678135750253227629018233769732143106079442001414150350884281507645596104253696050394722972897711592837733332861624587220035652907739277126290045828421261782180297977454059761350756274168474718025053215842783347094151336340786666917589654780351375997954743254115978973203353526957578592868691015556616266496411288992010920590551078083591513376697694769932238047294613402499989206313321245272985108607893671521555144562970912064622300817097889232642437988675000067231647958111750053854028314068213855931904994850018608160338087831894089437064979444687357770193280682608680820505772645833148572529800709255562118430776472431745300833463074036717497966262597626058083445424125220248853085542233998115393377824082986664723094247741464389768002113304156139957888418346470438687172012731599387852755979323050469225699999858406910301646033309837881891805378285304464811012470712411734201982862368869685130443727438235435864515681434049394335514663197401585246648907086272199692077053153041028089208512227985003850968751976869781200925110893763121992025000318521626214028783470378876111314726195296266732211867587535659732702456706993747419754868499693387179556599667193684112250698685862203902713465840718580064985529328042552300576897307926628163406700504817488666758810614692190801576677256561320233503293120938551053476422801963785929961961986810885840922137699375708824283575611233189128671806488865936554704556701735331044929557852529139281479758036416789684240724241816475399617385174711811390764508522979393455512218472384048283213111297847009379953706114106655317677318469242065251560338188064575299403018157831811513980861957114302739720004264550774029265693481972096818897462154507497578068901395250779298077233413044861306040778136832132361855088279039434332207230357905048534127404700929443299033847686112490921996509224006879524568024515190821489126249583449910681194394995893180537440329058142064331734927648028290885912309888370891651201487265612944333617263682925062185747332265728106322455015637090058710809175222476449516850936096613804300618982147927490855908734735526326331813910577078203978774210384345796123696879037921653989661270589069325453826307802645773433824082786018475570027063226877931954964109389319027057373775354985934822377424937379340464821717494256071753880078713961433729346356247681937472574238403268085736711099937935938510687130501709204524604017023707588857770069339853760955134567376462916623029760720187437719791165252805290860230117828258932403375893908353847204921905712673816654094953185091262162281374217118870725325823765720215228163304654726505965493475918085205464407961495447666813997211564947755857451139428511964451626352152191804260945931996654846511194181286134310974476970488267394502797115588467669598783122410774956199072184934224659755081218157693076748811333643599268740985030384727935209888002129718891654562805238380504666674621021773398233400514057473639675397875660725825649920878068568934753278088393168703368624490467486409645937752320695202275313923864079904265456019377929505150502305837933387173202491141861926572804841752394280863753636598403471829973167373303580490942374054638365062193107454076801303100760632124078256388583710490929939002727610356572662741770153355808621299088273582062615571222019886998226268482178961617046835856803637732592498242005946653124016577673334881177068399796353353231254903322388225348529634713534034502769454722122915713032294103354175116827248025951382945489231170051173904971084829192899492266310117549483811033381888378150317468991901221413183929455479535597078309473361568750117739057604109713373737136772417185519215435317020556717664485887610691950433967132224206953508625339763030980041284182849748177099474491802322593913669431131506054619862762444864799418618456930010202256060086119871144625545162183974147929164017772097665646061328969492793554722479082254435418687300606451424114004900080367690852391212075651388707619004355598397183754657165682162292659416085969118479071977602843338089624765094255932574127781715372815569562294359020105662386876941741575699932549032980897020226823891893821908514990144181176323978581968695625766612552327136660843955774465197866378658315468936950385477696602746158967139336370052081964594092548312206642749055200976477408839766171993574862341042704852419050491759928260734975714796662714741273761425122078833094303133755360985471237930646334984075301935036154797833889146376541018930259506183540328971262591985713415173907929341637601454649190480294386354493752664068508629715685309712305220515584538762997557106375801021941902740230754873497054814229315090713105849500577127394306041822950018765653057867300745741610944224691141530339985806639534968237322581156964951058495319659631291093359366739256494020449160918511973485635283356111470730895484501394196610905908612778432482568000643135622470496824773300046757645768182658794161173658494507344103758806692746255606185477338266297437095298063680627305458891035727738909192205134114061486858049703422443076933929448001519382063736328787717266894222496055908136016630454618125693944845144867722720831738144581806499606795390955883744924717202851074960280926667658611710204825918971525824560445769698754641319901332550947040308109342160637607048820815996136979362304017309013485236826869974266794648129461796049814843783009228135070925552717525509955301298021940400127960427283161342456320236283243885454747233662478447426859926281396329597806898775085019644560593165306946216755547797192653521485357822377322622238433545929797443962072125079090124373449609112283549089860698587261319270454734361422637279510082015071266779195301381665095920359893184990603167554344236285267654180770779569593169485590302857371075150860335563692995121723915044120033540679644978226422351060761044167042770411615045347661554167906337612245252784695203055744695749888987442810236851199137195775348953850910019467995112545374917131141017813961135700525445105542252252221765031160765430212067029162419109217854642671896643290608824980474534998745371318825637668082897781215566788515010205260245850851622112004095630163829750228200985452586143569881928579153328992846494310374075735110504637128039239344149550444294006085280272313284048002619726938097980588857125379291098178878971366883484149308281034542028703575572183466800131777304431483641392783166080579507523082614150840914170211623849467444153474276749967046930925808793859037999269336125798525356062069337902546794527536404241615748328432447994315871288279404740633635825438585978940627252187537150740231315100678477591506389805156753291720072283035867832220341269640920172178503251457745561486750812646649651544472982270960055833668110739961822503235992099596213730664506003841721013350590092793665240698344941038553801792872509414911008675291282747606124730720893861735609491067162388101598251172409564458317835249486915780395129474178948158805200799953434989000821666892504671919929103392234680543235437669487340568445483249119172146998381993160895221096828558552942680152282835513500318203923552942402914889343912753056246098314733486579674501764870084985836472391438557384998124711294142681677677636324271116980830108660066558894861940423707404402161538422270091572527054404869130168884054938582084592266884378445467284272682398444299226774584655422403807832431327588017562228214730038976345484047209345742484528926803444162077975741695108786487292615437770687148617929824436218323382357708981691082068047123723424319207069007895246695788671615819435559386198567786288397716874772538909022238083437161824117323552349226908030046553175915913697981146786476463169405066323671010127190631597520152572540570687743211912640259108432471911452474510715466806962595135589376847535787159355666969988348733277280392044738749225911700167457124129309983485955747701404686719312759253592907456380523500839488811521597504008260936050693855189347397246934308173111426757649482838104660546999288562819235825969383421700019574775736806153976690244366062296012687647923497286099566148255070983603969514074972262321065545293920384707401864481209683198507609004768727212983689226677634184114689797397805479854011819262783608710577136717802806232296063373243395499193924917873410797719402499343625142661916524641308526239072101207864046910141528437884749663066481065199929635368406003255715274719501345453352562472489004712210423634508119845142292404878887987592250451172356610309420729189751914519187926988554770545069817354976884691022565077280280120294717417471734002892501763085679522396947772158235268655632960609620949232431726700283329296329963498776097431843082420982727293623541423253584564030954434106175714529920605419883708986193390295039222626320763850716319115089009175347865830528666217534226911373474926071288410457057411840752079898767139402700292618629957846436481982824407527866351964777722977475481848661277781009200240419307679885507316660714797514634481184009212687530532957908361817805413310361986326687491020220184430623506656507676475808132071022156781042655543693032311124013167805181972926718610130847557300858425986836814827932134272771922049181973647757146584328842047578260601859531756873963302024025939181265651788190032692436805806907593232215453184487211655786297823817996249553870665715797497358703999439004713708232266650193431523539658897371745384554451985103987094299630946376417513768128322818303330924636544968577431527708154545209280363925767398785691403397124311121217441576785491326301550129989010467197377601964653420657371364725758224155096085411126900431358123397778967758827112142183484058172058425801058257755000617678131135042047621347565448212666378990199622143145397816755243978221956630666930178245216970726492012052649540523648658642403240496781219881892466066311901525443971195140163116722828023609642825699431546490553147447299717418510521914991195165666294210803442918356774484411083697199274957076864875892699774419007355692145613619091375182735671717901799135709580342927980876017372620976432857273527136763723480443468589744286723074751509913048984797522669546877644224379273043696947236792977014966023742117161052368453229247151322179863195844734302358737159417453757063583116668213919072127742973217073239885243767953459666349217423175994025279396110082488785342740163917339724310262188939124360854449496024201692025268642110315173611625757056453576076839465157544519030876160067453893972850008181665773335338697233973634326214850745663860294255741443888789405919833694886723631729763337598768125594121251633900471367225008811860033918588691436488767150228477827338683953516098780694499623323463772993755373872939235706747025796829439894250889897517943061738527656614090644664369978690731266626995124429707613704336816819122310035761330500147281500212019392082274433021406610127472242726104566695149800896219175525036301271984141873127877628960505192109807800214024692686849821974990088215251084225005842314477514851404530251640343533402163513054139916302511847423728015563692058495219202542165249500674668922853309304443422467074340888531134817790787621512937874926043841324305655467062378115705452527933451797856619844360595059178478157487353909068722818580300268984673574347092378095696488517518558717006907507511385455323797319371485871835388393575341907188530236130633179372627967941852930242002874405330461156864630356807645723301484282635959093930245419038549282086497897333381761975903924472516734682607996703387052141390984236847628210920395820378894897470382088771608384875606829689828589594939482035829871777171525709959743510536651768769206830373883444964425196910313300600953573868246657950104011636219252517262830517448866798898642522912647041724129335447959484073951514965077282037110414920668810074368054856104877527914062582105433110679361582330263759183535987268494393009300290685250000270587336583957712114545047300723754463524173511950550165651862406579926857571867245923439804050041850860321152345656031844595826391369877863711336323558542301228646672832421173080676754779771528384115868373007567803587538727626439355000031739495302111272448287596231443962495481702243441729780478050673193100838420162845895671102098663844505584101417723752997467485441069135550169163752414893918171180715530021577150780580343874426233811231063025715516005439170362797142726677878264505678516500914602470687481906023276762738112084887679838327802064117130430365906476427423858388522092976615979080817905866538933446207555455071343829414720137991018974660843104367518542931897323403684023315214124867338876372576035945045739071476474035183162939878802240837721448449172808415480897353370151688045532483152513765645169801411596144245803564109895427855154646753676148105815609711459231223931378001135279358600519945234179193629692606640009140745418937670123741640837585496338480570277007275279488248794806218573866098900212714961691545178686600153882429076976709652972719364382689628653567987967624357720148529248515872431149078606027273282291833119123252985388212489345254752848834411848595516166457785979930425944676217745993866224454493846392940154716782023482802387919417480015531766409413599486115789347080849830237285441795719430179732124862559019612933914670528942653657249821784869589622226658124105610610745010282617789352536837115047457823318775924264938994974137464682258058754775076129947213793325453353614858184163229575326568225173142305596986663988206940425413059079930752135104188719552530324767124687461803674366332276470117017479025496135438267881727165518650010400768557945417290787441332128997883267306960428769526319719276594468228506853183659719732133835945617795302290775054010597766262329530522120550697599398317010092387259230211336042589724357305951599851774335769678736316007027674217311732808516552684728425784038740786275184362350777359634637768054649588388578442822862863110179897878296336011932508503484219608320862153598735671474384123730628171636665508658602590726354343407100266142704962956117873541514040179665279979032792268314874844502530425429684450642112926746727902670218492227896699803761569380923939470719248973108927353898185508666765436073216734056302671211106375852487591995675474933671688287604916611189479943212141848532608932794582347722098314798695529766141287304770759602272762095342771594771011811480079540991130246375818569699560550733791794138486459589665140116389567713071583554100747099838417579835637159422190449151543887585518622500058066660609294786524064418387310343281056983370337062472956359151642058819840269135874739751647349562598236561368259519780238010920848889363594757042503498947281761695795800325749087382112729279992674736092249489599873930424062920890498632168193292204478508105013300715249915250697309743473305613900764899489686795698684435012985275641270513712311761422209723977619367497285179197740117955241016982782599434523678301497613814679321449356972950034419678771027646568045726881133629468529506182859562888792688555748948439102397140712209377505912152905237442211683067853548214204407195649928748527547602036040583013708738885322355946796630832157512665092308821519157337196079034575198210032345582227647441908856239824714225959791914317038539017882520969330196270464373946416245975791498498237641455773526979327145920045333198673859670155635751578799114709847547589209788312719981566516464942296690287549782995542261711332287215255166244659640464373498699097054062424962762669115327849186259274265165897885857703061724458944184612078515327784525844206077371257707125617318195996147623292294125903964259624589846119669589858966735975542747735994756377346654559555862292758731054275737100796236458644889445141266766817102080224863259379352192892530190600206932452501578185137958669358743406642712385580974135359164383227378942528622034664851263125852472258824975778103678973014120650257280285761092746105616205412967253660522654043714741679956852906783905657945651145344129387712458310439436970679155999051124172754405859591312203432310476852876746470183219484870091967298115252400340629250815345237953701369706423492523561250677127023006488386952680580389177962358139878278411930562869240881563876865723795694389460359691941425863239156115303011240785724453921944238534322830887672433562327485758497292635052531046948177127522691349380776182780040949904489019386278367130670695750837545699489685132735491231688708725862917102634745432716330191196082250503759341937910731640357657184585382600187224022015625641662040717290858149809956270453956709849045627851282469613205827629637169207587561696873588177534385603258293998182091151401434088331808329975631879722456402432647096236265369123808251609476138646196344347596039895301158318041503218819300640523683169805031023901723861042452897978115406395287899940518026670999154527211802201691363432034366981839880097581866598269459836073316762966575385170100985951350300010415340565257624935761950533820215688123304193056492323905444349854328657946967856604242230411868652081838338334133301586957920352825144046944833578362295396094121328424826141557961479157481522432561836775907579968985696484482012635610811444468681926160128712944843287288422673024737749285699009189667613906815935736757021481616413059950559948188312226300568218271827847057419776955435358660248581638004719392734410492850574156493308811216053411371293405017872626707058098060660598061634923410400296712153069856520866772550501163939893307249992573345622183358268023716762176771861312252609504974471716293672668253778053553181196735467686136381245852117200536434509262891936551594492705605088200636102386899290774501970971188192178791121113151576073268892960519977939211879339612057614979596089870229660222226287251123107935460183057141818376601701376095175102569281339787331124548597146988192204409690712369239757713502706268714911952240779006999457506672383121063728578444653385151214074697119905618089567951520483421115040270379000492675202480641760017067890209262317354737128446199589393173692417154218538275734794843087426055822928023514875799473550803990558117459146740819396524839625840670069573189078725791878953834754013041282959486267426912391382276578370510039471321535530179324784784263935018112499695915809393782162559533041776204559722399056720122243216152908782252535672199879458140208924863750007805503004121935634453316517319890887429343550710141938160302042171766834725499437310927878696194267062362618505147120735898414354333913588331828953372323091695599852842947303600850861938927362768409859326819990138504129339197194752241100908963787007637085182452856905566795010562343560424963340871461456903406510086748550316107342517991393849793610928931502351621642675987325713931665673668007781426278322888112319734332331472608947269179727173933269761713632254336837995558076628600092240028793231102972109042575681988126071839107296471632563046380092658087340873965142963344844982483891201620037317971827221562169392420192623067036874656167572474764350339727492463240935169114392995622941404271022172035715755580895251653281650489533601753616669057293829238802215233887850166861467484542915450474317825077050887016082098214151402017372458791779542133764946259618597081912575183084949602471034148537356409364596919141756691115283646739918825455819894239679336399686444871072456693271486789612128510308845908875232115777275327865702062738215791973066197101059848248263174818492086445641672649100331390258346731869356834628374897594018130157018367204029287340647075301623693292578059075703437071438404904511590090115204205564788916728781319097801418594937068612100896007383299246627536016253150130681893708699654718027366193762423832947584516277160774514600650116643699464164915037210675608905431181092873577048667381204536393343471860156377730183916579101042191474472180365916503840689085394668799412836959392456312254980887366567303490043107958881710837707150651044878154904814303360952516817675750525409694497385465045499690416415739639830322700467889509376084224519328067861483064220110467126282160609898708023740995317713494677903412941725738197086177631413889099591071325983496814602618493280357843959647046125861454694741928645566043058470997171372143176429236428522047559739271721305005322483702896483024526109654027020401002193450672184949539543381842765415992353182418431678010767257184631111518956979472045821636139802803274860314394714591770552147024647931852921580015270143342068617134573661316710259091777648758732931515216938079134851719334080522908227993023570894570841473900573055491181463512599848013464511072286365358059061826413586629230091967384221340410073595568470496929452880965378020959473613340807680722245886812808215647381143473155883797825047195133840895888289565611549804219748664753986490645055644177935142579476146863966781330447782143144506860081277838654138374599132428891687962072097753412815586210959990003932561998165245281568878877932172222569015875996644451924878885887587742517835297879824743014935009856301176548038861825435901875358065031516769730138492267205381540597256592968850102801857952137113969051017037880974329475712096040821205413780751022689046218717061804246886272893137402370440699737696101047438749387624964767424593087110396176098228432680735014427548818596573072109263467177200569182022094543019044464295712874732142259577678172401890271199025739313229110264991203763707407466513819520192759384263983513555318567761083349573735701396644851908017870543296888992783922550099538320887522895732165896387973681395217277862982049791903788182239038994937563477985005736808098703302857558637315954598037823121240580307926939929117872772506515370050326194162701991298554839029641788135279604927238748304690045672701584954399430798203345869203932020617361804602782134616042613781570636184450300496814490250726744345043098759365807592192200561120982489266316107420873916772601423306670361286484885403535756726380005787447010213048044364611009693093300796392600759168835618196832485101688598906004727164821458855164372431486484849561626451763995382886545294748079715468031459186197031862192126994520101782532689244927383507276666781152773983058046299015819823905498839203982728648628786053334631315209993792281422808368463894909851164034459545464876485335292097502044775532676952100564797474357331801971978622356005777829226317840600654385930970070084542598179757165815369667021398083390859446253114929280324334777251001728064331104704640402946424781193757264141788863532121247754251882110750756411297616949425887084152224020025205308509766386623522250827680204887868033720458154262860771843297014461894518251899224214218828698258910393931863789186712267691928242077181817076941867700732637805104016873219034202775293738348815728402818889713515269283261730144276729736587942316555226137196503152004803050268798807927641308646264955106028099252513276626777464110490049958323388089372369601254697484216161287700997720728387875562332485081544994852306599057409584928642558421567942397415431750172173964593127174909137374548450689893651546437222309716325430863613167452222197055742859019074534129923177156441362730251982195610848800831775309432245949676667135708007564807035174062765106295315864237996050930904140187137537069482030679826400259486341525937866504116896505971032171347862943599361932994643352425621983352074308353385069465802723001023830598626140242831443653287010141087634874591614848726231352005836981027485301451433344611087824432428943705249885684830115289080555120335681556372056021854868534377412317975349248429563355064856259917212014113568053313805282425985141333898865373266912054355165364477226522894576605729936029125008220417924548904950474395145279364725523396890981057209659749353715871354363620331731343707388771296254896092361744514968050502470634670585785194022963328293054325542567489192641241385265038121083419640820877664844073256917023431686810409608677746452695344481393846212387076592324228997056396963939203387397731974453220061994936551833835645361599408812499031269401911043016268803662466371485818818910561749786408965741331735778787275516408420170143261665566340272047272648560697560778567995669491857730224554829578289437103207492723741684097721373115201288355647888641583379415656324127581751318223384411394525891866492457061232210005647133803278334528642091098841377138789697813559734007845905965079572479586494976701696674751739713211001712790655111137922462220813168853380279208460979645715403808446994348709473060531271573332564999451821715322413729791724149171383919440354575746164780898847449169243954428181139533946556902221488335816838650204982094701568129301872867157415926572711140541954916185663576072384211444917463307076925061384214150194797318119775619554450629049605134706481168760536824959595750467399507508294778763179267346388008247557565689020447189606487208356754803346416228159732752582154566140714088396118698500695856957196361096664301488841120735726610242316374153041940830861665233744256395104784735103858779312162126640236444530958930750650688437877110497835262552937778949548788274323713285941027786765431686050363853499619505294934708193074662716188394055012093659210320213559823619004319416657865203594362246037955467526132786448681913308834311835994598369736437679656113193341394437756794645257582202876984930872696926753798866813136611965134598976544524288160873617935974139112145626667702878638123934521671298017010876039471927752572584743240701401773964765667376519879405982199640051692958066829673627493992535022593288118792476933298930418775159934384878528127465097740972072725099643077779193689923419967666798765149566116041052068141970479321852873047991800812771332592837014467330679798311788001218423452779537822634295873580727409005943666758988465199420062897516509402489590234476233877004591960902033467131914774132683327996520133787088008753475605768338891847176678994067191146076658729735169409714660197058226104902921458667111882522062886073720746793603414099664194020903773437222151916334783450655091984691844236209839578095289747050915698108790190778022940113082515678007483761827906154498517945232053452512031744512311032336878751399366044067482499616785040867660072509334218439747791611082376984061204971285980659782831117714610144042525181375221646906706276730114862574772060812863027347629663088581957577167468386594674525146617144606825776467384813158694449840616638988933060582201935153817451315307527260378667789168410100072395721988518179980080697652334945797224179823931395616717397924249177262248298880888921802765727856647177627853975795301718275874183103792120989999028089240265005769354084709514279375525048400387257442975297773598895847871241215459531714818681091852428636888079971494840008068519744932833381903577031590842061828828545965589572875822258387151931398296504988958468961289260721876887073719051227921891883780873354249419237363656803771887453511863026052278066563166873432661170666455213693178720056767535060407754674566203751345387586938790024422448616390900758529057622438319801153941699691647083273997985767045669888874620850232120753861095149490226550700490155721748339791767161833351267220122394628543048433208056695611754996557854089198294492747541801571006247635050677848603903483988458881491449567833583490698180951255583633466687732385307443829627470346050987598519226507084268427338007194123459190143151554728657628541935755284859708608972739887099780191781855605346811295177644680268740530649599781548984729324181619168261327092172217608628851489547070218339619200496281269570305412510926156291465701788207808287728347509522908340156234701102882811402893520867899193783203891960823712309115339284831653743960626798208022909123704531711344425928646606737078566073667134052304425366826325247292311265468324661450125076747517228539166575630382495101262094355668030223808051834189276315969697330012172824332983086004713646662635612035328919390645851515524145987705239955366567029505949642621763075443814650964909189141594564990904218976727625356203667351427225215963643351900218133478832922586733141364564285159206454901064072627835571592714223747369750614666760896380856304595993179799381955608914456322380498573282552043969657020892026720585405467919845133064020024182455582026672540701010470103321157860109197327230482575374859333667948029167984788622132247867083112367635125589012447659317879089842312346313068473984912747992718809488632434958273219583013258785030072279579542857490931206944250596100112140776789516250774254467460062508457036390477255293565006644618243942643677834518450475921684270122138195673880577891948376590502138447647277395090265705022757520887840037540549227120221520956018829487113103049580359078768482345796160751310541890080893042245961648963444296141572521269717571111214974368007412624067630477910750204749326296452303960177848302694576725837785238319397805433277155337807811701646487191261819277063904278234443759189033323173952177780712481366434779037286215081583879147026735850247646277234469385232093337017951826187138270485129135908581818820761895399162053341765906283655865381890825787199663044158382112772017992641703716040793047863673588024872956326817964396874326452029176898613425523587292538749847498475845810688493740053791609814307996854001751039199094925716360967121444193123706899242723700701931922655256107897038120607591361096924925105613029532586947662729735628671610322676792651054651727982520326978778397772789353990623280909551918835932317717681608868712211559959019247333160406898639502198535505232860505662705852100019771329773998257135259899784425768561097387426152744018313881152775822370456913924343815742808305201985154225349040292733252734328549926406543889257812034730689949089439634349003507623705542176935483926974749213371754092869247431357553014446838623961048957968267217743334664740003832274250857695370636381598569076634079027858315336958532484492636816171735402928022208735069662249415967062401966855498522198491408895548670948480847453441348078088472623348665576710032265830156837526108693238805290481706520997087087984402408477014865757224677624317613725112320177272334755670276581266068700594609310072286162476297445558212183539392178417155025652574900624822795655043210261185937080202655465515622735058990408835494175915746988278667610685569779174029383394934428076713785491503479437918816890910392669283991716851978547532270731080432242538549271924379687412545360898719999570553397195044934901813542534376145374932116790186915780614361231049989735850981516256842216549560936395012503348710782884562715602635431212570141617743470943865851447802441298710388311465966295338183367500548453238937331197034064609970012478538586664728476464744944406151739532434371358562828370140558036643509774232346793201778227359489325387614902160599865870685923618019630849427901418947224782308236367119111688183120738589041214242520540860017575082460974316547474566795915095686965282371670920539302759575958480141042428069736830140842258057556247381956137519587652968665743317153509424068722669148693138951869627381147355309264286957603961294267540129457136932516738356157319246312355938209473141131378607113127871400121609616775670537769588384780297630655489870769957275630222786724544246692288555133969716295483249104461943971661368323055706270730379436133725671341991680234943736722223018295603651902995190103359032463390305344230700558126555106833889167344586267343855745110025459311697779659921846727237066658040420270852586624399417005106840556643353962737367937535848368250327962175228025988165328124323426745161585874096658287835631514106562707911477989153547860545330629229927116558302411647106938928387267437303498267540183832505413744869138515217528189694085035192616960566685897583996743371806578573103924512247665590948565301358682188005895049388713559439023382652725802306434709869498914332265326586847156157040958548512540143814112061112504966821480371007679277086574018686866542298923419916194528521158724440008705627751306684810300359423554283621144462423040848976793302912550348028168001365345280664905910764561771228407084796870121487808671295788914435147099507279572302141906639788343163116270139248905618341439755920976121696410984836824828044257027866936606143108562580504405554167833756935880069134846830179303980818802256139864260366797323778884094769787102816004428241398602262486097851089012806125438084752380063946491904216679000596340537893857914909737507084813568540006100279403195019962981740016686186844526587796342384844379460302426795080850599021053561739604172286573059559429745922236185382988304203371942715712580616857566930052267299859750062815793088740391572194007825034026400789863575318151537218906833202188073003677451751473281483086522593951390156887799548611417488868567945303825358611891265694457535507952384738271156307292019255563328762175275291353324729023901444237048091944917559341335977572026352226918635287692042482970954555098806008951459554628548866191534294294873116273973568588462134905570571515549755515126216932798787610791144333808923689583492280482266156688807438628993582006994111150312482535830635029102474269573392556356194421505218505977689301217529809267620501090670414790742978084495958902260936609832585271299531474318020397474747400511361112868615927661049891558542574465395363767022268358033622252803455694107305211300155455557328964084358905487475916410418914521837928350226584576230849576849612714432828877498417623236923231121405299130832268552751802818006247052657307839943244444283627667802020546469340926766271019453444923102237432511953363812443373210731290407597775525405189245832612230672134272617350582348011139561650282319815992196724415887689884838321864655106164628922326291064152627554513752521714863538784781348298341055969120521589429712030454443043045787780798646859344960700697844481885790185142915701525108672436687718691474372648514209964877941378554452741027627784815959576272065972748103712321649622360529503051794025711108984336163739821830874149547224489202056870123790233416129946304203902041049231777702329746134394437071501621707381155652222899894386224713736640120738087343829234044620941728435813726080603867264680836564361078084884575023714623578942679984581506674322268605452295426223346068688029106824518719900118379325040050023489884420212543434191216668600254892424995342985345574409439804615157423201820971535386637217600072739554029213451594180628141139358626633077391359209499791296931599892419840037429679867499060137631261028838818777407664417016959279783612636356672167331835309966535240802462382551477813753967703995139681452871026052941379367569340123731766970831185767832420001468327461778548438534618774573723695770338076818766162440771047119811268328090183952691365143470001924792200226501384215194135335428292573929052450564254338166771592469978400665681107750687272277874568738068574750268588953045884431691686858908177093382637303352647890339203981165226685153509853044487426395665580147908578137387899966485438851555503486464189650749688670951152278336951431706052079579071811613593463569072992044322408582000098864946149718604079953062924568460976533512971136143898888887732554467723046024859518593290953845363859574579677234898700068503679795162102948843188679527895767148829918115676768008550289484883766056635877023666347488552165350485628840030880489497106831975507572733264885089473596218153935005495098967981961509436652083894568878489482789486278544940893843206323726602024884332181401616327572349679235295102763654215786983357732336793282947892678278467854143298983377322054757144288847329632581247346403495208246333014555490473412824526035113859988028629332219468204955939131063859926765726434233287445347720946617274655234269648034250861822335880015180953963457825608233520222142166093125626176553038716199121728802820188368655698434101869128932175889033044347247488432888777556095783857456608198802483394458282877169437849859083044503309960025086889474877458828502667529408399355996451374896185825038481759912213333169116096943942201889508110149311040678785382632733715020520878376890773317423125177172310214392000140785955418113795198280572283923826531435086165766662431980932546929698235213664846559526810114204780982393508657734919613822706171748274104551681419524345007045922951348410817602528137486872842316780859524090379179392711177013070867340783855725341387653938765755315361577917994273215664426327782009611531624820910880905869093210368035682512161901845392551766756975022605688324538580842642759690516041239777550754241837921827586950674341802075960922605960039293053004485671527433686936366675944775306968348003048238372017028406530449115632674091750857334271206246500514451373211936927078637041409760959532906007993360011493968658403736513143812084410849087112858674125481002627162914526857612263677220533078709993128890247448847165725505321127519166732004028595121758622587009664164497227679418644746969338583246776478427920133336750645313777522916306464243944350737292413148503808770962024054023186150968465851096974594990845658565874881420510219172263757817275111412662174916153837892814186502736404479080339658852925391403337244992288484806057719411631110008027197672728027229070027013782467736315852250429971483257475842081920854986894331074229540918990231471882156727987211620265717713024416398561381502758341915616741627484574030734146755731323900988848378188960220500972984715260010893504746537646393007344098716542925980528276381495279847285986347432684163560755570280963004032919110746567374758769324320336590567155809016573844928228482182502807551186010524543691914833690534400397893074651672506780536306506335671804917868740299161210858481540133565979354423567764931605596548777404192757085443618298506037289715048804499521671172835333029711392848892977396108548883322644431165465752365994007226764749071463426830976856819464926021047426320703652420836894998895015392538373740832736650308796039263804111078113793524510361362097179110887715004038664152106081869651902698838931469430158758158704908685417500655044204768036240146532444101791660494970121308135705376265943053453854389357346109302736682240270608144797114246885182205877134219325063032440117606078256009461005719433661986866387567680849562954249710263278221822435247375570799020702934448319778366782713506599230727508853932469048329104377966318438861886230014885436545170135246173090540314434577763310214147019776486915404486205986942091572681873546241246806294044561961528463544899868320637567999716311480986106477919607173631560927555043608806461935686167288675401478368865089758088400513233075121411899653793224431543110247216445965685169475558752810995781899471790027620859837780689580204491992204171496515772227031553728759040580523156112365302494541727930238080520035734521809189531822374398233195045538250904064872150504918013515133183473510778909826440288805817603789378144396527263808642023592590994247627352792527670955289947202261535087594758215169856192344077823183940278412110143924038296804146848035001796304744009251201447436580469214013880247630944974448470832542574900193068332054971753435206182655135668870217722444894527540287079674008247638915116819026439206486344623882307329168075462203833049704492010639253553957634541268631566143356491627560911559525333791431160380712408683730987404912756419730977220320226072713693555763401746752900510751868076464794997800797588686741794386684416554587692203413414010453521446368957374065368465676260714061006658097850958388180336219794486508241096528151350854250546334826394754994143578722116432031350349112569379594037638152718203297886500911773277851215882408766387835351864173131828874582667501461308226596250953986550026047814623110180225035441109914609974353420050752164847491316636202130918488392743000186126690368789477935396924142323884988195532743479891443212655851989900955351992194872738873715419704909049621093341850572038880636529481537283174097262476211922403234939297639012057664985166777081571981597453559034038898554239134075158512162334787362456809369129200034337095183298553941910006304020788036907835063137781107034105185415286794657562174940746866717728626109812938569768177237000005604177112846144938225127567221086938648476710769556669599878778005268532947979897176384741655444090433641611899929460657678802044855232414866010826265354657549523866777857307711025161240699765189582638241757271318660507012317857322149275638820319746698104464123552765751142389822683330025241040226931338385987484212762699947681561678152899504642698390150798319459658987904745388253082334405092750905825437544933938093377466745505314786326511524200988320301598995000609594824549593227394737516198594546847282600930061885168809986265178026891002816296730980382754756589229006146860555987587140858006453230563284392454785266998304618416911133238853633163004258723004632218235506863152686207314035907216049053739726050184522034268137960940854727935185098630201929563487167497275108267571585202983837280149996588173449169446403856581110208877591297415199710259685745612904261081587875126301008026328867195662060024680237313144003240356766230942921458671202206237211518016293429797340192887849184736622335696137677646204139081913006387970962932025128500819462541527296962724315497744715878412260749248805982929514956850962419981489738267597160644530844862611077005580276453167590547508297561737742101331042659677855467040772995039180877992691387698320447294447238805813400446628604455486323690057111720678677541691354013561381992683026353995494545932010001747109326496430831501350217467958683791055301579258989079669623914817351508434488265453176938976662077990620204453867563835812228831458677156904725567092823829783345414155758682658074982841917768260402368270614760755419974048249121495956074659915919083990085326044644299504013341022254361622523017373612829941385510596198149633265396388664085987781427252880560479945533017393400207182735519336085716512590607288136263349024065457259474701869446349495626250195817429253756599626427237605293134790266255966502589440231554060938424318581437848537749958370181613469175751972551010653809028359131923242281150389332598664032500873677668420538417917330805515758549981508054130493646393874488146590239850569526248345221282588303923886130871988449603472585986659415598201711297736972483142878397035023184394872462551986655188628943012048103128067641770969826824671938186756264733188858349693895297603400282073248211249035727007856469099163379606026257290000363599179134285143221763207451371060923426832690369746532764015253542093631571634605285807503693686245327986119288927772857629904305064007627049405559416943744053734611954822847552616059891515152779203045145685350498686172557287374937744930554224449382144719069539946742655992211857089707978568920467559930384094758600695526060546055269665879589100962292706017143193358172140301439241833537476836816755536433767722108652943226276970609763471995702119564919259396015951407105757162107934013335208781669475692272175747297252147769341775746219365843716072213123372485122314238859444692177072209804673308585488920425730420067886008075149660243238410103880891399542637623164614705769070557514445388681963083422075433375706440317173225414862849815360271606569910978476799386740938962130982020913222578079783417806153537055453078883890476310338429454452904075201831894563354268359683414974782897341347881516083473813710911438266560344214475977140819366786421400945073816584282505973441845107685554259929580826006355982515108353131949907020985513455982860597055322113068701735288584357113774213293290592574485159507341174394094326367275880690415034795280375488398110957022086750660827770895187319021704553388506819487509434791976078269710548408906154084855325347068421969480986499814191974525594512794365396538440225668792694206525714885117554345344314758608718024826572822040923106429502395533105792168003646291485843104425896354243413460229825745323183715536325299512096702401105484884252281705710913081311965305301462580989236575575974335275669414150260019384966675240660078085726130123326325000093716662099532961616540373687028411320626214871697996366474007891742327448489593525864099030270657436006391109761076707803841017528668224021771378724938133367866712344937084455824924252229805014379803830851632190294390493884112937314391763488290974348951597310021356886342901321955052933862468711043712365502831033756028517839801548999803893518663484107810287316369350206047468509325012424057877586507084329720531737112375410804128227597326901485054136943094686696298699194202725751831704451662611041729243775542283279765820535592860408928854369667644566180673940320140101509416942158161511913267205785819722958213795328771743382426462080529172618506193224019676199627097151756874293930280084159118680349035220808028464361509338128696597079649103914764365698204902200452366671997861897700135349970820154404716128893678361105201381159620434942489080168289293612748427111968210119644068630071159177616452019768338206048623491062557125560237200734530200117175943063965142727803160113905702924673085043440537318522024592506916865334672030251298851349074996163715379609337136948011383457870326745559490460773869968871071866412395807414059864250665493950713373424981789880629417675192438274250366104439505297393668025040510016865796125220090402175339927853941034267245943391907686666033244374567458225564855154376445344630303996170360565143291519483141887473675759511263593197242215004021356960478500288472384607809133356221375265317146844378071356862557385112860781217553362075112673396258488964081836728389304003359006292319787305085270257915491024258942627238833503138888573257649411137975998533659805624374496267280398854485305490494113826871422484779752677428686367172178230728414616557169367168506724248786435191624704129097313931177763727588029244238952350989179135780997758941366166829964943308484785868934728380396849927887199890564842359366303155441724420234617189934875837232306783778393557344165042627911297992117619640159420541456751159451072411707125413864089809507285927115595709865299795484079991701551600793053366590779732529624811929645656444032621617944987667372404601746232205750946722514607483749427075299145827266461032111434441639274209963428194440856618301747562990638254030562166557364146889894573585923905597924927931192830399720818015907631413701588284687003845366003084375372293460064152995896897699894019405675724593937604059794286325260827638575762185101920779132856625678394195824649282883693447879206778810121547288654470298649003017221559290106187671385654581237510369850165632100781517217117269006246312741896946716697387537142050471718142449667136946252585541106018442504096970029815717110415506056822319208877594323134390308550596272667211013274458989601145598860860037394449557979307675506698433452532717490726412426313722146950088546009859402832388065630928989564621349945406515310306466627651898727074554382321157550231544196205851427453382209594724712016806620334204033729337917030558558561423884314036136099589330154653428279904264242324263664146983872099392678102290384841348664965068905382886297056398172376620134265691139884369427365650973572049032608615829085489122187077990526107923167052149872024682820463270346356168273918903869356647550846156133338914019759219927280498128353459196885024735604609760108573928517440411916599651788181025489705328664882245096259111046012742966387889357731255461786948078241648677193207489890435137693543325039929061454255671174454029609405025152081985023043709170616003979378083098133114387919476001023546219743987386814532908573743991110795924051911376234888161858815144079519680022329597305217771618590858195476348520381436196512621679773455053818229490313330699879935473420238866909617467071030299254570164998796377382063651284443179744080460476179207835949327162798276280012643744330787183995116446623742960880245928802336201422673778327005306060083691296919327191450688241226026987880124328491538765715271599577637465875103506445833661585910423965465479051393065242764915434998622587924845867554873940992826448610706523029913256173907467695498152498625648088014818339758189645575754674493976247242789293628761872143035983518191012678411673008377781961452678231329620284942185232987655038352698262460692917078515234329921313561020328482789797074768171218686625074069080508949310804306231234344491230533675667498405262385637784964153300428390247521403386095975942278774595851242758333463109310728138140246431693385938761774682602290709202562465796792822687954553747539007981727529283590490310237823417117474833435631120363676461116622061252121827927586925959677484281897308742604995141236846547643072770996332055953364351577117732505823025046871312799752288906389985938849556666795980199171177007240393880028676327931401035707086192839075780454507309492439852858552075572004436598919766669097504309665596220370463399778701502407644640129955842485177062512679612724789062070141526968539584949763984776511735052159625508202672191906244323814329956747596935040735742208864278334698664078300162644436450918062988699079957456723384811145209609153501881173752240742104909432898581453408542486148090275542966277118337670132024368282037211436658608613565819236268979048026280050318043418564938749349565001419478133106619269070319993761887401154296094776151501515617408652292265357748478917881735326743911064668648766595840923402994369779473209864439690247389165214136045105858314754472587756312820202081580512891064028085023637827217673798395616059824157387303361968454179839719602151063272435119804539486116310864045969199500485727670537537514969597637256810419925752736830528373654482451565324563896840013744487672944789438171430952446719886441802895189927219892598181127365334305732641703092184329670006344566312971162362513903845704593234030076678576910181772934244620016341197996793778378986795310330987477966844629589172643375283706463358463128791346817492833535701039742925527057918405608528045121358613077653891534462621777207713927909152512535909384132720104616479889949013663443746183301306978857607123968566979452689082390024006290484141185199283342370216054221015340389369064522931017784987713317862496838481430058577593742884809030944856071986133594578548984464931008149221948525647260208597004003274787324281289059428234209580453832259932667543940613306601042805610819955248441720960389765054760285218884104538027362959419745825975980668631381234079893248326674778315389400979155511154572889724323823815828892023162935340194076028626826683254321187018487292550890060570474195763036202645148713006532006252999713074032307440322756765428254059040649664143089013166860513582317508962615097193119793483214977971177826745421383300503392798448396835061556614012537548176750980148994726272020165118287633814690583318950281131187334316715610182889084548361362230596075477905271288906293303966889818048002813627335843557518645222068053261385590864143838966722740850434019917057430666358673045026039427144585401503460486975053696469424428477828073738446892206063636737972710162944611677151129532862483161306118191743798183817769004110888847523811267385722345351026315881355178652504846820014868747970448267394071386652578947531471614149650655359167550312059204206047844322923209992026900113320317615070911104669639892483318379348797599355208184514754740281994888734997772107601967060503972258617733014459167295204187466209931736280459446817652157509340062150579765438022123604113041192261643379796921212332717128386589301993047316505451360084234084098905262074440869049905706226199866255123423509551657212904277017499780957949655524772583999267283897219193108968039628979714172591350773661213595130793946544662472587860402197994435196869274727188576176296622483571482045082974664875949613708342918195230211377985528560089619523626148643976985173759137350045759575079040291853931658643522264874898660607167904008736042389600489321407808838467930336388804482882052846907124182364362351364318590957589716454267203799155761723012258080707402923184557601878463600235498820341231370909777328223396164844542268079361433734632955444794597913345782092640404803268450502934939080569194978479900678402263804632819882319101800732461901190932675599169721089708793738112651889534385547963344567362913304671076131789495297775968478846662948729791673648690157692910226562350565114075035115552900084599552899152782106863926403866347768750820303000242734361932559505433020896154215164678070717569537273903429192916792476465448502900865990911771318652270550625023083837315513258601640026645437226582644544741947982510868432461022860821125578356853240540336578366785592432236674697132573417252107221019202287291367597512799887702356534231854482005260929520010620330237033903501465348977326534026981479561491471012864911318043628796242417257896793844401508770534798063842620449173553803702745114960184855240859859253186394032636365358973719876797600142525814086698728268094271520350134988331402201924310756030712111909483957755222044392177606612108904950086406581906910141746426118795833773192495500091731307103311829023236578205145195979679316889628235401712065799794111007775976163064196689498873073671496603393741228966099944207397645787941074871340762275584784565099095845440112721753983273880333980011107567281714653683885009095955318552519862223147919963277468867122161596033824163473040695788613086714332583736714337747590243381825801105254992713428932856055992779702617783137970782396651020888505708402423691157632413921457018209762846072742302585289136352323851865666956766413660499371333899898283443831214313483997376076521222829700421213760165441220261802659333648126874955497175043580404321471259037340282789566938829473665130245583965018180675570329109990920782801691066074546077546553556979378772505013011740849426618023531803915394660991561870821499112225067470898679836073428672114600164869487101536907245404472341887208670406458619881912962124757199977627091060055821444398885190100704393381816766135752861084280262272794213783049414621976909090775204619882469789811940795048389494416292628164623226299232173362124572871348746501665450616569189520001802328359865435959137931307448873757557846791627574847002646927041143500342695380500699025173429349413023499974348865661332421897607643501501646848297325717678038531875090895297116261466180837974977818070554491269798643795123678844292100110331202739354423083467333088634222256454335200516662047004831441258926910332196189621594920640416012663543590220930828538409495871841344319960882712246753084956097456818133479238051036324465150901075249962401657880861726369503045769698941149018266125246225034304766453590576821432699643043432765221508076782604236919474701920594256116363033650869017830420093144849124558255402375770979982840406833040695319886721372336118988568557180803188539485831197958231769354718282890028052370136767024666405489466354032293178251188815802464143196861065430977536198084086045539194434130164669785550005285218556942711592246947412385207562497734739143320835389413302960683435037006697797249815254117460019516815444754874891757056797547974791353353414871155156030100727060934363763831403335356146555987135530085551790408410336151088743229414658975710638074475568315004858126740829640790497242148440459432615400392195785635794843837223548693661697660358908507329886472646136250372640409538264305053367493863380503163915914435624611139672074861159246776780983058853455000533789268784578877236459474728282345933941268190906098744732110819765177205771924635860512193243013859913688530818478134216080320854366756347115720246909059313371480900167041878975325982879040460363075990724322133903858284767251679647272262094060963693589348167161930043436808880006730463518181762582532124994298393957373966261708759428265110169435270819879651125496058633260423372454627096505035110516811856483797078023651630333673304586485462875920965751316415020776163701860018419214059138817172921788284197175714656630388981626141898653511295473974047262878570953221033141640253235659449279403320806583880141217410748952653186083372952559329120522541611283977519318251720086510057243486391657517964227570185079912176269729654130408862012294119812125691386347027683153089568186700662385973950476993432512140851860022292861316259973001828922682560263086023330612061962452465522958726619785994993006619282821804784955172462505787250424602923123324656610045707374630305981145259707052115082309626314317385480467996563095104080065924751585125950913700522280715017734923569378568720282830170147641375428149655736479118507369395056265735436973700330730908087922398574492183872736680760929977802112101075031404401376774273860159230320478622448673613033871039403911828155552071175379797469848528882292263138181090814459313995909433057812306960442903512641114692566326611122921289246142286927678625557871660485680415865151536350537193355947076533203223660033845899552195094997082545283603301705220296962029528190198743632734638266423175175970783003158231258035273223359229363460369885185015190330859015386885282001333391899544151290140825928538189581829675068430891092218931189671550055985429152416528765527030558579987924825626947604197679972893070433832480577896998177555378639739084123734083144504116896705711301676966966817971754625159679296344670561062049191080013590667735555832460227000745665236830072332416730431188222003979283456178263507207146931843785985940660474973671412235891607271504846539218563584791531393834030992758880951461007034329607918778256218284882483855587269013106594916451849600296162672195652449469480000822837067974069077140826713333528372268860718521803856201299695521950494175773146033309836040229754252041360933872538595910040312608490245758485850390119418638204040088322330159945488235288368464461713540774731375630237924621837929987184563670782379932665476565624992140111247956095975465113753474383750630060863956399174725650275162905360116265924561508907589108212201492346144601658495382285689766472089748408090222893438872667907863172287866229937540106804949485461841549981173885553705813897863307531753773177029045546387727645934479975309375067265457586467574852866879679946652192780691026397679423027750086237287737389303068237493512757933737232967304715746184713649743236427137649703313079280930743452644278425754712987823321866162253872810164963561932011575415233815135986917417504115761496440071246172256462627106878431898555241098973605976262360996072341319612098011527670586242693041044569448944176724647776821485296459605612032298567422203874580788636149345925241578433970379014134429293936233831366378639974229967736070911835286364840428453816644327033358086381195969092553218787770490673133076285440154237219791277967557358703632688667934501922559650867254651438634678037023849149565401624699779551115638121945150545294347615168982708072664669587878802508034627255948314331696521473760747958494069684016932859487900791571046268684629061887866977598008354859690904710553128352987014820552534915916494785182735794652721542860433453974156759385871388537976552049933005944343961770145823718384583960065710068749195942481397342959434383462070967224053579502611934520762647327667787077029555277836542060174454118985049546143076141324286839322001100281183645975312171513997763849904730928858584997619853096678707426648826607412098117961308873724087194419030191151431398473478021856456578364999869030331858472193575799082045794752326091568889547194866788675725017468784660450764094638433831617532143122624189124871707302184608706804856700291331567459702666597855832135099909800777356087177899114524603160426064131945096032696081147312547694149425567562913616901338899100070447469783911835313952822182792225674397136928750859145815374818786064749897720314228625689234361146046921044062675675285157042458820565982832070002040864570596927200163323059207447567459265276838683084595274973534757406363461480479341614379457363108249486129649014588859674236590382379408069295674674055645169197955778325273438871929958728936660104958887193803716301229257599363117663789012964774272835627030168504204056270884279021095199227203869610709078468376239262466803405719185882561640007254831285704045329801850249805303825839491117337953713052525513980202157302509313725567092135339199507658684070252158386603412372632036051889553512457466737265041788611420693915468445835091299935130764132818299597835084514564553982421451476351470897718659958632692200670332727141474481588802372114280542543832304047836315110863419060458649815314416583514680459515607967876290949735534200736870454422465202881516875989432221504850443958276741826559640734461878832787738668936329874069808150922564315666366911837652120750562814358638928267795232064489419070007545371676650482273226145100566932824028291153337653660953481005558556176963292626005462615780961244344824730456514026725595762316204858946878787227697716716240943303464203083580847720985327764749891419298904935064456293926102232296389566778071998580522685268628626499048285424797511859470814273083614213977772984984462370075969686312045760120642530596313692020909838214089786911090438074474198130955838693807111289770137028293356850394311768253204381398542459537986904294296916211101632887113935003439442240884660598205385192036364049335346832941831341865373021581512084295368029659499830001482510908742755876909336131078288695122194289676691149886011567308583858798409442931028961166627470273836624086118179891284156824373253823240817839428943171485514489633045971636802106139402397231971267244880156705935148456625181535113583285849438903842878275661966755844953363049613968115717925714882030457643950707447395224999973920817713175176052895896055098047417620969391234315049271076935198214226245030247707695935489286749868664502520766383271182123951378090492576843113017314814893281467143070193640579697256431007057742290458761388439608747374823586285777054568892002575757815539860074946316166799514612119633005192131367020156505322358368780144743250519377850529782528562870938778926224414658818406180701196564450513195346580447524386144626489684058506997782887173855614038075491404030246967817036160734190678099339006172110913294878440519163867408114812419827272012855890274969797190439453874403132335274092269071372971124391363326823527541443938515454151507878308635272922056048732155558736905710054658736813602315025547462604562997539273034412154793918050886747363398368631404955650978232822923146933380523607510692560376832524187168797733259478905476419836461926544960429164164844240486668293685031503814013982575630741151409488891617474571364936989030560846057854810500039748183281323379548513152331169576716221217426416233478842819058502466611115363093111150866687380355374404289197173849424515128839211227875700047727598360279913446270817800814312755361745034010419985463023935200118191755214993008329576475183529135698859869146593371679095345739934062615508999276014619634254454131854766691428603150686127545729421697151823976637762131380844643459725097830376366659883157821377589758021289741269870056718451015942162808684870834601984549869954532079963960165872342118347640187362657819934137740598053205860712070600327571247399691219411897686638353910140700638564268715617171194802506742105646650956276874181437270262731332543945528036515524078978671349707567899358722769533067930907443834579418532638854652598283579430206460093546584792947155837577752456844869100025699587661293542222999022982449523045188538045850539341716353461220750846634927589553481558650151945265773403133628057249480218633471872467319076346722645524553906526762490225278634407059226032213915764367794085247390121122925708170342646886535875639746433770176968238988063433555294042542975086404349650742055864677801706156394004813225880333785547494158495223667955564624138431156721811140679144808167105314320629128983990143493938051718275872231074300460600942931911624033516736884153947163166824664157828413353011505641446184195911690835176720582423950495988956877764100299870725451365699102008024150229163986218377898762639529873510120429757595493854830233508856876714299634731899107896013036597850365852736056200085602384577196801442297408509489773428839547816190929525734291014924482600397564921680306175395757869238984182333755880239450005786469749880484823497813792190952732446569424300444310979791239818635449533970175739477635086253848236007824063881329011392750405133696153709972992065789352004804909742795106028841262026788079602636232345247048436207867752675606260048080267695338732934025398390913686439147424581287571653322145550248934361713884444405143646837791202715276053310413297184423917398304599649518526590346313451143805428073470280603299761759909177524860305139706187626560331490970460529152274539484209165015990731922798584675303988995248742418444883694756200440521704441881438275505567191965297849083703506778785927314927543830309154827719979259093635646091132425865859127033504176209099971526901538376351568234039558246528813443187940097482623229927726756883756552846320121670901838545312914014819871258323697663886944453141683638883754101906225984161050566941194590083524245771715925172480211673553145321747045897607793375315846764846900218782288603982375970082032516623035628067841133531564199061831544461563035069790145234569747518880365529066634676509793591282153932718818736388014997617625334560085730863460134698827929365316057880904491677913420435728297840381327355783016035677880283960200099683661462337968447676275832653611103808997178627623914306855030048005869290077109594791871723190560677019311774780647612957346991526322502054974505292794093560275489849726706135974689167547072159325537704049692044394159421514743725806516360434650583020338917521182326833085426586956434690272811725283665139440402897180926814861310032436807735412780670698973249912166368792773353979925805985904151278883036328844149200079440313814867756473615395636123083864922808032774247530269852290415627379904270779330151348972490404542426860149090343164538657284253295589543385559804726585568354934308706294618240640707725345332718768054397183285919777277934229140311734799743579675882966533160500955730049765390003148966094647974420986924048806736564283291062867686751283897317931428476245580592574300628648273781072773272466348534714700317907588798205228770466258060182468690234947629754419932152015773393079464022868997459704328287139084576307499451586694192820513944573088296199134145114035489624442155104420673421977401594346558762507255799618432950989473331917806096864699945902095664201988751926066029378496396139794464420475633546653788081061739283716775400113841850480738677837012555609485286967355709622445045523146953029395539751110950890950740223414907371915197450013551686653344754892274918699515520013447736689524310663426144024256605759596972870984880007088110513713505173985758410025816835565252720913867445200981366928910271352100431849097699993798223207912715076949279110932816335656449613970765583007729382272672329664236272556149052200257189199868931327925862938755815232065920750481401070965629080892033166755714315105892680701669540128655672108652555325098387970102687898352020031354529544615479908003984210072765106501868969585051811751752006155463132503087319366857280465246699614597983591623287642867661983808402540185472702510857089297945289293161786561904024917537502311613547863868816958971922606817747344839970684544334943013085384619377956722004402528025753002873790924095711598383275477724408482002425220756564234058424762795336877052714380353633554640774049962508638905499886684678220689704280232322364830746879124197024038834569589288790019054848691084538652224505262500417015400041832069624152787778697873741112306979634636449733090178501293403935159009670750861839692387212886042915828790276668950733035304958912082781503926398539769856674347231712559521008875460004783958686238706521715526354557091671832193653248561273034723580741865441871806834703679666136471060121844230100189746789090977280581452868164693595995641314515254269969435759115357051033193301735705109324938649421517714013911171774766705109541792104741518579728455105779415252506832607671133911508341940959385531243269336262206213948303777638365907953824506353920863781006425540661415391259483418538724569842141805496734587058887645880756164817364892544791729048460718303879938272489250284388274768017944939678510748916349257165459570966018621739830338376329583863995786196758819629272823151898524720372285416314364301502164616045346907797254207699381565550909758759877785309037100457278139428468889654919132079605299211678869607255974927373846086839964576512183090601921958434604013286446833245554469157342341755412114002083323858717434381991030373047958991780835090969005913388114079886662915082660995048000573379618902259499347758552051031754571091767227970355830344350757435480423203823505978548038332135643045107515490271970340616122547900812522668951732899911997445103315010205786822200965458356919229839467864819440692656671109183582069743681914111162429723659582030049811418436187472444617003220429956519815417951215076441646850935235715095376788922301353703766118955044784854699683052406377979176438713796205837072762940722462318165870515101453471454361136206720443280247142180301011385788761816689977143256881031141146175362953190489173353708694625772807665757580394698815019940891008106746000902833927152814942566036730893598220831206100159509152797695883229564281758501826018915289612946304179351820163497157789084112505867293045189743755858862701392398906418092054711407403080782525286398935733105859368325701168953461566015884135800894003690892127734433763311239184578698780726841688668338629998149133115125772255149204144926409556250338504909674064293487686537453923857596965709176483140568250184936011131626497372580095009627611339447764801133142802979775488521216989430323732612577812972997970589057833355299279567896085004474125784344789726310879738445364493898415668950058114997476683793245603649210330762529542095695398036281172758651613813819182494238268127625492672163743561694173140644483352496690719240334131069583980481743539501128784932716067611222186139606530226894353363370295054277631416085126146077827003386488629867786978757052088422764213722307006307979357863060910427301464263464948509062288615480903448765201224650755657957665052520077111732827005481530687410228347061146947692104664011847938087846850687393464038365510881163384566161276430762977227651365022161178238980986657089123196241740039832587553907214047823124429049815165621438443305166787450417825637470007003218296190611985656712101684439848642750951732302699144006945067573627133477087385860062028064174934408641192177575888146190124963050045863732233840833940555245736456665737594574611946231676311627233177536798025575572365589940268346816058147786105231609153427722090460952322571989842062265531633475402791736573251035421334866285497588639674839475824196003184515161918105475222443964832894145246164759536643105531819971819735773399521123340221106185212952059173986027334355885759746448724232943090696662778295233484674384419862281066260274109014770728874337630213700476266627208009594283070551252549053519142526148199096158046048494091621237873267198990258585838203169924764286321380777833964346363060562295703438969417484122021720999212676398136207207068809108903624941019703571545704218994002029560247327731074504472357591470200565465536519991967736441481701401976660682146857250682172520533475897293458100804727272662814027993728744890117352615355085146851264418269228132151601959509006707780496655864900745749417949442778457600294728818662037144063360091896048619695898934701243189214871635596187402474442927918193728061286528521280991264009966021028264320131993405141165995850672105797598572289631642962568613182457140116318694065943742163269724517985472793533301046839582226780990947369950343449798952760879779231142744871254546185756484642758679471707305413562447066537088351527275067122206927046745471193112964436168450883376384120512512066308539215224984198361636572180236577309912801064348134758864363328131024897700287096071028694542960139960176866567423623457294783910146078690431959562586492383190504448866427771927337094548785920661843484886055028476762788415189583314012241988177733817510307971046976955688852464189687231664838668904049932327122330867382858320867529547132289398743407823255640521390283115653226216696572838642814747215089537176735367780905042618823375399187508160942706030920029322068394625450902754093921766332492230122756080073488945303373382134781109560363040622117213853206753973434482473952932647822868472595214274420165573693989931599458278922471375154020990683012755115894374687943366460677433006043691304194864856327310007313735579870028846102853854604905429823903025439207211493416856649841560867979017698008413894627631607071569046421310090532225016523018766836077066844153851866161931291382871321724671884427079777599773438702429946236437464741672277557588182588619221752195350105977174065483115764975869739595211325306476195937102504677738832756406916726148012047854672721693629899569693872233277836635436230326740639866852102246479457555600911449221960736262537264037796107363345641703264172902522835652825725883801112616276944456407582887055103637143273415144272931107611292028733019320989100346746945111966824779448297797921880215388671425549134684244073372959439697874365646997201014200656841910622398838323874288830146856685617168501804369326457884565103600995757248949704074710360757116271377018802438467730226428800006157909065478035706432826788964758099355460081730630343561664564048273310782695739193388310875726798943026345861481258627565546379295973831130887564140087560322403460503350654408679194787269226848798325326757953912916205192361796011840348336798334869112332153603622385710711145190140470085796266842964234773760778932312367325334596445907678683228032157379298350357425445055448455919598409544990651411395263791386546678909506435636141719625159415149668386965215131529393972893189282277907996705410290140270440022653771538309821398507813701337751792788436233673873744560398197752370187043930372087186072580929144951500136597007962803656176102312126246134700453354031003499690958198349386995262358054677977342394037185758844407643841836301593398218206005024896934247497553800408734250849703319571147328916133152912513974648653787332994629917578945156752345303477690237155203406116659299486181497083759085353654397340372897947978069588862276085331476966996015051722577716209975505886623400385707753171773790481931742365885994255143887492706281758266733597908887722332798426935146318730714004547048777787555771979554593948085022181187655648224949389295391833417450486990222595166985933323656661587033895635201105692403084424968104840374969802842054890050769457356425278513460732456488691648212112320579716225904378016416869843061902709509397072154340700741277278854313643795053439172872246977497026365679535851973025253911773635589521276200090275753429297260346724343808644904658926546568958837960973394499740485503617881890597985844351114587745834021492290138156671361836411181257243423175934672372526550313935576381858626403401297550218768924785015884283470656282916531732625465840943013790786387509847525371605421850079627363544204191458179845881253582620195984848604144488144225977266749823384148335258278237989162796231062030586737416489833543170484983795797669554224745179631968736847143182991712367292646534688106966431951548254872393964943069914396509517757300053038387229257159038955581729469818961178856682985173006300902686308568152677779345307186107928675088090531009629137680651559907737862203102332104395993515484305219328460643463884726108703397735549950089781240931454542653149372276458307206552433696752913534048207291528720285817273899357002365229395720858618826824027505441368894978458050081485207745380640746996602761888047932030798668251075284083345896741305135864467378330242078049253026334413641322267724690642027802222986966060874500317959489108877151239971100498369681862462647480487573306697656387113897320475488184308384326262127488082353798110863878026244842267300124778462334960637550191136188226314299755928399749229021821611437504032572224584326986184003091144821521565413572298551311757921972564280281650220930062054314237249430545255284744055771258361608267399872422900244638824313014210457254314888510337939282763881006778704516563445242192359718460706055785214101968476201604774260951302812510551910643548935798500484821991327685818877595726998543398292085321574142221988546042259691369701940424080223048742146176649980642615473808901471043253830481249902129736664862889663721126138820358324478379967177656492918014827379328308661107652963408865888587602074631377218652547858949910588840485967081144005271046201556185536357744961398932253423513282841251220550223254329970072058673297406423055590962630369071288434629318119964430774963503075064116027866153507983540790099546586918183660868754428535443509327101658697852997292002876399932997225993237458069723818827648862421427318290206809850902677222975605531478237346877594124857141773978464011732218337564411415596125720697889100929537947483859188264106998486259593867898078380741709288657150624577489420926884299024932826770638515502426894995973056477640734193856212043554015957361254550451148963942682657355258011968198126913938165057083777274131499675609969255858360803598361291394332261816370441848574129751622529882141026497358987319932863944061656296340894645502988831794379178675678829115403953164696669741049727462952229544989548272928203066581883659071799231525722436407633311761178599948378920929909759014381840762759139474616572140403460877289111556191181942691534703685371007944326989425163193862767459096466213118021235414184870258449049329704407133315232409871803917492059007091593912341531291996526170367807526610276318998731286856580853417338863478892627849123266137884986862577025178572823634462079974626704907811128688972762145209423768258325157900310917183492172524431015003378965946635814390035826465730635011931102429807789545661832803614268234382137107204597443369832185162756870474632640798304517392790496186471873703787873319106014134457378129721772913950922449969798176311681573213071661148356924052022090087472799128891658488043003171649483947487849352426335500086866737561959382848629422027095862678613811191844450430006803918110788362628810730247432198313022099724593050867820618196746016024377741883013482428553555705736334673199199099315151662333648295636622950898987605338759725062299078297823436309273903241169653380206586401535737654039482536355777662403395168452762700572121762993809007610883484684047398921512701910820040149010416303147837459181759234554604338067619197509344494056873564292089915979851889947559500260036048668113044223439880495990825148737245447690799723975302872964062380747996104922183631064068156432457705615151767892678322611148470171963426035819492766685824557507179972929291039099398789024048426929864036116331637814731163007331181178291646671639378638236402675243047198189914181000679258589711512856072265346456419152314465787189069624134091486380322685842608671396474753403374855789999998128234722059439788572468588152130130493050816182603036433123721077971644220866825186079632065061495062676352932215986463390089133674054263045044225472713356892897754250945294186372773376599214741785599613223302980216495697756562638280316492494620879184858471207058210219996082690503386631401275721886953234322819387102477701980928686556004029219504098381764621692530964820255225857875156185459855262916384620302831635119909642731378634181709483100700886989132029562668149932404644462244907730143466566735789151446491421315732302333772661943914699389610623553937345754491271311695679268362885384418939599483297453445434329173538168623715836933584213422049498432341252789592198251297453038396967125021232132834769064439917807377679349864078861091270128102151587583419512232994104336786539993369950297506506534015892236858675193507801541044357477542123751132392773421293972728606746402999864663448253003397263989379295599529549878468319737883469451884543157071665732062773149624961596369513587661791812671973550039215621523028436246395830574868057074002942027203087261191042204888748815890994735097398992406189196757978088032562925526099095194579241312807654153473840140856422967780401188426998396117406851652505977325152071475691250704491461085135309895047792701277606819566992798886519220836291555470324832729982396854892486472452327468880768805521483707321494238555947635890343512481516906595870928730449850190183312215410222802936488568178183912285428018524973040429259640565423878690647885785778469054729812467681796037938090254781386374240319016354701580585719683888309065710889336074271070030632665360791729365700708244423660056053576798533180534143809968960886386560053686221206916820001656516615033391649724143199322730729254146194691753373216683403837129898955500394018107205813860862325957248123730066700544775334712828017448444208530882994716120148539817694715294292734299435810975764612962043095871209941043676256227792773496606864412592337283148244262620757898046652916992354192179414193942147875250831158382187204214647176239201917615595306292851551423867079799255227073257704180267604642021933124516804648896881130958401582774568425813102265559326591453646896631308935997084320922971528296785282321171107771481620924209363673257797081622306204365335836727963919260582749364080885219071142716413582069969603706443805208933245736089020818365562208083149951634225366188299271410676468188789106837236238494360458145964708799378065408747180342097460263539210817071659038872305044618098957296417381853642999459755041875097122085190510497409669498209212675432541030627540514389136090115289942148740128626755065428307031643199426952039846735588850028748568702280181716917402178289644561752190333569622012480558652888411339006531168303896210384211708670950902369901579764411026476276412624602935648141872450745846446318730668335552010315950855538852418247562888476017617202244874556841365063987907335377327559694867181031475858555053558792461275148418088063117087517605199707680697403520162182126193011645443536656947022836670229527906994031717453032388201017258644312635799247424179048000689743111468688023898737222633018033288338948871887399661492917399369859644892249976776180009724513457996086717421688877753643912998294163851308548276767074108152661862498720626525302890332683351410760904930242590124857553477491451683035542395309613539240463660613204335635333175600961248272024138653047889384332447420745974287054832028512611150357903165753138009900650983082279128800340012542987848740409158023071644146194840719812394034253885299517961659872439913975810188847104957997828529975170669740106493712443568830507179696927705249158946854682530812086337500424143421768336547187741887400732064798653814754537889524073326012778884522799732500631275356358492547651080175863620630998240064956914426584970564808979763584289440436168884937968416819873737096581088595667809420254141523488670016755921341525766465639278988926607962491890685025886871180138339412199403204356182567760323939053635940917570504196004562168192073875183770725628098605345912971036187933142633433513538985364616721224721390137154041366450656033581927884094055481142231223119632953873194988761844817981389204660532488621302762797875186982899269819046499917677102745159734105812725957578367594831135344119313807285323762559502906847036082328390994013958617503272620855747031705928551045907852904111476582977577765190953080549091327389573156838511496600758644663507913775839997775229951495130403859479004383099253298405045025264920896325223615195114402524808644253942745559478130249606202221725547021942137896581173514595051666190871667692629616587319252863232505949182486275191313335486450910505393015166326770457586828548457313254807321271490110425207221713631659604127478646914436313152918911378107176890324263990975803340395220798799045782365068099856915732387947845681711572497233386635874042423508211883835846798004413852868864997745294259787050422778295706319628332600950255717132108592852458126659664399240507151610504801577107769284940824367034198595305500557509562275666976765521977868363542393534107010569972810763303026667733792621972502409742905157355685844529588461379386649417359086491164784006236220388663564789225656405245765017890381625329940170222529456496592988989867595135067851510671111036215663923459660868252119739008759542399599479433819557650861477254951469165703754773041989402860232119713856022388661437863495252754984634556218107178604186858341640066194320938619409667007144544333958983373005230240636376467344243025315120394063428172021569928924192558992695099034856292046208850298311893075301657597093929487358028668639883305742347743032263973261392288107550452768154033760056356785126558806109982253063375658841335313950789305923273928239323311597676517385800632888344893920830105064109826307034547778948909769391369903465410126215749189252804068541258879841583027772684508246911013386723432008431207014135837536005805164979597447440598770873003740279949312515571812837786042713014613358764936110251538556055335026812885073520309566130668219842763604564950107404781273610389341081046609141806139269997473628440867930482363364055167313697251578148363656259508157639178944335346258875758926352184172935512931205937194114295919792236611024183075455587527033800962975185394147775238862166088637681595314983657340966175983443443705473960556562024022500283289767677947316062660834757744887488776731396766011552876489908955883812931240018541249654355364355883334759953786756821321369075825530320580563707899379745465516122712612779488516520123055117706924081313869881352340240469553409524832937485382366990556621386367141956672291116494555302289663323431202737204135693851947560439960053913298260469498501801708756469398837142465578545113072753932764463037729167414733902213191093791426733747924912614718714980021265471662628685078812480392641098811387194329749153949618935144642741001865531830362557315660482859951679382020375049167575536125269016851008690092452335177073228771021453604809258132068753262510131654584302174158519598105657979485785680472881723450745029946347966658744323611010334091148854402027987844371913230316691579382089461677496156224544842068866637784436606899518901203076059029963801864181859075439238569573878735298140367501677939071104121484928024763101506942880547327038392788350211205457587781461749577111463767886728296288660146057959145389209062122128129658509981786963016081920535388952705633194453735118928775120853282778895969869254465834537090110335802582770445501949277223454233109221216584220402883689871292963427753992564750185376948713364579104356625732692857753123239797261901226910186834877045082855267644326439635517189130847679830574693332642356168850235820465834688025581549428698780914480994946543897306390750470343234618819583263475386461502732738656237157376415865242475406072740083364249714604094900376811297592049161635068826200273832209473053961621901279063553857393413149925835822727648340660569363764031203834799829919133995022610419409042704101219914205431646914304288816027880264167041270688647784151480354786507119873766668057090933196793253392639781149237794461594483167312382146483288603648908193844836101783167300736244571093805155358774113666218767894035224909707021705101740337503589704680661409666011321144617499880257212783928165787464933489692402115848577903746091191289436467305772512308500503444520454012612295604194658050345112603043269482725383807772191593448346526642367504962106988171232385746965629351733829063876574080510393323805317256662217958379088246002711803677465554458936771197987059961124896205516370435741448552418416001608765749722716844262049893856855488377963922302637921321241299316395099151640336861570937392511433185942882908736296024735938686225730487450741972108522326118479551316859570793330772818505320403915396540717211876758701157862907562903708489618183657449701181952142312025067944492537167984397257604055921277374259912785032474789964952781912524173303245851790431054111456243851537011422119031132639991737251328649039978528352255913819043302298030048516892173912260436602278515385593800543125568839848121457719907372747456431682599261895119435738922246898502970348648679377296434021026912085623915716274947834464861211959364810028531157069348068128857899734097459146582747442637715438124327029357532505019254621080887869878500130419828846002382662321172236088619589627204087726963628083086312612055259218680203857575374949475073273524149547408700951848035102657693557657357815423133006917886756725754812832698101797477902950507311346659461449801583245257552557216930887029890514673318253676395851028906610051714001878827763541116732461144521740726168648212094764125840689383160239932781128585537028687557112477673418502821099769094093584297776101409647977286776054270463405017240205679461389996127009817983266175228907215560403209946071085064689327671103044105203278752025016026136956535792708024851306309052559450868049674724313368700741198383069422150105902809011703394220877423219858527287266675816504305061522347652380760611713348354912486422259999448060980594938509751043618854722531239178213666207001144229593602897111929140764268778537850546527671423509121295758654154910366079095251885375048451049356856370325394653772093381449734603903863391973544519272867919981650350082891661555450207680372119373561625857654723318621287401636549158942735692452130282908120283186341570820804438536460945726609745089496217485500546384942364250542161321935097305485513125461920633522270892771237072131863897537778013477761921518181870428173264982419777140227366980461076805509851226869505015283374731991672141636229172895207054564976930922392151590401614199122448907294492028517758558925695478692927854649851161054162259428453626597380724046288009766911239089809075037558887317675184906404668807215477001695215263918353920695392707840071542762781735852882688892478410960083082392113836142105542192289883248964980399297043339227719226551643140234661070434919894611653586794254737085378533035168830076544578010078952343217576102467099522248294332877992034803302664819365511309065785766049814310505860064541081666877378124350693322439915737968000447947078190082522556783542270383987249559203862714475688273765401070886396444735618667323573299010942975736410745317914549744840633294436278913412380260327172769704660362464456812507943758248327245833438418241849261007193362987076761955899621693374638340623322969090321044783606878085670375117401773503100364094142166363510837716347150325572322828558671556971657754602481682658434817046335458119695195130319039175370834833125549378805704061049423242527556849933930002235652073980052136847672093483410905570744483586071098794399031441041807264040672475180266130085428869715767103537882341372912619672084836041739975173710482084494449779310763420001805628198324039421599513985637870614484289552399410518571959460803453196186291032081718288437079237334815618282343484427005212952518145749952020494039754310376242075306606636129940299932887002099354057163965331659135635249062120330516732862311733660534166257313438925165202397792932034533267378511027349920203515365934189685520221896761659673785643885777939085714422927613693186001861453627904442645863484067886184569383059825419063533511595443795952041151692322966624450730688404116587150317479032498475876044679472740024931725325302469065846517068445342562208379442127653908024089245848923771300992239866461594228468272942127185588587119402370960445077683587463907792901576877258256815077103046893101491615056481333914725322089975542421453641818857819029276980516148977268103735661100828019321198157299712965356290952808207563832622215433611143138012819930984370985895992217131920193148351674711420634068483121469416614502533612966622191861050237624420276453691813421477770564015106927414587882071758387777576610998829070077152528296872097305519426306010306094916303648233763712518877840338820872712688894028255998742066746439741519402897842672118826830706679241065130364414862244761700828516166612785226751640769474294418495043211170282690124601415111689523569734824411820835942645705167923709905364210963732519223831923570484590744173163339323141667413444177659690611718726461670835224083058226552362987677635376302104994935460950506537998452908548089638523433020192329851370122630816161692632934584784231341509400019416942064892996528831456550636095919627482371359738178695500938631549276886621674139388051818122690102344426943674019749317017631488883464057398074036276501221845700522586466039510438329809225734572921735199632696151107573945338092085106620649847723976647299797886338834101813452968642599381234186341619657348047820140526404039239733539749980980295864746763961482972433726513079323673982522026561522636461526808880092951532470684174065490044816203946586030224274056788607436548064547989699661887724118223649486874920261182203975970595556278047603549113556325704780058014913024252070194375745207056930383395647050741710293497055558091880904003207605275224887471007816813788132976639302112923466963556144857800893057654443908610911670201895138866435195210086398709343869463568549493884913846565040648797580998077462571954821666182537516489100342108869258567958289226460662234609885701564333799840226880915724948465860467452551600691293754941205251876539846857768983961012384573762455843715461738721350865465358362949292816775423826716825597724742612416932185109485273555407397129722828470588925089333611570531026715362720837136431147756271010918109349728405875018370310599541578306597301028611360046083531416939358423632383107045378412056210808230358035326275076127862861670314238413381298218439440419686207494766905400118704803220013527059638685466829118432691946769485061005489940106190072810605497160597052255948963826427617540433106681419514345355611814885852166380558719996522963181248205577953782393500939486292487940652208188356584838519562111300128145016463480205529377878785579425681636420112293553745243581850740433482866560612627773793109623739959220635629817451527190477338278074922565321193195658918204359577392760682419242183687073707242995012330729502702366846975362951416462073188877408663952873054985284687976985964053604502618130496286369807398229260513573941830747940548986257914108808284746041189271212895900874055862342806399381724974780401043600293736389473486099576979983976685281621360204562511281069980544975513457156093130400701504844087010769728360517700814147145087781882242336030321209009651806825596426542319575129909704449664663737900515940106536216415638462394771821801882192636141918740890681844147907998802464504379030098527157782483202473726745717304575676836846400171281872738997253039723939563042450755250457846780113750595968137903390586275613362264184556526591446673997149273863464560288574028782627808223328133197595033994547663198598987656036988882103402456258431388771398453947011773312127125537103471168567018410540353772106511938724046665794103740980827868783854515523940300329529592642240559869075407939062023694868742208588340481098637183451300777351576094263430893511844868239631633089980132489327285273094750162738228837275133206995569995818825403950892966552585846626523896486078910973096771528450520668601630363391245064658903893879153834053963134061028840382932066008503906941272821130687249445336130885114162328380336967326026322698068506125200612698741182576563231051459513034337955495522202857121143784561457957016408108207516313389191276690123499174674514982270551455385511777962129554045571745334354377893247801354367810558215631103513025182201218423086817165934695867241092692304962257805140315937055478558433633513710321903110575338218570381302302975511611400530339738408094514385057057189263930176442226847281522666152722296445024757024555824237677476803186054923681797836642665768601525606149783099108081974798499097394340283022784354751682052859505510551487141356577593625636372208236407241910624287408048405585099204798970764538508750329373508427392209261317461284519181182695099130187506046831256550612016198406304271169354135213957308976816542594306930076192637708517146871989428117552646923439477912803644789775433333846618627532362007977353967405516168246723576596116311472782014244729548883101404022738186024034095468572968027531167752569757424207732930415153079720914163043533178754575448135959557091426493343046300041640389494773896937257226163353530630673478968529845933480020087138419129894927473507966271691016739811234294204905745454994940016031244348119836844341062043611794833297723511784911831400895664342063051278066239847006586599263527435865746089154165862420314914920930717537022397421546497002561035384998655971945558688639665239877650854575566585082074747355167449647805572524117383767387524297473094918570996043414831763178991004744358787923021677375351624827782839740424443812730674863458876557083080813982970218592745882917703220633213115174638943762867316544416917497083400590838568839105210882477777327803523154402275370894487362012848422082338990168391053406045396272470529803787219659555682219435752748257090921146425946528665535791492818907413842218965203042955543931335055621905189151574028056124661906917340795106059282825370264301988303441513372859107350247723020238970434333303005417467837262421101668765450900961191000943149790967184219399508556258565260417481719772497800155574134057980670887441328700662170733005355460958304779193995871014740636325687521040202742898313873469749925457876658734240860751776290931050806693449302416755998132211789185888357282614842803146972001404892794855747135951815437810777935945749358797917329965249382508420413705511247652486329571963632700916421517555665417653423102259107142852541800201592014914137349020125776622723549788784526309842084178702931475438159673738320881178414348248296705153139129154318716333478096952147352368246115959822322854427247132151584407549174842640789413628577693265988359775103697454654051534885170331620971558932944464330362657377349499485093381230176030600610428143286540732005733996100997827140406605314567534562778248837503902830621118540768830370021191511433661894115481459720638926050549271918791531811149613901654259530754117652256757984055574144533892969569000297754658016075857530086412317326232753363579622037572582210048506660933328806443113129838158229193265209216305154480945607273341451950567624114913227359011664572944358912888579916586120014204098462010512948591571445848929764877632812488582129870593545623943920177114153765739017399101988779152292350724741099591773014164597589325530353499046694937315269824817699376282289671532897980585816891081938065065190865560007029483117780850543825545039966241616611536786695414764672148255964601889940048597362668794234941530274936588861993028635697281562146922658867521070999918004191736194108299176352708661208532131781976549604703432096406174525456117193855016727420925878489405269130891505373904415016945464004220117233026733160214076977388690203185031409795908782170791953133907165053047539654678007218935259454523428103396762261973471015349583133737704851906787273866207149728484963760633898990476950257561341372855583246668248043502916283271167101241350365520728535614747143019945776440429189394841849456722077227655050987477402430701686988760950784672341608715816042383998839791918127774363318334496169710313206592492128120133589984355013714117956008080954472961236884018267587912878476627641204323649717153763704494849607466784219406885654865893973684557342493563106912634480437820628781059441781011967733653850202051802387658053003413285836167746579204860626342456124574732249298319231795806618860773599702168869844511959423483304010315999516913242844920570828640047468303728944600859015869919789010919300030544103052006598551477361556693870421735812475125610813350413396348556567599878624274412682274424825790474751457556588927278449679498331951600519215138663207134817863754135491327608525772704429074785444280308386217189703914385266941982375561621784456127712546397915984120742798398266210002436107493398196312166445289393907450461089678169680319212704307042595187317640063817018969559442171970771633177280044986480329905781220883231594905867602628724365974877686238388887769391014453171082911102928297851405317019975012591389267406570152301860032994764248210534389441347993400617355764322267536849783397850643768870960335681248765209381431529266797544809048927307898182646056670166254887792515209069249161848971703484306235450755080048396129431129172291117595620661924888725959674298785900731550920400412063689216748091162728515807730527127199014884352541348526275979871772497329440419602145721214629987426843371948899413117197550600453625464183130024666545929271259452369236896138177987690063297473149858732548055222914085999441451122896265844694010375449739156090573693798719154660679606982173129520775301090893162464100747075182915869234199821210456142542283699443461283675353406312466751436719590826328611538823264806015095361627259973776510136592080911519083771869918494367446200415873627601713593527354192165260981567165124494002177307411548168407601818969239977782544151233076280835715349537577728405634091555652504363215473097749920139384619765685686546693698455075137921614338092372939550246431220558100602669623586610741813617965631804582028620473764113632294823154573838951377244202029579043722960230115468331904625230405086470131888713229260249554979449610977880121626710757014057691943305319034734717717211470986311086434275341414446726188906566776747794519874818911147389358152422684880558344232924268729322740936328037284906230232176064605095727864440637473600611974545430357607219784353292461231599309191542069127976401048927848147761640413504702377467887441042435512480806851080733357045963090344571568548001371094373675792431932788416939511532521984390260685044477255686441125923656430680773870063038421034290134807490155113652741721046191260350733340364060266711441615551263738148725359342441574731671315165883328973353936371363854482486648879659642507397671175765922683398875664356317523925060718759287976552716616359774677153288214043536169778391181602372530704582625021639932560763258159006586872996766707896946937374953107107484751325169280871979310351545363651612120831817669839364380208190509072857574797812025132162186342131257678411495878224369773933328189383021605244564972102608487932662741681805753672244022681594349768272776700743071396606189227373969943459771095503172323709940120786600707138967428900308589099739641840168861995634455831224823044834218976805300736334354985693152998450350118325840093755466026594444944650275282103451463258606820930828443653870734451379809568705800657792223344506781485345961847917597862302033295646321266264890339128045548424804355693487105081612343764120870002967397155513318058174998075043591559930628388049524397671125617507829806818651019615983154841104479378967218845556170604238301191469608030335248955701510485960594117633488226300530438011359456171795263015618384203669233266031929338886937902017068287459983802719567451008830199392203233493476307161273813248183451249584281959478544708852926590124785444436381801968085587609370870002219891846476751152800694563518984194136734775699364676215670884667451713510283371483899381611498889622120589304968992392119364744621362137352627316752533409415110562688543487129092630780980381535784509568739643487420042378272971913500972932600929751629192456844256854002198172658396627586426701413697094599300912794882250239010520014020372099671501418789117618589066602829672573377400106092249982981654352889935748991137422066117022575620475888039092207868575334496055952659567351812797249259600298372998972400225952374537417877518755861571628070254320522608679759090868032903673478028969432468354286766627711963834615888381925557076171343492167759279263860345232966981939948610402219686912677590743535773213959168878907422700221476967068491413908978493998518392402115261461334752612125891905801924532894668348262827261323184541179721940461381375350755931969146426567858237685358547427355493403598437500738437510941503736344711138606469478812080851280885065331278864537051489071778753402537580195656765906098236173742989782740024824166177040433496984588760123593837433853335843248935119472876213634239785665306550718736337416772771306629695605956663744139673122820399932826907440938089380234387822524690942688335920006132242824755925410388692543755941350972417476549741841421185428553666635964571167071686397906669208213243269401708172308058313891737358943408609130636701337427594891051123247624945764971730254029458897126278576749804011550559759432608697676142011177502373663603544023145777758560343700757419470654748890730833907896415324095180027839646008777464880004282827067301813538995574878231322538679611827732521146232639357139831898442874045255267767522725431059129144847183360617660606177987843256523429968352681689620367197899656174563129129500779055205340222618479287309213829539648787661330170784109156673068174089198089471819493720765806036628187585254813487149897040467660457486923398038897790600010236600582517654069039218689012697123543740366013950897267820931004040210501859919224855103095828638356160440077595384302580899452136580583423224651718937186408934367422737878123782351988977674039893758883333712098119734396458379902508487832403437016918016285529541557800582150194466669770449723434987849796976858530676780781861970731815232626517340958294519249071925938249882682549601089113841868650696876525986015426642575012029192679351778442653772020921270942028899302648920567557485430053219594807972004307499401825778568233122201349361822741506895467862632375795217556628679018590946200041019394047673455490962716306608046537334421330083782968383171905373246551227272263305755136333141472401103430671501197191816799139819408017840272516113510094703359329897913330053765716026927107704826810096486138260677710031575999827281694113961062125863188196493613719827939212797657249191634385685530208086425369084622968336154166615778274086494320687961349419306969296093539288536950948366478036807610094557676489950763927220510060029155929066190603171061654013575590376028872631709968292410925524007751652680237859931079860077163989586777069649092163087646714924755972648079188271709631293240673774458401994100679354322150115987365279825863724164506223860476020847469935303165912767402381005611246599594520614910985788487909242437601181248787690164241246753406032819819550138737461796987276013619506147496611307862384628943599552033287818446910403039316062867895553657464130523502381299497824782918173289365887995668718034070694718735562113723276821479781813111503185883880393310304316187601157634928556364068725196446324232872647674649255113049362545070116976475524952024785848241310218473380189246061906459014598583426879142409895788084481455120912904421559118966533839943794007267091490708460810811299234877278465155576969904167739505957538462551978720465872303551636394498371134403866187963575451083327125083797634637439087582671557164901106170325066185597447313077579322472707678479265975246969005601751792759054387382968526432632039475637943798047667334652987397062147187371310924003684909087295330282987814339201864837318787616515335474249528579282365231912363858189497330895552317166734464326910962653409671957985365407910284982712124244888059931959441272622535168669935490375047274880520366398996524520845509004087548882205505243926334259180502846045515313683762371879280630376224367913350001552761975471505531862664807829800935131065528647389366405633079473610585644929947462719208689917179265119835461363856445072673252126271885607628093312564255869893490016775999723964802579019399221230470130576104592426079887005154121970474440088966013881386486749319720758331308446375688543609812636696871689197753379707069162178358300483620558135360658437099913920204099865702699508651565060375687072315323520152751231448339227799965263685525995443265765070465435590692233835610842769040333153478441538883782297987172636212850777831432228985134680391565566015037640105158297468744173225570056570231371275235483633808287558986020143294270697429635687774328766374641611920257272665085231019180361707913465067447772341774117278138655020030925396189070606220965340146658022199888939704455021833227713932632473663753543161647208866678332603963387730322715078581970870688901213305892369284658410561711361535437074252108181830387937816419923422586429986439048890702006460646866974055842024481247115339206850985193058988030762456038232900050238025319072649958312767310213650589967262602245245221922248062880934873424619842677790119404263550283789247749416722219374792098286082250779135144940254700363621657885598548205059610285880372506305172026339824162774527573768389335594477788063970318851179525924785283594385868491084797884317920133278007587758097405476664301650496840285487759784830335397362882759715700076608809646949947654199415998074090969378659909275121727443621756605456332325532181249423052008063441883555518090663605472622275117349260425140809518203928766616084060447784477074533767661630985756205812340996066477157698527133759198646037179454625042417278338884237546100981649946624184572367354771987439336885096175825758113294705312379165294603751736211187555520902910271294692293534662239932668624127627201404163101471048335382598976799186857078980744124516947333287592852326171177416631596368257513444195393685806649968482107184138805625158557485530972239424640063833569830714670198996575070670577030467415481459455444272426904323070064157248761334083352939376115094209381555652389414412345858867390663853790455856842227979990753557064863273067197727489229964067342294774519335672973157286750612468884998250581726955426727496382470231778953682916480380109666073145556646923839928914725531247454621250251800385487777329502812912796696623683801449083987235806227328963703055440881311743519716507855998449203908872464076141251010858379033385672497516489209891336701834581465209432127902211903075982676240484858859721074960139019339940088365983013764707302010478259243053719964989259225234313054230077052695918553340547968074296999413551962098140443738570464528188369354324778507248087629231494966872968594492321427741912892432303810485676198206544331049611098001173817296183649941544611331687961106817298975786911922417765237202299915930613858686995029414752080100199043042098260977501795969220007492920535578700410904964394020426581681088924855613803449577806548598592230521188338704752900471370355078902514834364450786061487881768260503420285121553846128419705487370851380991424119436678859392018257267354302466223214234582371453568196418695756770552562189060006871238688094998358378927124931061815715436235991103789507218807474603016289326405408193578794193155898506210606647273443104117699009034358193625893018477590988321287154738234362951788665471504616042298470205128189598665142990283042971341508080442757934681455906802524515555022008981019706267812727555512210056889809194126395607567363158611728126906709286229223150760790448361152628676770181616140784232758673839515172202241262723327844168138759442083006966157886983640385460595385756237789063883452561597565958706856885399082874148459095304043728079046159098909733885189653526481359869890475323955445954871731378923446234004011971976098558019785678848690580441539010559137071574804349199052105199501530997468966441965014167670308152471456351598403977091218449000966924901540792767649721783026094651004783841642086061001421411865476567776511181944301043025248884298501565825921745938460527577635766059131349731353454311027509621877873558390572417280281938092697230680807373399996632359187415221357091137707823852812246738026974871282302418934696965283408324309072664670579392172803609504139347373337444989711502798524835674550493740118892225263201656494160981349012285045605271616478513744923589804986772448399645155125807957721482250619888816875471877868554828118441689256679431585283748325986195741465439705381986720108924093015859191406680244022450354448230495570673457044095311050434866472078776611621699728653371878435722602157713044690937839026959894677706648580234617441651861295960273940238479237073439671808286876531658916337110488430820218307109190713003738499363608140326495877107070462263090705478689218086579959316164595489058042758322838046688486413246118196942803803113542967877035742283153483749764100624408297243487832180974703736320388845610647033787652930860308963889574460543725301960166175775942833598776775296703437116722141555486841627357520763483825061144460767738421066986213187867054139682844125775446547602896393505315226072858737861044547091680326890207953004838605806620952756244490081503908697990456889315849664900467238377388645943083604330091382640780898747864303369177602004147666437214082137736255344116755824587615738081149648316763123123632540346245981698335684474403114118345493686992411136199291781644169133136594822501138615246265705099221603191354586442031289506822862999661890161413357597419153993679754784166942815795680920204414921526500038451593823947499671101244973657961459047333997742623262633512801031844233064218164627996078289004218524873881818112656415759962531686531085036617250234972131417847175326763600308265911119713482790242523296448391612664046406769076444476044617989210561888489527263762588577679571024170928607708602075227749450988027408590934701019781390608706502832832549238498025851902881865577308142615386900172355159768636055671669450948486627588067397690897050786239152245233162308897045510165800508184344845194215811665099488436804299442387352050508932600285345039530366435191908074865640044738770271457736540931334157363676865818383435904083941929989536354696042071260879741256489508122368895179947222166215123666238161132568289926198806072574427689805949683207062151896859572393277245588347041873974280693741406427080462362092649010162840432278243555052246622971242368707552430446098414529088569801133303160470415428691036743606690194722927223353642134155616484568318743003359107564308472092301413739816355298321450682571488896104684278110683865157170224423423290152949275317257096306687539707908534911288684891634951801502958267266714989368556981545180805795086857953133612769587657257607482314465223781540297060874732622592566914591786423566319508560685364839884666132151827975849336816158578336504726407406171595165123713321709600634202888164435823009289666561308377346956932435403784268332181810487920805868535789038700169842639148504580106813321180024087547350738610769555161234970040337438547045454060498697687505315094815347923022104073323625316231474045186586590207591844007269060057679992530922202613947969164457227696121732333283303282891368654452114514623209199243373106154579456151953358406257822557473556902075661491964936410746413242505710237431263832824141518035191931609419786385536103958757504739672831538540067827578550266712249363446814974491045360104876285863530422732800731062661463081205887531829340192109198151857949038475775943701277968699746016013252614953645563001917276303144979916093697437328741872098612499792725222690712214604280174491596587231679638636893549698498010296330981891488975215772250597296516608033449102879680017798552729539042696120608751617669763607264691964714870753822585013259143956939558328573742650263505271557021293074980655054885020483708474014009827431957700410530673392148294106725448157566992801892886809158793201062629366707360942876865914862156274888519643493106603591047510393964572222532755014171135539930158675575925615060568229317352359362443978876659415978331228639382776557877896542724916596226367203613909529017682025213419971795410397085056038614383667495940326245039331205542627232428139147314722297124795125681061872073562163183729743405301147383537205425190884264543112674362982589038706658491476320505628897058885690462119109487152386051581077763845250016952543790369747331006944407883738808763062734893402131252486757495377937111867809107555359407297637179026380061050340659758902996305549671141088822572687725506364093568841287127948313055317791746409606402505048841210030993967154165714063578100164914238506024021154729613939384095041380308293106063334986011024070794487000902576844901642248614447130318155825045306101236554245512256991232695064176873970156301346680859836477341584987395001984262080077637171167511427375801143825472407206568759908642598769224613335954010275475831412329440117114056565311407728815538233137683299026322891352621041537332014923679043852660196479126930451906905024094638604642780856248675071654798010232403565886650925320859757419847098928805836139809127521631009412060621014236523070354792742191575366681417036337063402178625251811150249608401353423596139436187584451976726406866735915246499078602955824602994237621174681720990506276200437525465429067363616705481539554731908393126383675944510430229577903627682738958478787938114671013007587111568716691672539830196663433612330905748720367156395173616333224445460595074369520829315910437221742738380595840007261748996418180584255462312850760476274247236741992500638903613099915830804198449785920749089004262768589792405590139466156453895460963349235467194040214462980710049248818593065197051767329897330824798405049686929052323686229526781624042575720389542234568735352545630925626656694138074114165717343455070665236214349342770069515278298352113269942175181281250006243360596469241317743255608217601154738165256363801458907497174876902250150092431311467497494543805004206671986064707339478074801197561051670183489890839449927853090693347346686555863849796249317786567680469166237781030118780648041467709595460606212057294095827831248007922642034761551412544024192312146935948666848288261422070972963712155694769432498543139157381557436763323207803636677494903361151904425097430329447252157809111852060479722851366451607759892683538180551732540403941192446198817454094125842259148968956291425269912315590765985980642705480170951037501403443328050196065265560596244071757188044224612332292751175408418507122051009446708565634980555143359085224732080078992372786087994641480881166649143367080894670738109222979278401600615737972674395606134751889423787655076057941841153733641796244868141251489565943279742338654497191637025024571069541561370648491785623050419457221653589452972564505778511659082419644813992502920486470659452051217417661034909729552994089893989935991313735094763791249912697171618277651931447297381776226098206236910632151859950579044496168575690374493864443817011249834217134325534435869816965742390157131917711502060215848898234487299330521805693130697683709766762466267232579387427616056987126769423198926221899233106926026048234272991369647731045853503730026942310866246558125994581685361136142801149467178705066756137645191628481997169927445331979809695718871312143375074102811218348198395133307865536082153334900834221599980702376142215666684688774242606212221878737130337038801387550077177415747801812465139601547687780223771965181980874345628233858915247096718153426056120395961211202332867671244028785673996342862049733731851564334408913125011748991316574433939192600720161014661685647690027095122359396037491236378573164797857415966955492875845004904095225391720403453948950940638562469806556630829500404290899895478441682329738673354358060900002763508429478260347946192979731743102014102744683173482027848162730191909048194752442856875247301206679233585556641308580387582206167820218336867687513518271316617524071514261445272160390529968458617942626856360029112809379633212608802156654708276796452097513673814689422679205814682065167886320443923967435950044234953733719783802918119021394863830500649161296206889853416209085851783286845546074099838063736850201868191662733110837093165131213992085124942826691653899874109059658852869735295196445378592791073302747892529733348736724887259761757985559183460381353035883093617026206026349006282781312688557938792355376133751509212077500273592562130583748506163410339878255090459966814815825176790310846997105355922937951908367097857220575879017213404139096660848337627219249731244763768635584133662582616279608544090999989200015373244438714471293163732788672854255021464794763018325082375226243897738041586336082223989494494732145417474226859260066086102621558693997930007414611661516407941521900795446240634296249378225896418469256111539645223264790329294639896351532644947504042412259253309220532902201065356192385332777161250719545762382326864409017016225765568106134013399494918111492645435644652278588912192975611935617614336187692425544930853805179341423312475119935872780419930398426637575274536133632486273538670717510896883741755869822828100832391592990168420526627487162884677929521202936042138840136883830350649568981487718988617306879996066549158357098923744384953399090635002336934834369432587964269089362756894808547566988918147093263582971258876268068149804581387574174642404208397727069782235378788093470267769055323511243883848472315867252841865036482262307304113800904992551687373664291074227931508418136531159465616216528097240360222986060853930808603795342960749910808200503118067158505468141616620336147562225303900623469267376964768973609873382182570592097485316530366702763162232793315540928772779507819875882622013978274566879410554419785161819275174926881566432406518399748269052435820043095641641242974012221876223002249661926148916102960442788444612395008000858248730499781769964038405962381886262743819778956140900089750481213694759616732194354295508840385992356922359104943223040282772934626342378221067717805486146103478103867674625045520782873619182126026758887865686317901914638433654115531356990394185432489384568996293979611835636244277880650138868966805507756832641285682225826643925726430157576720746220975819298228013997452406502659965319379600779012917751817110648711547843442247889048149382912195408088502001306603198435357103316988302341963961324904649316519071865918663059583925369718574534932061440858964063501736394885964440617608195465929106152559661102009147426172333861783307131614186469923982708849719347568191897084411812619150690313019027093160457977459196517362095804784534302532324811763484855781908753075759776379248708192419403598108839461022640199862517471446408677719121172972377535391553889338101322672005752253649183664053627146002587917852173708269961713977020557105792721825780577936547419791493728290000321848370488777077024634122112047529473722608863004861063657886280376687157632937557601428662368722678396548096103050475011302490152030571182876011415973205458671645481559325890337823143490851955509359206517476971813482545909343599093523877653280528410708542803365352755257550310228416359405335144929063259143845729182787324789734911620098745586365676709543134327849462089718245748701875602871954672041091699136496753552995552832124057570742339351156158700839663632058442449275980058505002242496387171712557845948389482926300723292107361884039582343992552768832471714255937367730165543764689772487593290842603164106601901506977396077667888024913168325893644269172455922475260191711247347071138614385286584671755970186044170903729943596294214501569587138928971342835560499413050730867518482830937266032006774350745337823636321556637685873978286518877410375330102028433017949932008373360606362710099271926308296929802279512512981623745099906593925919241890409548309116219312677595415874824358832967369988162924197279957014280946367667887891380829211213430539085835069416274105837092360503161835044885520245030630124261621559167907731812460048117280477094920345799404302751606812623524626484555403361433612544855550010971304611651266898330636286502450387765515417363786199984567234266491203052705342937085965446992301722638046937120445198019585703378015541536927549456857538350106567649232202079446103282593962091461805986560489850318485905817857334652498954122516490864558029914051603957994085625068895818092208154909288490181197082498955728348852314209341788000080205274926867670410817051650937481633273685886145684716263694213715068582650773270961668654369202110411754201811275843141841707900069011466146892556418069813045164256713171867619494942901796578567988374354910440684316395318115706415082894315451359085399857996346350897253598998798495212934852491362017110339554974453774690191245334741080195235767634148992024767693874394758502753327469418605151350304909411064474267877917075036557747224398382475445443656031456900682260097830160667171717797290155861928070388324847107573348753513509410899410598898069601242569600684534243946223723360199934612846731132617744039858389571458557451325802147449174179925684379990931647630613280635285808248604124884031697289065019728783625882107923611626383769702004134162137969782443720230305485385467194040436623309373844728589509738122378534833229264697771082642777807550049907743329709804518498953258207828401426316116652058879749113691446835659303957111215493399045565096493813806369599828529626834065260728753333471770983541503064538324104284092786372554875050186516515040855974710957732633544693656159473664049311081854148904180063522500915860902315185274682720313810547605266289562539216535452857401083097182052226697973028533443218496393723324139450654881145446050514928311964627209818850180164630124606725763176148634153301567265621102459262818177760035337218394178824092707162620848071437946997562083458714252998141062184988516562773356079172109041768420013153347143695065578722872039777881497940353000780585213921435817749675112951207957876254894687396691470975797361029359521472244555726719239342328442173647137613523657137144277202181004292702585513765557030558652462186402237336354651922374277649009011983337575433850120164385949711880277685411013462625249351020795138142898424957267630996901037034763071628990808169024677141671911261100212547014692282385951984933085841796087711844731635562000047623331981668247876905827060167796970890700122915130507679670714136897514075386399985376354723663291460164093116103818622040274159964934670337697653315501901994920539720685487128798720008542714546171634247265926609092653502802732854222394646208522395160452987949895846939069338290068390457714366772718644105804269616121747803752107780408864588291627021403556768760314031440660616834448149171437623245403046497518053305819430187102744005865971469611259414206715815140549248401611113252167536563673058981386242479258105558917612812518869958594940946322330093467050997542375142386104686711675900185958470781344488538822980121708341452697979092764597482737083290557403709454957263294944408691771089767296430449355227460695227259663227818649891761583250708012042531717289023554318189219328061012653133985594708275278600823138389795716746306523064980718096877649494775486956636975437823121854072314755020287555242816952207729292936901190790348423546390760939092937342665418711218385504458455691305704956503490538110622836958337690039830801528350604211988557496462670040164791233692883433244298851683745135824643785740770192649772496777164228401035850001683956536420887527969170863360712102026197402617476490049074571662720279611544810914847589518794648961008940688457194303679952155163712128322790409507910841573395682823992033905606698512125538337869633791279873587778416926488912896984981433178426353127163582843183900177738205307666528990947521617517655637721819170794309181819635211801836549268480624241919460304971895432708754595357792621122978456040072312345225930244877819446271719402862177068884213332487220222900681934831318529505957242171129452445965473350970709156652338321932956729616181717407725792098661026707068026529309827416431584373304959586627672014571397764711617019021607212844003821620171929263589877189732355027345317729705519726158285630089674326251871801212379741993516090713623935055867537079027527989826741224271023086391781646438875840071188016426179300578962000519789119896384357005952258999238790545278577079903339421202861690815639438596426367017350024067344302377531850330758500976132914763568985267616050889833527206635226264289338353105405573655554232539482397328615558524619847685383655185967188068431200062976908227763358682844223534233683052235845018978413642286718741895432553810869629001477651012076553898975666886839764935545002393152305210385899142831350981584268322001640623217589087533729036108893343644478869758582026664520020814655858894500017294333891296493857276496755974782851589772646829514293812274793363021093649318736721123146873207137531040417320652968377880985661647168416419549597233414347376134566979904909711497438587763658253675668515267365956259673341671082330795969461591143777210911784528328759575044770335964351723052832266506472490251638875140946277518765895472231012468963489783619328831388448027029055279254429411411384656984696231349056659722559569669645280922125831359255669526036864719811216059487713548289738121939777430884523011755682979084750046743360245972726167715478007109729570293958429691223430251954586892512975537966727306241054169952363734765566364293567272482567222592303062772026301490010563445661097144385978990982501490262492100557018981525602848116885824819791413846299863217759876487053725214604191399810118396546081065151397905024093686749864620244854094489514165541168283360832486355403937160023444785600585181198671543952423302958878083652590708298136977619868396011576785387169780032273168866493828134198947890768095639021265626320394440652079246211785089844887823137663241174530714500653540543603354520972770745985905609207244251721795352151845554159436028972092991935563868527953114344256163541146408895520783251919341301712676952657777336207907981192389871340107856508244682898794788953438988377858346470498166718516724550235285268505263982757238806920726488514663068044132824456033758819432305040759042528522953040800320829448893467018889786546290165415345877066199736442076718750548509854673024072486310006204581821122822647922801239288335131765447196478500133186813052275446668483528830793630859774394752882385046757322161030295478170253936850652016579877081928772865732913354381513644837365391180182404197792547241504266385734873851369831869732761714037512821283719818942471054893765050775090611699796983363040338708268571085494550955853102981587014174613208869609370864460541274171348992052916626036512104487166510322233789086510041343472378756593718596527383671449438196381152389813109487665816155267006342908744226005133001042207827062114877195680884465910851396541419020048200782343744202685015620408710339425617456254353423952295530139575471184251024011360268882078996241599962634556233533518320887925054773839423745119511562918305323846426467250595014681408066733752576127170676072872289670740396939839528336183914608731146289211164941943984569399053641865905836974063388428156086935571441283239340063553086828964833506105996410259265773718147312382295512737580877500225256507183735876514548085717787845835310653833801518983023372456244684354452805227195513148011944710918365635039425557038218667425418924938886990007410430680603730973423795945993869941173271291001665594721280821953184764542360921100069605652753968758789991472625198280712339289680700612395829401847091980386530511899191907098340871554448942658716244242798400883569583483784120843494837558713608357659686360333473005842938964620902954383122052151151260863117654637737800586173389493935231813245581844309968877600500856407187106383771789829665809745029599611287992260702270694593890853061767932918460413007307420824061330933471830780974375874671381753541003483807665850464596334622456388316947124899519755738840412361701974138405207573072345286592144833875905831707176521531858412779083090444700895332257565636097261074294266877067863891279876692839933486918992597835413761563915483221768629996643903573447516345947096897553502491482597211575949243038571323507278382191190478468791768473402971475040696202597239323244340317746727019175257655310990353079072427403804718413713508619413369388621133657064364454205457168087422868434495682058747085001205517081504404092788556202881109916476215937918202533819818969536456459109429172295024052891613331973859153615529813799230811302135016420734964256814841389040861420084090107198602009180962275321736376059966149639051220354022021483412196570862344630182274573866787727923201112767419675612893839918647160106043609856659048237606558357012936075149199624036885329130752844068742628254951870681865073796814929288943706772110885128576076497847326579207583195814602806433288469976064178755836339739750349192523076809704180758710283713072181437313201988010204654156186772334622936290547688482236807711264616248322055720295947414973353715533025273498638628889457103353939157977878248214352242842047449416520415511456207947458760844184505295791173911881382078909862004572688698731102679517965000130927356022648773793709905302493854538310219882440333466460981204344363635780771405654611024370857608025135429517771452568791974270798723432382551078767938777705484875068216957450792842503194559651664502593940651599843220800558887124516454862789822790772985569303610573451187036706795660053094647135319078206028443378665483423175729156968039687180643150047350737079353186480199121646396559988992335580968878908704566247998667815986276970137532073136068321219313688448479923609396016785466383389908506541795364940213973871777750171584024779277994112686112809873093899202507236794738529753896618370682583422920632804438434887226332988954497045321388794408434926051916547601243996179670222259834554233846998280834683616962767378943026108653479924459102131018915662883809700114548200967915140186016233810363411095755364580719764748802952881849489253882548527960348364551275979666851777900547685012066360764666376853154121817874715143942229542034034685087308227727660701061349601485026656418816912902996207370974575111693025392937719117272870901901716749530382423957823453850524388722023887002049914577562222748135200719709772185352475310044705266315511763311204945012905714788938222487557102757206515810530471702672867583849788455386680317790068366656344880560157483593185256204774695124369328321787731952875983861605184226424025615309739928099323195347071988767970094965459971319041734232903242499201715941850433095415059168847793906179674826974153676471922382306610769167513704078490543936648277985156932724512159314393481193296027285496865169532056034259860385534369228841722777594922571475362101198688117381967521996408897528894395383639445986739087525138503959711687743240150278537870734996592806308832143212979384163918400669292625898812666928173354030560174700744399701250710943482089596348135451552755200345913007581490082850629064137801841105436604256372398869041631440253352573988119563011393126099877090380431363029868574554922431102770951027443011938679534268430956651575415277798569029399557308171734376248633839288175454216722249589801543510538514215752888894350622907466631412514934846929244618731942725193870243335339389719006421732804624035622605748567618051508922036602540814152459315518428585626106668082401444539177986421974662432595626499184593250694226545823360693339315495441363188392061330059551311040720927994721741358294151319597322862761321159360122118592794295527550751102562858594799789410041300151930871562318952460281839073318045888990562784959718008058978343180691433080807757442535325804263531261621122912947100635800100870808399278233168536550163824191485860794002268246541361164868716744881321083109631693582721722885032617007432214870851915819690949769524200346506994904956391033460541960158379861213689286602824072836204011899356624225066482706215890183475081193720162098116811223213679466223992668427713048020134800595717897309388908971872837230667722893036847695274067224392104364192332548871934017029650279342601070298572722159069081558739112780134879614132078449439597266876865095538131871266064718200517337374547556298025683631086471813638225260641491068930992482311181011404841920296987595770359455712056740142262140236915086844068456941559337861793607234877680636278259329930035905178041253096214626079342741462892021836223095715331984223552854180267819289575128338163704369582154628609760868507966876957039143934163085061476630970156237595062118755613508544604799396394249255125008536374964848354672697945561762304932101075561502767519588548387269780001221046146614936484704639860788316933805197943757838198576973498785244299765744538866485010464765384697049436314092672891221918438222351885616593397463798308559244139963391026158218538416697803594971737600701998195534097794349528051226976519741438656925485925372235278661078316851654343930435804622596987637457682352981265545196689695995511117258491965481861438749268326417088176847619930186749885107588654015149652649491198191067036097392798183767302555722175164679810928201297841613692198827586759323036636806053342864578783806753441771387316245725042290392329825993538137278419451683404505552112012099218214428845971483374400197903755309967286119556515726953039637772359894077890247534762796278321737333303020866900692530877249176164540867801077073951232028465807576366286113407921766250865806236645948053016862853678179075469522441310134583732823808056390674373395252592691450341276154910563286554163500033395850232879084012843825012606969494440189558678939314298810995180588992787773001660241269043819100037951384761734502833630186570816522973950653943061128477451690046552639164064980482379174563278587107513578847454560540523907187364971918462291147686610069870883598403309810825034537175545403708079624750601140064548229580301946921813694490569338298591830164066625200184485003731874623250572203071222891583437083746935548271944665368570219094982733572783493416754213216194776632573932210088549789247921969973487348080818174679919783451583208884518278043338635475892964807692832062922844469310221003032853833848868984191483897834171115227237675859469290790769479310081892527639083729877171130308779849212360860628323250968100215633456493867397850118638045574312469016036176090363750823478494017072150182625114066760600243987846112878369377713236594243585586824615966467221480360140779276139812256694952801220586660162111865759390663152129853216564882132750295528003996177080151220337238511990418639999361936610543098519554427079332385158174417309659901469522993976053627541623957871561908404482222179824147104705115024989414737480072338339315965424020506978166974980928318375948179976111116653258362487391544303016537465584517356535540051091060157339240830764501640651363445824197922088371263817132537212803429870124913414494315297757798173924932255090598275839660917095831905401241710787883229459831664447589168899040527099497387121929167633579536434027174113929199715421678998425255301277598621991647774213716044077534903930064539920969616279979361655900464622944355375295163028119908482952941589801353638262711186572260501482638423170376719227465240227895336325574023079402776685758993466290417761470332734180177456444231084442047706575835853473841349709191223546280448747786072405039155067528869204163056020556556411673176569871796734413527081153236046481585407941799889781056702162434672031985310479288273213687532249499388120695803588909885865128961698422667470694603355627332347578633971183265292536227198384492587147682554750635843975773615823534785248510411757393754659685640048880391577841787635863295959068087342787005673248246520339325150301898319786169431792298861881951557327282822310096292399512901378660748290533919113592132956419674461851405995712658498769283822798812253653304591795155663975380223566632828693106474228382265291168451837015051494989192422343429454802097218620317737228882690439494900668916681629944050953725430857531322250480170462809954829494737577753474171555202083521918488937689142892808420234765398824557096333312281703935882468131052264194249271711642933291915243052626040832477634222971237143778819072583979738498408757069681636454160740218038257010529325413006984979592874063836189748302974694954694446262097938289251650285006173124037712460336210613728504313430700987899449461745708461299940662085819368013421022229742759084795079092029174431015283951217657201007544698273680175577556996012096471189690634540191447170416472684020635576082110754435520137797490377456742094583918675885038401140128243880485699392329567238441855358719663246082302994797585604874759230676228357601959397584816860669368449183304464530114203042762326813151910888541618987483640227809667574522854465811720044303541307544795253479251191996893807249618198422168815620067764732290121405770486272465536452244859261603407930388641826632818407344603522141780622337872137258437041750162886690750010194762187557359310483604129543225907466498081792668670960847292643388308642872155818560099402877767856260347797687158977171272327297254791814551452724321186974308769958222122380013753115469301685422917948612518775632123564732233720244563245552769294760401343042394628680781326694055136880740118953715086417682828860282899572953496886203294954496992406063992553265827319105681427969140171355443067822835275562951533829183588024118667637387143493556965578855247187180716108287574607323795052897791502961771525801896480931665268704904884949411707091716211452925832933134252131774015723080844900192443375891588044055435213300046423954858848059533453345775714399461053151941460998043835609626073751343242090615958313826199593353401283092406577724484348046793444327588831444692825107408476020606517244293232212844365168144981324563480164309995236438328828259181246592562014533856973223489696614847411756549209502580365184663362437893642097444936194889708423115185477441701557521096965917407065805844383820898279839672200052699821863665640051080611329835984830699900320564756404152018287247651685583407980405309807742086511465486787747378305685888989404960036809334302707986557056655302546337504734727549187282745271734230988737850275683053170405724773104494591317180357715792358402574305863242467380084150552113847634682426768243145695513172182083663091340846298810964596431824185078834193350996951252523038812699349980433024874773897181052448578626044118752402993161618833929529177901592060115524240683208181493704010489984062794895762435374603236159269145191044611193678708013212703384119524699020701431373411922551474659523419483617136501844463826937235026696391568502640571301360940112151047276027503434845861675592262197841035152469298897123666170263170645654831100241802111598068290621895054141227347080445244646678190956978852035403461334749664402103348713367232003699202070041865039218151352952088256513323257926891483268447840910266442267608817513518261139019464827383482085327548235790735784622133507554763178414290229088860500114811458293901993623642389532252029021490640243687158050930037514225767443074328996976060899394652644640008295726010813185340133958407206627354565762521832745816090968536154432866448533959123807231375174091250499387765368080335622143980462383004724938311979144047068147472553015741137742221647830370386425140350912444818850321304948679697255197736060253202132547710487141858486773939885181497344481846886741463522881896187674596712145334791244077039798805329857953152506447519518198605566134227485907424412494881888703658425999593289579101984975906487154444698114468606963111866951567056808958312212381392027899638212641361808524454647181677689248407390816088401983856245675416946458641784244589999302656224301144956894922099377137412709254952919910244674757855324314364481973095644536841101179631003838666482425946599333347409605220451930961102551801027404104254779067842117981652897759957019735061926735737362812316816782256063009103573925481368376356661761122149276100771339685845434203205543426667164134868795654980063509735574259906752712345225902438907705683765813364098064987669213240087365910525106186081059475326278192347693270027258890597720665270709955744039726787927881718082725895011864846772350934134505664992091319996223668479296722989905696914003749894905447545566463511249466643989628173618913094365812262274783106025361177997697931685992567187044934083485762044907429044435720303125524775529368237737334579735726414758908349898419205306095456570428288357384307030918942273529613720908531475490095898363374668638543833129652691972638444932371514442422784491825274969644967852434629561961824918950537060385037872834746904224235970819548576155648570051997270851477863491260423050333082132554446229958999484344280068478860855147561204060140701444884390922145134436231790002349134014279270070731726710382991928179756336436055136899151973816092324136896408598921736830333859882803427051935673378502356778116708471973778864801974705723306118667435002707715724771560159279275452187601707666676511299238166109209505179300809258654532085052291218957144242079444601600084987352650830291609791473657460372253690232986512729922317801771761372029189724972750816657195843630493753576472478351671962249388364384260705425920350185050274073910078829759676986095438185023081623427174412804562476670780935550675675406785414978249868373515413434061133064326946561388352380091877746019715166097285696580478562662973340457498299237705639036905068012019076023958036064780676960386981034689618791613253591066141970922660993599237202419963672170154927175108175132469131861530341548705831582716239978493772920657318146393867201294859877727570346691040047490176247497878373996077621395165444208270617633307327105138399026297309183379824328265723558260100516645251432193255857012199085677657516363164467021607953903672818081963756248654255161370328642737447256595745378155520235301092800203743572095983650053144653685534378624022072930301643319823848567843191950264092672923792032153553053812693011009582686361320510063551177569755854663536922588546391015735617396733936435623841402057996706603557857067925723805807240616398503674435069372223186138413327212086211219079283601818981041885715085761924060843982928199654990739819354162530104575309614011382848693539596010216967812233845627932015684596088597967744927693515113079885935738897013663594043151618151147479044740526824307014486782365717975745977190242554582067290827744349853196653007290060908944780730712087734562247236485480071277892523395988576130810357383329228621590422771422478486816722935379776665897967780176545024285840008086070685456811116157392336618574944042078888815568324782512794012927816276301490816939946701718023435922166128715685643721473257667319696426141683439821383652241538500808282973421471315672050047960442774825817506343895795404444816136137988337875856049610858450005305583337288266474833336203833391393141585906459313386969495259560747976159777974655950625235705413141824947483289153944856132040364517838685239598322228168887551886737205274808828619285381720037837108941968767139923693268378648089803259640304023257371145843109347255972329809923759997228352842062532273088707005900639543023400121903832903320364022272339517250902754993526976136630796367786625342806672266795163221681028001935553867288025929815178908508939171897242325268626704059627890961051320662327387155185488696137994849008093361367671898815035837331153081651981052215435888350825657805102557199380563386688236198410024868115105921905531451232530099174437059000925506974106296662894949179751301179253532999756286584044623432008410659121116428508432550808178161986567388880137496268178163589452383488106974453495861946709868372092227934162072449032318145679488624914999629274633505725303705083361424508449574843402128156791406025571778995063537069175298715859049942665622600422590076488440200822687091386316270530644691733151281468272130144756511116397935608677316292564881703512793385046864181361406824699866395828680300239679567208185179054806373429943990021392733649337145661023087361184851873853889041972503685890704703702857664895874212130046693842800170262758175169353023112320519598370476608042531650260662451363553355003332552407996792092872700214772891445956001493991844742805645168929940836536363411423610537976554511930225819012460316226164131133049466975157043773750636348982734138013404330773677329369621271927666659952580646035533879026235484602816728193256645998194444747315887371003517279715988487842378562273041831473863169054603086787136349490804948595249501577184339397606442910358695428854565239967380113424858446618684795922869384715940915152255310395367253189321340099136701467750581194076542083041109468797749600413723655165394075808695537066517267059098605900365722851164853066210093188285609893552495982132975505339641624326892823021011322280265034656184388493349981169880656066366877897447502609537057119098978636584706091202063377551836107912313777213360319641071911410651260053752423041164811777843694598178848313457060688737868139884168529938006493257163577443259132102193018807074299534262574449436539182435238350279267185016846173644211408163016485916579282359193355641017659749786017443840343592621040910918677119380272069433033102096887858940636262421379347528207350900522658769828826636371401438530354964803180842366090243047292501847024419704015533915007385162151251638296902973531143707758756463546669055306721599080052480541225406945921656436558085332672651548255640730455401817567031809982207018053804259265764547237676300126177283222122145453759945385680323900476500161727974697938153822848501199904978351963398261378167203395293147564712736381870960787855969636551850227660969718986036843602564374619471962314133996861294040370721319270411259406711548006285344526179771024230129671338009800375453853960009487512907514265188828122603901430166788821118815204085576012498805004076284639573753294134655782803300471189634336763121019556124561493833892883981780394612011725564031908891238550223632533657801732567838796848659927603556937607390615189857638929331674413634356535959386677630550985135553064562543299121209293645530734288692718273870701084924440927651741147565982101188597427475379044517208283539684155916429610813251924093260855841906712448078357941383059005576738534436235607321191346456030661429650639523841427380749002726653113345987204067895287613657953706066494575992875626258316317518066270710643264727835374687165295498156931314000640726963452770404570642817437963176256801131149077271659733788616294207065398534473681507841603404909742238069021371018502334761783733418539821082494344128029738951561312547106872026224783721965868649327862727583409097861789724335368030093557151962290417019139899951205347875441422721157390826323662832068064646796041486748378393503000532426478978845769964229095487737916482034144612878832916105753366125569364410610679198422124495896102612177177152842773512233113419816467680293360971660611380190124256208072186299460020127284580114935906347951861385176095320601088923658474109055931240836242434097911851746813131517978664109082391886818860218083992558167274086038973844835938501967565668402844846288724254013734069905251908673284633919658583854424112014198121448051941730142410061451154776850402553835090633848481909953566045604824685343227051397061190717181897607859275215502346835330808416145912027258910959937059593684745414177464695236762480500750188630692859094206741772209493963559696776396106543624142520090010230876011504573934043492154034290994230623183914889445016628866205418933386925043216402737294978479474339825247868450660917031515231287881112077911047808397260516017856000685093330374278244620051400761533646195887860646245637512128646310953634271323297323701653350441144316452332994896805461694853070763400891078026961903495510839673366234239004139130290980209243075070001505058416501630013500362508990255052761754571761077371577513800484694458800592650821672002244063670330767447131097543520276272558022777923207140186331419108808870198941399241413116409709523984279214846313338898106289636696095803612404014971598305325078405476554030319579124513837013066661845206681576557097907335826484246702991834118502418436364958353998579485321380603425797303625797446558761504112946111594604893522896375139659650672205005744221996127047082747331545862075695879490000015588315638005602205600087312607809623267421845924033882639554146549157533198174815174527037149310186183056779256009918139623377115468894884082618287358288975879434868760713876578452420995267117031925956914844055614170024963563064456710527987408884249024271010850434626095385345924557450882691736053305672756585744658227311852232454425849087557910685232904173038144176873528105731904773712510036508690906186352849758975878112893030155951063696233026511700168680987432609210484909123108264791567485552111963713492580462792866603497761987912668218950449470032623162451310629709831883813540880916600406210582474355158808534148828795219034143702514472020043728374827448034658414725180564314632553521690859178004144086668175730068411235812760295289959610680219256552825518383026946406295455024508426846482396585493759812149861681567365817122062509163644654190523276117734338080179808053201550533241888403310173056831825327966471510446130403301055523664484286083281604253426244530412306383552388200396613257670131401774316066463162673701045215163624402494475042414332050727049399960207859803874495054000900770769986339723116466723881932453731324439812835894322706918107575395459244111878839525830518326119601134963757645843685606120639051909791560796962980615876062896182026131008556890877834550240268728466047139306597348426532530766672002535652870023672921918780363682886307298616386959635333074536971269341010256540358702611361291439208816025793851728742386593393058417477017668861350451407277629195264130730822162198294986237067173819153372256290005679671632682295874631758306346177352965111540789602668085109720833123799740065675607091546899673768405970137631226312420049943088011207431012332093467495787936783218027295057061747506551040145775760834129031327434542476892271853750185740636197175040416303633466959090821921540162936187081119159175548592663583355511401275856205660590575518423860222115855563243019956262797567892317967254755758030215183978213774267206927756899126291484299096064389609144020286117370754185047075714757338371946519557177163268124355594270065272010926085631041997019294354520122295380913361873875108499895622870968474233245766153310838782751656900435800041859444175975902701811228265311930179568836394880670918486264001001193320806751313100596260726170265786194054474556631069563297401599487750906946266689916895700195189654613846585117787381923587019503461452223850523497236907926303095057868987271265803099320074804720708958593569668369664943139857799313641090151676381467225150419802423382485018812448244985340825059520884325887605173675167340492047236023634907230199165310356539418245339393569670120817671759729963860388643240344708872603369316361180204126485424471925643157385934346840600764268668944823199315963477500508832250689366310829926351354531515812542384614409306943921521152788611804112599131599438919696373683711208842673048534150596193680130120867569095989601852622448599149442536473741495919671923704729379941368543925011652661685375745896796280566807106166277228205676169887640731729704296608436103238628109731095948599988725317262654065680370656403833740690985944119058947302458877052630888213599128560628413641412327183523361232476395500773113681283215258365687102233227382870950906933001351076354608629811599868284905748409290875850878486617550357714945337648159125403060857881734778314140437707870929345051903045244982876321273801700664158893472197551538964072680306872893479715777177935032465926566531564668253216386706954714246516714016356721301312581847865090001535459748333597737737300812314138791660114971459831855133174620754355896328415653757458411385827896530498429680338538554135006803415460093610937395103436241871930127962590453531452479553857432032541802104887261159555482987151865462885742961734333773919914807283488232595624372349876458964738085429356982637811424599167978272430572533286386413651540445997458370660819810984806798806485232915460417507371691093445787151857797409082213085512183244660047957480353970386894147257145637062651286373758686720775743428917582989828581960987599776639304416001241010134855679971409594662016854204729608302446567286106657882057868414198502887426154287293212225741648121443577170100194549327695911394713724851826471324522376101986134738475401776185652145756483142075692996263458885956234494405489788046662660639770274256737921772511118979732004603888874635176841274840739078418328516896768612604829942363599969475134861675778503543552640532529756674991203090860779719845274572127851196235139751623042692452203471762085311276666086621799799523667577052042568970511195101689769334319180579168884581056967585350202456950160056365095436604642721370707585632713167937766400958374217648118637568521684720719462409995441632462420823072703870294989703628353997853597467917378599698169812933285819040541977406371159783850788559820072358249914854755917878650604218975789008582848345519544558166577938758238348431324493290755899042280361864434466146815635750357086864834648494189650265853262788470924808775735243508608719226509227270715728753173525596581155860706258623281692063113261070777670380560921839533298046472861546509735357782917979552166149292216415010899709612040514665292904264605849280881319266176220431453280852639122079760766278197161741626357579364106551452103955194064958934826577336022054722729361924811185880630869664302554413052833810622855669497197657428296742291959116125586699020836060503279131505690917828229210584661227661094516034829415473730505021834878454168806369227188802762778844002909453937777044387341734604713805372031850111209997544144711785957917830487419155173996276727145331123032684527601986299117650848319622978295971430384976082604546251862376297978736150616286403755993457291789353926519527233597637853846041587829682307392630932185275689403963700585659366483883353386508250554551276691534008082715716794953919967222426033543943634743862878036380530784818274549353575833799480946307637298789973562305471582310700946296362057917206013446027677478318633602997751863634919906207719340355968858022815171504522070758155719991206229468482568875190667324357568458620724116099024233011824125946278516795705484692664157789043844843325594582669419361409733318823694283067892732604830559247744321339139572568109888478956734008074327916657159956124105204107696004575697625900439967576570134457987418779808891369763243576131001630824912879162483252109332311819142746697248573386450767356686810533729103587989083028421452083582449611931123268528260463370242711787859641603019011307686672499485121939680203631143821747855145200402108465650869614637107050831074767429478534955980205093042088324424324602790971588569876367751147005673848036786145116926707361635613424901676832064749202144644788043315108352516173334133737634750533782637466686437156891115879243488375520079514723846477846231291365063723258997787090566265018876827684782931506611784667689812775851730905515548239433375206040487240982542882892440451406075171838230074457868833297159792322081261565578459114738310668195413236257340512986851814211311064009043202705302571738017295592123895144229509693740058540609202347266552182599652675390501967711093059468736259533674668257553359268879600627557732161366074112676831479510899674986114715561797523145294711888430325427226951800036852579690531335863457316891562276358640632718184004882467873436423191532242918205332279487373426130638020372868940518298073970841180899655680663551158388801239072430378565907199486907850876857262504462196467787711582535808379620297543182156281978960083233245602511232912766713273524089621738985896289257681909464252087261639634204324461979958362550864913996277326909742968012957480010751983212456560008630301721712977524085778258760789506898566622564778710389993151278135009995507663699069855261381317285100828227484394066752653172138370697224171830546234083945607728180980230879840960542658579626562169635732010115922583924910493275932697885107749643502642210356550099370531382688145312281592851266936447638172349104964820085153994004986374001823590995742746351991820261331044809631861204895078070776430742369939271439141331421652500386789401782953507382411675071087169778191513804976743872848128160562062253067660021779686451042714147567081009895074623753951913952469948009699985130660566092072715003940577635344481308911667416363048176911606989898853721487593061655584311020505396270934884193378807808717302737319415455580099481593893779986187408410306518021853785608395621150849336028077733321022105922760251247153997949283007664232995438182246730144013612033281272937043178143791660334113136181571163866484818103719999563180112936820744762778921858525697772894634691956244285397861962553789875881987819080164833847898344354425477618125374774273389216622132903623428606395784402864860405434939423137018212144681212329477871782999141329559108270980213921663497566851471706490445464504217741760089655713440202984099636900669473239585198484255920576074109475161110330080804648482725406850917947229499776959089647013250685523053378134822780564536278941369808826254308169544026076277742338678406277226607607555720183955186296753564328786268783988566642897714766675585294618664821024434550966397784390141145261019453174476145460605915680555928350597291211400858571349714874486237210018305103446956866225955118214399466023910650370373712723173484842987950954248929389570498029946465453280603182164766683213610969484954299217325182020522743463720303916357777915141121243055343252706401802237951046817859241249622339917954080970112223023822255054802694621639104555810392396848592796917869044154434122830486571406680101747090726749568568804721942162068824573157122217925125697746182266919596683092380943165805945994273355768585416908843699950394526621244278108706474117591298287822340018797750530576055161053076719803008990008802697135969254997672473124253497046148794637250255965268324964938548188793771950018035279355054591235072417178549842832605364345615661657975260368059141697013010755648268890693276013645383056515876264597862125966551602575190878750650312227212120028655130464591613319011888757791951067448173757825895463404963011538982119715761474830095395374669674184190303402319911668259220925737133127025577691124054897297875205360850957491508935332742235100579196659626981369992352640219137156879101563159281392953561790823254018903376147688460157463587194516008498370097586488131050359595405073512267093996340619146642191596757422108915133157460645948174069263430813597042231123741352918779170492953110791073326367638991693365808627757288714709167335265455831782551774825465410365069676018777965290785126871788836485057130538096591823551204437553417611187048636364175244397889354145137012818608555774042992099440663013158615796594759531166534123792373347038754687043604876350331636519565047631997224355279222442242391612116789091667103964447680049825186821466215708917710421344027899532065209485931732469231080996963152691474829528298133809441350955959778967718231846760324963356180489839255899907718373489538174262576997474713344691334135378486354770268370098485815257654733489407714341071046182281126174870848508067117811895471648654031869365929778971706469469662938745793370557595210623170267543820948622163598322360030301810140936281159949263532563897229222699923746089831048405114589909967991052495566160239515428701692069861435782283774477833315417192860073920797733009829212288987017455218252932805430355264544383306451142599237954986411737897222396806272051592436277978491890803372168153006494008387522168938915609590782553849988463092872652955641990020984758976665500748405730012693840906264393212114888888655527445272172894980156728785028815505180747571511964012141215539786392630339080979039281270346906711556534550963190648039279494207722088205826951622101546087613845877070146423162820406028492724176227732382773959992862459156949945686566791550594511710222941610046685150080179873349658314840506141835039911207826032325807632601607610943538207060392176001309244954280696894275022765944511458842738208230874765436122950857375605895550994955272584941682745545089426216550602192315748651882205071443466042588746731952839486750922946362243476152809277443516596956258573968708965521038628566029917676558253912406732689695435754429118609121844710824326850041984479649763039907538896702435961547072573146913610186604694693239095283177321487778171689091036309583519559206156890907035187021683298992873401515957422724697127637652625726686519323727652881137064066601608738220531254171397810934709624553210316756259335916712806289093567081261549652850875842573875378669005758585363305141796051332788292580313688749214442739084743709601075681939346925378234822890022917297356191464343528632049235196699449110573077724572075113443924590736079857388529716599999876836163350311278882251783457746084200185655999443807519619908098557537346417034617518802860776545451494341455839957234581852163767935802171375367462547589056793456492004185792727461560298285660932272751470971143000984334286144419361506364450215469113238342868116553340919802242251368465372421711181472567699286484655118737463556213508924179348255871010059467827681864433097998184000840580427788020818211245722144975816532904316994657798702050128664160832838382289372462738126367515731545259608414345338512863741935752459202161297827842026232539809410823159129290236011078482197600939192772433082941747041170399071297592117630577680519402875259884469849411134071519762054954734846176763374486287170711898775318298585357273357219109234613130768663692664032146929877274200290703326887485810501306375528344433410779846288881078687714631800151963952015177202391539719012274397914543122111085439463121487091101307140469347559700499883559357621140683800960572935923236359282939976856505006035030745402554407409332725202800010676330265897606354540357556213723628800014107555659997447767590805638246928991705550603476779215221336279324408266638169978270793683478090150027444411764872073241848161638196709284386753676814076950704006169835116388059323136078175903177789500467416383201501230295328333905113190197187187117580900355914793048391818372350836375003414973606899234650329855632017963806578757179899314524652176258369963513838398161642603260088893136558046314953696253102053846141301741438232915485510518353908049969265960778133208123618478624911267406531349449135390777404280189905052085406811088964323531666114782593196433786841243880637989419342315969419566771239059073679148053915138256541407226496995731231366261851571541070719652773242722374609030719230926296231668936956984983425781368352626286075815649742507783309600219944861676856478663141936419764369490077070293645542635151983508541512820640953987842829262949075517318756749247447897802269858892458298799037972786851508686191944761357523088560585179604334710680664632894881445542160167792240190071724004345546554937891139162534558261037752902308463372982186224670153260529851995340241885895066928982261704456377864584482531796642517696296264114600793107679816812188721460260070285479111161489820176076244405009291691783051961162585511508727959927945559834768373763860941827517132986674832519516611272493194606060542740241006154154856778296368357521612468347511342230727692195020854944011043072704560056342741246652780601509670293630348450768711175270221066746802866086090682873944640736564106968394688293348877847036441461430562325170672240492654264357321371938013432319984483355952883126664786337663480537510107602643578253346659490571699367022145692919185658579563693772253018328916245987650872996042762842996411128892478119252295384402482935504121454930001686491588020176069472844648167611730131181272686820964936564469826625653747370233778337975013205341136427322457371887236208943947418056071574002716013256846439052061956014611606753210488346441068061337250407008529164633899129278623992794209864182172434464822673671603685112160991980204015404805216602849263264294161291002408488419610484027920215565496891754898697911635172581185580329047057717012955771849110829639318172615269164007805375393335693408567359531598386311840978184691118913743024630449652165565448723291292751943029519687282186686019575045096371535758646052536503033740351202874465930291430282672234986660072227053340012805805090903076831958206333923961885128615384445597669156958116980540645777628702846118184536616128148230304419645264309039289418236105248175433627803875790787697311597039025546452012005516098982657786678613586459891557685097946608420055432235260849332087175842014323226398570080911284977808208255292641888185371746608983868006867436893565908672452334956484503887260379207520370113658390143410078824972059159694806942656404917065940427403383756168133120526136321835528060447579400441980166251561104439313036102813642294979247222231292625877508213409479587361113991339300206961608964883818583414385697270458528038681841422724456633872900282756088428838491532304190323184816642202741139872113988548435346232174861679426954272613731708997468814970240586592931992859213843012756005845583759884970024072213944869319490587871256696290457174229198358469170533731514170770502484919658234828460220844221050767174156162877466745405263764159654273630667271625084419443033028755640987441728489750241948355495870364148204984071452710071031146634197759746235834096653944115437065743076508829534516267271478421493081902416763489047919647638814780276748046308677195176186608880364785000904742159523811331381027901737501029953677074318868459367647062147129878657485881851832685113189193506649831197273200190778582216391251008000136535742315315917248871593191352762695022442532056877973828775020880084136591138000426735726213555795402632754202579718418673063868833662602416835919478940425442530457212563575270646945358519861649223289948496079047251088145599739777466993621773191772152978682623545512517947896723915099282557561706266875015910925346890782837847509373109743754197320442650007906818336235305155229714397273897361688650483851546488267348946204284802735497935727575630019245387091559452458960978526380692852176023002281118529068160205948558833132014647544559569067507665298242356833772630106211588385975649007951763079206798640220248335789509505959610517554233316179133209502139304125309909110792117509491153287068973342160856552489814541563593480014789905873034471582955305007011907462896432653665421918803385969056494997199603656790118050787499966047474070165171179600847127927939095998849178772427600919423485673626413611780556147881054495812330607307511942423710604163250781113866004468003108313170137627704468104591007124349520450520031544575679262323930029242766726972880771775802575423770249299317119456597911198281171862981367029962809451486478317050948673200382137138596746894166754193551586309849131296923137227703321250278276442306581186101223146592784834514589511416966597733110466449794607806581834130287596895512505464887312362100356199607955361017083595166426949810603263278377178301909161391783850828585784350667058763480657455793119668643044211664269111462991991751389597680819286332257440551271945493473349775064817203147129604165769789944113795901401267482249905427904247820539722180233923129880105702033768641765851867298323074506618398256637501908662987563038033166215093514155462742859735699066023961192672960706517554147902374869059783425735266972026291384810355358586934848640903849963206766711983882142633988063926595373335864326156777755163195459843203528787828640982399953252565067136931992823387404886782869041499999654969004820001401019085610199274330232926011226969756774104491976279601910169884291152130615981276998895397289670776608817326118373635626239596162552245502483547402289846559771655480032000926831462916483096089886495543414950829074861277184799955543184277403712189787235474861665081210702513566093264180388123358013005820633816676204738413225939823012087133054868267333701737910288026168057768727336092162515470147890688021337469700801110800202113942966599887714633333991527490989622892482371029763724307730811583250484991714264494991502697080174906491950056293162205156394973372888532322728341014434923918484589666275623273873270231134966018773727810666849011327523789598818781387025892303981395305627347732748440188353331947984835933507256776571971960782979588944190579206594120745440237708849034609714717119263317044522855648679143107271110397605768560681868411650903875293042712901044433560819499722433464604132921693583080202418435459951251832153190024300780327992025949201857160079288136281804791388808970054897324726186678288169842456357902264469519571104815142889404427834140420329817064598724292901466037286394316416523475076484359496119526743656345288543058242758412798926988562778042239149502615300068929133418128540183482704104523935269072477607880694305464289057376565307520808295451582715381222319138410933400079317294539069765548878493580738612268912961791001868574412614319765918563704314331277826025352223779499781743016949516187936641816319590129235865255965133787132178842121044260091434185130576041260644351222293220667490566124041380914764011683673079052100150954691522449447732562506070762237732335779225273165821823728466529160955467760568341764740369659965947032041183825174969405856588305183660995143424311303700234028533030636366010565922626578923212654990623068363156491010398358917720722784537525348469598749911634506396201709807540312383599633968215661862816599380644580363019546087491490356711092084420779828474757738371701223877138057502088327621832735190724082774574819638591221907721720967613071480276825125888190888622680367344967754405165616939370053216716167658362518450284203500095100223744298412968788416365295080613563793330238715135618435263917119740032582489468770084939016656273958581434352295008937546172739848601759405882612726459136676115554995487977257782640418971408936249812043280301542111865554819900121669528667766370719174456891353193697355177248199201406945752483531959907476077599041883353487572220915372542081936759954426007836996932336013908394899253162422607471118346446689666795102280442763941517667914975932229080807895392965663306983801717616968584941984380262942292174673554657992555807529930962710491235262047794150549477239108679924684852070976080138322677687234779761146261797907466949638704381219074489252664725819199388552794615844830575724894965617931988884556435197421615746284117708057341771769472229039544641946851617850428595435965948559749681867389332451584366567118998649869842547649052431850928652922617233666208908639754524829010585019096768080143007717994178747218136345453874666070961520645220198209394053794574544257427044194758519609821641788050291345582352407008525105424587539038840097767164259712240407014773643525948005539607253072222781093103283291067399179703478026465095140153364060613182001813313287888354619149557723727393426537044454340984058256034266324877957270186609739501606017137206587221650983285299623598489850745952976678727142252180223006435973057892435179636509067154285183685503380182383041898265774391415055540129864864905350958448906598830699518827369711749007708583196753959875094427592308836291209380378957095705627062036804506762416591459731358709768890878855969554361389429147129864000554556475922484358123132304197171743300081894042505209568581757758105008091155851824912479827914488558114202089442348490666378510597433243490290252265091336478695922588674927447319798560572272791007391823908040166996556737346037359222589200220128885276701963830196832318980485962514157418299579335208183897435771714909261964116716334714076389071332332812297968103777527228025139489687195816270817875427816211321641555205977366971760303279013158108216301403363758403850610274899117660712705091308295731829094760259529454279231500501804470397791344627006159778130034035432020109599777408192252678322514524281461240525085471595138779417556366214223801038863951988300512701208233575592985927913202237352163621185142612418883655263404690779693542783351811452867211323516989760685854448376065943252460688121012823968741840544911116773264405444066570532110494939132957793740136598913945411600620460754413247488312930846775841447353087575262947104949284814630693566429416370826196143473580324594871882085830249137132293498793499305774493728734781708825651170822117663362526720103489358649073669717591525883900726627337426933132308039154342393010387688953220605156804719715001544549724265401602294981356809103018238271500366460721295349603441008573473931366436102661607345470104220215045566478891439457160048466989150300947867508374844195073566118945991044022139849061242695153660374189705843267066382947366345338989336480155575878423586862274465362106053670650131986409987383493381322047931896855392737095404482381989249070758820956098429908388757744305885709244383909564529362985401565120906791772151364436138509372091412117748863220267256258523363034890787465452396558422446200989846873049108292489442112532222986238557553802503361918825760426790690282720851615318211624938540673736389956196861031589489055103094654058862201990939497353753900916762550694898863913734864099068982304811535968857002103612027178486066594844111946635247388346710342271741506222757609837371600067898713757196046966565812354429710582414839710104101487543447007585253041415781833329816396919235887271395398882373356037858332413720671720342733808920755061945685579790680578607718586532349869411644797262289995644747221866083191680340809421205616270708649620116227677228384006115100952110160062378652789733176132614372203610073204349385458241965678265429959391420483118254514887257651603762621376743971819417249158735165915976338071698873920695758295012715236975926234930744175876165793263551501722335605302423035333459398460486017704838234279308373021378881004666399619199860032030431447826186052037232933819792651041244315237852451506998273733060487992547349083777443667205818672713511785776073976721841461840504131112256441386601875944067313691225287590490030790872422396523392156541577244595089101714396914736967154265414741233592345331478689651524165455530911947682389285796435972396397389808672848278760992752420659949094992759153575499315846594241587248360004009581592696390154402971099721419452312190729360779999381636995559386301018160438442702621297283819502944612835476224242361503068373938627542021413845339834958662856347071394685921861007047328804934098204010299243846261009485083084726959149592620850624920461678527008863951659829529741018854568519085836112120495054627355488726377750941075989526784426569445287179517014842213974320975264931873697462936079589705570252136820673734274245746283465258654277159529690373004449509950791852966295405226991593595366254971906206861401392707214924019363661772731919021080434457296686853997312441103036167287522590921839624975935449844565557020016840023374321404612383233574272497570896916626280359904856306473642357285819432007726284226100196995418231476096291250371389572446877348578077243182381505397959155360432626478454090594992452422470439321774737153372212700343534479191075251722205894203649214016473703194360013300901163092951382868575667664653298427502642817883376783375252545773179091117852997929674742386195994562943404572575694806383450786495235503744288918141261556659111301602756718172493387524818658846680312337261309934413935600670186982013867026243412398647417525657185465272267611457154051345742852736193632862772241706501984849694674082369706406278516516562449205625048876531816378880560446749439890571152049325172267151256024610284459884504305505399854439522688175240144299739352273586301855221829580224341670695474582980027188235407034387068228557047103690651478319947935732118664764585255179348322181549805664443497207172888565847056899933029089812864621736485093542858415994178879009841844629228674285161183849071923807077100021376512153550093221290910757397181736455748902678096946295007174317374979934259356421436227492631733498600394787017776171872462308357076755093303224312363228300780231006344272072104318191197076552193031896067767963160211488523013734543451263192951536880574022961454780475958687322223789200446974142802828466689879941810015545936627322554824716280372821528537116150104666652485464236674972834223052613385640045753970977685617556659723613777076853843376850280387167902130642677231245732431080358211048686903687047454205005478202659776560982216127578941456313617037212109536377289328029930480905076746431881326090575906176048072351253104337655033942281635354788273218260324986655104653108699837596586575153541891378592245315737905122177568081718800134426316556030604852471763962599551030974071608374278952932075776910385857776531314305435211494596956535906195082739014675078469946300779936242125867844833162620065459137241632751022449136936228646615367057843152617439358497610211804255849199477793801486901672152532194129165961768628462380196653353687978664757152359220189012400955552632407814014869150225438073091780415517306580119162002032798825703099129694128601054521570589829069254972549623702241876803100277612869133346933938017766804078172338993934062093688767979335510592143160972011767702878249688253212048748217611735164950201757262570672440998691821082382036415914296743141713765906223943584135339830790181727944419150102057891876834266965659073063995794615984095745317287503055871745032229798471017810566573650633764058872448380777680602530239152547400387907613041070676590921466591746743114238996164550187181278117222186317672828640627772711125110281885084354959834893394376609501628379557631362558462666674226154244568004454422430231264017086811150193233803480069228424816841655252898176695435937148514678378638676383992211191684754799246756568326731920051690779471386919781365696209888941905796841490547134902579401457613835124438827836875248725050608590118412629239850313668935099437541537011729694387171400569944540973806016483226236277184731108327737888083419741756527438140884049950987119279083730684861097178833215414268416023058703505219643645880400318976864425026753607860534018827347434925049090621023586595121282983868308831515563678555521466149136811937086504288193254673470598139505578266508713625586776716106716759330798316589829616041302813661186862430279791568803469949744717715035572241850575897922721811332986957731179303764347444116848443859135474099023071322364398626824206243876820719867089695872875345835429047454687213221502750502515572388904799455446832133106287528364605624883949761483948065647299983161328657484965591211061020434532713674490818437176558948103891648124439389566554544851152740398304451249095632084991332760299236582719798037041961983300790461061315171458266692069515682139065695744004397658248250018974384871409687628835579042095950282565119088649343126086566440304357777415581532101146817572671640731293290901240116305013290765607498701366338083384998064778142552060531042718936422310256127229260739652403347087726460878899447193833268284254770403422948100463873858764497064634613879126318843728927065437516270164599783000113976077813802748260502485073309229809492108261826359668780701834559789141519861861681167620385412790473939463931248671493069167666664478610257104117414739725375554527876852547830461036680269996009278398226481957290359094875372710174262258341478018044139422161058282924094228490228670120074177171962618578951161022110703819470247231738845108231256873930603689535557156734121999382182368591410637999587205077340870448740401452276995713074731966153467092083272402943409509843927922501323240074825038204690293549223028937863863251265650099851637182957523715547622573840706894951302848984296557887398128253917342787030831636024109991259806648995602685973393193940061045011849199557834049309351013429157920793094230512921031983465638392254391327412077424421660532566854027132537685020500255556555928266397381732989505750350569438861548707029253314366324776223534167278537517777346573345865786356229437411257991076237961421962837953325425466509391539284955149066759188976046534000261489518203439221556428901936417730775636316849065560921611044356536319856158833274898670758410243340930785861862119605290396813262365702490302941692239121908109332052840916693400045531552347302054809411454116922734688897259018817152091556719617265191005118751915514534673526503093778502436425566288764385366996075243439344765345544590703522993240120556084079028459486444727053246405413271532180523552095982919684884031027753420888096453315034693075781175296792309363815236524922185030060509033107527981381264568498036844405503631281704823500883270597605682174653580774091431189270017289259775626843583994853060653287149656709637774869918993842646191599148211406822807416150122812521538604602271943831470599622435044522194189494974610640279782526613619284174920125735167162489505622339013734668847109527228877903760760478367134163485295707441667048763677915975178092992245253034601891300504580260879147808623004036756992169073025569023615073550167732288631079038157418941073142606639791797693283817663460768370225465880462872459652423160823557901094241997525181103968791730198887324409598649498093974945857479587432492595581868878138134055221455045808580288737544529992855843996391338734103938440009592805588495353343261925453890145694124895221378555479476198935618009372703884709827683443788654766689502037978323803074251149718624195921000486977626320036787936361988979512016648792989870865068509190328547588882195366389545679093330853367279431085636040481809910572535950560221403129877513267142007898531907224780555801004087189053845311385148578308844120966181624042088566500978818854735501690339375210900679315550713311584365237684483699779211839195025089229371787257686639157012126304806520358741360079817847516054422685078041012666826173597345902068916129607300499320393832133163892997630330758491291879618068890538437561591920935989469594476084820454045977790438004838656685938815476696582958955992600730573367981096081960448628073555466516788412571023231218018699483161020919666409599069434547864542974608575177988978584167471676073569399703227484912744061499639702898586028591707446660744157192788684443126580362676369095016785516877740917406456940593972465358120256526828773748353834308312536816272242154079122323820675749890843935344288310438072702235448892838418934033866149508010742259048333649362761041946770385943715735244443733573927732934491343383178744793108914912305795154682226783145738215528798820498077643469905184396745034857259368743795423714967947601267538235439410466548611898704318230830603001571516571273170421012742888195098054547537992131935991690973659590184898008556490936343545757557838034249535877907928524675111272215450243696259476041786728697621768373681828061008642845884842292422977757100203159522167835523886193846007090216186392762364050105030790148866702458006133480302929387444857745309705869984050173651532497989079158150583308380918627983366773354625032033825490952578568699586835792549732321853802033568799973251222689050562276827118862145835487902770065337726118383968441055309618122167885124393757537035123503120135863714480752541087484349669624174223931626165013665498596482274148546445678495002081618996182919057469936681884857442617442795836941203405147214600625928182082486192540705593740610214849536002297385695199627673604225999384698831546586591247156179459183874472413709763755806955174769128603367399264355986465387110876312957925100271313105789755044329554114314978934337864062614537198913358720294564279961423625027026598817937733348323439680377536174483343743506400695509549259962941306828935953933792289844113137666079307740918631172428117835311759071558161022229058022025070938591397630813336776709624890531255276850648292944035154921312078032305520444741732822656823545379383687823911821226239756739936901856233406738331561180293938081373814084638254559868397933136764411408701392757972131170657531256212577154565308420114969983641021146969036212250941239382106545116006807807329620342800855545000108387018252400829978614162046760505040302301444276652861847820209923400634198842429033363393602363762108091984451285300646114253785492797989973664677214510892716642334969122105136793625794094891692161874565646527552382367086867681658657215403120610053509665499256510085385193375227998212585269200126441942003690179224933788704902976872971805755566216074148788629107981906528214491044756253335280381991832277620891456070640697870703441665227920349746753688411506633974577944381363793493250727093797868900622693294366292240186417339306544563012630028409745797411726810364571618235755985616923485718081082288361282427622479487990104411474567025046011374263178948609344080078272998940427069048632635360392487777786322465481933671383844934214880374349235424542370515094763617848801278434860734859787310197440858172188036802387707575989646678427711164318570061450041562292472179730691171797362748582264513886286803234521411912681186979393682634734904100555419638917542275896336109096731701901475565965562538942458213442753985198076077164229836422118214805549624425467446079296770234594359653313139180948354858967143776114720123876544731314580102486848966867431330668743734008524231614159306302865612625298331362029304164778534360413984680300562284190300768780102218528907351814252063050550397948798743052792238204652025588297753536499959024758708332513103521405139735810061365998159658459236072293182203316553557320389634956368222204115429509490238662524533260285824685783295023036958103485686351672411176660680555594387773556430935211231017159083189018778515709043526634291778522550668288583485097296118029505079514216874170829189735085265993995421173250361982131044998023196686683898035555614181466403546371460529382923764648158655129634829746977612415491156761161176905959873688592219171355191675897672796464808948077719914316696737743951165676603527257731216775256134359096666900511060037205025554518561872376755313048569311874670493644353256481954127731443458766897046538428603095450039845832470019730039804777643271315447104547895021190862851007940039213243410725400539366303089898709085748897677928354824741936770942452569282270283431355280269908181454131716479338664813060442619096339761237944759662110579315285465176638350271647998565003755047049052481242926073637741488689758074531923675048422922268945568761951130943401218479384149303578818521194724144577334530759039196215025838855717151957426830134283410522077244768863205891917332646240072139081816544170385989513286683224359050976263695652889850117126905556590850990017756629343342194418122222655427000591036467923631784599998681627826689384824648099227648793505264133242331642257746837284720863467899112576616262246083695782187923960471562967877463396719490456540646898195499951850384541523958068495946775069999388352331140077088840243901292188561274864034187588955304074299294730748865957501794486185374194231199133400562847904793546275086704339402079870181002460264230268459570947814615214700391175968544346428068578221558770292884071006525416812102619222765229933111186862022662134302076948067149942146969789073082100370662074834689184521592763660291052177126529575726263382466059246832923753395522789949413664479495627228094897760317834237848050892457701521468188519455320053674260018867322495262674319054889623189322551559764279823921428289511845865000370040282083284587386332120476045884618953095116329745275069748497053735711416365176606071654578937249608192089198483509653170417869066888513728627359149366036750314078346855925240100881250592813183842390900044779841506639819091393658943797939807509475180014174847404231430435918745925017103939378734331340620978982388173513699290261194118455409356263728633266173636305294184672668479210419937400135338828263092996738878570680507857386147109053120926988546600339818904943893956774794075368200253070745638432864199067752343416259614165899877293647097205991328299856216659493141430772588535681404078058128232848780613912086732539401549186864723596212362817749441967296402637756918889021973078195960897012229422276170866067164736840908246694612257463880401953154213276695141553297053670177997739442281700654311081033503625320357025276267908717862091603878813580538288141861069661085123809467490423449063397148391151560708399852012471381280982622134195157184230208959684983891802315084076144997254610469552840774992581098676021167347634915706971539523494715764386795314936243839194075691441873435975855792758537692650430221656042249741685282164184186229248047449991053671054919765345217064824285690797646649985994569905853760773350149984886277527019598478490652088988231037678150809338303990796045358778318220084053372656242613613755129468373714684455034706511842599894766536219721817516357554599153430257979683477856002744453492918647744988832552027606745713955337187627993546155127586817668050159527374015343936284380224078385073831274790806281568293200935804491342685768129342759571796935494856443843037206094626568561541971042866227222697815038298405594525686052194102523721707937620531839471812477295096546533458094013432925506365200315395395769616586610555728600666159396897017535474682316998369472798776588889098432736100990094867990775378669321895600345896277461733523994541420863128333482988870271211542934625992931297563641569072424134004241712052019116056762592293165109080356816596090826539746799036251044201132337317282906678704383224827507110781242209086646748469056042497252069410962054098011444556041619160130011261786565158883735948095232865045003413915397211126991711126392425627923120207566339999529330567549207897185305411052242755320277013587236553499729866801335888826959449989859600935301064484624306540794099973366650050270486927403584283658569087273770600345083172631346683661653673583218365386440453715059193738516654206247937993698494554343244832047887585914817048828892445666349251892301769764821968832826612534161041011312218403890754135957090436919869856580290680152247082121313492340607758182994917742776376746433828684781330559983192589320962340415530269768314643360374343581734026316516808569251749369120851459572133583811351219480530455375993383570527791506425372605009234493823147026724863598406031791419283729585281762042826090147781128823375727993288654042673847159914100651924532509378452399989744832743899170941221874224473141848730671365476123473382045718837620169047146802782918501663992207722820449614979532638143855664535866321990527395481095315917379961474656298939037177753571810038912354472733281264905902024294794051853378302682704217936004470962862915892338782088198383576240463583630896256861658319315379800190612823155641703452944080632692058801482440626051545011037263613521944522545224665862705520237155040985220671491756472560499946956233773480064126452079060930947507021253283122930217160165842664297031358752198785000069760009076750014027937735533261321837452469858076823773141132869138672109130004327076042173166890777473769586588762493011970400119066433640033593669130273524778562004919594848899755509169036248850340727949748079218943914074587449456190908500533099440316534516794125656208785443590879822604983601058172130489500719955709124793483266445495704231980745516828478178309485699220901038060322861020601605829495001748734748882575329598783739431071350056220277893827728243500509365876743375885014564630712653326403921700111284270926432376976649190667797941890847636393845060015564775344612408411921115225359452515720585347470289381823836435744731428355097292614559630436373573648112945992612624730792382646987222664593439506548689585075991847161288377053391066010150158765811660232354538006770729008547668501577516448395022250688177355402132127310032715784992090032420499193233830137300438697782446529890611651715819731935138780303773368268416113297339786880101027044700025434387045977127701900259603530658175765521873108017268088949232542510991733319581482235396933654787932218368254254150871505406415180313065227778482826239073074555244561236071952984729584664587595609726517647414399765913474026068133192364055049631695880223524075393416642983564368474244817188848611503321398022677156367322112453488179392307408893574940857730590836308280415698626851863681531096302226897731626481302020299153607024086949341397250174774644855494277467067463876081117288225490016590085546482843425035304997674418654757046140479412635003938402218612258114967889989258000179349841832079955400943887832877650378062121874112884395767801315574069344769979125496047905738326492372595969440853921794816226041951970568063505024772602574414978862021042612852756696297720234014927643513061084219818846225210951519789522855999922673150107614879172766546221324290044595704635593666585927111221786325300111460804689571666640374656627671931281534264838426952481509229476399893878232001357729945197767434335805618306125008753743696598521283432903148672652172520783518588806664480110596681667294862116296857974779269861171426171021818028455342847807507344870466948247189652783385360287455567800002734149887240671992839925965835067285860541586669922812313460089834360445775028305123893323552595177326468595318669858413073376294618347872674608117152039644175415444735786675417683951136113120922765483707469194562911813948285991846262095648590178906494723324350867677547706847782952297531770739685825244251503792321250334900567379005025845890812702150086326738594864529767693337099278142305108075795774625971692441276883718196739387284376520983887288906517388615948013236172609989272878943833829622274311431777201877277403953093944543601419876844767851498084108825653952601826367419270144198951522383472327665805128019008425469144261385116434596692207774365257091591404758349969050316302289305232135151432460520738000672135023561055163057209783826608435719034044321499211731746205609480937927423609749203387800999621921307267738420497062338451079806316952151389914712777904882482403853000059240166346245113124393562295416803781349888423397466320387986691197690507906496139682452417185865598592110794019060801764627880437967700561342639244078380638646883753596016951345321172159096150823668308337573325864453849262118491059926013020556095568383071347892917871317097335408398075105621052499428018526798718830902601582046512603229836580384891072642354691372666338004040127483834424255445477898632498139809520739609639322745765279149055356840712791426713241060254841235523826702382457423545935483069425118304268135413523753669073734126498109625525440080938480367774535293563759944012234654730401649477242976845959410124686271462637849049128576571137315595054249689947651295946374846519299590160950650593474453034048507468665739204080146148078829080134623868029324968269581609357765096563772219815055315594863507876083699811665616808346468926495458313102209601071817983222528621588709819699660845804430500182353078255716023064850540171055648213414387644757229096905377919436372461390796616760934148431748527753294307377730050645319980798684608303429545445679925249434482182969700086936487332575238961283701733008791252651328921599813021882833951040926359700417043921753948263432344969554376036817936755665148033977819303755730947216399413910490684912044644327100093153880887998528191527238416745266365779269598189335441407266631924955768111503918935582944318263423296066314183465166678769374965700846281653119005684258148913983167434758248588003851575609220484532575885183410785111249733673345696125578583028817255549980198952910064852455503727883799621965231192684704902226205018066907143205491989337454596522225265155751570466510371980833946156919970037900619494292761180806592144502399452353160180262728382562146271070828482232885387628423087837197971011638388506449291285648901525160090314094847625175772190441839163094002832074161978983634839937620128275113595110459795417366589642414496294664705801888243419605965184111185758648264731472319987873047784873472456192357825002234290062420155138406296898636763214142728105354643325443344072783756751562331967169035396445350541492761052344173269067573021851836245501509675018139808783565281276656982761750973016308241654143391670797558929669605603066113317046457516877981087543543879444236258630705077828730376470521188377012827637680770831302734211641120561748984837855662145766294496121546623753071054782532693431848256904303368888281809116131111280414886309450420057815973081412905468595363210863511809021616816289897912564157545458975254301497538200284092662084695992836344571815866085095721492916664079378819672809516465553981345100993251928097350271660890127364895121136671333045652783371124580264404924668445703781590671055061554491282852506883712840367104075319942483611886034253763873097231579558868746132486172153668120221818758620622237027928032744759741948147007790393281530619039531311397748777526013204564104318419852508445975423421688309287620391784290292785087401138693385185461347231156435189431764385270601581051997361098952032314207553967876863690938435163558516901674053991012083699892282140300501462514777165908119913516643608266586714307533906932296873635077727849678281674471793755444970931597263635923356586458221836853338187781329635362539113887551493042734081405700929390770602689212081691218605829673282099196497988596572309151366590500120503362446017930738107670238689344736060149694105841481133361954552630162725762128994355384738377089733722044757427238578877443055477865119735686450785878705354092959537653091725771826149644890934110333917388632944095672607745989954465344651600014593695860179413674992993625405592626275590510920945745971497341663130430507317434816768768646008919014269444285202343245054293204775585905399492821478817569939658738694188935083102480709102128066566694242209551820500530914539526054172740340917705210667390317515950499947487481657675052549873232243605351173914439247594186120933728546307517269939132505626125028269359598184666362858924072754001386295276096962012417735390584422503719121049807166077162284265455106621032229326056345132126267433954375295722508696421369765437308804244484762808424253160692119973338690669186914355503453054675986348826038250514151261939280037822836308710611831029677740763704730028467841397493557662649335281312681425584597988642305693461760623801416548916339430442850322771287313750862904497175396460631000743435471282991520368664440775892661734567177637526796418167000070344801146261486200823654841709258171003750463082435266935067554551042113614889525497712006481690194316694211151080452133012586470373910696306875456674406002601944205009122968467429529773399549546470773054647006725529458921279204873488988420176420132336816322936714568860636369058152670594835720325083779395389525101423577654348444774167374770847656080697747081346874358788533813060984919328493278620630177888282480556579377232420499551922822021839887691891667276798888800672912847683430515619593537723662784363025364893840107693087781019582189634683809621493173867169235199228926593207638637186337385188734300239500310619338408693760908997644539079606601938999439678631159197605311452332934900363393907268752479409338481671257927098976464413283903194967004048009588207960380308694060476764073583846177318590676466239281945502488634133194056678608605920453394632910461763584874615102197576639368102329035451145567248633884969363557495399615722971069018809669333050063129393072328150882764436755292253710228002612924430095896096381860433989046036497891366979273565122231404488560463470708298043631491150159101912913126039103645815376869996994208120641720248400999834460882040205200119685004595262391792527462855373619560671588672850566157508553513244208414659175923233340597850740106219923380475133833015631958720541278199081939169560233650097986740704975535727313771116400718308617443623510864435351315648716746800408566335016429603502583136473210345710300336593572404422016721253727585659490588516369687451633651286870892921650177637171140118587829016826744207419783736551177234756225676176746003764735324207744041461187844859637500380289628518523141753131644551720196396670908241539534702789226082138908127513969879920985297432424444554604161425548187696888249421759740220963576103067697833869743176166570458249889898349718487169502678003235635254987631066686831276974510562155029547393158818278040045551503716138142012685089362485600224543587581276159441958256269108871810309657388898999198401520504207622939176433387088822056527217193434732900781672177950007294244610860145300916197080382892301951602257517675378901402750312199689211631828547974544176033966320897878287883831415509412146177215566688130988749485908201237778139856354822229043664480570132844248280185526916604958229190509814057506116641667621826100035562877905211410990074698659045559453161674777958396093340674336364072876993654249256260298140373633867691443121476154141391814175969404348369384315936161686610485045373396902098941919150209884021397405174861093062713646396767638846632201549030194325888739877790207868059957631978023684588263426989289772887870436774586563374314519189067287127379527155400692685365515839759469998867583909560817837199257829357829064744685026745103433660072749012148060128271068987784101658246670591747890595461136574380067720646790468015275180903246610537152406230922130674766048312076565939411166506500787512367189710572337032043981549865741286742983249491527833489175804717269530395435363292937819050921653229683564485938227448170299017366852810820634045878707112530024321558701101292563783466270358829326015871347720506663629584242628192882716457921078722764394061520562830051194934678990261383390806106204038091776794528099619804151412207360355986487151890208924069624890771749186428083907522228938077408076699551402690592654261822379089787589443313594526502649491521445872434618817073533390848372973416557559582751130487253497127209480523774092896698365238005580554021940822158519657264072401910291437740640644500985383173975399918776849145183144369256723873795588632956623853542296577585384111507984615179931692518499209208802856482601284232385267239249238680609594359531645782450721596265059775532903876342879953355180617709780806551211366512169710294586408298104986135387112684898210092033070970104794614188640882081893175916503961759524421103649767531665866097662140698646099066702272052892611958181504893554191276993274411918466211108797282776313884298894330710888794542733359112396486806444732647920307014483859588173535527190300051493950642530421332768472781406003210034730728725722483575523864434514168378462053254853137158527339975677029143900096576088637337880403275913270821683517675198725227910898209618015792236706801532469047442978773832670615337250548066445926667944497057555918714073747051664746350612424746362937240826861908563043835824245113660663591766585581656017979236126500532253864195647163343939149146128765802085239662838758973246525333065832074623386438733768511228481276960316103576968347768803359455295038001261294169845281674788416438244142605352153447910417598346814773727254169239046294570813983439805761434786925030388621117300025392768396946243588545462204396573029340452963034706688150311646090718089063889640227042634322665301224324582391653781811132662701010299577215567026771803332092234233347764517935779492115267683381688015359382323845188754106556979625079968209808246190196813154079790881184729085909869229758095777380220857484772468581856230041351690349714878759390524705288580802951030489830242922883637897232817134601400101121760549890379210461900795901184396384349010194294723546743877863659931566859016340973023060584321403165114155877567970721073757381580972905282365129434019401167814574463112776373499712865333509488704975766493499311312172038938584960951566136235593567717477630885734685881738081182235378997377265817324214647341863989660395737974760825771701003742233729823278762800913205749499636380253039225461020608006867856850408584335070267133667721929738885134885958338278080772297109410029039800028441784425389090834629674211525554268776843934952687020644139391639936394058544884717832221889269857241650440073334519882736698046044698996502755577487303758627816612777976042869160635174282508943918709012545823216598383383485489796526099150017967255641516451618927277656554096336377748322016198171471885048515900566876182214563631625820289151586311213347791490962689538827172536483115281962994445472642822893338054974988754931403189639305629740929428028918476894055762718280805444846296146803638014286439553947079155083349810209130096974858803321500621201918243808493279214059926632729142181167580131113107843270244938253680987393115606064880661074445017157974789628138305685734906613799908178806384961356388858361819519438428566001768581974468473225859658390876084433689523501807288178273996307429082351600974701911384824564457646343592352922447440562825096991375104293476539315024012791923484280087718849875776221462947269209189011410232503869295983482531679054077669460257480467791842389878353205812942637579697037362120921729565049025054333127582860137062225419829239506309174977989662998738688295363165258223117638326527816786122074447162628111835647532488104137398642849784532037696634348398879280305684636757994734705121659837014334618016818789652480957993351387130750513649648406330986936319870947570711753072255410210255070700366135186071827281427180635790998787440573849718838182715475621835961459167929719356705109935793570304566085030354423626085576735742437945870068491657597650354158476454716768466161216907657334030617421975997760314642998178143061600687966927181894520742374196051605075372317705773635648482047881746242962429561573745800506790635056835131781669215065907559226595251835653413436802253322253206043663315414900343281794863689488238268086567931031788342308294036538482851873189590641220190608627233836744238709228684993696739998302271651839028391605882096022751020296734107531151681648388066143293922591421886677080112085464940110170240243125708023907270583186442367858113340628619865632442639366925054389426624459075194281371296677581137491229660357859767821985669211608783775819040259966670769772976761404835529721092151020513491847220647598560640158284305073920629412003727150317645839811910129232882786329012762814143530479313408581255580257067270597733864252748620679765765312881842930025938990205561225404496153005814978629085672385444099670132128191002954124927741693553737703753688368691813354492109395919270850319121156284515020435573916227747021691785346155321438508369480273720806626538293481166769175493070357189874171045899704741828406357052030752366463106105468718365377300120293974195448569196838456141425491943390340852424097948315765869450319384474019190142026826667920391086555531463996541459694292877762739995394719193694549271790366226564467042443476013465221164550389089927088178513878533717493201639369732464146233494305992686280339969808547981635565688415364508395999988568280775968746341542263989015813681689946857731591358575832689608341680804754855301066646691482795532020699086383275111276807062313278462695269618905934423068599856035645140334423309293113823828443607257909830783612030487277021774785077866199612448305595697823595263881572075444466406939881875980697221205175239019726931807073427395081341470569196177881469799828396546040127117055621434841339435141666715125780491560690118094017852039060493774393085291786637552171275447882146936947335461887095495129774512139035074548762503154931165928387869077015085218288869177455950933282816236836814474411849567568916841596930546258295924632796177425741586335238436697361794064393095248582912460109826108699620317666999955632193790086059027168565018133956932749482297153522769490464151426777518082446502702343721713489847000309689900739107240808492034444148590885104910490184583980952328176938732509163307577396337631685837447175214977515166214609778923060703550202439240444554554317481439398315920119700031217786752789580078740731282669234322525903826328116668826747964780943818722037359476698243830866906394451093947973568431372563257018734686399771912784246221822632323729596056295070527560740158154074160815371340172805533870406277561994076705153604559039053932824737543941361198185973476389216652809656658394069364729879384690108485734418749753031776745913872371851518204462408337640449705723525948346703677024370065579397376518271263232865471977202144710784637048902415657130714993582206763698639221585508738943031049739132485242292573567798583091962925488949927983190140657186192555790583973019893760121818041306447462625764039552036408435120515966512764938101292309088641147039510719326240961658839665842214936746145924534066972690865522735254624392048043255729075377902219538073296600821446259533323014884948848046062570465312457117513935125747307708108959058737568516381851764226446156439698328169674746163784190722779221356912045961991221671787507088696989855668772613891211530561855928677438292498180975535611235841144699032239204635039265307318841487906698999027286947468098865462681114769525083210107156426855154787981355704286019590634075377607592304344507484925263260870702351410596624051456895381852922111587160179153455043019483655073314998381292805181741216845567354651364869224980159318013026011831580353591042131132131138431531774323852054846889238897178229065561119554453524714775203687022420262432097418809859719229813710626329285847811384414850918161176521596208547087839390821854176376790897216993156711859118157519837916850793887024975103325017814836748699480624333778926631003789492618060502846245240379759644462822390821294998425469810643359957952677662256042844567787648469920187503276203310425256550055784530727720779228336214286183513680837947357792392100985918968341177660627097386015237522283288337764833364496406076565978539977843762779950459594429481993895487666136643931814672028770273376833549687600920709652491097043406684090230372860755084142078664808105966736941693371452366760183737264288678889843599455538296014855879284828002650150613596839788153687031232651371616515139432269856457826534204538083351154757904685647627772391525183285464409740488642918348013699470285316739225592742838173399304369168849758301185648381951141590875171320511042039146739112896291481972091488053795212645716735881154482946249283869656334461368261262762143236456226497436729841750239511115258587070791364660029826075485122596527314362105031355491999300441426988526277364760865772479051535097627470778959767043961751726252539393168733240101730991134192547979180045285041212375431074240894595416249148199802915068009726500530784883687881121289946355022401240209827828461074326222417634033450213452396075120966467106479310864459611658413072244959528884834465744752271632695607841213489404847522409644400278566814612232003078206587100606476951573438895379385590495683139367961065380635187722230242608862111498949782605837806686041548997361994815597278791072293755002623101307243704451223437124054797480365722600386246564271972229870158673136294727682788592398151465029568081317996546894989094343547917454291974645197733191028311112404209522932434053395584269788608308257543575604313299740961760056466510797658878291499872653213187771004559747340629820543155070543741898154225963972719537551384138998082622065161199730419585563323466981058488620066589135033764704653053202481095828376524801398449364738859399975736934353351692158328592913140367988911981274430639925215093835810704441777071665342571244817223971032486015307583915322011821995617858053431182006316401514799486108557473515603221522122029473586310297330247420099797353341044410125068100723126522076081555171969115374701476851941897324267098450018270039997567418496813552036222119642168360119225816867247705843844937014206099075117844822273419692789710308090751633468857806659103186726405112118771306754591316321056886823076117453965363749195093863473532889212371549851555199544773142794675965588249613159866097384317272196607096778966056837481773542617124422190234291446695671102671065901474738652962760071331528372852029387575361936699954099983584386635273451113301863829699993044970331789118355133418126009301094714267498652904057822604722126845836045842376277389396491461331862259254852504427310058632208518203577281562948448334093382206538327776954990108866654007979756112215947015378703107650316986315370630753167375793917338045643831638765367671304135880845102741964819870230916427140123408497846926159079911426213284420072783214313035647798717833100898847993698934477137651745285470561650690737264709591792822889081571161107179620536988301269182823818575091522690621328436844280347005089653434537971710038688985410422364124468317740424222020286148850258853769563850571899611128553078812772031465102966303732576011386037321016715410773275956691109121361487487754268239932548287366559382583040482827153937110191348819439050616289022723811063559668052426224740824853773754933309773703150174475693355585946550621732296648205427344422427129081884733295901126699045251348260574397612227380594193209801256633580535293642362593028838029841298958785407203897823202304856520338370736009512251738864709676598653766384802458048048176062018839352347223727338267894002430576760314242850279023749422070334935401479792637867430391573448698590362197192162885478310534838132681998601231346657107852790310168079716560856133521597692915039533443869994579892444760638584396543520988089484662019054365540522854582183505993131027652059225986767938957886756956744809997947102446193398484427864773250649723851632128151276595393244589213503384263107992618141712961303657062011395495700026986487850185823309821319053978511338984914633370269363805905219873208673696427816268036094442983968410689434519455398725980235295122057203829254817621014083565095853324981954159070793050764422759039393459436913442930248964420738000558184731450608960819538246636810563185499798384786983708849012977768934753734106761259213230596447768016658559904247552854799118956312077269311842200407163843369583282010532584333781336646811967453775164424450619475944986885512635573242561775804968052338681319717236146549165973029880363943726671833838418603612085168822353403979214516342644963763690391660648714425494586035830176008633164611122489086415122197824868849289121525918622610053469265375067648413857494136347161738554638450170864888293851716157163507319704988498271512363522878313901254200472760428272235375657676273684280101753407660541107067589336486860957096336873125943130014523401631264443781953256416588800428188680323753161098782970109495253774348530178417817671914335177254255852718098135040556633885049613784409766642124964642909787314414684310594477964688151999420808085589002641352229689017798674358954391785634527928108587555225611009679160368202656882536185629258181203483051156881104952650333942748656568170168780834744808626503581270092553762676614149602020516693600659879676519783255624185761703811010488346934364038641139359402180838014324616534355438938055653128134738824728658750301129899328273778470649960168390356681090698880192476681174821685314544138882638943275072642932061104723111259118543766796633116901443176060126873461578428470385625133963677966628532568654423500907306948680195265373715553419266989347062590001874060770482879817325614485241405774823747496696389620704113960587870558620033357966148346541289228886472030641737948604230653958890494843778451286952317790102539995137388502265779090288114455074637547016860853117474814737248259688929427122935230908568069501625806220385353888202515411571437102501582117883185551698853052643056235678346931772567242392945624336388432839001757190016794976421992596251735790433005776787748524299678137406353760520287608407501904712132129066521295333875185033982111812985614467815855360793129045068069895289907427536657647630820758135081873556660954446431670224412774966192679871558904408318951156123256731431746854449758553922187233820054721140682673573835665912114448549316161936919087164405041147940303081443324503734150250192653378083364833803236494012898991539307453292451989923164999018712832405046391308822412375840110139262384760476140677002131328680278016913566312137825802807994408307487407051142325540713945668108136389613042173081479776941265683282581669711334027525233244174701508087615434716106995083290054221114812238498005991822634856415812611764545126441361106445906034973675769510635316276485238183118414755502229297559712525319129465485021775621053508486001837229478215069616773117634646085078817119950534272921168447675828772021069055079580871974503220679812628416045303045797997504667890078094799682828121514672447789324829461487866886886747353012805151963838569467977160639894230376008519706452969250812497002533001663176489979036049290921555945953593475083228486158260817276006014469402168210235923542490246596934321091497521793074136857111321625136096029446644834947830949067280086548902369113719877327682302921756181854647331304467751604007275128496681691249299904736315421819696373278811762701335543239352985319257501786669492108436001185913646422352758470224609773765368770555318973363585693511519434193806713409773110808822607251338619553047956228215586218980670344128658634188545310282233279110211230594055827960450206807347825359231166852487341961303110569852506496923190623959474057717959580275704554595162416322484806512291059864295770551286178567013863144245138529932211638971388688459067821813960358201086859566094306616365862399908391948801002387704132261207913427216595441679027580860268801874945492549436694923926850193777958648737405525664445461285821775124076530786933096714620438338959422970750656663333864846573924943683870326123766033333332048273320234616903490620817932594167537657480432036294201022012098833328796454543223480851472474555645722841497994510011935436604506336928931766012813804092015106184290466289791327480721077656317137362051540418362607489297722212234651945726140958395882581902197383601956558815888907751644569581236365398326317703698296538559006455979008360504873421885289802370357661082908291214051838964560141192830028380017886710845158198557791489534104677455024575620844422308829957568539515669395109929343875699321274118109880214017273626670183214980639545883897361268057489771307936370872307845857469083676243016205830095726350713343400436255254497069290177411584230732200445498130940578432304732715593694470260367649213073456968233184146772844030252236065109515206746382406343705810958629959043008084827397605624422855101220354637972566787517486715605435491811696368304644153878168421001195258074034637265884723749386730757081946327551439232120896583923918165383909691293407872844122408985832120366973001436085829472801816272423358630277469510864163644477107130071768575245354854920248878492085431952386294779102443404641134208421349862215973952243322918083509005001634013419694683317895329066163307709193771785262780174240392459655281818923587141575257578070256972376289456725386364296769438397478404805391957740281036774479398010569008806437852413425782625955350979561873023243909596702091513206043162682075308459722544776756294558019956877566472125488873949021312631177561045929184815055444336352858671003257052620136714717783969845706572528764330381361831325091092300826816335483640163585163027669201387941992731147652168408808480305820526676943678570445780213003059759377704429088333499535693719899181469375885010591788156207306438908963689334334497500434864067022231539382310027416627845540402577842173146623409908907472127662413590372316653558074503997010076303056523793539289621738986187452333536086480021088672278324438336535594019771939218504659647912888251317320834701906677845997854273844509544698541510682604973842128209224439578407882681336054997350798610736381188888047496559700666022016301748065506753408334070702471778974435266711758723782802012176986963965923734012798162511550639704944252217996447072381868098017340890317795780039459419275562113120981574302414040519278470566481213984290493105319420151126825409849434418818975735631803855079947411028061669520876815035633920306577658357935551866654195267624108418508548355567634794424504186429125663766675921218055325966591470086730506919018463526572391389797344359957490363469019409891758741416654729483351731933275750400653581244368416228100064800408348721848994594800432641765249943219554675173974764001414802846600716812075713376120502832426608953077666016423963245202586127373361452301238633623398270768355012341069781908096118850044510643660825578296460410219896565531258504555975776477416917822627429379210287918917227262811183964656029681112061360704988745176497845193704376037723026839883802073740280167161976792954369589946159095612027834851498805784315836780151242883126296740738096622816457451800752545332960775194030089895999213273189972017189256268300252276918175830974636609796888382095402499322837882003668003313909479633053270259537902180290442749386652651881021855618339001356758905045213341776192182261671441171893589576533454357395818073839897864657592125946270097600954770378103953221784893679637205882604133980199930303387145822705705299271336832833728416973132885180283055988199723543147042433259122220349249608156788080261031599078430788395050804725469918596581379445464262818989841267914747205258813910774249295427265322366660095594923065732754039775990349507778060801695189924047887105066910299091200912070720535975922047769752703738494094546019024420462073930690612815041595567410037622848839776834314040317417034144661799462479637024719948551612062222887227818324985423980328583272949254902809114358208788989472764333384176768989218101397456704461144192124015298321117566383932362688036118770625833560158736918970949634521534391456813177623329074763641594356597109087446077812139841934872832963039322516713365460299863390068839432972227112591003720774980312241239352588793089140632986589325387186935767650109332441962406837635203348533466328227240744611854089257728716543093209521941625992010426362167697169600609469060762551688834437856554177508254173674379933083485267310751912903294893524937864507133959784236945824639004517804059277668949738367744557435327884114715212356583536177257967462464030426622086018647925031486056670165580403799018382447841219822740286827477456271652139939532276762115666967730191973983625981358949280588994935381071401981881501827672294708058586971405433180178770879893702787179098730478332759553304981377540079400855647524376701305758812553384867991328146907120219980316007194865741356880533214233333533395873690788358976465267254230303293416822262999383430828056878747486483562886513276858114568991372091203394874253246517547546241811642594884944331460861269776168892679412179465704475944273115123255659818838867997622649869326302998437908247732007343249133076221256059157171107802054289564344724794944370743591555008541945837238431951975206271390409347690593283827008345625311535068090483889193688809651793997489727701837325450319818814296111374266927376892887480331350170740481572786255423168521572247569995898336218414963879226196885093178575840658241667990193292537913730830018611825034596612263209176931899335450323270467415515148906208881007401634701684818977149793985335576463434156768342991988242834394309368649873630007553900346057047667297332793133038754689708211611375912022998771276910488280536696287447025135186730232574308109174197751972218103811009656515763029472988817982231645506999192262087863018388138184470839377384261823966150870277021678684961486020643623832253261841373075233507789827636404860685601273068169151249261169177243976737241447190434343045054633866210455222708936281311574988049047475806780338828575961125993339925058775931671496354910223679651284314299990129390844588916340375293715426301169058543317874251641565580620242809342550096989258109682049460836508318418150411956926845374254055095504490384820285516515669147574687735137664955571564106448995634583472385292187661623241645620933239930465975114093646580083227995214070897948634610009243358169214859779842842403340041432238865316268941758150737542494019682035310677947854834921376657172620834447107395267963205682099694473138304351131306408657459974989309928463983644060877444322205555577115024960173516650116831705953304727491070159974823471410413191178941194016317506851246973406027440465062169482114797241491209244609427731860134055840961722300497809168436117667544063155419751071765297631180716442069071053590712410639674506454996632199717890468568183839350475125634128349206007511711185825499582703891881357916149566329275684172859931629726218314954996137488468097957635608692995364220467689093112410930867398394896238602163900935275104971739722248770454846058965721913393131893684924291727647281634707705126287591811349641585961854357372554984561419974461422429471959384978404202567831927872774442337098251078269061300115167810399863287944456026220006164068181054664923193495892989119703804186891806548363193737195640121961536791998791755157714929092589481115281950306592241088511696946141925942478446887390046028253884870792945330964218171612865940166007536758486643885676070571803746582235700580168572077703714665897650237619718703020029533874686877484510532647546969075353865304804137727973198732785278917687382254511551296159731292118045820515621348718581071895584470749292465458178057467528355903990304559529606240652401394486020654466626827479298418083164367182383148724567397281114449225382766488710695435706174224547392917300809959261968032102938156209322534562747021899656833618622165486005690953693804551075207133547973989399591223865290590713888491122195635986941976058501547588970466296759131320653232548920939294600487040743490865278598113311261770477624674210566345667809059600890916749382510096050261417787841879490990928057507897136684066662155373495171791416856820668694851045340927855567400555607766172167969985120917364700377509789785743752906966340910161248908267089380832786266508399929926419821086046364093311970814244874821197815080093964095526813566500710992967873442714291798735755875398501136362977776196341595583410566867647755202284675830104611135754457119181205837178049367190620229587849069785745120841532138506256669140738293370813561167888966390231273153946116034457727840690511613479870437823715107596456680181354750966070608087589726984461075318128132167954850842503541491319482220662838081535824198744930388594800813191178127533363100034975940057795208845294879020295260181653336818697894744286350549047505704043361769256539013354056164146736997510375840464542330045523258798000899880331795387381992336064771821431545180070741845569882139348555179646190050986007739458677786103089756833754335717403970252076185138033528624247120911402073779684637053544379167320902306195222915570269798141737092090280176877443187055158844482791587006231017564806811363074505985389394334933845095512706174653398406819029120396857864686122483900799792717104777656779023584223221598078317844202786925130451201861262123916963588757932957528653939071123331515379669743641501494624019106540483824417257038470759159607028823782592937476707602759526125929600697190517849966758228697715754227886108469252069337054635281331045521977299601475641413486348118867238591586996035168316217507735088154128553030583675812358856450779915653770133982576346462409709417570110466409177873802686654455643680347993820609822282370228460679578462934766609339961304861266964230396540856310336081354525269314723466272029062156476163892933219447374663143616266854872304232317712114136929969039599274996678394178878682868722628518450223748412439247264268892758039770776887755024205012009135744295219643240454991700925446083895817766985699966660363369731799797138959490944857945279561124956329895997016801336475166527576797674247682484790042588966221364658349239105947984531212034246266997098884377032147765919220052898275554845711151466792559259700508385604972857637905214264651100995515907348152029596451838735440300845014642413550371601629515860142103324917562753980608202985359398282733987562100147564292467845575819432103734483291100014858186715788597918061542560637129599515074232266048690576708120138507995589806192993400658555402288850712860037211666600981346039646768994840270303753080211669742560006391668979292494362917442314168114515596297717472478056518397975749716289395421494689635494847422031791460010500379187867681626978189566349732116240523858082832892950665467324240319848878265177739925976225606871402181642272894506208654878245793461172306507918829313829921530991154295722667481974754328162203797556158255548452179795952608311590438846902752767462075092877846819240501327059492458723252732280098949587300168156254973972494701244974343168544034228843337183711611174863861664206502718237732518269651909153158283642667160740509280710868628412602227806902574012687493785337654094461988998497855673549770849355759204527330412709316023177811586853273149990963509404720016928693223403563426573231820473450420677211345857804127884060038311507097420423390405715940532839558388705200231074212107394971993620904342076921385068968732705338054397177306878479313913476371473155221240213830367022723023928541772604102354327047908493897464985420424724916655065809761387464134719161851558645610696414771492450544061826452746498704828745580577777048921657148490419636258304946429218172590934718455689469912535888878702555486456523223209152365944235606849923131346577091877332225226835681521427665862976068915228210082667793232711254244115071282425423833346530016242737930635976078283071426388974722719939447452407602360566064696333477840464367128807033254781340807543198428893512235822500136614001270188142108836457079845725406836519856142196313807852467186132082682039759413644412467363639188547871981552239103787592773314399600885352530774696753403850866845052718678114108740576458221464933509156327471071276692150886966418638598646972185077664480640200569605850803130766076902982224487599117718008392168367454062963062208252630633827295393125524844678106160816923099653715534342731876138589300810634629195881956111490510962640930354907251779940187794728531749376048253860932937669386857130983143866348413225368354467250439574466126212758905122214812685343852308464465609964878974669963417757044214166480388561401818089073125183539779596993492962117814856379584983431489914114029905347186825812210990198305907048523608356425078586167695740038305084785880466357774951812390550720716129660185254302984136150155445258887121691926553859897249662878420281565609710961071035843465392157363071947575690553000315624151312351362108493783198981173634291070720212983697472579383510913807922045322403554502775603832960129592519969154889124347404124533438960781583833082986378799712463199956240599093576046332720333275192613221542163249943870032636778324772049191698254631289078062700277740720739575117514159910036444371697562538293926774144690237810770000038142620069465506081916551176274480686611890237926741005912139584728828942850846357317871449099611011313639649369572112741358669230361002252555812578699137294299551672763964486536498604194683679552434150955119688135051937296977380642284507057723322842869722033541546178885566195483724003611912997063332699541865263287096221754817571649888710198147484866799457963777888172630056878633446035625866830479902098109320684833481454473614393525174043888916840514548404984133116000567003281939056012392639747701453664798815848296516339655470709024761619602410885488024201015578134662631977578606824909473346001512309384088747038894947273465100463250637948971976955443700796886745641770275271666222650301800358731532773215812943528248876737021855301057235003815979747036987471426629890076324057774621704690290511794478262960565708677405665358950096189410854693711587067053086674949400763893051341337677896546570766295516869182908790082910940480029534786111111042368084167638727785740274128908590231942275387845802952088711178749800101581498955999774266830798087416143811528862704362095925328847725055969061998572159959622448437437368787731187357454752701686400483723334881578451280246107818640788418193643961315257716299699788246823558626431523685421492637237343334677329763136341598169230196042160673495206620395899980431831346790410982163952748967212948320874794434883524324521729665794444791080894825813509843125688214231362967760767997233401850079583056699730736148806410245117947904435295414170259333339725216476125750212225091597166588850980806538481355080175164672041040778232905891760434805272605746195255578623283085266008518922772555246635695554205768891564572243861108379170627831432829413593641265891983475678032663742205572930989571955521905075533351047119265784997007656284104466952182623406328847787708744010335950179359090568074453669551708543180002693189164368157468194848749744144803307470936716060514390140482446378990527316060838121980516851461869331581755069930300015020785929996543081117828945094714018723029639425011861894085033982570154796914955579894322937230487624524704828569063644634007578530850346941075855853033881531069780538461158951628319664487384951249071301481035228611010891135832881660964498018008191193580059493642467483643229032470102232167293813222070613687021327919574490110303904101747120520414291710685830448723141617424484340804118649602606109356415552508814588754412483302250053374255626865285837568674320857122825597849620843031054499790160408257374586092966154622736855024966754784197526297719999694153179193675675902931902886886553002494173752958526155182018323598964898069038205117398964469631426651803375261427171024405917768019585431065490639499911005906676506686622929632967554847453902817229286787046167678917464302088090396689493979161563539989445024257097186496895080164973029433365751261760898195357502814854648706215277772810227996915074228507101686923133136475190382597930437075064722008450392972602444594641763592032024210513076322161820663754542634466171897398918708417536785945681119948382412123170414131962847878852629386317019289370828107179410411666643244478423833358403237135783330067814779921941190273534371044048518143588197992487540605467983063819490517496498510963669182059871295271696133029373205442553300516796222866223327596564172281466559166880682843607744492537298123255167431217330836439250336647679701187685450813719859079477063433724672445458738413432344433423573735749325054066270553879888489399883779048018532726428430737377195653173491403495186075572328615584887515074190549169234796658680351359468510461261492631348475126529440731916679745841774168470017214612341558591002592388119165609294652738941646408367119933438782013786342932761689295625711382856775415387535048603004708727225595103202185876533860736834597246150388367284919459653948804446875178992384467807394172737827752339159349436418823826388574065996504764825403788384776578892944258837209171167149644961442275616543389437746819415568630466228984654888204502515882516222008776658313419712937900260560379795557895166340848004993521586536830343655294574370790485803065962171725137258569025841360945488811562919088163727960644192261707444341859914696735951400013955079223689082449200851545441407073339566511651063062644473711283885332808683722956482670175327797298039470253197618685271363952418181929573471052400956026935079171033550303707955914357237248243012527532866388822703635774743332478811098890270991253291078005567630555858662542866215928960363603546022265477004616718990996051693628975929748884166598794835180743495424277808277712532278606650031195282536506033918792403030864720581786424360406479770974389993323966088350170732139703457437447794965576720219349528731238545370344241690696553116772656106220604908754988356773736848758834407562160387524360475018478501899345353400729296026150825592292940018842859649206202099915496223146318857608135694003042745515246567767746112684542625784504205621876487013660060052001071271306311804803541163078144403935033200176086294722266154126446684063877648970604157495611172653704036612715450212804509737438827508990383481465880015678392038814580813982671290560171732480834987204215608500600201122839372455115551549840866943799134460402907624007083803956456845688340747766370354823627643418953695574254959650596488446900614984819232180320981749020898983102006305647899329562629920537571731990702323492083412632991993807194130597103984845241988762503445324395753668391704809277647082362930886289524475676201593425467692266850239222734372378098473073888036622145276739012925214904419253042511459375787325613161719323878804242359263953963278086904922809519387007873618105357037808856225675390750137873942794782212649603420000240960539926440650069139727043494496704694982678771717432510846909053817925172610838871212967278569477624048411258904978284808942574756255604286809709669337990129884389556181082229267255745943797423839896367890964601842358850519152469389455067336056307820490916208945668809189476644308031573681729685310214180849609149614103636571379634554050503558681221183955371750775818885627717923308731483668180657267785004672677473204608514050912918839026913832679078698439671610994129726770429529569965158997503193517450706042498571032885081806716120013711797315805526070951119127911637417885366128195001861934494077725517199934635512724890137401193921068124567717596864089205340323275552066344528991476405319992611907536900187222981471625663712840700580239610809811925109366972950315067279815702957657937303166730586899816736670553143252564835884401209726169585355656474551756645548285191944407581423303252765966485344312529650010616602634521664466362693607878194203760881768592728311379174994177310796579920300748885017843454652978139061667282456055212729876219140116329361244507632191042668275207977905201183041765718828521925290132402371083172214301988559425934647880092212634593767033399750174316159911340403181203621007643769146678090094168595620265875751637711267204590941939170411208561495273873146600260826438544825876570148747682057562592236763305430619089533348562320249748255218599409354697540021555857074824939855764293874995127345404492364116872266225432072526056323376457202004350305457082522228272921915258272203805820159993216652369398284420794310708513525334198263174795783494519191439109271146746936345432590125946395988683958626126282944628011165423115869839195433672365374211546663945179297385297723656382856685777006676194307182595267644123921418830959967480294571615522621616172116177851284091785356676003097575456917293742259971096587628089047973306351492694948225153163791609123082908743036210315955081912173301125829567558196025022033031005075988019011046974231153315051426850056201553529549258214703420051018201244028578974264114679097794626456804927421502557993313479221261158361748082204257042002067783616336656663548117737269871031202956541546644250363069520627514543915100131161566421142154100963747405199384501255077652570557128569335687442747017037990797946309950774214065635504278012961213156506345560443137224122657613695635199141010733504843930156415296427553947178684292458731345503474141764134506613459870369007339266559495173462543222319586077446734489988985516359384465567957962102069432160913399289317630648692804792616410802054047833674356885316076402915881950641434078436171408328068644640699010540444094681990870157743924845775215820398278890114959650988369948539431795003618989270778590047541934634677320241877020951016003788770439930205355206893110900301550815715298143958003160187914640676348545989715863299411867454220613561890926601980832411469975951691407348035532506574366791163706973565784279992052916911125096720443770631951555923692670735542016789584048288060883388962892008650447409620710748387651011170493755563270164429637213978353764613474278675058674942977677791667614162369212444542298403394931882222429769899358617967063389279444234320874744125746642777296824863065578673544790350195928843556532706160218758585982263530304314110040784845785484391352158705452864333633151477991875277069726479564998050323163909853601832373494273732712372363248104935378948512663046995311716548403787172766290037074370520752060235264596935866311698205815908499140349808615010765326761518304959032590326102326193579088957583010493114837713101118495864554244986521201923550881826527778277153348448840124952034836144450594149088141826546063992229543779137554696786413195230957366639744546043767828166922399782495576260407937422871437892893872086517976557662446809685716994776932428186295922584924501101773826490148140686588775264191299902593294266496540339868012631319515565665659609122209093026417338293893525435406678236700491688192870242629046991457141219901063774102409881679117840707946736816648755052848286248151412251662356850900270883161327218051533102099125264527395870637734033054107764420881107890504843800348474816660557621767306989471763068108812755621420777201452514443977359463186744490906600609937896471608656620460961245337901382724821588297845995242309626029407001931570996652069970154782788938044820897334962266328983561453432793347870114608484101359022618248875484490277311087181986024454983574674202388867793141941001147805675360839438769442548639677692774400497282254293067135273222828946718780789647519404804417481540223605004766959296256620958270384676889164627796264212379977263242571104476218626255469514234088836423983035627774346895881824376434141099323583189059952807489049618772229488973864943710020451226961381019946038843010123367548102318054695354320010291053146381178767803651076964059622348440794156168891059102119052990303529960606568734194939746255040260100486779105951615714253349460992400048477518203687891563265115351487117094583736440262953081917884392251195113153052771795834316379588418921051111153219063819895161258311718202293665478884425166566820382777179880624987418570982145468897265816492025989079316703534099052640065189606074844774195020035669845958633748584378331983977121660790655339958699087915150328131061150291024024005341443401295487142581287042664811203986931763635118991861815149507187583693244249546278601107285138161720323086177317835750093908266991351955220357343252711053402558257281467745170638903939282010477504345522821507499950829306529569412884569808528002494650718816798928729367839069061109671592898486433821864156919588070686840070738733370560810657615497996505085357830082638552367745809132058946845707141601448642902230788543967158277617874011219450629013939292408041703406754021104820889515220963799366403183046483194142492334196806328483082909890272178064928930214083034488169098281798510555895811037140183745932165071764741710819396801956895239924181539330270601292394121919570338497862894623017398393181892234610842689892387715669040623978638288107432078444951882633517801386008482828379742808630079312551201195575453628055883680077315728779442455718549955483452882100629919120433450509972244977696702891737557957516887243640943159461818302646286188733693512650282884514160703789445239685298975355861893105153717606257719050115494712528987077755631957631298429871232133040957697089161709057049010310954452433773176812556929704306805875063037534866900098984101104792857344290686061533972570874053048998183872336652286422988609807838077045869276670012102175148037694927157737222286069626422614075572174647008267212486022419193413193263995963843455930610875080944394392433170457670737536373695420790278754083306952778374443924960537773332122296054311193417663089710742159137530648135251021386952493610400653563217391238522665758406692190599632940876919464379410944530079983757828287783427212223151996317356132117032868402422278427777056145226881837485925929159947291745898119089534550476254341334438095157025632769869671586259259880540778299141411530340594608171305110550898796772377467114271300459115442672852281704160923357988691478630582936848520620543732366166720523436317696094112432460118041198079571316330853155008692126400155786575987690934881384530187622579718207094576875723289864658463790850842621621239446736253836813090119883922242197515589416656461549586965251177316309555838326058947224235052972449511534840870148741203517319299724778836379278328510936788514401365641788916721848272838631094134976013482150100777406046931478502930107471503607302840097384331019213604587839352999804916681869559751224364382614816178602027986701322281981852194377620560555419584206832881171791413238642491471114449936230561743274297799632853190580638094562219134291475835717880656096203297376497070053967556408550702150921033724560236847951671259916592513395005514879000605178735104912959345910933117116157668662811335097934063390368656378202057237024077106592447612726920180093760862035053859142026108870521624657967069513255305356176404054925815279358308602736094855198313919370860486636294045701838903287968561872462677918372335157868795121428289875109204522902690982003841482428557016209447242382163837845789058805963002469543602906412909830429452870968117410623483527116099788434129521552571623535844059210698988473890616170665704104946166663403091277950130725935897086425682023089874990554578845679701931026781664112032570083409342655277275078468755842633403861606851048725309634885697419251128629178050805316831148391410065652109462630512419712638405615604688683022260489537671728540934362701023862673574593914207707990448991490519473659935222693950943615622241831994453297251330255795185564914720256327344672979573422407235922101026441694791062574041341589474952651886022095879849132365410018793788897840848054605898405835192258560685656975434571110561518767829522748832845698647812480277030738765392822012448112236812757095878993146392598362376976954702948556146987724531689958459792607470292819605698203367029486191953890272973677189591912293541615745187370522955901209250843434266891182686031588190489179596464877995299943799304384247069801427573278042359830658670206425007533655162982751076183369710288495154271424081549165612346485744510562627797463484916468093907002633059711771460742246784545035812848798288977542466530075593244770002721415538718284425964922910559034845220827868789448278306782128174738730441917538315882520543540606215094606216056456856558097386130759833660704748302495263018392982444982869029189322930300458091648156930028653142761901885028133988944096876848421417699025970525561522469087715530538564013861215624926924069014127329864286485863504886457963196529527743023359645631309211345187810369995994863224818319642954935831525407795684841536195102785378938455377266780338904563497283664070266933071038214945762312696461746722187998666288279305735356061304514226988669877313271555081009677669598757890063906848490152104311628007596984545107100575853021290515514738444941930922884950577447945544131639541742474520525767084288874794797956337490265107377141522408828523370206665743448402437228749105131343945715714466272518774812015181606838837255678717484868662051720011527484299223812311445590363502308646589348585449322615414158655472273794562494340056083891814634415215850281974357773539207090367646954438272526123381354558126420227635510817410267430698671497515924361016744762065954228240575622864935115645935291817403671741601942470562475835798627387102809373818990126021027947953923401902358860264208277891734341899743407629565672370554931694688856569548409439955532354960334485282899007633245885331294618559348404118489150513097966031978471759033414784181898439242352256399412368841225642016123903612133451688039344199637503114728722153964363073238574156803072316038302342784111296933252334687320161613567280652125589473936584990160600390561238826170433579555232213962094245864854606278363778921435749830121668396327762448712856095167347468360270798275037602409884658604651393394034611709951587364061900603213112881358874931666679236213228582747885308012502008595909096983928520914693121182359592177197499979132156868630888606946252049628633554363282055913644616837937835508840809789564773185804201274116190099681720502921465997910299055958517232555944424464698715257448570760202835524428120239735980243871790014529670023161687844231453259030192405104356404490192300445423316036584906897708175447038542292425218623705917548157962316840061320559108884137424582261442040898872992455164828241700758201499768856864496656905653117314318909425472644456908251280892639862957371836903282674981289082705823518194985327558717472531681356067393266641715033244395260967963151411136644651638879588724687586391092281574508023192944256431020746740579738702605540039040161474526158356236102849358545125175171980236295136532847913215994935741797462392301755827590520859154023809658269750577915821575202368815929469038308926896090343801959353967291658736697434708390643676445978370371489711654442556331501724243695984996425210580162582306646651885066786140351505230931355840203827182247074617672699521504095202036836997865759781152764464038835578015274987642566420242788349888303967919514307143088124694523769778782238642523380938715278044925548466059715777427423009368443707055689686624060646280551390843686932616993737354194206522948385970997987069507550937261053494619589985533357742094146667175065695261209769852828382282165013117395524895651832986167866899835791226449820288664234234223839262548701642938504639751299918145987689729324012472262893105477145168523385926841387266299997183994921826369362319859690888320705450598680025960325482048820776273335924674895353621395032931374878580434000192146571243004384096111972019399350160231849224878723352193618712837656686534816651164414207612846302195387075989007030703636892603137486161960674484506279203759057835343840514809081810302437118495246526757216302000041042461049993401001210962990981003269404897498927655520013769694555267368253468125584917133461616694944143071793374329552672533422278435996295106811015233992785725353502426556840830849574142508917881973235988868154694217039768329475705630850434435748847046833649518739962424137070772238316691264585565658272862582033219265756358856022700509546311019815393355273131228688849832248622611869104634610288788880087525920519734890142331894284633889810211927867641860988218197336316981888338639178717748559908215019269123045338851109532525350690924669602337103481151949502467617306394991042795832102609177604170923654420790102930984044258528345422993811361249957666046918175609709832229423861093536174834790249800409000268020666376166866810460725823131574097799703797539232127882122608731102571153129063451333608478075694540302008651200340377697647254005689412192191201042523475537077759677727343260176576907888318585080809435240797069705556784826981814513732619985361850224109146609905713764117831707571688658408003113698128662215623442506926968258794517966218674184812215733382925212421967370319054350737484396343599205667816001990069085903549573790391606701994753373627948659971340366946868021844076828611592968590404779938799263674653772049202526414037897417591404533344466511423500092144637584748357904933479616224725035720431343174039902445852398717671027624942354450272364937393473090909803220864828418764376558131414277446583540352748012425744512000651168802245788107076346429156810029048698123846614435257230151601429809468278986567309804159487398348893218538104426511465411567530534876462706802336140126155134247429729859140765092474268498863710363034099052070179514733925049916617557985290460819439671277494500082212762744673322026505440761764561974871236001822436184820169056427566410598387674867116609130433178032720531740695692093632524220927441992701946265443735863807042187110439955663336881647105350222134507591212133033360056758913853259120692915177760025873665881095589812917975434464699634294306370582444137716111543026115017046721459042867487168369583804303359100983632269628003802189410516020859356163246861491830676307366640470120886394253434388334310243043872240795556525295529578723694796119424893361845008584059671862071076215340090729545547840488557599062448641495364174206170456371850975304206933065776242750302250477054814091283611037776326083612131466626359654565845950876322067453831907004230935857008883034486323765669608837731642719636327944881039240936250544494884920726938332883913747873511008327242077813279600491476824443902919396883867494042966937275401383785233080697341662028899926879146314320420152959258386265424563684010256081920294342773798629023036205532977536008346943418501172430048707523017377940621436557451301052338734843470535117507363697672871823887578968843872102186524581973731207408188477837063501685415599515846938619691642058088520723761611932289935030723992406707638717107078713623235791850879395625440081938829516744907016795290227638287826821969357904316612289659177307452050196796376558379740402216189578416552699475958531185314913527060195975865739695829130556047650648560608293332286850247598899334173836015542942347734219688442684754905359449972158940586890027474116017194184259830661481469939132462045815215708978561595026198869965561229360506672200567293915981856819501363975123489098927292454477060914750717911742288097356988593623243271068736184040008878954717642932443835561242761155374738609298383103453931185762853037979800513659102056608726964571479782490210388965375563903757541560789521038291356615143243184288017414027739430761920763435787522406997999912190482819112885371839437374620629964314070920809553494824279240672791097703067205470176609429487731208122182494903724396285397556635682144687326341682934018186606285065375506042578908418442775659823918060769283244901400663327639534183431313690565878706234874588200863065414381902492489086339894061496874578814284487667282126569845152540657542610027351268366649867986201459468335762885948384713372661722211428240416004034030154907314901879879329502216990494513485846383328579010685189915926936640417810436564041841298327431315149300325387466718344517615497812156096669778526374931355055823540775119055602060584821559901133097714915060839479390670363348208394488718578102608051030993137016229304946754754002082560531466922520401633377443362240861821437204147094939871169036892858414423931077558758128619511883265266918344488235944647244865002319985949258572798092201635785284246156672823572780387225372085082286646954807315742622632872798828934017509226115599609634435885713258678611237908167914807266236300757734354325735511581441147655407445246172296699380229727719063708918047415687178784451033125621379148099565222063314796458402580966801573692882563457347364730822288556045405589376987430714060855042342407736501297287281584437734813590671807273902393415038724180108399888348611580414889266054059204649271400634847675222321162808864147015047278096851251766305913032000793466590594828253790964130116955747669614199410835433473340844909372686728694761479656331075457358182385481010502764983511653329457943193745911083926792680445604581818689448951431265390633208726360247151136316492185150267761386370106057615867815656664595903295966704016614007261518534325063176466795824625253421426044540641618005920156944035334885272249981213201491369881011839907609284260030441501321166930091464631621852062191319032684598541264878506755766408911095243605132765445333453697660910472695889758090304902183341083888113474557984678388226026055275399530670051475036161240599477855987008867743393298329132872123660479355732490239628132443214027858719066109430185847289795361458393673385592641903588048336179243626045808304575066585859802811174035138039946593286587111378203442422131213765755317758990994988530740409847873166040878428357700014469146079394477070615337273588536055012459263250859082008761422087426866977467435512529677699848494675918675183011024662799064025295883261198747373154487964613727790135185379361007186628813731965484075353128753269192495701998896314739521437807320254721571546154949782680014310765435196504079579847650333834834563260798131527386741631275605662966208790786453739213834433255854357235702023502783690951837663217254942615307924403618470004430526028364518432610312407419514524506786157289436698428366995291434348293923044905210751401403562737389148197407971152192135024001089346350180704241181168388192283850390435199908585711735581436275562887834310267228369849518838418750994632718751789567567475901030312730488107772589861659128398750644487365437335264120748739103128983300866285553411285439994894333579575883227452269954740543956092388772653525672012288352329837199274654652316430009731333043001025628094943597245853549194228699256263943008120071995824013754420487637573156054361419980695226186836789609411517258437401611835540431988871587318715122281198435091643570854629387221629544999008263931071093601103408204623642717166246375141494658428922335361144644610723426692638755553244981352419224879859635457614060486457014823677573887994663285099847979310366327769483245129436585199870809297759183336246674207864146262008231632192443060396084242768531546805967706314993127102230751911586853413038263291090843498190327006881835524384414313688121605649924504352810444602888803598573062202522820787829312095393014863993688414961419860350832748008969144217873360077128183170089595889059106352894781652087143616240008062770513387457818711216413081283574197495109834228137631278559831446641105365475136183370916095246068041335903712904750583291257881497069631977776853965286333965548523836962314495410915938617172584705334331578074848989256083671496781732493087203946318174212871008377454918471559037629092010152818505304230573327528664474749739632146689084785256170837055651473469294646326984846473086670559904671938294923242752569466156496933140981080506144390820354610094884704438783961303407052325969047183709535261087467108343854258459071940799755808709815005525899159446117922183142884614914821697621966690247978423697289381136829176237029633608335808445723912686806086259902925408497315725499721205638945119637362344379774726901197571506683140751255485322069108860614717797100220416494651902717208116716298499666247724483139092745045596928011317607299661361620661555775102667291117742815239231702834558066523922533978485509959626357495407032720444296165815110392776461811707546694143024969144556784985737106245884820770465866282617708301458580171165379439201305654226174051217223669692070799899250694936493376449080093231822026563972309841990887223730790926471554588177390347841471264765063842402659060953588026288055243004713536780819614304382016193053345657125304985840152470117307057885632443890087355740153236137265505474033621365622139091695054852796372560471131001219547108848123236260476056991983179523739969263509066371184698224619530945976013709439942820570992925654139801004564397168488920558418087569478563064883767412451827919461048327469428524440332225714483154105770466548877745285426737534644804045142380583502495857129675657229666826052343457865330417589649143153423381543987212386946842480034687750336651694961883920668682110461142057097983865737284883915160586940843985848481191713585742444020632521234342697966385549217335851583606986942764467215919981456334979282220944261998180568756377384941434961294424257433335790926057294296259041590275951416933039701231731792993568114635526436996993076148306632188767900166166794809564888398734444706490430194056909493501357431975748321031838931932728509608491028677288558254173364528172600769552798713109707961720538607964687389489261716728977220832633448147109399205563914646795354686806638665634549888181072159177747191103476203939070906737604911520086219864484903792211065749424809334721596445329234681253087928727260337601143226837540823795205269129426401081152944319040687109549270432385753172438341954858308355151764016381838784830480545625038395041130205360216735399964561863138266570359737443315910572329596531673222859176835052429043578311616615544952216465730010993982577725908729522563235493291450413591222712834711567276736750532179021669366484827563103358746133728733088386898074945362022943600339669364811256300858816854395192119173464877815163497893538990443154026720970647222984303683062934883872015598294674166284163042862943080047520408736710619724855561850350564063743576617327809381544771968767478541702846540194864459231497702566498535990826566005204289401581573528556684765753436631019688235916191177807976352529823591469002060675444598911615383473617352265097605839583836647109195702356619887563939467356309313331596924988902294697870953714515844601292035655894169929705930905314008878835579259798214069665966837292849701044784580090730512314238059328372196115270744165996926783368894374050970501718358022059647406865687245975219420008260468449319914569469861948286337224889999065526225457740197946595938076850019799888719228022589251956464802700408857361329583626419799076563088677525436862321258785873042267128659524177534233083992084972289384365932738955604503578918885668654888271263403395755030188056344597263417987752318620920721643626982420611882730003426824003691508258251369263514243166647331737588514928631852425512342999202912076933068878915315203509907764276952458421192216892141761208624280356074733723910011054457875623286142742559108009396443368958670336453054584480904177882237691574851165211605950678392088824695625116834574427812230730282958268538754850135599554408785548753917465922534848646755962724884154642017940120558973549565919590010877996701943256904386514837829843984822956152316882861641145819983636360411138670176970487647585082931622697811426933954846574752099628604255360047684006469158700879441265853544838372772507172560844350201983129070442019159480732094662509109788217293939942127687682376682461591163889557354951648971908346994121211674810938676437931090704004017588174386279610949341217564856587838803870600966310572504600679541332874865320474467056966063238366811761144368535585328866401576561368033827598449827349255645724836426602421092115737853644631353746321772039615145939741673971049915304495982577828532155411014681216117094234757973387403173767336353828668581969711895595321749975563512988377622936996829410568519968142230727724367095865719665653185696943441188576019774134303352679098057256410286968554569679750358065110602780299110830717091742846029787403993954685233312782178872306861708182389029162555699620918956287074117057009917606276751144365003225111068728904643477739671907760757388627171700269422025074214973655805750733558957534218763177305457322501657819663466080745069363115192577457751268515469173555853793464781573434778381006508681271563379293900904920661565653944011445157324738847205610467222910557809487173255024112187385958180063152555520564217220964504210051952276837119273419580152858378041047997184028332096709464817715367962404700724049773713798991815169100928847319251889322342582451013902706037993739407537131113912320927835078470916959225490478844889821434656654833180812542698554463298816696721347020182901883791628063717231844745771910521571850344010487555820382265753708945773445053004502824464014181066859946267997272221681495952323787519529630955045688595655022572783854119874927983578546999435604481828259767529926205609229697558806531579306366139611862371217743431293507742956148186165127880192035326137343257729871480131480599314828968123016582871164271804141804148656069398636495764163383873428218414916835594058514835253790645061440909642069781586176389763054682555687026445282869514581641103039627893394861122515784291330775934801844836791496660137601249484947220634871312422485173824539369180768211524935006827636640335557537608923637316588010652698069531849110024002009095077338827580261252119754164567501319764064494881392517165085382998321863698797456586812578022699346886513999962669289328555510304209447717530471998824661217350563532505435689904865674590895403831949489269797021596380434921747140997858024093157588657690319453793618550373513984757105458587292777897169667244204090213377613738615331752941791048729615337093205811468425495924934938258977722113318647516713313045294885944657891061535683170168548578760198375784775533070510444809476668996881055097259942287467137784036870904575129522044436830289406655939477890098892266682753526852147323779261581248893800632994889117544782169010894898027825758544980150084778914336984985409852482182119037498204130129701447714965712945552634354477030721385327867025144574839878949957242280849065393569802165101138245406859081361507640661117880574695834614644669796101903842935307946911285490321213475140630011210805527249995728748252439609651222029643134283247732137362880845685095516325826375439015896690708751871631710635962192131430273125340986572421874245143798388176324858728710377322686241103199655213638380647718714152869839395056975817914624651857087089322313874737486418202233711742207003099723722066217914364124804679070390209271612801992821977422802320444390955293855990583036057665720445568698417204219252617481812742562129766523172706445619636795515767263143282798877635522032360024494566459778871322930946349768352506627738040876763833981881637311862211924612965004890394211315816625503733654710072531085619497769579137462217326543037461617199716221379608702021337740456499888540424742408482279795887287163158084201841542637527848103178742903099313246789069497101333403895590982220602604551865760204622241176795015191820506352281409402798021853947356480834354389263275918478594782943890031600352645614427283303134295667480642747792193768902823281831625982807589155090450556898325655735223912630741648933310152903717839271738333147626305968183726082496218103552005605386206338503072960763638165543614478334045212248711104870605191972949290064039620621488067266579621494743563689781602510192153275430438382589729295968347295656868868284520910112294718004547532596931794598253460468543808988178737407797029666711945092523435470776103471407101466079954730226496210428388551854991755682444561335199856804715684649333015445091864505790631994199052721757690801567129551335410134937985923540751731056453537179346317344204145732588403444869192017851745100907885837684436667591503514520532896421136160825535950054435796853021943470334406998297369508371992311134664331236118091250673327008124812679853278335924653709473520334570385609320085154410791658658055727288136774245292327341377786317074656787708670738499196039387689656131910741802900461479562852518758180325484485582998130730334384092589406627195216794727687909176688506943125165046671831872241081691849574083178800727410120607786805331151206049227806416821624270249117376509796354705482304348009321228119581923203547346374722199933544327155356914740782164221086388730124944693222944813460672645017013349736679919271871964895309092746810478611184747857836905898831789022110271679023295659849790376070689715427237064151686392987122228703909731183393074292419251204579375497858642356429117787002265297906794816998731227413128710134225998442237873045182543502563757050855357856272495739685591871564446188116158916079803405086019244528637785409997523197427924128132410791876173104798049084282220671093546645900125934357702694887614192385247110031122793626490464317498582847057366302716603661443986151568763040358107506675649946740710059925669285149664132346985497595109164587633114528027502131398915350712312868842552645660958716079359898605164121681639758338312907281829682319928788575997568268797161605648695384811942703750832559763632964480916545204061864964399974558331581419120608983821800862621152499207662396578451875392231280069089020124854148959949642715831705441962994981817996250801492799489403035187008033898698425382827290855672563412387385413159090304099864351637273718116414514333747006606772476602157625487076388503274928147368175334468175079128396320502364458176863253078001846660131876025643250906978222433191430689874187673237694138663801014055779461756411388243316002088493485234524413413098924465620887631305480855490233589035055860087477021634639776047117847134827930262747136753725833826228598965119872527130910486126793430232231247969440564501391299490270602612338077278676129033834630960827105782415183348112878665603763281122052113768893689125113117212860377002741748695688755384842831638073196966263054831276140276606251339212486748624285225632229913385251524922816211139274628383857626773629014515570016826284688886934729994151297858056868877339258745960591982664845342789555807593807902582566689270957708441418382432545062869990455802139704419749337350687800957006270217219694181017583034006618301047030548790061776303885339464418641253506100134423138113326836712497281970043456275032266389427276192558797008717726075039098251960147166737137504519661165145178712158489798231910415730774999245962338021206574413325357302573676617778765608919029801616108859882610796348301813755420543507926878262553068236504980181735074796821750519583636884679294151799961174760573177510813662635650767046009632413566257991249752749278000446520048275698913459653338119494820067676890914346316571973682411875113185476329028020842542954438813127275340279263862121308635109297137910088995001428178446874071854863832820000366282232593383918564578742825923313619011841946481748354769571877680556362026718857515458196295388596091368144137412581346691994908420005838192367076150235533571674026712622580901683310132657151313358104573148606127523065825671473844978900573748317281405498749846131357487704453227920710423751974816135322759654117339399979873432342626878031130163973524628685079394119892322793418741770938319777515823222725742937852418402591227606449946101461981021188115370419944906924858307829662697091039460484192872472004298078768109274522740693530329707276060832640692515421773125536451189597343365858927371645510628800062854550663914041988574421059016917429855099701763830207246709723313595500394672121291989735763418985079927306327914699637156585126989595008571413253910583662465728001599992817194583950502858823472358533162518361662435479131874795390905792855819380072556917875812878657536841345460731199109191173348556203359954178506138052613554029020367794163620343090110998340423214690500691915039720347910795149845187701921471192780368987512832423471022661800034332306158473452184391757393225466434682896443593502618087044384979121610363810395672414706160746624055028445747653501035181436589095042934443800126181993616040448585409958838915132756500037187901246937732071792252984070414739873091956873409292376972939286630332815082037745251323722792192770426437410004377626710646236695974231570356307723264642740681174248636496977340985078935009776946432624530415242894720773007605140229097408703449851166012483750949399754209675568000314559847959641238663394322844498194976343744010585516930270577197886705055234507896415954492281966747892538191168577951211844101188727170657605137081080232322358749058275842631682668636320526827489393358521235728685629277582749255427633993758194170804855285051652302727982239886237550207823291994994466521853810165999652713401324939642416312677868217775582987294529360240480115434965905589488678346174764189058115486614845409063922808916891408794643994665614663717417097050790234612428037449504184629124998328438200367523435827989178209438521376336529596763698857089552513221290078449070026013467831797029190170188811701614103187772243085382529046297154632800055042410194137352687913053321147679591911576625481640747475367052949607692484314070557247961706668968349261335531895668313806202674391793530402372587158067498797746038407207713989258232184453697122231248093256444761216143350653303353732718928138810359645896429916143627222088718156364085317362135620124995122998157940541167537916078301808787431228944441343179692474223423433673081639987732105348672800255606269128163022968184280282975798825528805384785152110427485445251404591699282807674534693577573735633679671043287417377830135330297992170707872497559815659719314567896236135799390760327733205902767922052183740775915244616350592488166083255072961623827879626067387902968180108177799512807328754983426862124115464608638620917163157121755438912745308729586047984889777214331579333720741397673377491018573780853335313742258796422065296187815997023470905947574885340744158165756899017536482255435371158467491992249552020329193644435102758871182011753154293860729285008112416836486974187074490277179749401320214853775939163123995272679373005680978698382236285746275235433226607713406814350429413004479774589099431581457269487620944596952583099259863134472103169603615143065898189304618973899729853530761091046873433832526040180247252706994272036092247754575849249736844857904248396320192245883116230846047030545711606006885599117001981309932975095457329255551369035792635291173210567479727057830050064016165551872634727904968427404549630443199777099174987389426036780647578222593944125835796279755071241173033225184453781603383617353147357474077100585649501400119526089810143411249269725739588420465591042605499997607410043468207775585239106111534588577564835691366427410164933286115613680423753228944798072607504350098976640604858790675957618668907889472721587301669471247671077228374868092648610929892848097994444214808537798164632335854969702832728840820642962880946095464672486468196505346825783040230565825296466591651663832467370127056656141551229752242289240349217768369740878755737487074414178563828783579152730942286276094085622126578085087209988227694864761346225382632180623891649368186568528648730427993487098683713705138917362963236523972542990120995809473298142263421410439556587514615037645529505926297183844980921992897097873215791638152763920578060287549445652397019159602451719093782262942670202090518711274578040722099089773759003803466777519714492698539116536088518744017525121718992324205194130554081589700819595777523973674190239668014187637520420599224012068718175815456651524743227271091796209476832133265952547641614292475755472543820192577260219958797003660361638658574397786352479093491360310419728494284086861893706974875717221175352863700255827277200639094359422947610890661702641111688714835820709839216219481899015972866524790227008131677075225750992352545345688588749091594024660536941782814305698944318137630357411562337691875491147755882481287287197187127998176368115450772227880144184153694942562020049166645625241684671575493986939953697249556200837677593391016658696024174224720538640167409525929595079041036758387448033631623270948101492815444376635198244442344446944773861189839846808272283682805045543156032619059666849546007313520782472702978647450042939004575136689484606470863046747118802547755761153398631585630862783447581647279688611249836413827076042293717201267663767842593613307863447624240614084556722656677768324735048073483943894401438679595426329458846053899226086418120102662262162609723205161959486777032791747160495629534594714570905511311252619294650730549160163378141868897673642563196874843470729392332908761633774604468662469540335112471866176021693381981598944687742220512587819656248541672958401211790514963691077309444633133439846239590057796435414473793833491110994482372383447095504908889500180027571925508273330546326719190197354600480904283994644609520236932426161213980610086825387727953956223510915773340799769491383273244852396293090195738554889612727797066771701671843176211854123697923651589766337547722578535435169411216479163932174188438857484383840232743740759495328088743728656107378404415238443441758801159513386248932072484514277625119825721858599229158955249226590235818098885203656399626452506864856549719449048794369872860238999938658106430886969411752199770420055197137828878209390565479335311647070144982033827918108131780190777620926724891855120920173525361363120302461480932527126655633910496413981240181166496195708322036322721283015127172139898906794293298335144364857911441449914471388920349047797091528019286551094735835881611401201152166848586672136030008583841327648503255480395802184083944904530319685517712469089915065625551490296245191495711368061731881793477973641398478928170497379188562803981959679801693296742035447326041313713995711253587523677569442568473203342162359335068966966802108700765167181389423737606843753656251189433180182545733098219035939022603235222927749882660573749335804869448616874389856060097990567872986447523809560496108049414898197653234546049293720268275019476521516377014295710126367703669981634546109170169585382596005402152868829169772826118955420942552329829764064926168228361776963360464634036718390252543187746252468250834347472378253968461883548885486155185822494195931120982762802139206561072103742693912307604207734006387462807863144171139136053612341546574112409161415958192598793150274942336758499749224555159855362094629412886296660246901559842407550656494727375207074937763235850339347846179553186944601012136115964480759509049399388928569258775448727663983959393623211103546008441114337433055567948291016245480766787963650585955142818761824244372900960958271970447384517246005143449283901487373860873585587362133230632193546969528039675805988700772521528217376255067754678117177069948335661937587403122815110339830969316451904842062564550641163527033731062481749828641432753581146800548313347538194901913032116292024208195351489098238105664820587230622312610920629351341663526817900749860096856545931606869654130202705407742154390822463393000125765329490242411872802495501903429608098711108673296591718134508651652724397096752307999891536019325149530135550099645315938669897250706348614452058318246767282023923461094178798977905541567232582132222164127616316318726107441847819845524569402736004152390895711243490951444586654145969767444809574785416486245213650852357272892119495575274417887726412241841593608364821751797209110190577648049623042273747248375550742858398036975125474877172270288269358231421220622820270909762929186762362466343879532390852974185292822170864001649927850193090118210487962546537807886559578277294867226357780639700558499050780539221497584682768660580205401596951033637448487136524432889472921856392024965393268630062863910208684485259823240552654825137332929287977977995807596272130568163397228442599529265000265101717845052160529097782165745198500228479935443969739826798986923113569429200052706555354401642456950361198834952268419058893630921582846771391260228252665124915760560524635679440914747336336701212744572258341342846194714700023990705067752456769140598810450733320036593954935992926229985744767002946120291570600993974907339248065845036167392605831628247329594359737765468179502029099443412873525567924580561191781295192561673846246183320739843449426300512504029039302454579402681112749468205530091180587268761894259246858393159188164115338118688129121505811462058501341601846996908486238370629541780551644470203329985677770536087999400383848034001853042146323712295299856792785979344576678266638667269558593235937114299109560049035520378085479785534316835260008631065710648633350462736602611933137413694625251660896961078797103524951420620221260045639513017423108200031492836182237815241909542601168485748718268152995926587877458743907165448430669743335317012972550025391484423779568348058155385620665894786284622488573551432083063125513758386992710288643945191474837292565055506294320866223655456856932314509308454481323614189135060583572370785485190691694154251193770234608160241227783465795007531324620824911977861169069688978699821286130530047352988355030177546792874694729143350531244788225122203627863508446833287002751100897886046648599602278877703376814379798271650451524771921655630981268712214260470551251664188961285824628467737787896777487624518787890175606700207132745333802432493217567262569678494779764437420481377237292374538677434967451762252156533215111457256170239882123509236960611085648238328376442765094467934377977570884432413674855673659047006423744137583109411953614513104200643031700033999831894929305746492510640611028684641279169133057457513673307406747350831555910870784727708479636186466556580442514372775247694040611203879331905180870203555530763902926704832332914438591984639299082802009125788919315412433773705380907624413660128092717208820026681916864686415913683558308630572309705685266649407625803211602665725149956395252460053968295841464036100255926207836211033743249354985374311026105856937549953081497095007044588531399802404769405550866447253133275424782969427154740100339175152959578293511350944083260599964770249748354389817766162512381938427076816680492103182111106770618622440775940507663890502957306185010525651612533215188771793446945101156837969051392722269062177969971010999278571593893448159290292870201928927096813026248306276506161288833414594863244460244440840955999899038319198267535385653337807883460825374758382106349534775257698084583532443896249467065136003839465037000361222795957643324215329382982985052993908596296452799529421593294557084981649564027428411541177987775331691056361904450422229274771471718482784129046433510982681836400269077182686533546024109322473796592882945952455481595141499273083388508498593971582380849611651349061055578438923120841613063569818276158656207820120476622088278730074347895711050627046867509411323026379823849052089674674694907596200978555531772276227399696315737435504685687038713412094968041563689502788253273299907201084358897823584580137521827272034712223962978913973283693641193975419608170159530020341287617658326974588840200597897210697483164315185883698870019874733958746274353061016208113499244167849066757304863746233114695943146631219072840971822331927756489025858661749087100465202259358497891137098082304398544917522202625498066594881626165244453612387346348949988079078353852066839532732739617318508914909266643696589814615589205178502778283271444214518108822741336983082974723964969739183480254641605219126604201217129301944830780288551911140793624338846350443971987445516548781610560961317118040240302342258912405217419452883539359974661016590271559151031419974508332130233267206436700269422732912698172161742185731901140481479173405231843413957300787264198264594839813232890203874851725466927122737439369526507892051389591887274962928575482744670746981443279159805574058866037317080036553784334849655366715730789748702942298650967333598772246238979657219602947037758511665179163849093530807156701083348119863208490747452584977589390308329777632972944913371138014413257614308185523945352699300437958000964885466466202959492817257270426313241377257352560369230001235653974333384076975653729509153723097488536793819610035430254609081246306886320200804031500505865218683024105031427068405060255474790271874487189573375668568754813623348558459876589585037752586728653830983472483456173090541263950175361460169590487669739217555018612330887476235933142383616073181148297329187681356822035395595488099086510561335132391060597364619519265425747100013807010788757524241347626304771973529427362499189068161264946928845376913949986957078583338266032574010385746240360832279238101077714045510030825214602697428919704280871520022253610060543917677179972090894799774322484163539161996521747988051551318774723060561156058618722934467888750179461015346810871013532852394852586870381042141712824208480324561444637853878579691078865515624372237000649264372253751409546841747941565613398603705355562693352042547661523700057061400616618645833293744516680488435303756976652295703563397093823530301074502151092926505063093364115342226432877319335070637982078748567547482199489735246170946680397664706115904003676149032379877411139231657624360053347806776050582996063083060222610547251338239291438412620906652659935245426754499534949007482811558314999627628517051677403181459627357419052568526541730099669661394924932610950246492858637694100546146399806436007694557619854180530177548732799304490308755712808431692492245225654271228290354580494412478706501190267523835579175376652999353857740020169091461775681806730696919013583927042025834557689536742227469736415634520420386186377777990568227740008335545596643069724237515590992331582929323825786008477130755231419836751146463687383036112977071294860658761049479514365913581533793819557338425958961836530379772384382619354973469010339360849572734443061504267175484769388141522386476598029070521970015313075629941463670492926269888202091041094813068726967949136993210571280939157880982617764454076480912150283952204862557179543706734729643066783366129137876358083271442740217358966531009440226128962179928199782293502044133486840984771108020194569734400372855750145201031312184113828200783124542711018999623620117144841894974859570960845482621693301355390817479672960200467925305084031351056480869047414572508232815131726708173201493421408597454128432689837988054678735568845109369997375673903002967135900633382048707994457661161608012683659685722324462568130299648063138061634360670103659205263426161826185892893583910038040599430120135424238466292068192791962343308884236933564267033538778627314729439975647529689449133043113610527504690461734503132081497475577061127943184657651520953283070725290008360790284531142891894981479245578405410730112617131684222969706415167679903496162548600088152964037397786524856251049362400908760008833764381700288498662354698590698780289141311254074346636532524061266329384254023047401319440355307766748516937221938445359618083127726395916208681359304347569589819580616704313668867233910689330764116915265384425686299929887959425560863322935527925066332130649150039401863094315730928835769395335191073603692284290330315378309306855560726854597539057233558943693476402745021378932759444184882429447305070750427325297647395152657060405957178880972005067437846870386459709166722793672451069083372541338519920783038395708397175623688307243568690134115722559180175384345690339336985896782686295107062987029152429362753767366451033308300762632267508180160852809312757429174683438631656941465270144582944423853215774489115356282476161355044940551142604978038265751785322441673101362549161365826191562502041901967634260918595965718004491361818359507902517766335415679813041015189913832533746256448208667115476500830741885804963334047943288390976965057512543255566752160068591409390745182531999158126195077356054906300076636061439387232995656395948744474248860998840512678591067798372064575329487605358375611105028198721930181274822149676345429074372342845638890298747150600403139803986522390771166414766014230672523216378944893198321850926113978652066503093510884391365482809647503547839930811841697637084675929237432285767598974433340545466572970287045391743593548818472994795313240299019604152999840752131542481389065409981288559736473291876617283159160112843917160768757038377454249485779639759471677426970606968461450379105625925019028631760439224643802781238670779807668952662606127731032180574623453693234502319279829403391640661732666018045336166011735528956249437371548246168710608004244719164983225978216008418697920667840299089469730329499778249959164139265048315509260964145884359471834142795805525323635944023348173225192693873507682955750440668477728147606445742286996415732081254488618496327723271113331845411045783622874048924787228320428543948647958437195362345843401022254198843833025006874247401195042367209658659706231771910746235536085736501973372508097414011752562408804556891630157248425264795625274009974569378845154632322795968126856790554313741243881086899994186263846409247363412477094297597301411586018742354093857263635136071165599599991240068886925795628199363050738630541889224657230336427637795380412564357629488456125230846761495625988535188991143528526600894821799337929698802630809639294822376199817366813318174597972357760902457268356310506682525207715858743607563209839644348944527292707947935633508512375344237418597429731141726044703008416443174188252853992677706692835918025763592453035492511414641052158533430382782709486628239174574852422351811153880941444624486122234025247905108375223283659367796825215144247531343556974212411914626347113454825321684916213651230175632773672067793149495296782658929240908060043581910507874021161600466348129618474931943514319233466433925123614642927115306359170555398395976905928599961670657278508053155880585117820812735034046095375438446724544896508652972212523580775006999883750673592148685697398548498169218470829119651776549626444545250026359526580025403179955147918879860279987137351173278990520830175421731101981215027751365514212504218308000129245138718468926147103646203608221256151194489304575109363519369973788468466729330947369499861178772343801234556517406298749511030716184325613437515406228229944130567337583903406572869759517071495470625462048488682326210967926026981420978340586746084976695973571492771944873810053044496707466314756548549626508642240575495223467593694740437876073909428061031535632895253678136064092785051607254989178079464076277308817156579439637075714859285640509051259457737082091718759782030564483985572287448905523495544784486737365872785892189209842490917671094544378666228668552432947044824284784027350691208024107566799032770472459052687930776114057647798693814757527041913934277709312027396205209246837395276435275547351649257309767363970610263886678274395551740145292766941868155381552831375635552077547155554112289752979875969518300796180517055676100409816846702859858708257698242972109947082850095577167671628815421259498867572520107771849378938617444623657296320761399653132076530097783097503215994355669035670524401697351561169270056682590094496854732176331752371018990057495286083483030698067499705713414548270175741975002364244631054868866885578362715245160932407376660688293936511839714353021390784483347133674288293275025421449477405536436627988486564070512273364298117150974270893925612402566565520198461032262176059871903699807179842211106722865830223948648610898585417316754481976377778858399347871827816226327927682992987144518258428845190446749956580704532676131703728796784137004466153405615437901605300018783208498221234141671270230598502999810825050563149818992241781490272509372761008030713822900249709256749544068660374768043337422587245954206685393952301938144342545741088674776754401785841447802639304513710323171157668688988920834883869492050633171938578465494078053421816198905597099586733723659787568247460369203134248622392027584759165674656703043972413986566770519573963038100825390207164824503060445604491025065798570269815068076020383966224629814713245859513767967728693887755910587738891204337364486110460033620620358989490156548895910171207762998786572015580531047077610975412428020003339524122026279623477065353253828201797097013883253969566703773083701023837087125455394691487145842650097677927623230319953681464438232920699470741342667495325328420309147874502139906407554581735314912629303105563935559223146557004703005831382626155332665119204802244072626752610199270068599175249589056421951553549719853995830543924627574126761496339633224662320254781800408664765975691641196598263470004998277626985656729731661028587915870095741282092944762482053025296632171655586659722021477069829049179261848393527563289016918709431434954051322122624692396066381968223123450882711658215979474898169785376077495480050502322972791938684826426270137827370316102829552917603053343568576566799527347750965085336306072561708101310685322388134413453348829186934921414806293155718355600153923123245854387620489812088423367778403807536974295482610467200261173023025360755449424850325485686845080224519014787877113467915299503038373929408526066227644542396529448526799620306863651105880161487311588519967932553916564789610229010944828993098954580805931178109474418873643955461572297591344910046850553382444203713175549099452318449555705989696071794350171046048345282662213421909244421328487957499488613260335076233958002965489770571378429125810811050116260478134686094338907513062257543099810003868136598250957078501459757230031978931988289262675307227630741139007370964082168541291222474349357066022323320197554663704752138043141919525035040405808841564474929630476020752779073689494745928361012921362922845682299147525951445199394854253958703676761184911378479624178819205737807908597886560461485732119280983018446878428889682025787293633893455488449098796647261185788410701515351044418795574366557930672388055830269033309771739667943987586325383945795515611868168455466115281671066001541252753689886570735389951160273700909430892291277542330638116822984509492649263405717616392858440437549874123435512142126655879889018728585642920835198167417694807615128360716611925995301148674297943684611937540084090612597405776937992671464674370528995087195157043174727686571267590191746019183736307904858645867654872319704940161065522170201708414472305742122753648822910029208498835129233984700372766064389382996408306226249367325834053239261109727245323733113125625366911378209431551802496307345525771491416048436929260314520273291016571131110359938752075917525842104004508274811121501707333532168415533323719214030032902523786097971653260331453198903974792428588572322139922779496066364496831684494200216584068899113844678186978827580948977976242789069616009144398556632848818675572232688889520997288982049150886735466530614542199980140013771380235844948285852566872531922619148861530957830202593971534464218418042733192741171331610781490760990453232324529568952383255268833883943291265206873138165140795209335741707305275664821397257272909792302068251117935210504526985096198481632599534908049672327282984472063814965095304160472658315401250386062889286186078666011286693737987384109992404117385131141887535357145095566597689207061423765994280253397481395299355960313885419812974631768520345775652741921090571572628029090352258530945474444443725777426783207217792239294316946321011541693433065867144375075649768950631573546288908545887922403246095539393013437296734835527865043796319182857793169940939527466721513213927996826288916260347359093199064639787963399860747258047453341978145427237390581192025865776912412758500866028486739439153271341776324227531565629897053127460622948988018775935142032264229930790676112808151390472795294736619009865937812140063269864902787169013681905053487253497676476491525982927731262824160859666628053373034543162087920202195256830551427797946350781137942204452563776274003620318890086165981868844687517291365556224223243174059217577738390398379460083908038462807338077321052714507176122041799232502481367951849799029448852727148740428114587521114135006466080383743659418507731101832495291401022992777168311897161744374312362901968282257252270559860215941824130705262524512393015846017576951523887546047593285731313841110957163082869952018173013945757735005163996444346172601292315445875557585367877355210605554137865024454809256217558549149594492081593748561607039866442863854885147882614038444192855409819343993912328677280089475946641105659660337696384816375831400507824125868313217969994623039516645317872367413962605968613309283864808308491627927061935678693291921646974564718946684687745785635427484016201008480536044364358944520639176888949866032009325601938530972889719983441285786708952764037685406863073780358954938222898414146482980685135053668745317970108291661050822799415546390262569336183369306473468193514694633584318467332119088746227951067992290659392201179195899481542855564138949647936138129403439168637494780485336498386264380561624700112587816070341614495154454377291282512664087195373064173126880626465399489757615450968503754336996684955473836681816087785309882087899417253836979066249455214804447072299797435118575735426734555903086859706461275424188664399137971122491837201999522987302946261677040800568227021654839828374289342354032642184490609015309538139544547344777619373322736377169911754181798646159549974097803104992877356663376800158307741623759748231251251578979714766554311073379427432377096138826785502365881674203435689740528629665621818045416564768522118340912342766514429521267044660809553506633759902744279719160346929277409393684730129404514431606252103489186716847495742011252100208655987864117416537829633169951067555916666251646658187102388973084760217450270919095958252360516767605242397051770085497712921720570109517652227252549183943837440899684836994922336147024869153874218752218692825250329001499183606602368636802737569278451021928717719364251472107627334273945214930029046468700320251508791614473681628374479083031092563969293322153183394275203438805949331714171148484697156550567554802323787879647982503090718166139871987561993459908488219933615673006968165627885060561647532551006626659653981054116335880198409343300474732255064684448397902447209799814411549902235640525976823810352144441623616849220314676280401781024144066066565030530148386885862486688252000550357918449566463129983387971682548907588661873448290299818273568873675512381716820205431266357112136352775671591220582309640185744716871770070964843974983661804972846493851813798329887301036672232576708933782669688134954041113299888298545175386943020221128497578221096669173736992680598083496675434377787250973783036725211808664630193841638261088752151269458738766735444204246504755410399107613447754840507460379537436885901673285164377605819566635155945099582077091531822937533100302459433634892261771769129885912940424803130958292511178318517374318267673409479251819954263066155439075315657072409554488399907725303500903725148519996293303920717613079725089332741723502790301727699913832285141889152004544680780970463619346166335716017804449541922743445284757634788335453643249574942089050720807759698053133662610238642924199029256163805344130169370255894586070358749938491900470191424641515890818903793098394024514317823661521924998235612542167665155043777184413650615488492393659642564392087599278796985023643741053592435313759124902455678886220913508636388051026255670494270839398657583120412215869837888726684408807955179718970737459745629998321228562135128287706764895438337572042951138763428102834682387477683707734510988537260064568980568793820718272109357308391905973040455477830593853696847756877890775110644264839533412867583277524802881600763982780558751345586394006895472315905724213629604191760837074508409948824199026842660634221935116877635299157702629116796225505582698593325737163814792300657277735274271554793199972530941874870486185316673409262977297550950788385244620651152607561253569441549112700336530342495865586504745587817469742659566337568915819851539320997242418272991889936480168556022441494101112000030663722147824332523768156408558900061493764989329677969695691933454149283974159223041931782071862919879145636125321313923683415008534978996547702158380777958216633844855834130820866497608549669621656223945180758637522026708560609040616992007409202529040576803868041021936942825378083019394377725896649088695249445006378922713326847103454180537410437248810670426694363727876851700833064704906763640249858657427211381486168436300931953835022469446716248177913894007550797835719817373192682584919896005249472256972767323761930241060719587594922832045451148681229016117215240605984746207459906524639329389584180990866794322734542784229269912079399739421908144004421218252556141743742086232011203525867955224253525097095209283809256073341294671675459708665928784412821572533549960747722995961835600835556051190506829842972583662090534720930915418128239777165165685157626151091886262950958252061540718369512026455981817044450390319589508987548270855515464992706778179505240740844282185260562015246233074619174770373338452212900904198388992382575797828501414394571362068187117253541235889456751595504425312300789903219382327414959045193374729496314149998434256849041723334323319352903241103725283394126840795768742761716359158646043236333592211361140604418993269583426405401185442758368394762718079659654865870839401650490544758603804172616092914638641744170550577896046779695363734116750854502016430932933658517550637566089003300037422712261365847847040539846903258703705241459803462815925439030295525179073506992550978829795274723902067999632619713141357968490421101355330575412727708371397590249193282428387519986421801221645186750427611570536800042083785083475423722484561793291355941293253257616297859993170987043020000956458018480000367578224628525332267264625686041670023213971633798139890793569158012349973839168805752407553595881544249247367852149335312692055684060883782041773386437211309794464978391954982853675257920723732273341308632158380244246115147252237274529516166604866289788641705902587865656826612423536571442601300850895146959159914395244049036936458132431453769465703368172191518852035966801927361183181914284783124559017413470360766781191661185564217185731637584068130405174952362288436714375660333274477713734313075675586105796485961371910827948143866665074719645804120342531167901854243132096242844685679670643533657676047118263623855936344122796535760341013412458519523136141300866597565742803950294659865159117755484637613332497683965804916275659191650613009633303972951791955677510254539046881840454946286802828317763627971066791842264270540561669987274722454397744701178320963622543428687298190982879598083412896690773030650474822162030987005983754131546396650796268274270973780708012452731596616764410602849173341838156261169811518604792309820134452299153799003137151845435529544947237578173866926821022191119328876884724319101027430086972899145895632988416474751917052474266797693807173588410154978781070804296254853716581354470232817368843330362230714784485762565101370345819521228526197460348862968898549185635022267000647176593330968508175583377628666500748472151026456304654630464007931366524315385673758671077205371952862902548851815616046091892494685947535157565587376994926824814708000056514867055562854672577938501808416045688092586775161150624686724516605429890105730272168689401810857278977163362423777900324267127710216286121707126839276584622941918960384774914502500255390988970010789755800422656588236245605992591735723668471693119653875571198000432597819217464738830717126735742829637934003918795161034535704715185868524595576844468637480747017114166808608229058628709543212190074318557543781392536738654274207360756135295241154079425708940595202842860226614459836720347502367601993015844550737941829825027038403147507255898478571194433547090668933090329588750026911390416833721405920874745294792674704405039616719767018873318200334934667293912211326115613737608148886354626126508244552900770675638739462423383791700392272900500317563305090780251547701248264344199842999921016067403845068942178669293011498831132290828999664849082911854330222244796427985410879083456947304414139802805128616626616027067714702138410356529552209870784584609360622853802891411303400186417625263088824072635707991491484392041140961970039397945660546860086692810514270363180287550386896266117241367757836430906803506480564702081762091788577148890056454914742104159377209299643808908368216277573108187974616015914054126515709406988072026200202448938430192534516782223714071006113844606177332657568657952014773414073365149393372035964880514760600078245925823086806995041784366223181102420806073631553664908913781831190922300287978737565386253952027975461907824584971151374527430441453953445762826375425334633011304860843642565630504218066737558744116392442414979510915071646881258365158399008391785549935066294183640403833827203808552510919443715656242931015949094956101007830206588775834668361748460556754112834875764563287105973292491111082722864857655539452358284942550699384436794420882348760215463449205171272165424128993528119922005279603512278813914638786597042081085242417049960678168725386643142206624399249508776944608156375008462718670600918879318364444991618268114176117637920565265274864662635837793426990460641140898119306684055466462120301659684053454034346627836173087144819607912013034469268350428386510460271279805578324602323734050268386074520828288674615974185980323957655845257741726142430022754154433085587392768251016866288864714529563535053539553703847159257514848094580735543493883827290986549243497156490215032627513367142960334653360858645101390753808663102921570839437244356937797220358698143351494929966253960648772043825285551352641022166868235661828919426874757918457055307269780886067695869237151729312368413318511610346850199203558121296273140246202887399725050894714391104628367540635655067434835414519517785132245530984211336483038253625991046822696742018983514072525275480951137194040902950350394471239773229222298066340869233357995757324461025142212724933233220491987150140607883501663532567070631659354759929137744023197198067005724229688792423351085965953945656633344989550514326552137941914005500314298333648871789542562345737326670464404929299749672037525164303342430030364435316444055423139163638751294513536465305549248841393989283503591675024170273113269240542849863265618494496408270429569443995421329244005450229847407239079152326548269177103586619712478418928957959694530741575513139655003211669503171051475693057567580011279644998836576082313491349349491571691271204509845244938430476977875586683522292129088463082995952700198457367507929054972710301850950053045860645984798131099598064584209082278595651415823381939326214054442283527022115934266278867469430729551039859464885097507467572531054141231270072944682507030083821119653852750013884014074437107401227941049096768989171120158938697600667145098960350157417138545991570817470580090453855259013154215530755571909392379851991814842454713219992827645676858062029264370010804757657881502646466079981348345292123990112458203080726510609592962557356894210686712188956255276065336901665233530033491172121871240035787728128868670230091104247079110032970298607271013834963271657615785866836450200076559242131441796337665763102272800991277609780328206611724231976717293554896989774735559001580635536885534192078708261406291371823144386357109708584022543607927312404386530685797986729237640544904720684882685191728517206994054277293467044941053356810920910532902502950264100853771931564069291030235792226269518264549981341191823644211902734429040909694889220967778755807201300243726593567414018946425926282317086135231839119072543840975539709553884651628850908689415712562496433827650358747755965970262904481058052544622061671775193657379733360535611817716727757472356499117320181351153374072452100535293779432659193455772558671335621613703082964345146987934837825415620754966852642304684583847999338801893054834657403188273677661885040023894168165437675054346098229912418124774800873095726345929917530840674331536320705517553736189124421163813919445595857449847747587366475414834900547047408568232292700177323051636653039312873061394406989965286806842349173723547937491483365009910588539652518252792485954157752954527302571179009382943476588970854587685031814277572420438829889573804576573604642010789337409389274718280338575577750322346977249065376414043293917592960084145132888448370940324849037438555304149146904112859455813640975935663780907417511924113393591493160054313246374309697869311059202231949672092168994156927382559771035934270841507731318682360650566167601318000007056053706019782036955499755111094785958830450993826576875224512538035176445988988555765599307092068961333190344391671823899368282518978870009984033151213563953271370453986616606991122261087405158922606758963463506335855234382795605801972365316969235039558598302777327780846935574610472376618602135243968997987091983767452690219313222126669382902293063857829479827118792288435955458182198571481686789781783025619954827366414774029209480074721798997620506859812763164428419512734272781277874829862733370770106586514966737511880787048898351198855139185099520985648461954971572225485490509821229802684695573719816898253602450574218267932229357579897227952412101674758998216713595867024337123130817382076708782664542739363926510611618731228894492315196141663395113104135546865808460518735291159492482320035937101314613016474249660863906887928303540617280918040947235751308939457394366841777945340576144834139715453989914188223143970304565471472663617361717830673207249659613073990498036297810477035748393599924247902825684085546073831035222948981351758862206407320657370793739336788330522733302716683986956799136315770001872025346172896895838239547688947378626371257237427176809680221285803468468892030547649644903778663723494087439756486300248473119018689774607056337439728638843818884079610127939688501123842096374811921786685133304992776602844432656770407894156766165300225805136703805999140540599423559274200948424527197599530990697752546208782971189333397268743219510105200604272882697171102943067310853477818135463250179424685949174629589233480493374722411001512035707558067281120595489898774241004289744250732821429552082647003294137544142479516348271321029373734552385148952983991986703237030428841527459709103683508365302919054507770524108123028569713718242970488670406874489120882818392244187361129057342411181854421008562111302037249708353011266782041843645218639479647749541009743728077469566363690666282452339403331667313654955779268895596158811492879919183548447671766367727432456981322746177493288726909007829213135411399139738359739462119125214973246155143281226727276987755157473655469959933574915448491460850411965851877520643072168189644826338275612947976989574124388642986771751857035713550407903378247995572247781713433724315175342592515075554437051811707086272779490229124278432592167280900117503108493071892526930153458360535058260147688918575979217435545867881330756714604605810760295810289045844101413497016754832490016889355002077037743022270790341466007826830190983364167932123286669121318269398317269917170977107102874602744561861400181231962312753845916437885016997635892592600355470293701520832130839110640286075141775552969902155105692169403839623262879219390341413601083627079850597816961971412738456235198587421157915103877242044474480813319305487541436537019787845846404195116089760095697266189156980096689108560416155200933194560154419123962795849646756317522428619359247451532941948729614788251898987719680839796203864063539391043103616601641730259439653072623537867325384681527715419838502061233706313647083666277410977261870377624345557112559180245834044262974438342852999072745260753824013144820155684252233481828236517586370153868972285262540342381183040230944073795484529662311971986739970609429919465440631773778264193882215884608194372543718423751027570308978697854438000105728338961787022567964452557385988187719192376835908715390436791015346709412888477528160450732180607838540729933029856326821082465250592748464041127019017764049178870182187892382205234360569771461360512266955302978623616362392226299487658566237952008844335602815085451862816868003377215615713599777361716165754494631042465160530832982034121090454007911579487791195657790706718260861843278162538316493852889979627706152432372080259708830248114315270980039732104241985898030902387358260860805458228432594692508529887278518384344786862775087050395790377897944982114248991473686026410453931392307556328922872903988432564867887290149840996982622499735283658844865387235341768961495450767774928933418049255791369676629278393874884752706345912395884066438586914018555120104234296990850958605880308018195648172217001412549864871247308982989716092641860484956408873829049311188731192588840934199144737495792920818636929627217274096163221088990738597181263817296752385805190768296914579175610644757609706270108507588805231636314715131542114692944737582687272696035023546155138379615154585426922482102820407594110593923211713405114655810351185117272724956634232687295433010749479334069471403326979650110747081388979022070358167267337963697619739498621455818236160948730703993361872102788629803791738540488812573053615880866727000566953808591585404224362516778320340476987200809617243916800129230664103953242110925093020717386658850347419159716289281764194424164329954209537235982434427142321777641858289151026365454854517691523641577028474648480061509394813204388142628720887722745461386033403382009084415615075640929818543940376126464983678327863187709232962052333866931441084774329762003293177598447916646427852606605379352173686595627054333813000970230797767538935086598612719251969120957233726180739573441587288175681413553478995958251562715744367572103385979817092417220745007404454146638032789403894901014534213386413813093097458538696276404288824471373918055262472196366803687928824149913531929370160270136731269646882131498628840771784577520188112646101377870667469367902827538108576021384019675054098325965216353065739918778493962095906885564629352006165337567276930452210012755714803409504581374121792257695907962044189986292557108843263741093964032541737458871571559323118628580724205578282827945002719217040724596859604109149624310562455545243908287952274849013920272399061366609402944434032776071580132093120474782158488042798584896897689455497134373545581730371734891095621295053194731377675697806969044457217388662790863506049792603720511233291597299178761170075049535376762656353946554738084905247869398495913461642968701231358337551906566621963805831942763825883664308453962504214327734128211148706134782854123373142120874439034078938207958542691982903529340755655469056951059734735390559912570496944094069042991920970269700823980240224176660582998656100286707249628845474422620648398548780465517745267686471305964481326599443254248503106320498132720829947663605864317050523904378595885485041753326151652883166376196850714453884419864120159926511818162829895476457703618437882003299220771208302581915024673710990030623377241046419492022925319582516012016532234216703398717603142295702420931323828129202676878074403422167746270763461906311145516665581450422337451439104568896163990074035279965393841931518261332618045033815054154103300215246080846360165004107114946894732014996575329355084820361743229944792224688255928455615387737667240276013282046143320365246610397113014088688332134325401717799700392455018313241416538876993631547548766015555764447848848103727577930287525360193782914209008169171540103794839593644773055224829807997726458701717661143208427480701129661538364461775628481257733406356917090285492273501572323972347489211047918165229481761678071164627782896731396865527872235401331861337995222457399605986331371145072888996664310265369972004475160834016788866701653086640026501646737970049088141566599487071214454710794844309726604468336866357328653802288533818520477232185067745761238886412192826659227590112681930208141367674411995707291624515683688497765562403776750135279646575291269999406426459072336096811717959048127567530493489213503500524845976151599776935061750068987678464091556433556945631091843028172448499266317967587145056333024052803325134953425732771447498200261906255371176823738371877839044529645630610786176989907947341474968536978172702943683344835441063582904600205703134247673714456567461992748750070315199728724711269486406881531765463905575361034134193392020191545264685205147677886375708396384382246490675206830706080904233112242905620476297041985489294947740953395155609388209339899042802858180251095608194017100904940380058135497442887151711822204160087068888558782634946121168583340425815084557110496359627117867350134459766289140343298717812318192236253610165247091942113577584595362378061522339825189804696870312877249323680516204676616108364988022094122880079755649484819224593738382536159479354869576400139056344305462904614140389050393170595493078096404739295025986794572038885900972411664450375891026960097583831197028704588602037075925315210438703022507934191564308944407343497734333660592336898433184645784653676308903308580892769264593982888499693294388605545752667658997548326618180042659579671946696978366752862931249463688728854111694171447569779373998751628302766336448295857909456045494694038289745911189358986083601292037868372456398030408767687102294632260439836036157711385789713211710084250286058077437614752324461964956317013317840182762003464808285428355773457826583652986053936878429107770860232044611143738835308209783159078500279287952864772386898027096560291594664756342659896367113564485767426333578482630282151535960321276179273933069737222844688574501743001707023445670656425175744062555958322486969238949279538553063326054804510854349559891991242313708381438653441744813648088718042220869543434091534980323993766087458456756335729257333879094105888151454819660396344656912919994070871363671263487784479640489039761700000515704043644477877005861403386898111310165503708794844700494497096090749780124271472816468110544651569997344015883795298348651526452035556955699838070997566041070043962806895816476919899458770510037369924383329319984228306279943755932731675683849462089243366706005572419488868797015201383450414027771892331256373037345713478790470693874551794626169166355756482267771362286407334880822976069533658488353683435218057185956408048416567554077148543591593247520913731405910517641483448767436343127377086840142995754201626465656907492545369652101907175765842640724624657302180986979454482102566530349960119524449014964089996904670815166107717505016093750569550923419568623818700087949704382353020459356094707212825159682724935976953439670868306941415355651298422959854961708026993261077181639320354511078487110053872481843357825140186155173270983758299856430935405232784269538137575735330424275038837759576719479926545985914413316192821916713237081207953644402073677881662320261173870029690366136788602481197213545771883796854248583253213320011641223169544469318012427244433063928011074959436518294148987216483352993942518604813863391135186902587911655256071151155543094139804066269830168826623299386667719121373667431927816479134179701568200479515592523738494947522162145165018797372728958655463757590709653114391464001987513632918362579345060282453660215050231012467776952103154380292006082438410856151491834852147048631823776559754899010769397179589043948421762777968638489316858832511205336656244056862865797901589251987002053746449676666607632567550196400297735614601099861179122620418162144120106839436597322008093699733678343374015819016144736701793868636888112270384290999029282614359383412520143679878864272910467559621478018996473752175664505013164314026359765434824335704609285816987819790297121613962417469538041583368327995608177566019487662355951834781778003822508812377722792985830151408648812309889439318583603477438147800505495166177867109059269463258005403823447193214405981112756991859218900318079240525583697187693485303586570468951055745653582001472526786433006786572546877040236593131748009358492942229555525802959082688529919927897836121589800335633978778275303657220135482515429334101087563070343033737470693571130131047006184103848253138008214218776633692500890617247274237837229438617819812749936442732252883432980040295570965978406595017508808034740631548340553176342537816208617119685997912395130137207272098756702950590162880576602400337203012648209828710973611687205597849991300006393099567077791950046616351773510062198605361239888458475183031072353636367336593200197509718541359811669818220437560827256314416651697837148612066117405988421674252996773808642551436107557638941720678037671816567775147075320954138665781032241947804372850953189826841020371856846395585809049599008653276973446124548953377234539828610191683582250388076373299839674918759925866373422500411766940365847224755947980539923019013575613109788781464644668442344460940141958805819982941025506713541400515793579637721646824201026526244144073212136954855229806669081762440512635452570605542570870746801119797178080994236584043759773068189118269974401625247259480563231742467953591092103966031644017894684978802613766691083680739977568641885920387572641742011205402554321759562400382764056311552704940068351223078396171154565537777360127542963835737978671440562307970590692162880194038748873178413025018144622236206717287875211653169339643260419138568665764101941056760452099501597151080827579544237129116103846518128382543013714150336412768314780689717165275363303820438612442099427058584034682074631477065416350632721809435126521093090096637019951010809010075258537691963343378237154739330525251373417239383724355259361635920866898543501065170784085336960482682141752604055490737530419615877646049383090968884464573582143332111463034780830475150261315605797283299034545097763674816745488385694439749399927888387834324089633505436202237274826728669076614594087484658305987508000864290947614793383233539346571032583916670097447967732355982145527521236589920877598250229035256349088126601108010248723453114508676600935590180654302172306623721101515324381701602253720690745598720993547407864330324377965975134938109609700578011441746026206306801223742601822507892981329974593589958542236562710442353896346664436422628040468243692816181533287088225755450631082803098942378118400524522059568059711294957379936105119827549598837895334753140320141411308255069830020854637899268059521691947678941975195633747765799164276359494316732113004288402685798562218913296716071555331480330972983135975702698431430259390440846544457922233115886768848276033305335762057296260561153269062504927569670819098762195076933757347043440097471106810714850177993593109225384509336667467943352653843857223807786087912967408393106489476514129331229524281044244783368272992162692680918860823393688109921513044180790380410631855545648037787263646628179834639194976147491230090985688723867350999682965145446778359067115338340402283089212646376551125575121515317156744198988967740971108822358450196614684896377084018723499586226520559221692811094465469808683478865928613143122623973225366165843680226752198051442654174784182091978607207743986159442949536123599120486870070443221024870653252982370730321524857423507431899670070672759445357933781315144307156053979678241478809668034304046564889130681301931074523582132262387613449655365708072741853910418186122862923391575838924257044932073142154539829452197801983801294809167256616130843691897823911487599059336398263908911430128093476769795274604378601169777905442526999325319795382224592562180779938340053065089274410782212228650528279084245054062664119116485310141793091551432054229452507482117851545172173133809062182039413071605212827208685668353368160404096899539776322392063028392457890839844951672886709509885407508561130143092903366207280308113966055006110027063744665431736017146623263694947288809021241112537254253149434170964845139601642848175994997611417606356386572157980147984931131949882968234934761023517614379032117905049003888709567131805498718791458771746139492340192759282184478844703513321343399004527886558304378549401063331045221351414248210724495110843788515144815511708887375140696486155977219369472960363042739098556669956670930861657388162958527501854342444073169996597580038111074771795010134934234279798386914048699473921876891068788292596690499241115580128062325012313231135012192393748383480168297956160287978522097533909785891289728853149867573024681460354069284098070117159582874772715436529901316264548627393733000830931496623404790935795817555732498274703620328655727911451657371703068212875822138816146687281263881128506750162557941630412205188121224245618181651716988126551336872377677800640884790573245510868124265782875503410579558980546306107949812669247441193729642951372893125387310716611600496927592123026557713318583893486570975006663330138519645633191516702205990679073579022298750028553248495003609022989212954796188727841269137034103147207936113743007944419156289780833267014029277670959916680053274049902232356454056587142368120135931657382105407438331845506859669353168197867901960700618449852995122340409509558785731804264745851815238402178247433598532685281647664227008711488639478007229299255020685668055300212213247706472994387996261998617821929866644754376836253680544549583312203931815714416549039268654169777647944673501590660944256411288986097031929733094987580605494767440419405489004538552329436164240811765555791535799618536266582830442304022545005112704162194288450433066081649705178763552171777837696325477931854775169391544812281945029077423496063366371467788907818771873678319465310329523684199286355132445524945746479799977098995448256600686800780431055251028723326297529161262985876281455731336280648472185900416919925901941357500556992605504121642911622626788307430906116146921674822058953448926590766391020353144959539908934172806221036461408099430725469822648268687548067523636267546538817778454457646054418237164517257781912633669104782061769698822502538030056790760146562779119930130197154312086852272968453024114744345039179435885420957908523246373559116453120503957154416800664738206987882913240353349349883434689881629888954592302073797272590528531541209237006089211089595228050834187837110240387987319932565090510729853309205574057134400006785907944523954385440519469512659660019682229457942241809495472397480757274774726935937416601985147853769775931283542751408263087228948421479367295002138238839029127680562332598064011724425765828761131203349755789118551555429438095349379363900493379548426214871557425764086055270852806082766709420797765524180025317486194551751370380842363521026027765319525193030579490444118174444446195353467306085990983085524251275096114804761362169945463820187921404439651964333473834842581769924780186585619216886469653711095838471153826456193226370814340616708041563388597601568743019925677116875429805896966900983319018615539804401610295391940982322413192446894333933691227004672715703581831108174742548999951383679614669428341443675064983632019725271073412169042488842309632702828156982273692798124689879736171104368028655791860654147187539105384792322931151627894038098811470435525755621835972702529476028627963767228145196876345098557542396228490639924026247815168241732545960765891524358578284826879840355242496354003798129399076877370037415450508024564065348010007552576922682712175502915294739649484229179860890888247123170302182530485538698877015112010135061648372011911244791010180840626430446409026457713234588739651919956418415366584590283118188049530738334333335740248819843904130777439521464014929951799333134281902008066138347864517276705194437830390912188388966471981910175379252426080979199525495699042701375725114872027476841351303730200904622580468018072508151821064241263661210623771645546318976936750564541399471017774302667042244614023099202054931433101396833651527790004429117393419878087155450151952494620505791287466690418309890450877277492786525489233322566109577711938817603110384118233624944330538058188350782657751190754002522802096414035075512915382930772397990973957403673198119016832111274804922787269706651041160680949957805560026808866935087174559632307723905832503340616863519025469016648104555953132737671145273957987283611115861296248120019803309635913143853183894550075028194185198283985259193904822683117091013366386178622786461295455024469977085615006798547683232451805874590946281769656202683927175020793565435484472718062332190746780775955256105516014606153220464762037234739079547952525171097782213434342827185215846103786069091076391385660098841593967894716272159108886215292100053283270218668260238986076363530113997441750364347630480721821919872690084792905913989875071622099936447585034280934117680978874004014625374896074773440213902543518019156113771911748131506390102431930322786348836324952377402491983347483011223801488307338104595965435141803403138753120765801027075311772670467439362531353619615108268071060840521353440979984099509963349775051098326285406880429220952374676693346169227643186179245453130354093849228419481450866680855615938232563906776227565773344239145394049548017833353000657773664835561810922542173279208417022272252774140802648049079660363141797272856882050770595611946841585244742210031840244025062870393572289830266004895447206012857279264270711794887954851247235513493711344412845482663730248413590954056460349138567198296689205633383374727754877866651913572929178215818694708850794081520666842947239698499990181892208948641401249635582664510332366369182909446903319735469161188779012913636380131999083820581455090732222042510654193545063789928465959456635382087577143250344415378800327186592588717774741873245099047550917388777210938893513609982796438119812879427523917402691474210258687088940495946046562197040461556073594095892299520267374103243801771680406859011669147604023614415162343177502142143814243552290383035224488173337717053424329964901594132423321092559005761636259471703542486315275659651895026649545382107651469488529540095955692091735426848805556428295885640084164384019353485139145898102330238132331373697015281156540218082690154107139627050416031296867119552476344149235321660397920485492124417162573870731808139414354348995223486695063387128825291210379162289699070651636780970529234596148938566436310754475182764630661950364524632997308960934438944240865300674501830348951433050849778357219263499923209471472957887750278708754268110119458204805485914368908999554238302899079342196354776584458647042529315917981132021147188306237945162692798712864381977796711659688382267910183555023934270236475319783301240890045757255228030057160640179943084005601545959033064592018456728719207986801185377851241994438538376487344446991688902947268926223208635098742108110354895742589007399325892183865104556008436875246636528415267534668609840659532144551913428619517443028775922838773029019869021376927998072707235865404354960592666177824940232867413308016696082123785853770761729523463439433649792741068484201628771961971540091828729352067968208515312467196643011423688403015521767694585786687624578154369948971586857569355168656568901468027244078039946238039575484514300214612466236598529324301477577259307114011831582952793462445261585499353729934895169338797230718772392789834563715250901927021058489112625107490062975420860255205792978473978882647381895884755514478995145614347961923166402934139762833847753868796369034370582566749235129135938647594413056012012822667815812863944322805798459362828917116381698637707188374363594761485855529746402257013504163195414578048249047427454821588473145944576067822623857101024249446872852633903208115826929016891342189415529463845313240526000527072364521941810274299288547980552804981694866853984631950992155534905889561969434883857999584122759939211659412108495150162822592882805924455504097771478130980649671742499868692172042093400384875589249840736792267600713302524632270001730069712060584426327181542318910109202131368325712893915081041367329322495716720442683477345324765220715666504446672246020474306507494021242964079715282542191093377330442537445017718837120908650458343138959885324712220306293440195439934898990927893238026878182995673957261108551544350910763746995820208210160193314836191184032650289714111110911820734101183081712366055951256381704513813831151874246599836664818774642139415831613627784559473480711482421778989801321754570462391453183392750192288938323844829843203442109219985588199168812384962142978211648665344088662796669757362091701058677494099143469557667056792571562655104279008030376905987910036241985119516487181576190797092385098295057674461864320490079351112729341051370224244667625792331469970038834818319150695456797734564724365646275078121744847867519887330476172446208561010815584152356113729331206959034971888973393745799939893507730367395927657761142412387770293257592583205020310585469957677293696291718276440582431313779247824936733599932943427656395161171285705828443567073614866709703155571890952157512106319862909379081692022755893438016621228077350250242064899622769005394143166228981439910852780168595847454640894897811579310105800380377727430771499526211284048648351328119642806236488393915864614854876740952235815538920031909696173151195426533494286007853618100571683788463984698271056904561645460857307601987530991571904859198242238381275706668985361534917058436784070407784562847005460640005493373614737433403010869600262044778315987527738407745752096748671779124546045402244071271844735656386800275109587071821706246207395945752569619837424472087966590951388304755310231153396400439828578912969551848866388005572921986357783717724334534008478940744260165419606290251733493096248312545846950121849312895342055266955294384045543509656408710867077549542251847779237990293469303832511096709391281351405010663798376974328352408909942139532937726014629903783934895468337410332168787097910136527679442062055895999890986360832596104943994401120472145819965838121439034581268174810138342255889331393061088097681251017512352380827686018779673532189915675327162689389404301264833631360301061650449192415608352068378433347623737475858535693102037948950896115785510493669491632369809321705184277509127538885498224901482668265629709900379889800852162140754374757667886557987768576684526165749935594131852241334791615287940588171321147763169315226045742842164855924006078752393384421616967906653313766086659271985668310624607412329204044468832578584726124383847656655803489040631709779193737684113422735214954658032898711593527165202957332114023652451478486563327582681828676716271379309946450835874293543283701763677340362768832887157065717036160128331994583867250043790355667107810290698005876881020234144791818105533620902225266271738983961546349547351069821305978544551532118729842250624134721858934817371979549854180222799279080712401988382832961360293748156799503977791942955189721117827625659149656074954774921531536073172204601102802555652197224377721938603537484653584181185236814028906954514436619150924463094526834891658616922008098376565854581920168658787519006597716313783069770021885450726634836747987483830971063800234648951703801856359777452376998015636294908834395685206310115333250879914420751417996153659973352857350613101851009727368887772761339289936289990707801547466355839855905807941591376080895373800415648382467271571247263371389448721000750878117438496594197841536191833854407385918494031960426847603710810659624264507735403049828712834316459950564698705646775960724233423938857160644463997290191149659247987936469551651637735356167676526117320466806890323236232606866425356384033492909186743036787472335597787326556951911212723526934142724929009763268120776155953314100607395949996383717274961912017631172266594336727907086816349512753051751863794022947052080224332285909893656683684173050454789580654690747489571149618667626627994508434839567750181721643118429892688619341702267492750865996752407292984255998900622308943441221361160452485210106992126619551140398799164591358571388181649833313045185526992670964541664840559678946047877975860531444357006468886380528579457059960900482664239848306809028762580256367311455295672186087722764454201881296878822878090332264121437241289367355306164908835118184389263011879348076458042666808298500677041756938015428274114944146783881639127138126379726819565767429460591062794410891807290521915065935114895205120919670858761696834936098539352832165576460792590610060734570686990013788971033573381251467240010493996048740624423823252157622318990440385254419985984173340354816418895990080893632568217882487077485432954962265491148893653757209938493138468242239537866200045741792829394217091387665923181752285594884689285189750245852850497317890957651589811335477778396407663738218257743817223472253326039769660696346349805921213430571895415352386204219354278766528115975860380800626731093550552190500292336051863336421285766333692677195757989387514996033859657775514682671123966142975604831456788464826170631314314596978572512340920890490986599575651491137977732363741396831706394327386626200723902102446512231895689729557845335177693668008834502911512767484049579289107298139124282699664025181053520682376211602431009980924906004204490335057906633803633942771092976432237802985575744635617685688977425092973373131058777589521134025391156231634341238222943154726470588726833245008975054372139404062046796272697471064579056743576006787140905501788926800063047353901770725560720576866344330614573188878172643414116536842482374260771785999971225738360281465969847757350346897369865815234091021186051518971848934516728512348942064873866626575396333662023351781621227602909522295859466624173439026005193065254280422632811997511800037756407615364404471380975729524013629192649377955742149546314815108198638989454417967364651088387127558494787114782800757526866370695388638901232940719525143202536600030100521737801618448099739097437413697781611552857495047530005277712435872495369412866970794526306482278567181085843982793951205069411667127817620311847551859338796587971174876570687883361994428383758476448205268668241607780132660538297516319303377920443888680282863285913491211571842387533860326083730191401136183024165129665161027365550005658295786642344066602808867004225072343101703502957696106349625086648814732509568008326647067672240390318106438246088297554456791162816127021160743719743550635704283836461043344963584801237785977447232332186488868723076119872477484192880582871864103161200276093111459535179334175768012450099008624276320754772622985826585845438585382105599280543228084251098079914214577814522278936643307980621706404546349842124156797643833916439555353069225872261022345385643369899595984001614959398275580044018908414709736458264131170853441984380142518741429750442105379466127789011723263941645580195416991232786643424753209771510995916923302931655391038569665415235012910448208397342608315441611475326265428629788129401782588967794727919747861137044896775461862534121021264688925361503177453347197509452249587928595614865445688985282853894603155044303473433434780154644754602399332607203959413515288201893951447278778880397507006849463813110638453530195733953579927226752178976151242630828946173812636835569072991329742516539916064798891542269328877574676213969289056672591828368437764375762690626831644075425387093824757045815555707123164300617285590851688442808341939954664969028151516837048286781375687723833077575999319811529613067349979506921497862748083002974270135924468735010547741535119342383396241393899745034345974116337161685902300852190937371947856203176529344458676278752481741425085657822239019635075055343926278215884207304891009790887464817034944789625607246928556274482955714891746636304883606216395958515533470367715197280947771529644027927170605101039501044999739604397742587225059169695453675280259483938460098096242190328295818258288475762122614873185989650952880895961863063051821803121527944832664862427405389363345839944989085917754011545210664607029715366396831569405985421214526974690665048900884745262759409096914490726729567574668594814921834999037222413241491761048705456046664962556238939953621786862411961834921838979786278194655185307463078512355068586164467551744491288373386177843646915488591681454367972332368731566280817811982406395162313889582113735946188257213363300264917312135865200533730699599970069874736827241783971449981981317981383719928422676372182409160255400190579865128061865367386656119829701908733751962372588876324668808967059186168342384203810692027239998740002424779760638410760884055352218470752694920401397601457677060660599993158332445502382552062017279716622116102015647183469763277195676067027872428425396178003889665475022843051692519557723794341579184279008998349385383552575698113899259341367911449178735641638549615670159977700202807063088681447148852522384902829839391281920842662724648214369898292243555174916365883331885395159410521911460870705511591807884799229269213250531345236176403514012096828556075522922643007150147633380023014333877104719116792472735926975491880569916892282961182932997240578929214390745717743511743512214774949088429649587804392341769071793791330538891435058967696491794727208310212245749147829494056656138473245537304955262478022131294731403590113368959740273637849369504624339786264825582343067699192922352968557652194366654693527476405937504987127168422215491405501064914458841953847336075265893492409619051562032685557960614632638134049249227358155877794783015234628588667760673059606857824094685602492554840096139385808507106825565490543168886111230736529546218064110735389352131801634943770224115815988549447811716545955344659862024184762443787555562841166328502107091543411023239298028789072469736157583411600756273740172616614418973861867560031155690355772068243148957962762659791605481384480239407679565434999596311421860071300008977386163389483937627958100358638455116160271655517342675719289683425624941576989518943877142277544506504990304665824696055073287177974238211297809893493755486809741483064944622988443957998950974537328898990044260505236675553826815969892093761322666503122574483482962367357864980811556151334236256450308319745273443404678212964069305767987887159217572072030087519975981700444530226918541101172628313945724153688424513889070836354084250116459299324925304982941327766658184706260640841095131436047376700849530263256724308002438844216525516904316829288317275535962090206366723841972446697410723621426384347294492556814556032092706302421518810906081612170143664179356509626963470117413922680144627683236979358280722914598843074400401327869659189080844642051414859533097612987464213721493864731485020462408891236449892720160380428116970476478475106526208959610773299648342860454603855785765448349988557492980958596274659330124936006173992855593384837904342755044705191608620110208198184739173424139243648183811589198726140919970100547103229984594396786367564029406132576925075306845626029296989874446763540093592260436730982870086178214849117270711211344299447158234381388472964414844397430611915719748399343919637748691244462968045560465416831472537821460309398857324966771574732279773012598457527321308547309211935497919498357616857170012252848585127256113432150034513999128036023480218906595609834136071710166465269332893106109927188398054105193382842535978780507559982387718080254759023265314642002290969791118099316861107960338107032530360367587801844159543290842555284628513054174882930254086509782762539741458887869262989722701368739236002072624198771710402451557479858979305825834066299695462641310260722931469181292912741480289888687659485292410348469250034768516122647626611001470966319815803571046339235418500614328716732599413153803873477167627838657545177244627876742960694332120442836726417174712329730775924884584821393395017163698351836540802927176343202018146824052723196627246802942924023549562857125434652582110869599578494609048089455292032749210559744172577029670997199095158352350707766632081831481685080410869296636216504475780659238948168264130714191880749801570331815135746863589201052399469060002699236537471753441077628709626969994845282878250785508400637673213686183170132676059147863408091114930262710170118956607849810708603116528919187532264229118585378589592741664940939460352942146885348720753859279966650896077278992275343633189798124076315885683003333941731313944139478171016260090630532422339749793637343075424859179850587326788598931370415282553925557573148271049057087776500008301881550303171724284310952829586945491568336918095659260985198759010626826154336082348468491192456518916346194557091521206163451316176896110197532480564073427035187886447236622500755134436638391887862541144458425337185422531843015199504144497040632734821362799116420892931043057290115534687168133977641809063591298798058930259463361517541258588557727795872632338308384699947601466655685602728108931793307385766699949389206157355692714525397577471661598441009385311007058360618140017956713065777087131349529664203815226103028814608167588685903434740397634437194146751710651395290907701108226153424273350255075876411222736878548980375712944796267141329005372836393433637395976542466991518051079437612615946573282524248872102334553319349063097359180268782254452389776358422417459122076513465346640963060006697959145957460087726392980880829667092269599851417590101395553623864833118975767103242370403417590805567141518007211693506160594757754509998664770946819304717080179461712124303594370308846183577668282939518244115466542773344527821449923358441733877258283581602019428726806432494315118035209721109263095086144533069914463406314481252531895381413434262765668038339115829033380682489269449713668963510735026336681458522901686712558370242675497006570323982096871992142287298596598678210116706106484457133486603058453033776776467429316382856045573707329693822568222165907459310513571086479395176640791525241420154867423219978834150452793977343497748280504856967944446989881531160954867161948809691609174685580585349841483429509721192869326972067481693395312394944878704569021176893775145179631123733885853390212953662945035232983602025190138371982293160521007217752344328623538338553921364132069221972734412544443223832635197744269296359668957575990954248926254706295361314831796196988512319972519535013958473610809712807516086020065098874605960215612221380074500986731558104210381939445432070058568798016307453652946230851340817749792460925368588353889314436530560306995073452314158205044517337473798399614051633859124193314115392900910190822627232358250077586701885893719109982204296870882182790806998575543560121715127496316205304275192586653509287501933911456159960170529084119850030766118635774312632529778839177354898666851532706034231225052070823111679151806574786282455131764334489061128718282454194589960632534212209898619615940516430254861345827896373278866531351627179199430773590384944556474396818985921263696669555021616457823838623146082156084056991088909112507165710169522111871107409028304828865131199081055697331898263672257914242149248327047097494441730703481982403220830111195499472691243112107442748425571168865873112918141967588690279281075707188353648083805671883445665755816365395616665975690497170101672407711442419722966385940597194876675805286021890883650630375359569676249188064191620812803345204659847009656994698564322282771811909691671400781200156599426349581631007494024887212749485067437035465788012526933239493678962477904414113208263283318883080115827861815115732466880219647751837604034903131828310967394162376710522850681603941717086325464459479174892646620408867479191010485158951459410539045458740312015826931126158914933744917969498665737450189068506675860706932950358367269329413814434740365715725285920168555561594565681448882690748044420009492233572741894174587753432129297770767029761721688545117324149911672317036227337786213527707194517233302839241186289182264804509711559585384730472764193944834557526010305174806739677541839728796315993489142667260900246073547747531644838049982774561159103238571318154530371848314983053039930255186804085677450307835387553379467747446239616102001929762959830942870772905360587870387833566533835864374873475114504097184150193289171046310296537185154850923006756306334962281478005067133507635673519341680190265872764032422384634097721846423766897941973631943173075156720777799611268215511559866424385345100791182322053938857912302554995017963484446553312133619867448096369594474393310087257151453112279154618862814056422069912983469373214369537748428127344175853269231715153234224641079631499382741474701117546915698546337013736005040563072334431854711450552799891256729056802679611490211054344954670149182766096517191951590091202575680778693488673878556008700005724596152599150675436274412867392341471196080816657815775175981769549429162679519929788244297106807074070943891276829068917443671696493274065922516071890205271590069272242608690941463559638197640207844507420307493377828984037512139106772454390679853232864904506072530868992187201660219928645926191114294924794111334505631708601613694041952676386575062213415778342917701285703043083689772942443021416065560722462370468873293983545477767157454014349154709252138052974168119442807796053419857131521654926523585714318342416513055181490668947242603239851600836393136570497966639393185029894376055895280046464338650961771007773033654696812946898298256844775286770863167451964044374337138336858185301419284043322345538703054960458029888366178424681364262832360316541154520281038292310637398962926006059151441998924812853521934255875230007946293263058232784730598012573604257243518986150534549341400179613891268563541900367628754904422299820879290752146376914764239049806205177345183986884082466685711066583310471876663203986169864265911110781186020984724336589090588406616174035697037938740566673197629777626011765371610353994450949916964967576611974265264830861623510332014407650175399698927312554551817930233340063444474754136953665430283100249089815577267448762501278233729053534973852689600316201332315506200446820788287623102938458221218314630367987435959011388809657206128291352938612889444041261378624952344494750559652233202529445117821995921345068500537682885418226892575503837922702159723833943880235629964522861186515970833735484775830047936779516729666501546007337485794209062871453619798952164451527812389600854930447499972352732616645955639423782736846716354978271192376414687355867923238386601196850275648532190712611959455080715577788031667387280929301178271773218414331646418961545590594902031041048981040218103584395353278334600308946589098484224188769185926620608748319125960166448143348791054497418833617848854674504116160725379197924216367367902962144498689659993650741029620184015038205411696769994818204223539698613380582717682177940352696422101154568493169393879533675412869026151175166238713729858073267619397222252745475386697075267345028948573276852576205417232989067607889613092797325160946731553196169398675413600498562461881837584119277943061961973952760872136876402786739320901954773253195062775314149744932851341063655472321780916243421304526589576815170376755973261729472026801986522883773390939889054858619431976994459037676565022082445868166800946038426651108786744118977562708447953066904961557669572429511376770522273083565170473876852972594336963035387973164376149196606842711615487479565440064876288516091917018396842525210594478980515269282971999243358057763532814714076603074514789062256959067318379148375575410116393277622483942370696500849614299217701924945288047689687572395664566133592824132813196650701217012849109331866161484308134662770588123942627767572834528890953756759235478415335698713035860543242059991342044079125439528116523911804655594777129975916709944026965958961768478116455608496787780501943193004274449912912473646448116795211541539571604074904503591825810582697691230232979084852900753206032959797014118873349429855918050778753994926433762370074526361341834549978591059620821837426259697073278030257954993654388363285862206455818340518711588753242503280047966665844988773642928586161623122688164879537960075854654034649701532590488647101463021944975479501475959911272575749232954881343603081275868363627753398190710916408921399028214937478740376796623896155243995228700648630663167086373248110447898386393864294519672957354698132852255368958005939088971163044280168985118496340123192584155729903969432403969554227568853239868387597909325971347278270656677956799398563150793681475835283380401380957973006178207332316598881117117699834274993248887274692505369044862296385570260790000876228520134599893938654835840500721534059223455504265752333691226233443729781898384779690614548018091405883084091351019602815888820817745926128602871267563736649974321859801893377367024401128010582347401597635743217192103530391544236643816884542301696616411653741561292655079506718803402080300131781145453816924337720132707503062044212568782391617510310139146122120361630279575322617087561218720347564164401875363008495457990935897700751110264013002740341803947785272797150694875810844018410146956622289296312283970073212518205207221088898261574854568976375906693600973709722847486306101879386770900774824943338344689129846742890103002272969752490819813240958658131536331100031316391144830630574193734637453017497394466855424057084676915000788712225204370212487964466395344559978637191905203194093515185067362850392918923471683704022153959066669495034360673398662072571588229383699457976162957525449434746310547664543940031750574137956505756969663847915426939757757542572832089304173374799057372484466417712242063272430992922986624123210299791862541493418452698558537131115427362754977012942710815742504905254214640541307380852981350454053787867265382467250029706028715486436129842325881061372846626298706384313159033064337017270120499886799834046520525031722752815732454664873970466219619761631667538307778752766080595626315990134276678333604025544666196650741151294137099291515534563130868074052879833241233470700770297841917941498951550416902923509338156879821275076036947177457885438661708962521741437224584427832883562954397246359028584377852258803507907869610349770645348229361073062484956182430019584170680612578248397276321951491137403922683091395242678319486843283655574655549025495554568013540411478967396526119990003429585076135537663410272335765017800062279932397278445787728615594139812208227089677700539728870309003357592996574975559981331903842849027068548714543997804247082901865145195517442732176203394324377669830422184121319653918972058010822888450692877940430914040154915937766314917774404297291883617502097662268255055705985946097141573592296089551817081169530062947234441072482343643264921961579800123063690631843775340363566481169087098851593830071344234895235002176436580898942829618668842876046025429423960331236788761143020863698673390057071721190607399467044834556747808048989752548780849074260610790351201330659418658480665901752078663352421182696988984881560809053556176065091789553891409908822127860835160562840046975663704240486131897819352006126992376968520804955268241338695372684153327627013033332845376865789216349353020992501764823874162556469792265550249188601284482178743498347936838596194967052435623858055742031632347306202400096674816797856379919240865262797010371862729449540835237678864054614693172501753907042889963502986207962206229662182576564022939321608936896992802898487823578247641577791838486625685342034108621540437621523026203249831587191693914423319742048266669734699669565536793217945323533343528654479839396235146024685066598849096474133454573378163109435984137664426135359899717843526472205660292089388048651426655763909820416763448570632561367125729052061070029926388460758164058673010798128189925052650718262119273091937550334452857058327166240516009292647099570972033618056261453921670853351995003815189030694916095170236200966817742359775085029986328017382676064564151147367592793645874646435017034223457427818682430158288331282457545099608884165120589769643781028864176065146764290960561176701679432083028168352677051858943574399611819806629763250485047421188832846608865490017184367251152455931635189437968945893490318809036367976915640318867662616162329118234713879007796631355092013775944040641925718915077237198061625591352663249303196015974478308421345690692162192592499874496710297734501683792700788316120926953171482258161666471486873340248124480151432968909319274725114441571061552806024251671826511885110330867566655499765700440157781215620875151196367208865010137509932048278884537804671117682107297046148562250542293302755149506770273232814577568860133020652349642554777089402579899881363595990814809543092237114333284340176676141136078875010048501594337368501497857546953031253572389761981389749423532592440261251367273861272461204983603625568677594381796576752895760104313639688144852974339392086150325366339328311094024299549072900718024609298689502851341667247642777653072745595689825015813267825750398968302385105445938549123662434676564775311193271030214078953415519264591201098667506370145901480851521378462451065663447489393061007953889911583872891937638677256678311120623745737389439889336259174771500946796120300822198607526242101710627280310804477327733816524080311838775354021222030832912764667576559760278505653481168148196405396186119129194998041856180423678369457514541118839543302494256484779879834963132818269718583231686011918807195389978787345447930590851310105039675935208343836203414781901411871386847637257853538845168324909883167438556076468670877353756851790566761453686651522935221479475638593273923019012195326051583954484742355932829343180492167144670154838674857299706778066555166187035020389943943428276457878593861037505520454344656093397937796850591876169370359454450612793865151058659370402949538746752458084494967225450048797846055978445836218212751745511471147399027247225899728376828435043134348453808517923912590191260375326975458997311946149534230429420224984941172600170292526527281194659675950976439959323631901906073009579899633395795984777942962438696428131105240590914894278886594065629368855958436270626823760294987018119730465294449302378163085598819142590108519229585310084400933600980356283938183751813839344463876519902416754363717934376119822732230305490826894403152964691218337862458861001380870521106477576446117080410058120030759920886074235194315618798105089857468494170213789579509727177699476227961655976394363465164772109847527767076966241707960724894963914606462486815519945941063462473767169025524657095743164352249457797523610897635542484586368818349299353112611275204560625943788471130297094075746568789222980385400771559133690909851129233977741206327476619691775121320060080596858694796084879536818635614552456710205071466326411871249953288954201786105106146940824340942608809458947948325089533367668694172364322907823513518724759867394436006484199938458313559858623989995465507368046548190284275894697068171774074165049244974757089217320631714496559617878506900814360753542615381205322417285227467839573844147536552023771075142999097654113473882021713950018176629610149951244899866567019526935626381540863773364400958510169193569557804019098604406787301035834150837683840502461404892367207940643546973804627503125961295204632768936671476466181007419790120181814126315358338359042068539905645663183603494367601949982570902782350299930066457110941068988818757037091927479078657260320950717430662560384659520703458994333786243433361605590055431197765405922983736855938681676492400483719727621246110043582033513660020244328264336372615907530978104565043418560349928393907441748075134733127897938790594779644826393936918428325077197642405223468471211250278025396128822457360723054301305820608114861404063401523200938282439264958770550429325602069144898965423386231157784679409564895261985172517349107119518138499441226311229128029740697900320405506911005920900420890141096406154815371949915127337669777175111137217674845329342060351833478269662980514526133966515617106248703721025974470348696263587589365754123496963311506440598569552013867834800839878293423724717777122992378233336878765871229997705962464571976443955193236150073569473552964355178600252330735450079911496919855229342190580781594658515361163366494300788332019819721318202360131536428816558699326240116319463528365834409619731382685168826174266428566436597125599336181219838717049796287465150401991188100981129272624362746345576799681944219279370240574189128354501683891341136754868420253149916236493723395462149008921689854015890485815099758866473042356868910695315048541370756530229329455757394367006941026913997955071477046485090949904635370580463799908464384947354877226002785220426589054486932812554966144866135900917329992971901695721893457264026991155269005132442835342362405041175414103812317458136610777572067017065077161503709838187554273929042328509688544345758316382679449220392822989378351447635383396468914509205798559129885007241007002073541954245980184795353721774320842307486010358536978917194183358217150174445202976670702583283248710066352881429356377443024924802980633681417615014392512259549422185696721543282437850109764446544328964314236670698274266436912552259245510634742416696675721747221928755100365510616043588689746484864526914665147141766252163687155484146413499504105343759602130767397575331176973001450712853674665489491206840902515855587599316228674101348409764670254936147921543920179725630022550024406514244438156700278736838278458526587777777363142255989377313923272409087802760229562893760606257435348756764823741713268893711969844343518063748976879044120462930960605025408320306373539488786324878403570070741627477631661383063370343638348830011917049119476606301611666917316752149453024311826165968019546823754253592003091022438482625412651732422739785454858650880849044221728814174197521065266865697248790095230873746326056213329802751084581133446446145613972668106892459660730043325164050105952496078979810877961162942371568001532500420079411516384067609648902436618062276956645650230215240942554131245084928718837466712842923814194317065936681500445973143173516738934441663341565717465011905243066309959271409622466426260544410622972690083829528294105583306650665933980864383377633297152718912236039756587390317804493871506916901458693358220869677279875914098024264196406087891909067686214596757838218144687889412092352407166756415012678881474996918752171623980254824134115166291038720378893307477207628757924201534154867121593393770994409483829792825425522626855029858280680453625989789944722105496319736243805841380194834748521434544778349037849571778549717062882603995288111680091870453837100578491142375691473690079645235220340506707564236982393842594117651215793728828265269246604296411896333746768136642900616709046659822614803771502787433175705091191811367605704198129005496152022217852080289368104191761623605535648528433914993343943312838384367044924980357616529656088971029361122991306196342606782809099118381015802679274991309237798457160008792966567646530336162407421971836323218756610964144248808564059898900070807202359935123254996386222365170497632637816673247102572075433204015125567304855787094863759668943704605040436040062570702017339747349503701729964952820310559885089264009443020831669658622006775169956954114269139413882207606832329081383001418638560040360831480242008583755165868277149516989320516350848644954119381654722923065053859763716768003344243380656364708933966462959879748612942418374939428302646707124591640057541652164652595638896639988797414404393628981549867253900035074971024398836876827221203781104224994169711345948431405838818830106322906810900499319326387563693791918119612009236639409248486090975040020392139220291406782235379278993810405702146076457864758553954451547139976090480311795468591470682842297122216125963769455945700628506039733893425297461537073493386157562938363564761784749422879051269838713075301784229115169904689936347338179432191665002532299039211673966455468014387554124524780726135487257264363941281531914297560241083164896129659216592943405281620194430489712896267445123717836910587655903305646682906390573762858015707543152118638071394567478650714407262782333491851568721584664084755086667714300089226201425841460825721451594779747938340729620064035530342812438621511687422222073648397498005732018799135844909285486006299095421769036304596302202411863290186824272674502531173413391649466263283616574260996113767465323649803997640210703273240694475648414679051469582696691413442174531475783183065682892290397098951776867320735707610585058635482694460701710459896504686857412592319211828240218631032814503026752893418141370710203969510025537430251472782990411058555130951449666084365916156724160709402232520669725674433123148625250048898937020086709958744372663304252848408916751353943227219864301747857594386661178128630267039739048419188305394894357585034677038186508799557682150809099993858983918696972640095878240782120075303426405174352081831663341258601392280439320021537329835111857592166918639753317031752842640729661252406095179634151877759380261915707020421884512690830706399795562063498354492743617623092276806778431956374298235077160734937031686667184126977119583096375257793554525043980799364910266565101527249016364414291957610320438940218584409678428396374420450220582689105984309357732730764446438950486615416454178697597442835283171920335163598051038393562810539906320987800594264410964121371763481593294621144780638147050629412549032972215035215361757995125601131284825563522844088456700664726159772280954008029119787124697360475201903120091055731050231690870882282651289180155768583552776863082747834319016332462407073884151587456220576030684160516984726315945287625744070100651029829831874924271511661308700103921195367753402633067780382428506126631513576691079879631752854226859081022623367931745610781018667188409937118655999867750367458695713526203516229799214381715456912239697372810688370676733247513508836253990045178595722094619469805171573571692626391783221692243566757608527688320495332926834763304635990528541590260388444115613803782402771749915423273915244735275210432858047379726039410283427871863189517060898798936281449251691728727791391109475439611005913132956469224839068657884133693539855426330979098196978591871747083429447037993122374870180896663717575227164936571033821029166159480134487221516556566326651673034375117127834362294287563520447597888463162365401592097127072731936690046099917811754612753214018914608067936284616636853265223423916849317901203652362876880109061833628445425153296583294904398198492506333889020836936462939197322758576082726622161730428353713350173032789205315030474087960407401194824336725627841813169341344163913301139970064276246697196712224036594627071745848733342114461001705114525381231667150953446698221183884744098291399169019476092229080711495367495865579803751038620555571778893956220243729555090207002200687262117917481150115874028741112779582019436737527373734655391413952201897549604706293217480678274346392416463186108837934945000268129106310321305765832425562140155269276055645976146925368755206159902419307696258388794312788708233424312745316932837569755832388467569155944355476549284692061632921528336902724091000675635275845499555982139226431208080803690888615958047994227515385704879397670810065870518505192204655825723064605353669474100984022691961632696262707109952573685027299409311684914345584217935903688050340740659255604608372093255096141886685159040848336804909463812241971729059116778355060639123931128607121973141356086891955787721100440254029003496000804564297264015983191510155162084916815820837339987099880161169804634267149934061819491674894843454471224700043002182549560593144905579738973149005273433210907018059764787263258938827071988318045813941551458900382599158961718523861681925766246379255766349149373306592783309287965069582895379760891988746469943119931350724825065447187647338624891542307121516145055029085720494885960956623223211835551473340655727028061969951344913317893470529813905445896111264218466746359392830081577339618051383216299797272519155866007036173591677160495387102472786020081307873611975358739804567148862355791570624827933617875039307117842957448169455221780660120290597382942758599092399195542614576646773598336925544704126117897740508198405316214812715234881860839768975509610965888804791672747284979084980767227935123025563479108413635505732549577453150781219259589830161405573077879975721529698533274826352194441444113224030384136527475734855636518599297146460052944816307253280238171039450240527903335059935565882068795602990995480473067280776977677835736458965928719641163818838213309305349486340220378000435017576235606683477357578877517827733305117118069291536952287623511808484277609210328521601318523571176199122044234330724609091633293677708158728111063918481729536736314804659769458990417274778947048101193251514795066470628596299694272560606924236191067158919159364884476672022962479011040988162442695093577699456769483293904958050099765549985058147411952355611035851141248498791879012168277771580396589644523571367196759070478917652243668773880656194392761934635932140683635717472529029071452972158288301593148216188356264122662131550812532340773878236405739990419587242747281527010413383356114367544495435785510877434324402996462520192422430571011566610494932898992835660290231532260290320449540262632546302481384894995262565881598344352631602791878675814413514217451256723512600544630256525097426343095331039920360296736354549502086572883732361367409798394343483296211434103989694615028113140873907270931852982060593621004760764793314279254390954704374593365920031099010705432894198908548031281944538633431018815533483505251086729709894742716855858675989678162276169351173523151889789701337408889120131513198706191151278297117586995031057138756290763902012438771977415018994736831432698113223342561415379191276702569445830771721757572029736950351143255867378744762616642666395419813927606931643028259790767029920263593220428392948092206318753297073084643618264651687778827965603754293766023481333787058653634176601047867953813598441055360562563000486921383854180201385261088720096494082395309695846541969207985228044205662891317084933504632531659911983379482115052155732651015846077827168037113870673893824907860867506136653322505375610129696051758891283852830744721731282278451460629876357657748788064139958768529579774826073023349182069823549168215600866560616132895774116889699362461104222734676249977282915196568707266026209289157736436997258030841430717967552665138957337683130153944853853927088533517132619578718047461362337681638062801390105493807962810021869439244881854753842847890390939838286482229917968515219725354448378625777583425066125257589226892168374294128807169230185022757308159925913801443004419913722188060945971805017999466361364486587561465129617866597351725330230501992432084320943331995699395029960409932487442519039773825783519517921766549434457670170144170553530413826931641196611026729755111039573526488750462043704758095537807278091142386821506688810070398746477503002359682932937268196371934794760525272086187037950541081837819717467247076086856413508417437875261588450072027370714231583407533946089449531701340925641544526852836337256135696307977947641454405095286118247069729965767733674996867804603653929088288016447881772473823140372133025108653108651081780086208963266635479193942609151641703406472619128744373036284170461936056723434922229574789356082162036738589528515227009015436437850057244179040463607588400649189928711898583864803786277030512671873519643594223825096325320093136484751077534636734377850497534220972011075190197603619726306406104547672315143617792022539541155380912355930126375107866661152798635820189273511903849356086106771501991417392904578070319973366430248680883626724944039730841391671594418524631424107331120950569465706804525210621431660388422702314266405101064826821544569157318496357260639377095721248060481193482653810171029341669985900515258133511498617123404154327690655169295484636731009987130352241482562436598094570071956895712445152580981499897047018492331539293502471026695103589617349961888362689244982952800662210120483759189136641668279518226958068542712600680299552256798346907098264881832637132082731001268585684007914224827148432317001902256138022918254999352711927822577420244494784868327536188994128454850593951938140276212374621167994303172730161016465786786431234126769688681754541577279497175951254698255237200451468120304206710166839609571122230990594325303378069056822843915652282630079333364990178815278842847504696078095449758768739236243781408814487228411533305583324268594889762840882860099288057781188099353264056773415264640126069630383107922796734457063655647474027553104908410187850485399012258695395862915107803161915328533858405472074726609090462290930175198844638915781594316559581703709539389495552642054871942877788094455760245522328521410108433736692810233851379849990644377724908003539241921018007898017747303680554085349133167904660230989571093208624863256622153350715046961793316224380627753317442662113519724088452522580806499821385583198920161513088117052009161274661812954729361253930282072269524158256369747318691799559279388831208811743978505492323254965897039192774472894007154552738116500790335876910829230684534184591447537474835465997162497756933280595632398430841089295321338839488856923970621263785861393437689101067523602812713062804694204780062594212228547894285739135741370586358913525452547615185480651138600833511429687591363363312579914509529391638892536171178148174971273118016228346072706784163472237438081538084788685551447028778999238413341027397180613213319631388366268775348206323180619087203421831163869994726101426455910187704715314021502380524704956594768958455204444272022612828370202886710180764290022486627093572437619093934034907378237669703219691320803608776379421869226768722865599091566699100854879303458744714054449530216226716270179193354156199480501853536002082633899311124703958640626399557320556354220785055318968518683444746079267015678784123064356445162427542744091579463313003537602828593707789307165249410889482489109967581500592482928409051948423600366376082523857827844295372061871984762936186929432582928892308016298758197785469986510381383299101258001023413820499940500496262190165970580895666648685274668355998007999520332218371394949692252981475954878786073515065673949169715988172488204574973860490901108250869324907457409307915892611197061482880387536465951700349236691524253181925434619606276528328688796096633713229354302237031435504874734927923989224320640101587876995027183546484366387472770840295551598987195397876714537323252791232092849203427230229269389615239052375337453559205151100941963561537893554425292681523942453971042850928958912782262154422966266824380994270494865330869576179104751777575727947412389941938922327695386708427373070034195342245952660705963909940151741838030153049269516440796565584020009737414689758977438279352209462758343908946183371211585094567951728191901354676063684382128830366463115859213135846224744694568540889752747951627055389627761823737549158453993994148573422577398336745392519357150473473900673328408344748860595590297941363751388495677192130580859685309483320884318615051288383971443694546747616450204511547371188175429646884404142664860020448263030004717547150193237969345780747424298206583908718473230270598734354981173210043240813796421858779313249663283572838334820442481842121218648343554780941683794168092721397734489139406633299192350411824718587548048234829026913136510224085499442845601522370907211327849110450321266563267047136539829469499355328112888781044434052149057458529514562468618780233831526019847118450278810462023704478049758154151011405836175623544468814541347536197592083327273319732646019739229798342566440769719522462931462962566645219348668662905366772680430798600360932573913446666975116527161903944396701961982503206532204878270769796254295220975827241419529339004617849223951480628734350493786901917866777924878777124421653792051596926202660864871576702070488489438673138003782677613134574923588334429573173470399333062723775055499105881014900205620032953857839398264325701180410263360599748212289934401173459115662011161069428953877280532923893481397558621381628309467454340941098481180049953790972513749288968406366207493428965053520923861905245654829195371036268998574344084931027793062843150736847230609246244502086304424189735367302095458772436896223953453636130002754298813762499777294087070058107017971715012288914915906147397086937742587911986008012512982801175314313446033653338213563034294607943922109620874294097857921222660542740310893938648260936935225997502861261846458920017937321185118010705069597285999229594080945912023783695317653495384142103697229659435088535021588343464841229225957652869146231260812141203352095929186098166542732824288620768320611220711276231406924123620850165421809179237753738944459556955953797369826813305558575036726663195572076545675475402048865061808900217082907717490611682512651526835516094992910774727549075672608786250677887242390382262069539587421139350490721692207064005976395016861542940592512008814193191150915541673339463125076577933165747933403682727118327343409816866062555901328648233914980983772512315995684893142835249577596884808312861968581683330457474828071843581490146338483288969657800730740333303911088800695500392903437989936747845584548269265614938477048671240762715127604154467634057699279969210456434587025690344737858143376560519599285925118169818670890524422190096104981754116549492743640204870742874444716773226337370358601130250514773206290417587985637900734180018809135223078624883289587718141637526441443828559316272257420127441199780193964842646156258723337785225534375663696686223560350438119455120742092187753136731779903657744225726398363279136209197394202113814276070504763145718034988055880634787961671562382098276408258542764847108701860821952247214787579503175269977113413071244632025168589608367924236901231752322015473026742607575067133991503721721368219775563084137024406281938897662143159942270186680903116083862389767609033524849743730560552534467123822879325220208064968784800308866165932504212938280253275516302361925802918939100983405526953079004866001919922310545005735721342823195168016253560284595259759802988786770506282266144897459374701175807779702564362533326962753829862021965770540906615472263278307758715137824397221845973281212387792188395198459133594805535301814195995185638250664474119793068272568994478923578131585362713183626349092319199356888488447431774730804282777308197206093200696238307717600477301525323323625304604808820228342505180350672344246052456010886372361015798414252592167214011195441870761865198488834677186607705932658450767642695337725574699653178631320803256257553785164382501454375027531393458784433019956576473723226514612589952984427421959440643755504505264893492664985814482984997742983955766602993752281435052617840135895073550671654241142992004043891156421685249892501776071514842697562292073569446891899931172851407721797151404880620613167390993539285612625556689148101073724627987755823892526423375292839797993456442126312388730232761656275645503596060930953915033977278785560314246412833579965140489395901887822491624889015472342885721313354487550485464287803541300197246075854315704136402909528155605606233047711463567979349954356828380117162932908853068805281123833279227604238625520287378825649885089624230103243001836764345466175777256655913889652918739221043630422354760009689118179845556335787626565126836110607165058327683325049075579474214064985327488437603873783951578328051848147124122076391457039555854624795977695772725039890435386997221274117867336523846099684899218527850432160606474066969838480753544312250362535658076729208186796639409095625691186576424008292232252447681735413195434698279923717363059542495993711009711291534365090959374105230806075962538704909485749624292944654221561503121509920317493997796875549196587124186639953007567501319817941651176646789867007520169124255413186655100746974237379032496880877939501963434846970359067539668197940028358856551290037528719009280530175216534260756229537872127332968196110725101411781254380026198116060307607160396565654044311880356346532965048811477890678220352278503673949072305213116615096428615868125380571095745480441195425739911853437824307620438201897402810988599662065227381065050503318496154146143062541719769198723037661083426629790199366402664425196870143678860244530632078280787752603861908428589595607317944622377348884390697513359926271950075458467005923873763547748764301784613890980286768797626835117272734512010722361781414528190315671673555556752445566304346721543997831627399976890879832678731162625688268760764819075302116601389699873288342858216330000263985514969075449058887120740708054267662787118545678044791648434879505170413016071407394088334054007262744110011263445671936549590857786786763179216495859833111144606379095187536816713354674333398761510327448111754394170010650825396362939970002040191869691583794264454812461372621285998966622518824886125840829446546601211637369160222020166095251874852965420240568362637507027751283941320583085201345915943590109634797774117390887163891275545951294348854351716873520732307573646628257838472689972232092461149062003661482740600519197951335527723399315967665212759266012246990640009493626112302933077659363383451165916136838696103505928183555910953965483414588621828546239639037127592193344016852714034503252894598354093935654245778208843319712984126147350507357859123707995493046394818016018535095961874676266203129280416331644475239180554928950434041518085565267428154916759717213513162191044737983437928551319232029894319832410751071274255060798816680215617312959582641157964446187716078614055859682334167613168317243654073079322102439480496278897987259321148304934608295460884556992567856696667110967074195389602223370881865422288940020115052977625332371785428676859867182688371742715491932169259499795366078404944375856218751886393801388499025352485915112724481448943612860255413238179686401903566912289181397203367500992116475526361122027453395974892703030195097478853669706929107872996052636195793733962110255679591141223282900231402052058784609948827521953279414964497206030550867327858498597694599678120363454005189840230030002682747335964858228009584500047085006266790320962528479260493565088030133626926465072065990342615365959423363626490569339853762513638852079973991110313199444860230837904731872116804533655257801733685766130125125515698476970201856433945375021969958028651338380993758488078701356971845830426467605261987769621881347259134679321973967159563309094255525926137252207284334214770072154238860133720065950251887861721639743948124604093386304841931492201288187974396165594741178069515383399549100537761595651958213906705168973258779333794299899629610751399493401275962832496629141165428291487806766629530261652026587356063967692690220645695628358179905387843762304883265085423205951470883414100114654664072241627508796085013611149995197738978020186471811853302903464337188699003941393813139761149664942991035658942682344331012784443830472500911292999485396102656695729950447211137361158932313486978271638236014399828989170620814376579234671189440277150697449900495485575641734682177921447286663905721625940407482761988227421161357731033956210413986025328032504846305117578183697810948466318822769186324586847160891857627053211387922882833096752087481302418724176149621917540914338455025324951906327447926849313928787556861733858981894090389334922744220150181995303004776861167014222218551471745495562845585410520278901832528235938597254302512750138363942134374219341450614854241456438078298316350184076622392964374915153568313462630361889647170198815038297585671131508606815964722396678537865317498120572341931249210095881780595876140591558962031466274212070234348544865301904241853804544574877490252984727000306533987626458488616629879207664329939089295956403731528895060271677353363891452685326687015944902494889126701864161762006978866243749671763442565222736291365339178354556316672360290649928678122181783027352933474751255049721427731405053461533726923392711915924998520277461780650076726913195790222475417039355550770017822046009122889946345399990213274111843102447002162453886397690539271524530743720512754965038441740710852865542819516574541456681918866968051174199803989825121129656503468954615562829963802760102795408413593831753792369561942780291376253672120125797797119648171261629597025428583458470768483674254866422894635522536617819773933848702647235806294848264986900604890847571863541173453639005373752161426092192280490347251423336711371479065445970533782314642308927174542663215906566982674504634612212720665346790335296146176965181859027293850439809646866409644354955767697674316957521758962740380508221879603101203457481446739370360579787814763128854769634981180732928264154038729605750968212789766574212827106919059822593991260735136918375819381246354622021394556518840383827773828907296158183315221671287208928424886943719031219096030639122565771486872965146129954849014576809746122090752123119970146295196320709159974663090877119253324549417371980357732328781729503647542637029606628497924046192158282882929954404854207434451904267756908605867480765733449834975845306025239365616412577674308188854676482638760034028083638085511810307418698093658133091644608860947786452656526714654272891893648351644745330523296145544217868584190267774317189058954414703452891541960776916601260187548909773129276174890609206144800326663395402723490670425731345219561562468972614514726459313570824699685750349570615460934109159583806834476290508452701207907107599594704047604431187624984860776954821040634567303609541528269682883272889335329549121731068658746290770145223628073971400644560545765815648820537768567011228905081713862287653527164079470514387226940028374438866913264558562732095748149035881106408478210074562880576634946448737970869685658057808826887618085994822789788673330577908565748179359776184169465890755150603635841909916463536223947743487250741813602501565545985078497388445369545439891077206787999869474918609030035789845278846488287517293188155887893473715479552156001050090206351826291782995581313392971775623279031217818379864329825781354254422810872743871427909089912842398972284779936200586416335591210028332474035662462710455827935167254924367029453644030458530508514873956084856936570358088867707522175418855502306295165620536000635905270755005404988620838919079104854484048003039266820791818680996308350364396355074828722169358010541693700060039127017299904504744164965886730615440389586591813001136552416511938088672891538478756243492410375575165447877835720651853575620838166934340738170342684324972052052971847736652377387908925744210848871877176796654666135161942993166067657849014720877281370104492499117335093657319098436263218587574319288997529935806298595091559832852813132518859712636025450172585129299971146518795056476768986855934473435308796679692707108138928417710608297325696070625570110278345891680774071524359119527847447801232017837862921936568487624454477157342293497001454867780619530781196489704348824220627832916894681694131194983677158430349989703940612167397351166027139506346588874618852284290282170903694352393234620029407018887739811526223256059583093822427736693594351911068108609796039122213465149880486032191688176550641800938387017492572608236909982753392973029926881386696979805966627854580116779245834571169755453335889835924368075393608945655979394151957629834439460369250138614891046315479513509034323846641103331492637975491851657381650396783285806813633440382543307423533407837486850104669005196677400914951296398500330297511117631410537102560590148544901400081663710948696864629385557273431047540085867238598763839984686776281795689400920934255747104090130367209095334480125912665512893288040070851850122097369081789537366573920727109546841439355335419880435452155402956573563467672651452397702558124357614570194829809973057065149338687915118335443159609700280378902016994074221404332660933242587679920163560154489408052438919123242238029709762822377700500650130099837916326823263764519451050135742590405730176990573485171914066706444079114082160269481332381167747893639271435198680263639017425469199388351805630631713273468699510872652354213406457740775586513787994929143262783860885417327430696835185668582867639012022656932081331248525873568414163765437665665346381044067006592558396976359718823649520334642393390489932689152491498643673332680091633907182399224226268686016115248330803360517850345584771461191984960329316388907016856344532120754772093580905820921800813020181790155524209941866171557129801537225611015409733949673587721362405537233135996008868270324283356162913863805327953105525461188940158530916027194972416424362041544673178179999910594037503750044374888488071836615844077706852585343864375334443180261643393760846784329585009050112693505702143234759199239792581290769063704759025207819337911847113984446478414799767551055034970021376462739873185528689645247761152417484445693457638570477150591265573314672612668366356918838252725371774808847992635858905421944564373805183683704943838540698555355637241438663061018316898480118745584552859414623216896898469027444228975353223815118717143809443845891163721759699904230291356122546431672680482072384898223652853317000053338383334764189110399320774464961150079009161095341158072593307309929294654947783059994544212567954001866832575391458845025876090940706960854005491328897698391029492667802885396054711838985042938957466380278764633548116480297344717742253703756533129349852597572161626215773598634177679778901464861044546488235148659573477660941095332895762512480721767437293107074124993705052080169646445616355126573110466786982940069876108069816663840778302339977323166656026168004379968662996363972446833479109046265184445398074569268194486359871876331347538033051593328183834710897505316994570010416527213741534805397556665079915717479767933524673790031906537620920927605149083001907805408213854987357801000312060174333467404328915184808361957202611538115333472722565744662907270016474819463973189285555531298016560772132340261597397813128696749583806812213664953247829039126020715312483078308504751538540083426306441362818700685516472431763389126213854566774185930667914118185943209489352138532135163615856760214217098246078060799672071350543550967994471672384676812692017784906032680243528741200602736253645750146477110655078295668613731518387201780686052499999182286838072269351703478833619567636159666274939986878971044306738701940053252824627023451478052295498816708261475173510648866112324430802835575479247621152100062534230768472082726382707947123248068426264577647950897937031170155849106434709585161062393401949035239776252387129535889990614846320255277846159750211598026709683296401502892446268549492301962723806538056377690543154234828221189375510916352428173108516160029610106309222808800720368712225254191521606295480891886115953348466927355921183437116207871236052517259857259534264246723428433689105811410757658566975769184669725683767908279875599547268385528513151124996598203137950432851484757492091503986952224888963883874776049623717439421533665899239198787236284180379408696265079488360074386370534564954688739395821787794417555731755805630003574697691481780839336235453080740960876416644478274061708998309791313687211705048005728881691708334561793150063152889230876925108537808860247729896281325052442269841538393884543908762170300304544424372441362494356480334000902194593325343624748036696389609895998338019039208394373122161437746023568146671497874077180790058440723621379979568396258672547249110589538155912765416318142658563007024849681870138796285327069607385687354594238306590141801697338817921437552401530340791892288269857936701756672430731219798667087010859346777755003878765994317763162409868636078642472554987428259692939504239746221023886752916127071094119664666582323495898666671667021269002711386383070253627663633755575057142038449430421199634799222597071516457849624765463256571617628359498535545807900708190248732597477070685489645582902545324461234263557895354803216156721296497904328557566163841072245445856389971320947357886205040164958499701540709713000765072499717576767896412365763365500738255096994356517690824763133554363849866810986500849927450121910207290823303637525954812226850511323990991170902375727333789599853255205634382782657783068868033841850130336187981446357918241189679342322564083220277519216710231053006016371128359028923210572322678541929672375170047205199560728191282652952509347982470666977613492271374685930403839159954043304484874815517602265380251656992708183523517392997124684297792103109231328054862467241253715858956756333496260595279700354446895534622766003532801492289968783358083790116816614227768725128031366864457073614820914666547035442196496899303799156752728301485003573857550028951873952044353952623151887049729220937981040275437080565484121591281989808317391983086523798393883208045644931126773865912178140452389219118800598442515860384810443792182635337975002899252902288325752373278520209241148173047459964931906617706371168846767723448250781311388754366377777154677000226002926099704496521209162885332086347304150080198631512091355880057195458044596189845597474498665750527532098312848794448993553596857721276080486440029586693722345208026625667259369226068864040820718649964591429450702666911889741960843879928538133020364330118580641439792997757492543189590120627948163657518540263981676400247502955211447168484715287547535472708485837424334119034895875730969297895613160137289376710356161265688943885316464627867714127939237979500906403207157035629017302492260858117058418820454836770282152749754021139537151179716954679311800090276786979045656077099768574378137393342859350562449719815069156388674800858418208907475435434600998712125566967942696963104913713450905427278259833212314964358271935663084110980523464133770776995824923092338387853785465458695154601840406921014615209280416426560303826769917807979401132685927234954496446198841491515306541443688245428484077712883493324738518690442926468485837276282541580089747573942086111978617713092256690294448669892325179077141021434412749530323780289706471885066685244011065419627736896945548737308147921516676382847178098772479990769895425196174900681143093124372552913353046551080670028397686703514137186653095572566858172187051279669308918440044588785833276618012616473384057717380120852886949784336646249482020004463402787531980288588528554770913795059293484024387291509287620492140949649958853779750651536607214764317226882536400939365937082998304219120557181834067684103400647802622410829713525507331749237003443228825842557757569816494662353504772179616096767787051830704682069873705742997227004361214863480624662779602506774976948973065190875439897787268995558186330618489234497457443488802524145923925442412869231395474292699418801677800966013181662907140885110648599143356111122397893786742237818177319722701028420700599314550433242455399526835822493782224133872425830217396554818726652532346609044323180118621556500244361447769035840679694319065621731232969051092120456230435489847574693990711093052895227238073210912838090985557593513080159725885794724915950693392571598825509300401411649611670869946300170319743013172450248390676240001503643096535737426845737157611307195546469359413360578359646237162277551743142449457151094040954318636287407607273158557891521352023357077226461513403111247585527518289486360332594572234176965986828553070706489381548883382357277035769849256634700584273478645357424305423932557939121937807893837131019041184887685714087866826158575252009023641044429144203876264121313282056206521612759408914849121171499439234797948542003208314489912475752839083684372329025029945222096252116822435192087715267563844244565148035511297978634984952184042464934388775105305075762427979114107156559005909378524999086371550978443387806048236447619084088573000466012053354631332841851681059071311340628296922096818462139153062198405853379247792720285602971941061294326900597972667093719709693856560344030309273121220912318336103062464225343129501047473078420580821066981990059937181068472437680697247247795024368212121298522896826520496492148016243364625378521214257341118731611481612026355681244469189833894878889276400889799758115604257020350383317365579310884102284023748980319332731650819703461837560007828010830938631271180838672944499354345144820043472504997883775726527474142488218004892966328549237833656437796026234847424911650743999238537182215649778387733527050416057322977693211507100067260582046736414840309681977767946297659904609888538575462048825162487856919650643882428362942601443453234507582589439400904610525155618479652663373311078911125135630500096010700958416249402896069287521374999542132933180575117795431237183595576934930708173721964421800762102051365732937395091154839164689701003144791097380148646017207265174090451564960813812839127009859498052184918661831456781519039446834140643763819521420952333488391491556113573972118067156847879406717954589555961687591299371927489280291865478306947959540493137633580046810832000677402752318014274320557269222593006792991025607631858177489203367008921161770487540499387058526179950733446988354210794761880470463782774256276381476995748630289692795407774634704586831338760419275599957661673642739520753800648820576922957907032814412272525672457809766651906967133805069854856300551216406405479316547009707585195712459203197599688737394898282053039941713496084057250837724100784011056729448075368873405714748807205495330013536219758415096056004960971419616485054258811238194291950460263155663749608034489115004362055423146097796490631145096344437886852644518418366501348998931773491724822056054006225404346987645175103688712723722151653305942478355979199599777814649052564001325020972259499822110999767061832468737490443650824351523422345952490232833117108521622202798373650335831367137168035314883276279377352186728974867615319691155347516308252143758426509146124059291203009196889744500264467378194370735556019544776393294576142778497026950448660030032454154096976863938435871228682514444378539130595545992018419855970159394734776136503477203810764937059771114247012169717365877770005480756554914059875872567414011387053660888717207087715519373399729828737741074250385597519483663881909224567212023577532559688331516329355588044067884890459445661153406757742550326005078561569468060476520462978694898180243153732817186125689717569155569913854439377603140582497472689868900510446645205775173108295778960153434852132778863991200492144004554115941399257545005250571259887734086431613041489361623121830894172987148854122388782928647215303845932224714965293982910808671409190647974136392047352189472606640447526204680214889200123181679817750629045820766259915708320072246638394034673083331536666763149977185516792232779587790317448604392179511773606586591400807826474150405671709561600958264611835075471919573202255541711835982498579613554087916678996870899205283373225537403775800472000879980392735494971373596224450963797998720028209207241766980067250367077492776400008041060762619431506953500300388783904796588409741417871277007420186567596285190727845008960445624397283351071913809606389321719754648486611043927665441111046432965295536470457731098278782424970195149824155909343123372498865580600758573808716266999874492097007357239538482083886903591915623891991222856333438572614137042769000870818655477345858704449532833118383238286690647713933815145784798641720036027344275729872999678731040857939495684041417666032366410215197281735502682432022568842273875627193719006374144034262697421568539546602158136765359527885080083639711033241411966166057489510673506908383989945099410616994303590968276901805350761235313835296051364592345109969460243507548744432428188025028604703243489876794066190055449007428819510026258164107846195791480205109559920800441124364323628719074930925571949323464821446335473426824672864823378889429243868089858592992476269476717563030484533480386361687789431378143229267978729854989262069408807069760759990062772734149037414019003833720400961366470797501138351884465417856646620822301373579510276806636516981474949679438834241248855965264389355804871982162846031935489323804003900794425133187862346485852411622535314384734121748097608689118417120620251567751159299826524857323880779080052340067534000089945544211021363129214742792934551440252233624082785151888278244537561932667829705565890371466702436523406248086592339625278984442387126701041268974272192468326566275648030166418406914178101562579029501193140859148142522957853494462088900724724935987626732830502036554083476102225257298633294198574210018510699380445714046925256478512880344899243575813575124702024551868473059628661985813809176406167095449747647119424818909045593122028846648872724520753564038425430862557253148147201613773631667535960468772260429850153294371059657386729220592138895382636589268385815532192883861366998724464096391605174190183120886543840663992473035959926091528153270704223316087415720303401207134879144057370927179131529626072177343517058649974228884692398912742824345581051940976904037381410014708465274726850576032180405254337797057256356319345263807493003715344975415533890668596056214313489540050456956210317548255278705999675007459152377417874041096795026363001605331532773269780280393962988808923872258463163076610740287334493014490625682365773326062621994247225991180566333581412165792071568008154879480629789374472680120006211544964043320516928490597964165227611782082984796741322434876572995459778304842167082900417460004721526829183296089402378345470804843340066813366199994593069082904879626849037970764674024250931954929845404735604958314006063600211027092121577407421521235538606330744617166448596608429494993208015481351508072014831871117202953568409118356698636242065559051710074557245473701281260446929119327756126295688949638058140846310502383341112213754645877224116467287397822270910119901092392760987869228557982802540175427233136294911585848132897806214036968732907275334376927223176963695699314976916327330636597898104047479425954482348470051834114162434465430350542012751444013565615475081046999308030079021884660335812187652332668231854809977964306240899277425732523551903201258389645739149256580128230932599297162646959282664331525204749607972418448423213194405009660946135133796478172118066366451683211933744415152089957409595901278777717853063022619661983809512215050316411282531183886501682931216766518742664700752161490742131503385408883745828396838059559164738961445322032132399174233318643354024628682281277855716851310675058168069214926972678098482364613741836987486486223762492150143307669791753207017484218266088703002046775596315307180946011184908070905148472892921513624471459964559182745019331237386884109189472900993820358558219998703236776848690763517389698490095650688582286531303346224045472963249530302084945704654010764774200413739079184206842998537213982643339968516185506555514703650382943762517991965854124658732795334940719999262252452940896638188601067114893101912196540370807717084493206149287484472041458886434818377736205141988461826068203515783299508658872730187050701380719430380013728410046810950781228522996848600394230038903796491774854114359343858125371866079528931010847951984584471790663795481558423883593979513343978134565400088614486683300632082102956555651339476321670689737201727614539602249872438704789806926214625816524335021346378502779583247593805942186379799961410221988150894131287421259754668416751164711889025173358507362894946573762320944194770988721242801267838687666972708494438017209444614631881940169517861980311277107958375145560076764470200226390323148353616836589716457286842859557443169460381165446733741445063353591023815535193079162816333579059032880192075463393473981185809352276192153897052726981071522679618662920002895072311410052223512807037334415520698135266431319500602660753435128780316683865383461301514712578554613215533441801910289299431237303312130106227217077959440184043799973971878473423789009497871432646195613346862331660863656806489016321946591951944733375362334419369239040486233063655974166847694965092461486998251413399830701690889158632790015381769984129169838666876496565982477507779182076961031049241113309987408872362795332920829237934686417605705395752010251799424656828736023134247712498571390881170464307193078008171487953918180717715056812717289611199249762872525636709821301291543577754485903394135733918118950727686773158583363974746512046301072933054448095361839173692979464520573067658124968018942810970219127297702400186730103640919999999273120854209562071991986645135519856660172556710715039637287465461091205405433865607152009809043327876120020241732978930983968403296343737283794702111831784546421800601713249875900654483025438298902117674222198555569935843262237609805026537622872176758315878059929589045513601417133302442308291750387317887887746715062465472891164214912562978317313162611806792281199103798365346549563389179667180817413955190698514795350881092218600062738306032426124088966138296819448550290551189922349171160861311670084955367244961085294108852585020420133285465610053436073333956223006282790120957786292210308216497312549010628884620768352260970182886769665926593210682115917045516890385798426188547646553744346187789720254957514149636210606185418703089181161595744909345819425425217314253207521390175682131657850065892619476658992249927063441575364988483451004244382356009383885073117442482691767568749168835796457602043812896198983004789243230114764968609329547495321795235835349076361290739166138105969530317747129661337830208946640195844340034859106136002451484279673889320138542037014828552042951206866198526249371825822110835659522118485173393488020392328011520343460455373092482947621477950525892951098709402663537026265408857476866308996955650451300232730171342558338054026125480054948376381281144230362624531947412245700197327917058756439022023448524690718606785395154275004787812156532074520919368745558082926087685673096088382577184173139194114098862587121906125216866327519666084777641654861987356583368193791774893866341121154936819829608430610621252673573099246746848699594578448574077849863977901210015535221739446023577614811298163404469369422638955300710961370545457963555200479126980851295463557686380326442859266934009097851292054269121350487414923253400610152979845739376528313965912851993805840320157183668771094993701409982063212741653286037047995680765292722559495732613264759693984118889529373249156057147866819194816836181205891224913239646206078934106186099635750823808633281346700760830599579477725758645609418706403650142204176798253310779499086210434092743396409067710230252288307619442164367780498719951429654658455519090564628009687318451941308761626806068194483834045762850763467819528824317917827983645068762334222186653964877046689916428906621705001361908580858555544979824141556915486359943053783913526674556061781616144836913517811755432478799548058650895410971215193892286749781160583246728883916849497169025951349204313498519950250515415006819699888822791758697494618910371979163323798244497263451522868998028562235837354419256535814904495987488868485583771142063370233822515411371262261097226482867690786593764649711119138811375870606593516532184336058362086223046476381906738750795522945005800944558902440754961840793221401223231654091697572085892257890116025412273818851424200108237084856695441951823916369998580134644388649311605229185868696802659585479783965995089942209625939105832193992832197667335816233965909970909346329567635222441306456880993257449412211989053998213304810396745924088856035496945009247793949408136476521809644015128598653112683993387104543589886465309924730124252865308392468961176778788813154760459276520393962246239214048358455059539204214279308434153476509914919820685055640170720783917263522357371200644206000632771383758234905385871259771235361298990419967598876691572919360998751164159359002147616144532156789479291416514223535830817449832309588428417806682489809126430230951877647324269909773416904921363685968656607823251894076312238901502003320174180774709230359092980339148199763852139019424763458906691537585139321756304712332076057078627383304423448990101073607661457048291421234311549330645613555190207440187901184002515555227467936398698392527900461931604020943683513539164580092680697300167751970038422951439229253213416909677867309607388675453846956442495534125268351441302480485962010409143422241602627491879792844868193698422552062796773845371696178804660755776739713532792124253212500192949810170329173746108512576438768558481226343982925107812778581323380830083861536598319608965601592096226635484043823094697314819045304140277657217664320065051046326615751423690570186166362618662286493278628699732862436955081994601670970345773611355891295989846498599067362362081971457187589186298044769372970016299594159260799186394862091148501062197967716008476303406075789602082299028786728599166228621713807029908005057460001796374031686430651725421307444362486868773664232405703652755564427536749655164187976224637009066931862029952801091557603847630695552060057929587343719794037489555609768898175381530075866082815314067459155046803976382150675765893009990953355194968180854742096613153584698484970223882509990480649783748357195060374551918272853634478791000936536320107985007327633679092954791085994554793009562251093903039556020972435981645167062955322806376938827487544317349520112688006741955789069459198614791751797776358574821807263554054109703874525624027925848899978661953328979749397220454657084919261982498844877911700179747529352941667147588135843526617166937228050914887933159435572888405657125455502929909443203520637876559021272221933572878230854693199253867920042136611779492966982124405214616847792127909192094052573932455283267230909657171213769939768774624212911237834504092296616749492288504663646110047969055980339052611960899105617723842498285378103545716259085263562316226148929087309826014824395073293435326838600466359748326189950675107079649614619597099601062201162230216633972162125067162887286944570275685271183506773912532364959992968895772282445826480827815460414796908499822020393079042923223289685947111823218901450185969864377684703572600397447296644807214059514170425433128859676076062262687786747584736580084856146669774668597811992778649387283411186087045472719857511878806461649032639452084134772603465184902586700195390433265065037308665478223988490613142998697584220722138065828879170468232472658616279900216703239279351688531236954288080607491016183601992285909120899135687407267418764457167245285760088817778640212954715849113764754847173694880704472876077993744567217534168286853686085995666897324844029360887212738799196339790389834045301120731990770795219086133452302771761133769770086833338940995684308719059548936381544794283878117386009498795428600578806272051625674005445012816076659331775540460038216432072588850484927185092085845794559825339447871101877887226570254339644263233042290639570779519090518417205790350306408992030470112532250555537899721206631982818102299126883496893397945158198348869498454841872582061162554278019119515681375172473725933599346585593986404174766630171599784818728546412437031009162074408944494095809742388733936684807590546083172116601548798543877050796736924153458465894221963388325268074663094474708627132705821480629927201873948595710035071856353939393470354381818806522241123395885403662286161476422262374441430296164932463977455158534670557217683915957015446425737532171941563648633582153464709673201529193033947907240404524082541271673046168030112238494521396204567291594555514461468398923002664295751684043582604184541285930529187008683884444987446574377639022749248908126536493714360479784002781879034301753918162621628979467027036198932225896615455250132297613991686893764134166567539152969225818912213027079722193815675204004071511794860287548796399770694880229177643059146792616227342642295607756664141923677335500786386385993307447112643419764701820556154957957415231326838142913293330319325302444453354354393232925577424659170626973557824839709940163740743586290032460367663684720461609078924882703228823085051626290522996384507966952713554869203125027829122886956543039101235610822213904395524160890632738448715365231425205217872584915239480845194517572045310668634358866027203945111145987153015831959875329372018555774247759694059189807340079120725322771211119822894225337841418613510196860761350391198488511776819318166383673240422986952208153038417836214669605011189661743851001722456887171201093234414931904417900726528777614167885162411074179685366085288243603426215451378491328842551722497711816430622968932499323886917361006418359106079771124771101020444881687773592974686140007574064211609943198166538076533291513819987565419176846853483191826713351296876283553128450195272197057644298126025792997009343881529535159788407926344227045191228841100511566082831824719672187036797263588698819581030127185737613828033565198587753886140458864080334865575175755066909589664155978108215315271263901736054382008975546314223027014825209944097502551468164021943941872122718044420301935284441903520962324362633403600951266816048372085827907227892699496609322114529950350670931804270959204931713881337247964348367516352643650827263378793886764234094857898799094718603629837432451764158099190127116532734466965650431532258705776904189291828136332694547377222727021355593781530547101715818901281804986445738779967929918504359746238875807178677092090945512349247717658673327539653036017489079623243453624481841774649989082607780090687158557072093961242194142556355357961864575946984712177438397278260344478730745507989319819877674088228523524052840939699482323419813616667854329552921165364883655742317332746179560277050778697050629581227966062017298035273356263579159836262701037584563804222781847719854567942272536138593485704119792943742683662385271717269866876394836944250542209833768272162651745239377376950428551298637574014511954231301607870013293705475888848960482240875182448860900823118811159678150959853020670197955560670257145142448019729299149346132709786369998142849271078817329064574114218452669783383524151255558787976357394817283791374370744011520715183286720104651104073518107088051592274447262904922124887215520923760877818005203982149530781545171495933895905658168550014931678039162204421744011461599545627831713857052541433139645760150398309284149092083356277693604423909941182770168858517641683865744504942567220731164466031755084061787201892645180467187209637295003636447299464688041829974639464957894513770448887053483022747394207273766456515818000705379376985315900563245360957483375852897570045104757910290840336274181142818772467393698615890282486619574701403723501366416415692667350450763999474526430424200744809112366930204659466317886397429556926976216264345215249948828433645962867880992521799698186206787362027015569467291284657125362590777027349081161739138654286819091267735442221728807923799047851006727208974684734701186118152725091221309251950369658108234467578563156810855580670959128786812477256256715852973125948683632675045274446988759289610161886670557571502912588990991019232372751944134538919280469613014557401228903369624667140599254477846084278539120469875947836510376359862588289923898263555060466174560746270924626514300970708790266134394183398577730836990989368198158264956232307396995046058768833536973758461215228985449662140731719119872659650058823492112524705337479367436866306744142056133725476832547961922475217856509955541038499461999682523380968054935951392826542313127355753709474103264064673234512131848484836622537306480980598592043715745306314651554366816118875153454905955194683981871727762989632225669862267201135322561200955517744126104968071448031628291467390899261521208576366456806129103031199993600932773662454860453763842466543739453714552093561790840040078489077682032818973129815648460193395439369788042929637781633107800620721205325765528747167859789052576058147514362240197791203068888259750295805509863784612253716033849564579709289247203605682244267955821316002882419914994161427272046489810870418728152626430099780513416596020647526170812915479499780106965371358050585805397304226976286727302170284573083276907333760792438976516956151596966630993250823438796620275271794055672542920985117109531060181728362963800541592873099790819558134128942336355880004887636545587068505365367314613357364432518714505093996240587932497585020928069900447115656948985995514585393322093550228576036735638590168175754824168270729841973082203851026426174956033588610208254063994808801342903960860220286278854023029754318959635773961940746660159589791281760623403236383454486735001131278549312479671450239172271561767004818810471975501031941552635179799879738929265064844413589921811918019755594582271108453068047593893074831396569510036892383005481851323097014703503997368168701389943534652819624631754770848213215063078070372599427468412086138086704115006512252991149315965497006575817732316844204810338315054256862466197058212348305164134670221626773653009276487909856924007708710801989546868703930899920737236846408867547249081492134527406644813367434033866220377754134043257137270486437270519537549711777406433043051392747508161484977822583184180207800549731284671494530896451837265464622055929059733386066549328916694979388427439364229673527929929082445085843707323145076191031137551226001346644810961766549025289428885597259754232459674403129727765257598856406138322594501570874159953857827291461298137989391547094762813919167624906184002543049031517317631631975365313303499988394067644710902449178046637846836598094119181619913348654498821725162396559317067966337484030598543658941301480318856255453425673236336485992104214942211515017791054885849174927325690441160591919742233236756198984588213484409224373711790176449834168440366434104205109586638900867407936697482621473052852843695083300286186575322618256186812415104469768369400957680848900553826065815996175986775481502260826750172606029842958722092931232934992652992701252972702609837072137713865223844040236544140767092527796812907035492489465544151885223332102222179065258942727572419911231906231976099181838064677816672728294065108974474997483313563616094667066886829955771370945321025920473633029533050272662806070786635881656422424382270756419977834431654970969847762950285341500653903805764922401779001558257881678382111534450281826160653233436866184975404049413612096561892343348084102958211848516748761026685488004900977044760322385907677285708273042440488348788376177138106283000492534335730468300804208620341114479671287548530787578519936036998235481663589656475430462515247143987017248436051684726572497187351604123050724262525976741254772320729066496208736115313725252490659622029719019949347562024517844090719876997734342337335767494604655696359584588719682756263870421142241891014492614329739549901567073058552508230966419821782894577271783273797508218403055915156208942963053418009740440792332105438173929611083236665101569852452628700587137932742934264108974462929478805769736272758668114393594726175903310324475740411472359869367594841529130626958729005433414093078567164772167480809411159279555657615334872071688712696276534672555763345252119532527042334791881608016522623753112865474240374321057848395355349204822443594369126977292441342611465426782621791708736109785788787087956042523881729029555582286044451671780185585623232250482742850716977488012947646796050218870732805105882887301472668715950954256894171068715081042920459693898805753233115625789114443549597835737675171895898655822006071529247607341291912778155667412376865049167383852427082316137780388896150550317735445156441702596008745568917541534510819455578463251105587352315979296357707264942399583898892272708415463222203908806274319084343840625835473931898221129816273932802258852880840667810533337099693370461817778263085720682727858889087376060586365916124067638178325298639486090854815086952674259096135472913049333970456080457045827132219517631042129882954116164104082280959794903169099710885933943146463494477118956168429851053976393425628836320268418591605711607665989275960943435348351179693364266866965438550656819158622563861550975026014667466985602023762343188799908791687289816944893890082940849208501884054713638778509104048862102343697096642250715681156494883194179645990482862467737362144405980232604249326038542709570422924226517253216903440510781139208783040306534257084556691740932148264989083443256306227974114092945113120735074186416345299190753804450117110605406629911745252774472085313965545680767873343125189756766410883929332064447155693414812853047580857004063159380899404602852491549945037195626828740495850461203516636168762398488623358229092725936238487594536344927035668897452414132610398433931581341128124040714074177775976932912116575910475073811580376298726061404001033637619418275029497768731595198351516068612514647505307318808014778176621518434571927306767591644270719149080744582340879798500246283349844002636396623513392556413706418743636549598861321467786405911368651481052428531928867498636804881973487221079241394444501355939097258363978366795983585907195922081462436693795475274497870690517459226207312368954758945818552841385929980594695721925454121366011811267612204719926464136540382980551872750931741152449703339754031834017404463972510282378697371778368685946074502091833642894444110647689570095604438477683054982075874815348180619075095044429396773257569885994286462481246874685850615342846576811547753779523969032856333318220992047704120988730410718046518401383177346460374864046585892791976751176427606176203607731288757702557734524941480132157737768370820845477304857439869770166643197424879994719980740778052332198518176157137052144157642116566745723495738898956589810293917398166126988026081946573131498473058347903791501390828103849173365973698886536333612858119194128707408566277083020862483547082808948763851465374649559750420891322557789717693353355012278582917135126344105730441742987913897731104539777138749604297582212776917235513189355797568434551533474923899308405194367364976927148973833259511990962245220003010498920429054661177506408704832905401024192897854242099561393877170355986890138876168043807203437644424783467113442758621777600165781638811582707438944577500819784377050170251882382916687545071635208500053263694120914514113232408644731972624963119318814898495960405770076290557628655995454025751089330732678751351472358278386486723895960599530974220830276439104492990127584552064830932417296647326570362813800336044638745509197009976958542879656038416789168945925966221241931715429801017508817122627437260808157213676482735629380006771375114884189758637224732803465879153344328257712847696892580379151447861132998723253661685190887885903453770089911493358247181063698305190026107807172087275004426909404220872799698559591607344336680726763839375774063040503852843925627101925820975261417008297959449193050997342763040695928780205917524354087210419916679704733642157041955801087721844723362937416032605356249761708007336226609008896047479922305649892305768826619981787118848304830297228266706820353684123370841498426324557981141786248536110037807835920284155853285050785607326693779518517722259319411444056723254902479858897223001071271794772373553656317001806293194462800011548125806139958609565556154058851927546114236933630337554247241487710407389192402021088366666592412335907281192115957291443748032933948278830466151772111433270159070490915573397108788222133241576919440200581369671117122636635065540670353921615116865309406324818580821700359280840019285246429702270641559009528912391781162033771265103338400946044423687334264217575677230979315644110250535071886082476520723295855596784773755144085101374794014678737563954070201133613198780620058982713883000647731671192365868171448893168125791644896859874045830823883769949940474499709359268484823457414369264369312857397972487575104735577888582633650493615470346211245376455629172344002428795391315776066133231788946496997857635997888955073118649516875959193438567652948464025770261111057919575955709026800219132891459658751453840740137792932763023889066726915337785582595012495249526430709651752770438176129668277868939909291895777933656376556519538489193449882546850047935550531500939511540971386958639468514841476990788397683392490809834393531438819759801793858339604884506288466583055964656088971750351493878540321780573395235154368473123155694790041717324223055862149888490380520968787790159813843619005503461969682042906207316884673716767359110474765447075307646866730663029375240884549741298798428629824287017037258812937572819740400631421021778555327139494583189577602655833438984684894001348170867894745398987928933858068584042975029941705629513187385099269766865286500715049244523635377969686588202977394876424444796579057397214114532709313782083415995482000396086690155581848271473604257523395193824464532727001996938273918916192149223332904409723787448765255184720293321917228843612355504270497943905609574687238041854795073053973718126067738530876528860503862381018419750574132617181892720848953032847603340769253507731774728193030713380080545480558654392447926046145376793475148123530330141097343821608309602016902973020049511135685202255079634476070185090034809832620072304422893651934791431612728440253085270016935774479888155913339152025761428496801304153224084351806526295339104008924128195250242548936957016534765549514042150508573858173351275210188727685134397286294548316874073573025651288251489377975803207660384627484465441942082234630418782041015707869822849327811223801703246562105477218377345698674081368558744464000745557615875711575917218651576079036274075746779618376242389652904763042118374926836263540248578027414616566564490238358917468433933958699651615469120388957052633319463985576846005648393808698812690122550248463712501448694419539517782367466664677701756932824146257406203897138207432607504696775639314138455536439245532030970335261480392092280629153047567363082775772206784147559637105913285040537540781431528939129332356012842795802761505252080329710989816966578972852263420974434451234907373065992513090045409972568766069475094162548979336159543327800632799413419412143903159658753157818283533486806098439181189257923762660359189849348728585276857583103322636618206553476482304837500136407739890579711054472363699759832047869034059334082413845351164035505167777562823417176508984279713962962976840190515098350973347864027229832642646576830101148817493994584784023032045907090204615997034612938024773363058450445106237098913265376484284854499703029473197330920277252812680107115410273837332956647325965866480603904710950618260792403038962370806279337744082461269824108135402996971907829969276629055432488586899077502584379597673827904584187071957540381746442592422902296235211461948470984150137383176168640187882342202205698389074181440999252346112414558617657842859766683063159946413451691247131973536363649669750985059640565446503349729852383779033847679197097490921366504785053050616118690518557956265390740705608317305100368022468586538132727190662122008957316625097923705756738326690130501644407584056480892466677967044045837424718412413698813515219192290927470258600592599735023849152488254919413612788212480033910086481079574508503738205690618682564000231745442425953024630751962930227831956632545465564676736960922975280696374146465862436454108575263818712121626210161046593331625088880089113525699831187338566464071863787266378536876532112178398656564574299081954857142473906103816099081643516829830621061258759803298263236410753715956478048920028885752968257563584584667114397256986688952344491149295856775181138565301826080692438799148909332691856200517058819975891461172992911591996012023111986454319852411210489765171990412527412794051147961978352377870178718887761450546573877797502390114217513670308631113734828951644183882158876176196083523223215783736842043582819566329447119795865459438941408922814868722476825708204201515477775603704794767311449535845810576821954904781958915610764976318702444569601383887712478678002389217293013688484831694716524071081348644250989484652082322885598161681217865792990258457913781988225943458164838222544179504718390797174554551914542541290427564331400230394502257562260935601058806957951817148429355124677998881288220963676324409131293007344958503000209936021519381085660101944234155195653969697377490422982135100269794813167918911327265398438778437391478876608248463706168087684843430585567646228639133659377925010723305017427592582096859255030941895158834323894310375485510627465653736208064882025742063061333555870806906617486319831184282266969894193980303678078067623883630824297413692453268155305612953880153317312718701937684045692883959133198673296871549106616387146470524838585379056145220645294570577713585541074307734995568610095997527721121656080816081715924629534684664557082031238784578666051717749983112184516880533783953471139690311910986700946511286638484080945921956946594969584411903642182313036682834644660518047752650899813283572296863562247503175662998030433683699127101106735491925078771750369388263173565009458937066295817212612850387135693022681131700388276927351229459404997861635247165475966941322933778660320427608026898785008474931216603809261296275556689007359571520923121301862990409779983385528163866087319020354867204304051801311313175328604420956815335218225822829071349471312886067791424021529962928615350478486185141589200978749212888689158109983877591937676999693131632900322770977286924294188117543352749825881343012404194156628435571263629225961654317949556876676017090585817688329467706179739456829700584422618940829407828331400788489486127620185416741197055764413605985036117305447564831149987339495377482258284313064468420947795002585116261147355489991392424698835788526718988021262450056766886567978652040919639490550528928786088610299830036908371902922426058350274031258107132741197677924179963375754871280617515683745814653567449194913052823296006822067779975790901301716269618714755511337116084114357493514234102022514286225879186236885555626838430938299673690699735337240349004476987251573254229953821886967793141680251855441231239715601772559033822251809678742646067406708295429088158800912241379104316920499385159397807212405584440763295285094779752341126094051185605400053155690386655210180535936124874956483409245437159079955850880957935032486939902593937521039270464684674285533526681046555535238411012889438268728495337098016954927086784793830105114270749396441748358868857230176452549216107909441017962050972402316344562541670067433739929789890241727456246190822814803894008963929051462818957158761171274536007191683639481079707543692415304124306639623907133820621382273864657746296619918615374263226260187117295349575381288235640349796257657843544108844422473580311265167440940577115204984044101138300320935443895913203928693568736547207684664518913454128670089512309012915076326324796087397406448222137567704869886228187238393197948544380382321187734723885687439959854440804562954872632065541114461092317379329853873683036212382213618472687608645352832631220726410374886215919121064209733014026714385078209562246396776393890811199309677263829909027938828727917096054391501097349943176645512554497170235362086460057935490818584231400902997357425522888736783702096348467758829963742135103804402359616758891998111517190128131958726836209717304037319627614415200627759734253735756582283326670858699992268278068032505066565923350142245086138635473694500191389256173738349587079624854006756364458789492589873619045609109668620981076612122674969737748780804937588493453647140434519142924095997710420801589415766357996632304941202149759367885874291248640151276967097538259441358293092833904969037201402453185539904126230915473971521462846786672266683934971669242211596975452705237346531753002090026003139486212555160379556101178987091617133552504717181098819797394746980330932852467321744608138733838113501774648100986909534658424732419329688999229537340229789152127398675976151123391191705932682077955061508223626915825335229284973777931083176280553565709478508111186924768843997251994406595215726947976740714611794695514335197614739737402718416689177942864676283128209213230724033467989081295958062354218077290714398763762316569977641653374115433507473449912450683650035564819883743866707094935980532560901118127376327254893954095830058362426869326755891646457996344972868350116820836415002334185437935270678143383904454877108331513396595452810281862173089100895656741009755296134808302779588352111352308033667321095338674313703216445577187162963734892613369088319040307289868916426715341280784225393500970204167903413056423552344312178762759042894816363638691101426990385666463344106303224495515518305269517157654130219064015917317866579219433600285484702663201288247350701120881988671974447380814921940794703261992051206134922084968207221745647723748668578127079161325723926105193052004342900818016243998616646657576316037704053717292480751607246979882389154756587074614093351447989559172738496778514869490407595643113215768310246989863661543109706563197063629840842485396548333281372467761002382282322286515592028109311302704285276592388414943725461465646367061837448139119161355681770915437243467774878783129645227745928228385589219033973081966760596752451838252913256979553961676044086948010121532855847555794979522187481848724569985684239582596880696708498722936559200373496449001440875552643068149688398460319872750282701395736960978999698680600712210420193585408036850847072333691600249063481731960373221534446485195772135251570812499565392659839822316066917893548613781773177444601186175270801482208002392038114986883104127132639844750196553392106542491731852207776207236583735335924089521120539613609041590746786167902981603281088800009953099615323238171737784133725895806835609768447840627743618874719641902882178103636698184596062271214021331907048955362807209183928553381395969898075435888327343066722162201337980948654036994669598924047196785629870020342599994147198873251538673244722672953388833756502462338279263657331317862748460064126350122436926484345652088339911157356300783475200925274086920772649048357276733166972299107501374260027383003822698982425695691939878944464193157763412179755795478998611414160832838429338958972446329477117646360220988716858486755612038981403723735692674606431542969043824665199405467552322135808155512075555784233381646761584495111299514042839338804501377286781013233649533531480863861779224471679716134935826504946579504673364254306472785808858909186471990801362618266625962360264261165154039814165806183151833041445963652807918332132658769862558157132388123235436406442979537452045847601601957419637976923344116878006341236806526258351455500761315775501716958959064693301904065008182615194932576586041149682326276153901849142101730259915811455524139915654766278868971895949239064557039147466859500658560658800273426629289336414711996905719263864479296213798798571023945972958902189466941007395161980989585306656236748062241768179176020274261438846331270163463722556880428629433462690291166720567338836490497467110195854408234385463530797205956389478413637111041190449243424649966199322292896755990739604059830679465558408981385525836556115239452513179600759514108250494373144874389141937379073192357388738550014323393170715244288014943424818466722907588948025735172647980006134730154925163581911366433180890500131031841694875910339792586261318812539886737762892332408448229319552851440200619926360721025683528005072580459780970117477304660512264923778132026219184187498065607640542872214581784556558236845897849869986297739415117595522653708774262226209852528660045515676898029318113988022919130205930386661876853025261322122551149655068159218523593315311129173383425712287675183243247773851649609168808226486653549578672370280956522862641860734212680251132235309812059029754568510419939442941064359144529951964344937870053667282817899637346703234463619880890659194243952341106058145161030278472030677123053023734935300134723638468417414742434762273846407309879823193014705171429266743434652639860467398206551849457047474939752840638224936034045101121325305269964032776762608196661291899861663454726292592333906654537961928453701034640300819106921867509795385456905114328082504353649750219871279051896829327512227205487431984801668811882032032700142404005524962672448422755190465011755686583368985068257546146970568568990641592178516704329214441864376425445227459658734782428862825390901421560095554143671622888157885868464919190950622589605113119664524846611167392813162650159962397693279775388037231770467028499656643400545235146469349862907695280537691009712404939270090455578337406082328922202871623444063667518154547815264630240439528790672571504190975572244366433909054092344410346966277649152357619330858809446624260964683247628002638879870030094512772127576000191763399126786665286590899738761331580723151075626716687223157167222828449166837137708351555002894220692318375372105278708065376939333691231245626711549118526376161521737401285066446217705689407806547787740194642109431551144092832435884268207998046531484962623543404658926949024710778931440508241499585056212257471685646814591350689304791655476508860866252430809423449220389763030455878611876385609698323036911247550314016504962498347213073140019163209968809004485692656579512428215185222326841258405501556853771909290026866009462203692321651533839750099163177584500096374098202348899741639807530524306155330761710671914838568278107756460232114267989229007220769888493732680020992408430971632508358808144090706723049151443303002658852960543770131913106651863464636195000358547778359213714503237262770348343243991157807254675767418387548270489553281941454188181110693444550530858373818168915508222449738033986297835041752689190015411649858872577607752735027492197552000145957708059744714736372034042118121081115667360300155514745633482110644267391389864381086833216811389352172331219449286658889991914798096155198523826672227743160151914855171865986136804002233721388935298284843221072379794765186159450642018803767652048034943019299541818384222980959720457487090853030252643437850424683533468166496763576447431654613294157231063478057814470154702234018252786020652286037082829969220061441474485925905474281228398116592921155979607264505029717162910449020067667132250312525869631903674963890996800851660934828190273739038753679003335279246435308644629164117020979603732432329772509533755119371468901859294994500756746063827538462017956599447424764380014777319605094390555386446077251391813220005844455676025382964498719607343721102614150135254176044574173781441575223828398298283664511670621535864205241525142461947788341744887906278075939462879274038554642908096725270136115560017521223847599186240629289866251488480440492161318149753660273741614596513836109829617920609724324822593302510844143262152451009485802866548566376248471815966393293100011284965659107371629519349280876479994722106845103372877593764732456803489447152856176389545377654412841934390659820797004225874767375189579046749144656900430801402970717305004906349778668878033449049103066455506865703140833727063189289661854887051930263514208027125226143198294638334988336855992526578776914098724164266993790626816151498027816216383519463379761073422208026800785616929596344661307540014682108435423992787402213555058672904870083596983588050870963806915205604013255984371019621633243979848581527940208530554845954136778275700268191951203596475844040672536148632544687799581033280071188150328873920039466056278070199301594494069320065790711335770674998348347230652964179288481513665197372255570174465168859306726474549134403710475117386779837509532850606082159702970922565944211272176004238918700000306298719316368567657618999746673394477044733551466104005726024152856953180113542678980263941917673150178522992545925387462386143408282894809696691327018219925108364861262641552815397579492181066766284999595123267506018054422399103376433880088418782808820646720459021728516723126761410048072561019104842537793976703116844500806349771840581603217928150970471316540894122631259280203366993977710124930806242729596799035273832923110675703853862797988692768071618415250063058005611319051481816304371262293537071845221178215110827993238735179610172227060819150271687007036908784004698657024300522824158820487108573469916596067734060990339275047144484187256530118383583507909015148834557515500563916653764854581978486687031580972000748200222694163851610314782281813482924911333346155492532946073040538296873079988024345441694230395291148749560917170688814604929911357507839485724948170128122187293954506473270151098087066014823111305885322126685344907756906680678439765198122228103291781585962183385739915742730574109049153995048421168196772450709025272730836227949911431945228213726942085835795429115024071653572348678689753370987221137519574033440837949705445287582156000979782124433534089731953065799334799331435210105807803119168923045646123409981375266784714604650086551349128171174862011479442949374939314969171126820308674181806286599462894953437953023316868163276635228336015814358202643135430594716568458228796155019094789016314993316314929335760323856364819008874848362016767792653234618571137174299131116412523437952420901209070288502563264375568748537601675925845905319554090970194711376003508488375286548651448080977461674073617030763807970295843360016417563823467815254976262010486908236818164466433064020425595208663027448168727410780870172074346234528784736083776170191345667450061389414067048711136192956068796971168488132806183763710416625915039549702901307198655349496899632231237833045639556636985136193569393144713939945556232765604552707790022177229185130998306521970676915489697949373955381488357799493797154364723312019362833238714159638810813857418208966462455302608411581075606596746728409766658673378250564006568148635329295714603668477253539767170236523091105815614481752412740203075181579469490015721692185059084795704438561583581711722769075587668109034624092460573346994434062631045241957583340346942999635720981535143177809512416736747985817017978476555766705870458613162357097334917832774841977087810014083472729789445857011161348141153447975172057823699163972166575082281252548377374770419666602550180612414918483173085612174709869201837436593917499736514824350225829147221344505695521904882670641993449666138678109592461941099902997437292222968175377125803295824257843242743718345027753378107607678956230291447089870230855515940292054230950877834959529595449509323933532457900417887370415597021800082083302128591080965799032476650192689234955096978786471375171668928593457375961395586677762023651001482254018718353200172535885429367842181905416035464467289710003485111397991746935352780932843454022997526832240627728466095899133401756796368739285326863983162846835217033086389800254341190198874114969727357137081351269703086133868619827751856032836491242021389800517513319741958569952564469764530587295646278489424557927272708078104501591292937400694941519538841333062077321711399009310621872014898934596008572251603939022812467624406765415960869002967670099317579221653203140801727144383373682477201099261231616326214604393618327580423889505372816498261449352411221750328319157025539575098912416064004931221784679686868167684072686638977212303463230320925954507385707503379950019852344956580466706073630988075616395138875875397851107921899043358161844422843386626950443832550063018501457766634182922935179224490626024488712650330540295251661413516590921494430444994480697713077307909952887253898700846603909684249249227208125531396362086677487212368627758753713004408966925607837481127829403666453304403396510225662219549305750319679981570389526285692224887938219695403818122077264308554482640121738655693083242240948758756465788957668877179879326478155785292914710950745384219628360695132179756427259996508824397222024188604882884264476927502527871399145929331622560308971317225609271560622105880545819475347970691051054302640321738314443572098579038135809372284394074614896726865789049009303836812819295196251974315527393826657546202754397186911503939097072384367385300794090863517322524435789887971280411742480661103967735894883167710952446548454873155872320490484082967953169962821621808290420615980284424350357983429264843134292042866273232333877099841182205878543580371508564725817273282011873043039458747386890632056215403858478413682057150158603833353776189953223569330384928000221405599763363307381748377239562782997845769320289207230463530636605246704714693921170927968055988871459841435996180412318016540332325801457322546764769660544283646782824639011987590424536330065150016661952925970796751786059584867798485489844263778380251231039995775363139406802919193171785789258858936792879821871715934499932459482422699701275475396767814229325768112263065300310953956307665409469835683933782426978316124327346343338787721633121150813044867429988878729356783876242473685407213723983621923571990186853678737832483775648994524592034649418217123071758837047897469937838773260244354632347739501606260515859193519911870196417915504361440104554143705845665302475706988985895785506694206448099919981350682563871024413443596420488087971377873501527880190118618700355702776957089301281460233665700669295678362566260331311433091805209580319851412881850409477020080707158204078838460127027187265160175772357159404532821160663269055841758750817954738220474072632091701484177224736502406408295447807245550160806389248583658369677289361456377457465611577963779323029158533587955193692845194223207559621985487549777826478594285480533991196442959732701927404715292272599451975315061275250094556524543683488470363838690572213871000740341960202358182250178490408797098894149048161970260886807257656249965024133190288907321436915646519021740352387437036090367054491548831793476918435295206347867969955110038371065722389752837756770197608193239237303049177110957012350306890197779560995073329441746115786051405728532209058450714112400294508369700196463329135551363174913315928620157450903737718149785116629767454344470455045866173413570188155272624372487704926780649900554839155248813406109897877789164596265480212429556033728016635383442017728157173473249973371742592338894091934967357174036898499305818923007446446143288483830471269284233140296135200525920364265585011815854107505783199489971430764398587126634885612016600787601947470670817554541445542228725517228357259098914216432060337712277006125581386826883797541572555683178435060692740160865021732722087120236802858980498916713022556823683108347288798440727065374850547291536412537424544890604334791817011923085930095018765329847666332690317377231035023018761768254210498636743652690525074082420609275074510571461452549150762825291423471117100072369299591231886501099850058120615673112051668475449045795484858883418298023272777914320121284733448153808377120513265215818793931009594598455603187419980753782644764389801399550883085695132443034334969094744087189776037387029264210186829796423413560658751292607139628107961165076911152157752174781744682408678039352117170844356344741769384970876431717800897548552624437895074976710423279589352113819577712500369362415335684893603424161011029702430222628094406885157227137892146835556637455368673428360575713796976108337932987850270769472958261451209855961470397846278670097526920664602345579469974812448115776998463270224383205681707308848718063160860886490710113536122283551518732119020518212334656928006020596667527981187622938599961786373871143430160970768802140784046632423113407487581803523978467849990100887819102432212047558685185182517240581058778326474669248971349114184426963203269362869044110333151156802758803901711259197014993141746369779773124717907809177763766800504275083499851408101568759861000817177137674227934428804067271315700366447461039955177298082186938893817381020328625099987821510157842775112586088587521312333269632019458092539928589168662435432634140937498694801471088034954688035078182038999282066814083220505061502524474982862300905345696298153228846601104032119428646051171641270424083743251115634541664535922070714519594586692912683965885516718922517789864061668748593819372976763157137042968231583430174838128941623172611234248443240462926780174747292704432844664616141648073244136779775419223847995717574404440620412393757210126417296810120231484102236194274594564363616124246745616976153106102994351659779942181425136688957086468117842918955179891024073584277324690625839233459036730823324122855089592197028875390524474475428607292698835189713783350882565705445376713702838820270223042185070903853676560321624142560723147496261962581384173533956226086580800394628639996879542867212984071254256309403872364125504970113148782721325913112348128629576434194543972008928053466572334979864104644471981554010661737822943319367772484679602872442411391018901609720057323303740680267456149314328217281083100558018101636272492928078732498054703911179507409573665379205063631434897050955233879752282104669374288428958719050050604641377353234618817340070951776977240690512266949169445771335709995964073773385662829349645991458346816018629561121904314900667804529253903763136462022368417438326474205720377741740286437706207041919749150569966311169010399934902441401867587321486131257293885470336019625231842281700121931708224714287242235583946602156145477209401825334147413820437569607180124198363429610975772212475081914995573760882495738048369850864185091080640297134825731615367815207170453833853353372312250619913775524360775151909951688879985657072034846796993061293107447240763454687278322349777944222142343546740719829436424250946652708117115824299017506577893831809097437864440429817612844608094128431025796310932433458357161495497801392026951497533806744207240227537794292681159147256366084141914743961607611511438300012832988674306054311698417953010007344182861267753107084125034602249335365102823735822138540783812709141069230877365452855942035672796559066702743860860974706229917316895803074434613378760917107964639555863849683562628013282729309395953590142071750183503893607216415957312822259056852961521727737226441360733796781308347546316189681290999069288144819498357666305381684966101138794415873559771437460055543852743433820691090905729944606412647746759211212246420459050207085930767226530638207403929217575648261634028164051997887282600366122639154592845963641006777507332113298098409005207560192162939350997169813995334391586573609849774223825985739605801331528778698912649131833398867164540860423553349323680427802949866541387910138796670781648986996775935972128935047803444717493650875606164102681770989917094862672264830997072917071682386591314055183642841221166332534414019967480337950194380486886139655653421981027170323195103147006998558664754249505286209003828856504234467481357482127188335831542640750912792533752672158817243083083780806717870063382381802385840657018414038458677356050956250359770389209433811312474293859848572973842369745693334978120497738264967463267649711927002556909369029829512829128130947992085635891664775297763048293796994472637263319093939544444752922302877708357019413115956870652462192247490154529624705378549907382243250391160051126444912035326222948307847740656968584918050147306830590288418599123483672496233124248944007119971046775540845882590026241004816621948606647402837489935284272961590722861340197915916804391476435209621592046178521558374707003429656155443485406398464294010667546121741006831621229573428644345689984969419770313436765122189197729854777927196600812057867579172261872413119191549581566864974855778674932974607236936008346011434468022383837724699613242814008075831532375367633482472569647122378613398855922557633125550672981140951876505030353541619193454470397062834712011082472030221460128364370235076672600970821877646764687279872276602345181975831905239398949164477682446888275575861798562935134147062696881741828719207791892984687360115935446204782225816355930337398453657802745605113769385567432366783170869961187957174958719826650258749902917406982370122060656135023796146877758147465451523531853612787524208330752379483249773363171521644829634639836807322587917569732697675046046040229352120633264107555137446753431482935014484047087300135972426794886699445854899113982191703992051941633987251922716492291381831989570840087814152326681539378908644694651570110489150149536296662519013653113656774803126235759303456277346607547511830642583002146194247397937866573966995846019485216688536734870577893926051279077125693142572116919397225397776276785320300186628204207949238332345623807989621637864038278108545363069388902870680834332676552391981988617757600477635203914475395270314369298339229174557393812633359664363715396510799906377824938047458401481230105949434942250525738068202020963162293787439437826162824878316207931913127410461250234836456726978629068521416262154255014891270698083896527060350041361733714759199811007865400289645535875933529363352047846310746171627696296998302243625152373477986349851042610216192338403452250133716520882113191013316222366643154267462486537690253506094123989982287504657749939213497356922984167029756167948601089019123484086076829427440150648488914514623780420937545328045488762984535771779008157577130027421905932520710919832463405465809707018697945227407101962653539212459250105189346350214215385351436911389062376188544938574409891393489520724346376042815578678445520403194428189309109692278154863787931010181196053799704451772534526259715502500177982361276393453231595491764294265879610200437485157701666694875116723086299231867497037298732180884429751703571180132241382670560109760954845773482766701593720191214715744536428121657918878021177703072378293185840537776726580263381517113994183491115561517801200232406648132706612968078137643764406950754814346327677636933496468225678764002782909664230383949239549996061843534356106656923867889096406319123191491580665318233489393850458276987998203545219551469771411541000998765128149578319294768551687041598864268517297678366131181062812607287361944202704201929704454009831778224218877929331023736396766289125603767310338161587898558479781029976084438620710123578050558496457798470321296402567214616054057047754674340706979456632954063393940028147047741018465057839573929426158773371506350132940050984031408862709244948813219630340904214493278612349511947310193515400511645802083194200027738839253009293504168043503306989567944288483102333006684082299532499620203801612099793144252317279580880082559641364155846444981232412045573293401479572618440178830912654942344844529309091182652318232482728236389089646395466655626931440878693190213415639219502822839247268074303437047212652695584234436425319503315695805744179211324094240872692258376782159470452071127269857659842802253331893273847015372304484313164854059288905712648387007474562178302889959581274738918035753397362868160645660481032604724475863426206489108739205739818367989940019872074645008201301005829911919252013935669814163416921701876718371390668394225547704388989605720604520551090816849188173920096752930094805727994680333761049995397411626204900804625836369009307518968049442469012495581912036738107727898224147612202452378243329377613616956562379693886185186094806934811046547886670776465551749961791712959225088189100046916170613343324425059989906284664141658859733071403380523579485808627136087409679140117908499069382701248885792453889229696782466311425788200143983508741493273070328133955880627301519121880647855842508959894419309684821702790939305709896412734135766161038677966875255956362267074770169623550524577569012283933209035510340439187874422216912596777331422543585152680757126198851552712932077751754314896909421572771440733171215523886434439736619738807604749503696299523582695081817271618600535933781098063635836247159596883240151902896258865821433621676579638411037646441167994700011419215333328320714227609431918107963434871633726194716735406172123776680140847779550047215870613426647246091058635027870658924027003276679810584616184126326266562969861901789022098308432321747668003787981393080109741409786808883876505123305025628611870153832141995454338556537169558803515144818368421989699272909077876099457325791874994367405633204288196769644168740654484679831317910868486489391873772096245946776593089934438928058400884105575470250289353125599862002247458293434895397216483984243661556948438575467819766012743567904607228938454049290478184493805190361270314236474174625464740591290681004421143877237475380571192473296824428488587848052863919886717087057774249313434118551041234378134898908065381567445571526182218962976656196969483523928479918693606449894517483407143005275734648150590193904517376735734044986190500477015582369319343953662072099232214671693859576582203681913021665536490591987113066367174224480887650155314010409713135973679956034048177089075020591728520852476719210095465342317862876862906517507529167420995273385365562234060354382234499769269639303555941469607825970398565168480965438485308981403492589475777028701517968258002941260647307160554096809568425889208962284859066126099235035660840441575396955769908540854385018839303471553965559976216077213162450523833021292780123363976174287005104123486214847468369205509191966756552441549465746782116755521599232769425264489747047725750197510277873967146833730897638180153132113298576175157468986180318731029554048733660073552847401984917993948544233661339201281556383303491134084193969177568445104276434167340497554447544404157972803397292671432455084203165169799880904907701780852236856563405288763819127473930255371292312412953869084622521325337161973226150982022309757209927179879198301487338591479784358594614482187613639383767091474058687303565677496766860874369984890414478999403074344002884639203047325675692475469883841605193145152678356457218518940998376795445086080191880441689062540755770622052907504654624403544556822280951163015370428403516772013012066222772311979968784779588691625177943671730320303065569660827647633550861022749051333650229961094790190645993300421998996952068098118609036322358835568400449579265850546415091495841291620669233901958208828957915456583114262223702994588999677049668901910875049247342016658866237420994485791430222710717897621206028628445355115935274167135249594974917454784999597940265488631552266764330286840061066920104760887644460041706880402560988792291767175857838442801332919516077512074453834215585020937529006623489975902362719436106087751937770870503112352986919160154810780277221321672383204684504355158191917921333777388265264117844793256662400980259804450595079417005934925499882140771125257789203801159534877292496518396458401515299942207304076867315829987640605338298229745017854234105805767173622627145084064884622601079345356222297002655207259603647371757579569159041614664120011241618430261539496378424024461600910362478247552648324374935284935292876126907974399343345705581288108210952555661979439680220067491740004375874625589538064276004243951331624585021232507703981247066704873912004426997261969950364558146251513899186834144911171353793365276944501396853633064622959985910414623439022382626218806569992727934057121504651152961339801510786644300036481605069109674950040472289078056441857339004970137360939739345481807876657934019067409390256831143315160803851696629039592670420865699482000720083573736642993543105277492156810309389255761401488988598829740226271954247019692395036942253296799206362629434656439026118252981836784365996505745501817090787046848362796477978137715275993171878308521998738645818644604039638856785743520073947068433036721852117713464889365056008716545041949715768140537699150854502495764006936093857054811350446684429306603439060609142895675572588023299758933729599939843784392903577974821404576381242716189859033387411607198789173470161874855031104269404569002385598528966314476582544901372711492740077043254023647264264976626685193652238783501673096711003913413164467369547984867794348734339872444076667224725412979489078885399781715920801962998279435182992806009185817788331025222854977879171028624304397953767463493204295554437214678881848495578434552762688455779121168647453197410499924393157856820653003790559070183778597914291152339119309104848429720167934565055626522611736068580374817904028486903397028595133228429472507270922210076095786029455784265725284588895277320417611057474643393717601010393270818876985799369962638461241755693166141911313652708327121972770536725953079540833681777542341660504637163894920752801734638219552027149264016872376002062897281182838706760609234324616197363989080402375419515552726656241047004027751918697495449179684801042072399944050949699584200808527566382892512501642243655379972942032059489591648397964357557087016241652232632500085768858409949011427796182059623170437188539666226514546510356762019365084640812556104401344287003294351737513583021382217753890265343000840501572677382801770973335372208559208857518165515133882793797388588531872258723785344180911010495581143744242580020939133797052536336722858059400384583547517004879481314348963403972134801490433815647150888242085638886465561630828128867182651653337018803467680378757763402783415813454043499181338229770506374768778062878016690280827328677271220847668652400425282565521200952934013517800151467718935733761559081105408952986686858897569928120344012873283956975871545077595872559933960702236434915991416300633845418952721610900722666371353917774412108712313514390942523242638345192882855566928701317984069021593933960392573472444428546512894674036813129838380827172934227309347150665475256076548890284821125926985497138847057313971916495717888595882389951868413068997379171984490605518709476790619694402156052299849249706156691666142268936202115339752436738767794977502100136583936769842610834745275771180821332496389163669012078397494009659261038251114452429836493978599696938548489940676868137947047256466095671860551699659704895259687491354957947370309664674271157643275266081904127460404436289006965548312693151363300177130452319437479948340221715632081559296422757185480418821257729332558984509894282570324159001125975197833979833122606044928285819455631856242967806649150768423030171748134766355753504218541843312536646258765286340779484265225395381582563573000600769566678492847683161927931879959013941257775254626391871585501209741912463410897689459731043193054408197379895363745368777570335790024047214158550214801268222986958563625799138687683514393266543508157601859746723329986471727877758598039473045126364045057533442603220660523208389161251211259258580587480226012629132495343290757687228525478466544799911346205400548973160744978507121529329069529683427721734176604648569170766060199156751042424389066445407350839506319424970400911072171257339992268420757531284194966983090797359073754358619814134049523074710864886251541023678433783069366407418391184445434705246656475487489739486156974544013904484862816271528885812804239605618922295651880145733228721569881493811391352542634651700968475387167310029452340607490777824464933017150174910530785481388692741936730379489090117935888978652772812090082104034756422114995023694017372483573516854769596734000086552730821063349403955587281840974130024056876573691403861792639344028977579046361486827142203118672061760822767913514246565424125792586220095533522464616941901902989871441576367075125838422615620732459316193900465250068687426128931379376478138370726068728488262867439690261750586737956764907191876187292289773973954139706287395029193276032334285958679045920760170849967718307281527613786885129278320880623155951775957883649288571375385676402101073366646625030804426305250942934412128707214371924709296432298362353359606258221219553812551952284568768915070208134601236393792978752689371686067670883929362050595245489531978943463888962492066338682813929658842213450012240399812896433182088274738886737352567201384216412000351920515798441657072741276448739564928701811975029938590761051944554224586572774938562601389986570444346269243784333950160010941737048792940892907710428059667271466108118709060085371803940217287610991020366546291980657957541058881638923621221160701350685950841821936377157151684142953417702136114473435826917813443591264814763771140911508931828743914965127616809729876973634735994883163956473714069987598576553650331623002720271068247337820582610846353967491784380584788381490921331869082143115764895850981481939327641866576152310204411480877488268460071000120795354264967634335624872849089722945304407059647971689909890185897340684397681659223394425904754504949568781312010091283033486313634564156738331741884409901357019754416608001739086066452001923336357979816220191352361815551907111975917453049526861489448083465572408703931802479127765023842621854099493462472718260743328518212052270243138404443555714682132022744245192253566728092291607102400003358370418545181006059888814244423573115486839321642679151189133500822778959823626051972846194725416531340611376958317488142881671952279118241470624877974889253596000420945961609974335013299025552604834499014207563612250035716505178701638722587183132646618565441120209966313580509113326901466182324126341612059013382792634696523798789980424202562565195348300755230914411723578220431395757755346398774838689085115052246461355697819349002159285350926642834539892550344282317029457208026710959871058627006175063488500339673996476295156573238093412948833242766799838382766626113371949574028103163947410280693649632191567386534793518327825476713922304185727093143850713624230444836119369680009830746556166723026900403642955233427022068846592355905077926555007893744539002681802656347236326377437297475397424243920226699395876704209860942577389207390658996995225966799788051534491442863822913779792093873509877962454475072719285180421551123676710137537841914552698151056524324045861620240092902890044406918514606071311620770117219767318479302360988225803871332246691467038499413877901523001586129397504764044149369116441806595789407589277812755859370523249171191867544181641276832890391455572789332997454592737129571526596233056178230137267562559565369900322610755577710836899699912344841668129010346593369769086813743939130592276359532936042006586976232898927902645495338515119201941720832489448472245115729393822898179817655563018596003673663333831534958506435429094507486420131262006925681390113220618551971224503449235822826796966384267642934934048122146696380151145836507206234492870639313422018362995787788809388323700525891332740131941429090983109471642880461825523624690119778951290865843164834592291200993865707814818005307725333421723585367383202889401816385328358264049230478915764103737831272797975939410740809219581986218578773641493682245771336877808076517756536578177989363732268769606710048258055228097705538413326053791777278721342038408385922344238127458133582816339165219871533848355650460830233875277306902358699757872746343568423275328993992397513562442302562372943105795534143878881595032518556018699899236855677287163539597364081910715877238835691584980821843850721288522629365654165654270973775807190599049758922592497454151883110703803451800719297511836283026029249312018420560624668516378089336952289866567506827825531255644181949266421986052580724412778243892361994959220296452372700722619620635594590648332268163123579729193946760892599391474596235577647650724588844454022682589654784114341362714699753585070417787646188407517766024939616207300129621314315649914294723671555613573436929467406361045084244884830552095992372122658169441700508688679176901026543755986188205230951797492181138121259802686918678651666179878130066365271703642033846175460206112250976490070086455907206450204360148519865770326718472430684481508587229699490986288388373271343952361432888547213931619917590806590960859589711783524352549952453220995011618198078961214147261033423946026036566204019020407714600297272692206901994370751258860656810489699319408916229137872058655263589426739603114946681947236474249755193982174607078026712914228844803306803588631342808359146229408847049592733245038772393813861465562597433763870516657219890902017572906301644078739696360469124486687288438843150081269243468620364989604971846020940839377275175425172078209878171083922283789606636849661024921805176490625593781366880825611711005978693281896347506583667371755611083779697405730226190522042658937722997796087772643568294408449649388881601497425425644818016762854192782145422645786260062573800663769622095548854933665554287382090231662533659868838515476259254035702282205510430497880268509849439765677342809584563127673231461605112463908689939081379652447392768649927468910916926462780677349651772622175050123794195428683439768306060978717074367966473369193749032620381001724268699698047664813778871749443541123302597267392734451462240411656581634986092113364858771918362295945556862545282682931257645307934765348111139127549791489160956011665215265558069677309595518437736581865098863861915590248200215687451126981440651082422426172465541932356477048843494773408904594291433758043058337761431105066045874872456304390058952401676828563058925396140974103641904094218261039836253789501852149655129511858886734976329189360592555642627263353700442134297626913422617426007509953513545090310282832220744863377932995430947095768094837648102466344633635257560590540949415414334435535364044659622999493954635799991919424357883304798670514374332861512949234156608449982228059329293009026708789268705253142503007304336224020280840941618596955663355421585373865835777834458571272952094242631482299748639484173286906456107110456029035698537255926465455410181057106869898917284828678989187214247870282135374672707013377100866090011830096905454114724188272662303201103399502531429415589721130568239931779468008684062870294706599710934822686002345804577030437929044647530470619398913380768110870577581578057736670255764943742406113300831454812844816352446508576994868952178266681946572598069527317003836079290555360074303825481383397047110362013592309992794291516332933150815422313729574348359113483447438202404117344508890377357279189313039234906414951705258510393875612279839789821492176280221697636320785358253198464666062895754699252001079151441328403378665632168903214627033855212489500986165883431101547782204586192553733174672929640831578476381819482424537724074544900726352529623694529616277241638617804325562982894842915428920827670882906527124359822789668614764650763670543450817757614279340220214115356792445057457775607317785716335882517246059945615584526004746230057544554087638919887646062010886472530724944060012676612056535086260227859680526739744716459157051320116463994919320301353872975012066597523693399523119406216818290193587993050781197018276955550250168162263567801441467051559552335465253815444032575677272216857115820468366391994996430151966572974278705702840359449003834830549911190380792480462215089930150406572375233163014101308606128086602084884480642259009140336420665678040109398062815518513272452203539076917611286399672465168467902080343842077569780069570150456008707601186188114833283947014827928066212866891122439863660726514778318237664575368001121604059376832285387742743244314831741746403321837289660642125924692233850332727696599954093609765191672618911025236462113410031025428885098924600570091200087131946228061371283904215810951091111969922400735243287698024079950121524071840189315384193813738152393165573245454577490222150611264848548912886750738873793442554326086377444991031959700489729380123182075350168214312787634907724587939700023073482271620700444243000180380959857587175401622245642658455680426245882552130623811336183609259084794953545190613421039973894858439786837860803622050579758571064017376287207902217862938440929731931913271706302125734594160528768954982668158517384028415511163365334206570159777646440491205765028998170232823897587455925178661930648729859664956461997340513808113072745605743641770210703773935890056500432236994909290456328039935558012365882532301254077731442810799039673169676728181730180869091763547898407791009403312962314233702978238048966556002468448850248090530402479665154988072572126666036688847284924703797614950701191416320122243032894656194654685845550918369546328804124306241371526873798368429595411077236108061402281654858361668791489689657110068658975330253539400213125450691215316177885942236319996217650966383444724289136609850159930318587290743651276640556074486724545685997477528575736952452336190775374904668199679738955683655339145232336471674483629593387531137209131725506428648776125055370240456804942112047548570537798950023493711514194684582466316239310510689611916507357878543349384068106588982020213320502605243616389260226353992391800095124578252379071808040349734187869416645570692757978250327901727064254153830572853956099605738459684227346348393251355507652112146000182590817346861089979391845898722665750986608733205686081201756701714283401390429710148074563433176609051745276464671079171862577589068235937931882284215770790201224918346293375673067402422570086320357018676341348112758980663677313788223378232630253539421004941481349765327333320428568243790986696359247940184097421162615799552827210110555227856331502937050531511444639764674417411324066995025728055354485419756270888798476358073089677167742782235433513846543083748945453821952342383152553270876416731133128540170979277975063870196732970177946965881243053320648897500393848262528208768171213185769041553581381979158022662300131099130287126450502215243728485355674351101871042528397075576900880382529271973313392016513177545243248787357922244402856956408883210430400359413590248647692197163921667883169084588235469547223425038466882926582127406838238221034335883649139780739235443113985262517681723950619492040102190216656579213829084679523585574804267385110543498715509271838970797144128423631241698543798683968735355886554440047775870057077531895092618043308616490384790626078699218026562190501632170475262568239154053133519318096688650723464686982195378247410592419305578584403055976234494575598294172290671684468077063696303468164093479517422201700826336814267866287527742013750084635831163263022699177099632950838702643329819859913937072714649244414928619530299540560935231798730377878544973692107784059169844351316662933582614497424073990101195068485151971097752214759375612780991778044420113291130916486468208119402926180162386898528308534756915062236773988963032920204567221269710484978450557989024478042945722291710837511487914185847126612311036068503147319148803933692622676253991538750081447156960997847525712385695241069102459406144108954219887208058654577841835715844781399448827907721715993280484211438883050266069437070143808704412819658996794790871294923196691191568846517826327283574680522249945510233533844483541613916649557990849201438173481528894687175972017182948659663295525911015967402124330394004174294751633404678678188261588496199274638316981739632929292029531554917286394310565248973800482256849672764999682891277257083250252539565639294863557275316079593643082631385222747674859866258500481348117720787872334779803345522501231886314822207031639475282068272169000424781803789352087464709218049454937349135021248585340269852261526563686217263813060203537670744612522131417157909205111740019777295121754688037438431212817723718616067577580425959725163362064290540562147924405837561411609203889575448395363515309451939914723104778582679148181064754404760061850197684985987249191133452567201807654952340084271179331838614871097725940178516318269720349726056167719785272405757956769886891686399094272436053414538314300952452173708887053544337102737133154718789562632613756137652593660132560958331597435933097111764251285204531628012390780148275474726964868841705646789925370029877317460645125987438392095077933086872409209676326984912486071314972592930722963960209903101037468425454722071261813968597236610020754370457925840547932440628437419170430970875292107805406839837713841655918263819691906166613960128663335257744188116635208470567807019998123983817119353339024361913892885348729918381781075443705993133633927022884142361313884745225919453480358858906527771535903427809223060070108473056982808605401568053991140486856410570317061779100988068907438558377560038337632346962754091117561912290686399696528724860566801705212054564692730772039781587555993808000667758379875340238083854919059170953131167973460232243693201749459596682532369895531649995668502653486204376523826365071712252755270493901908131484075803060009594536589437524141779109743913178246499410836143145191736380888632995956251743665684350916161164396154142247635727181612638267926361813579054158096801130402678387831381679846045775977047934878845079236471539430438087286391395543782720045452603855505498316670742673316934912150900879579984514395195238057145192437236356471219285733133938963110291788360578727069952468235615387435416659233054311108525563445878248570025619947196625901705077538558524931291429674799029232364077881674203353008516983553393538318801188824391477437919456556019412992608976588419597357678934929801465255748604429415995558038077732767971966107480354304230687237323816625794177506891790001224133346675329276429008102917373796579195766076051565145896956616156787514020551017584982659400617627534848314542524282388721588060942058900344903279281486065239750707078733444940342128117714434547001414344581017585466853446056771092957013063018644985623033253484081277471196745051637028939040043938633819974316202956366780350381127918614868531624225469262059959581464479607533224767680366205033636913302653662208594948932816874037397513793047213215614471823031294846925308158966124521262406665514371261487901704146164336944128328262145556482611855748027446251221948328724427558099509548572642112345388420706663887082953238927585716495808109752940944517845255575644948636862720916528281438307836541358243712494629191008986497443178648513901957867103592302669486344896637930992034945555834692599875089127066448559498327897416809201688004852237907130294049389430191706990950785902296936463558969658746568900299284052597483569624993627449561123243754961428004656370415634200614704942154188218035866697389911480251763797578117757280032845932957215822252170176219595914461784995318406760552985264165016374616090942132948309222552899631751370696895688017202579660408245408799656950162702437240760647905517330166181933472118919777938952326822729218659417909371347519387623193388741340937864423633263302463592598812343254356694140137132532260908875199390231228817565425712038283916400002672536733515128381793536071843815280383261377065736368530777701018698858849395605818195460402134144772660967483189964710309603548956851124672687605664344809495929976595081509295729875832249249644624690171916612452302778677324730361483400363300231098717691363551551419196513933873769645260133306436274674161891357999980654577003119062534916876286669563170477865100748003773610684573350935099691103894392574808948859984675475837510104709683524521751818817378926376954490631641274994544207385926564607291025992051300590662360816432579271130658872924626943232907119600532487248220362099336368520564817695967486872384973983678572997096783912477511190764330198301608172310575470206147333185990282445848589920673968973374036487733010568177079552085560360503736413122153655477969802470248829520455299847607440588484563644604065038922446081815602816523335642340849477139693474600731393673273241777628890627109277200748583972742003250300359924194104407042766094207638939975155123548999339740988628214009564453788387405377571546258309027178876817373894880132055368126805727687739076301486977430679642963754209315384461492923011703879872749925777628510249044631012013257254420686132808914739781046233267440012586220738452657231395147163770897252375529666733137513015219124256772993430423881801055573108392596284141534645263359854595655916414048176876388139346905043561498196500988307754030444188543379405216837045342272816735473833390578103060911687867197670310584664628271255050731268261172926937398885239797650080841312052291612692150185104480883955242284723057224195173652335536049363774028490861550952511085299542686221453199683309802103745041837090485226390264607752212059183748702814861102853922724892871232507884712549670268049587136589200739961687527813418306663125028085913946774290445059231473376793430466094214523732870750927809377831670309588972540133558060298266620653911103889648138797116612164555105187217599693880743558388571056139228067314775553314285552244127728741485093265865807848775015380603811182225743405813929573441695553183974620427271895723411995151738269281215178935888679686732423456847446068535532130229137861394614556668426295419275781859059311264682134719768711760237629605470479684704622506229164827417061785632258830656239060505888724860217178017213427997359782126358287439154993754908091036409766942791005476846643409320573936055565412786734328459421114473829864124891980553480943456623661871508072615530979447691180864497589023655756499445070185000123363312557319320061704310819468199719039182718277363470182465152983207161002062944771263439356312529945230588140663468981612725831480441233139448978069626410996511672729936942760392603724106369229653421139054573415484370942493286234976109139805716516912964026165050900837287572299727055941584079914542912056988514508696332609206886773490876873051440645831902265621254315715560194716390069556337767632330723391916235568577945713625073086963329838030235706214988876606444489765979482872837807535181237066799214428773645839335536880486522662092619005848329196985242501776775445566686582750258209119581139317439294820762554623098849472071263732759241194343128569436048252067600014122878663489187570367380588671028870576407315473397696726736984328825408801783527848181230835332592377464500077879889443663672133271136135523197752623089005955207366438115094878252771028063239876187974773381733029340499969715080083549604026513211799691172806486472023777125263371398376823925584970186076757130789327960959579011746778858204617088798249719675886316796377638580205922157522907504553123484603949086481934390187406432375641352198224202837996850431560110102315447194692869221080240320738563916411246045323503504982789544474215327526689986954303195377251171939775664465056841431678593435018222379116122191210701792502359112211542134286765097418827004660020764019948032252518155981242159807665903995308374831897928626631863159157942882488066564929775558649298382990979735073432555098420607202707172948800495475567211193715092784200575100421881077752357847822413478993287116609881164524540172705461261744920152809096255790395383559798974156789899181222791331600543877621964918239471535182897743467157422638991514758382063423941828246757167731015918594912695611615848790911928997719923734642665338323291970553367726090515406640157016082564843381508829470789680504221541910673227824059076398749637137386343843876051633082441606372227350869024508302615421713616018932665334669618152827445788180011209650979804937803604006810046848628681794655341010956299112907590393844711939261020738214557276886317037526274156230283484573932025880398302016254432488946648351659867955558734501970754955920757441674150652990923283682667656449034722989325530180900506646737739220029604081210089894112214687853138268392873338019978156553732098572696809932660136654959921260282318616693565591393620926766351952287286677649758476266582551127747984618567004211742051615838810494121604324760101649372265817033505625414252850555684275841584856903780639477147102573153911992685736297194531833990902034303158789622604501800982216183038181107778243230034804983637457616784536668550147408616613717622295579477678077311289959737866601733872113933215803436272256434952942901674971287437735259853435297185193207154033710095434953318280138853613831780164493339019917346633953278323034933736889523289017243545530174805259734390351596303071841316647186729261738061248821535133284745026151824239274087579837600323689044205137995391431820927223671618712648128876192286308627321697981615159394750535052599483457057502181985047619085139943366787607289273833499094396589367702874048288894999634185381485737471674136769882535773655072380474834553577194113837179066918718680895073052789126209794627337544046404195387304222036636837104867107282997139017014280572287148714714203470330794383881641101748750083369278073098028580476356098829493650828706093168226468857065296894078543844943645141227677351987486752717072287109667836357103495473516818667643962939997845307918062229440166023686085770244181696146136956360034933269484382200110639195206885950714295444737056686185131242265809884453285817098195850179138138334756421797016823086473675991252258861975875571591011877155075326074155133212998118235740020210123385168453430715558138448387716977084352249268561496364338336896010756929898997816871061844148081645507792113515982014664599962421057834541912130297225200014842273701585118748964089116590063513969365989008249936165583168320705484500146362524770516416713300026461984204336525168302592475191418349220928876436101555078080831735053301865412579805881760061233256366133211167356603502050302045558492827985929488243066101055903359326929368801129690851654007404092911631615970089105095168159100179482715677600033016710163147298755586962260139207510399975489831848300572284247127194858873308663411995410074371491330957453370591636093405524387896107723038518471686669588101401007983078042822240798990654058630419430073201947085420309427455688789459218936821033895242470441333446999161998077221959914433128642274296424785994072019055857040979706950018985543162502311632790670919178467722918907020267963069431573202694292693193458979286076486738960867720845231459259832266566217488461304753213463400971097601444601067927511300213139618716262929419296584561160524426327052316576662787453179036115881511967749914077349108406015244938504810518999805049283904987567518743430039988606523129632266323928231048215129255575101473560264539148417359034877440410591128824340367147182840361979218570253878896531043106897218132813084774548723895251334961241924542034311661849832949868093367474649420937899322265243193732297760866147356819279675574583630449880001604237907275943767970001331307670903300000698811669916860726770018949907926424355370211282721182098598480851633579955883248479415888625832109579498167427796281403592673069616147377872185999918902024679652015368388424046733581684880795841470898147054078333917091206956376166854588732559152395494177520205668039423117193167963142595692537002435783016296076692199537282071278307776419081794849571981718834954430410745842910731573989185055062791130692887137680494413569206274383713220889343516129227315526561892569468864619185747357299087514942998721093603494486722643404856621395463218332243648839663807914991824566212024787381748827424152864892646753296268629611377906189374247394723389753045266196763386261878182601303582862209917245018149802024835729850145281373526772302719390896321058460977874686851433849763755678916701603013872879127096804092388019392373841785193754929040048845156030992076558283811244404355054466567311614302365536637299340460525060759648691944644493548283789742844466599009443366349513270665981514714866901414872481691064038322891864968768534442617008245192311115871298184335620407863535936311913646325465373044274571094481119504741379788248791290881751365504517564164268714923761298272320952168380121483084200353564018156193244847376905928437061047835015299509658725655957564545280354176591330145530663548165506199300594272613224535407446053686959855779641639151684791393916083301645185720172211301036198045775931284907534128093524069243680598651533570173124775147610885930421637806504796432489070626941266224306233264236580186128303275339760432503627547603539178029658596224683101818458801917706210247000341183317073436401876338683743696641295753297275220837176066568849388931347684804081061357007289615720720916780113289347872468016376110583719038033855248914128219710831932931467039552267841625744407782962296595374636510883948699622231793587474947869678191820663783168303143483190299665241734857131768272385522291456532591900857787348748266139879735186342368042137954771952362074141363771622501343019746299326047189820167249434647295340258915161490861557497619194143194400516608082427594093858233026185529389450932208763652300934326885027393742017390756182008743817256323683502181452744425285199110581104706909884929001619562464490107145187892738110216039208048215320338968336405702864821652539143847453891383163678509431637596656225453170143656479021462118829929341518017369150449638524115014163980733354456852579505476909264645041205208857830056347093343339422635254240841849435099281540652056425033190257208964253329909819400936308432143587745906656787386310068842046202671684068145098275381786802950035083574157300314397907735584278652592291837700522747916180669845091117460149044436984164195735771516746930927768125670546223799529659982382208009630281797503427615251692368433625821769578378623257543852934916688839180197215101065858130751117418834675952256198339216413020963411386373761323047917476124151596043049433456705478794172297942456150255061974664676496041301477743175501978717163299994195518748069825068836075251732991561989335628592028503279170326435347223686138671619623974150421815234067571457194646251329910979159713540914239648631724641014123291149906179036548218733451247157822222256442914115674198770380645115534599465589113442439614864271072295283263022642852982206522012485171964158763364200582841707075290710124772497349789964372434230994612469588105206102076130332460696764940770070735740194964255013611276809755047165305478899113311985821560005481425943504168856646577736055725822818302655684423081964441756339714103205426211792205592575543186790814086287909880196390994518241525808347723269209850844547458000548218847324146970542771334912149106864026349159989526727464237601260150601845466900306998739528262093726953005582045094637095518587478491152526583390735469449852961728910147482112513663009583771076929370082046792966396237862535716690609718137009885887034793381270303285623245674289383183037128708345871145639773011780084905721756375799075754510966580895344596292093075897314928788452162499294648458793938886842346651377929745491135669462926758475490557014993064885426203792474989145837858989778760902904726712026768795859441208803924220151865977085476614351297204626274118352477571924880735320992075613252031030334038108750192469172502760782509314252673140856288132589603253864287843556145276620602781748186782599384494150023718765715094848863365384034024637994740409848437784640610408673808556091412362796067221052667289531600874812883892524453339072530664214446552509518120974125219685423297222965867382802467216355708463481396301933944987700649778991083767837026748871210315839663198832222240530334786681645211227255577732779847763979380023645380009110133503250009865586530625975103292703555753939212917829455569746906864664000613477650698004517708443178392719930284973004795426391733976468048487474181624269718647739600855606651364124820608142122699428984747682884038555644004823120796690021294638956900094912359213688078930001750206614419300686153197319403771530887680488499929717260209905758739811448548337192106424102828405999044825906091288298625226531303526234691484157197550181212290567882585359497699754921422199870194344647529949525615859983150349528332307665737978721273916759950284879589538877578126489726999240658031354159392928997226853781381320147592530167087434280500618933843364996751748738069736164706113571996625114436848143020036207697768618954812233866593496752313148825549209662926541933946874681404105142968614302541654157428347784278933723007082450756238146595134419659004197266831130430274876646929161603729837509120857074524561975575437002251761501106684182298204148736457081013113629129937661823965777370177264110489410188670109913157214162920531108880746384609638121647885078121532954970050563368999728212897348553468715207195842949286231369229180062364848379201811760474796570889132736606712946054712356585641141786970940155092217675257115553492371467519258797088463399744135425049295488587457784450405954601261642765758333648178815395813155482403586468289618875250909586520538335270109666989036341367164585203142829346819739919805837822823943727789452727211553358666598768065706083870838729787454995768403602548890042899439520009764708645109989489400991611666755402907981456471281008453478719046310999685564191234263895872002191732114493346115317200497206786486103842100583968585839990518421651898855103736058038600597522905830446197947916137507187440979427346616651586262686804956480389998701980950410437427429170651362060184165241609004040039937164143295871590599750398695893513034899140710914315035423475201123017383792780377797830916301170744089342591888945260578574103660249534489616334765430315713333643758629988410883584501860274613204426996126473227334224189109668637271253187993926690823418952572601770942740288583924096947810967863447075357831955432905908261632384895882465317834082875224065715907429533939616483594771617796469720563004698358537622501281287480200831255525649856326604345466769518860343409249140821444972259306134274439147691868817426973259230604205349718216843698127070474704684735354193162851217998339161159849662919490693614789623897704719855849631734038735113551631211121951220944565106537784066155402175669691212260911249417815948387476585812768048082780193606455731273043038661303797503361266886215837630476744640825395243070400075418278365672266607683131509127482515725710605463476025775397867507740798574117297364242453004723474570675849818328117828010855770119724890980455793277575051089732805802057152977252113360050480900634410667201166142337313967287665694039582776233262331621871188505143888857236974014323317705723209870395665456418580209535212954043298297235939957680823175716495039150590450895925824708750882792700697461490062325980552306105755115980133764823236082075886324048126307739141551746644629938954223166544107805291955069646664434779137311040559559545477832329946545727451616030719157457056848804317446032516876397384892734495125143088129441066282575364156030285835685864770006178794939323253836349979605103606984961480663120544902136807799114343313457825477888804710252642928409794046495776809822843921853380183015776242372707253247913656717927419690458195741344803297918794127200860915253466275259010983301636732872896443538567739484473610418306198703716339870217595155516085772745209479218400243296580403166662128510455169642349173674209084184238541388710453417107518666592784879131656883716059418214894396901307701698246516163248758841068388468194527808147045345527729146259553968543850041255845909335087345607886882014001823090495704417244970303922477099404679049109070014584297824823395133784458740650133658067173841723011984403621332314091401082496593500643885491221608424304842360778254153331875460855673682017672686268433147903873545517098143961274093627841736167716303989636002007479271895310538617654522545723718306119042806590946978513034945321248922020042955456466208160932334969833366928042315022021102514013294283326098698827188556288812825995109528167024372344430220594440783424645744539066013993102210755946780115779698501558296610920528863581504297522343573563813870063160494256542704061702645454557809336761680062669814733310011626330919209580236035373976971223229380800401241678091421297334130672256494278790751499294128248492546270919041042212744936477822362666999241867030953601349219774892497861740919910295538926923661898443021445275954600142434541248899329670081081489297182000716082694510202291284541869348736273057189991392037839118320736991200985907346811396431825545380058891346552732533796586071099236437478197985904155402029689216940056238544527699124750515481432431662288779865887170054491973744570453886480968206459090372055050755328937625404403725568860339427889889978804613754290597738073984450725391017014090206427454554501116951923025711190891137203791766714491379631822228128442559639957560268574157536330117051614647242163373811880835733009409708099513337438890941681258294336885447465697386593605778247107349930913246684506338896695935038694007853004330284230657472105707463744037766278126312342978297482565119358610925325666168547563674227615681110815065607626349147111701884785069941437719932412068228706007398317930432214427424296856334154816614788129224988958144602365960270107424508099207508035068924362680072837684264851173667505926235498710467455345877844457871688428147818524347734589848816082239592954481774508942068397167897004388520875826995811077511091891640663630132634466969458117250276302070368391979592216161162266108850912967625394424922011036420098439670824237182662762438784146289936022963259044230504618478983237683795487813086533811503689330051051663889137049160371596262933749685842150789808686087938042598195687824238362899201508550988918480077829445764183588384737540545736421386984983494928973033601354770635790943733135753246295701906395735156279101845689594585653967421839041186317496915780510167600944682406125476812499091479692122950515581309763308602262986606606939337262130507160347654336903409926166473501666405910099159933597962599806107597579690772595057023609521644343738581011964889801822136433018530916461412545376218707476260853160391685216075619876021608942616815786646518374430509080191289517644659347766339941888402568131675113394980557304653501921437582752330522230379638331639634858467162408277551451698464307161520830661441663262967529639288651094084470470398591887671819995622641719695072189962486976641796384596074848414445543758735304362998028437473153409394775967455415031177409552679977534788903318547041450363599964628386409126838864181752336755772880598593863563400237063143800175591582839060684594920830203034440759196364927553239460965287448597723872998015803482279254759629982882330032393857302170997871260170780106680149397573984971311642780324208417903180958475798152731179254854999449246102156094976928253957545859001451422015870665613011889298208995033868306994212787487946250643668777207338868104927061101995065574789858152783596703160208251690580829608987841120375223779063262483709239766919618364681214741792964527671645321716960328718516045334683289813431885482705195522405600337298533230133481339063375023824547231199914955243758261705127431913579643935355172369425935132611198743899809953200033281172310957841237819178299193038049806666096507226376725143991530383121382148124901529523373355445899268162435952565481434701788324528851403556423781690166457178562893951962698777464339546747930488785957338757647328979049316341911073668324043456089292910142900402789056348017496689390417820998431959037355270178196833008748810749039247338077612171761528992308114119009648501915187630024546408770563101590844622505960843123785127080811902239125684776388827204013851281891122222458877723682854287961047273250290847451734441726242354984696304600874286223081743849189847350071287151166625108730809991500514006403955475826269497194013186480772799474846109287307275365350981734271090018477837853764667598904010061888695926710486306732771129286736452648830780507716927942610236164058290603792703970825087825457754771624557798078648617980090124361350571854584477673384633881528257786683697700440310463320047763840850729063969031912910095279779428103635735726592422378083917828166568440603083249479829260333417114279837478251652089246973533195881438677333806959232896875034459808476304478128379158618273048326771357164179133552327519835863744873682408515170703637029039707439215821761656962456738723179693778301737169896526919137378209234258446563630882207273525992563564606409061751000382369562621621832721033715709570765966302106361057566740156027532769447775342263508293408020578887454804381923164288727022916544060404731412830328341705660737835895250082452941005090915762265454460533410345331463577391791596282457094242894348048087374818337851433994575343101974815844432103856931299217275658668921062876430922904265305920241708607002876119814892724169278171586568016037787309450290886132523974056077952495576629036982240803017497709665565513544302650737715413130850299227173714318353150463201835427208927981595591826545950092784108159419116035683598675990459436234335850079260138515922463594870671979947810582366430825220363510294051314876552243231288287599768005423673512666890992169339610464329368723964270248236935471022062060842361482203665417017106438525714830628843315607188389340082037732719308429402998608993872535685591925430128634582702978737082453123757638017955923565394905214210099595901129479182527953259101813537586065956842494744779793769124721194919016141066123434417520620591983478150823144927706188865833290382744782923633280505081549995531086021071101820063073169960270040635085586446747842805933186679463841461097734237748323600764652736495300564449117042721216256610421567362638391382771137354860876206298925772953899417702464032482792408501952931954681119262608024832523447121086719099554443688254730596739988267635447753363553015535998141522180985883547848182844588576938855343870568144875799754423366810277427333036202268594161935571753466136876114290318397893843746791982847918428201416229986857402095667994554307020659956442651470902804767561574360884106554920324510864618916836005230061831546380100972993737188136188547169424755704492703243085151370963343655864145347402174603991520930411057743594134968305397458465828460143685561821090956754554794156967825280277315055291316210786139028356044912405097114691612463595105037485812394728262403661206938380681990120147530282409612381004861940217040082231352671158171584930571653945766883328702868286452343709505971645446478587262619060592406636978405132254908484276891413467347196274243828364767621361269862901191353150936348743446790713310911265491296785606799447258992907694535270599448501246070897074362444147065181766990856174579780269948727778522953160097262579258647256658042980053590922326389390792532168999898210764318867503669039374281579082632410066066248183327346432859095160243955434937566155654367827971513976302953299940429262363177346220553879292614446656798816613945557101348054311387870595723856004970084889789150880361221007990204669582952272780504797430039426275118918880579041431726876515393674973308327921465849429892480388476821722739808845159446058516864491164317954922075487586757628066953080685114537294736035977299475906356648580815687200426733613658329821172598442931132389687264506608426020759665515342418320784540480095675887280213094329211304822363508454595506086931747108141201569440181795666900753642903325742226542761026393099822140503371968921482057033235431631207348738012014838312570819994734491801135064838069004513176877398031235582765105630112185369241095324708064391762510834860851836356787422885045898225933344767806706048290430098608434183376387844295602741933843661607853887401747575579241109285712462544489396382989082938043871386949715425982506402781180179981470476003361321660784307172076019071961717772963881255018352769928800640938523815509222378576969283543216715136836583753759361233291182432701796580985149953959214494078601109654320373865602034149166831303872521308082436159372538021394096310374292416949860107884962926389659041524585173347994013166403284644276873730424006183107126836789255696657368640703505640959671506766389229849024598417067379971924149446864760522557396344371355016680812575073911386892357143751217993625090284632069080927883339513162925561744100558493859977507895057563992631020184387738449960814689605161538392741108131995093082601407294838375091746671767019455691689364976844957241577164656825111141771136413419173549728348802196648412559205822399431037004253459326826107696114392867260968654612263798525546550715519399949163351969591355349259434535683774117038432867105075483022025517195656390365615691196550723189965132752319197529076074583545962361712441387246914370705895534359606477505220355260026161254229296336166018881705510245672493554275808874066936999378999161957388523068587991584087124806198980759074554607295385001670152648822557848632584636628923036958361888074874466493579970486623231180617081956050557824049311278148563699641810253870121161383896836408311531491831836172715788480794869458263890010734599989508168544721076882644458010573501911366865430432252794791522896618334429226508851614425174670995474714202549281622528131676731428364865200227077753792101223511444796208964609353023995359290760714967610221918576417153211172432645415176007017035463005913408007713764372191268604663803937998452312569893777484576620120363028172577835784608709276040365442573304524144144929927884650987982691488475648090711257231081585319095383940431991937130851406580472067917437429816192585832066067966168675948262972512616071600684517785965015646590764912974382131124740105591583345115913877704129956259376013983489302307330207939991941706753614295966813268448448050889887700755771248343845052002294035924197068961872923059427615680759756130542005851320381643260108973323625140909933586090765636028250911461835311834863640835217059729648877615265992538593189911305826122095518433530886952212941603349636048626375523690916033157218863677994036321485796379326950406625227055644313883700040571329401966498603745864574950121461107756193836580270365547961162449515911151023097804072345998702610265451446511291165273465760619023009455886262020330670649286251575461076064141851911040796592879653065370649334934672821952074294780369818806348575383048234360737050536638242127687296695213663630984096150295282605418975473082437794687988204068348671224842777508012276207181456298460157551296124155712716303721449096957348645970015937843866328270950693794916141431870399509325758759956375101471679074870871167865433389808410811621312531244676534785387276037851758798730691141173584403430394894084403147881461424764608503261972995331327892097420866946248239359223007291374218993812470429789668726324279608259352295983674520948116095437657923359821567363205279664004972650420245683859297604853490651702149619559825830653986413816454656024018297907593352906432805223637294849842539427107201012131591201942769656611345088584699753573661709825485624431846330935550738688137838457834103449663706584903577086553824261836589876995279293271246191369055554064230532063946075757568388352605319305963235804464540414720462023472932140016049020815417118543095585952273436342441510178620251195831764603499693705037170772687563277141054202117545882455515140249541511927223994329618953384595448714279632170198434547958449142564751757167340808176480134487592420515035866297122295885595992588591184949155179391117416038780158081766868445306222702646623606199744287776659366537692072756607537836255726809844522569325662074992416528928722987944889987735201184864205968819179527396587056628635414316797439863756755918442072770636602416883663278718379327609975865815356877213812619177843956937990095688277029349070094523853902505667121886816179359185326310514486140318086177635821378671016487718137847776275822034822071714287483908252898731735471289880682087080199360065412179513665934761133633894449203334224256744860282727202567872208307372191648491736350602891643490601570607145205794266206800966059794986059590187691961792761136418607916401906198600651724521070561848292859541909922640848200441077055472266250993325746176531716348452756437775803879806622643786819740038144878846483549883041928451819172057887236612376172108864418488426500291847345595785509758101115232041312986215247504935509878531713083020390787540984529963684291555472641592570436090649114896016903850395831885170447396201771179571481031263445956317141856863502391415702564207972303508678061935516453229819752058777139519131570341246789804139192640323644093393907133014480622458342941701519275559031900057359025294029551355157107331429413396640486146536879388138249748216595046156798885538003677110573102802357036196440077610058391355315382880341884277355583770190124821281531365673292433797328589607448668484566685326875313420321644155768464192255510295138346929333516999135529276782302706789047163587020365078564434265784358142771215223326565053775885420479074001235890273066556064097924957180350135864704146186086641257748820781467452419231570985575552762109809004329348919564813892251086714626255752741677640661748277607345603949214162941556667328349734139962688408215669801123214550059988583137172517923983240941520511152102313244713515075140277951880356703969913548127603477951584313125545991785002127469937387459282738808103463508014616014421164841845877061285835888401708143766528180195096869497309565378810834996015555435167221517160468920871508411319948390292047196033025171612619588348564902153056584879721444753542216960126535531839211410177311391303272299114626829235172628145711615453049911738127606934355017116608659863094117814884877624451613489403954474156868943080763562158541744125813253431066266968693228431959443556561752965285024674495695143871136031858157448028551928764504643506439331730099341125664918671752651657918887096929487224948049234371184271586135803191564116648899283366200850221103538692029867252959736550126811902333640499399335462336326725177302196939494106961353146366052116716570272742761094365852533977136495611801677842495672910399130255344699710674137922011266065894464873657395861882848072200475129949157045408908630530148018278885015465253028931798778832859004413214773252114416017680593398328618489699581628871877806638133319851904338493726121958186119242726029833722433470607130708128683997133217898884776797488072304883038208439757082387441324714203853950888493220110079761918502898179077832890465166016795444808061493158271738151064918790085538822617993238993682430330382458075469401233971066940780498747713097050754702614367672632461864280595734631205232501764149496714972958096415046069908028496366145800058743785690755904195655121046627832093255680896410924800566916395816000813170834305688011781381042676293488361826252197583542880478991481301670142594903905270349480529500896693990618952509365533021436354457992324728727295904134933055513626169150503702581087656767012189564564038762725087711294322909151293359108199731005300109294295681347987437680102376330749998361792954156192358474691752273923426661413974309553549941183341895469522910381359160371081078974736368481861509485812196285285807559040003950364565751419300201090416290332587939797983494770057421205543877776589682463335214713480537767974168471086644682797381641551088969635860951459723429513561696617078480932577772934140791680281167999876775710339403575562552458567136443520366762032804135959272624492603271925076744546919333334878561448458887399826003206009802415910496995413310684363173637784854295583307170187343684895590511714215504868912704330626064220409370515069378028698465472797406588384715550151083279037352900388583621469905856693539573962642645043278831306979528305793829563702747934563171007137374871051092516187966520361815162538471156283262707636013267710093221641956097285403959551364014680047440307087733194263296201277338355387736041767453123607230237955902883534321515604715857098054474282136072202884394782356918259399503416908782714164286713909829501647628720416555708538408042186667432618894163928089055547212512850947912747370527212913475635248388057558041217494779569544172072473722191911554567107059095875979978877795657016132233685037036831356544341864150976465814939680282790068611969086315889340319391007701997105199783036205683792091964003464752274482373092734857809888591591926316216294839470554809862077270788785858675395391957000494258285698692289084487371526731313751364640650477624058738352493120998162976914364329581988353269388207826372536802536790473435313161887131902879408869753395493622586182228231025482597844601062727905183909406535574342558552555654647724682096458036179355254036367290037602135794059100842899677371856726511289432079150114431342620741118559946077796438667109419552325158687024191791445765846846580127046121779792239679942544487172503371251423569411867443999629301379558460590893746847185341656292247399978102024888054079345596332237741365674310242501385007639948516906207089590586222787035777840330704430159329015637189328539798531746144679877377987248074960124852168701406960362747418996864700319703853431073249695787767592512493718155946300210619711771598489387717960508454192479162435125521273198630430811091540174769935809559169357330548007406422448880175231338565067710502317629833315051367588473582066107661934323648544518181843763472254195927737846394951630960217799089533006759453371943775872450687634865676304491362424383090721404688220197160355865737361074686184589466162006050593812970901134544558882367672622366391978130158814022255894817183660955115823264090187751846022008458010914230954578364853371153914423857245621302910952459940271772281663796797626882458978552533435148986146434057687389912476446376462524783198957599356294428745470407563527288658680141127172989160737354193180437923948410107141681412384233695843645173236182200762081707883798834662111606090621279083492245403836281913086305449303532974909196477951073901620665721290048935670328101853403361156990340890534839739762787598178992888850257487433482647290571058642063012916409025085137369934420827192373283310351292915963973622718174106103878809363250772527108437962436476994393564532400775135350328266412106362944802305070087059075236767572274126450973293109167359766588025336632523924530451628935648979117073711900716566383389123854820106262722980724368804394582239130641165265540093685687119459646750811748226263096552130257541558759138629871566545198527453823504851001382433093420817864093973690173520579909406301023139031738743292731263959074216314150832357758299511159368718315544252360207029176080266204638939142692584601848606980862282705228938616719530027975900730196727201450389704395124963311815665891792909286442867007160410011909204988458293230389721394565580651444056668872534423437599791581764127851859581979646853732311698720345973542941733870157300287077097452975127548901106108666960545955746501116243677562433089891727143866726512984282872613441118610787245339935592046275843848479050623065152418395368688683939038585314085116154327560030598686199687365838152253827694941130114812712746156635463740743849089869360869361647829815849991286638189321256596645424099689818640492575855754959920690190360589641136017905551299942604463948901250329749624119421894635327012157186875950324957166349778076064253348919775698735343435002129170700773971711055901532955448392250013407664322032969406762860888918782310427054039077094165439417675359216994985767294150762703857457827350765819746295781166096721410921590905915081090907100915859954388703089145324558876189947072559205138545379596835388466631077947581668185581277746370020090678665170544878633335082135367767394431874016197976006296700151922664220434453113122285607156998623716492446291781056458568398529222458962350635171866849377050380213810012931636721175460708725267715305468910330728176805416529135534789033149169832646612719780653323680850086416833722757218254145449056088282617551763702003872798575886314317417562145253395722103116860036835688358724247697314683119788754726561139572058366068039091724559634668260304492279137484141149810088373288984535025753999511119100262708990504651687885372324287608552579171241904966911242764796988449696274107316755409799964487226122944680361904142809932422492307974653103208103420570003232271359459223449814502136546338762409499189478855062823408181911606986010329345925170132263720989524959353522389706091257719977594856185325792727885907760717055714002301759497774091625766407909322679279539969725608086628795867937887587830156408514330486495997893142730370629047005347952515573961942517103874735928282281222956688264665015344281281754048877284246183550207154075325932327882609504621102017193301371589445197921193573453750825378971257459076496808898386050494616611894842858547024702762121918972816925799768910892666279394396849346534024090910205528672837339915222532766710128640132403387292247359180680534550694952723956839440710727588187195168007991913793771265163517164005292208451525247454752695051299908330171000683400578452355668689173800833661678618338753035102130868446757032192883593295090597101192199938525889402040578225764418963459886555242869982515103833083963375901145793288759034414914699115709613541806982235929975884830356000393340352225174656606780425267989336326033140005897472808658199567471646651178317548068549318187723575183201747497714046001760299586183512012319129435615595990262127470314412144685089186228067321715706922814684974023697307025778384373305535360454008524346654628008434798602707729451729108295745279745859086316496647847587352106880342627826215391361437410061973872636477037784496337255098436144774442625820717146185588612650134023958654415006547589686536454594184266562076486022795184480384840780512728886337894737644604536586401350448289588408039366527035063420171847676730613814522097955800099889280817067822010357945042798545928794812225270292214813284363497529738862910051469103252164953317463076354188246897394983642316570975415688601753159085049371416998721271720643083912088687058775713186125699937154429715534442026436629893892670532722017632914630440285520152794767305628019949053826618713684480280166878647515914749948453119784388531261748375489253383378020037118727400750542083076440526072251689488949860412148147127406221089217365571284881998993627037577532320603666414282647529602814378311075306116034724278681216141959198150793564842613926456079458625075039134976259044266268084363935025096884277231640520005997641823879507354304421722336635716387644535167265189920159304695650408156755185666500553038624791582873603228897844223948969827641510878954864128447728619380286693933003964979326310535515810589856735516355733941357049899121128943877271681681306707115474158099677646840469127314254420501114891677258707742737167208377334391087720484047690556938275217070395792958287479416253909747268503004306993301772807504607613862831275361085226503918082679745405247733532326477010302111244745619595450068625406710496754969579649517858471949235002813606788761678454442055966473420519492714684198204343502364574727444885136102747811104599545651119269652428319856674516745358872127457664642957328239687154612755510109357483238200245715358745175393900609174206385112762154202092878427553731578689298262020954618381532058872254079868391878873231052018323485657939420516741288953827544120654957536139093543558890699434585300712143021916538470758972245636547969821500997055255691892724923703480973415673268705566189593839151556552548093542489151015440664061952728980335047022050008787858258270025403508363160870131221062713502169060415354786646094954720480251540068797106868824016386579236431045608778130502777762130372772334505422134553870416985304771024703663396502004296242118193061372523986742751282794726209061593168478545534193811590034112551020043724837419410668355929451076995578452962278921689019299754136159878396497442649097139659230685046956032508137293345404684086372970931130396658848360798576677352489312776033322173499338904202929353937171126706785028464076702304589570426415131523380508042585014669952635727312967898114199853108749192386717664442771227487236986013085666325943816800020050751438979645290662740822220381942779445871377525071071651173128601760308719226613541224287832829848636676253372345842391324468210741411436651769027596685114855559372206121877520955449561454831488539531593890587850466961311651434216497714261045675667198446758389147757215060260479426187281942929071360909533416245412231392255110949723258105425844917894874188610916286754506433832469618600830005551036865091679802811386035970940946666127151756031587918956309786112479080810445050772225611057340285156744819456377930359725189441924214171304834441668202523344584188629815204513836914082881454707655331798452248983817684060687123046301616683956424757921987157088316519290337980952937193647132532232576998605683859312477153630899500067173092162769852151365338296292418915383265445776184217586718086192179702920870087612320051044716040903041642659428320295165110894570531613072383851134136298914674916680551151656032461356982025609126336828421403796191327201942933076307151741793817981403790139776362376557105642266109330586064052940074107626641930812243575374282274118286346563726867900906348915987901002302814165800391814706063245652287351917485621310059999377147562732233438090438916728179163790037956396608575102895570357130634529878435710684809812123901290623357263349226758777063376507522877482153038548377586507261427617944748796838359169430121273054301389569183165021794328554727225745218769678147055081217045770798689091337417157146574259874670146530192517463394723372078931649084401505846986084141214204731852506431198776795069081543173276632205480388718357619704210122693192949930978373629613220289215549166856297703996879489317989797898320590749324570700350359144759367526291817330355483287067002107293768325100042908118647147238867041234804142802598438093676007200923689794313205613118756403865878093895599705659712955964121400322466980392610392536034808189555237013251268576521752746308230386085846012940364561873472269356455039967674002381250443189684572842746862541815216292734804303933030513803338325365597988922567981158660767919362691727232499597064593822005379509618740595041476642893576941676529614750002748906731895711004501574258351425969742821441134498542151373801559918136763925686187558531290950318146243169298862184000521539997468738847277380505652595080567589541170551552245046765014314259024894520006948131218797522418144584734845014941206333075285586608930279210721831683065205017855320991004971696414807865663328389223674975190945266921933774507410129651704332851907842990101346742014607438010470146276167235811888624125406894622328605938450720836689198696919773942333289050758760362058316040059588177348341873733709408311005413199681849063428475509045470145947217787290645847817481879119745770461600999923832188085379138526241706773827133758694163546430981227241171812939156522052120596300275217520355653592607779890612863753283211144803203090369084993276935573234139863492254762967227038400492760801740560833298321692742657861883296403710178386185093164924036772766370514160780685529631546578771683508731558625193255884056650196223041982124804683801509280740163945022087543489826048710451490896462950150699781836398127804706962832424927794996883170632929175334813931999512829498294124054692802221037971832202716213117292685985517572558950787332548744869351850742180231290131561927345805894885367096659680760107232792320303219751583359956751073338151877498984813470687884599256003043961795633198144448552295370510910160617978220811980618453113469912058200352071778982424095134085748323793557441674215611060823552007949171827184856348778715347340488916232455141836716456883145444143832538555665533548391098704497022670733614969874573112879935575580362735801196718832279213845494103475993296724929315000919169791972686176591051127817503230995957496004229036409925914011022751793046963112014287639967770776828921123408558877195211771555070969034679500303429957750027355239918184745857956365704864487398572715470089580901031015391581704844537445736267572845127300499985029047102980094244192948540232405052433374770908334146465001570812794071664747647271176568933515369131665846623348061326446464285757444632908318282646030207734511643396280932981889006218292839620420337091903442824090539256573047749494614408167324827724755548990150178771925534733882475438479427774287113433230419300455956434440041776946847061651151982597321650149855818395449684273123568407428166039723978718953628692800288499178245915302547599590802804135121254216983008392305302375290032911114987456275708384716070759626501317830010452373533324893724848994233939668064709123968338252707444764405797274284369497395569206490861050608582240520409683732128931224455982702506320016766405311886123219835153699469126148014594444198934127775419647930448124779335064563370461754411687868753048936063417704683716616231297083028919592532010312050486973429970347208913216689600896715477715697070219257838481527899813685593734412644447917432259358406708674326756267315448012774731217230889605894413589997143143035532106226190794401727688802448352014312986786203772677719282457336696026396552009351299488070744607140820238100355371918964088037317850171132954127288318401946635071871327614968230833118093808304329165133287331840249847524707771811231030559010347748424759363476028299730181082848263443143891810935397672605316316539397415879209204915056216262011889954661984786713545743031811328252349487458211925129873721824085938583972985299756613907917721708960138385109371501126025501572136135458035751107341049762037939893592325094708909671938629778686253521383467844903221205549469582728864266102427269719587321511239255875498366670909438059562709826528977048572811235361141773266196762903394023979275990402812770876014021775404822564577879943753702174083595690407016802581328080500347565439669803091056770883136960804334194218928387267075182083734095381238781952663658908928457739543856722647314878199095559063677479369993176901773771475859592964659692484775627398333078129808976474934492527560175139725962684484213483905462438586052891607019475543415702720568418117028713988126008378491979549759513580477663665639323299875174732001509767116045971146491688467353173199530672873735496429851612567248689737223892238289544880184545536176486271501275473838857222878645351568552889102033972757249535567110607821828280946101987432615538686330395637165856712746703663441276052507522895958126876452757671328320401529905487243113933252212185591066709448430461315197677246246323330933586980777085245010072545429247859441027770304205859035104270308824352065463575342676723576570787382701766157940203485762373528248721414058427623364032010817574983324742327325547909648335959997311047225832355669755271886493072370006117533204059367345129135837372296086670413721106854220725531304391208063041826973454677138231246431304703137270499626205201262668668638352658265409350109501999683759185513691053041869994790591304873844164739886879113319237256989560172752840905613747309130621006700009001934641795067452919128988413453259573442667111743622608558924196916571635862611239006167063023030286693051458497263639549857859412592180828533120669009906373746268322638328133139378151222047295245479790903796803796355976173230518125676608926994305600776289688204847764594112880847041960463866110101414875617375659608044076095290551725796685324631956694760590844652823189585722675903497804150540488709493164968859614207041773035227307378195799311065412401086723349804553025590086825695395443102495434907722385360085601727636474626418893569211452467186096797895800742646261486259622387281235005066876004737570485036257789729386153034892685082827883852840673802205188479611952702017547927834643367166242672389778122966357853978087511518679405542481279521589803087443376320989723207996677845957061958273866660850327230385559544470653511426671833335035664776432718942731738118928783048217197565787936251076419050527507227704814493697288264832534305948065501632147087427760985197866006612497599176392420081634285216889923596632006435352795887009787261551603662638247279117635583140712544955428366547056202886815875568648863677296253491983970423206650486201446547134551692016826474835838724639011365726791027155696671577243224770323430015142828390499493769975879465588712233997696352431665710550478229265634172946530793014603517398360807491748707789638361158820968786772068107423812170326930423320598861001763246316305948112661618524049698757699435875774676238587997184872092640498378150815358290837870395963466883156466825507860372225304593165706606306349033039823147775036935028534311632779971704329564451785640450932446534436775930127267120661330804883923808232266973412157303434134659299725781817772503303757881264359704878585032367383865747004569953671744142740793687883701470072369129106152207483140814669415834234796073034226085766945066170405839354664648196394287503405987438119198619465921100822925788587215833174822789664321407175252975054875305913270500903020696449993783981622597359698970509399338395277554981375701241536223034686973797992954705925921681301585507000397764424873254777097258300503141258773555075892605190130020849477515161696495256206822229962091259116781251128259013898008744191991476818042646775544755555724797617845643193306205390493245653069349475537938121251274082240264352301577913140176725714001780919035985081491970699403771249085484571810483036862854792350556399973420343025053026989008865541992710990465508407956423629464605608968608717742577492398644844153858979020429370773514381801164472483161250209153115099162249766077589028397101793297266917990696494960252068380606681254090493631260748428545184033257303060807420203563153804165905687082361074948643493074111894123715668193283640401954985084586316506432185009601203491461899494156733029812572658695246751174462554986784194002227811445115857120804461223175554436142521250449364681021625111054630708065564311942536776400480340119042966574044661319649481473541481598159160901849209154957512342379179880091911739672163006451909714866172274590024387876780876381213499605009902834937852558267091537874586673847598014436443311916920059950142614775412403342445635441870354704873337480557134473652024482886431942589920312868299289352912188482451926635945028501216956191688384323010304318236345546171660231554064266287083898418946825867788434150106880451960499985888617244594311676864821958205973391877494216939832332783470425222907558096152978592476368103600069091340621295147124361997519960029206870178249434371199857716414484083994979439173199895037109838211016712938046712148264411839267244114521188329939885522218163048414838518786346067890517070950515661003991460051662226012729103069557605855008237078104295742277539977775500913977416477712984737863271911136534446443911150327681484987072587925156499306905227866670502954815139769799147982249337464167859484624055098854748680384313363761854902410923745407799361805095506581857835958795354761115246861988435157257693258801474683832759365486855713277785911285342111198630591690856324086046859783453390664204505088259359175079187910486929642405624546001507327484639536153625282116859952205973772770955101459263275942774717040505529613825937816370736080383686424857379884348055217909011957214761405804121245134387328307218441200753903332056126009599371378946492736246076185972347606420403828678007386278165668886578460786497554577959722356495838882558900985987440554969482554192660390398997371159188498752216190145222489276016201398990418344921268122125565011057704142965191713654307772772373519398818616653405321952720078061755833487480235171496902635457071023846586175092477609463578545911967127140404062725685821383165101909667927769504396504055127334048951694085978028816701329113532816660730990015720306176063921840819167490939854653741298082884896732308580271068604363522265116480830171939874190302212882403950441344505429281396474680811512401803236929748984547855240508955648440131545588717001239540285690529418440343225158131237791218160498220881694816884663231750525742892036783571363703237410802629259308950048666639416913653453363793136788576050848683299583832711874179936004153842976852424948220024515317987362138634477588998364790074673649151767783079681684195660635994808215874467665924368135717045614442278706506464363532748937991337624269172665674689190864055864484039085169123038462817189471961525741125868309232826920921789913615559049761717487292591282847767587799492072079438729831238137145104627028406557034900658550890068105040258153280741340731195497270118034200256125455025696790582180932012201331819394066817940346774804723289771434819439493507384253995142035524785964391176454614243845074310972057470851404300876480873937891196160071248053945207043290057749226492892778430255479246763766522464103541783009255235227211665028946620325969113689435056738358156017692259821374052692223753019915823063929596153568307579703398555907595822383330145935871767920631360255165404838876968418258666616075977749527891538188389982714960810491587039700203061551421895079717329505935058462908097412011683190185377262016673940177646883967098364614950499334481803576970926482368352153148426179550314970218750062281591080284006870346291894335129683027294984093897724206512162627909246474343483809935295370200648792626998821640072845102048511640349374033655635963277871891169055555552395841862581137812460322375608314745412377462650167948966948385329873195515590234963743802573669304120499555701168009799255764776210731255958977567896035601437552956283643931146028259685736432264420940679655296525899113702030078450557439112296183788897049992037451706710965285249960151120293634896528059921587055387828603440347043113528608509197001447334272608665386160996937008589169291031149695746494192637760350186093046568669635683898185650224055141164730221427521673009094837862091386847930775068526583725414837086134926893015932235548796885401482275658936955611409694794477114884120393815365903323190956140820679207287897703786349750777770988439029523018981920947337992376648071540560139340569391165679664177173745339832255691397841525266762951595574747789753329943349265419886737389720742129958732096542607997689127262965015374584256137611838720413418955340794711779751951404241332092811295934924534499043419770116667691791517218426699892212267152772671872497887088650558432003962063346658731753932692478088093498433258711418927144338229723633165609516758622169372213225971989998842414039269179414940250466917315878040368167404694739822610856452730523673388050781465765036202624675176875535149045781919345714489252226572180931176025589412405619804822348948824420476213727055977146943748300939627836510368459695192779336314437382005203233584420249430205133064902167891970215826148722606868834178827800298431995989956535698686708632126687273990299761063602803669018012527864360631631642882165779398920970822473814269578598213021871908863735915416780968282858568504555070347502768325679637314716160623981365706100721327640496978508890085999686266670326382300598682582325142221901410690107548901691672317686422577311688898433396590306540856654118576931258040450280862438922676170158468508135356900891529232712707842693116925254574365725697162040047523226032065907072575034993535728606125731615375147942134510847343952184973732906919238679634815014031588686263588580915173713755774960233079620318435179059010729974164714014544885040460175056394359223515299335944304427212465779810153498361070713152817180067731260599143847098085703617091322904226096063916550683369368038203680717673153457024144349703537000053749594530642599357804587555067243992890259447423215196624854099608678083916993971651126577960428575320903901256250933905302086174278591147515113365671927703999492595083656569421117414357827464970831932552781345458641676436587760647696173036608023355534609162596700965427832098719717082148804909841230634183471959236510287148723268234537189889410536784177566177177896903589220422354618987742417348719053319277210640599988127155970130931941639121389192709704232809587481470426732876529767342532975834263769514950447246493304853441055614568609076168524418533284579271081241802453058332062384796171597876140380956352499678997409790954436765751507408026060593956998191963280485702468044570337316977405922254709072142519209895429262864678864712871716300159693955143646474606315175818250460877991647367750790632996041524193155811139784637632088965178870739463220447917592786428276649621256408764083532853747155239915826962571673053148836167970309299294984950145250223445560551285668226507088172577868570990159635447093572120137428377340275024507151575018232576851854926495360370625380392053703820675641477786683313819628576355826197765373259328301000096939537553256338634367106623905218723465371288614287633735820407134278701677026692275777473248910438216556343687840376927389767322745682712186514741207524318261452907497893576528395065011007857122434871785339537700997788055359131478091114282080528762332014770898578757199763797002488702487044740356582952386423822004969354189212371676898198740210230154715931555037812512496106977526080599327796307661081517789943656905644116712846827395595949967043596153989385677374467625249957144475265599146210134338359103010660834830248224811354615040035494296956437964279347503943250584968603091044982222718223620108316757863709281035601387440928285445337921915223746847598924768746815312080224104196363531218482820049656548863869025374617784433230707505406842747873240611254791995088729056119673069766007294244812969147938341500805320483365506019876946529542292129331099761029643543029311980228727391432472894970250486621858718683274849394949012599272196399924215428016101792003860467342891355436410943532428847792010557314272262595122691859243292466431416066477944101665341831344324423889608744383027318057272329049190819793860504530209645003325569494571204461025444924024412737418495855558157542366347006146733789286263980724599495077699928651633591753451080242709160338731783730734923909729162135567089363162008762425914087272441859934486129511515603358637173373991034973405285758376154300575713117754476171341757987289913446803160977815506183413606542791320093090076869915737976581006095715563771903916967673064720266346038759660651122638301422477268199649028426310013695338640768698946222099149655251381472470589716113524708707367067308907334851436793200345569716748705960075301594168135399950643978101784602737701526664184407239370835832258450562315870070404063521583737746339770710922576259718468090244844693365156472723478031046954187201965164240472009559762416271051155598751596373429655530764551598615845182323837958216494966267537012446562411185286126223694141538633527381242782749347564782662257869760320899215229693522981800126495078776174268457338906925711202198218511390237648406355162606520500373827521120563932921023868672842288894299538979714063528929410218146555049808870821099198105020163816604212123297037732536062804288399560875492073963388618737899649991295460699671755831419455334116764764994649022629107806031217257306263157057861908016469825298819377554954214717604884807245505275625676019934386073829980254537340471947662035558690872189140137724315739066755110929244728207087002450909976733597362231522290712184211770846922143324324583054666452199885893447168090814827217088102254760303487167193709016495323376975351671303441433525533010861856114865285466327841589698619441671684496401075491522922033590921571835061510849730526622271735503981141295035401815290641520247103198111784010139805663929527829130120801577764913599086414505899072366695863721568942354553099970236403846791969332103158105714334856922523257685165312891865735095810169061405035028416043579371847938210887372565589282087014783240293157891579163330859996740949681556702743295710192842462609458743858480438626343998968557393563790904819582547534876498599392720562555748555619465677734256157566971558218495044116304887297283769359801877533138662032780283615995171771992237696551205313651634325633298532201551388391019646893502658670827571756957340667744733326926050706662048785815291972159196663819634547493793786679966177528100086384457638763018858840551196278013142955151651956751249441307942147994287132948501709608944319181039715639681551055549734998624349267973306787461919257951914855806903170651898868048126180389044793914014782507338155053770868815244708774813798988109634302731220003306073470651424580990352584834138934541939904964939896565452071385666076599361866837610857765393404169712110468629456854089759129478741585997324920765755403252808025279738174618161038868331781240099353188404369825598610690973353133144108718296042419576306635267137865516601393478595175674971905144000023192734080279944044407454905101974106197817915899376319476746991864341079387352065321560736134052117873648375784590979667156736665569864198272361427461463582550563506065805593296648211103319744748339133202069614030799577612541226248850480514157304890576593376395036904783135110391496510305945846276263194999139672118429054832597965818940180421376623858913378502818421723581391775785391927171707501829065866238337220846741950256454648817689463946884352927849847974936934076504694292915778716656882678055999307161507851130081877556667058253810698823821171754841727496372756546783935153956303652088807778150913287618077798346947433962389987099563061443764178615311613872083348688494866668621413887044717098381519589158439464946921704606014703460935745751283648253205102331842164382237729292533709766444523051246954450926482197056893723131292535280333031643714810190202295289892315848025933185710198052637654481514094557844097206514759281476838527780333161890807093895548810766799308752185900697172627975135606309330078731057390705891759618718595820642452464983934774801645420237449837805487976740654797524952622093772586626760173582317381235870088585335754500131512707839103814816255478846783435183163714610520719699472621191112832763641594472763404261036449461499301449276836306948007878921059400062626979495807202594958753343917024062060934527175502738268783984856790971759629389798566840675759979198583889628105801804262701754892314050710612075106205307670174977309552864393903925010508533022365360179288226273272856091537026365344423884741789493944890081747118245721078957733609312205238617483725388653593750680917892675611895352001399880971303746608782581950025315144366901046522360486675776011182890598272087761860598871532157484733965438619330217105550465412635694922095277101744530803718668818302299395202759476075043618700022115602190393135480806579840312676909755874839509860186533373047279053829077904086303203663294308441360996706295945169950201122620830783808548859042088881017168161512184977999328468083787368280303362338950904011879663463057611653032219407209528964299332914119942406210033748962822814797706668324781194960852307179087619424791584863353120110789090585649541546784291161620497959810811813192762630615685829452512973211406633850939361409384159050484338629438532408894040756582091208546705767461862915345917288170770680877309430222789528850632741269199621665879131232614702492106086636189717805007989706481237927134525596151239181308351142372819959188964990773112091010211651977902588497786845659655489252035032677685631063204488116661773017028266491889140667253663723989112655913028800751486131190354300988724539023282440606613501187670135766072195787490001154126536432322367404602957611935622470731697582518749690973245094262528769225113735129528080257230353977328486912672790651204215477461687884080054380986441554576026111336627313917533963970230016260006741948943700363765714948801357014073620618031841479095002930065294200663340233051250078215740441062418839256746351390865676571080582642165275790602286598102110815684002946945553332494612792660872871096644869001993995579575367930380619282562753131276804565780949721873929560986242486833678234298910902305405860432003974745469967478500518666799662204009977240785954875826335286892605605966351204932739349839773865170446312700517625264874361196190056193953981647597411940219983637445009048992841641116673932101527324739086249502341333275843193565276043268379720388206766549307314848138977829585199869634077396095180307115421869380966915737672771661680127336713520215887291706661322775344126854285925881001292912742746875346412732123930793121309196028063257360064429271479775043053536981803211155721597654199000671629287842975792628198273214134014517084867967135567916582317468104741303887161567158787504087932335842973585053976711807742258688471539626859042854998455235890068331522850094574488583213248968834750881274450081918218110891783781791723647093776565260776311713193253983214120936637431610058097444256915332599709843054934988177983034417571473791139487657895613491548342405417361874192819869057692114587485237251443635776391511828628214774146604528440582121170600065089784768138994965969660731936632460539397503632426383298137055948833732758150943527296427892146003435093259081066177030984169680063911941420619474030828952055687111605215588591445623971263127548118410165709232173795154687716931761881696701889405988760077283521364589063971579893378571048876463289451190827241500931507548328678549711468825362060910212757305828014183240404812362336650065493078895963570823894768270312662863193090321405186807914229580902883249316466794527026563721905608041558450321631113213667428147569999849492236811590419841599572109395053907107300928121902931587940504971028541136137343571898597028962703831105853488354199700465572408504700894648008775412894145941287677906591270224345171134110050745551469678230088946732715627603675884744168999848903802069187357707121262682433218455819090392292313619273966607218431245963908758127017724867986148179867286868081540456915986869089709844083273367748493100154540660372308071544179453833681954442113275426332140734286694888780379599999933980515204975509311995154092097364026065263372982365524921202546858589092800860346428728912879936382940729144858299542552146822908626772120916684871931248289604060492388991129932782419629990489743802965129294756486184869038512980860588570046363920072823962568825018342339388148608840013151023175152424998693793880918123154488031154352545258202784116071066616948376858100983559721279171086165704346155341511025988513631500309345740375907121951720193614131186030139543446287377993900268379732330773372866831470206873494163430339040353617058864192251952654056540861366083540502228591538228621923266147773907013357624024885214780703237674795132612292491309217482359806459364548670015444094725143383083199498285006608287907002816087530261615663636481667099310623643511371801659380766270474128578197905621478628111974913562794919652754504232197545574697164883525256051883395756061295623566981865690199805694968226387268232028718953214962408282949164440239172463817051556748168705375286256821606713464968912081723822058387973625982745524217383486608528660606588744462175690555425749870112141392871782885354454147927654427634438986447355294314017687920972747311607531218552533239255859914766792625819124395279885979336677059738567335035931164144311816345122775898432379959735230538382218769628556493696686484999871270228453285511973601605947423580018101136922430445095703993771729962660063176193153046279796678551811518303685978540994105672049513554663427641530089472474117768656590129379868581680974816325711903554843984067968858486624017514805913693719255367982215864820147586920141452999489069847203114763439948147354162603453882084298325150180027341114689183425333693567615301577321168378388287660250152198137201377258451705602014027489740673330493657200243411803840362925930690194000358046637314565194903551284628109117393993629310095264575579782883648196672929130006994416283593909759804800911236484821513461693807591052051264514307507040382468392241913280155487565633140311414867645250456146160885251926093911130747510870064614159435928594918624030786128717486782953921626246281628233795266243842612048561631022981000983104018827526736693058750356007870338686951975960660157852623971800486371237323224497050444104109432645316614196421011468040660924127194956042727415878126377740685059075264381320773253599469120530706056078847671242097694382792598800978403149194214668938187769033542731791500697309073025928207558279131921608084889031484725677330286492653300636801222629673116508884166662508898252222044321687736076466869065347295518371721975515038682797608436726393460048679855009454373507778178354207047901342453469593936973773802716408071281233601642585248920116923946682979324139503941759833046712684233434674421508334356616464012367505576589757261364384536434550277267872078258645218875092385508097458853634460495815125804614734789398956205131442472367475226112254951284143670295362096679140612678318496009025369609259240055038802318294502276311317547162573955153670386761224543314902918120060914637925576523345344664740035685774447806186150353129115719666715264460576130011890148930487394062651121287269525550000922326353573173419098442733714914038018472637683428238883885391235070914357619579170930457164526800703126794307601074685983181144061227462557639152128560128122845971963725771607150699299264731694396546679688633327231608988975485131725253551838958224924386457062236029685599954908127240605112750995864880142136472901932718122154756529840134368836169789622833561592339958956278811118019406148896713548882697345179992521526306250478894539076733483310424141917125692698241749334816953930878788247612732747243544604793150700744772451809310993852284773123166876643191613686451332582437223694501393793379738180927119055550018932105026935940457080020427845748022206035640336921017328218101875080636111276369152967213646501855977315124499566427563318060874605394187773365906652012586610451167552758584828811225711416534277722513473002609323067605407159429784009222976693017104275013753327499946185488463307798919767821052583600211450698346759727911442589225436297075210229746622132027241729003932029768985928058921950279962117791721724076778995793628766402057400996536698456926012914449714225169403360838784358430933193418730259312471110689973265395699929994398126343379768484983122410927327476931339663560597549680247272810134607298512161450766513409184494624575661068928234809384551209077441968630460881175628977965235594196912166201572211767553498067563258102304619792994141604074829892489847245583707091633996353096646015021971558211072361532437495016149391551852727774284355066001618616131729284060059340332727123517030451871990870288301765437529184540893356463454234813643837600689083253248344428929561080811629655463955964319412152758906387802252304621151121357922938037560916906612750807369649204432534642618623858064925720091704297921980672553122733334599544859286691665067576600412495847359758227135801285008218961804275073041248941191642885500219451927663052693455970076403549612739274648461437828130689852429099864640940883273203278293649785242655504090261211006639014369143418291167374885451477592963724269576145426949639040703699245124300056639715940235248503234835637449968459746464595227633072029064464490767903039079251427541079928959829899609896630237191491700508297237862090860358168179079724190134065003050314555095294036852955491782457034009168879696775239397367194464283307781444553055808608123951963632616385263462528728230892463235597660218880033077098763208886242120686179307500185355064548420348734420756279144739864839122268745291921714163268925700290199707930889338500864324520226954617132738133828597609137284219148738639951411939381376841511897458063942061736629516261855475989046769886152436252139247667106251814220170053787277518327284171042752066592902491196993495853757280170498844455227204619149416594884518971179939085307680640060512494684027254620074976357840922371250086255956074665169118002642517282044424561210338356353802594567297818302269937329397061605180676313092457343546089636983350398821825317097873350208435306681629311926698947474066093578663146008867152949629945858095566654984959036528641273865583462562111043226523014656762297134030259683482523327957326900152642799846231991458302040103136306183719140341023139398382757975678632830132631231158705272705138860736945808915871492629896563602912667046057813632224942414580188796210734941849036855871748488331620852848423832470066976779404224669688623380842852363665509620715500806787067706266809160123863677584714536721349255200686943147636360727611950428407049010533943700071787861075183083557859761081162215070066638681705065346824299942108154177311930025152518394252035520259552813515209618113554108439245217801699609111097825923942772333981243985717131182923811120995478486012682950747316337783531770960688738333985203123960879872951091078551281063593198160119450928200566894296124975984226543932590397420307481241095971850016729038395923174510312727638027090211568650017764380744146983441421154629390935482560338431652654313012420063793691993285777633906230655692274668895643064637468741754950420491266090385525983821177490322449930813436762014007045650133388366688400757490277214951381153275808061779451795020353505878162307109127803043831796554535757963089107762898529668563682982382805066372026067362223093857991820196698752150401013466773163982420570191467879058258345147703019256887665678944215772317617781578250948879060325684611912030019707551832910698322204537516732204289469459793477530379025325446358857179272440524702350046913075096261544716456890654461862020118411309371477497365725705431948544776990766045469131178679028844014650764891504147955654749476597634975201701466832122871168899657820742122610860107209345875405147505668748193811422261258088432788526136776806382333749904401290632750151028858480945019903273728517853132679095066770222864174083506024270926325427294468035269887155639477403092420780836793683319658479869969914130077627771408093986000902032614132152569907158949287797610987410836123681887756327392075219930575858668488780426183825003342779972796634008989906499091581466423144066643938090679360781850445015695730451525203156790417931259895155447020693555358100089448269803420636626973671133714968215293086188656029118699656953365043839728611492842735611937501601872587322032996332068240088537081325426288604989301464539500757047871564111966047496042630528979451853953906218864707200007242508291931665433272249708675979850572348628675825259779551491116804237267858511292064145583437162665509471294880988019951970790303304663485241864862966251598484268150007063975956061115090969516980675792543581084855589754739190962621871460719872928391331290822718043057969613531941463741770679754802273101483277345009956106519301840649545398507069383366825896975199046432999707344059692887088162648756185805571220405117729483149413484736494532908726279736608569495970112656783758853928861392506161983289765915837677313904515206592073587735668434360800459857082834441092774740921238593498444410540464243541290165901171623974545084569898725731860157315374452772527543209823912101824973164523549620344285608905570915462904582248513262878667626087282377152419668111467560411720676556659146700832129517871275915927802872019722806688684515838643254546198623376806708582706975866807968481885591625663492531323380499769787818342688324207488065260736264091248485831650593409233816125543574311476072726325779882317534654015600682457091977045648897405218284237833319227953295920838728903834932608834150956445828646932891257896855834270052618324650415100066404291099477360913453885099511698539051968597194803779588091609474901375763771836170126648821798605397541614683348670722714993297885028330286440002444230481565890572178561434035700647842561303856505467796411154083319726572435197117012145525096009887714873872775189103626235019249844592274885700377738167467991041512262681467272448920752775333752539950733308160793586428512558727546862910417529570114519378873461434761005630744511677357128871212408968888155322322131662422201834197350270909295504667749121262470234924626128463307852572627576339971190599749281114671375470220812731073959545968359887402060484413667105404526847624723024220938480226211921177987932031386500570062527757760793751466445502556955303488707878057280979337921305626338562811495781547071001681778858396288527225261234714669031934140904770550158927033229553276733559358045629775845123685341221109767609874269209518791643001010421510924662366093359221655194533013186809284076380472658135973874123448472152762042039572310552321524200961260514846609118193483119741412907091159172617833181737120468469771062473494689328357379856240859165277468841388285334722372202824093413555557640077457039237631906551832358613768820908106268900308560082593978102959055842541595177414645262195991459350952384257447180108727759550315275573671619559718097520377791871343131159537489825392022040666718465229142555575604064644397553914964616935845050614924913894396374992331001874530786636426710496395985196338920371472560432300276514475504124413258453357022027574450681441706818367366258563069965281201824842480493737661029875060335288579675753983997749501546769283629245199347206605283127399092569112096928319999378256568211323430537054521755915057424316273177469311937195726983818367012368904757930547299123402399698582499840470791699775796829719681649868986677727323455837493485515349337921929932707230571054613886828264280528562755788117503524880382200995588597102828420211015979296890974159671500136408456919072377638926061384262626357728867297021139045636813078570225622654433413873156089116544807832955932561798959108380754174388386002764546029608115987478007547652567402123764505325004881211204367045358253429291455460079024030965853086220045421259222288195238353365545565509301199737992315007539731411880392541632515540751211393060201610710365384457847124792869817564900982311426253093291500085730588885365187539501832422023234572556737367997710154454438649373855032289007163503619766987245416408443017740488997810647432860597347762424888283761783867883608585572018720122329641079407631163689524422985119027363361048967090665937453819717445623322839762256977276526441093300467936594279036140058002920865889960021219809641321555693422866316405160937450854643456375735646882975680147864099197537917700439154219937708383572783070367009580395468132182022776346873734837599738462603887099279427496466340323678681038133720984602079569612490117373944442377744125564751605336721648974576475288374804426903075920752170599528000739449770943881267819123625641411540727800349330578364987686339002233055254207945574756816973348131304006220644213488484328789711006996484381294743424303778599995513733946711226982443777595257668814541522078031254949110758026388070442183031825091976873532113677001701284309580992546455897168080923004231818703437536156004824425602763442049144138178704759615351608511127583681761626396044101644406867994922270390547645644927705727619464707556721000873048290379586849997903282602773415465578527125495175263346644310006912594257597561317342479215801183830238211723189057391986290876957815723133383014957343430034108312114139261302051971435231941322544369971813423741759886362174683801228755351085994416317391758674644785506411041268458346193566152946216758158459283856436917664939019153172537513916635536095827631112247224701891288350084597716959246657885152565606788467573075874773908935970635729484354991501434978604971296635439474887144457460585882988883994370750041075961677266760823309024581170920720365123324334449893463519230691250298363760614979615408663424550269303916065949176594287498123502042149505005871899257351798324406363936764482911049634756694645550731245666139095686894330039378775967625983205069241126398561891311861350565140658509888494235550566398982479167956040768387339388606535188368300750818628781541848765233536500169046730628729783493127876705614215135764675582444759242340011893850849507927842290020874517700499397777232023677079035946185026216409669307467925691390706894537030828935247826169489795567082763951662939993286470912698635324032076876259150036177698791148485207805354600534303284633790127495265591177968463016562889536859795710268794449690627095491028827354150711012001107752510669341520908040325982931396993564841700839864864045375380218556657759626703310768685778474547734808623243915828488158981679002901476581324857822809847190889695477296875460134474952094218032269110876137357516188511337201544413396761953169642703539472979670599471277659895863118050453913087735376761744641633763889164782206516612330807353371080418678943316657771607151592359764319951102585660761057053704683164089397319221990418110975558638604830589308593600755868110662639323648889182674156911669019537566391513447712353755214918436029138147218168822416243819882367408330873954861991340259076425716571800743389261786325104361419234554031584054379133822234677907883258034236387745739726514072770212329813004619850836695551714724452526686938919394033056636320680068294010561990650177156022116288002665031915719533177638554591005177209549843249479022859542557180820808884507047626865856101255976113680295774120275434855262194492572165306993189493384644024633384742059516917608547011343065649969531240413770491431410672975418544553216685859298252239497621779682593450343197055978121892936921743315569937302182501785621707299034425609163819112942332176494236727482371934069925992219154900235638671091792211397901931606388545134361010782809553262482710442393811772293583894108406966009260430765567607343377339390080800502985007667265323435721946731674239584011144941637428289262039591045433881784208073754489058400221070720597201002325916018580276864878911938243159019069173577213909074341688377536700331107777695632010858561929221096643800891176038950274958930425803392917889596402830443499406904890760318999532652497094965607359363117461561978165521152006157690420543917905369207329058939112667345837940380634908681768926854431638972817980327753071512863407231815072531235367976298846900603903227185736740990919071387945373543771542052793309373292527134290189559567030485453859701515820365930089183613766467196730317276049320773539418859267192215859324096751373859816694508304390859057768275700166378707845707208255925267124808746430009132482365661300435960441193306148115374221555831099316769450104233847473728924673867506606520517531733132685569740262600259388302885492260661583378315646528204102113239357142654945520449871099522414274359307371687592234435416612923464197720606407946727672143708043743409317955825737971058773750691218575043396607087328932352259868749666434108265828663243515209987740793333551872368872333024885277341431181536027111427855999268596528643792011621284687496280227474261090756769034266570921793680109946633664348789462710082318051402296183351499786546130566102158846282189299457092161438496578223006873453869803937892599065363641134504422256353714663934701708589598557017202992246739588505669604528505248299486963110329305210856725124071643741780251240794489390643061002623083348223658882643155241829332634591887400900037052302624100769478630034909636694590751093595683511704278539286633345397112222649004542163190915292101691050374300130754266088446087667862160253322191857217467344922807781978392199695347754442410068668414309212409768919543879261274811265334570455888644750582704428463181180547132739030856514545524487133954393503385372876870556126447755400756146686583410049705873367937634842545546211452939013882428247089610537217192353115758434726130171044046627282715668259246692989268662136796863056169487985579073574825754287806747466706101239849664736169981567547251158104553775106300883711080448444235155594091078599557793350064061017645321693073397635285182250332437554601321201596518249290027399977154609593003881373648395112971400936954621039082556362840070229848476106543721957014198906995826707384794252418684740105574966129127323621215518631727812059679583157761909019340318808054277002660585725886592832503956623112824756246845556018980679076670857995846658901494378304695003282513841643071473313649523508075677293285993058081903786290590453176306745241886984646793888376058624629416376335693229137679459069306192654280281980249899959145202711414386017781880303306805153967388242075660419775782600969533032731552321916302163589258953789227102554578685721646690036227339156912787685390483795290183931185022719777385646134653693532071516202711571878631878571684346688463054276583102163558448799991690697479690179551701881735309586371042279297188871858331172216000993948116366354378015758841919123319356840596845922477080169446490236844330745962624319293343100029375037027898453183530899328518065813439689687773976016392220656314711337705608191555895216593759696712283600336375049968269524111082231470215431677781746085770194886041299208269969030199992060901472195788861752995062784322085226427371837496727624873688563003529567510713162781708869730858092928753681330756780986533049163061841829076644880595364096006153794497111429097003817047925990914427502818167948319937180638651396714939388534855473645076799840460811741603301727026559093191355165263465380727852861855925669992139765075510883132851331959638254281223817369005504921096287609783983940837514745117053349219986194480946072808778583088579160051842620907498540760451449205728648873532805347526563522613319487416031413793185680899734844596049307772054031806498167762282975741332711525659174030643278880131550639484296829609248545306152914052278731456182764753142764785259161353002464926034932502900126925001698181562999567751874408756655875183832909184555338382924643763093983692849333662057897293755842881171704978346261351181231766176668100619990221057981322003992654113034644341209456429814636714136049851529862096262674962015214621861932543065732460791217822392040204424626788216609960958238517417478767893069234007560719167102321272585777338811043555902314896882142521612416597584323799119643151986071316998219440984848983277081139642440096729898366975327922313116570207350357899558883141506293980950763790313590209276500720952693117581085825320714776086925197423763319883255448807000979256185129945426315024637310785921825311138744028114933642569677305770364214849473302130775055228836890690392999745016400881027911071329048547913546832370938099420191952772275687213428535885485718937146797728097008145118559189080547596998349547277494494061291581753986034259418619439388256345084041273430534027238542152841145126699720680346416880988726365630069268563691510492241857745361619896788982501305330522647357527609368139350685709685470146292330884523456811538375245522310123922242008790372600382722039370698825314666282624135688957422192685210411070386959360598076158371029098579872922301064613479083914323857680339999363042535425437920605179849617071194416859384248531200261886840322571551335870180104634119778458896027514537195095324263574611616104687302558967259901040842555779616180442628936577912240007025502295855816435006624901614820874460117840397588703449355521445491376873108557143445657477553286433209761049863070035751875460931805311678898981353657701621209095648173242095027853601706081904288752686848906134614471555604326839721566447795988300779169307085178735169807750538018546134375772333989347298907629406747542544421507403921590402411993404438798828004592347144356505485932825158552345079194583957324309560198384925413309847374152345388776906841883121202621026312738410150610853988602104476743778283796240102983439376305042185955044533510275688782774806158752282957497102951243723441160874004087414221274310833963887095665981198052140655608151217186060654817597776040379856973242047233379979529273283325537323172254654725830660116387693365514467312316256616341307669202953767719946763963098295830568792468592862355319161866484284061368551824779816768168083962438414136058756544382291452380337709122699286374725681128816338995550514680878714943347198654108866479839876423956740968762289232710949561055438875628229851354527466112295020236994533644979073502964346628735975214083539316530239482529298068809334628308126318773118781777239574088770299355537292191959331379836402297639559726358254753766857187697120466954112850909719542486664016184838647020709498225981622308558094476440474501339380605200570619495301867104152152380614597919143743503664886367759303604127875156323711602183114395511524885652629709391338046515394810899318126955526949624502701952568580664556864973486240389303966365349501265064414788682804356363360653051140655762139455009104711876705596786688241097455232213723939523758408042825213410168424444443254068871946618958888746349848899355258490184020405900873360628455534235758985031557289215634978036574316281186579813136232501472695390269174710580864682580081499990451801387226347628790530872314106780738516350966066921380359493746892556066033397799827817294219955176980159185646251360532604053639680277237195799434302785556131553721812959351028743361719728594408409432167328213693695279463652455404043619025930213978497777677008293712355018520075065825131323297269397518969736588283268848186051478852541698795172690854572284140661020991920521271375881529057787469260374205271603667242715329714319970140379962307149599723620710514564205466201162050442487125344812430504101628342427356051885973616798544403539257622648773926176642118812296984644182732149557634777933025710829466619699790254530893234086333133330379267711375775376628299156562399839509292173746386469227922396093193676523646008949438055282985931874948101702050418193883628716504437461174745379780496149206681372621439865490632381178621551059876852713319384720491530930050005745704982739199971239035005330741983316878491062654931954291076466735472273326864412925081312123087477007029535900569809515321955248827613681746766889718596699789466363344389787649031263378196550810665628073261287294674478158714202292063428941180920929077290345801527394337108809146853290844247119311183084404994793925792739026197450099459289118917206559041103282405336764272832625175501936338746290834131067689519292136953451580861642404562523535965108502445458295188395795146148322400280732312548327862605821701528172994967669905396903928420564109484929693061222454099276975255268417037625348562774580037461667288827878797584613669757059604963134181404280948601973915842044267891556826327882263555532581341192852813467381296565001538033175244964428382689817328283362213652005765710160758025875445462440266272012446421675889080198653163528780169460165292623969982704013112320280140437788606682708373679404481754679220598720014114301716728816538157432915496009408252273798654837508987191672962251013451699092763557783028593083007971753425101512252805805382553472100365670043206817438420469153376102902454203177397285360202938800003417703141658844828454551343621722357738274161383496234374942798637697969198213905381622174789841424545256180747859212813826904955919672819934119215747678530749656232584817727072266845091640307048601937015214301435191998794589372145970585726333296064894013503696055615298702483370404027254572512558718279785081713827817466155135208682962285768010388351454762863424828531453137268098960095893255834796880178317955635275429421162295177796079757037454947470449492850296502259634962439551235215669013926475882456471003122575429839978313094109803030290018750874009935712438386363668597533882646460015491596627993725119964505258110819074295996313798555950468999397928185517069112801063291548573089848154853209926306036548489411453899344534661221112782662957532892078872627329472560499207417502215571975424860249197626965192332936575718370175214076277097737325223222106188470802923904306054708908940263951514045409028021043400294375847070529875204615359468755419523252507289121466068353991899368267717879878413758322891055586827100104660921578214828143761309615537795599853227791211736413629981408891941190523126790724916520309420886591226779416371407935867778444453976677654660712523256584101189087859828491025673535057412657521739882230025653716853492101760092435906660845249437804237707036535791905795101610310776927981412833068040431149078767659308013095156665906153953492435774251485934545083014903049028815659429619770439524651877870107316587983129725987562511837562362982016016633499575981177778884186843364777266952723867884730893372252754754764334737181224900293990419688047076359252728674014462440475788925677650901075277887784194994458424817708026065512545402334468806872689465031307627840660437528717596282285770880109646225646271925564273243935254863663108388047712754875223370460386949334663482934612496335565957549618930562049461944163976701873335599802854995994410831298934300033148101846180995496945213096297849386619079336809191212951901995878691968522829223718584492721636047699204074663058393900492245373009578104050086500145037814847400398443931743666126290004089915493443779701061113607262909648385156722779625334309823044402248827595662973813228860609773844890567679277395192380881777445382087469647531345616591393862552762936271717735399573146016048878326903100418810104290204890805063068621439000932279167641144283253384219951468801022096550545186757806287768250109503841748312182058134987007948393504441942225751793141546813513117468603611383359684830150996788097707140845331723730682730679295744671019820931031364922328103625175755880983865787013921027444078912414501353713569156272948465806064085062865788026075342892894818931502507140040914285008834128371449674087134013741630056163177806126565172554419889954828012223945484307844085273301998640834172950136851351446109096060284247397972029309719715663688703388024665020827178776435806110423422131736076725228218177608035024074881396921247953476874156386694055925747062407366406615102344503675838877567623732476070797246123136557701679084670052112818342934119037993550968639697275020647049476104736734496485448301804663756503686545422230058546721877274417591768796467361138199827792576328531335894845816388308438819368682210909466792903982983603892550184359949153448396481584699075714013093835566640392813964439456512062320054173906001059986589559461480823587134210814869667543493307807938909660583448467700548085446027584215094980550406913413341420819139041662401133048759784321396540241937861322631778814722475776717301270824377252260429446468887293292155320915140680301364183621620847037491829450245596673228987713371925684882231538951804465452896451708019268094997778695342678248036850035868999056689055131291046540651958680776586665554359302777909795297444477674554740694872073414438269858898545454254454804814368747824673697137324271478785311559013969834107286784249875260017486904498620468930296687192407649998831247019551077870262227313304787545497646211414062184477533500210840648300694996009195216808157223524440588427626977502001388402219564236926413572203151511566406312957290263181190545038681329326888741073494589294239078374899328853152611255945351253069287133059301780146028387546473432169313642648098073386984111052736458106344260492561461222387662116536648955471632497782490682764285861733380590894804028749337155349426211948176464558728244434761255809860374479161098464598195631245687434909207395774328527582711333501828708956835076373284533677837544827724191027011798049912258546129620021978876322271748727792527417791005715560134458908920105299968508789901294718278878912075572222913800423540778240012661280517837214266839557255259167351997403546643352497201100483863775655465770165385664957463464478773616610190344206503961858070474583534572196602264795079065198178856789850160503213305852153339190050777691084878074546725170551423107436096448958347287681093287729948737614605065514606850810550325204067264068543168247960348030577082420847965414785076387752437140075362961847795917565894946375371666276368502338098424963610985532559775136844524681956128317343667772224633730750204872369200400430636504223430191013508642921850485227816229600565984425527664202338702036619122945070887856826673219409931377394824225259313565607575835038687382798207357708265646407637158930607658580561434198718714646989129676452642009159176729119382478429352208234877835535909434230400839441859618757381069315507005373187142072613177557867285399899904592996837665555416827431299900034809012195307006874590620483057671087885364968015455910430997759419196531499236455825590011953338753361150207557094847600854120224706781458678986884776774883703238397369974788418592014637985221785953072857350221434452443673979598592917936852602213546596672295743966302613025901342836168775085137207180290319375079513285828928825433728540004371409660541952599471456938162132475984544064587042105439089813517586609301822784645745771526202810217648509121574648264395317515826506447958565600096516649862250866755140856738528967115117791382482665547037062609009703984689431087534601034275661814235455982899211231988519574688005464495212223749061959752342064553355576189830089957454950830412832620026279857433179086284250004410154438609191551411025183131434008056031799826858519555414218952943075554879473759804314426890431733151686823500929276369312585079037825395471790027903816287930490968385676763368342786581683695596491053661970727304082027998310482357112144338422113402714520272793679897461117707941124554137151838229722120113790950188828891189200245802647868969845411772639422302330450109668365152144035201079677509121313268686320317664569750926489403070639120015929799401642115392844066033812592978478084037727066160011227349264479056003191548601107371834164433391841696404955205515529190110977553768205964762069671617655036594640570842854492107577484072675867979773439156350584106409720580570152831475953384893201727293226021432642396506236694135481798742086483211852206264803260876312607770233071509405095440614434792629396860296127140577138039741673458024188529800540353596435584953710602062589797706943443693775870426917361462397373274458536709735882783531514533089225561742775100687094380174684121810798279754309205047891457359109338789490627285906688487185799350679630070266027849001591531889955041153318154724001680204346903145918746354628532875939747647890725054718925450421160647543427693493420760868587142273122530655083908728371308219710543281109039707526602869117810616517102440051676988448000419346439713827750330537131200021858208528696794819426846300739394995108555510812649547209087766352107232686684900064725431708694778335391246513875954598322691947138225144097520420582603398205594028056082650078109575975054671694754833788229735068796843779041764362469477473343471741853718391971825097687896640159072466168450486795899313699519527264368880342619322103953923297802386672987836947330462989828997042404143326901200746575058507780610034403778647794790010904654756448263577519495439668407068825077905054982376487742147328755556374136988886027704633001250723600796594690863375922376832942907765530206776220649975438646773357760225193910921428808950902406568386495982914395087807862747698932358959988138293357160397726296398370840221546296694512126082332017539451533078958269175889071469265746435237448718201263305023006462345612268741321200080943657446106405762731976501272453639133453218267757433269166441870503195851151059091172412226998546024977786076865571003460755041344049801935254096593926079743111055096476553342449886819738893765642447079627298401310281065644963937664208009206816859000509888375740864673448139935784194057352966012116789282117763622503497285771363317610657155700859513593713594835965170435195910728121929286421236277222610740039564540163487581259825317786914940947676301006808230369223335430094553212593425486736313222914042352770692541525457251321307078415236557676356531179364463017473115689207777900814935546899341966006177019101356524269481622471952375988984207343312262279909168814339258267893230070899871986196960967851957127131808918705483606164621521440487518624501132696925175490241408610435634078182302169980358392632772058664343618731257064288426422359681252114474048920129155285776867886299900253699665252157265537216842632057688857512616735101226058482198545857284239517430953728537122970455453113730275196402851330893165645888552833343043581136250485567900591551051922688572528762615470045324521251000673198680049857896510116054544091523332565173412491918115583383026255292342609536209297543368552022107840956104002813191796422956168999404080127745019486051466548536599173139624537464247371696375673508692312686244433414349964910423231909017421461807362075842773940233873786633330533179060889238906011995225920028107082289579219922021794334671442409001720474184796243380885641963321917151300340332470330016726946053245440578589352518345538437803798305544471326302432442153282942417178677431109040732884599849837176565018139925092405540084882046650247141354865089944156822526294715872875129065747370342192397006870334491170633552020386406968333646003026641816560863026891498914006449043406808433013734438353440028098251048788519825091609388830868711018409065025000590579997191520115780920068922575208988401226457244498306886911982034580971696850086957633313915669022807808127862819976527501466268097302590784929976095187572816773588261264815191698091205550582146628795394695153804437377739444439675454450168899437369731724382133265249823354918085592836738131408819073743113180758742937254558328493217196185960745740658684182921182662982269624003350177954307261685610904446099343858856200072328347727015332593878912942440640937806875662594494117187221746009707638899847458185996562697897498403078246002090236500958525605689554172411765147914684521225359746941786058164434756183361304371335520095641338041103808603939241385421992818335863983372239365992950492901366391062894146751449225626957602871612992344347333883006380456731493077021202077940859922152334193992820441325241398342583322683012064347868435141610704137644658120714705977868375428131501050394643704100232663308420132751507214113291180146710241173409726508901111787037502225307561922511634383566640591352752737067039685098995432702690520604465955119795724892526267573491281916045499746646257869117245364935770343005639342467076788079215098810251861197711549206305885577734061954475295390803835598200103493847389597562369203572062937045814890717913628356582252748896575670715568838962038767984687486836180261823547102221978045286441291701452432141117790702852077720104332677196485951788617088726889286020838692321141992111561853034011438297574964147238199536210463705732734736398182070016949117462465851419828701333718706765790844584426046011532774469560291899332140783400872764609960128742119201730345443554120413237656777275842196286720477952469829000723987751763432311967040237416325460302513614949522341351427745336218063436738027850892200741218031547786618149300939578828506740590362257571470249044901376830484215229620331676582712187242973451829235727444916922817976244357647823155481024679986031460494233094430999517739830881980892554671875432550663752901988092048338748810715912921671029308799778020994243574282970823265438453962418835705551815758113101881782941532150299913574693473461828310864572105741515299569494842861682871633823081657164515525065701687742458177516182706065678442332180441343838543894021893334665265193781525710091285208309770241145713415220545914494341031160513169666078101069749093704808297685272462788368895446046745872582714397135345906615271040178010122391244887478063476330328964610045607355178844059897802179244726971550576545202654124016467897834958720699038083122374095575739618215374239499536303947387185583937430954374088978732637954302317628208300527667431214184629483664854472359701718694786263106481065904776954213417633006212956765999990565824819393829694183415762542442637006590106859097425425986419689763833301226727852234491446704496113644952992096024906565451418996928359261509089777520130749378760076165324341062135850532351098945586875105429582315516464020819925035054381651559180637387907895343839800959229781726713741241324453719687699321470944765676319073819995339255779986256977819627221337345982941156214610817318767322199062534425681783602377856250444167117936172612215493581687193337622314420825319413066062287160452621831522610993931895324077871786757701621157000941995619701536425595048229748114101450992723224410136969762896843453577466004518365654852489844222990988929291882281329410805559035306719087871095031835166858339537807035957873553876133034016519984427987081820295518625198171935716484905300652531261767747092194292646965198776594832893752805374722887995287823368260548065182352901228335112705314001695337687750183414185490893612426110942309518705856905470468695271168408641966977418655126127468520547877595893480623572430522752300783063326281767697800170650414009267885952297486265709178337074789730979090978297163617445337110300551091036331184724943658791615741379492808485834094215284813944266155502693438812717089014125501433074245924629871044905583536984619896311384732331920388955029406077488238367878399874184154362934563869587378922626725569499008543964747534186014809663854430074189002811044330518641047186073351602335356748973605695877832018616873139995121349110830905184422576898030910286372370975522589884332625624912592056364914645119117202232391508706854534250821687689877485320747733229676597555607817769308762388573688738833819463200195911325528389892072054124504482990829462916662681252273698411660442903970550213397736941064010292744814943705885911561371670389631094580933266560446439041258385030741928549309751037748177139357235196090440415221866597372210833729921959876039510032527096807203875479519069634084897301292042077371239687262336603990932262662587323492204397563612436181982114291184286902263026989273649892368843636943442540005710001274670839801647440699260865883869126598741430449793932908383462879233882799880717364575360492580861536125663245511506767225636632796627544995438698469510211928000272098431851333275498732828178111006772203736221889591876494773287939879029031820058970312953159842242529463920259918356018673857027108583777366299740990256812068486919904505623886835030339675330159340155738969052595443950074519572854465229638512784240420349540306255874135497894440996524986296786090392636204779531031797089218809568210930872520587708921742048396708130262470024207859487068823039877039510171265302370344874202934526332321542968035147539294120081971100888633850630561453168537176898025873859047361347509283587757263309750933191119519538889579152291145687040279664987542538271564281798026338224082361293288134525192604690448755531217932083197671574483607570095907200092398552677838003834714608523607537261332589768528849983590115080715609194182948689049759459216404693093147622111739248197792655346627079818501578988294162506773576279940634285487579266882577576345602079606558832004120588526306184982651194312677392131101081204765383578157375285603359830105374691433145766745734863480038758525690614955019302410769238816359100036235357396949869457580679894342523248101259990097381677945869644482422639319224513975541083455972295134393379501270787230275949245088698791493841606703357075665491816204401312552811236380419495902325290807003708173448361477084116691354139612292885727931919930746082018426653634236962817529620779565864510837935171233606765672655844104111979375157924377739736080756694374195117661917769600336134060597047537976266746849152813149386320388257135564293582056463403368972394416177116747940949484176470943657766583011034512672704845057034873932145016470629316683540237380448140692433652877207999132674128245171462466341540967419038454873877316073736445999320960476922036301097285750542148358547309135087758144137207479984353584031577322155857966580236721778617805458824309380393492463285452986901599971859532713007219493739767449409908026275965427021687481234150841889320559518993109865866421952117740624397257795140726599356360814425811922899662431820353471534595553625214656182699785816795698746521530984133880095158864004518146883662595655357974201092001283664560151172718369553114631871838761898438321602259791255461284330874326796735279202341958941465378736981330084046550355361614927826401260212602149750769132643536663754991295986274549322977340922086467075745971218792002672514302194830076338950086438406845981622625566837893332227302697776692240804033361036291403116035317573851422999528735971325454514704049221046781108886697054971787698087751900104138133350427224241936798106001226007244368580201200270771798394684123657949295675204337450162026780063531803021593743069357387959546017700088143571906018413305499674945745493489981353274650316037095018219981640257500394057991258479912974709505294364416585398160074046128915409468869087277623063421259379741473340502097628059177807927726024372044350621561576167780238756825044438285405049910758409178060794424563971080968766459343784015942303755904030196022375704300452109184820075561901603939911252496507772980713987750854181847594427291835551078657348308629218045447563677369642690459690447175469532543509380089401165313345398796293361163665960522894887277572545029263644597680959718739994566710003302520903480630107279940739792362111280932513053276807045423584591808201123823966639126199712944990221058817908048829465158586159780887769780100110743436779461363464067438205360616110868658469926417411439708256159257818761290862549804734387117884068860096180106629018924997827423147502128045142454081993123580377569032799975715227156449224224362738594923730099825745797461257544726292891895081405915291413234715775671372004230766522331864733174448683775278696654617632096491316714898908023416682896561766043327230606474261506127269926753073326424621802239237402821339243012908772306702907700446437483564623239434330933847181924282976106263829650112802766705686199118900317230188629712345105446397325133804568369046318911172634994356238437162224961480607351298958732758166779115490419027745183474198636504313872491580571563906234137047019854689830014967261840756677956911786097826988091518546343525049618676819054320563295343916539314542311538577975617262426772760926693458164557008640120961063151704076299886757581832350042797460659270253554636892642057268389888873833006350366055465320384901632386055445567150103716137032834141297845825441249361373034018180038553068474462330404321743164852818466907171080795827106721655409972819348358948566954206990711229628220410648406094262986106065976838981101855463646192064183580801966342255751032751642294683887800371568187990799867855508483599081153859051633177482225433705155442132302030646298267327030306754696946117681322906830398545657493732860992343308290441682002505662917236006245611573880996381994663894471943492233609454585175202635999716274091482187632073757136429056788325299882686838315784293609928661647372085636920925425384008410816051953421273877641374554350902021338051309549426071925248898302170331700568930850028275288494755231138707953862811387316148666549392392715797013157574991548409973147306228265978671700881408838299921636326496816345620704034753698339278413494950322773295083784572971091332841464899746357044420963042977252938479283917860604195907937774595217677988738668861265321846455970769710280985852380858256254836843478858241522087014893778938121580673736506252085267826168041449004902842819408494734262419620715853872257554496360922701335909609392665029977369165334301057177311683753891897667699864527573406839466220180491159772677787208594196335479972818381398111045648056864312076752376633084304363900469321960812957533341006562103303846529848988792862669321053533020347023901961660919905431418656701592756524406624491158605546709826250656144798860585080799973812283261488814732576985516761332446656906574506094294811950677889674706448224726484652198928932364912177305739244410419104052302108263429737034133592984018477762728928050371752799695311304499183164179568958835617713073931289468676799250190872299166020453242866421857693153339312683886380204646809078681486135007579046194728204705418154791218932262507770240172179668699622620820276221961557225694017896707825060362792929949555241044680006676031489404268991283858741461815146041585271412411826311066290099418417162372246244661282222951347762594282619712282948772234058473524311563627880100154203752832608853908822221624373545207464064266394436733550092328700132655848126334640129375521796766632163334511591294670957328923651091103302119920126419246586552833553879771373621997709613085310383946269973291001065527626837900010759886167746928985425793408788842600347567954367360821470607062096306220714179981966928397670593121310842286396713144169139245790702381917134218910718487715563668579971108298228169002582597064469834609122227324473979212811074739781934902454699923362441986402204331629420514742937094143702771861362511104550515055727481507499742958952600575182391181167935448426211798312442300777894007824263580830968562238276033730805519221969235694325814935522127182069272421840719401640574131844960821607299245380383450762228179899625441883275839079171036951051648429936845649427921393083815649850660226285829168117738804153170881625740975451804914645894693752163072285436691573174325760667712447812774090179220772883418710008001015348187488812450892002942786460223771020215135303241209986216473747996603552927132491213645651732594811327371772774273194046694127337052563325184555959290746824102436073163299084926646073611287033802386817652047275468631868627688740000864927913095777204509963968988239500680858772539700747504005343883684225167748568994917291538781156062804657946567737685509657807119673819596421169189731150817532737439062447484182054393298585125561435150070186143242717172461832942854808970271320339816063298121669547720190012407578870229358190340234884578017667423324058699747588777849903755075854240589968687520658156650169630433138348258341155073780031117773889359011644943939738157915609576579429605142090430535994745052245686338397525256035377016945391674627857477030067737944559737414471466369740075906367651352517436034017567045890834913333224357538319023419801185119415487090507635071064759375319030990579390096914415642464594128201261650603536308237255431984676603437259383158662572865695853711995943309833377973844378654651947748047949587678346518627891018583435980273078944886196572999761972390957938825480356570189148518540936932587260034648177157825285363221937951761765289904859926121175405109665814847211760004624096185132175270333847328694778205247692675640919854573936980076199589526090296899808162633221702064781724146215528125416239755206262621496169089242651934149764600031504052139068981119336426479820469595225147450709993042152024198051953629247716364156438295590282485856426526645769469448546274710964796438403665764994357354750603536678531541376747612425650656808448894590910713997452227872684325487826540845867853416569704293873524211562666768505427884817907069680298893817232055672025099198979205102374763005959781420475368628308630432786544679032012200342318124863862365462519034708312442677931703021299687641549786547450981450068213063515866621082354452143112662730719129571457735234778648808010252153278487524527983310131295132478476587283331800714266259340087393802129914646430411448373333234720154828900330625813631872383649051421930577060086494740291422539396541194296459047249062965938528301018209399772499652426013775186959127398864240311950860183542404834163049498919599974374354912573273344732692207963778819107838975441366206309023302741075185960096538087401319217603767584296386282891689877071657400528149076077703658661664583145285830434740766566455232378907198873432042983870379256917456597088432154624201896691438560901455202676859848240707052121767561083164535693702260249363155401684383637295680084088608269046390410192151076006357310394512070698993307412132764412365986367613218855697142413053465546880771993597243840724908957706901086686965417431794329970649179002338809714272696641488123056840567732774289661274868134147503759275685652235671750250826703825398726948175905862350000593587615843343078206856166001094185303238084705674189303014562365547279698279773737196544992264765353405821633358479296627937038448562568781076174330233237701848457123931762833910404113814181079021023295263483111138054313807946905955332826334798979951969782422930025024252364655330626484257689478998636685720791073240604322333638160610059297255491088908924236213394457653139069375839010339236325881478820193280437859951552818875300237350384168348778451750378253818917713451081556535239424078913375775762895669732557527295103408253858330341363313952832621902943808813896680326055364995781969735805181095974185470181609798598989716781651503172853368407829805166214967545251666285523077384488627144378673618003142830172325211781568266596521956228029235939800425508678823755298189071807091363261996654859231779746773564342641263176127740271331602812494392489630229930547781869775080863076387596458070495468066733574325706809703940962067129801304485215567542853628380327192000704786066652539542813217729246128992887560594610184355770473714346899221513641998419630272564865210755204477762210308408038497481523418731378470687747916165683090323710454621497840490161489194148536228102762632842454233527537359417398660876658636170037341389654967627957470823900858179924073412422778580178070035964053852053167478132948901874573294690757762901151529953613063471857880867117975051173794734351243006132499000489875041790018324956721529580493106862579179682074027988987456066255672331752899312149852458296156968646239294332223791434849851621827905174472406545054866116901503840204755711530845387018958694804222409078697050569280142163353255360426357232636825482885872953809093728305665222498114977028028924758167622600843983709559858552906503830123923335419734617091328140922513742728015470174711191909675716679184523138892343538680985978463523401701770814679392076685859903190404298958719632008865149431895258058444978977216687511196483171892797758875641257199292992331318398772043881340930990524010820837912398003830026965863226624686416622698984081662496844362665171909152647203956728468290573853876543724086133932257820038678700988212822438313756737090073628102895333931844391346959549952447851149318540495476892588440047087955548351784992106784269117679859705190170053104181234749433824485903160803541470110781898373091186427640905387224679212033958564902534388815105423246411387164732970286916645142367142314657909211676311133508585762781878763086242685059177138754115506245155332650732843006419923929745951361788012861494438181958349122181313846894945640558816451476195233698134905153875773414127202723320686161735112320211441868282533317148223603016483685988966241134352466921926617796227067186011338022402398439791938193703197467287300594473088962998773694363380423786063775363618248852424272053132453168940305059011820600969637283936346455388498516301044509359942112091235531144291912599200796638553982823914056726360045320655221280188485417363955731653693036881850503599011324713673401404453056947494487901083533530649761925289473583818391616791671690914697221571422425312611430817836034198058390600572605353673213372560727945327736053338347824787859118063591905827364918256156015420735951496938344716423477911344405373891685140360882040599392614756801912536418846641473499816577676649044879157618908188033212495279843253960123569541213817911128169964959482183564786233138589575375817516083803214985091034986696722614759442415684551177548664286747715867366439936731110213688068002740981380670929725603527024084131646161956159623621939854842707282441004641646261532223176161424260597118873838115948760702888655796986639228502633874039514841566330443476940961813623644509840216091084277176530961172601203278372691516942152156898450515666966514975825088714395517629149262054828992524809605921235485282549007382592075948437111760231899032998375905039048169850083078951777873750248923403534718339083974991978498909425056678853922052548253384680449811523305873189235460209344760473617172919758381685792222916318517326876638218359947494486081166041982398631580631914431910147718461372536345163887166146327336672457122395474710434885380426695359964222277802345842702976698597590922570312090627992955857487367809308626820825947971444021087581868450045761725656128960631662392938361633203745277294323936282296414537905357577498762671918514048465125446517355882194886896959838582655146607538159939588451446179499138975443378702449073892758627256060126100319825018400920050731300469021630290004953584242299164264580888568422590593188109185450234890645680298222527863588647933828057520524086499701551209292052715591885165499756360546040525448650848309001465456872278140132250756457764256266167795398351068107931782988444584389714024647003821320920060796893948483451625997553891365756403563146611803616258973434366826341831653010708064118234096047246613161836017689683494505745239823621251678131250437623490252973795212865751199938765268698075104294238138851277160517367354386198644908479391599852489177526532626363085540531399294028010030033056254438945321491236529742767401868161185492642116736966199480941651726875642324460143499029572143256553986213734695975418591241775276178403049899166849663225359743066874844479941280023803937310832548686878425810330728016904820103620508050915214981145409775386522638774066721704475815975759075448192278459822133240414126693288786065936875194716223632964221515260207892590730840119705372348946716085170172379680756234899167815746287159341757747017500609139267634382483063212337326049920983945219386403904884680246034873992990349755596935397028875887494873513136900739548165821179771516105465321253835326543704663523487279034913217125234990388785111297857467740659365771010054467182539379266293139886430635836558725471391289249469584379645928658787296477140690445693216860307386841713935736980799261292144852037499273922749470871887948043056690168661754609611472917730865294106119985070325975321547106074221481280735031896552539040809343092262214768237233351466732574010734292419078895866861352837807594969905009531133639999459142821745128176710154117803615011240432020201932496993251394138106223359098344101445190507017534604349430774844244762493407691336034577607704632264252098388053873943413211229536796445890161666047578552247749476100264606198362178272440453172517145857661757681615969399831570961411009968264295223334201277890010175602592902542566837062265323616714835509114217411898339221965917254093852890454292925451811860861272945487107183906784792324182584810406172358227939888917065887652190753803168276274098381363618595971862526464190175274411820753278449422212945370423012233587252447864578647477312766772135159620774704051158465298033819308641072521118575124354994087835516997348449811446772404159112942841311741243559771677659414413042303348770366200667839172159795762812889124519228212342820968941839543312701178177928135799788987125759985689808403906875810691873945436250828038679905011527764612529146866018576790301513090128633750155748768892750740701778286983292871894057825535905222722857188974097466344118302590183525406645886472000577719079870207674543729390418160352449330300092409862125457201453548043492786207377870120181162122130866023971901668505458344755306029392111785309256104722852413316617468117896678837787613800265125371384686605019516665874835900572135259642765470088380735999825329936266442801948946443759555300687477764602331708946162492563433421548884079609221439273487139469949887050999855941997205207013288021301294556650749956916391847573092958137531236356531912534467305507909944940766959480390294624076344341287372868152842177582301164409571320747559266961460678830637202908480323950590021090594920840138786311660022250379837349773093116395523510164176810708699458159155046519515642206176532378044114134427946698173231676217418235044098791186967131153363579241951779120025448381760968378548012631856613927562632734071066260799522451232333477599614707424807733763352715992579087982900974582449182581403446446994873901345169617680621687058086359854976799091358997972866551382535341777871882786484335464931675411858363194010540492884493090081440557047261164016773750027466947517172823735456329805338689506380800994639194796628973012398485721688809370133900476439772261169720042218244081318860112898261842190459019845225377968359813059477969098432472157065704523545639102442088985445246890011147913372955473000345597187633445503129967397826601643584832791633147034336931000102859797260886613244923742430260070005427859060517037601960472549904991577908489000575168017633205628715609237818453602039114634399756785962552030241676955994529497397709085008543373100077271656799875124999764998267522163312524355151892201444584954090336392647546587308351520673348660633486485400937052947597192087549931770503846673188789109715817303552434317928391845282895909794360783265111263384523371154298498210816040668412848030477031598624117383845171765564917334819823041110227776798405795000126758939009720862513790718405920726529546459195877319007191371018739560633299449653799107217371028828898919493388995253158640122693982191772598491815159959397086463636896650670026336790281569745258190579654784655623383065931867468537548007121726626745357426987890226927127051096318618106536955713204649509519669306840020353728531048522569760611177224532063759735492672055511158293919137990938259904809328169671929585975881558103274482080964928887583075048432296977687080221464784464469458498147158452661480253008276834984647113230931326669141456708603849422598014345758868984603545783357448586011875443735015508136733066225758067325501473647354239268774117760651716869375000970021947319683288103756845372063737974582421343786420290584454086110798778230991347887164195763898374392392966261543918805329023090874962470359345436369064226816066031982132682241744741839472417991215496004315870455543446957178449582647945557321141570263006085627967549728212334561315010627293294762440326558395503284767371989325256845861195084162340787774647122570985032657391293433594638969025708432428901322856359491591343892408808484935122162214872735736010368848449072207876870129899020905566507298723661272118945230471538655879815380685792948695050591775557029169494209770694492474662997240001996571528612343128474267140381874481622122263404800647873357763124712227928996779675130324943903573220963016987804031639841390301081592595115547649237135082338458906768187414781107817156649939161238163096564393012347894325537949443795940765567765986884655704645212263834859104012821856225097008988278721054808283563931436193680681716823163545063072761004613247189963194439630854832226053463461953857496886025496878623551521158521870166031865882361214414448129136952391035598965684796649764851125617467287485500795948443545303679634671248950943281515424054758928183279358121262051194816718375187357688274968467525888241790933716379936724860203054014450496465016733828314184001172728722057268160958394588985162393063354984686171905070808002843841153665120106772009092899245562219178933027682172814528600581214907972400819411196095068640273800046288770442970779414435589905446993155138139350430830454520313235659158982496467108366671435749592216457101034884999568410074831450370728360230902523554024216451526768739719945110718328227683789499039728466464924482013002270227600970487628110299245879517390830387825852898081076136548252309844683338313547383874964061924647292154686857947203597134519340809189932991773676150165914488925796750903916626527351314791798086053756117828954610172444250045817365620851322808639101356143629044743957237234014707472714823153212917327118368580236491528513350823095355685284471881476211278780298036644361573779892177208662022528897188768834324434148918105769858265307676938087622779998225628108759154485959094066643848931582871966331457065341055218531259399042365556361552120181245868012124728741551271761371084087208653170032472670691417036158824403318399523766951984323073426169876170531427067548534401629323226475477612831515598652571903204649699010622689237953148296294844608483551494737340352644057079813344149489624831617729648161011908112426436536464656406577254019308726191606247557588860941726877516511197087050068634070948791157175673963129504148150773671586035438674555424012262902365536119636486656547994095054921396105651886874586818601617370979256833393342109397973388900910190254656302123422863177624092601476425253414899870093910296234938525529075886432255259402068135502479562887000946930062367284001750164790150511598444582110099445815353435807736067337778265822705925266369293170105203932338739991379469415748225296296429677266621492371824239998124753615354513017978993676582203262268240641928588281273102651524431879655805663710588600438388920054650715272112503806371559379039376222405136803959181627504807734369782739306610970837208069458659116392554089389787842767761803995745074029351657156301140145645196674834304248434769528813327923495863405126557175824417656464625670610961613707382051896644481778061881475630302984509095544100048857822605744695909039893165692354379808488062498109687289846867888943053711709764966089689088370061886390341965299621793113726409929208244938814769176064983561567746288961546482814191287678383785455567740359562217371163898815869043451371733586077690827712326471532118861759936498109205140775445747132090468345981257450165844210901723530912903542967954487652586573282919100697673766360405446128850443896872965571820420801235901666877262707738041114135300875808868660757032618469623617922507389928217185504818132242284284001804643605469384538573613084326713098102858090375723033958958859729111398472778614184704005907597877389152683976522116831336057499222837514107297576864304523678940936797490491772922770661451734721833942704334925110146768642488353657870148565088635633043593330135693382721662420869400085528733061866175423936261160655439417323974095599693657939329062861754902222189603838142274808291910306688551808005348908446406948885194286886086643703063172290624392458793804512681338278111999995989925148834447248872141396282088568821014934371154102797651650692788519747786644187498080642617629789612902086238113623707587184198439016210932198987303688551201927135795824732100621087052814270967010119973195278446072650857639536927142785780054033458968677883167616457082579307029903705019600487830968629940880728836701203121276744554719881155428443531429079209666657210526897762601156711901925332410559604984283796832801355444021819227725876826945313859026784000331809266814350293887396151052488524710615524448839559467850278477498665831585285412554906245418062915851316015022311256796071327276484125154463914984118088221067208842013494162770702242152222994124981501915018240285120942385349588174634404756825064284187273655038047472465067165187516184044257323817960265258072632692814872472404237472891704149500164274342836813344815789946630933625380488288477487624437300666181913428430985696844322101517135574797616958550420498077551803595707327128272547085581973404396358094090723587115582635594837669752675952571968723604602737821360823069309935966807675499811658729949632549207319906051679854346756263262543591099668462228161467151666789593096563707400327140875583794524987907181269435347620684841946032161674169181000984795127628566379715629670260104152599873770914592884001967453104683435793803315746087256291515965090688887313394828311109605414131534531589309594471713351192331188393544812327127897960016035462307781673631127625849828455237228322024689891993856136770252484139391391789804096172197404355779316617386141519073105592735662882715702673740776436417236254442479011515641973206950897564119895166027615193654181644836572549983582714025895538747484494266617153367528348432534043400136845861521270279145335147149548364437620832787463811174015081140149285123452604852367833986875595064424879305488992026128198776421854911644786750685119635551105585149832868477869122134656208099186317202870491659711697902562608457516334123603909164681005454171974319800118558123681997544833337799619582096227414791198575414448388659371118398603805853268643202704106738219707639735688926329235305964959639113943854650733003916299443435883658050722106909767401017410744116046886206790719558561467115354123996627054236274285230411606160836054803167532984175911021291625402510385953221169242310707497070697659194558931615400008687977126857571355895769505967230003785103730950206011173256127911886025684152097883095480306180508962393506748535320911815126222109033625626881465885975896394000484890966846415910455872487279341099176303072231350116096387171705147942851486989775264306266058046361030341539829883161003513439930772315510148422365108159327584803235473821188614419731816513191770092444613916033272043036291262664042427008686603710595318781518269936475511526333848472180870187484639255400786990785407330735708298678195809275625854955119835356176162924836808354015446552669274991253296765250630120808915415471064145254340043118587022039316170821895941786886260707203021006630275123001228103316732906442210733410082401416125460272130722557694410827905079741437194445000858155712311926501069385534018255179382609383659619660324294945935935811857567354764906629599688339010350792044760824258191711277326926633738310242903105144808789312974808079904094227395180144819945538324527301125690593060709759125441928403609142367374472984129309451257577051663920672214921161222787316224855799494901441257688114462966917288916566478473977765364152778406672078316945783059900333110185457819565518003832395244318055917265502126028381028511090033961397064061285070066942426164329742325137927621534957577936621172239443775056094024268951514818444611432192906089046344487900890413576743800862157144885679936688117340550509058076690139988704232027349656679054938860904595094811663420056491260035051288825082592232432760738214106284722916756688214415117257704288302750413041310737849039401569556137467942740486176342922799484812310871029516657917168240443755734045746344726064124352638229108166082056134391712002508613316334469481126750893635086609225998024873030603269602440854268462134479068986944905632551523185633738629363314124140156240269049516936423969398063432075390612941758838825043933168094415057968043453498897733246605286113145782301951580248673269863497154896180282608375578349948084707404777895058691418906019522925511950128497210946123269028019699058483833057471784542941263997735851729932751301654688971909755218965805711240290091297002538932218969660988511178620779893181875883118002081551951458263925577290572161420963644433502788338863350682583907795007699041427621491041711542329345925771048028230714965933303824288494905444199664491723642895619803886183639340025076761887794834192736858628515723147795443862353086820247673382572406995034272922817569244503503133617514330080371157155365581441584891695888624078829135042427359825261458108830715464508517512904050916136370861493005708589530832137401323117273165633800410097715087256438109532647628904606566146096285978363448356974877402806472261228435236898436236151490611293810552793674845963485674376072396367288917441039047216312135919280186445867618253367189049125576830752417834116826013783906570527989386495143237446834329147570396885280233081215457473568077339217078622329228726919963230852287857856463120815674301708059185435777785336713100265454919937262967298229832130860489884228590495459914421050583514541942002767117450832474748210265390710758003597868662746069681896316214082961238451338192790961469059184366988901917289382495436112523990843200052289278468667956273300306706483920666073931655816083179906917222168203007378076635197587594626959401007738060022666950296263471937143986804037167785911734030214675900934516486486475184040244859422428447181096375530142596712790988949358584835676061608130392425698042885405147140084789171759954281224391363119760144147837512369594765926454304641799738850031564089086415601428102115505898662284989521128619062499960030239872609002144390444972729040129449340313170397185319817825917096221629195888686446354121034202014452183748367230581581745532948647810101762602463224010886985206282759873498474854943355308677947203390609926324441763573873079185747267901093167318385016103907349968304459128596880089239161530968064950026337501084423337546816297513816466084911113689008462701889379374352788340246007363975255609575868724128945225011442837620399551893092344280979651587521387221532871198206803320286773947821313346274593190284142117489205711422831766858145366503093028514851525691426471736414921984542121285547690003907438734658262979628166519652860063519201380001608952627049915053056311348234323126394454231387838678625532692834340705955427927205294292287524262639395035605094189887759372961972954979789595352039267488926444715615751349732393695062696709902137128469756623718448236962936527081492143903110160867793789110467019206227224899424631376089954746003754752089663886334019816532468373816535115804485862429863675041743833139353940202204703766999491916580893597406356258198551616673072192330170909276674497391958605060985696049705341778966344554881155622754638490698885044955311749217506299353386078287943859405960797297846751492339972932199458608580992722858127624133975343035641781776042221411636145063178209656969207120436678846553195485858442257755160739425725056259235002243312036662385660131828459210027876639291268409454543662788914755301755173041769381561813532891839014182496487183082795276633349297869555823645688104357161180754328079335789246249850918833278039816987367274190220898449633518005486353974370821580418036821096026187921540739673774873730842880463131724632818597596712076652454711190255166612601604237904981188008820507978433150958630952919317888775118033731203717765210152764796708909779587583544368278954195229522363055235634410570973318976038381375397081040936017952441885959076298485858536597595586196275657966668897552150222499191041794350063606573783554425506200520934129946145980217288261306107518625955905318882602620796027401844788942002053238385791680948719043191336788404950365690957500435159433146225797576931832197376735748011134371836405605688959990428208969893560983174366293145329798658319505166301394164716567592267408412848753837434993551030970354939100546766833974982182111503863676644123216451694791160408497497998726446962724979123318948200084296036291669566508202379318921210407014028240347834475460137492586287170283571949974272079664502102878483331023359895252676344395423481236063539687779346701989506027510788974527709660553189685555584088520488416304316112321015043667942832387972724028252154351176403983956797295582408748803034442156652264869930155321895915272089757136863051355698856287752551480434477479393498250673218693140265347856504170761202448475769638094968808021979407635800699448639335131405352494304836166758851947266439328810270412422147766119916253856208180862801055496902237500338935422671385000327965721817656180924037180294633119129912117621658381932318617345312540179465857970910029772560746109914540136339704312272648631048744118472421366171598293561068726093450537497821412786497244446522050387425041574206203579812973940255051804234833799230570592803279466781177989889761229086260305872039513190529216539799939247453039076652539231863058034937802677218657912280516477578041861271134944693727366626668064406996178997059453007543604841637537177079154626843532281517497972198806330636336362376049129011307196600319543129214993095803657237732563459144445765791161590424432696205603411691233173900280819269230341537376889546824313821899846586828823836841895145711534468078020868085364974142357541671435837442001758681226075222749540266556808876780951971354699996031969646189494765024643801526937719656935999756373428781809381621447627122252338326443731182212533594850208374905277691248469262081209460960460853600008223855888011708142182601386695236830474752244703142924784085663467371028422146327595373845081666625033727341533801301399939759530018379616978974757219711566735492713871714783390016535402863844530902603106661597394744441205994602742431843489838005781872531226094611173473532572454975549768700437136154276513378623293832163458701372452587557942679397818263061031086939713331846875424474696986112405056421363415599476779749949654794689272015444339400139815174072994432978150502512198758771793411811871040753052137526067062041379090827108649972831487736393899888132198935157717586700780623844197878798536530102544921430563536752618530999264579587458282972856347385950088857558693534426140467667446070977054571587256841803982165404498192947961485548593006131697280268049494453021263302683734591862854763477961818333323441478641902086546464361666474837041639032050643666607938858102440103883514900052941950366090030630612520307057723540744572301877198246474179376976908707046331221440906813339627511446727391214909810161374046830476331716368906308042565254563088888832554576097147754460235369663497975063086588131211210163297310864210845521063184105548638247818061680634644749639439639222859385886127921713032127041906378545748388726093750306204759055775218775285253096940239331741629227593710998870407990440939056115722770397325123698970885741118449413104996823719283089349022089094415573207738842282195039475878592500773581553989476556180473854262081712463997181931796927161906019931782691484315833354615359560860458648784613558924460036112581811459510143722597027631428589673803501192666189902044317952788616143257532899676362602688806143400602054463314143579101614233985907372624918107799621551488754013653252714802609825449931545115850104693229523237267068394410834491230704789712508647886232093141666589103207211188722431194329983136882540375161015967569455787840773693910815069566403971782168450087129550377982325167288941049418921830191350379149566229279317181846408375784573581426542565671983621575919778526847942413408964539421754866184746441686244480487345486458262040589314866704218506249157066354622584658596942183824503727452251382137156408659498743621308912689475536204855709282049631071903461175132336796701365327715045376781750366180911585629684512528553242942184968191145228641776214700474341402123086482325730109251136611562267310656360145629050616202112486433536877900557446627512179156854009259146135505757287938865174214548348991882650080789683573075019231071434119528902472929080645876173756164693650311984377190363793177111425980721145408119027675221005716296761740726628204188755761769479826983578424676679073251969708673287516266178994834451548137678853252303838989548587743237376187781550761588507567231459313445743679903276961857395208302648960988753397064471439274987959750045963406537817270418213100995966210595708622217306547999569398519755128932553435790038868573305580374327586199008971495005853428113839392647673725359983789089391681302216671573996884984058076794010634635406865780788660538247912918569633445850394371109704801281748248981696766796395322329972831945134137301681994566180268192115414511610604924303976079046003780921186703996892948905457067201894996566658303537992199742580191276769206362679805471483724478571964262452326312964979310215364505155204480884582857795688692444205274775595156230757461609211105703997145938446894985126252562964198899186629572964344609461383663797045380416346846294099476849225323969839189558220666058926396939425385590827345608300106062533015893375960416437875980987843075459502878024670723516556923096823115077751265566117091540521000682522475596499568261212428902874074139895134723694747319083168757171061447871724483444840669613057800612696889190568424071176922598326968538088667574624007806743173910155463385849505425055623929574544135625485250738436370044084158822069715217417392738790550572038315401266011223141084447985374564728986514922128420059282788369550192457407133140682943602017393743202470660025563093617941970040874211901043647877488845341697652578498679746893175804511542341152817210759688905874267956555622018160048220996718056052701424956441741559381690229507794587759782519020460970394927397774471401913093237505530327455493283751172491166671021805786938453651312753346103277476349619720223755644560449535514159094988728972310994744090983440850339919810639000880198728535796791114894574514764395089031445447843972652782728956421077086718178702871851664667321226148345961475320767377038675438276366885546221833402190617600804661744624341385462039637766415788998458376650614168567477497854811202449987267873957464550567432722479122999967894522166936971497862959688541988837763859249480664116744112248660299415824034246655516045298079789285876634619543878788285965987963656060324774108744100283827103770028143351268552711867724254487597976390502174961816558011312103808398523514541605028425003900985118733714366850297492383740740241759825332235360465785115828749373041250946173117905396869711586553201497503361167525611302010570945579809594816814304109854632902368242288996996838552625791425689125868877192400200668613528042026906857945088829396572388948176460334658247295041188856231697238588239164713645149896639272391042901288624275156930743184484597121908927719470395002363816402067902816453966951545771802758987744889284869414562008586985939465443590812776238001647056305197983811333831662006325189224414886762504186418298953963555841871332541912522872327112850488100551511992371782910854734919269776753160898188609128875927029403026659631207438817152764416176064677026960621957611298573441496410931844407787707918513626294094360585317006338930556657856026001970691581401765552093299556870028677399446327212029772552000330076578563074476287167695666975246973051692621946060195079687912986514136488790385666605541671739691755538313292493429239439151159393989646450362802979999430227496303655538225223304850480713435207638983956498228181648071455604380283808369707123634047638701410977771869723647253291018487353479769474608109950567673854845750629434976935672702300958724281370765187488347209091743258321953937589228309006487860449766771769929387368279954805910973141610887087003505743117463931330994203867708761842899979113079171875576735031286410235332865742982491285999711292615307876381494816514323554545930565011523552779268143981861836724592668921524666638244758586556533443068310759621604298749078008836027471902089553145117828939488914985872344018314352393011569028583239478891185447927027033844284551867792117136053667652818486220709407885167536895104344075876209684969421266129990049326168486148385260560186507174926480939085519287801025057785575653219207671574430000088020885126178813033273977947060678046871685059062197568343433188615267482085079265508763100173704159439397065039574835477868439487955377218903733933660643494218965511545858484774113672597413612386369613202152582456473400571800668241319646029722708140071452337017216268462484786677598533360475773404086330561017473135525633122152648313641415699724016620204796548917785641991203441698782828102632799343182292609699767576271263956242845877945361867388618731700020551453742251693572447382565653037210019579795645337610687136327873215940042349366788759683587711718105803308089836421188730165557211118022104917059345863644365016918133229263168295548910696897691739158253978767595734199597734600519900142252336777215195881173533553086548555308671478480390674561126809018845418220598097699907145131307392097849315589511157495395297058209301084005339520849506095533921696494249842218478213302453012731684065428119161511160485119225681865374257841203603419995313919112865691374842257778036567559847175763861320028748843763336491186303943223348374707371561796668070243195090109318726256267363854894494987430716824269872412637257308003232408518146977473130739060268853390232845685205156585037191808705140888195016838871663400906076898068589119976574761433455925550452824325171514364698396550222231940841557747553644696666011961942378453161606480304164885097360049261268397933429799516588341329037330625939943395932743669469163578995860106281957457659987047819843483640447078644587522613527557956975153603240448739855236374315287966802307465190158529855829081101391334107267602200560651969260234499042702394977587111658357420135975411366356581886147741328934436850468500477325908300198250826012369863118279680281808204931996709500109974264242940426648260963893346313020870907517348335453201805795654151193811014197831672160865918999434108228841412548031778460466245811897694072522402664393233858996974042338774295847933218763059971299475253128774641515546414317616623390279005278689539865461516977014105328890108002480235963532020781640721080211664157079248210147124150982994440639025521396504472303552733205574316646351424527492431802803053483686858889016750633837533953569865634464583365605121332343415770651222653806600549528558771007553937786163009396631017489726028242002620290259538847078855579948029808292717008593643387445115979738017363767443660748536794928609788473982074098753357892527596162548622344211955126420433991806855899045183920873471276384425655741898295416224007056021537461302787192556540526340398761951952466039929669175480362531962091289858384655037452542606692558445571502750762854638975562078611767762657828212455522957004514428974597098831898571562319600100481091554916204534162303098693780160114297847604797571298490007487083072990400015057488237151902410290664819925416382424203573734967971297260098288926316636780893007423162051932885069670394389786709463867347080308038846152941117902522658608627207892156867795515538138703415231461335964956857080403925416683448059016992496443904083360700169643079631757281416190856698629299762914097447907818839271943998997665171363211040405901646560868857669407112765316820765965646556578486341298057918028558195280202098914308501570660112300783567598450794663202343300413868710212546435958262060885234403319554494894370865160651768993324940997334841841246488657090057784785407755972744807649347243167842023729029009601373812729449089139416354005794793201648063166955193842519593207613933660453703343120364495377031237129248270609378822025004248634679643538664647342027450537267781259326888890795510571603481574144288366293054305432977863242652464694904237218232165388442227991501670525074459644377347754726978562132899455993452594016317540626057164912840767706992793603808594503197151485104100474176565778159049054113240906750271503408506769786349635616438429223702481866900528632947129935627235944066006020988506345173967266219935966891518376797898327439086958995761097824235232807761118275198711603871991400045916433137365189187037277349880392308424018808956703186286622500251812618219246020661459369004630724516292028102929876219466248633732657248800945864863272987497010146874136117270772176360006253767509438975624567728605569951177067319523029793173804915276289341060858046053209494762124937113721258280601251193688706554793072104810614958623611644562216106965239176210767961422568526646790236228176168049690662263032135245659094262757918845698568142714104684403507661583301171201098261666570251803312643289749339978277780234552170857357049419073700491537119599991703718317245340289376008169172003091509747096733426792411160497832296742972281433951834292892443543315871200278968292462306191677430114707758173866004170547585331219573985224007833209446065428099081137307951700935593103834156102115141514559086539924213440342863665082086663371081328643025320769040650729614702547998557690754786447199994756328896693311179637700986893165892259726186831112170717712561772514375845015400092806121613354336659352505436950459775742846792124170889545996730567901975533494805262014216730864440913780255150280637418578950376733282430620525061526936467005850936607414729594147211116372395942049834812209544253251290277786445475020661073625284159464877019062619908669802067255651791427596502768633281492537240771511631213289222911591278472497382123068817510922342978372107927983534154242394859955461027153984446348125723463242222665502121745428536915810292470390119392351710168259183164965474119911848035779201716823651833593904469371392097912470578796233932375434278863426498131403400213288985114861977461213775668407787827832906750600526533082337963783421803128995081257621405572682621478232269037211341858081500187430221869567126003670451625771979975214742335201758640478846234204984403203642484779438605306734274466845845544363777109100000443302691667774631797272812770675237957661410939293999706302454399266235143565760789971575073359347732231851772122537231390338394913210151053003439666848681149978166293419553240235100251757704443340842586027421084908393202616292297283698904751409550227110347622479536909743953570165544747698600668104658615614837680670883629723016528253118520909439690575014061304586188114979279449570179079058596687772656552420691770969207737134053920872987163153857828444325528925019789430741558986635042751802148070319439848125157279605576021108803231231014773956923350461173774264168377880840904056932603624193089648669764689040702035678407670794699101254151317744281747840833178938285089167015257668039045871873141192768614656892586454713827290393920168370203344698846772488430768287757115836532160762584727549261152681575506045273096160632418656602513443172816873416080004462679424741823506951365552308166231364831976383855836794417420401604182938409096668181394648621731958253248424458708750536327801964793715068972512798851253778803712989501147410273665413478258674649933360614977118810171843009510601356011517313040711871267558687952382295494580223513548583183649123366587689657410922886821798354715098399159549403616505133336969604278072872547535834458760874694026885485364018589978053389835162768429472454987160738165570531216345154112362516297529873546057746048105189601242102569630936921245746007308042286623240162688918380980982474551211610871922016143664645217408499946317277593274572503762246939465927653183877948646267254560668098396501611774947234833837467980799682112324294249475098706238360771026747988447616197521767636714461610984503224101751616234178631158877150066937189013542787955964906553744819374904831882862146908417321343751103090248100715559246703824881777840167687327273840330900851084626752964507212108163293940326016452450507776322203062398738305277022098314973966037986911373591349977568633223028087839214873711538673479411841029028765579499649505639224696955317670252491777160454799056771581232430859374260504244728870197011248479487710331908014313355749475661062448014536817070804938057784498914208196160134202133614310077912902537342739259412031749051816264010177343565008329764311115496782092154076979477746371020044282484605178552235924154179337470450849732227640799637563032157278963462921115417133542546001070928300147547896237656346563276970281940541963509819067825643565250924695884768979011981763308846751010241003657488269212597836891852894316903086728327241184496517380478360523200928894195149883204197859808399472534288398226629161274576221054245874282634376081631434980574527472016459875415213614740239753002753029753875800371470327437687633148819657295748518802299848093435321198802444658548133757836217221270409367604978655655492069465254053605751985672279670031945004358860425504822066023038176773029430988526635728616832613913420372256761523000541661415840533546210420576407853663561174767145075678149255469746936876371866487829356194043009255575897992095230250851266856952801024366509740002632321693495541770453095276742056251898923018970825934169424026638720296234422975210429261366824217648443082893161104120038713349259642690342507907720741535489717642329639764582397259416249758242661938640972862872196051483593196218946254689375222345436426123482778400721899805896965278412273739437812811829829089178244347292946885863784908454457436806137980750035682139309530235869546508819730957225696443563099499286296373668766348322510954852264203945023639185599302874571829462732492166967393188067573158308637591786595464213414334072093090449055728719371245298324172762529285726046755303889482139645811127406071797764273668384366803827522277317638818539457121688491594371837488690314808580704050414676449584069213391045969510575588997728451813784077354987909597531440194526355189562483849298300627461300521870135006161456915948598784286449708664518807497107585828794834261189904637312078632340738633463089545277212752719949263944445339359065707378168419553656294524512090156545567965343662914712934911314085845536498225300622086272308758402569860424028215185795524219873445164131534596082598812242599488262355726622927693268387928006855381296381078231173157662860044703895299242521189871546086558881482031764184387231447495752967520938864223003411801650729006373038010186192960867514388859559226772396105840090240089557717838134263014292877106404845308402681009333822283012593734670037931450958131246288972936555684521282979333130688346243296181969148628553377470336071783023293347405227529180840077603180169470702681514868087445566784283521797669552636483697465386654177790457653350333629731124345649835527308383669275996224900660012402344689680313352461082251810267016365728401150251831912149149919943474512727033160364345719274000012022640817334766421023521087279460884921906942548120551754771517246152521569945794898427713250867899655555070282068582756679309447919621295967032712560769676658930663686430776077239918743527839463779378646345593344807630247703142860924974406362771640891088182861947655354701827060832189080100202709539845375716609869773421299808318611254463140488669733912975176743311574461432644577981778949055106984943500140951802379127949877785364294378033816648490205304640343453925339286894261364077351321446322597488991843166842907933768610900201305719114192254616800250839631362686353423288228256025438377346363089286174869695211902443182736546036013458769361460171768559360706283676712141217698727956287474670355769626892021479229375900893927762464857522356670337293168370433351710395234905114349759905543465306161682650314257423080507898185743565846703481727182915628567520063198506953716145523959277225828550966604157670024318667606277525905749056103208249335742397723696787845873775408187171753764720881901101085365368652141048680231661034379655752707700079122269160006101646825964730838633768338819457641805887448872332411253384247118472038669775195123340547521212726192441785836341964618056743199735477510706396561447974849305094520732828512716349831730554783100620524881481398048663708815175291783967684447933182026550094525669858384612224678995094438020316706736851875041942680609947472085985061510550612165891246816676557638142185987797744527101020431343574448206808736215745206251138395457828994506151579070986464894969627150205892814896849346774793954295630806716443191956080215307565088909492057101951435657033733622811448239956594506457493809853541688886669457598500185770351216498375070576918781111730724666125379902746164809899058897367986482299197148350432452958442513045533626852580036206455253177101174828178609773857767592855858780795075951441425950190599934729052316661837040876072274724045726822099939669246747768742921645598937897570441631628276971201663162184561756116045273863096265313749290200600949470496338013926366599392693530900088688596692371712566713662347941504245287791072919609081549489639241014452959218163272611316345829093530843227073625583885371465514381526846894195080069542226337472653786750151205111280248558375882033532859801347179722662064129878038164989217092893983956398442047900706959108768474199878106345997254824695330907970783961249635067852055037157328399919993000904998658037422807997874131128032217467823720544029758811752871176232137713783479182395572138338210174822491418709340128151202624945947567247268128372643031254854131107725160543684318456350707116912305139494700668291646276690300411777693644202538055624700247255073254978943059607277101267075260049915802128149069184457279147665106876971765478768558700200071271531743635729315433879538826455743184518296691608182435662953060658068073980859969537879603393716320555096662163149205411390212690533064676931483858372498517034236675335258665696625062826809786397520026072015388032376950780736816247434326873988497067000670747625904237192001721682524228735624947899410498868403735300583914173086533867675228484093790996708407706859252261644858028771359171682123305358918874059081370743700755601559664425845213106217597565974449829025046517107011087751614637986459307741761762185632601999568037069824469922011390694164952523136250774100004037463200047269633944688578915954539341438557115205197917103859751430360163188027556598430423640031116148210240126302627733358366420587863293768535249690503805137962236916476781157608169796185979998855127770615412082465431416717699873774268837875557241170744169287253022621414878650793868796578526342214005415900742947554016612849824776796930801418825251037441591284916900954898283563148675159409663808754863121162760318775356711819493866973066711540453613247411276863539324007548822411251801185599089611038218563573092094352204631296318334338469480599716013135623719224033490534058688278593451537152799043001976620875539659385257421674179492131798200520223125677720089701253458674578307921134121908195969405329108020518039626040424417022852935980976130222415073736626726970269877092244279300565703199056238449496523230118350010234247326094331509744982186272930883495328480263757491692251965544744161756067173134463442876170947005800049124732994746969482611384549772285214867768311835769587486334098580245835504196813671504041596872436505539794200740908965003424253917795057903085781056846104744115941274651790418823442114984098761430270508187920724487142332684340734915582713598906627568958130974205203886382716750731946943168728541715247981506778789748168485713091040905505652322756084402796361772817910054058454671959664808597449548942242386964351722834928962232695863740270874615017692721450171306944722993448550422238976661923285939749074516790516728242414017965071338081253306117655166652961093122375688692025584279435341190806693271346179827927593732847274177241400889432123177307595427063146147286167595063191243623466501143298778279480786997041884705072000230028480734494646605659798919969060448896614622089959811570572241283657164039285630439576240512742193410955894890356584697845704027161855826556801300042735225011710828043730098245623575076311163262176962294036919636909250359707045482543141961981046229353573612460469909051571885538808799240094151672057582801379538464228157020888736772186481691031522636433384957540239875308625369533047492545979603657419225565360602537189064975995303780945355946245641755412686419563282701392851573028955202697099647805972929687941562636824759007382741961145289467204723112723140907991218323927946242027838797319314184579626262853997620153476231676265259674254531962040587559391014831743734868049506954108050723929973174038065120776345093937851316620297807183044616949570430286265900544146601884409822455407196166791539172004898840689714450295367163488882264322053736602298686795101191863338804665643179091156387981125890972914307032602272313753732178273725246404099949077730259511889080606171592568479057730050162227693923781879117271597009778656456068583995241844203554831242059273230542241529862477794431544778949372937350981442674319322193056546234919519055281893459546987541702437676594129613205812402027923215658465019545334001686867855561656951757616699854602716917437615807088461990463714512669397227153060137080296917555070399978947844492717230017391269216162546039860106653971261664710653321515913959861781773455687786983517580784748700529647424474927500520545399217477576694382364313997541681604907123354843666436942981042079379132429090447248399650379069754942468769058266071936018727549108501403612655628113270356179980786973481578488052527561558607969135808840790858895006419252358451064421070633697968664239148764492027014505665739442317064419966611956839012942489013361105511883061408025458537826830157054935542633500354526431184567190488919216852275046042913096783158176447119448560793227759602998705054854280779023716670413477773090747039868998037607101366502063498989726299450724146424339666847210696125304245703903871051336724223842299260108011798402147396747456557178981382332522600541577901906410282736800815038556233551225840769378132710534384482326360077750260462412096982373407960729889853790685510524530416034100759952788087556360443080794112072385472190700634406410172665949343973048560222082651518990120822978967573673529635782355272567545225893417589665807468701857650270292520336112493904608237076755355419816720880631556404098242948653295900851181277707765877204441151924121519796412055143688444538662617252014078167290597291290503775042440677218720702094472035916656586986361468321341169856625336865793350617666189310243104756309292301252470263098509836842680254113867425091748334708473671225597156542702585677357373794393974990900366095414958815224095012029858360753663070702870680429011316208929830029785097740387476354792323931289601986364232527036222814377421377323124372430471371082380452975615738230343422687088309218299002256214791331474048157564092667006410549232503617536880556480133108865453722220756200092253836423078227221692587618839890563592258324096182300549915806505600255144192086265697586378364984425842902022099324767300972994535655504044788129594758912186588385134664668375839388197131250923117522139812635869441734393104767158596374313471328162867683631638061152069583976052982788795885333573422839748694055809113128989701712853070335751792226419372558094949293573515793530195548954749324138036778932220503410813762087384590165108073315530472740364247029855541179291056500136014063922621428866136531959796576751045217335113270671936383997586717144451637826778435925476143201983246458159154031015460081324926189913734523417546730928037148219873978146091274812627899944506182162329112590926707969575568081328528816260930632932574605265621931282082933207223968682252112124543812542389530111062889718106270073641265041942174241134799684811070497209377393007104754748124106289972433725076620046599231414745032621986691636259832506542307162300851269195671027668674987203350366057956992933264093060367640982946036397073323830290417888746109340418702227040018272445757661094038138516677234767558717381414465491264574668956159390909370128112023726644031570393161694724946632281458446548645471986499106481942473147339239974763711234730158068493401775867497070784976733021000178606778473177477639417646033373615164242281765432076849875518873298356107286633583472841853859902589477895817327139732511726763422055185399939462193603528411092916802046438150829473421790152521054396488086334606022184413822307613538485190470237502565259668042875028884462166874631654787907623515904612017511209009496497183696486842412494215711165985081741941331966167205965147720077291660239309886890139287030165676237574168160546514076338807225251444828368400415533423379797545559052131540682145519348171449059825031913793743247926184168970041532850212011691866495240676218935987793068437304790025719608474848381351830015873051905383713951642431217711943728925451113587258718398681342318220724831382273275203591578223853305796099048970975079025534664769064282916978285414657396519201431310499430658282047573533570785408019764370071903124142223175690646139580581815093191485340007367245859033934043995080985671062748755414700364412958233459096689636369297336072996312278134677118552119978996531666677939267368617736813600594781247116557904133662532078502875393845352665442684013950194702551455914947083536491049577920988193254367096423239284680349184340065463449256151111665171684880213328756861862838055094421491670195579124692695757697131796581664638444767255992731377465328306770164800898916287199251829103461151405982717956877552515268373475334590358175954094689679463053270951442789945747051430121877880582642742525860934801000894750569045365251501243875455826265529560467090947210596136561903494486015673741234372600468337238435662303425707486288757010979182653238675207746944057278169614837655787473931763913181817666306830496036620116298222967728991417709448077789819479938729404739656441284730234320499802654325848865732943876652312807586187364714142649644121898876388650955485135895736097600554518383222892976708966609558217369564711483742139543054939597617769570417487727216494583945221118872394662673984859051740403549274652720591519323076193257368611633168039214999454846428835377473406826265469943053548131884069444775187770876566923119212788255181653780836118440229341518820730067723225375410993398234022362937333762452200367575902631351775380702273872690205248417439431367646644183549837769452489269323661994989335567690925746604871635916364093670966303140421716755832482988452085963018448508708112718827299982359558847843783023786401721204877507750173813911906638815759049459988644530451979326939943638383331236482570307975381405498494641380178271662354034948955673568517406956721401402876522767208363139010817967169342451810077548287103096878584272411956746963877546338763096087182380638171116037837380260480268029986908422910170571732665953867344934018847680626475783229266673700058472307206365227678109926922275379685700138259624970593373214305835313349830138024139087289445793882085644579888440233014974736743496882760470444893716456731527330538254944373460768584157056649179836837573245538003103322879836680685550889504938078294412542117104210601651309446177641778967327797278290079453425690405350111921149474138620220330542348340781010872750481696741442811535573902703460237784905755758505139697323715626084134071030010038614303358068223152902711295152899753236062838235732099227067340086217697299835567763621733375605997369807240516686923695570559670873603177252909878790449071408661247651471324198714806974470363999583365451434681417520084654674081455403586844765799379947147174647185032004147047980494792738379084774076189493314148340886418926874894605387200642046990038609355180521371072153292524547291529542375215582364029310923174374131588544886491179927611445868312300514435038290701453205334767263693453068998231020254650429523791488354967302571096185085236352358363444441278032723310460576686855548953508033170994247655586944253648269205189721374259140112535868264749743715610920174366426941168231116559538945992095703781185615385246993260004159808250708141376287962078448257202315970353985505360741619538352388485964987170319563552499274232507285508366867455848095733572115108775694163300116364196862901238507293564501081608441427775257192422166318791947091391998722652735257089534903016933131865961748912254768502966150653293907789232978544623590943091432755047019468933086759420767511614801105357170601755065313382069904309452834127233549616748150233723363666700254378134303908835575706828966534558355454181931615893361418840851889569934981442656584205059343639689095925004484302900519194667668378505791823103754616694179978774599886402267633261923226425952893233743468937519781418656754813599857403309934380635428219207351410781230115814863627017432521169942086666546512042202371440335688861780415002563867101198539118975408394463612274596593623196488977571215715054681703682797488286601364876594170143916619545371575519558079149884540679083157246182635074431004142489175460582180121682597577693142166210831274716066694495481721011657687558997005695965572042729197402131899124755580580014742118777786124721191697410049241524350603331773775576677984480232565412808490875798119612501042197370827240534481126786913597349538407704851454763146691961837551332207253330676537811286481613034600983280115640338888951640987855782799392306912498781014662500042784894081772391747314714497732862850880215942304540861720057368612783844018826782126962236334012907001486454623829061048898555296591187849296631073937885217169289491747737155914491176887798429342615085004656488380427725409027152238102683734020161919639370145009401673486048154693208905619973191536992505738057906753693690612379894964069603884412930934215908794068922188527802349345174693476245897755685061971319160713715661041466961893150400195445394501431019451557196849915398382083250007979645856980815725018836366004700022715382839894683029304868324765685804859814599969599326641538058811824695316197498323817464896783394617070685545829997326576739537557372713131308363923438031500913854045129432276867143412706527620217281773574234989398266222436523945176441606325116041545126865089135773276527305306945353658432787979552332889065983681142335472025108472690907169542181625358799051911686853722359952352243409324377069026535304151866891837184841949784169041386092015778196204865033271345313408850200671319663869320222676873559119741853592802555350826599432241480801311699584945410789205035907264513220442005615847091684589414819615115579960564171373304580105774141651050616025211244217594475085666598686106272510036635342191415873181078337205837472978617668721224297243400409609279829622908077568138235400502972727483025210255485217169270079434364800447683153781407439626589612672107277791845921663116062477648876483547092868218595490873336000477564879682773467108556758230238301127982226748899780186233804018739788446042807574678543740100338286560518599921033344643043778376223085697548129961666100708171149289928193336762870676854380909687954190167446085816789776563645149882814419262051860906445648613472745928617143475846354746339791649660150412078151029882061177733182681450058608593824739425907085248280060708452128235810218428531445983911796701463378362663775399603825076564942440506562540552676485023423859011817425280409664834071625955785237236951730099190475072454612002310889694952892478036567684043507980218151454207788434311152928031715973504781982852084314325170778231449748067872195263914536901361183629617499260576040845756864217162964069112668055604094280540443290090078191382158874497681348283201371143240399001424293984016941117467444811690162875884638485696358281134243316774811854069839046510041946855470600091207920932824873212844942166838407060121080789431075069607660746938991669167259310662320410733315624210059238274211167548949805553577796629036327868438552653945879939323869828763892822334211777540879145981309552418052244135262410962431636283652324165974275881477651155672974428016396784481142471520788355767406317707857844558210961392932450309266251244481227325129600630145612656639921796542483551386244139551635118802884494310465251410968797517532070082211640443108256517415326009624990665106583096320720477738658350521581588590098265769567811730598351072008021529326185125761648925821303142488385001091129473845566973792041151304212174239545262030382212945646522446968566352029466708145250795531819406337448729522315492068271656293964311762680627189728421518558763183802398106614083129324080999038551707771902787470129652961699675302832670071790213401924865989197555089659944619712852052920757147592409317546530469374693420753113318615166919139041779874034388312509214614954576198403959393295225218724543030382229433486066562541775610624823555096955495629943290094271116631191323239827861533190518813324062904589339402872325103895350371193597936502448641566616907229672666403362848610097575404146082101192533322781591808369920022517730248109035733031093128421945100014013824538951262471073191165749329524857896094100663254876225905646483981484664300995820726775463512618607399444604477594857148318960318760226525861649801032952668569842755044904354401973702830110008879886684226900228621534837042022044171461380139304333800425351632125586910334797545827775320766843914233389955657860829483481604630774790777872556715944068040799720372572468224667773058274247739906645674732108232744946271624249243025910734496322405073074578235088043170029177042745812654357270681271737674665844228080961848587394689264022701371560296239566261804330641679199158156250035679244717924779283742925498929981343854402135509530970488465107952288531754505560510772154937701112431804116512306568400715000364187257906207201290774449289661217206000826199360793593409102534316684603151025078997965317909494776308541057155188646129413678087564145731452908822012812008579471376119792060144192154738365686137859723144303975624583664070106627333020828583757143090479072172080773839238538438813165859399400671854652571788214767290351070152800703054246786675827821754098348781936930465006394415252322112849206394644291900056666779832044249473901103714124767253548871629758788329800642827495837975300201005813738747286359835344087018107290688779249629793434138546592582589994619395344510105339138619091712377558089002177877003256693927333711675081832446677399744634701209317497009983039676171843651993570318680030499005049866362451684382510244351915490588685662859998906118875350374489235887510729421134173024280474221902886723410213740365534108378165075067440670861507514079731700688864306730570000521605419493291997965489382141142486848823156306002296709569291577082700740988380560101071455304408630006110153414239988661436281969864805938861744038392032936455420048970668516181967621530632370172165001141435406750366140007081164902452869714950986311718317414667270768392894754410437580808877267760706945604200527263990688687250702177653296704107982637391039661523718197351338085456749718582410346241426575720125286952234863574161651302194152631981507045343505551705946097174132616979998632595011628473123834893830775131797623374363041983379975992221516878207911542955268600528706733410272416858170455560313925697043582991781341589029125376310938566623370218441615802396602805538608620052558236617986332548460169994899608816595119119738562679726828895077131589143263367343132525165290680607226401856333714757641326752214431357967549378380025278617512864870913490950002278729981018401345447688949679103976490852643247214810465075973942103582865885412688145325865581469397218466941526828054183856569272532601621524877060772887981907907215119913415408139811348112355151376988824519933169473832999801006457389501902851163370005584473185399210377821307456901652839212770358560250049395980730876735337856913105330598075053342872195086633609874949163177106287726062495774249937280686685864990840749793780942602901700070583153850456145058325528981532973134352147933667136530856059762538612905062850126014653299161512358247606136838958307523731048218080640004517571600956302057504658710143050038767957033248711883245685570454149853282019366473832598185755785433706849603881560758620506421910006818459658275119270440189618842833050917698552618346486299255175461124786314557067480814876447760020298597165870417213459334298504647827084060434120551601945167659269828742483431826398095797438208528054354385877115296900734801892712890595840581797152413605157803169539780741791216361110252670564010701599361038982665105755565576631786632524981786048829787877686900185633761628083904396739281784505271926560246329061537408792177041109042067500489860369328535466462863687160444140294713222180508429782236707248949580626952562395332654807427017150610298514287514404711594366811022880877360356724771118351293063177695348389774281104285981399152294791693934565879375975968051456813051280249300222392378170241494170208456173941241591420453943533769234086171999035487027711662311538229391675020587793854455601422448947054948298119853896997416027885462832198625021385237866454072622538617941088819228901664083644410138740467976250573606947472311544787611752374394404061048888014083302017883576986149992914765287934077123422638546359966577700580609938849471692691014800112371898237695390626827817977263701769112676724987243649193542940606943870246870059098545353094572534557242159159468696599306101863359041483290947519815321252270562276751093362739744847016381802421785803130582731860388118372455131604313373595584208874743348193835456324996611791703003693175810190970090688177008364659396606816341125313351480582800026348239030877291899443887580477228711053552709223203963499643449214151470193329847064637965877384448622950122168049897565476683742430896507109239256202805519671642821026817438288426606833108458502331640464700107072813024742570650069327848698452743438588327524610774498474030117830660155842170677506169416979306676762821104112326929079301153064166748882821054532790080931469415570025749690870173266912934116176689050259686615266713568785634648169357549919290640704654281938419628507091495202895870922307813220359080747317977529630579799594623174491088511924085241787492181657172781948025039629918726225873817363658611277013414781687048215688169170868886142675850673941730923706417222594013854789844659990367714873078530555587259265501822600965043910983499324132599163065529805391221858667782747595014493224267376805529168397402916924226548308293713809012551528635946420414761602365699357469495677440056297452980013122503301531222007873589147531033017277077421935572526180274876235393235195534876756922591606398254529090108110082642743492672851738635767702558173591513556543667069469754535837857102382946840376090616100593448291030848287759214819802882797861068922933088371469698051310568805957504043695336279998036334410144654031305270111124051448627214154617230038256731135424391116462472415805246139886770544587765431475425964836606236661907513564512913244293750142054228074820825745697515487350107756053492614254220148368007579689364188166048972985147781804853649024742361535900275503315309220979753706821431139416918540477373526348644877840512258643825500299529369830711691690216882224085001403906385694254294644008618548020162960856422248142104868747501314675817842082288037258416013978359934582537016525208186765260475188624556080847733007687871866118464001424190814513314475775811139747996970869045215330690374092458812777513957916924560872532519668502931825577132543172524796573897559967011415230540291136621998656740243881210606295436360222122459817378957592997263423380956662212169560954908127373094567473922824314511171880294235895369348733048725627870289059388682700431016200612503992062101571349911114594930676113771140109561976568723257291921379618876931243963745935265099976747146957970502177199328093989074218108148067942168309255725912702328123200943211118531075504061836369946880445356651596436144729548647302484608857262438021729850415221904199277734045883744383276973764927224151870783848220018044388271609101994725276205821975036531806255390018603167716798096050857860832838972526733816525063379754504849180741275645091852956750887173210188527396550501082473220502500258030001132596127194822393586742246470063076950547336200522970173760265509196256820627247976263539051827869013391401445515985577275025682258161865836142054301062719030257066561481550276364575087267576903618047672180569528169494748571792791456190690313951643219010183415211152265476380515159259228878962342407387383777586319152275412685537752777458509260459120578822263412576361217967787180521379474000273069857512907343932340277640691845455349436648545098545129416901912194994757519894937650627092247513477283628472245440790351547798500196701331656601071445788214648529453938884260806080138708747377862025837282120456700151400655468155879643050125243628224893698618173705090145741687697085350638691504944970526424857631140105203167124385646815485978965820386808726888445855106066719386763685060108861703148947768438258811545821840752655141284602045125927087009962269818134561814611438285066220880024599921043274406642667275261072024337547593176594465666213224676397747037890890472067596245498451530551546436392649819512348960739414016348469496446341675196695002452782223393527267788319304809402055795352200972566787035954817056885563284239208611220831339547786042429661743824945802597937224418514021018852249019478382254566531978583940123359746566124150752521556345996635021610160453369196086309387075021086515054623701954585644664775577725993203437490863606999837714479018038561363460232557741133450003286973968288538917961910169911370482235348972529500992528028468297845178465256552246837277314962780857998774488550823692374543389612029449160760996016213038346471730427314439312838385765335114865724687449447134365926175705153372197124821019389108058884586795763525677041237788249893661229442685837889198655786348431380458284931068504603364788376329386348825717513683155267611714176430344210210077097257992505065642201040717983312996395000389236180179752058747109233078362895516481531397736129721158539764572989273314920440092710889932346757883228843820147113691607134695981648075318387956371955219090892751482437696172328277627971845368834086464704254956521174630570900267897218952930994937039003273100282744596180295675690568821770545337479127707097217913140558453351045986282706224537951989285771225104936604449073250973246522498400107684992683724615023503020697849881161570478419411293410348684099552336856055203633981303980117079103820962489156937330462353954587493174975635192134313561766978692522842898470235215146259634942604787867774230196826440791208950325143518203653086959876866300090324849055530538141614806379447675099835255551752873735681726775850159897953141505842702700367585564731994243676303706414922129600407625758637891830087692772074967934392933562626852512916712240914548610524862692160222851981195012883483869180867865396506231310535920579815235968251646000894161417734933765810568805117281882267942609432234410467237010961443370774018841584023489024734416383412408044159228920021597957631497802353141619429402402231229981828280447808512758383072097575838886918859153175211985879326569642954671798375679819751162754773247872289035136363270617734227241289562121226690953922944391431030965240823283831389365286792126670332132235232029332891834842241939992989558826260093678033871613382727335829108243958597646148582303802255378265887223150626151496235390778293523690531273685815638915161196271436307788559781237178638133020202331515109686971652777514583876189190560795959954635020709697439793484752762468847071661466606527629956138139656911253430366872741319609170804718573135524966423315885061555123984446146681654539485318454350503581769320884853715120675761983040300767392497947674806196207000467669501356127740507355675150331552505123560614790883382613115679907561326120343815492541832219279930382673341170244854405754728620915419885173794918938433204769974350706364202991310727185402998466564100163990746313105425371898933998140545209497474271071334368400063029398583901338918174093626329261049633815560710418105904817443656407302402750451664571912277463110296892481644597806445661931562533939491669034677056933730794275448460136830927376558022412228253597512733177130585092185889700469408078650959939721882666999812527068847222680325322632641685252958118493690155720153072029201835200066252974556911553337550219710742281900681060875888596883322795794378984880858553085182154092427048380176008754836029209841469906225085736522926550835636331894246301858262973384363231177511004028419409388052434545177682690764698211731092976629747481124930295286679483853707329065410749910272335432487192707383750328707250724815318115414246155971369064045980011013587455723480853668910122379890092508073464685494928614189979732462298634519153526017065031217637299374086149478039817047985288167203539903577315127817507257350189266888342861478563909550292214016883352163099548300485296033358930459259691359241980762660828765330370080561859132852267923972472631753494694057656933470420463879516861877509685020900145465582394196421529969249078308299838864320385681094947098041255961006916500226239500576602363058709221739408435885984521363181848784356356898301451693108698811676950470405170616434169235481982354259142619941718875259893625573132065150293886661276767728814411258537821108905986254552463841450121827150701018412341571481409809465403069652438175197445989766633678496420275455720152183363498284687531841196315781057989138105929208098607199913933590796260448291372705879814787801607200413023637970564831397156390132413927493866935685824383866231440843283012626610612810169161365265132830257758898206869956644695034438421303861144086843312278604646011152883442814566643522586731060926275891107780212013369690049785480456661865169939400236299992142437711365076686966945397217537295846415706151091451778021286744142831761714112797553915123307529992619086581173889581037730241945594791666360332289382925684261976112560635807403341472517669800628933091790160748815772368757863660032097611349474835621539108159695025153315855532208931024916325164706117560359847053620352917114598082449353853316714957497166268010647207341627734448652930745240933975858391987502306812873044131956595500629487549176048258120145370337377225516940307085554660412977756271276770924457703150272451504536386844753925213749751969791147383976763395318570192784679554398695062095392110722263476968473028846803142184969629621442532361154632364994016554599741068295531522215839353431842659485715808451946040703174241074979572536269354208701064378009141933118886496859174110803118702468490123021118487061590145549550941941620795408330824460926038052816623268089961726011519984232896721178992045755320665802415820979596269712003331425897952862747421481895533375409764611791578534972113515748042005329586588754866167760472985425013029147563584024536779938147248872065316866709230756135431812183220285856530201989915711380823149837549287298090881357630369747916463483960679279459267522844441043098481910155891852390837849810421855779426460390671295886701241932300368660916129594006365245127117470980958383262526044750781566742748914039972290890658936049638467351226304466864383416800835171036968478313961405851893512308802659595126930399704454100947191323952950557410308664609360698590176236261734801553055583506196858110685747295179752541095645089406065703970522250529696103158119167038741028319749459868012748926210547351030724610413944799282320884659042512796331515825487062162355445413736933115561291187879956873153085548755766642046973207837520091976415942845436656872122767992836201014874192042607973721015925859352045284793699616351163820275594628240884170350164331073809510223162031792347411616869404198661789908383134734602476339531388668189296311471629616893747909624055672742532326447501083616940488903373848134886071573386124468878387132485318844431633719897650490872230806588847511560287334322161092581045252474429583201681249900094052421203569417720318416932351010796591215579476005009092955784283120098763344106685245080654332236516421029744405094152022169650530466599647922471476450612933122688214412568599561955675668839134112597192034370933111720112955408209734250072663261923342140135698428032434166867180661989020267642973519463193232039273230931922219863561049606020800656565483093293429301922390380770722504616604620753791299017219486435356693535692270078460357557706438544638920363902841911132174660994825867685549410703170889752869866994973590698323798038555783886911928744428370812374080308290049572526118021725821461921460208035158456433084669038201486722681022680379271333383198936663624942720271518783987402269715207600664668015737306472260642203404029688518411387517913774565127138079419856129905802978881182586900729479483623490515540726421799090751254577397477005373125305767954300731632763946623944371722339661159309220631852709706843051591804846046062437794685855666705408864441554198854138292281887946931502816039528030773978937091872184695324029593033196483604234316884558935311792179597501090684371650951875370481834147461677775702011539365829930436992214862723093862215679712606729630642582699855868558977215705975819796642119242906173000561397135443670501072706576565273128262436275447176650925459960372146204135066996758977966174327107942126058234900623683693922636013601353261882986450735894082898798712114860622515852283341521334427135306630515140509306205270372542272644765768848814767313398385142907887215813875659061499964172671509919317203772706656514922575208640886671386269240255519515679930055429640292805469187294521619766688009011111456097918662255538096708930102682016545812732219883618935452913163234686440063024918532542884545466033747276780644131213124667733654295542415403262679337789444194393542953605922999457527356744227780344577606261774288979977997177994859119263023243246382787861623737437098813463009012000530030268169052932570227691595565092322539530829897725167863385124490165568231708494680868097190153669551401592997440228390433602832547079741021195095571590133589093737609074226424443550105949614050334808871591099155797412152724519874422233105035731510578320914381544373741045987778351137293254161724192545220132652665106513681035327429644122160036034495711370517889735411257587186183326480999936699681890709446871810596567352387341933913230295676802176228495149832237113423854497719251456880283398730799747937409227941594226210790469075774820455236466811844182529823056375828085888675545063588419622253226883722583686641149220205481370846009160140980687283354555518210056997766410237895791029018525000624029979782638099725067156082916451012565558621538486673065866285735147738933634782780679596504030647851975999873836711879321897219920877029528285588521170097165736152969667132401177457446069135290585788674401095086459104909495211085385803897927137690338471804145092703634263221749346297843031823387848143899492256037134754674550042469136438753624482558199846263096544050935400900864400913938598987242025320741947379680897504867645200872368778008803634253052349512986824679701309521900928435543957494414891604728223737658189878070513445715049796718576462560558207749691730508631223888382547418929964860197940105236100069806620473287929706046083485461583486722232551641381487557840494972366575799261116757675746025662703340447242715013532218880595133370143379131800409921500069874468590733981307981658592415214264554058735650369410436851013407918730257442452718685435127286070733457302825737871327598379721390741443480161575239097581236325820848883064440714162640185067411204224834819863008411318224873739079032130183640684661303888870858191640375277779116728454432012367147092017708291028463781042232639387389950397110900667026906060988834437986156334906935908771495324437043401047835448620820626957241214741753881735085859385883905465736951315878935082865678998659826926005887849144345580214065502607488585108869527726706940367173090576355449451867390307630563312518403853802840985486295125073871738573001330299287166539880005089931799377925773044250814873003679670902120748587609265579936486362419356833677430104000428638466832487455162889931208225223072490845047710651469376534837396016845602081153123553373488501739419921967586291703847345544822439781227835435742594628447267894550290370073727580817916964567264424300661108046775356366323818345138200013771931239640793765566986592475292275584387877867350251545266775005808997423362307568282765977427000274831020687079917744379075789548450000454929983671056098865666387882137330763934072658673922959129099485984014956937099141328001584639754493799240251141410273875191519239169427019771633502019833781777369451856902403657997020523489101214655447108341731812357550737799336763753759010445546733542243661675714587649483017132680826132299612350842934706921065055865509557917523662475559054586070027572848819847592670128438178174985120859961125275136165520646287388533571926451080721126997690281191987445521531136753113816220817497712604849027536496785343965423716611154502223657091300597928969211668417811949832454321213568953072084473742983243886140122054347959085599401150912493646966896858259747928960276877751176090331438126764993355576050906428165023913026500607534644115362974790275837017815015751463313053150653739389756711499112346068679683046076795348681493948520472445857249654442461260647655935775133163288706239220097593029206788024608513201603373985387423786321167585421649244577972220459784988344598607565168049810819050116517067586696900250659339307833365264048420695173630935788783840697923664125089325326698287870582400949292768727930719450963354724930949042625154129328014221266266787727240064829181234715588259957298069478588089509206410570067079407721791346793789685617104322902292707769757479872139041814144191792981984876127383058236182192123313001997016634857696925137903484246812955457872212361772835506531037609146437691168341460203350682786993980018508401093254854829123863759288239997939735117794427234378299830802243488750587088904880819401214562736232917945506150544751525203655980042373479867861266824534505344568652317467159189026526352327117318234786798477179367256233619687696265303422558844065659069757988778513226254771166190518491199075432409390690188435815727815583062607711760516727461175166805054258832531073935308002449553253508552222934725211672558563502662013758172155574141620165044032670820885066292882546405234823574655655772826245833185095528268621052486122408716525006235303720579554823803874137276977640156388171252124179949138112367430394492931994159922042106526918943835927835864232649188045606459888323597449614175220971526946648446353137929554379616417665391549339927954008312024860998387267399231616766567363901839060727863486732963752286274542695856176756620565491365147012433131107875407875691991937635918059172318533700901206650772090236880535965645069397106719005791386914665604670054728984584434146560465023964054157322310631043860523072630789682212777943759614465592203574328904784300527770628709279176324032102299866500324933942894128391213500211678743985668064389920651545438998383970392641470917181431918891170680268057583602920984926189409375007438423537846085588276204060107489187015209046071104237657575560186355320937715334305430827440360606682349441595527808981711127974030514140190611257399345250574455623892367690897047262117147201299909939763173478138753283349596735514890053967205765569102157123462760650569707334373073832576122676464561476861582942204341331534085280540028601450018533904730482488829635850030389899053112821247979322997934685920765573953407238818282124660341101685674283338212038799482865306376293079121586510216920951829159602331569702175326553138221913691590148090725421265881753448506069557261153871677113252627608035100815818948255754720513591366141740636049427116598897617909282014072100594145449273433207596199623004209069637127414959797624564994977410451212593662383093207342684294732862555315565716972279614872324242426150667369813163205769819297334875539431496092007123587086155397607143653607920640751399371675059986525301107594745710327412990021790060545062496002393461142437872105859135950509500706566880935501376983417816852387440988413609386350699198483701091933636597701070808022725336474438934359758277830086007436223621527643269064801694451684236924857712513689957074708638996684796777809249463044946927518719314736414621552012301288704353300045405872037194424398378136250060869309884155725051430983550252752725152129115272482698827021372806681275742605900131501497406391510057631692637131699242095370539572524522169306130998039178527044598995476243131313829969779264070746488573695768883473007863202940999237947992740263545640288735604851472162242515117700366667181226830650692547736379650379980834684612775529680924517416702601727234496430710376384500930750407889297791210566939027415580371545658724179193660953385949600584346851676530192593640266164082832237694434897687562502385061732293154467905843867261063195272839159334483384229202252745427233809049651006517073069987811777214169224833616634380474180541473824176274719254053397081963940697409282841150417870020739580699100254471688552219467775116436531157130616960954250064035364130045220616407436570920396716589408382506400862597246454846525980272887816926111838498513603237377970194269864518923445868863666615941147025205180263750870874465988263414576233033027960949339528277466126067282539290071656779150327342786352999582744143443027904767664425013298607561928220486427105666871914818871590057188970903541991907619071608744111757321475414405048776015744584579220708921668385202482469446806856812743511936779357487140696957700703219407894698082239489549437543615552286570033331847241864210185743039375657657388748934035245398452122900036904847789986894040264786735120427840266983410953495127351229374342422360624617704000246164311764597247309665828870123243999173078504783027898693973769608958862971796372738510916228409868354641380534121291449666412711506936496735891768471740943758636011719902763652029650618368700589289998075813118335610019796336078735911548566816754023164445262552547141083933775703525359464142458000489484672238811433251898126312402709538857052111663040439258235860356011607102077434532818046345543382216672736244959211267536967622948175680326372178284288345686883550551000130838681853121527773945373981763818002781396584884625534004064018682610740795416760531701146354065652052758805863527703129221297888745746946322311397640225371374017794354948797663727494773586973983372814539110999522278236498672760904413683978019134128008198273857843438746246631534480507410385307987058618840185782413867023101499566342752599065656742095073847403869208806626673565638481619119882419088251856780410087440424563332254509231467169744580966104874300188410899976123984814997336107099272906857046546387130199790785863081577815736215924087022791447945945244582999901442014212285560133339583944586694227772416526591507091626925222426789504795659762609474648506181580313915470045969704472763549720560488776348673698817216567156171754967072282640131590316744840542467673166411062686220737918812987019736716026369991831187599451634777147975620222177563620826993579178362276249741847122387580003882810565882005456064615119134304803495704049732839840947014465813499620976022966919526249675551691819573257495472787389757685904383414644179239463179036412533956664969878975897024806294442317046266084456463648754430182751776071903418435136363766804282811556280090430401627821061942760557835106959871969979774624800239553950716015765213130047548341032017047693948719154680078817805267172646977993536783212376038121895151422375359973074543431954743085802802646098942494511711823112713844764591720112745912269398660011838622133445083199940104060967896065871477166242708108266745287204640667759467906396507349935173350688102426399230451382382253407664563863725409756717395743605166619720840492527343668225344508615521211862305878494625881244886999040903841007318229979386560224979266055683987396812326219178692596276978968089514123553709022655373704259003840306824594136654552562971804330598586385480939557505604872432750995818397287516646054154498400899903403605794970235115351513248263426567077809722953245327779414394538061924750443190391535369121533400532517121035685738917293189009640616971487954506710125818657540225034371999168602554279687427334516595179655573894797706109981687969455465644416957816853004970164464851061075893116213289432460311582992393908324546475283226184430844610648227099293092018452509231604175786116996057261090281551425158496298232572251944084542201374981812627748895371376393645917188748298720303240689460240540995711127845280939982081273458384883842281070854531362875482293074311373325243881427487783539679267736763820652581158632745561167729114904737581297436497070706907944988859736007230052228390680962629094895689199069035214405838162038488329909316858931759858215701902337841986324959380237172818771182713957666669825250807478442357280930652711825998212127902355734102355038421662412766958251156593834288513723525468100894102880107577069912491930158349694886683255702365822233248092889314763478142802071542132249185327585249344737809080100333000530959304131463912464287975137688377552252170224163066143565526324643342868901214795672914724051973372334045302657265874962922460876314922510319192638982785167710775670307437054324447086776144658697285150356518005790308078056934711968187106868331221754148609644845384941265076052913394698714997586014947659499181958771158784252134787041622944488427362594555920055765501167833956849027098754893675979273423566662883525976376132289998089445641053988194630499825657313766406085642515716804718219671865265927400824961943735872614116850154012814012555970330677562392524992587608040181604264740554354715063392075221932790830776294095571904685463044676000478726248519580825970157900082183678829459920245559399211026064346846279559286046925328941645581441364014999480688936785599067433250805254503044186049133313736984799228027010658368452713278112927963248611437778118943818789658161936144732091424969724136493636017826524086510721305904181123978218880737093292685072423522504848346168516649315097877558242385897574718673245879265275797576640723456159774285075745275665774941822557960870763057317539757646954522726011301033458138069885490548898955428407254013082406962304571314172088658827413938905951844715330471820718390956919697837535878478945288859905181148570806181551604315547135846600768500041732356253554321344838524703180707873175144319912515148247721970859831232197795826696012769508733537171492437751119677654211084948897735256159573622042831944479773212045940464999094226000823762485598136811154542793130313043227277093719663373569368219909999846545067223758615555322557841312247734087051768189936849301888366863422003758455839870739059456182262211535960381907713143966577434773438481366933835568263325469153389211119722583863741149491368023397502010145265944974175641761362976286204412857827595340440803739158137684848766354657483118745062972058580066956983093701497672727714123227062037574580356125278950449150733513159252839594589125877437433789931723417264349466775744532366064082597968062967844932527126322234926689102221258511267406364078182875052315909097033190809131076196846305109034637486359656094784370909643308663906122791550133030095068261049160041462647072510714143823717596719632435154862624311987694493550670536885569629690482760427585016747506256531546330308931673055817464825817043826730971964092527169547339689841764173826383941791066223515914051536169887173050714546371027335700444346596345125492137576610114408574881530734461488221763329956720976855014682382422475265759869587510183087257377917122399463817014591138118742013901326069208167639790359055879681761338827942737497416425175408995930367763453575315761951250835738007243600574314588101763949565180562414548827841267038505654670156472647074470068125649789816499067294502447222889502817514792915191134648209990546910223631501186287253341900751152648572705179969726571178177825859251937507234250730534362085859040918683562753713895966395006789695734398418361615139973339435847304144558071969180027496156072929710274141296874117727636758999010128564806938597488505976137556237267071655456790263829696286652441788046144914639590744867328390071750993110724753720245296847417079918115645487596496356024970956672204080553158294482082201734137249193482074836797872846471261801870152473465138266081764593777218224032772035703753375875713111671596145675097906146374242168777122387158903586811156437927824321063646644561675833575938094487667048166217988726535028250961976055334056713489500046014775624106761659875006815166875572724125875074349895173938135855926423235643446621707305552354421895240187189833518558459829788095875848157084664977051761159681813280559312977594229904018626223161930494895672103439149779665719084644569882814303700337732560630483552829644087712155109633155890983504609590859766214481865127824224940567332914368956687259366663546662596145271919104559014267780529753167469951834354174374173781838410518193815354093852205772722428906741189782918227173660360174226912388343724143005990013026396716452573969875879371266794512784856742082709379205195762514593415956964906412343046850644534719013601251615106832220621829126144632253429724365622940032219425818859368538506665113562505104658117773918933669806223733568304012846109209027994073529136411957594254052296201731571691972586691538284802697951487104703109665000443831235085898224232329221380543699546180064767813507118934772881196952892051583436519639909856739482602609222385626559348118051156692315280516979617623279638232356394533879879811558626726139585640843322700088685172160583988277099009905656654312617618808414369832699867460002182819576112351215605591230280970733718757576940546643735648764657063979907229835315321774610590212262995814606787443379269798715804005263569467536638459582417505586600479920517692521805284093778549467812016649960443880826130575476228466580951875907145714672542138688214458843436615051236017820202628083986726575517544958726828867582089552797168762006015341354241195024034631661854088420010077448545621290796673839250379162822031888053808715716340459494160870957913521036247136057804252120530034164601915388070468729677079555101354686944181747513564740569204736913902217004777350514411406215326086827611091715070498968768823806287168101250517771980590984659780939667846853797105805142454799422152447827658957767593646469473120460132444015326567437186164170263277051751002474555213676687552888313819017220103049219489287505652949184970481380338824932498122123429374475685002266648742872047293525939957545204134289925856752680074119061893698347351220827939261794633101421782696101812992234628592885256646294226148641774502055966233729972432649398276207024294155072798425357364916499980702598857871862792364930239036860058926398512320941963203861081035353285608960210047161540049165048981876134770244640179490281964655468755241910723587568993764200085919999211623028403519939885775980999985859130852795556271720896073119989463947062076422614160966407693001884043484246229748003625139110304687452353649546286564545070626944089689389357799608996659740360958980978230556744040721323422402071675283453683441051161619201403391370849245689499362862305953161786362905029582412766206094157570489935113749143593692100784372966800127709818622163625549602634831399370159109308862334233087893196959956059516924866098093066294885009011924907498974386533577370135265930760582762640524072221543870267867949627983649274219638341864774868453083210110867131378455285277072243709741572159395194450198391768074609567142111182243850582119668593953694184563987294506989937220831519175289585129044351768366335595150063450602647057762123296513918272458350268666215608517216633953297275748319519970076816351301691028682477950894675939929031634311927593471520651998567738323239526931656304432399441056657965628994052333902017500968715099006213877451320661737396633402125264848504651895437418633154315096714790047419492019497327808148147118968805558929073862134210611707867872924679469998810150185320869459909719646548846581263063749040244995703203721444900648743715491935650459742720707810222762654115804899179413477929874934876276687128090712045757000531330014958597366170811884646312888043928802107615084687188850572173808407736436307510934094221056909767789210280932344611829493700729029583308540394961190071157299813169569205753343708292767064629390471869860647389473853003467844644985576357295628504188148035048272352798896602931837703791605558628603454340800738663876706698259162628993222023486785696521897284659902844112917845455839944218261218636459149197364251046358384859104119562108174331826100803837040659013446258438253429678825543890288485123253941945403233136174942520756375360150626823380497079144517410761637756183959792938527909616381095559554690929858870444724565991743539723419106351888970258863842470531331171133855965207987835281973991594036955379818309718218442841353139680951862049831557392577996551440524061351083496682176196234082446155656046197415536680115360729368688411705212453823933483338586229253456918901845995588386692389603496658210721027764724752037748902540003712134093441239110670603509601463205485674583011767296516625894742266838492968242078012539548661261094317685933047669192255869313877038613435459435710757310674237082470579241003610255501163322810507923084411035009148588801027040339475078633725989741861392954867260773731937357409815394440327752661793105832119466269459869838915759249806451795064750071058603956137150191451834821794021411965106740107067295840261785520645680899836713859272431459973521252746992970509749438822319914598149534408273401427187111137674755375724774906932575784054316078277773137576400236128635763637212657352210778933428543682603532717831833179006849338864699607560917462278386229922048629047228697797952420743818305792875060044534175218295928670680294726018524391811544704710567459589760343175628765238334344219427559881861058858237064055800343410678833329653719217616449509862938558730770935522641885147642160639647666397375378321048065126180923339634662969998354678572307013102558119259724933047007503881734661571994786559851233045672088019542156091709120014815229569917264758789391408129414332593847909228594033886304450605044638001820441806122625189227429392188819088828979738206780475482066251489746087638946444164255549923214103296956677481679192207558635944910772253017581781944062256827976517273473989544717768435442298263920253157430203096194092367785697891503353079842448719790001960842544202277098793028298141435774873998991734717671286626173976132645580974728356020488268178075070084331585954576675646313698561826267047918076653267477647671991681116854591770926227104088433969676163917970368884342751507296433082235792256423309677483720604981400699656673296294212559131909759688712273873147925191496917474674546178761606595642180904436559933315548755557699112410958058148522959033283337172506501883017999891462824617158913391351560532921059611865714590694002656540977822581830336732665300587148566975806668344026149512216931113690759780984779267027530642082476936406404316195440863941201672477866452104398567978093000593048522423318962989047153355117927765241058874236827099739484528439771266917409961657044468414386727170829621507291036406205176740467539844522580809049189833705589154596422631987533136313484491896130222428423482415073879093800032822324084153671781203576603375581130467469443188188363584655263716335537507423996733797462599825878408096511178859467793861013780612260509964827156621628618470440804064211241845109782842985802694051614477402350952142813289805699627931339521585004540006299289585954114018239524653458318421765845423086368529641133627957153674737980359107186411178076440560012480279767370946843366695171909200948207460090872138495111526233869407867215413645072999054538726800490529650663402032112702844398273921695246087345931678374071812886903200571298666405275737084555054192637794743864211774887988578958524556161528174561762650405958098362018989374060910099786755938994695337525921970044649004578313123084662765546458361081487589005322737376489568901933987725101719134736695651128160754935865572836626231183214564933193808894563233961789038164038449544073192761597023456357705797621758897736303536226827978530466888419553356864298344740991907445436361131511608873865090434692830367902992081095289677520285453797493334908749225014348042625479367722927568563915266994652624709643441381546769532002702096589105855654916536982236722557540205494956089200886750350572770021496167541094795974332870174205480342446416066234583236737852649404299670525304972924467550050306171339499834484096370811848372854494863163395039578880147965777927768086581018253733560800857245791373675692710269264246993191885532384282245637996974153282448132387265721757398831299294386616362023989972330889570717534721763692265073665572436409228227481254493327874611436317069943214252592624504558856940235870139301475642635213429521218353183185026267484905816174397571849939964141725880544745131926946977815952764996377082641051334754509619395522797266362734777702095151012494584959328535070311300325815043873746209019378349726379479892306049801504021873592122386762615748330538446585733632178218838233358337472894633853716094119198981687800951026786730539801968134517883594136030627552625739169894388148591724545740356697071073116019909747028138001821895173912779001540585500900426092412418013066493249173060293256944007441774620642601916192495846875140848810762033644089327668863486932242264372364522596436132522009415725724060860177087940974651654036209686078378999964963327124580475526085867564247200643111387099522865759473993355503435681584347015621736753418815832134700569299369484215864137323945650469907932149987727467289767865974115427284485216373435887405184974545718668456829857241490678164747009384925677806913764159171980135970163338924074622715553567731500223241586998995371996803968616998648995374127941027924030173186528399316938153493868388530727434811501348674873702880254681388091324740053825499610152731347308719784886925135475064013132764052669491996201183971577582791152617124602189513074302333830332476406920798579366445736871944488338200939361272936505983432233515637991994046627528745351880741910650987319367305995101581363075650841361574748193017386205190871919000925301859127697605806617691376520600627064638850388434892583483319659017490493183978399917094966559832576311591434408347268194153278569435291335673120207289296214962104782020283305133235423321914619132862494729926206161112843947415001587484851771645863485264313394309949547133564229808523972325678037546144658552412245249947210426839567247258065264814890142392104654221017198617217472804863816430069001116096536499025583892640004239400779525059644982044285689010420931653739021609073488653125965106089046203510118779177181650838704870847563766670934675807978564259690684595179159747838642093918889492420193839065773748829328967672378402031154361973133447923540270503710086152590548540924220270252433943735353171910937143709005487898967780193690530429375940609844621237475527436148840892114282106153591595808791008214820289610370230576119106090582868011706091864050713056096011398543534368899778984395120714643746626595979835784316902274966788659358677309691946196535018944751136641561426701595651455742459309485709061901885630737636840412649282413545871377741983796861773472631404437740218898793561398388068285225913284643588494541145707194028254847879667233990861493432058481478411826600621481629827667510757842573765933049799480579856240366441947664901090672361532891550174902038735171823038501116354753897039891649697681200616795646107442545022653734484242522217141785263804402601142941172709773610387658154141317528648952423230190310364590496035510671343205036330795837304243770524923691629896137732055854802038780522466900264093717940120232990240991360951071027624618941945926784698436159108211337597157747319077864577143293690460220824570117031443822946133289697815600239297223143208242362135615218835168398418422142673521138685379605398781769926906960525215189170956698793665237472967187808695222485406692913911223339206536954123193641486746665831589195849133208125855646979207819402175918092096916165442660732831512809180970442154836051573460376400359472772490448537741301534964622986743789891046034358447800241314698665253005695504346286954784235549839130365481452595223365631945137305242148652522628863530477029380002301406825809825510311182516730719862035306556092592500685182422213126030465321444086903251405845873556422257619400979502796042161617709471476573373376014468200087001652412695051751140669015262665971622315756080392320785174684099186808400300088338738904621316308212089343331739297841577789873424051766783634494707039293404106614100752774919579139226432333254015715759491371613400532084743321155805138243492231818052576316033225821335685091004526258013355278570999194499200260938205982497231957227366790505096211187898404649750208725768848625557068585864686574496855786499749872875322353544598317787336241128303042570331486619585132631404748615191806748299564181882741876963844477150840806637449301369148250508542547135217653280648093705447542783780765071897165328546655229077424657130571874152160591569584461095563682074390242341960886733581181068507717411355902634607989975888297844321866924656951436082534886062039586465898225113097801376030883341823032955479274427405342168172736886510576350019118161277124296321928322067589917528148558506498953903256774881049680967706405846641911363540432242716821926458454861751401486877594270347313098117582262161031988072155559571851441348047099759530979861039525520326412420209539234208383554544644538795143427135473868570243423676048588536672501224018994211438201452109452076515072519018464566529826162821255009301078388334061167204788789625449237842368086236748089620503650893184150143019655871819728084133120562458877426077056680875718744339818933863701284220297107869509081883076896035318875131924319499063877173529038404007688189492814144368168111948594119309138553547362021499816785457376133883399867966142063646085327357548247330886227949096837824801175803863669603316460535809213298511361035343966638410375641966765687843595403729897097639011156480857624378288727470043200507552988205695327220993998050404746689326021325720422869830347986155601181571376377525918535381208739060730940093933450593724062969203034433077825329253803862172051928089326342032768289388515865996707206930946601726292640532300240760947186530448070942401080821989621809911132351818677118662465526486141423216565302421784705020540755696486020404933612473488937700859779195735675949077187545717923269910250320977251020472234103888949887401822748246210168428804621859469659309730490142290185160591042530014127092976503745275511600183211599081512887822880975886711737161803583842167715634548037900646576260171827065098075759002746316843152545531302894777245799784784034638508625249404430085651031201839320232587337036533727970962238201808104268491549706360725704001216440811387145134212930822893914786645569928460786809308140062093808972495318554737064226480836923486193341777865424955147428583915528061920947322422664698702909277075738850968932782340931742050205276698397166638581786408556730541485239547872680745303236481122281211649888532683945247925242557542605647157043227764014744562064319297504321193053981466222185618545348093178834221961317915676563369642084751453816318078636863213797234193027970292030021894962664818743183638638987948712722558301649893131305753073019030839126183400381053156601888486669063333048620899139777630013891163279464651980943068186876910447075932929177725998411844711881044884523391454232873358578149101828492668460933443496482246947457952412685380038733539601948819578679713438263312861446671652180813472128644821861758114196920105269934493599037462419557165956893844044656378716708263425790985352129441497728386294408283221462561491713159741574345578480280333500649457978236071954867058330156435497904757759155854887370173851766464651138838236898650971943697345114201282723171756253258787255493540216592084159610184952359303558229443977359598349042089988802220292557037023730416347295652347873510094338594407796500087975918557521006715860428238867909441633085888073017537191815154010372283541601896173341449267965554975053834928338556925404977776113310758486171411213313426389236542901396973931171163985558505381291111954589160132688959459271692182798803142043483834984781877231745560015666974933565910608398129460157715718640053402362227277933478731935228518449718547475154599913164735318758055983553263769495858186754945403740240937769093017463317759738843112476450454974401722946130234660272320647413190587711584751054513916405733593338301737758437932478120035031207990059131514768738245844135897833196991805695792771010186265169443689720341347463453344511650853498442649294697860831103494792080842394874022827040306873215135120516310702789835511906553424341118144073672283216842409650777588455706823009784715794472866523231205827700733548732537404282847013702695446931744403619310546263383826033305377960958001363442138237701692331019447874238975241633162830755814483350421330761537243995594606312861481722344356110121091206500837280385555580015900760594430306464751671508781412847663035887482296221416484589496308075917167824719029763785166384110023966526360467270535620513965985704571171154631443424418605223148306394567904115274035306914481924236667327308707194630804867063105681452779049944729227984188246059852712124285798456622379752704021646408682152286086653913060532272512416062813567651996303427832684240546341809338103860798755794677188239043599016007577281222638497822544167461605445478535357204918484019780863263803336964816835638168617685317133231388835794017965592883239292929284701497093956445427053714677575786303343202323125547746000145006138079695205600726856009829044807483282694867985128386120533551626863442141408673961860721132412202671298858118592680575194992613745421309831001712998156544667742640515173457026435348650303890795493415133537551962911735262334072614259064904930433960182968880677321968329996451503285612435511095391917263850981454164773020785024553744557362290552627289365684872346242948110892059581128488355369984118535043813772887981305465154734432731997616276358219877459413851164976873493502764500838964134421893006641141175631819906122906373059824854355837847575652568671332258043242337443365191432050083614323570617221126946650269229775727697895259750267402621138848412338660691165823679169116738107039113304395431524295781353725878916533962131162357248680438877816851760032827802628630580134537560075179515163650810816455323571686227631692911050552547570364977884796239689225387920846152418084131161951145850150410799820510184130192105137717195630027658510154645495116309097628593283934529293326741178215881537045344266647971405019235998868341506038297978356280716218830630683355540635591842164257426891601191133687299758032221715637862542323250649978080534213158543500380778725604050071590650706113365479200542926504939222304194960861591603803973029240990868670618116755977689249365246410770116670032228142618253036594809505279030937627183559182628173880189843117231394204233202431236586014028208275591292946024429105535846075221958595663304624289312143371679726217902540284955091203695143657613412941173993738377916054014486995598410701275410614260308043139529959367130287468698007959611273744109350150091976874460362400649034147529203536380946348616754698052919072931112529550443531576223546216959407957452633613534799340595579575298676709279575352308653055533924165253554938151961251684824807361738114289538955094090670608487269644721271915073539232257575884861718484292158375455707253796496822758464302688370096186479689287678884203282143883055478936391419116803440173843265986235144621923879655343822856439396491623674065333211832115896500776788565350279938212065584310498432438444446672760556358439276242066198060037780866311507333126037187680145165849950611928276019990803461858694055976664470974803859341212634785620043419378101472262890775574624689699100968326561477125357612433458205465824863028877737270989827335778375901051141483276515004050834204663679736812295822597851129863263352464071216426243288835316245994904312030628242361986004790678017081123064685339784407868803978056853885668424072038606963893671426027944747206554276568500289752733131749848263183702337117401362361869028034483521859461546600697465957286878369577013182306618855740071553673983878294362056091056452873758734407303575753655635119657599348919544281162664647189475272002315294140350743581954795823822165511998774911731693830540489945875784637059357903750900673401468236773299160997528758535584702286487298698295609517893573100919211977262011545919740689028848725990608818395486162721526843734860481636166394198582989877057594827939150860249890766608831011103022993589511482547123469689319523520953945008179139304924690270373069238892040257929268311289730918361802848956669965016449886743295677519739240899550351247288155951470289929086382245042108390038721415371659671004348758567543442404055543797715380476498037946844310788573828608846931695690673215697023712396264520451956772075519629643426779418837236473896323414028360238710271847739673426798799211788547290427502614080504860135595850539662486937326315834482770225631704828770829477171297561545288417364390420271833067852951247619411420991340432762313236700715274830386062869402897431426592251235714604232413373080284518557239310517151948964828666175924661680700330170332293517096160925910998396548237905218358130565641418585846130282922527495973191213962299342102498737256230620890407098726126640690445205966646502910448994293885643664645734233581677152388664144067711068040439225554961704968963077437900770919681141687332337638612486154784250533449346824247731329322957618640897107020250441689248056388437458954920854063791356415002281192334295486596559424770763696441609581062039357685268057532493521932456298907362114454630271592516735466316084848858440196081733545122820259036337823791444727887573751077210479271115376024577582893049528855443677064803471687617462770235977827547549836480015069061925350996281038994313749323506947631085570482524681811146039090002775962509705037859487903780713340969580399736555093295269578308662525830628314422914281552763289881110307303069763744100628913399340091568450044762373856621674669768498231948306527015740319325094390680024837745525324866913766154760880998720110405536656873559869288705976647389507605094756783147433410837269123860186616478191835129775086441817964801375841406026954070036819822562812834997880541397808582659025497211324165234599092552136752214780551646945752256594906839877733326767332470359532886173444390482124779910716248761130261109438700955954650466192876110933198808720233085006751520179919573853505804191284930834024623634417654731125160268852388519053399662886882076440667204373398514940913697700209469770495525835105303367440937178288150494894964429760471393274328117847674334892926950511833816481119161460419182809023745946841772459168282994624122151565878399696079882068804180587704935666063238008034818254997262842005953300838545767107311227680078542020346784394914817043193170891473388615372926990987677872413845796399270164336738671616628902331966730443686831407884854167124582309690832515338494287031444824061358609185015289388672841881455564472304452678595247710628178277886973088434980430372590230256878380440123133042497500898813189579991666141967065571043249508424476887735739305151167686844443456466393288352902663296930236913282398850248862463432092133849162075528384134594055423366079021663010814367577257606358878149376737487018781348846771236136830471271246388472845158554149755964209858544559510666391955740095528351099637545328151465610274639129087021961741546494255956186837693443699882267399302002827689547246758058399331109580041412969630146323488292942589300408767848232070677278605095493557065480251129357017366577102266396000297637597968148883136723567814292853453924557148012544413880821782691209112612519989534166012127980776113800705421411585727368793679005768456917620569373469160629040054519387766854383993494335027953124289396280022271815286028211821803268111751530260503289859680551356103075003908550102906467075593019084662610842500706835563159277624486911901270375385763242750278881217066283254521074645498578996951173471856222186052170454984957684744739873766053642214942915794699883281826330700919482101858373764113710541971374263621422318633027228103812247970738802892184064434161297823112757393469737565059138381425609005621797315815094885357284414245454634444118541663293050542106158971399140291001832830793714540005925214012949475799284793041103094716991882484406481075145011380654604602227450424252948690911404713645001356866381372829358962516060722586108260104756605384655839452772964449936662036687031616063497947621274120458421951212988833545584760987403476069714344747932639199128547067448941274035734857682835507841668934074304311271722919608571499019914704932206933222427914381831704103003864188282679434954950603044786802179613936339052318697442998644347039631104316929313255221297019153088550179355238165092460205709366704119652686276202090652356445205824434785470951156120063114550291864935384382886039390534970035665798749424920411718432137891724625529996034230189970889873287052856982904896460890596048311969533388578777356012392234774025252613445621499132980782645145215411481408331872974683857502587742564692806236178527783688324561505005064977661626693601198091433941928999786601585608625144762341847453664470447216039676364063991035606789876618722617367918736283601562302586909679326567342688356640509368574211158039592784189251139222062488275388448388900752261567324524044400959243972571584000069833893832584926919733790326549542760707841497666019795729615352272783123857218789564780778371014867885882388005864865412248383011903506250434825850035567208257329540702991302796395340385452548238075678596522397084253655502325433491008882071481917314409490841233615096274215256221928354903840355940272474047897540252469881962454057613038834680894203654345447428596260454406127178633807690966933187640039962573754279714402694842656764740277811333550709610688290439152462906153069408144254814734938351840463503065313716000540000157261285729475538480483326085932350722952346231731576231908591371422835818448467327598675891975134320675763980635667531763320890854152423069039609420140661565099486675710491392639774625516645828579366417114800780482567844180317945483179467687693385292440250719838098005069796590989943576879372519765697269149014546807107439359809212828109838660310238558284275644903627554258288110282389172046587717712672446271715532008752105952948504498489886973286541066680784950040190989638058086870480509231057368990642740615110773448087029177328517829532997274051980717070592200460600532233328286888816345262437706276765347316755621494395181153616337904084828345960654642703163899760649518043678343704804628923304765858166109306901525985687583583615771934542068457092065462750851963881540088787495277479453135559424369523873867376779940782491023629904852107037834571236434656215892161308772001736902604321676093934263103575892370810974507292517165947203492866159569427456131367875361681430864094357902650441184039048244895747388201126340738059223311466328668346106880700651401695363538006303751303394427701925462667917238526956878177557176115998674672804401591541293667639427621829621512834537770823910034764059289085773651661123341089987497299967142735297725722065068907289436602981893346922158413383460736711708466169108794964579625030450877738079125070622289722632953760373276629958570805456619907391356187337846926484824241295537817692047409597674433833837041043298945259251749705595108224269300139562241696211666890837875711782294248460978159314568349133638638553664078967452151390367905649344346132065072059050993863952349221846680609119903412943677813348230019833025047736298834162052250281831147562318758391517073036162981584756323411317915354887955333979336536030084892782073567001871112653906668576596976384937284717312634733312798134075153348319727897130603163347576013136498463991673386250738998971174013456522658150854727297508730383102949602063435152292752635862610471455843367023399464792296263208167326723067642424251914680497358189029213380494192738468684823809118345700901786914499767622296696980044410911395971147942685748776106279614735059259439715172145813514095885024126206427240297098355467926072029882578168274464045601317496971400662020065975868696952063413143551737528045607675485640581952123995651005574614792331147928943127059882409679651052974704797467985412295353524735453319522423199275130996249885900158024094970345668909020252108009919336904923634066031167696391066229552242700447293038318180484648877814582028395273279981141612990891472793750984972694117707883537805555665013100043987108674784606243578871015835804569777242146870874795160978871326783278308708951334950765634608761744871656950473820897342253823298605335574593584211517188894994984679427700414683483236441179031825627097921486930389598653529419635377982236260623272064932330721177932508793840492597784976629554928262809989946508320203291140868127608091009040660131758933048660739371368932282561307977307861988616589374565589754164858348204529027284216608714148665719486806213974876592342196608499725346994667003108513704012134939021887273359495185125178629730344480878270053461865928607518991690894928073070338924636068368128804788369203492084027215482688304404876329488011278020199918582795544895401651219684831896117743103234068291497439215288886384618298238938840678618097026849350820895517634409178688647978641554175179673563567275545211218515151355564248869179591626055512885843745895518789420087505410217697344318793872715721801011737376446144770184898647041604840091233629735389769082278312708347388555515871642014981693547544007318720786365377701601075184700373906876290105583766782531748970871864165722861803615654928369578551106868672713216758655277445003493396846042403438586473475491123880834056818115656972755154125988796634766875907452450529730318944101482182709664673843620495985615417110024780619132573005381407022853007122009097679793471294999561524858644302044053255207455225226717964156331196532762414085285101344510444167145798217667288100702154047230229199377276283329613577775752722586782820900702921763539683283115931625518587327722849103341257802064084276361289215618577478158777191791162257177598666629912685677970011393529223039874402492080122020991589848369307199884950623796172338509430264627765293344017526219384227666718326199492769269257219667901110115333984117347281116505775456156974076210118490868445065110935768536835994777778797915256720386881736196669435956682753796759169029782209740524159606292793181290949883977194334780063433295752631658297424545651509876817494583891685454325931881911933690597674065716671798071528518008822894482618555989607156250251860712207432047286852183832963248019510213317207243185319102321964314863918333623289645625627138803646663564005356400733615955738377912763107057613180728800143301666495754034611826505236924224228881692132997645171642382919032363332626198639562970392093613728449962158402899476994767273348143595978192441476267044162501388012375861769886282746251654072719432708770023508161086124307455111703446193025868959616786589920860576875314588917580838924928606449441114324130823630096990194118258425607947047961291125080894585037923148503508994967291552895399587025128415907478372232638737933939896803540205853653108125058659645179595325156636205170487081841448853029237195807847479084604229184339171065543233498191239291546696916779502998424816721830805607183173731747111007136293835456210417894723837119745677827818463576273244472909499842643043179715561780774435919068175429136901984848341918440830079085144992377857492996002960740543073699222158327482394096503840027697467704448499957030154658870697255885854722894817089621012074610825924842566619282627062377079619996730277843202409634096500589419826468264549835670810508042506775818559435376118524653411260259815596557389673314968027288816581239971820221442527408650400557881374110007125948478961785343982380283827449662324823386430664166118350182572931520475992190927635397827054422654738608030911072253370234769055365653359872410629835029593523045399275968331626348926129510835934419917688232817775684960602575780965602165019126217083920957642772849478281559232096046439869619912516992727375744164700470594184750633284393956855843766484112245776219204485614241894925640935365354224140956152317470037280777357013674169215383529929412472540928271442078615387917210395049687657329487223487111691426604168754898227141557337575126686357838640218214012873712596022501793555217927387588021736444214021193240008855491591423582983451525817684655172689156884148910712425220974065227619169754919981029843155212364253368062776711228161917152024980970885603435600012171469097375711186860352987947574839372597516101879182165325917094865319605513396085434250358912637336172790746384177986615721640838165832328231890265661345251312701095478372792767409679209249112552150470495976833835752152653499042671474905382730479150218369812382227862069694437562537851153247517858013929356883608279664465367509299093377532394483491457475501905377914474699500731035975552228365230892164405262914409745451822527908122618378390630966152902634466371925147029581448003413510774931432892761476695385715099250527353044366158844563866803222107571235753102171599966550741346960186539594286474413258963007168388396328454752407911607161452090959719860551558449041801974779130312472053817611965210926272926092922562129504375939631598169407119265575466693530872046915013545763896046969419330740749070119696319200005542204806200539532985354028520182187154455199571819216736316537479471347570998778114248855278280451303357037499952069808765559469866484965598564727672345481472296716101504879119432310411650122749444847217398283292804766267282150518023217792651602993907289839909140740578104770572075759643563129838294563668264701678413525468830130338315012418788497267918989426914029463034298730411745346985739022128793327176306403925898906836875965722397726228306882645026839500467534046690414930951743529199798148207744100277487064436312522543506604666823081664519397475165613585724305569500726144937107961849530141065502672384033907500515444301418719974081370081917852909697931671949176485968353177836844010678022327554995465813929433528498098894101142245888681121316786840666021323298723319199801408352666754056974137120075766689282592878068224695189361818241732671583420658132496807049043171394908845645204478955430843360153135827023082788617828057472780176428725426549708287546776892819247100653501595850302182754015819831831431473527025348510054610950565657383443906882974969572468991601067177746072570301722786588812475083184410165113273987032445297820906915198725426479227918768818463034015172800237590994888166595833261060013879461791394090524324927793660644696757531124261339543986966473696844766849607329364431945046369637607895581198939469456487683108749048501431358934467423608476308088645776579585023461812366606098237757261066501788031463737191189133634259450364947851914103850269097980506220928569930870607010129451284381834897223649405462109590473588048797776997463432204284245340804812109781839219760960189383597106740605121745719179283159387680829543106325286065371209588186176869664310693069745756557399875400356255187635083179625783595202504072899422103389392591313347643229381716384585254249376906189929299854267255685214793956932679563026666619775875057282750824121568977419612149468244853713898756316012148912931047240855077380998706572488737561929116772877818599091706727933229416515100197611997052352818011911134897403763237285466035710680991231515076167257590724054634708406658409380121725904166394749273097679440511959367241911147343345922658789611012944503218161035812513312075207518734438626769239042825963478394675868736678802825710594614511277577952484246361623528779280681785194068646156768073512590145060226934194027621876839996711531997486807450324839188293155024941086221917483440389185008188361432065551279020940250802629346361094733918784067859685515727095248636588931972564108965069560665191419362888751174421638761573541199611663465127256850793823461930420956926572248830001169246347939806235539183767126254072002760826047094911861554517868028598278462089066041491633495006428596382507539951858691480685112338252708405928102780044429061865880035682529276713535955370218872106241800159249107661138116537938003302555881445494379830509781794056003948037742392588176807696099157960480298349884248619539579233282125626822620306563045441523777360241706794621662812336447573409625546265832282020621076534617236417756341158179447824468703109912119850603795895676326116708167008925063523397236577139248247612727929473672485420516844660796507550165048342540703266497406175692508884500341767489880014948007540488370516882674401915263916277278791942921992027910857404033956680461310960213292898710209718311253517628077667620024864152618349195091555109043026001654938535645638418271297772444896465007789921858771416308021257213094877973769796996489805392964393975796060842242660556894669208586505737921543064599777340354621128172567285329435961800653519836297134261007895291056157525311748148310422635260426440947476674056465101786309286359523945278890091230851474786521701581569028726175607229217647448505462567802189605291883626493243720207018945000661505712664951696701405081045921301394054977344634045666564741241467818643461925274782748309530500892978731559055038805660841883296046284476578343224488836938027185481051470838255412403886362078097478040112574299787361114594212340230930605491685329240810285540531941440961414813339602730650570733609623402381973493923188370289268671049875915923623738834686732554911257817412954338250731083099011900663515083894965528970496550616473851463829001034717256800962662006602580225698270096308256196081489744297146437822004735674767403445929692838532426022696211671562154734344467060152280384012252415924128129972875317572525504481769395304504844370575702922774123511810065540223576055339730607863310391374182738193972954190215470451214094778523335717730322079706837472680823651899033050277341324808407543633139670467140806828434423805548034002610123460459379035231019778070349297636940286090043032182915329032652920772078030182028156789422323755539414368249149250832638031549892067946359862087064120168287878056838813412558473882446267908293814669329961636216284909777459942911214169629189816246833404046977471418640601078533555037962545878418335119429337069813364464865295583644190045769164099636193044489790018517301431168241531934997016344799899631578389027984676449868221026139082347920206848649992757580189513689605991299024030901876423952549865526881474326961033662865871343936318553841607601559097711372071057157132115674077619696055304532181996779808273000296023923812125055252072816766744027968462177124941723505971325435763743284118993272919661648301406064570811723231414924724884797928021479185915197949026589680493797751251983517958522118661559518099114321466622113618700155134087941329450896415909636397444396850334818855830736405986302329734365900020846808133730801293638637835894209849002153640127441498081458423279983590911766872201477183543491086056352621978891305770217319642780326207173397500104469174255789294600700657479183151876625219022935833691262868373789586841836381015464327872799921546916246719378744032817544994384501694989825125494273620896146081092710859633815873670407746207712285977878664879325907251851996805718745094410261556075628586250667383263708587031596611218828134334081887731410983110541053573677005378721472172288462601030899149014519308057709491105450969817940901226328631518797006040817832583081320536179308132269440165392170993921418475111744583601603019294655228095037183996265344081108684253908443884579703286984920919212926179738987759011818802464211839875570679542562255822381789675816941707359700909077022853826845862106993818892073917380205665227090559291085782029760446738945847526314254828301600515808816854942229376317362877650982939686387228553812518247693759204348722024244832738216188978084470987343082201569965843653119291604770254671229031700131308201100333796028401438661672299570193444766960097046936632009579522299941037777911022244903959625026220133884124201668024442528528305805447140104248985019558451297811535324414822457190385234864900527835736942661475891661383268297003472898978303665437469533089201730392278544922984376064692697436515062245936806620757182346948963720063598621240350596814790307499670611129049663303246730471955612958187441341875232418841339252787101889990191588949299059701842062445901213028811357574005791767950394803618865656919783946114051110036780901215573004268739248877708782581317133526357267861155836279773123102018662433026822439472083986316070384870805359586641673581972758294878931095932096687425968438890488459310523595922021650847366234966493930919327942091005025463152163592633757568238358609811954670700613692034186830654145581619753268626100243623602471447056747315306605291073371491879763156904880543253351617543739598172976601645213134030637621849505180029998929834111942526872343327905745155039873053759553932764670380887742833216010219361666930028191471593406836244610204446101390118284426942853064131977539532614309895587396424048104542960532130593969452267777207162013521774983167983729431865374432032122763028496437032058072157111178551591945727565054101686024079151899099729023329242420829030104498493636049499791721190199364351016452980746889796288510302585518193179115847158531509063930796388406910376959232577790375212546283137396294481355845275146437285231171086305140385108238575850430773540980498942881012772044703074624821897264738593860884003598766535995456125769936771577169887350011604988127628535584965909487925679758904588755833982149765240665187156259270219140419005893856604895449477372352173260634560309556760182576665494311890705314121752026808174496491488906853429308953862410529535896820000896781189575005992651280665454320474304846603821758058538132534315725404382953991980777994037724459323584781805794063724002856599071954307612498273295410301163105355256314060955140174198554898846564654299291314566881708598941760458513647539882905685394520390252587046386168815612324685396540303836149029254248770195001284577682328299595995315048649187993621578779411479985373011841431830907055520215008188622395358904604838558781471252263549009698357306323845127923445897304803632648387461846371576942072481095147691372839746157028031395791732749387852754873543643066458582804770072643419094802383970652573546023267769893963437746026945800039547336204625322050017185448337623267761173722160540180317723160017280958657968053670309686057063281519823329618393856628911690940352265539856079074060707802579782073040123887115165660577098715383430257145595078553430210141937556096860362532120577785781978636248707312022678981253780563715736322044680043944013186018331719641065796331195419615251920286305798989866587899967331002794231232215257194886275319300902097254386232436141753022558056395220788317638392484835772979796429118013115489852888029385649240931382019574519625849974250567888685074051166300934556350339734325241152018740967426869151323908370362738329121102848806178939185152156076222963942306901548430828339566211359476976166228913042320528873089715919540970899140259823589825417351299337053004172638178876891250147016641595023539558580983502057455727150484850642740756368172408806394384253031894142829239181166861020252401001532982814722648510343527174742650637550140538568410067833628315345042465665461233505802627237907903023642728780521461506857725291817129874178283588420302200105223018788147590334527593704836303877095590630154442476567831044352153428862343775246031371016916863747969725319564039280516847043413966933358780166908991550158178110332207379811169530185576030612440408736567030543771689044906537657558421210936580139254753286441464690472434690582060789141848979763456749118094911980790286512052825093365672733434467231601625337565304300079461523237033908308627120818587967253339365912538319341938858122529704034640044403128612492766482671356169540538496290837850203868427653897779683731299120227272158854581657801536946053767367161229260435211912353819623359002828269926360664876199298633179212021756921743449005314674222834951134042022646354954079069556080117496486673046032894772625820864587804635698743174781203795920455990741458609757468551712844540046046695800989741157202353589872396147805572149569441049822597839447680654436880853599204843044111791942921845808461797253083743371263838356003957993649602521272132010622662196198082885609013700531911574577756797440098608295142629420189230119565103127394530065553967323618896032302819342654795004185975033254549053211714096125825436564254014369671004382864736255516801392057761201729499667294826242633805786276138449870243578049910837151582171182718494382586292016761000660116073221122001814089266263639811364747837283697942882952028040619225592975962708493899952796049466341966828289357525788265434771041198740310913700085112377377614504742787762350402396311858220828294292274953080424068729575567682862213135467406687375407321141753826578839890313035571904716276379528221534868681103783453832766192736523067186589737553594541969047930751753425222594253787833076060316806890571520628787397679516651862205708387354914102231487346486359052990018002160196216597495393357646961427242073370832662912706814191158459919500655687419692591548651043024100487156504629633890872474234979584439578790164013317824455272453522558476099275652445411241031155207604462958047582294443537114806768334498129004471814502679054307355047995603567112818171756415057903743642667766472333985801209315024439227802144252283014370110111209998862291818145103508824968741694726740227414205534225301482752570108961818983359112499544641819082017480848933376108652729481725148601720299752421736557281785677807668781161067106286372108359436255773640325332071323371264390357851106020542596543259715995400685160406196087058868552710543110028624024319813374064455086469215943948090555474302729848202553235171974400434355001844744494149765813109947724355081948081012782664223284068123615954707396303666164907116405228285909283501741193140615770094814174665175404331401660592899949218560262517244224577924603378754182042442481317686764146262274146842215267909363223891849154062968960246823795475859280231058309578812877787887384963275043233406459263027084262939778276052925613000547429727845243736794438838082127226740572588969608328633455671701320148123500672336129154339303432378106288026560484450743502782001420560555047617447900322872262479699633738135669435102551582510413773215084816883344980830867879131024875136795506082140014847855836161342145125046504031670039342030752106148567471264665054100041260879907146052087852427155898754394142026771674315234420434389122776299728640563658768475215953107612466194435269130366991974237852331108941981196933523926038141983407695551251936325313864800677850868605712480195063064367930911452748795351055861150155667357284378063879135235740833144866940225982369997770679325530316878854673410058837409667588720418651751250105029232760924480631205289909399154526743786722751816559502074556184460239678745514317404580521597537580696602453514564976328144494194602219569361957934385200711549039861715409753404591590542452091978829037321321424676713447808053667639047613999700139052039842083288042817362325756348726568308491581914613369930520093560518663567984520199659834046583438653909429495688056721702368655084921951934160783221469627544005062611771680805785700693298291039686701410585719556763539666127807063250276763226311702868234215630464959549426675093825511645208007066244507052980587518306399573899809047960499114896938938233900009425950079956462889577925144912977192496855569188460386856826081189702149523938759963879788605347626929335666696370298425209844153185714846266295688870327502298827019763704119005254084923322173512948519465789871629577109062021964323418751057397465513437682301548463275439294654945128801311710650858581550710066079092904416722095252239769086683371978976000254140599924243779342746258712281076442067927959839470602752372583057680776543136302226334423868711462670712929834574578173252543258082984664352044361660629345657080455472750009117859903317957592022651005338847199786453425656642930928283997701516056404756096545182862941190255744151289901495815493287300352678854513309776459012949310736423901334325833996853706899143041888121923361102964864092625048797496901155934550347916905286869326127289442340793179333325238116770040685871563334827606348854672354882876550812229757468492995585457541022056316321328223083849783491715764394217464148999208489678492467183474488367397492394284315457105969866970117554318465773807010571375136830006027124595288621823810193154542236983964627153962839155065751210062116180598295504173501758508645443515727244585495171192415850306016127412498236373372294206263982861826484896707120248062103259285621932524483504348319102962681486228390106648821406796324815146992372908392674969027406651308510067976752666223773978866863711496607259053010816548810526001795042389552847466393117151274770055371954471542165560552092009618200226577238553798414122151346569437688000501698043764846191962365572519558708149198975132797015147499668272703222342643545419050042697802298128946103634898487512864763986650946050228279050534589437117104932416400642989813200076539495277374878942858229094035915467603618242323769565179683230479828757413545266161996002869402925389851811168174409168727784639035950347511922458919532834667168543792354241999878087941635376240139665061506517811265737974811010333938053201673422815025852462108860422928403068747802138987057518484216766311517701739688034238127318494076662549325776958359352121448353917214115263340400013042560342998045355095348233749516183067851029929294006265601378360120767198879156272981968532728668167415216478860546315560737830156480006303390952479415693270132842060044802446689505396428626046814887101457155270181228709854918746588669145188722791802835073062894593112080059114215734146065434498840121607086270153102429385102157641181486728588977900672999442164496249790170546242064419577339703685416353757019905367457965683865364570677173387302256439882298351458224572583340731798774191862005911483748029562328238198935002807383117363256605572417050850651511202502919495010306119215212884367592896158097728858067650831085906734020894764445661098266424436425866298354544653159395709785443838085919614949145489072963518648144600946478563043536372986374113427341755167756039348231241568133571322726966486620655859440271556240498352384068769707930245262406040101628077206381201539198934449558411859279519723047573187239418886786035232674054513051511819493848593899649754051222439129399284395728146446135113764648440519179094970630866774072196848055528506649779103245296212069399513915278318754318142197621992057707018662483793396064058807618062201546562944319001539938767662149507884046470009076844516704078733569856538554897552365962550292505805566306618786515773112129651627337608364726444239935673825322782391771900462868337472325288989862421439694186465745797407247489361145483849787943458986833002420174608120604768211429803728477274412298447807204321992373988128060104146565568695739581992258658657993571742481523448504424295249991460486204980596558977447804315349606482609600937070726185371096820706804416298542034917610775374580687083720750594018863692326577703076680818747233787835324351717072272547797718946875619418140727056128966036584879135292930855386589414980232879333733340020935696595564580027158009102804541981317796758116324143249690110121890875202747674295609875749471327882823769312192871163332512732194432856213153111995883073459070751119616761888983966250003736600723505212858696331707454618473104860194373612594902526032370377314658610983511717170906140024168446031551312858227525118345959291247776403450508612706261035030855128909219167041112944320527179789074468260756692750216649698573851563274086197580750848141058819078216490784213589832773295370275739889363695334173552023333174432823461897623556268710739452292953746672882120473399603067837269120674068241779029130208013585731483072181994537630894975009039145362244019279341586983734837593876062907611963316544184586669798275684938784274551879525164933155895563814184566505754668620137013861619698448621742958512571810169821464734173540763884833724672315821796106650994787919705067814320179323347674774642345649085638262000069845195566308208973857248658736852801071817954174395746863930787270338164175404676162698591024224201500792360798696899284936805882810710489385830197464625094897802417095047812901006850969446592723552594747656155770182830899300256664695313210143006489586097659552410484678518576983517019236431270985177693788713558162024556678439651578024992250959720362985916725469602749732884068983731582760347571857036452774160623660379510234539538572101760546795204019269059611106188180583063718102697476036761414968873868609850849841715813371523601819784505514959598536177878101019125479441664265272954670652409428383408993566555929471283845030652456498524560111216180442360889592965247344741414070913223704415167177186900379062601217694066845980191047206557368827693179784177073341430051247574069506301069868024558911305174899661987574987731656800157711379437908724165535283640506342460881070881926692399481637695560850706950952703653425479989346340166994332862903944248440064614919127397363700508335280419985499804283400565025274649727180548159761100634934514362860004497527376250970685705517627703078430465573118914532743944439790526915736442192792193203283424468173287041536360914626777727938620057598826924361958586291641101383749908643160450302819645227412591652808269993055935605068812680550240317507720271226383408562388273559312649882772044921716202940949241628391535460795414177231646650590459513657774408906949806297806473280326812248311707470069509249437329373746494041421231798397269819679947586357786804213007347585667229403648334163925217594465058613169317883755712384736489430750724199389123440369162016431604563000588706852371607272803588032585317288604389262788518442474899804233716428211189728508716847231359694035957189794480661806665350508710757621395522183099524998537241556804633060402210475102089906987501996566202433572669871643183816381486394694243344684491433173903798060993948710546664477277186216707940350046157779477247403328369476878027326125844429377567226779982698183713971715072303536749554757140759544222446605717225291416039751124033461961006599023582289055743460201864017229394983379129504295516772061362698446668888957334200916317413157675268778487014907208804563884639051786351388704505209225982184526721707767420377267435042992398663278186648654764745156041795515022379254376781054409260588964315146715278060951651013590073039815150181338221019031917896734899649164914833430186479871344205389612336551028776050602479363636157255932512897082809416452838325771693926825214817739721776468464284004296073543558816615986156828062666365447713865974362212385191764163010832152468499970450528377420200911601703533252629191987967728817275926254166613719396654164456819627642803831983111931191523974391207362252897939186637190529317694591774576422761485118604369587884784788248694773161978054534546751773610856693279208269244779441726695904912147978469312283116691073734901315538533335618363907983003481345902783384760837708448396774933031177922207318075066040570040696153615308557589875264692805040293488791274983540300746740365178772668271597624264480261700551993497036739273512718294712514008268786768288534158251769927857812097879407202848169054627439851673466150482871027217376624661394432564484100377805395671018856450251683169479153183087543827798771423440242906499792447767668490252659991158611594535297689131604894899352798470319115404159960156821426227491352782974304714421764264107582137849383692892616798977736864132545965851525295446500169206304734953423184388212649684250868166637058290701442369980020934020093579465505417645538275115905682417082267459247269591510277711464042369939161140193719347152890423464675802556016869759163033714689348920622595125839618500399552936191730359698999559004700727027646407673451394246983045637148897120101290855691867291410855440545119015182460637700257271436188325873343850025754070342166205363855520422039200824042504299036725214628197036768596155432966238934367987078259157017340428201549219209274614455325378543724650230119695120272564797435623313887490378640411178637678236868957572183960246883998700884436278895889276634542538925413264599491492942350190673098370463492052819996515530007656412577540199177671172178167171659296889652388501216900681452332343261647608976605030260053224624226756655837416432878439288436906154038135320389448799127652260361055718101309645165173440845150619336644258515371642327944315362467310192892237694974621759873793915188989879073471980569942199235752589412827195060469697054003537395981592998878855764969127079055603903281197182727461283420811043162563525391802300423729503981584127508130768654738453699349469866751468358531695609034050743812004484353280975930328103343731420597237409100862471687029966923668620646670326710710948673411543903068728609148386378432815491878666070914661346426409397978543038428602139653193340924990561458269177041073796990992543221027988872113697590835490407214312302571546907222004739824479192187020378455178681122238919126961399304585635589060257322649083963447913840156382743607412543382729856418746474277446427813808045087425856113583516703781423788792526470983643219557993099367799486228085023287756049148801690906455395573820628398640476914058447983542845659745511222845400556994381944900579963142509443263863559168853561320732569499841601380397447643691968688270000963884947679847402828685044724371938539811810542465131839461308862144452779263038011746551132681249038891031547770985427033406416145609796353220228122786539044686557176812554852705831469291836099923307632249857845057698665353623773802083837809778785577438217791586324650701861811358689307410887961891428156926546648976395648089154952393040397684989984016564322012286369176727476208542418405830612547526962185364124041802284745739970509288154149563428087578566045110779676759008215087943975898907876323819860924734718209545984505269870925653981464513060818877192605020574292400167498713360450135911827059764945003607691562398565380456612546378302359732440636386987581434483166994989079987690861790294528794332188160401255645171897221170420999497724876713187365017696644683134304813222850537460720511959412776772309268161287035446090238737554530986671449706888559220286657135289136386950384524113365401433408091543574345992988593587387512193708143083638084489985354894480063156464402965625264462507854379002433368585357443439816193420143341482762858460784131627509330745349783402949815440966030330165147271878635922765138286495449263648666072848159187232427103273588683666125464221668442251106403056134560434392824601526039345985999426545865841010157147859009005209115007174344486530531107473506572171152902161405174727767248088590953928256002603810624140878276263581904484288872901873731909652993899405461723137330746114317067602129901082792164165131987259227654040040008262151110373648820890227119605386689811446367201142408027304630113727359671909110527175899467419856600844382081290073149260162307323300519859617807444511961352068714600025455349663565139137034498925651647954326257962252879602275513259405236736197987153944804470075745838647676228777731207873818779158177738991823917961047352751349922249368660683720954922622535898219676662209334102443607254611902472387105895557194202201967225560252423423714564361359770744657188223787883150998666079040434707299584789019561573562161235202847088330759345777969072750889272893448973302772045122675593224014239183062171759155339925837671660002310473669520986443654926798582725701972170876615615243364494078618648736668034955736488099089888260073041018876830466731754727536925754985661602973118394071644769629159114023212547527520458161729425434367138692881809413778260798775467667240890400709797754660960399436462891214425008149637855974898882172978127217291860773405244651242780373610246507875637963138966282691754816422234487468154307997859798531827298143898773278548619670139819985814119725527869217880689654056148026425322641167146957951726057827300691283767388555245859391971889448635149774106638918104121810084287634838575668878341477713815986882203496297877145955783679048882098127457961880147539981156508173147994337914077888687723497383432114759227864775270157542602647656607286558459700346090999292033793318392823846928835737834259986903100625840657489029401833700193559983416803590976843019873236011813383062722624254858680764507485820618473028713062922115033575994353081678647480984241709147347861997146820685987086438390680075799790129640562944478349038405211110103202975972834327500302365909514767100297663297116346361060457427790979031315567659014269361634285536854522946427910360961668963816742634525336384321270136003886676882949185447680325647952238824600889568225157752417996722317355283189032751784864553607409988552422301047418509578251713212417607596922747320258461040961268687455911356980239755108387399073112775959390812623863082770021596693492614720510259218075889896830207483168860660056877730539662488367668522884777517966530386189397045126667784269282725552721292095470256612678193034272660458242781368407167602596580779646116958888876233583521907424945800418758975131553028300902285418006999443474647338096141724260872716476127552927453582939639059410124094586783020501476935891487484137429562641187300390725585074479624125287158239978993704695593280520112566519593668023175248933722791958178276505845279596140510132112622816102390444521803746637173618404480147576744584718150310984070966876410592583983716032476805842450918358143428218167865420140019988031144407532717013069712541605247748106827849231701376264414447840349689847934900996438932592618350371797893585244348544811455863553073504383604497275197191552078745959916053273644931269024598313745627234175707699443224172904497367898611989675934449374342732824160111261224851210601065464528634261836447200233901616229266952963690861669985904340442229094601649030183170756467960551000361132633386572792424610727232893772614821849100889252222120170091799490815815910289907108793784886762801107307711147905720938600138738514159677357823221088286413105787394911684824453413178948078991726134984990797834828466125788176854664929032957984746661318260530041318843017060337783325777102000365745291750227127311146800700135204935962586117085481898001462410847302179866111875245068785609103677590101679206612001808261097113977717795409697182106905401851030135416344068948142380208175351450587296170293042076048283481558221175018818115969518984214232089706607719682135250552674415158389990418146772358545263435437321290321891891960319018304307350520435179560151541126119378417241878532337006912807975677426455535947658578026639787684520869681337034495725507976129600907932148874435851587947956319216588729391603274849742082698046930113331102912587831026804168309908133917167474003228671944689649072050184097956543667385993326938563245082893581680225641714002568451325839270444517618686501313400422682318309344493961669483822729964763993996042370899841681432845074191098001857053061718852352831916860556719852639223576014245269542707669754964526285765885019319507291969471337313023311889564048375289878377120262838052488936373887581630871127346009207830992515261720877661199316308265428175701915073552612764249312512233083363564974258902647418105660848565368703436214650665987122903855159423768177480764870312413356147327762108888962815290167817982796269208323890015507719841833950697268113967439924343150098326874894771820831295539673664333813277962635458180692930980588301697891930519809016833856990887220415984274682557344981572432819700883843134874638908891517504542731648209161393789553146998306825623771398048690706561838745863027529057554419608144398900568672539598604968534712845467861524508275136010998133879409144835034944172678780665277485356468618608827722128842486673510227048777543626283730466166696689060930875298494774412811033816241577800895897801381258421115915332068932698675369041298560103389632728397728410997617046513812262758579175607786022139060110421191990189234155707232414948113137532831281126516492883399926918013596711551417482465426770275248100779336804003086742327166395079009255842770766886763493731067349801995978636566569909120285009529252209091773058133686291781448257040170078255233375675807782398545729875000858620921947681366069438416460797521000040364884854930904765452612873033188653893721072365816100081500699243685641192998209219411307411200974844237169970922389646104216186725344673807687802052597368141873915005114598902438810861446802276151587201944293278105772082608151830291653493426681381697219029781875469316722762447136410716758048032729286559349845721096750485118720967678898686563270343359489037192982353543475149249540353017415040351517584269081567026443754759430277446603606137434449971258404786235932956976698132167516217354623627875285922093043170139771630552508847159688255108718136404419851253876211722381515077784680516442125830748610693243886498048208012406929643866690176070844444038022641028383571892823585505893692695375957873610202068632219611922155666156659432844336715945563941875129587781053711425965748336418070608917156749368524750994486136171421234563237921270166195779268292003225344453048550107247103142410136218972697229187822708473702293254368046593119184075412590348579000358739958939804767774095150470119215206502746839024465953685402860147664570523916084903064071812916626769290021787987888138836237944429720414605920965523815832675089271094598893396448845313497103712964672019383165835392780048488353781165072819812909119322153451474221655715950794748117465777360170090434282865767587286940412367729751574012357197042053721261759906937712826711265229185670133682273927731874827917903610695075146128763123237462442125267903523803523810204629076431508898848376911280801583877126744947456280733491242117306148205033520099658004123319520165669456038955271389445113044649122955539098347348120560260794092315898075478132075453761269150624528874575954042998947201990569608755760157744974709546804417073421746241161187191938545162959994025937451181766356683498172664411922053310970050039075562089408786766742696381470071225807923088661559437839917072448886599035483432407796698415042786170003873314337017661453948283017307911765845925052408789188060272606016069155841212890921606081196415296780913910185876747821473185541638839285113394088558229888911262945268086228575340883316263493376686523294688591586318171273646042538744823331164593929204330960957896506495993419494060810617162145352093063720803447446198474420895285928426448073788442674495607811094038080134409443360384830909554798259317525958885705453280920718448880765070499755020403028232069335454160444695231863201989022995901572579721140247266186134820547772897344967614387596315484840601174513647800505844903031997086530461210642046746020839508538629796794978728254690797482004633189098406991843423659905743236614777997573888488372396549249400345299437286298039503136314720095788706875480699787891843604067114695111710878710695412922775951143983792360534458125524370964767030689850201698006622416744247169133241403675555787353714157752846720851371990056695282466760571931867787394265469625154979114935136719634318492815234924274899625405466900162074773286013407436667108107687122672947746941329515070113288365642699301827916956833674276309802766134340260019199549633434173889842958438935272364495782933612927539374032270090792844203008218594957764329984219091472621418095463911819278886680812752503987088920763722977878357378178177362759120889569755106213354398852464084726215620323905396209297293852972823482361253154645823701716291891709189104471588780076276171445792561815072879731727609840644152184167126876299533171118613086132786152387420853873631098660295366569781076380356559336937137329023061766428067508200572480793162416240789067831274794467534627493948678526211460115691422925042535967518904325948732735236515280900913325269612406551808636807052301928792211428872772612757015168314040327655454672994379134289478979392119318435545747809619675937186185597508466283389800157355990667403876707682356970952575331993610137907326274838122336662542172166212033093073371936771576387565272806154115900861214628083485034264166459074009431055040150384262256448183464932303091715605911614350690222701293487858097286795173251181383994934624407978360170981428349822589703808204321557298910674244703536866488741563221283244939836302491380014454054763380360067790007855130650571311384503149894339107484428343348062560022768643106101960666109311576312560403238910305930003597318664819584570965270094699319862842599089271063261629655324835820726844763447576342973720386096296040596339532877207266651102587010526754349686731750868550585821573610011318107395056603729666600832817194497836402018139665742289761674751993987248462915589325545863428483977237725177551904147190052954582396299356055116160621312905370703960584488979642959641580697052857958208111433592128002582357928999315075232224025929091250657733399701796183962069470744574284810875838425332733812646857513175827160233273526196392390366494028115392823137845516755321087841366164663900165323358620956978737842403406294979879243512620495621329022181805052100988686884905742708569923407959500252770400473324312756706318890588390207420361655433852937263857287946077008490731554671344717594346316399892120597899699499183320040509441168535299758523026539267166717289428444180613744917255953856257788320728125714343665035026715771679886851908863680734250233759407421996336106409342466076472376636785361466034366341965884828740983044427237695553760864395896067098682637850047042718195622383294226202433265323138505402045490280251183814814200683460365994254701328419705567530608334805475481367848507303999351069884201049132938051844989022707805320542525125900771895306289594730106083600162098447339898827995417849906178539393149998083892674769065862873846481224865311665499256833402613943614271825483893984900180830747083822744343205038572478633926178553767423992765075039359384846638579519636238581351977978498773448648498893898162828912030603056191663842096115522121011545710233303590911281151608110576346067750333752919486671539146137931530993569501960483880637403430310581109174668628525906399393721944697856083683174721094655995927747881028968990352710630118701058999005171866422601480948452452699927804295492402142429485051303798542257705408683957801740941181068103555518233923401119081997974442751075069555093774229830086888827387027475475283232174726599029507101557572500496065021626825961694796575748634457472977035743696358807072572306611944407518064131832968939406663698165662514507320239963886401378453359888462517805429114458168047370263271684446231747807698265716338495741073793676855442473402237714385773850134486278123271376738842378102940109606748665100967775877713360119336969994278014319627367772780421825556933153890118952136923417776606142161900804180241751510470603223634596933008698805877440643494150348289089985843805839041717137030660632603886457538541168576582827960626281125251989134413657527144596742638381621905280644717405998726029465081643731402680918121673285314436402925701708075630571070533446099327429218590645923086857730681925493473962629787040655980015105277640425187359413395702676466676984464942483820796530766620181205415160936362805574870108132485277546558446721121199441378867909256530967521379810094367740440316208237593900965028039978088329263718676261877125388948997638043457902985714855906847193206541708121002491370695971277292215690034937816006862027255285058272272103988577373496170294700975839604227721976198471490565218259317189571205429769633979559932602145362966204522598333802405149749883240100487993777054305121365344795035805989215936055142011090931565937589870690667816632502060774812613847940630433093246149344600743496026252841092681003103884956546284851192445002198521063226826511348851997653146114482261735353132112166280763088643165397486848794640696602737780975595855067955381883444025256149018252129620835372234610971679215486134565273544012572261857149682416191181017492851910897071792681880987220048763239122782013468175304307749512076432894415509405352095078411586008912434091122174577818040585106293880372999101446113681770614716804871129121568930871548541590704716305446088093523497599302785773796660192011171990313489088611861727597635851112331498182344632984766810219698792918124755187562252375378552831666807204091622548651737187873592554807852524935110095505062707196740053205656543348514957974156988322447785486937354841906876200223339464057966287018943063063015354157856056901936543309153197005057085559217514837612466128013401767081281138618626229303992812328652774345769819892308401841113844438414453649473016693658300223009160236526915283802889693188681887364476080591605810094798397600404973942945453902570029547015182125463928448540208734570610003153500275953235462475991940116217145080601953674069389071445120808269892625094201006970785872935415777176475800567952085365351325206071826352884951478200189531625180063358161015139932602567737761668151609094278344724686138159464230325769345738403429070600488975744503721042043135737160199264253659518548262426873984975799263986641628222348090582942526842865927541400959034938722627989841385188976127368410877042972189074016509312512083230278545400925339933824896284064127143643449116977330029956502272435658339585045778349048707154799290840579175449354647165722977103036359196074137947555956914967408307075799411856523999050998700103391307903780176727006835275484398317514794631359244847436607318068983936595356288319781087823386048844115729130002344428128393614410521602760980642664825956973924751322364016598716214127181969931705114743600814630260482552431145166763402867421228722191751121685824075904977133543497491789228150481683791766335957851603259501105220786779553479334674293550877760745222006925748960434711673611382378729984289369230478084434157606176777974460040426344974652485027567205276083596158781052781303974320660440400075185179996717540886115164815632262336941592879845313719896847634774149320724705787605485388660664463370868067804187879795409800088043148213931722304178199050619577896489431025500386712211551690925328274508275420883864717253605189694004383611012860611213736520915023987863926239568830008233067768647592454479439513722805277824054255118056458768152279520585755773282549204453268974094518225422903592116835162548173300189237384749858017449577165769959937729070438297615061548983521778135487188581112526342884095385222805024571558516385049366960763667922320919718731263901800879050344648746607679569548727003555856988442531440662744226734229294987651240560781474836601941467458866860358093963611363134716622006875473783625997391662534699751714736356201033777789699734634469897210469198630720232229271907117552556587106641171405970372640673100141096180067364251467526777692456339060519683490520860450218407156898163579407916638588402381075208063945817668196617711156607502063010768717287812680621548281852586566071193529516947992970643458722781099216996635397101547389749751600055091456942242927230879460195138290217770633814264942351298470492828347883973350444995749071798134085679514656062342160008176247959422638187189532453249123334387491622161892841772356364152586057367034000632642425632927371749699860666206647669655997767565951922894065604287741569557440273173401152272831789201907723166794244188962252862932048210667608901536112009035461223517803622590972023422728728765541428981794669144327579404045589064944202301869686906957182839384587471783265566041382806631185219510062918319273564493656059949564914127298946602320944930013929026542764308422880537181134682484444074640041686690651314950997541333228982347004682133226330332156424266123221099078792251438256118299312251843289936940855406868915136874721060649344433689854687517003592461454286848163380537247694469685863050312641553899877849712812222471886104420317317951686854107489960884987487906935429941616263603605161387475232651483971016433973677063384371106491995861056026393269073998977435510002151079922259704140500994123118879062983628222766186316815801224484116227200139978512175167041304437420747006503428200538505337278785143952746207743604212853475600097277826146506157969710145586386081267127043835692912374043149808978217166340610460390811421724215946147246397625329774683759416929221415408096804753211010957634904959352236120970289355097576182302208884830264407129216478172816384453152076776746243938692059711639196055755948789778833416062952463948963739193848563597954428793754864722731215906583031051644575525807693899433121814842726161572518979405300488909423668898698895726322859686984755272875151243833247531127344035522980371051259794948244442567104131784963929432028265998969536284617034110578479462027683377664602451156133123390629857411577178117629170508381017510547382750378028235475855103224956375580854293294742341984182223903180602299924968531552621230432468407935530406730958581987733256829608689609701264937568599865498050845423503317240609403568168958719982098170597630608594154065167155862238136061591953811824031211752350676083880092351249155650304805935340164415083340795796497697135320612185591340685555198392888699283953620757519630794443780526049776366433755617940348233985485679486854583006350500460761767770807238387486076084977264450788296551534706293835092545387004940213623004139619007442439163663941090581224129007208054600264222280277080241545646150388793414004491357926943636003819350759199829379588786573516975898467039177861879214648646725537329336265034857033218648917790635776342592159586375006811598928918595949651124787558074236394178852425155193041563742773750453364116540032048063477520246499713859728539708914132997408932848568438143693403537302026164125945822300186986441197858894085174974305873475146107473755656192157739848744670552060208371928909042123426906288080844471768263430448716432624726986761843449399158044637272561645046827873486011671001353241732337190701302986288325180643731284792885127813518983157596379071821799445219234349373183991865323277665610657296884204736521189058981724256720781069339743843310010996853013211679602656801770095805506069497927732900876876101957869340845328268794691623203693611421801362141206173000644254890157150086828851364379660147307476550050592321960682625592113116804581164921912751910034171639532888957933194079399704857781270423151295427924920738144806322229899418876731159518817344491391040832949702744889772259220971777061139651095440221834279708841838908675105434805576742358769174775187675665282858879921008308762579908498492222876836462074635670757616859368773178147404020889301732617375934738278597364005366113338029495869546975525171704836409621489730068820665787123152114777458889385081505687128801909284007326299299511667427557922151811538250306715569121781905362306674665910248252724274640806816235427989170306986157304627515502014731003556455194439818315328509699674482798708447573854604115590938858110495664966407901861466561621862960435813382435486971090021613551838283724921666629201135168273899095984264920579552876928795751317899205918704253526994891347915364864602550010329083463771203670025223265615950309462039750682979156449780453118525534706322570247148671181447937895998067031283117661431821079447274637667037998164680575878758358390423660800844208173967249964562462867152227548224156504859460173098906452643923119269131011610175217129330262907607653610469749886455750878833754889644729289260830406920456490284995457227062164656000498966241880654039856560129809391649512159857060956650058691474242085159501577185047261472527637979702365992127523577706906176350998979424073366290986082094587823904468917470046973674785321181167789065798385521424307373188111009367655914790143048855570220767183399309861405873013428401445308782843022213553739153795409105803211112738494864955008396681027431989157016331837591905725963189676350790870054265773767449293504478821672115395495232558187411862473454009636906943570762019978986930195789617437686640781148232829225990627366782440151676798608832439303722446970509703967619778821413172151892038045207362438530062739442332905802597724261171663832172534504726120636603868198540332422215087373235305614396828478640700489243731579630312446006495235877312054484623935810856140945373096807239623451001354628932236283222954423865780549751425311184010759200571699755227608237307466391417745630257460020285939659843123841489891471802400768203544848800830473799991185756388928011077474142783850702230129405386748126359849189849589335889379655208398299318227474272132109205455014600576810197773993288291253076785300325086167810220983758413191585455486535041056984055887861977559335060035689052553311883231663625606491461309604056220594055150714183545888700202259041696983407203366101637650785147563722274751111322089666137617770327462312295311263060675987023374776709323472133013812640286052060682386131205242054521612271364592406791389058281532639194538933285310840326492890430552742176736110329676688283515087563474191910183644570731066055223569248752186708384681526844993565724664478222796837902646121572934525062730888123438173957079433228957599483329949644323701018313878838408022336718888696347996361724685175743248718238955361547941783993658859804720281037995149042110527666495199683155308052336929539416845341172305193451091550485852830923824257489532465309939711387139622818322646291384757104661021867460179421416123297493176607725581808208829914549636746544256564493590260822539310793106615885569417530188065871662929635617884000904418369076497585155636825950750259139061558318473555919194368213214635762867740265885542772935684291809918182422176965653040244886758278382703206405877007359688060360329087445565470967318887534109738898357959792777451372933063102516191215893971552889814946287357826583927540189945901643803665573306284566354734078262994421744122424667304966002318323647145466706901376684350838628353056858740893342474026831373540178127279896398207411844981024699951825553890786594111977269745797913686712438497111300732985413645410933384451937756653755330245020678454590113132795475412105336421716830668441576800395776527782418519679483458550002708293735784452100365189842379212016173327625128170242505620105728430447006780057687021236710833946209056159376219739761370719495573312305628995857259927283591567835615965926330192337527316091768387985208904171673580616290033413391842701376356538522655398323812882128725264166122593584223208154242879093561208865444369279070545064008099984400084240677930309645694981891437930494151137310671579012092350073378563612318346487687496008648940602105868403415102920469386819495265850467038626629987940391775074217096413160690809612146609210252887823159692770055924008374346927857461506495831462811787746866780946528997156129077206886954246722630908587109113526485834773464351134558038457194573561436786705469979556466296501656794543752467038560263233140599819027833548825142247266428205111110337245622923670066069583912485607335037768436416829608362637494855683253734027356662458572847066099229078590134346362477792940462102576587536524136673812740008375176265774197999101446213929804487101229863838316677112099257697650822659433988912800875135126768087410610476404318675341853389697352059346328227120571407274620657823280946656521858950638080412970787564003968701908973946012914467792637616276512945017802883491463527652267335196334785903646103016561234828205787351032973794603354512888889942759333078675175575392201700010649942430525968050493130897363019236994178828741742933003057669273891613139144198839518116667284870475447389770090135797884695904177252818649093998134192741813858077383560641610533778030299247911823531111305992327574032096564693128461719252920825779931170959218364309645201701789950895399328746048736429650984746166826408591664723356043326486138666565306882622009057219310475953420099136902008320154695134794285548980148646002931759332421131765040196314483833795971844282371872405777498807377036946866438576713348559025929065795873644159160049787237452218487314681312663322555270383019246906973458947730689877423433307278659286539311186454099872653334115242259360644015877149740273418134761527729455048788535042935904268737941946274701184862642167403122424076795072237972953494384044472662787211233138830389356827308017321237182909174555669749062282095472429019753184419856842420992244186578339652620058327468020211096463749736636080534664569134334424503515281023335914511281351579934749940847651757417577936024638820384313003599281772328762723408465118288822908243199611870744336176133194226317742429915333573896299827913116282089055559618694404381756378614925861962332120478397034530201865809055618784174849855659927628393622920267253240340196223804783380690331882682671431346526632698756516274095099616129740939798085054476433739432275251330336279434111307939806195829055909349833977012415334752746300244473507043726922453579977171488846333548991409786858518845318227512059406391081311768771629871044243390573161801277254991732711758243377035823104461548806357289085978987584871425755539851128374385928165004448415491482663526322909774740659931473192788891040031841576094527214087622243875732658610562779206184109219213057009633586570494808921433989441679023682352148641431922444416042525387673881262469290637173682257474993247434321583343157525945385711406689751615892521204443211051876515820544880370858232004016035844537322213428882597290288821799273117043020170666236636267236666905930545466447531818022168035499009166064759369453940719250805659798819524187186675978489219414843772640837038458107367006528844729515287894575750996509452118064069497007290982892363873966262511899566018551308744737726825333214493933532672515956446021674772828880882072191158916926196748503457262162771731911078872969223723864954141211607797604534074771569482976571440919467402813163694744183962637934701351509674769938432284289160873709360828550636570693229982161521753789206290958458557670146386726469440042059438164348208689246398348653617235303661110684298600399082973891852936302836741945182299618881811996315064408461200158854306060859543271450278773086432220499048617340137501953933390929073390729649098798536765505206627911897049214197916293761715744189519051986851167847697936825836548082167455663207574259928365573189550841636925816496620678190960572357929163474052253681219183284013476448035076754153705030475752873555924244077830283927477273577549991252045782478966902446359583851129683221631857539795383797598298280701604564528925751683661919113988044856705340239691211472076284670481639416012141120147944475484525188234284386648316279852952311097266278156771725523879230067093441016976752246901003605046898719693888348969236143616653708117006153650938647456367884905737066332251181403853853671692600133533668627027749649916065585235582198744851380898642884726921568192068384795077957553621646338042817267260767502362241550735393735541788732114013358488796373428845202906439388747411356756397213414794321829073970624945605063296368878111995182455130593536375358990988463083955597857112587398826356582596427096440687596673358335250561410396137020862204516857834180775052971162827168703944099644869825964684157768663082230913803186766857678196156933354588670762733160281744554515840981473215384270602755729959128337734598059003938404764035944627639541338905324783692374456328507465974990977653656375038202729239813582813998671653039660701173108227819803213113981340707139566830217447964048932456637847715224495909502978777526571407183047698792375968104837954471822366898737433407426400000847356152260713209976676229975540274373796679469258697324804353220731393990808856165107879767966000304642848200493880398020158533141912636400521244962265533162411280418462287579921839610888624256290780240317212065199603926494567756806822446328099556541461683962953602775745277666761924730368106909372015171894947346149913189687751728263465628026164333636080285157389559547932111854326980210539744933180195072377075611297037278535728686480573567899785992018424952280992819259499784307290355141938519365910074449460384914292435208673787184095025616803869622303634053171031158710243289762121742327381357051188805628053272858048672053265106107118086389382278609536528559107413668285938388644618640951269493735556733183136343481120024433638209693573925127569795673624920267024417234100530907711534104144252674002358245345179820469592913802074571298649751076034204250096808702570664535791366923706731803000858257721226998218502130929129177787390702129503294547184807695112723298307514924552950099791431721317636063619183336727621356463069211217414249127109126666197895533771523317783657880976506447233951660186633414245678299132910304648964362681838977260242817401136793665212709964427617926033212504265039903387192290140112880108541759972462586874089488824230556202319634688352206708181137094236409570350319186981568223154461668933234137849022886408628509835278588127618577553773563178176519830488126972893475480992212593428899450444152056476752789525119817344127291527812367481893101357837840894532086804051816639763224759845550395744543143213534884958829715882919375787087339731775733676303069123949221261282636716318704050356664899611242968562126422316526695250436965532334295932338358830257503465561486845916446697115933309236549909674329812804037374138548824028520410986864359733861442188162342956675234756626081669160136853714462249016518481490265414590393920550533482621408495439501982681222340987457919398085986002846733812843288338686853367303480811212499334222413559958979156860832938717261137559014032341970142896853383187903461836571226411315355536946696502544213701231622535739376899721790124501995447410805775504255991356884947532639443700316167301056538850859033964782976668838323673962501821404170339748514942573425483054257117448719765122338553997905501288464347824317501003264494734307369037143736817461253467095117747611752076492565409653220125815143343154196024568336231938508031788184255834003879667509112355288782039744477526191870982961811700863738220561066657288314645515853750602201855909982283929545874551182396676079024199937506270205572326586251644552214455274016592083657851183728923954311209579683852283939709146326235375317469027866997189118196720022033442597790629253804796673754915640448630753900034620204560165171263707317803510014127510853255269566507500809950366851529054279360307103813117739766094220604373455285214431979849017151563710468769374050309153664310197318329528477356364599570214783039411705982441415830561652922793316361943556058841309528062521203276345653495833547959502926317371608998047991009258901586574146545150297554599001870363536068066154853081991865870261475179538893971753364521257955784891082823398167370684530906912014841266248253798794683200704211947099119183892939634139131930161088679577064562475054067139107605107905128667815281216258551309192779690558734683055424794152829381277892429722084010768085268279595301334208180295023098074843467216305276223304007110516201308168161376233616850092586661416566690388034985346718435098510611596864043674155273095750379591314443446826398977095389675378283530749722846282635424115863063706703497243379074013188773333255415073581575172551934470176666924747740634174429948439807958840020293543599324514447715735891525604262631799510530314505122910532227138179287817531516318061730803262528642907576121443958154103972327039884693756194901303105373695177635362152253504464206309943608967900939825115233601113604144045059780071016429927218326640416844197552634518510046650910684908403192637007679714194638553710101477901885927399336574491949800338861921052034757791676148483776085860958857872978166011483212262931204737990982942668160444296768036912963724122082382078484403389964071433491957965566821215141267409602017926814816400896653533762659886632273616984086100105027730085392338394611465040792169734412140432149521976560529318408116513490840002721186005126156944962385625480943114748908151547643844729231655218215798123873517485855537821726925231887288628151285720414545634079014784066469490614534571142702940718337284925333364154857571492600537321901103775150209943548027966613045949872727189383753245824293766025071327657484415177763668362870176897910901310855749330905192634893936884530238127886789991894330698723952189195066372173265310115976485255404367620042162064628277420274316586502606731183437726101712755847231248100999532044577230438031478970039920619818246126911789500492781298567189560445118647816515676863094187877694245503490876986744789053096343831366656569498612284707086137350424952190809451176704662516043813235549425745016768369729123079488520141625855714676829563394846294427339110617937218989080078104722512983607967181654736652533744493907850369141332981559645006299610286066672578555836860395668633197730525428989006597298560521089049474774746122688389614763281177131752064640144482799201520432378320548879422008880545115881456700032233416868395179299784189778428212120451841370052799388903005992253339046598998119193861426471198363885032444333210451469589926888460861915243882184758906261259244002931589924743472250748496385246147397252337471670868477826652484657744410894748022315031303197890121450469297753679697584296397445367824587299269717288698405323784691449593655001767907872649153414795203447527033692004076761216988613886876989345160841632731655434302086423560626459515693151078544547456186926888671494864067967600030760975597694817943572764890420513821540518265294165470545281755324976103444910781079928431973654332002860328382237612897877554433506496440839397285269411863781615975346675182481697203619001210611296237640556647566187128634538064499241845229988236126734400343648071407024968496793711107469621507132798895856190838091034441089936243869856243784748954163281082342019322922438351938588683774249278611885024205490994775675735784322893216605242988807920123289261038542474176236426311415626130045334663621940967331792694238787788725471049290063633729486792751323100404470664349873288824438353576106313502563876195076439053871281936850849738802515452585624153631400930175817419461583111413809933438097016069976158891074007544128314342464292558030417204957258714436626355499986219942442927676241238230003102244469407224177179147488063143091910556965393035153396018649209870180587070982765762371181379100483578562717870962888699442111311983721550594104611881644825493548105807109491894507185064675010812849392018472971114052062373498318540830676021268860981356090262712998288913429948718494790506898770769540345522275701502715367118274640923006091835370231316077414740464608900264959764831211184125191074020581405916224629542431352090939987846982850567452356192942721397158150064597994272857220648563297350438278442129142460563956436084977402707066235074061018297501619269618020168268571338696727269070105459271838579466112093425834060510498707556657155217047240712279286093903563178599285285607789443474379313098503561529255762995925658188360149462932345230816691422336984579622115876201243869587422742250086700965137873267981911857416585375682065156760150841695179779276297541083270453073421117738733241633209226767920857468894783865300078967978860696752564548051207413751342359008933522014306768175639904990811733937985399266885309983007428976843710009027816372335628864118899267637546504727520544927404437183738299541825806916131196959834935685050828220798840449312296136311489077237603297592686919511710346845562211421123787140698587432128568513998679381965899401979013077445232826891095484950814599374174827483507014580687752167544712644822210092936340161532775168112858157423654598778840122176407404602982188577534471758173795047512633285216638206244680296041394187123452062887282735029464294138084163429990189299556068548645995521546643595234639039313606736466364500903993762093963703208651409561335808827247998134120152883595904898440643945079950751425141361370538209445566545423233188184796221447383848246784840577540187569867437626012842767713236730211609626291421841046851196936658699162617037286458855778148422898552364334161213713341104226630478881510704572756153961924917436696810196377389357967654529577599527460911626285739364249692251969716571901541513457343743475239201511956614928808881655211767768776744985882316243700203309490319335746111477386109210432256246540364757214672149274322243973376522945769586064068044252055044081572654626654649360064146651906659675949116727201967549254100432674075628394752567584800616634840508209061516711170671601515776663964850278484665367038932603328398345255860263514183073586531844823841515762844474337649928561229184451229129193425856808793812095368666630158236895888678335328837852393551389227038716572060823644137384179314575480927598315232056448516940034908662261113550035227627264450654307108076117001417196521675940386960446019245577173111936917501807396638127898710369269792938623246245431501859741434510730725455807217359393410737958120619703515709325204907297188207690843299526830786626692285954194886902664090781917207752739465213688814418159023461120616531498145452029331932358031443256889369413211531633691817747766351018260562138771881446112135268622368344585030529516295287745165263913199002615250637652545607749682280139316225252451632837508299794349908299240403484425645122413850491506248596972495767863273848428854479165761226334242964812750649479711048341597688802682552262045600881105907190270313418656183711795427356714191159505747649900768628497827888056596613372477763832464875644799511800080124400685236252866822294015414772505069080969630380984876010446590493437876468217520074001900011561107749227211767162568628616274470396184884219667427559982604098008534219751365364079204588174102089061620538344887180952025627773015305358480329415791464427133139136164646346547320708974434647089267400653964314811786928207444481092496028272367590940898881115995141705635699604879109525050964830421997188432079899585641512433383681776399048289194009000415688167008340234615207403444591644476472572979837671891207410103022598771883210062765144820665677117369331542552303851695482503454115423143575541136810708081937475327226202776077446432798580752911481389836879204638421761030130477659046515349161035679254445500647323030285745289612402046368076793119673551234162321383846376326723343654786038956446139058167207514721103772686342991472889342163787662470390904249893192466747032126483208839010042658103734280977339952616458891056079380802113533311768976820564471494334079584924794888793150263359660992245524172014286195232626658058501605979939509516985311546825972684841240191135756247596920799830753417188086309110895612541874237162604129624205815949686696341992699833565945962167319870003128312583104522570388645088782487445717199369061159727468987245891734990938462748206639813816987178150566413792112671380244021304343408996970697072973540295820886367021823895083227143918613207275123449564002976892302521944776322141903949061515896289271498751155076906684312258412691673713614752009194823865752721861851817203002067797084123805970854829458899649645268640228611805415753219063790759931727047915555182980086818333216408350393267698683658642976825123824590829227702459214206774826880035827425703055807542093411121942623147348915221444482164947874795115926304117967376843217023156103014602068740769394583582490384036705067483799491634393475803206868353316647711350691073983178799308159272463881269122834138290641998254625713473440984451243613283599271879746690788961088864678955146109548815235175119348697869666762799445195807051314936059813978002570897492277244509248217908562110145650917789835195855662807986509157220263737515395260081018619423307129854566427047116705651930703687568709093427152786702189191904329648090526411845498705833695552622564755014249849382420659838081664562076086646554166267858287717357466145418875143097059407950317800782904219319654262838956904504225290652368329449875416542931391657965126592061214424837678375230545369074566866329166858061647710665014012156451847550463824528913862844115168784285883424302083900346631816086658063273203261085904758058119192965415912328891197667692784267800252599491895317678181574194759822259010776020070361895464818649204162158525804507458464836902914611217947591708266261213614297217735402304812656225759402140263854710179944041354286957516930707423658781907140045930559998829767680241424924697874170121950303214871578469331835889283251625004161182016146864489238050593793448001054461787546213608274299743326857059129228778402955579821521309989587716343627526884322941955426232176715874289858658840512424007185274300270882528936474522106307744110765388438389939428720166999044788698538579788887971412324108403429505249369302246156396394998758364551454089063113290011052517261152219907698035765028047687593396981632012305439059590861783639889637870991902999785473512185145846377689720250173765794344366710825502107082040260369579849849343883328794099231763785053357909212950839173777504732245113636829317112199065096977343836572210256290648994677304588575938209931700591727368974926858390239399367989247556996452912248562555657432364893191124227673106514004248140626947261090200628016648791969058845588607334822396555170481944696285310324625057811611779237960940862721949809911499058297420245427100749890451548553424142664533616756543587387280154286293489373202758617910418349121677914553869035422945184175592827002584700628860999455927204762644476523014800530429380912141901875803001077999595294021881233855875173184713131729212328383717327897921139696735754067750465441119211738300233083959442264981602380772355339406430606268568180898675521480251867040442779296271630808410532213606328519496867452979359541362461240353249342723653900366055097059604115318108437196302051285999331637145033212839474781920950455134104559874360183055892541399399331052768754876001719411825174461795024115489426765433059432026856915814486245526093820378073922140192379110883691969759944951933280702117997579663589895521224016406147618000368030167172822750632795193418983339625572476746795472625197910323767310381787250936134458197081727845846039973370951875869945373347781877375562721748398886985967902337090349342498309790540593876943900716033274047442796620366043573591813923633916769970426935396624188607426704741525155899939378366862813094843615785320941491315266112525752099964911267871369045946797939987863709999513613099587378644025721587486629037080740186490406567368202916706170067315313627765499502962059785925981931571541555284584299232707577663350160578596071845910527992641027353240631609385036626208082400150419024011281966214136648387245277394850552129785202377744393961660204208111665025892073150081360966827337716857491680621279179233600454678693004869877217084617006956116445090575949715202481904171874051705467642164640799809390218385964949803173673524410754575091604106344946226919239485606977037345297041919230394171322823559009060202782290864410547721127406464882211413391603393818552391517978460066363315315316773895359441658382806018713006463606938257474683309736414781982480314831395054840904348332662054927536656956403698507867832370291155795552715374760505292674826358774659506722884393054997347098307564136926021983940306509439822090418569245869892180105764915651371988010156276182760665649287736675710624638662598952505915726269653139584649572870181915931463590229183847084691631258820876966166179306941144547457738541694266472583375607023007530364829839784759114090974707779590553064801106595520729145870303119803586329888401660341822625891216918880101429213340025702833114265833773896985676410391380893460984265837065882799400431108231491725068821487047264081460435272162314256971058551499846433072785603673253450271936067838815216112404037968937372523869971199665568950908547052069964562067895452667885546788368221182222638624322994552103587467917381919497244622342088959403308873662660748913122398963838264308791683883310803725506416822810970451286148333468386422896066331440726148097408395249170343187781486436209376229853428232506761004269426064968344763889754110900001384014018419408884608339514482210492340138852693110214238712565309882582606238213218428662906007457278692410767566245368304188540933641217046374331200731945040869702189102421086616696115319183324813532837669910062382485222778486399298441851201153189526187613352728794708904244958228236697303151736691928406831838843188024252920661087542125451101355394066153042432996019283544737851583313438940619621280029359046776636320585397621813663176453615126345390785733396729997340667052974044057782261434746648769485725714674702993311571961040072596254005285957847670978365601812568769856557464351971896280853391501576132277677777773405879534479226927174084413349542248332936998232477837125118113288020163043347537144565285671652707689692819020474731474241363313854416157782072780247483603320524771694799698380798513436193177048043385119556472089863412918482292712831059189311720884947275428643700893390043160161699708866095085970274460782382972330945628439671761920624922010379401518081890338844127140014537329552818315224998672745844891239823059765350950590303719853505191689232516036740214520698149465385461043771271507655208265042059088499865672680993769368854789975170180809844089559029926286284655590639509939990956941049452142313394822202498243481257702107631051108022102509216106375662183498165908972775663326464494854268132741047511521513414406279652634733340969829649588639515140082261580262115604735138580139926349034088568802726107934672788754534760035624088638090397098248808955272276804258401963211495204252515598636560351448474389304304978348494616663151308289705829967531054747662363878044984442083798618481410653122032214322195131551770442507870367167578449462850976929549650025774606377569572306255854933862447694518029609782247022443833179009843613513794605363433715646874189008584276267543445089648333763737133823336336529933317566248650089321157160868094168632155547089837418670328908272505969631788002511629919362761007934013739064743601960304523277476847376974272960897368737388467986038096186469874798943546543860428598699910262995726823887486252875263209473773353565072070522988243154844920831232741870054453899515454191831912012631288421818745454888282431473245506380070245931236509602856827268448010597903871910351492864202000965825126611297271891808535435462180548327899819679989395582628785193895429745610988088664859897976607934010058974681609027520740105189199183494553040903243682184952464196304462892913880052973587016863423092628335078545423286950884487016017171433250900495913245578825234730285035992864880173665078447531802317143496816170280972712678201288561761778904167408496500189799867742915177984640668499084690119241396706212761892867109087477246233969885902497754081705358113465918621095429988672083552286938636060564498610533179335086591285193195501707741286354510621464532062188914176510154120282463890777711747839096761316452612936257230085410064860236857711350477715308574056363355688724789780373798928412628865894350160894621165236078247611599491796957178642236610232365827019094840142582658301484933049488039658522167172613533362923660523359125271791057183636625941799786455220527145413948987012569935454056407014452492090371933983317620298108033754366898482758426098924096511974778290407233905272707208685680778425412055579896139694648195572533533673596405897082614116884639269248552660880538030092919881822054866572974293309333079434453507774648893648193379661298152628002957534802604367743769848443773414655223719786428697598895626601146607067627380942089555896882343619432377721609363814988709666273849670103502140250237607283171500401113495157841319698933753980980632570403361391336417237982084280404937866691364215834884590887170053328110541600937435555992363734937156109335877314547980178982140668160092808974796240167307348418574710029933181471701370875173372967379440301286176933248371178743304242821500005110558411629058020255456536782202240862681884259576706866165267526245894511845007369419790646186062345170560127004123752200460492318706387887224362463801974393727855102874420523345450076914598783738828062516041715187363991425520907592185228918973856534384036456233588120416058334096001503220479846160595891685811009043721980090492295928734959041494398180198329480511073387625062167887294533976881005021144141618188418962045936963920865229074388147524183623442854627048683683827810871988841661490129067740129596097650146647300231778566000054074329915323642091951256103306445164754911372131378923458934922211319999445216611547434007658462665892106232362622777633003182298381439321491874435466185358584198794945588587226647100894158260824632202374739146110673004519035376934742917558374252767855658147538683581125249481847988994565322314565085677639756206204566407070585475768770342466132161484124935343229728861286349649106042914703495262781138087192803809499277422056886649761468721786092503183168798582784005697474358335626104605502324361793589432838779337263369076664590153926930693862557965974238102407733919225327445915228949968807596307157108332614614572292248455140069330624717789530613539294032247552631107175892860934021619945350038826076590191646412341484687654708890951275272072513757738799833057566291066795964429890037079857834539547159097434690819490477637476284188635775791310518658272561244176828475543579262044320835154767728192914959418576852411987354916586476402283758351344062527782671066498441665190968406561464401618052182802916456443803608910838402694359077411896746868408546357727637460316219399522346530602771647876693791561395859768481107106091191283464367954158065208401251209417141479120055154863700164689786392406952887121284204317449623266601224484026209998383358980305013030562228240325721898261520467224334971843568850977768405044319886085300115170846214437083116344420807063171503048398152508557642222269193450441384313366875665064165624639472769330426603912154662544513755373889779159323120838629526875659879729838033543956522856362393563369841740349203309965581299613090048918681258142172075085805974630692776925766109628877423926329581678959249890297432480579866467186074271816349864803064624809396642064167367543948140145172268502731191848481660501169223300381397219064843002023403338536554759013365132553374306105992968415628288907656481054188955787881416745861519742881031594050759151130059123589321117074736504672572149972950241531475993893565582380685220837697048775604818936206619509821849565834615283928472650415155551983778638218569390141109075270161343885514046669480709958259283937341614564125807565459664442412486956113946380278022871002861312047107591204857827645683205183736431613781925368836329586020704919694778547872240183807508069296127487407712169075654294691669405481874237493550184125483942406154746100429531353359066784297411464014334027468792248550546298107737494441906517945375486064448271885765264723009293877264855176846462424749428968097129332256826614996484458204201805540623748811424557465260793995746491787998656194836992930335334575378398392199043881404529955849487983371301508050860044167917009137634615933769457303565864415259959479933041167278283871335994467388326714189944081315016627966813990571012566169311342331968536470103647282745772635613889413199437846047016230519420828143240807891581747002075471554921931276066434543521681089261537041929796809280638967856932762165123274897259859414719227641607716099063848735145093693773851100981181588771040114938347177433372717381288134204520859725907330523807625582607531211757164274158424559898675804829047429950037777329358480544143829836242751210447175958911990008489051793694115171744030537789687628769213945831341613697590231047492045891155582554299607749117222572345046686615950209364766303955485505878881086521436428651118271967020979658559627095995207686832657128020923630237273707068086176905166704901679927917452916220338352273397390562197964182673995186813459975721242475744806262428154778600284210490141547722363974038150941585972604968767884306837550764812358601563201155613862583103991007069055757154421542766484716415378380946274544397582913854247323796971491710726883585634500952042984290208014883952753405165239698516343604089140687600319080530872367463876833768419703022315442212206811213525080595706442890600744604835628816593826528296210851918230491703370647408339108822691002021157931072250568279061479383386362616819495070286512831823874322206298423157500072064616593788498259915289167860050213234366161081099850358225628433832859573104176861630931000728796432452639335195587783314545444909911450819215316680039744195522351284479383538206856937654101139388629677507070250533600503490846989020451811852433485769116914606994070044404506862379268918732550443852888673956340433957654891426380905471695047807526223247340229517651134886232321036119690243287029192688415330222264183713924950585954972424904487213308118034524948132152977697806057642369407135448506868928424121151362427985045054971652291015689856583143321346506276705354151227602523085622958380344521600023130938486046899828696897590782598996021392780628627110401780378390785233435993045490444199051840577101843360426579241039733402647656553077305144089529895335128324493149343787087155166092433620586191127173594118543214351043596552241583315769523060374046139724147664921477777274318801910863339459283047657542062421981657167718872814315350757908450837040230380825935853646687159666991815119477109157819618926113596016902918767017798522064624663620118848587210418409776237572924524125469090614702710825149563214622013977716693901433774123494082553537365332000612793116413769759397023307423833217621602166712400277949518714852865267618414215841324424156748113014184392760655653876295090215218764705346315363513464453016237484861246390948913534254661034175035430310276655564310736382859182151853876675146422870333971410352542564084834374156404742802024334868856246172473728117716236317137097398560143127211710508110381985476481831364392699496468204289331939631238732162565483352061780111981157385830885087169184336520522223295752871363489153183097608766173026682799183201375706679479182026570353549583160596374436175181834155431878911920024363155188324377507556385525402687798343048597416447045806303986943785668995242781938312647679219366620949796829856938980624429369781740813908347409559453128556433610383279042449512073772483163755064716230814064753552892894874461897225393231182405599659936892459375199211300924893467270813292390475037434105861380092973990915263707636701618376833016855247929274503968094103467580807262482363678781057885738082874138040271381632566641991387414246367518061232409271404111022005299909084366968466924656817616245055516654914812360256372174353400014656752652757110434692771487447010008623656357866328394536394653217299787122174899533699150402709910453313584613564516002151354659583992165155758252311514201906247501586577739418567767448881076590645166971198798876154979270505408320085201909657381933242912738346887764881818238673926282321042182089544860940348807309312182003535941050824157369845313049686773302635529620203470650092133555235380579783255870608167826459307859535232920995091143018990189679862732544946329392405368783349468260936768781588870388603578964779116597756075538564030190063072143011312023162166540854770692829381825373422476533941641980757652117238923063760786141919221639221992516075185287316533033886851405853816648432490030257756083555814765148865193933285845404660901023269784762774350385894999112709723494396641816743960100177584676745282899700937022773562777150725312015093984069054030387741623056519858249259281460862235938310166109140604764487319551651213019612280660668481102447970724035540362075030730829606451849859524995757370986193635115447818561399641656933103604231964900934906304579882354207564828351200484117811997151613713879574057671887633163562401406006958139579415984836949849010493163055460624698795710297642853895179778490259241309221149203470499462314952005095159434100705951935287190311726225618874600450803746783125578396749157828851423532228701946918681520305706646821357056229362183125102863098022580987687948048429410748845661657637917696539979231315772940995354613116432080111869057731579121801197822137341816902994453306049109873119251589516974194901554227811686580658604846921648821147996081388098126666413051136393282816649496452527981661775913177959744484964845778481454579015578085771510093097698484362653749532826734957058873458253249376282182512958767420415577294461011153376724214370545856106529464303163749927749953424832804215732646547447216156414013133214260708924881435124925857404893041274875054362643436119088825404033845145370952487865836438189140244047902588430932243747180913575741166944619140614509726949170646933525183032272618330310492324640576518670328444152673323343090974440471906444839041694207577926720964125126029540827887798580988479953816147897306918456298332189217527536684892027733172486925886537601656038333977761469258712090998531084374205392868694636251575134693101087395107924909679343880595304588979107314333657060079727223558580593373344285425691407702584353568411175074303244350488131478268501845772725176019269110334592869777266608823047530024064197479014887594437589054079745627612192157083135170089266141748934612765261703250602393644520913216617882115840202757327005747862035548989580551691772543785482521656540704842137885062972097903845506762342704583700846118916960960352260914653859694410747963603216929878501831178244356337852958181300587850364144846285271356387655333693593245720405962515442655964898465095642127477402097921234603774927197428080594061831781578933527634176425820723934037739180876599013811851474109258488576441090179736902441917929564372009972999030334366197553713224824276828410012134901902195642209811970199835052701389524765072241882552834635837508226208988626292550872879043735392774939998225372757621523731010203004522297514429123478644639785657509242432906121504201096664028330330381344752209976327463377247130700098295458918786318128390912461783724105101037786888721465213378931162986692972833380026506423131495573918569800951830736808297050176546913510447639069398205665426846780666766647080424035622941747750947089387217773136894699655553705681606418199021113249818376198982952198238273499196598935430998246349318266772284951768004443551738473040971869611052322173452736163484691628931569907886528750838414723770728536053576376814702358231166438113661338995258330270118180008366830481453493159705411200351577524261088120828223502886055307698012621149502705497348319601060479351023096957430746709132061617189920938669431050220395479387265809358679411402967845342644039450129149042615265133699082202505437373122395782913383059860321545244200954691043737241909677531133996275181404375753510188651133524197768234161703584217666579213000258617685289755686461963771164117539680359492679996021305859029966277628879783187257184674232507080186840168105104103382789977469650144593809784830935111954101887998806106978115572315478688695575388651795762121386233917133626799937463214239791289347073724438692941440466036134178062679144963098033802660287532107127190476979428000612504178405768851640926330032106125061597082564895328841725634897677106900096707054733178451380343501019458261773172228506989435528355706838724137373520397576559849483261132517295998225806577186135446414668695308178211561608276705258251440092910477680970002577636492077332828372736701061661586627755532676649210846813132234487550405061951088157120592174109531806603255969823630760348054735553698283667636229244514536877889638770306424082528274189536284146099466114114440122541011744675798058750892619810288590079621842416804299018442693453694483312639454405027260627950762421786715910335713461569801692537767907429560967287699845811478570990085835771800229312638507003196361164251683922020902905138676207599810220477204924228809705137564613498693767042876320637962293006015231654488359213952344975974794991455708966518310078483582149807188165234885910211641604915011487915152680055177478181907587800015853503392694933907928329952964827089369602164564050398926943728391932371861870038321815489560240231672205288381287009012124265311106640181684651757673210507590902195164313186850439302635695115812873035655217782007026128868040772621446048230241667294420726352364024139302890156834310847773574913843224360231458635285851636592105694101401431962072923461019497818716926202106674146299598983298472361276198488988362268892166666468203887901775825172777526771560502639361671138456422440274168189398042013153869070552431038249532024662965358042424958643427661269133462221805615608091255679909232163956567951933117886849276816077739649347922867844610358249650297517793593206541719322584878930545024640834818831247668237568405223119284662036318200089113575841848526221616464377660680940016516600478746541489054871840917150210164575392244138501531549611062226406823588987395748172762424726109016418454727583017989538770535911469307923302774834626673458864244255514140538059402491577307463334589872879667955861988436117662669032371127739966893264874146190737409688156526588988989923141193095078987489519972538184512761515274578482455150054964776403853458134862121833375103693060040330093332554601313130716740058366961786960363211963552998943619451058651542015298301559837686703369565559200515886750801313289716271915336385533394172924457624727434749946549466347163383604528424466436730575736909768007294698425384342840870811016419417221871608250669593434374616291147102444793408633867009069340646637235380544441492206858089256685996379277269273511353598501995354141443109036563222315849958481104299957518331964407581709890533058828032491216418543405734447753810245023355962804831449193418422009738226778907206231264144291678885889629304349741500637580262502754348710823300377093064960500170357514387883920853802552393140022358368235797360911863874941818285522857251994390470636730860427572436045130939726997907160986534494411463301826838557023390855595558318634970506118654750563114761819869482742348811616576983731442052014302416959502240155082257567550086456300887450067518819807687600731633381920629773839064803753554732031617252569218179243456791288358685446545379594027414996811547052417111476420794950952810320835235131485040818626279783267634587031490682941995340412407259395374148592517918692995062877683760267681831431607911491745481404853685711079580021794083557309680221781871683830952334545282649345477030136654354951340685423974544325267056348400745459720669784413710584237082628689030676940891052573738708841115669780311449325287359153946064946451127311303297567793875463757961407069339671365867851386708275539827076130212847975872752547906114818453985162361925100125931326905112932425737079277705265143997142057070795505473173829642808514736576501710751009275566388064819904318653674048500950027275425010249253879595818206466814051793013349588521358743893832915463966352869225490443494013574294973101818692316543530699976841350426254574288183297054583889008214242125837049976051039276778684976834661356345527849952034719274256681222609435462350189410560214618122795023596159215444867482024092275948996789543449580210078920226559326601814173480538618578103713976600484747385524007026299579800824936083166504066422999630005841108796966348985957920404663684994212068943471458865880018845136339869216155958562779478450838518422683221872194381500581989750392434959804160876124833584583272919879278414470610168084224253517375152779283082555303697289826469568528356671252337229685966284616331182942656648709667955894741777477665437138090496337140690162644937132085139669197899446195555951180269180805457353128691644043037681908540581553063179702420171345316517214392566230256573581216676002994563304226376206078108688110668684144840391002476496859814164036158211251005986978338583009093598891973818225879420495622812951094419947847051984460817789004821076994077573505643712967957493403091423450782684401499670061689934406849087548490000000100674565804065279839901004306154297278978272109592207844075555053767394717749155563607803222768580608274217092567020326380191456152659537958576488022474730836518112881402451935079402216810515663492069748069915474392492322734145185870183620727670689791251490798374929599920674817612809671244426011455074934193916959893142940668809530921081011982729473836043969266338540604880553159903030444630759371906224616164883813994575771354709326662710595367055198013673572785560094061027949667253930841738809138385857861719603246754886569914993416847847735759953359919041694151465756332390792767406214818118623839755744385715164584196124416015905337917271094864481552466002565233040513153869133528328274986738026713205045180210005559550655806179603693710892586894481082501346024983460024965906995356438233021046718005848724028618326514363392839491230676321396226134014144865396807448406029187352760479706888673453343670078236287428546410315105880066199659829067618087442981318707509647988530658514781353592016249004801844653221315089709972923539136595158616148516566388784881109648177713445005091722487742634752537145995063911171912462536859445252571423497642356709511801750817365193706778667723033937782199840588360421432941500513766415253587130546366960589488472955276219132881844241594711805589660155716311900643707413209632657591748356091420344235392185180453643414948701348600255608603701825935993241165296640080753501683863658722022964615753558668868287380137153394847926322031842252157435514324012736747920772385439139229568636719443071519470951188858925566937586915961897068038254414359067731966218038323550204847800589998799914631625060297698062004978714037693883140025889956529192541129068735967905915473053825244646951994371155441744466507049114113821894672897042949963796250892723069326855418446356933099342288180007987615473460674721183751650664541430717740268153219661451466876991091879657601964932110448137462975723398102922432632218015133150615059578506987043286126157013601664132028724420542829704433326465860495751176455068886269205845751258371897784390191282474828016280949232198730396724671146694853545986952404170888961441620234971705066255254771865115524580328068324425304874707616452797020074210372594318285516830513588433768096490119812169982990166445556624977457864957848679767410060543869430777458765082251733079005391627799907120116328995284639885748491032624554060150974297285331486672726277850958305480247891898329851098060527801646531852966840896558356146971404270496319876412153826166599593349762037572392411445282124325407811567817539050943984863721571395939484945075447980847849072665442549195804298778450603448246348356360325576918522363455551710936032324040247638370986102380144142097620267221855547441338489975318916696298439173831445194677514467802114069664414595554459836977914030020126880686737881892940819193754020681641803829773954388237480905287215529519678423268446864696067178159196440955744741548148896263147302942705224275918416957355343221407643937077000998891508693761275185682658777408779099058293034558765630674832417973537430721797008593024211502707757810533473397023921640329342926708440451892300506352810114102085429709477151126564189279278310967463180799137758086321659575069249575032516324197826900125169018838509267265161274776877374508976551219663154993804761797177312232103990256588995823619951891813388916424963576479471429242285330365097759312393112480814114845492521079835557604982614313425953147451210986586297655661457247225682508724347103901857139756920565791161610210362868927383102587776928573388313003646000987176687128862917130820804655843622315649170365646662369926775361739914240630559666052821051407665870794273614892893510352816842077859642922418955873924404289146561965943719637176481443544870862383668252700901003392979791345703640941742877987798369140030651141866179808702631811907994869290719122950572975174198324687034233417268025681107024243019953367350995797003615953626398469267389551150162918258951453264834858209629091114219989893165614170175241161966829310494120871049025241176967299312717247595716793060873673077151118135879572760585397485298245786960869737327315095751518277185667069445880745243655369909983727596512237258867296927337096301410774882956401560747606294744738112767890034706270867740674057253135744983062811032302203380747059671398262770654595019556149741600306946445138785989281362111022618542769320285058908310314114638377442536399892680769122703881809716856915641907124443798966648492159803505709592051979954224366602614593934514349863537819990529575744580955449099629777715794455524758835655128293889870776598153582765067210205422816987893010719926996342673963586626059902310767200441857092132508593857375154649469053315923598945481989563358967864518587549973703441839511675579928149500045551912875097003058018725394984212002777851461836343816484274025805234603467790329310292751701845895844657737882219638808763179514148942933740593808483381914296668309125556466582327283351631185618487807322638363321407668986017360784596378932839974551243267793529889834891978468607255587407933237309414029842754902007617087327505450394291967049830311205760370065004667886060651752661041814568163779831569853732868416122921586757929300769921339872421197545445742245592805893650041757383711575428287964058543327181072726175491409931871038913774073481829505235952418668265044349855677991476561063248367992903025034274751265731028084438108242647841797659885966123030697037733960973182326033784806003547127294822751456504852792344614224015220257204804948695305884745006834390647171821512591553040329697045947921903125723688062970862465667320835251113843234527328331443128776027669443701083402793035792128678843997987726101321838166415481243097278577894569859060443506616146262295220625791774500265416982839109131670487789341520034557113545700327986229899729334116530948441674278708520514503715524893332322869540727103798019352649701207035503685397412302625878619406723818468299444924801443493403769940082131120435902960739947080225240700981547615771750323505451876330265984139259469929845394137036551913759886904588020459318594715762789592114636315647576498120087666329891506626829243855162297333281683544857005905472077387343119688121741177156838583608838938233302389161255631710142143075823069799109519002033123645278034744167980939382515934520828319620576573450514487891394616055621118430528084001634739408832346810250574429282663562933940295689587799637695953164620245856457062166198294457267571163090380723289694308989734979571832408877645345379363245268438720154455232309408128868176360551914623863606730983719751631881719257602789167637598384682164611854903166138140657902125807666789490826460038062362425770479260524878780341519844750512292730333002526029439589596860511561503918498813947462199405780676543971500629845224690451862955547784616153584971783495107083798688526831004487709926614345812713635928973262546341782031265940657098318031807686419440099510649409608948203892547127866491635231391661100023787469392081822590938758994852711568201386484160614238668389416748149436140209861217032417198239319360029222091197459547805913863121219460842908970686795856902003853699879611758071845356202419533296571160706003289992390724753479149134741882420391823969324086419638413923545283737418578344566752643952929671156853315333706436843132522456831145925231382132915139736205678227022345790008774176227963427625119222681663664427204220897702559819356569249680667258574557243209930740624530351639163630773437623027042577466923290795817044197663514623710068936981929648256270334967328222937755108030960358610413114134654120353193434248564924488636889055601948809730475572731977647979271997683556685907853297955631530603426188640420627262275589175659219102780514984458085679830619700403840924987075718574524193338940412159334489155043441436891855090021975818786699478328579384567566428753019488364896572100868995876188507957239814591208450555608028220195393856337893263345522007502934758184810024378290645445372771507543157322365962830429395834750479599171828909717783231651412361112457415596632425137589523667874570172454799693205076108998472073638891862540736437705826271906720434957585306838167218705152988145867644932622087462456547164787220823017206921415173029593405274601590387548986111505436449845093350524315702878755247821956996279738601481530525041837962059941565109583376482303638254054914611506619813286055380385254396828481432457318676207534907223482867103621279287771567508252382107116508127413689925049942212044917035396909494193982347904651400747438224804195301908020246823825648427521283641984500624428577523698128570473354728675416612055778210217143298693620088537234966671931081700233070338863124754609806879643913499244990022205644106468415992152742899519541172839652597575058321499563278805503326819695587290670498404907787964304199972303136659305591483099255256431068313727227675278760933138559963644337896261148829853741830301849046392236374567100267246986458118146977607732657143132084984376289445829540343873710021887088066298757718412550318817939996230183175895487988491726786755974188356716686696208657968914915562814058125619713354816438901554407507641630124642856646790845188248722965255955027996845541810818189201324260023102382588637766604042595816215301528134180991928100761203019106759212548401097284903242446110982432330624590197348597318034442910125393293574271614105069464763119876688374912841863236229947843537779028263335403416115792140977839364384105152059422545745000158888459144670528066379319263370088054658649584128992899307912678871724828686304040439914177009851059987657061766956223640869697587589278285927511317242337862281890424420914847603091058098562066759072697799599286393204032984788609443780814505379819297483962012363162128283423793656827765571110202631629103566612037988553196093241596250532288881756681532716662431490365460179938934190668215502965859506479016718352746390186417306552116715822597609348938576101923015608134970301083963720823940809802809614280864791671229869855680674202672997290313096227918290514771161539376070862838832252701126667298974746501330623663355069495080349858411187726492093157955965701338563517267082926594771155847707194014665934531026593621483160282688477669758792302726469852855133183827879015340138699580739050039410726426405795511638731044327267786067267953299744749262030163725161765608435146702626949639553785211027611291426721686496424428187825468668509967200671999053885913306623053233273900347742504793274973362990878938622750091965874489657398206413336425770445075650217257626880965224122788284113055320239947210312604215600109180350563856638224664985146726029144883988278833202571929683448678513387178510383214641098316447698370258398342019582330011599554024902579697264526133407968574685148477041239620724917505481154386003798950014240722103489627002196395648381075183546117585621372297106591005070851282972618245013419812985094640242818644786712534774562782257736041213581449653114298724600704099149708214706220577462218701428125590340148998787379183785819539570059092243805065580722649765406804123572038428885871326115543462402706457996988110151754559253954604010174299009635789242761584277210556834438495419551857262606420672747018394748698145234041414216538806841202761358915574961705723718465079067695797013876345317332062011102701638050774461244506991280623095270160567154386291151924742574083532659832084901240966769407957905470608503663102539648202148512814712186587598285409012563974877320396557820752571650371402750927731240118058771903247974078292484034534272549335367284632816037177904797902080075876652917916887577529398954093972097479258970974131649845160469851540625621388125641061358113293358125102208129867352194940760833690417931156321879464246226684911210665214235149551161834869691007295301803592948832009744091604858525181242214883046038810881844359097262486213328019461000665652016678041802149277499306616580825249863919525648913397943852056926443437282821611834537604777451552553403184467963241018676690530244458240593301062396417488239365326302567430316500480275887307840393995604381587504333505419027075095708594851932078143791715820791566834841507000971398325846913824626257310018348015894590917860825059768648627346762812816246023923951482094052774680426771225505239105024516337377431333335673887521326415173183399447351276258421175725287526223629808793298418486921315347923848136168084617850547133313427514599280517395192364973623738260922355731901185213796749095818278713532283022883302696385222294203007945036149050482549695904524043941149721206682252257737167230337669524501493096018302622978974829470933195645335941089652626532821726719928328260765714211098412970448106184978899481964883081858267977324850702265509527475265063081221963165165552390924325355084879423476531261867932882595787084224966636820296114811489802183992612757408534438021543756879602727047022783374384126039212850320675577935024296268466059771746297293387878959430704505899075387934697451636915287461436654063956800741450711045204529305175057233937610829858297493693003527440417124710770718259846063387877890189618643019072215419291826582615454770687187999863559955370581404536531802781587193245004470583697066177190894683701414146199972208753509919521548037134742178637308422852046792859726551745013180600872438481244056114810859309997225585048000738984472058430386954781623962593670183875212177032366855762166409810567968595866413721394540918585524607333179957232121909534804629226449619843446418897890235583752657732378490529147236168163335549547049546836707314802363289148848242349015895766346423515033092581316083081740018719889006549584861536423909212765237919703319001493783041614107349297908237661184075497762562750129803814737013867925990021622659429552746734902780850468509666393546183886367806297466327762829416662565249102228562050857974981853249651683278007206589540648877864162410285949491749782295680977210150101259387016312101563620474938964669547941061435491702825113149617088232254590295534466815161430665355567723837605673298671106309628352289813176291107168293982068195845038022831985436612158988643220115907971388327194171808951130465439459002588589024996284040438008034553404855572640657284581233259681955664883978473825128939592458005120827861348026701124776991729317346100730048969153565433454650657246961782807507854246885035042115967133488093566046249981044396144209033766212199403444679747770789224687320899238505217864250442970421154661993617643920137357077269340508841105503886547488388737740620553816322088847703930360146461166187405346812041108134807374986304348529588487936743923713657892507367652538833902970833567321097070452973882510468855833080682568554897359612641156162854038165959848802741497896281036122876705507258901537719377226203772349973991009579144908212893754416738016714727933898841396127516028506885017079102313701351880151777244007136830127134099205037151248946103494110438106425744572520183902381636998312479895475800979750586821618756522326555330276816994553055034809650222461760174782130060738286161682512231413899620620413553941313806619725302720380079105257424824873042040579303600868714152225118511967208151782588035051765161308583197586831444266787189976642275726068996539439184659510603658587019701649915440398924257936240335279884589060623618573693208624333499851847257066316943792946507418771211106042172278521359621243448167928543552783372781980837135124092065269284186371235769975263853781514461609608382471945816636585893727953952689243426746898541569612484023880779020229715608412622936710547036635301580429921127973519905771264537509808682130242879935706082114762948657360707772634378493907863546905890677130987933070108353281827602040880542418599924937846255850429836742117000734654928789701790037580635861321165275714108725596230023570696498382763784193047194810027432218116871451891967536278162465375668097072249799304951214770947796068868923974898099046982142542257550064190435518171120662033617741767897000316709010313004073082417220984825941902382389862644077417838299864519440031088345734732304341545026272744989357839654983701778184641379257531300122041576470208752634524285354929133595482185533574476521191629642146641968011473467605307902096747675568904198660231975803383590305077760845494923486797517005777847318328884574624923227412945496617493858214521837205717183605466268857138626165755875934484667716251682252577214115160820243809771637588068056368194943276011843998964762954601829892445028269274959248368946935660881537570463361234797237644698696699033290504054337676428550195705730134097130152663344566113857155369806265020999967778222548207026907778809657263794979176802575726176646246090839121614245307365385203595095696425992340383569837594950901906414837186469840306081900945582691696606825597192676116105619809304849782319355608146868186861226574414111640975685707466073895629713770548477108521458258607201305952106839528057264646945339623279067799602738098238118322975954364002179311819811297458864385390868112689195793028264470197918221849600454922216924655339778999351336315283107115574363549489679891498244371076057618315288703545001640303266917307384207166070045877299209676658674213949443568819859537981716195644192622908388273529925185496672486627171504385698056362182534082014027564692818450400128352371128177965266754573603622029480009531374740214499497413835714061931245355760514105090188182150788598299419454384091405768036125670811057693985058167191845709413016088415733167210004927052324751373049031622286919849824637608451045714749759251063039539172018703087646560506507522782999399905021112435337872565949830760437645229884855727232033665665783992071483086218914807711648099797069219067735989184246107699118190107220657655559922120344471158261029311049984668704826718263685303506772440694770276775336945861671052267547033992291455801750699233687144408813133026621143904253447623639362648195609403043875765289965031170439070276073436850761996180806863970124293816915899824944668951418389356688096710189142175840643673271387748753853930480065473177922257996572504714454092753753275372282345437924299830250840142532990345849397736074246202681806085681100659997471368799127018737715987312040790666655449363487684410106289362139981906994100094460121390894179783149891785877150513769640060669054493193276647586824185010064637260379581394470906049134127220361723759856448694778752286406263960768524817482971524806187601645961091225347342723002928754294510874226965890586033358179895117687144343814771467773467432658380701633142412903205238075130511012524537955468761127996801124404130332857513644766480413021062378037125006137324605683774750574226543735003309999894085705030014763754770516995215973947925198358555305011571659739172907144523977932263708294710167664280259811241412763164599629250197173425418903849713986360027861925218257167133143801448088124516247955002564720769003107929908687204802123050768695044608556349592353112611089345064795918753479121154736873889338424882326794527161732148968780151163083363652786296901236074339312202108572395366242327321547422977988268157061283790505059787561767212929182586936958296107969091405285460897339792611288091868685906704837030423252065893580429211890750526379650385466666626395871279429284720959200969242729489214780488001903823344039392292409662379673412915193658183361408009965261632149200794506758826081116296081782113903736768138560674792305187196243132124735822167161308410429912068938627747639481302084426940047748591119527142378771731224203232685134233007121554031083191364226599719627329183265476675391875714248916296253077929435741695153130852475982738981528375278394342786723193194760603966037422408545909419670610965553827600623437735258755492366794859339844749861376719186115797798230127709575286823186386523245704290375893643546854669372874491115143541560242969520741051905415361788966608553525160205153259727090522179918282888582536470665164174040245091614990983167097527305131452374125318708422129174611545097504715542598607481084060190044299952045099056653048356792597654365797980647979547426890901417547669830644306915466631327863767856099183931899431381410760811175550579252240570342430404352334860216414152227030560922118112199139851038925694296926680638605672511630661920794028224108275106433584854095053960062113075740678288691364908463894715953835782479719875274291288618446593302499373554958218206656825493644051278413300848353862639689168427001033571881411476751256418289003187360712064493656794753068774581936801329791083580884686917775698363058298781804400371623952944991497240584029455048212182094230805629780082282669155794354852585389283444611037075890681752454059356052398577631884079645554117218010380358579718971454475942661839690126584251386773057563835072248172420124569456545469026574190585268131019854167131460683725330542340254009795553622228153825577916083248023664930254517174273331335783626234164871552677767671883747573886404506167084804701829384141018261065651613783865828412862045224113720997543762954332602721248828666982190119867199745169693158790879740766803622899565179999131138799198982563803996709335484783591536656943177374752371121465188359624283492521132071842628438163948298474648940060575297162264771888869630789418161214094553966898176610227607815321656182746009227656570270016614572024702483372970532716474652489808300323790661825087761965209598107726024807055936941633978526901985348489597741388762203956831100076853406349977115859358115594582448992932998865908620796152721748719308835138476900869923397089535735985233170200563193990149163746809167742812711728496130522144167591205694862469994496715486224415466530291748838071834157524167214180197909671504296080362981549311028029408604016929095396140411157246002055478466878717837004917089038199666842172071651502627138748847652751125845467212857310400083494337077314383748021759935075423583870111594540860170920726247775205365898940742905890452589133387165430034640194490604438625800063783363168300867497711156255212105814228036005088723212034166695232032613962031715646579643504198901599050817369468895517733582829837430867231375638888617330416382630647788143312581182581526450391257026138024193881762576902689760323304740189441325165971759328743045320319753255063513936765790921709959428510050172411110190406490048868704229834301424519337539028774141276677428254801185553250988246931626803295276019425591146349319872496187560955097132991184537824615248217168896275307030851934388657615646874968547139472778633515346178858259418629088288606107245887537188420964230217670194409778679932866572773188849824408848905337885899725544020137814849847510385868585285036108910228489303387450810778555800259867858254339326703206289898579782363546953388353894161427765669536397220360390228137687757714001160255498155532689679037650011724429618686002655128166002618944324639195767832570071154338660656411102817980491228783122206124272300051170610526252310746831477149884499082046021589070971612532763617803585834666042489799561981697241052717996881903154972994175912294352450267600380409228921440358992231878859977794587417027900067662822632311387198599594949097241234704198239377178634251477920802100876528904178104078636844956301344649973063960086273332035467617173986953895549517225908644864683592105475454663996218254966140551824703241606843889925912433055267966285493387451169276866053222507516000820851671181725310684187715020097077286606574327019744865886937635980306443386141300797342828483888842964458173659816153458830540449270275390575384169438151972016808751619244059553328667015102778629353141750829944603327591300962953881813744416478067921700099724075825515333699811232545493846761950796916424463009775716841765379558703848953954123858833207924507743432106192411960227833276883703768622715254017790774041080762114101747943648168146096690876209203063012688027730880843669580215897615475018104675856161151604974192583172021208041256606940534919327221351993958508723307220566886381243948063446724892828530842431455652080496570763645265615123270981946055059529188950292231158424927230283336139262257543223784026600102054673533344646831845181493475894202085831566332299693284241771356077145454764814500941954479974559334524407622895031987232017471714635762833947948405713105199683584974563465467088679829652860737423631122412540851660328763075324459792855354681618513375093435118685529535356947138806318636778167952330235250297279106669675561137931145062026007317736249327655464748421953811654722426671794242177257314015129737774964875910010218410049273045215628597828018832054869786394439835744701534747882433665799555762695917997473830739487462210238190061257629394940424508784160472853591405802682289801207203877638845769805194608667258120098045015637664178216843021777491782412065883892337319044107162429827482699438966783712521529779692155461081554579961606646378577826160003311508183438638228185617132460028631497421163787013416518405154045430479925269177189966487038720887838108959563100407648734330395584919223186084177354184176229714293678000766147686171319105339307735851606638853617152860603061176337697303408863927637245378600178643543742299357770420235116100214397394091596285505354355873656580214924653494122361612037721318260625953923168151784129681303863834266303315137491068491358482082791445565457530346491325146429702839268779340371477461251918380134816370121512329235475602063681102625322109555255993266879226240373805572217027447220679475201955810932218176278613469903113094344155092365471993894663439758810670334187853934872857362447100332167039097699407347769100705399282485697767695806724314112704759282288341482118301467952570411482291290462199307814043927744341412228449399690933866512580885845808121394271928334696790886592877515470682031148978333183496361152101806866830586450895613059680278906920988390933305903370370901965011233165455036358220053666848718618836030212791948853406323386897904495121791537074412385441369173583914870715225254714622244765673323664751514839480851177821429840118717012708350612666112047852739535535997726521181795251225571268090728828923189005384913998668368968340611328453473531630368779999285257379299262599625470990758097644177040479078433487333239739959711174599981907408271798742995592882993891324518213312478223468232464549521724793632743940753315432995426906914955701871567989059741414379622808514007908205448396086219035258887992076580218993712282498257992282836228007456440535531018546406774645189358772722181546086917460431734105418933032105184979874022156683981033275613901613972950535735547666593056789962217760944074785033107932486412143437656021273082677576200412154767412472982145927429806006064527469487836398568180822018656900031060747496227119948174285185246236756965022776802518420572642921599693360790321205773616500652649785163076004242862084017979700048717982136458990348942833766468220522752668438004854921902972409312994478028063167801410993719358468875756145318628459573076553264670596043494028746059132707700458146549962695995785744614068746658381471307328042032878039432362408765955499518197378398342145898566881856634439564088289987632224419921821938436021167422243258472698416958007559408656779122846336197178648251108957516972345928800827961976502135682735469179103901332616513932374370515889376493767849130976421253286094010084782179968216035845274955987408646116718375055403294981526336552087873911211714829030048618112561577551005731039423679781386559344250324021804548276042553324237864239891618498176493342905564030779332423661939073008753640547575348895739576420122318973445247350220583534887144066336041141972626236432036063235292350078079142368172692145274542862747470779263626242529540257220467746765155532645045125109801567027991650578687764447302553271448670250315070719987082339073438441117594161392491346976375021947786874824591610839563425732163533823055790044306505818545473114062338882215061582213450430674340224938578032845628034157764195557535544075682012813173439269924775060598523292005574313254577459869829004734817449892530983349937727604600015275438493553445875426671693869911047761424203365823453624197644647781349611680802277774190300015940746013531274591187118968294082864755189451533583302607099969940970410227886751349974572157556423063129714959334783933522822004820593641920712462794221435063432782373634324765548378671417964721574694904905375492659409512901954410256754967371184801748339929753243600509505979016653786382274334206147781434922836083078373148197910076424267624064984281458615320944654374595142541246943787487380980665088719441772408530141144257163652127410686036778381656438757567994286277953109279071354386763308778165909022329254826337680508320558828746951553096133258543198819850927720069927711478778311724272769850250737418460163275589534520616260866574980257950780438315319416754992612851492500087157082370013026789083830464386560868752928929784911180098854247823254987845206995892458566125776324086691440991196255656319757050394322139834768316404513906493592423166143265220305880464544773600515029043310063765421273249130598336704258647393272002110665949889203525824196469547013015564529964546674596211450753975794066858864811988191919878019181934893458441514876808127808207466861473243406395099115774422911123350357406397881916561954955595889629282968673659414298028913222706038573788413571335542434912738223291555158689422358308875943333402381033148399799236526780638140756859880972514199906221122459321153989565950435244454742131139801281902381024922806972214654128345852003877598325132576424725348712660192463834975496328135419262066169034849966611863492109395335243030957398747489179774457047639703614093632639756282630833016173507870630124180178419631686012064273885646621184900639865919664783395538492928101459569511224375155072871751314653285528064275563792912820131286057157292314978531994583410181890602527148763441249462950529568891936308362602335853693571760690318531131923579419524059681293541863401187783803453803183421525297051308956425730607410350286257060807941766629770098378217861829713150745188032640310633349517902339957059282338462646288664695178672858236412234804882783711498771016480091817138881021895145279719059328704362975713967475402625495082541734889940040822730077665528862762541347589701117485763714031222921458700146065782360499304973423914271475533549598392816287312860298365195885165429429208633492065000329760452293973550619474899593885660091133083443926453454671234129869576565765751224744003619528654243997905146557874000313066232914310568931780829288875456285072937987465142498958195376816433885377360792742260822285263645306282614216784552171627202781284530812420541303091159026490127962708798862660791497691685443156995204725331857769864884803517760316865450577433881590803666019472369739242049390173873454459983095841249509416700462867761354623342665477072082073915814294967356320893451793688376453878451439064727669550427334401805794972764277093590368552713299159496345932052171429503180997629561940033743038692496702949082704283949906895373811879892437718324766072070159064916226052574981863915537636736071434963264801840668834495243665375365366997948507948280199283823931643787482643672899933046247980844794522917753400741261551516780502133212071676357993520708206251063120939097922531820719803142554846172235570905602295143593546759798866759502700001224741490162325146393725859823667583456016069915911295592481075037772126542113107864134946627463058672567553675793636159384126304594332619788608904578669285774023808027038742985213624377934064475084189455634535311360632726915538445722659965869810451912481668423653609019841832768647135094714588557778579436885351124150103230367727632040906001761628505141610198617176996657204688758286311213744327292411701171409160493675465111907352764738121912711207603212752972803111812560811178105419096035252641816705683815483386970809441820888962155319632399115065142239509857475466788736522483860222884632214072538363671198595013031342268798000930930624887097284220521596491235344985077945944327015630339542102801211003071414504005179487068762081594618351149961616946988915624586614197521788504815934821875982843938379741029865066010594715408620580428354425979040177343786133943745690345857858115515101177055173013186420340494680937059790959564223543947661051613549246695715498314509771626825737349732075382723027085953181120016707020201646610586326842537811921301312526919857934238856339076111899426533634559642699420441027196425364297021418227770758913894027098832714024524396770177423691020159581923401631932412979583502018496215409735898121958581572562638097674378443875938828692056162255072216672059017071510075192385331315643711448724984672642952639817371149769514549645599802674054445973387219769031242932731603286470441484002615294010174814843771058985295111066874071660118011815985280177566956313761561343267398035422836650874599051454038385466032979494699027105692947130283433466918409353410771628973597830843717851562487957992854742055454802043909546712686180989860758696859225205052181819581652941133486165311403967659046211982812140297187265231069565561016173702193793748605516295370480881543243865795518104705749075599354851948213830938563127999611919429566199698178632832983341247990188414526992469796745214964206219479088144332799877920047476454843761264558530918546915316832426047464410257882384531915461339824428326552689255358156190683882391626433345312800692756633702439270449416474197666024802928752550529968693505668297688693987446826557643733897618710657412338992518675532312057078733137646021715643457520117744656771495620785100203812934922504590361878716637906716334011505802904133831964981391180014493663448112727069530418425976011656770025423868464140349935224887110010042084790039588315599289320256587184937587714543753463121713225027367303270773567365684220900098547420862967970911817399088384121148390635262682961898437864216129373250729775276221673837858834438509909918896690370858103213660538074067055104446319028846343374346286847235441822026159188072199156512965005170111499356981760067558097639225132991394862351245965260596583668610263644728129977360488115814447913803268803803923527526314762579076973720924841613925281819393701219940850655535975943999693918610813582817814934557494533816830165776383090059589573936938292360365557308564126199594497305386048255812691263243192983291404526282999750094764558115276185526790419050712684860966052172143177077710204855894348388781892512555871920755691629644471823561300813203737153022589455879985346364032180821151232714975111939053880529272006833528491808223984893339095606423945092477614965999982223221547752143314362630902726861994630083009641079318402911890125020363802468763353324924076950491470180568977319724871492904467902726111680779627066522102910529199153745151899196919077987486335487485334103161733360768757006867317045918231606629194273441710047203478391554820968320579466502451353075041110347781053300608268430167673518586983920462365970101611864784690799871492042361213570360269113768388924134342798888628340815529464335640502056909192030821697255528510378918212721233399698932945035631546692118072294091204930012929435214733119945853334954448400637655344699463107530864712669319919446931621213247347300823787143034280996227981197822175719948385807455331092961612630066274412922028827242865527396957123847524733975928058796445163067153404606488113269704683333349351342988467291679119246154111774056280177560907039077076209664348009300725582946314442471263835469015510325255518502065857123900194016878959364613889159880305776472138262721665218225173960106389485378526793338817750868142897122758474550428420723094305739512742656237397513690651589724021131468604901349805393713621848759135605093060820118931692110779044343611422039689836969905390394905009359111172174227367454978248076522599657052298249946089330458218894998320637123135350559772499480665618012631571375050211137558523244802756473999161175281195050662251242104242284586344880496950886352304743911749701978889036377289675306090312019419335609017158450405285530359594243580090877080998008011143897412143844886755138911359976899231089709031265989972917579777022984444672500212981309056787053517391902763913753416316976711770648372548280487813935563542978502453372253850951162471591464312107062747916036093548091407929603509388349783261436225723566821076456129581158886819094455798703456653698121197088890199177464071537780719694967044409169675845670770871846352386068824213520784044372373732446969110599355225802028757437437329045821774011547852998136762106091704136486195546464309039005244031465289312132660994379411225333188267683624512635975961251082374290226975082035632956708623926963739530672250479437409032839037709346493010971038547202199320500692815655718797817273465619534635639546322259173172746985931961858708990146349072609645551321884929316676241272212702062783860371547318054879801864383805115516422842812659437510602886096065965344202413131243965947402941338602292205733842600005728268986319587538087242008385182642165086645108665596405396351788485937896369379478069465191859360259343837123257355834998398067439181126371443749782588769964887318394138288525640861979558623013829889524399630339343343859485419936891648810649619412640242096866507768304828720991030648845371321045444282762102798819650432550844128496918715971955832778894548712135420718313918474392958702899603447155913198865137504228281437034209394069345145135018475587801492960923308148568941002469621074955510291586529292500290002392810069842465610098881855369518398431875680929098848298653889621928297031857013487296746546347001597393392241862568307395964068060996060518461911630697062095166325378316784451728526178494127088103128385665801375392394414450523342765077252342938928570657138289942953290560842523624346652375550094425027926188945768374389181357320514716372101078997948470731384645523442461770102182073840558882809275664912388124725245244288238081710683492993434852033958405364557577342719241706472725345095935604407536409207980600336484964739829004289044069318709906591477454913286493278308835242125117052573902771881261176413419132208075878770669978472457888613985056351966547485822756311082567438533195822596177089412131408081932576907910276697907511615254984099679342978136816846799408323864836348180870918554608579421267699007879701374034952180409002747668875942329720253830840517110667779928081531091928704875157142480465469162692603071561524061123772335062021703176917254435569366370824867108430625866681264036076041869153583005223455479383119407877117484062277233732901967795838567755781886215456746709096855131889085856618854935033182634285124555062515535538633088317214499216069454479114425351185340800918538358397222218324346270844925975597373011207863606387390124167391715412265336537780391605945656687235643795513651515155645822545439902862947721566804791667876922347765540961169930745838219326808471517535542389023784134052686923379139015324551558334955619142572266789712441212888599012473619871674097175479720525495101109133150692485209101345644347962499712483403486122363648152233933093998890704453673861428531942548568237506235454696484908204409635351451813646120112279558682618653720175783025356066777366241855640265418144645693477656151307064336376923503824255461297303724655942055979523319990918468109213322317170656542862383438198142481078070452653076947130838327132200932459317491890837416617909360212761623049868620452003897546960654358493440751172689054620256847991474715171334204578368743299230172340498568714083426589377416412518747579604153487884398818554937297806050323218358000106443844547576569016504345747202344920410443376282326749515087141018047973269235302600819455533162826093641764455092276328287587371499804211659617874036654683791917085976157331523691416891942136511321769622070726051008247197987167886779436512979434376475619510843188712804909596388932978350870362167784907581013966801943131033487783252160824473127165420397796576471531248754530590180509666405009001424212082201026225267299341840524181749421437926694474601057849811483583518936320407943253114956186273569009941525666050508820835367296727381974341502637654669285912266038277127881333260391544898744717161997729469710220554000095893802856104503178373894419183094868714701379585195762657977287845738644094596333964729938753382136779376926377986517870535525630968349512315011518391827477059134411487776334091154606307991078206246025016750186338942297984704147205667994259530662988430489849196147980361726112511343935597779317889952421714930606072164068610199505925173403201815146972481433382538176018490144850032382551172218146111438582939529499119700469768086964093914356766152428949349647341626960217402482139845850607186755427119538097188747655593742965662552303881719767930730428969354148512665393373258039300113382348602591625975044127716663242637069155280350471152204403198707974373033869031217321056788680031966173861726729220948171019861950709704738903057798619828411612080470597025930550253776293898329250266314900484763407402574988679233929740243995036228843599670842998829661340800762677823772938825241599059146845246143881836103452436790165364091919125948184144299070332119339957702345049380551855860765510647044893247283405521741836057804998086810164696844110526808452165013499772354542590202097983550054846148262005262508709283691841156420594390247987468329403315128071056911125987675618851171706348506769191366520732896235292139225162430847302373885242395463696681436038970872368387124728924650086343084553191388972380479209945907754328396820990897196064103793012916158119878983367572054686376039946314455066827548341408371424941917050878813513129063845175766727336842222526778443788853407392725171139141372883691482556242909443335113037822384181106615831157520333760865533508116244407033151336758602840629447429045173935722252072844429042581812655900037010437426682190884737046217526035896893226280291512090043862660192950229818470316156385894024342623978165474584344234270257760413504346359541169205705349227221614760532234354765199275473312468057873232431717086490106927871302533654933378284892065850852216624190069160504880589181224342271116855426740261580241407799813490607761996661740976377409219836463292750851480441870183002397083547341688974548006331290014404341135845422830669089909754140231367337943598695542135393191034827392401904163792422622515234325591280643764894840014053795542914246892237620883150544364926035993333948271264725841011511237818688115045680126395081063586384090347645433466876110081113926526427881198180071871032953998100327911681478088876239831002701874307780210080592831963488064306420116240547058713727858530888655891417474234363658583746665521808675018535547954705004771507880590944025521732835894650848107240153202668923097710600683558619755506765408230551877830711979506511676634005147597525419655755717226805257858777319138798483941180673757809089238328322929555845991544630232962843458314848089905403667700812271513418298269463231194074144539187262336021245445484245131928619508263834764128414476013249387069767434552910893304132897631351538121902109149165438805758755495383663294423713261787585763131450380788935072773308430558551137423882943212343678180146692444472157318959202731527874898493984713940564208874759470479824894997161160738461706402185351061781315135277532890366333419300948293886358471213676383557176028294096452178840602672994585117934797062672900288791548583927142374579300202304015565842082163769071658694974885093285270061926954125794981355872955618718582699336811241157888531365915187577596902721931391147576895193203073430267869753342420031504860681736208530825576605370993128167780127136176555900813700555710510973476348739665844114434245299568673800212605441660985962743873627002874596193819117964156180537069165354082533079144854150549229650671125471311624809372274058769377383729744480496993645771129338623717760357168574034777031887483335174003974084582751147974339392503048140779039717776878331004016260925387101062996226522173840543754602556986460906748702698367616201494535274832603072488361870983428797993396798422735415899400015393736028102245065702619752401635615718509269376370612957790730023585180962147557240333249423573596657652820160212063005770586437229812619227323143649000542181396728432231662670504780492417431035844595368257440526775025087696183887087373802525173351438159087020386861257650499855810298685558681963461317694373850997658243439231557259091395199973870082824753473533628978782278079838878837013677541008336789053840222317569969230293455927119880049373983061667361205466331630215798876022227788597623074438606776942233693060878851859172673555150779030273263016382295123870911278819968439684644747779359873010213402012374980508330860844785685725662153129689959823227538287248430172633101199878490381234941629117988535423871240947877092144833772052666180681741241739732648317080064130792816005364483997196031967700218516045252596512240056246289051666988855500782002568255383435710442862916604359768946984678982788541751688422765408098574156719628787494313969720546426825854987526155677193839303008225393616404199752562034719510776503430792271404926702798365901146957175950330024296655928064232542429452685469439479552308334479692882334355729464195989624151457090448150380070445733454056391962902312356475387083429558957632150818005628995728249200622953089865396520248659054910993891889027982363394515399502602868557142049498025277054236141802044785303093523603970837048823821731865547069393880755087662535335555424405302067836478523778482801837681272777644502571614849086049080369446573705259500740581000534149539088211067468084624053527168000760540990181514626099521936900534249629600378829345528053631476713854436776256795524342732080072399667125094125195978674904029191668177841142311396626866669142619982429595476623187483799787475344310838488484801493260794278764996181663539076838892176443934036625679433084734982308119652254497745223436708372830778330925170958072973239453663535123176118550892600944965919459051355478709149519241221480762935838605769685783012176172672060900808658756355545990890225594335750109813796255857975092334842200648770518274277762328760299080577591221419108167554743693690598463255477688138926258579327088306018231481274907526806812094906169452010886683523975265130770518009163226355516130864752549183171162059354858046209694418823129116036705199885207855576149064611109496371651544399919231993434086185520818118760543037919733088482151850079118594058568132655690791640036352271537504406778712270601771997561917814808861278739352344831552747908305399116347501483653439356317293552062883589664078803307345284118711297767117343639019472812068874919331231143547982718035979531959761622099277601482505281183872358378355305719733040489743223419253832810795461887344298265831615358765910355683151996409786385745827506601377180558067138910783640605188173016940523425173094162485530763982823227342886586291029035553253664152271735160319244919509654529796176962625050326917568542421666008578773418218419100329773181575692402506308280727827032483858055908018641623031639310642652218475735074875738643837889161255763678744715108989849496134896878328590022375382022519336735449238205032763961966541983124317320353635317025524820675447946699612140900401618037978238159643953894691323573935587893929638185713498425942069288706368507003722888452622912103802718968106618254998577802597503662534755320718984964409350900759251152728697805435328862308100222525029496090498659846905429321501322500021030677280012330556991039908974223324611630306403000482673234643626098830510478699699900819095479276543098608602029075325441398954960453323911699595067767891625664808733023516164210210296784036063185431198338091428387982278251688923111898255687146014437573123462115190837138289133052385495075197791777101867291243495643981534356251148514247107437760830228229345486071806101179861298044561911621910310132646510181167532059659160698083185685190640672044601361366215332310714998126800777898693120650632130652220128194246982432320168968291887082330785826360507267147364356351535738625112998722811087644715796811625833470601460490785065090728128233750883042673998522233737197541492078689872361463250701084412582254169864836863479748282066293492275014896515278982193855461749778714883165661113023049657101165133097355531848803538661565665619656131947476429657121903096501527019054927256845161823002893938665149803435424055739044967838638713226448405670601559816739134036713963831489183460644233537639623114790410988461736915761480659285821340562525801544285026274519067552623540204381775129264051846819666593369678069587911628555930225457580708307632464213154899592535471845373876398528098180345552307885516060775630161133202497452351582372959754013883162155906286133295242481592878816375473361055619555682564127615949593790269957673198257346352826204489518342543669518984170098196109103562174171985111774991629687312433114325930720245726447779533320149092363385369497341420475166928814332015362888189365842483984169676381515680449908955697375727169656362710989155281214596566716013996846290525553649526030290657591403183231734703050846710751846939828809831040883365424116006897135576893222657078406398452911663712000855402436117071556652257899321057318285872798636853935429955791152861701442520938184243429298474630893758376392469395761954510194030654328629779304567970651838424481952441733202126965735508996096484219599311491124185511599417156001645601668960399106896148016797216433207156360435335241031385213230289145298132194345331453949339944984256620460437173549793240386282356478962285106260153341800790347304871118024108893570781325361845195305841853897640287504917768808781845084608019648833294523089378019538634548925843927732611337622358510120396716444301798813714230516949757324872770226858366458414913219534838212223699354735751469213009539648268279230883564754611232287737448367228736754912945693010506509656057680686974989684779491473882127108613455368440196770170401037799150892427098689428953980363724454288665628383888578481326843671489534838468082626248720051263546342553418924468972574843769143400925883103227892135039950372760406556001431301062663610492405893567754324315383765843698139217478567399387097402800071429846717533399509490306927714648517801365515484810202852516030400580070273802277945482120728370337083907556375233997454014760278712765226220472614518269465658337597637081504038158243447267341939280577258220374162893646727603176738600044739024956704066438749277753200447721708659558282848390675632422340255534467558437884110136434441154421163728891034658381548275951280426839026175092322801977449632313147190454130146133951577404122156292530844123807293251134398826374006360108515038992680519369951451674316423391532093192611745463913730006994770303476652918275125541045491800713181252437763023899839537357084296064004810265653349014177119753957906437701301532607687393671303984666862077358836924898766042663464636055347105128114536065668377593759152717026409453669015621130213494201167518353672447443793011525897408301979162736097441396353609631708328101178317155063834550138396416794866004179306170741961960445338458805235473889466861350675277152671625332948271545300831093307156087329699469822647307579270873012658437872327720868594921641078284996697671161298874939918194415588564142808572290329198744774148927965683938355440204651097178098624367199430741208144990223920747707644831008879690871446548773367940938994385266076115011795527696665924626479579112088205757465610007307505874090223387846083436513532354848734770847687319858890124199644331250879350114502948809429726606464645615322161200932983644343993320417838166682080704390998703051060062013043800176209985852827858808725463832636116963877576021768120571037006824774621649360426563691611700189255422784728942937304402081016516256093411231708029748812747462396309040980929043431050263918887257296192330888901699026088748498122447582849172768792605501876436179874549144387956761750572443561533088481904584224065594242841755407806281058959026090511213250815157984792374595695217211003603434781346309463652934221481602128657461614367736209120875721295698452347179411186101796789659000412582852460729566189504195522114604066375035030175544224225567574661882838248097493126598778949851146933650104603423293770919684974069247794348291267076654744252715330801389262140427561325265766994868621883371147961617306014779328285142291259822487233011363456392864528647323174261674705142590989872600999144093031870753411103414372097986189569478671399966714438086356317291308230014538602293510025791602476651620725055777380792119343674684240801692093558599693993234746519579588864289764988287481894646982843147238024385328214419257930375054417294533095847197227353994288437227013482664890365182000119341563847640130569913018094982700959039563450062123475945891573158385048744685098734073375697785972868970738126391146780757198357374571067483406766889553456975119771683340418383449608441008585780277291337655793899821646039706603533863759591649704677514182969925357697872673442575048530878651713001570899413819637305627009594689131886346075818339951195630556715816928952642717759402119265479131566260237765219023226974617053775997125770759940182111841011477029284656758957148946386680494291466301115920348421296461993213930248983462093035094866051771295330329036020590457605049220470722079523509632071303723934466774788755802573890638027192182057840600576426040698614032089876139917838724114162030566150151725675183327550725237437853487633081422592751846157958202553273873142496677234729981302387406295421383749919433275495456581647177424957209318754551712343845717625498149514095527495413788679967478121765573502668751672040266247271232983878007829917462219853219331354993582722800985632174024432249619842083753275318656053313897100863494501372879177521775373320936966450540704659762699359195362268517445127126080651772176755318509442648293717988973286178933362894079500438846721479645373022198996204847240212773512760929196683037137259929446404845433946737294171108518547425826670721652259434900052842269749474009032385977229299362395264134771185161178514000171770447802679997893619431844916252643149239810308514101929524531724079949579531720260313661144869949877038344431115304600211517792484815276964649411770177432694822878569753237287870964178341127871297878446488997300391947569690573252830221703852890296970011632047418055057455570743855694861194276227465703494207752356472230698215450759891740339210191644438595692088687430567372124194796547822787581112588627015306953966029208726639711004336820811606882790493302230195381974789263980301979758804731351200968191626068813530756890090892904085795291799270547915645544475915999876819765180245226660723727509953008632040887612873412516110825140481170491621399745550150256744893415758243593286255874898470062075526663427792185731708894312938526344831093921026146852094464616453462502653361699538506120219576262820491782365306404625450379822871500668417746567869001022162769915106845563104338304374567389034679834790018701259355412220597098768075334947328738635308805094855557005442306387184846614219042659037494178204968418325809451762471835963842680033476918896947712750364052124856073363174427971573275974457108204904495273618002639639006459209350293326747594298679866030578944367855437131832905970708401600470776229265241420004887206569669472929975767656788375635827300437790134297237591170873315735352715699432668136510171688917088845560520749384557561198711075353681812488531470052654922815812161431639597272729044289556666566460017654410021477172398070184088115301730386378609424454486916889768954951128862193160636844634128897115513033679448399989845121032475397057918755676534852679781165853354357720405463251001984902047465367851075976479072427321961427503708300769586411820553981647285707416824104631996628133188039952276962294048134795253326574489674800261830130158869573766612060807210881669891326335980054543287385315108381084716775613385211201451213038400657813575991139985545441135353711267139168146905312006010009404021067706574066894382163258540207682687379085547735515259742805106283385520445140042861478286489056606716607153274764669093269662697374883386246957779408572052358536966663035567325757037150957145056886542830821312228484116565711772002281490815451367808494728748492116474302906281688663319595591514269587679952733184688327651336808094536423477993537482971537567973202267058972668850883180563049061762312069862854699033301390148978904657333522559023017340264766502541787628309448025975877358889022228836955241620093501932877750389966193153906607133271620392945169321470817955216790698134251377898650236475161163567060756805209783809859752176187309499873633138950643838238001625178673837142756254802196189201067167842399900570137660966096531799254776135039307509943891416832884160558474146186568134127472962819838671638787723871192826593032553085006599493976237941106329589390886284681653711581085910953526462020561933386725745151640437440130850298528933060734413354278385106189980126496635802989331964514765027266787965760549066280105617778976617075705455859145775736514263410820338456307541875854985102929956045122556230476969395556605526273236088233706061584052081047837048787688523884306221221899708993341202674867519884828564095543253627875606283789240783868802012024779617105442100750837418130974752617427852595523534684118283067523856879719206709538672824429824500783478401595318826809001558318001845870454956623175980350574115662250291867577307330009402927877066705297671149496981151499342074460517484624203312917312544268230139082726122896704845124910791028835366749952240778125271176006167061773111547531768046800737578213790161212026682733597102864045083922073362084700141033827116151997643402342831494802786725630083241692422803714104117424775312799868761108250444519157195723117570759357560705155455617378515655090954531510243002879560177765337363444721676644256075612745282430482269285562281168680872611892911673825638118034212904942051498506243084441200809675541124806140615977547412136114205555438109806156447664907820257493812943280428386128570942330955183417580426612295838142247436289153360233071677223703518218846477683824736523484758591677233516826956699693753018774556933465107865666367237485592063962619994581678802974240655786133624424227023896900758113889968931404753557937249533436099221248138852193893016807684942140417614311779770776079034487101056584852061276813665641883401878685073368613198728581554441975375916273520643311151578826358233776017571422756125792657595642082583993314703424172427637551528014279903139628224631330449842049292774597072189262471987355440365775961764538038283632829379778471671562120742132177337097333981123614312018459454798789447661319104704020292017288582602334224542461888874149435721819506176196811238204781398166763568606652803453879654273300346754797410493962400779204731088036147837529613340924938588462988624607604273182951981726883666931111478792920669829529275791361075498864524674110230888232744297932388479336295973211755515506051204627171193556436337831505660987658980007317846287994398080907801227471276496999831311433088763815190060234947471293239213737629224981064812301490487373818290653836829258825102323674783265931508590526106375903994351861397982846303185031131321815207850519462189433476461952416333344326448365607125348439702520399710102194999929298136856133421519760298714583575700695746816998819518520902814212393218886728677462317467698787460880809230717892772643600887030715620741873312173971288064118218435444631481865480901000068875997692280144862884686028678022911396613261545330730694759454098832365565769107587190096381438660519682662954548320803333754410193706913853102363833510308512823994991713291023819733407208503730974246268812080495962780906175852937031095585584980687086194583976426655304817714992184621986364281530801574339508682083358023652377171027217093738494939770685009658047041981881652551882414582711874901158099419193337748802817921654511180633164618941099763063918392915636975373734164236198928271621300104867060448039454074401575682559647068576312043207304349614021588263164910243153728434105027274648458569076436274185707660175578033989228586166414100850563479591001098425245489473600746068646407724373983867795255168307768191782539923134208295660975164725086890017540274351097410699262328371346020557943363782693291174581806024222077016428134246326392445153676117018113192898903442886432097308068265401034712515570626339130365378756780905578064232561766402955023997221999321773946221101786925992136257297968402069915675540342219084290177451835636451572352707116069317000923781877219240080230061072261979501351889537637109343167595716797852196985187722651417013043949077269744735019709617324357147646368739540997792933230245999838977020554908775701426605489050699260946400928994543361221950528418893064037401462699750521734502351197701867903652553152634716643676959518930536712969441787550660865726146583203871298252727959702398775234535227095082397430162632517685256483922425571368374115022817638117240077047484940186928449381994830320159596272602761579758244369082869441237776575610908471895452089195264034130441976075772409816677580016568136174039886759357256848734487694236575632999207460136142149782501571578446964803225224869287827114736001389405919759162464941817691813551066907324633580739980985911702461880713259773326583360821328736453794003627084446700862887388965346685605023404939519369198537656798905262352783010499740450028786081773617739054871969624225894456714246555083856972694017008587134673659441900175606941442412663040013841224129496327625838637529742502473332216494804395601477732244329858220225736423200531025610696605158112049603486496609511062478176569472914798684869581222673677352426216901037286728499162619079534811685627433124797335708825590796070325818534449365330294124155880559818599524215288062275348508583314564078509402408539726059594130374208729010532377919828161260976787671519385320893034603618738514048565476089612441267883726543688303084474989171792897524413457426686242444094579855163703995105061848342107714691675065187090287108684182580720532861142552768546151927146087319396294651509735538591037183063178890248872158642949085203947993154581895851651161169256850384242265527635588510245418265133426865627398696684630630854364781121852596336773165921921428539481376722660884280839171635103666157225665923178610372648348159247322599488323448735404573662354005878285302912517897926183865248598709377818232547482224258353093459721890013123432622888581764283401121685677355890167932889104324241570902923661321762920575887665528835764767058396627197306586096675275014898858677817232566428846643267565452052090442216315094153639043581531603508151734293223504753770774125018357717960240638835888190216482601698549189092339495603506874301686006711212430371497043984749129981126290329275396702325714937933737515686395001645407630415522982238657469946540690421580619018217543757361144329148923012839491440277824192949990808005843420205905445766552350060655457415174930799365793145532857467206609667281426540573008146684980913707038947136836635623927615229503145617735522093887855455947686517370398323211782251737472020839349138908467938601988330520901074797932228915933142274716955097005230729182736492794713032229357366535194169372541993345727965741739379613100557833081123707002424648850054055796940557615386474032011552346831026494612170470482286100679576086994024299906114885252033890667076087886149697939984861275008276474898957332141942038040508279599369740240074964201675688569904215101988355468829136848848065734355164318882060920814125462532912453902158454500898435575387756384815579815989244226403269001472153283869326852521874333250415029374252739986920421804254522895840996530407107822291443108040736674206391841437925499771634442761379243514719143532465050054325774706797562455187652877737517740206883538950830828524108570058441887598091699504897931526346953142725962197793883027941224224587392009829572818009671728936986471413408506074161382302153551562204804487107233927202139400649680759584724918011764861706707021190423608016828645564728444079613774845231086817084422835113329223461181688674343428382967357824820498549371847709904574194779846668933913381275352472607468204508213311856164908751253853961646180445616357633213592269678763411664417732790663535959754184711044112390992678803992435100473331079079990267719348109083283588486428954552390604385930828456706412244672114611914352203027260429114719435192407736982058582710333918599041979889365391702825574240456754318203853530974809866490087980178287708683287636956972099059048989132996724763214194074441551312318461406537717400039725271452257341917378987475920211128949244536471873019119981440535905748952139843275249390556219204220872251530148183914725346772120336765852346406482523381643970607425467206457605961563484786571495696373166104756261277567494515618024745948842290668948765392253671216419172181104767517499952926647625163401534012253328176586691517745217162981579008501005456918678886575496976653632594602654699909986636275235277945254467272257181045757581101872820963739568950459377581565761855778227626773726376432985969964167474712038803927198330478880533400328875833478578175530679302526411152526515557236103124728251634381455472589672674583894560879609413398526046730619149272369872935452701438503451651838995072613710236462690767899829730821762515534051307414099750490306561000875962662144963051541112220853013327136423127106063802028507309016928996660209474361835697042505079678998713451412712687104717843471218550079644706626458959614458024583876866084857475639337385503191364656378130806167927485708495167250558412338994471375370414956587270513195687520095480929943897549390208664153459319870090419457670751687975301561822351479173426739936216107871392446025441626623904774089080185895244703109676170379955830602935455169429815326563523468284737889416632978706183600147333996268138273270983771837789890832039532879132246174105372555369293535128582654559136752309054103056775756285371521633491772206195196544131100923466261652869936587840098468154702044310470449732748152252519850873797880146584020581762802009790783508077137268906161391822886859654330556303407802226075111522013695581417251317537871292536786326218895287921389502450944749062708206296988836801392566262186197506016289529620148909870282316669734078277977434582886311364564864743896812259211972969284170235601826509735137618402233919653716888542536387663982717349039322652098272920058933642066324628280408070014968544399290944272183652846670195815649405881956509027400163808107323672487004812550360049256167656092982448854048644349128582925024812126474346942012226723505961096209682702171488688143336402801683781041560120151638736993612626206254051747897285619598440188855114302617589664501128989600143757708257937876861691873876209369142659733201465787493040449977881050040918202113592899992800463859845782402403579118407085483884614637666824580470557081919820024759046080196544030885110763537102400762023743430931562303392210617319140255803863380362362221565236468246172462412323575546953905487432576278734169294550633664103010023048024078580965104110513964417001329233486158973872293107243930208344017054601247877759481101990874663698428276847727527566657204752868354857771028717005631944896624426391328747887065894973017512851483537714003130149109429961483369514289988839113958835964092545319005080951540123143763182151038378513131440761712034722143120026602603749661954359227736950396417788488322059402356970872743432848493610348526584849018763543124848233710593137842876539586594065081647636241014301956343641126868325036274200941019657288793223890645734496028961626549851457866461564508179703668164966571008143370277794309748828188466372457408750055260112679590198349334773382465620583183151529054612824321131379291369453349114290889040457033959124597779832379135856508426505212094504759924592728540143082310788869603320829632508861761254717514420328509411994874409792904870842256123363163201311096645596605692663831019199335778242430884075013403228579462292537870098140439473801746199285228595810058494484239894093702855619388962259157903817994568809188001722542702181838725766755177902997198329822762896030973127054288091369545360424776385326034545982355524931028458366140102956345135292532800414812310176061709627906140593060239177304574294713730628150859039171320380525098222956099740849708727850949647712514867248968401362030451229940457649346292747423034969309662943533310414055050838629981040377063301610194681200844201931049254275832379808846597160987556311006256545971717191205083735687093655876503286764019974703691307400286635136997074168523820991845349154584091508559710589303563248016031040561930484463437025450675243692500887970506022260621631325957274485148639428697070440425418638047990011358141196153392343200420136759341895095714539407398951776814941943671939850859908548568110072454592515035934004681740644776747125784463274139670295143053266592183609471393347310846609177180275431015333595480762107676512623877738854151813459324913643323704688638537008282290003260713921861597728996399463034662956011156537198272718817379677297890685321000894445927683040843448536220511588436252542108839539187020293656368694185014502231902127615524928149887510898750030533538525106371341913859368965297805857996548185769793293752703906538451233119551417082465913012325500337954059184251392964522380214111301160051093144924561111005208652884080113578509411901099586296554038570951572754608303086617343635138149398711636267905339707215682369269635590487002125452316293995473428629036062131675908949504645054491222185853089113219502426671328837442839069361001472420711953703971426971710907406629766515291396127793029042959732145825839233834339680971017448397997836512404777567158469094565003039742911332904816404078122820938375565301157124126874520150969525620296645981501408684642681900251408843659951737702818327481444333063047548862482385490474486517908455831991010980879938020712061633624654231795196505057614931068490105135947567755264875021372022320970603503907480352308120431546094142474722389809271273718493633424411887395908769472530030211607515852257502098874310299982367283374278395939606517612118947502458866487487677570136810930745959448854015555330775343376103056612821345021966286356591424390200983656639653975459973360589880242520799419379803819498579627476604594190601289022550888319577901404465773786339394317298235276761780123379562018323348500621247996967174090406290348204881187031677747494848522172094366258349282433258658416825096941994427898403931029738039198920293075714001034556175865436261813024005757812917845894537195575243977099218865003996305202218485311112851263340100894545386794607019640954224045201885456860750538769851714466585857445302255107604708340094384577473381884022597170201448007873396049141291288091908257132358726336595085102693737452119835455232692993320969940876844426895157568039347490648346807617763805169619953987425419330493031376083936187180243796539143592867324028112797264652196882415693239559697087439319189264210523087215174760713227270525467985807484960438946903330717429672858222347342922993114451313239927129997699101017305106029730862647045730740703941387210076767525734522857474861457132456899802796161213474313880702390086635387806398647434016709739074267729714793428835694284064649485746563564270069194585839866871075080899542937111445151350818466934983730618627092555495115357057434418688352147339463936954932415578388693403845461811885499755912489287144879772200504901820439928421949764473950935733140568430335823508966870111637355442838992065201339547067387430970098165131925540898851518677956391924511851601692538823015231330782501408096362856226357000407337585264209292196844077034256708208828744622329147843009661722033730068879638320209329986283531641577771376357585600226024055613134203996848412160860970384637938869441133438219333115966223234226910569537548343732528177407394452390014494768187868607184481766622190364183487645341684585805114233583315118214856038672358867694764857582859440926802315163358887467795304823513028610206167388280685244434691504319848146901599808786647996683509184427588828139400382438510902773145004447625090957045180474949084135469401274237382368713174824950532007185550981041109642456205128363960149529330066970018724244003591027197955231549814042507990790211450579515121333125543600399202205300400921992088820618812107906446412778506423702067743323592342657293630364443319367940740458918750148286893356497114743123624567924548776703638848060234437872910591587283300816646753019213955108295293111342937047565729660592755995676488214328090338382034717476836178558994542674571940126174855479277081848760061367233517180590889339601060742748445425749463061546041855548492586214005430270811034913624574245489026420887846299078072078558778163242190866424548995125262862998340689486983252515333775721304004055956279621591956607864432943537087846495241551635091817890962279757762765270799285513761407447278741498236438844199730702109448778949964831853224671105978599082820336289619674289574460172754744913040803397662518271455751465993057744527038264890867732298527339878835008658802306656405744266205244156273257259486306321087285959954108467518417863888042292409149559778880616362949474381437292191257046727603185776491762758707245223490662664471116109601987956516432738539932339571397108794031810542847864875129867155089375528628070668943241130641877959468792294733708183707534598151943129424806483163915193141529972586201678940426863909669263420346595971145663666870114923953451380261473141177542273537686901719961468782361058521215462841998824338187428250623865529445067002493960467205116520211132876902584491142646886458491820873096275252353837007112915530497315741104349420482581890773258193817674051993726482949443511508160211838564727330295590525400524054267842895941070585498475825360913732841830043109999805375758804529931773388201787307617836738957971220588657180856451831418897822130901105960087381740925045438984981313722884784568774021263447798934620188761942333016332395895498866085783042863225363132765050786623373931184589378489163550455910563216315385439172717534414828425293417260475620954178578628011220851704633451180528790026567392672732185373299338419629716703906084281752992421240924527984936579397385027997464147784195253237081634612843160871493126482731757116903246211254143219592891216095420912863981693073634992081597619539451344183596380180865155428428387466698944817130167378492632002833853417940159480035275234737853899121104284201274571693141460503177506672099915599675294402376898973780030132019702601999408408141624127341211290702679228880105039889144014787438903513268009247963131292995183670118362166851741578394977095728886594141057122128961631668382346223564552752489229754283912132148089850506230881874171247377512278717664014107609700611731576889697397808247490882701166455158037270169130241436382714139143139581910307210725848531849600157858810552139793439957172453273882267721821826089011126424569417215509958639213499656284867656549345992627614280830591734337544276017217706954566196443919825632232804651803617046615861746821908404107365494651262359932948036787967674175024460939636433494992399698250044187701152607949262595499014934910058489510750368579064128129679209540505058643763529226279534408904327943122811564099771600948270925933201659033880063354605571620508603935443715276547371664006452767036394646857114997518244943508036155822005919639828917617590195993678832768775722067794689550235868141063261350692535579997969826104556072066557926453836358771529090324409378926672240894562989232666042867059083020865064307323086092706940315510400908861737861146437390267910496422172869089645812014709196866719574075328257740031319303340797771240335729708328117608963235280906293147540013786149752170084018048924453871628629879437078850220649221918312985442171600440672238700679620877785773079667313652242397495629741373213886934312314126492889753704039143885309419482347257573575082131606978207304567512718195899225781473501564937985211599122011931363371883734326919038739408347408807808618933203340038541426204002170226306141063001923551993124425668778018414043893394439963983869167397268486193654181411810618819075167369748919184308267699618365672302685469377291549329809811897197039153878223287966118300280792512839331335634990940924556415093874622652543512748088893542130906487834135015640821037683523441090138270451286070156479218749102504734353381687721448426750745753871463284521458122212902353734240316902677533590972323876613760816274421282231500411773337020936800111679697990190022421858798813801841764435076152900725802480307170402365097687138181357746697551568207692685443389043648723545849943231567002636705301393826277933456931889618580181412012720053111091275314376431644162749824419307903515154411439421294786997234316584499437246829858311234089152660612857598109601653642239856216248602646544943503689879727835973736767772051125592414243328249466387751594824925444409016523705191086970598025679157208910941500354652765158681043538391040916653840896903274723365325455967694923146295549124105651865278312731454971286332591688473605432011163061493116475016918710445534321011475396120120896004773365780124932728489881606481183406028910944687145653658948718518409424208587347484835463171912908603814317860773756777453068644061605013095735192705472099740945563174510650837842320262925951027167328549727466495924790414148548553210217426822676971408377230619693716590537308277602624573057300364067856653384426994337762368105603724822977823354276412576336197620415843829828839852459405098019908735761742753559429361810057557891241386414401770922806445215760749804569017127456354966952225000999287897970224374751237313621654840406577030868713810695238829984017407347188054856475453065713963684283022240354656898599930664060960091269039319036709280910083007980660240363566046269789125301444662153425819006907896186578995304114649258911123934108181459728987935206007277010275016419563894530866239385630086407927444028679030029289545811721545445423947705140177756247611355232788267163955534807388456312969542765055114792654830450186752448132092831978502181103305751125566354637557885063588014756446099831052927169315691299201485428237789497218082746772289746014951763477846744758063625456312749744400860152178849679525851680940681025162722447248121887618168858360891825683724780759223960573255696007008927069613620952357776400503851723550296009538089930931489566178139972591031585151709409424722395698391993035772088114220461295598069758038600010821881780726255969237954464005587487030174974032925183584450396308201370117356785744787248989693767173860930847392710996691048551187443557645670979691024965636212925802163168696245703227800809803974199026746667182508699118791697068613859701086516849006005342972127619919214323329853009533653491054503986515684528372360711900479085592205094300231937624874336419808516751228314444833841819439489668253731226198899810576456446573231765980034317820612481415826988713096070736023016539589656841229707879384595327341406003457356639917367022419311487477871792958824246154264844023166085614186325751120172945282818916033819410913872412933453378408275027704707972390260523963532623409192593566453013211458945958240624233653000589449740418110021891583885738832271965965189377713947192926802801644629551711789667932348701330382417546309009417461712839200283288496770484383126800754008108632533687352148379843363963089660590218426332760493798807634930551956064001692059570528918478248715854881758255495324714597563668031074151131007157467685635891322537340364660919897386747672984272731294901975999185664810092953997773131562142326233365430149935894695566017278081002679048338756785592786678280643592018762415561009696789600428159717823946659471634041534828756642462184629028369107649954229453946272014976805576041249515779584502871629595504894793633531596740711722875640566344898372439543369546854861429909874841737190265016910385964146584168431251218000476068432772972715408047617519359424098567894292172304130930434141448246215368997768464728466938635605679182494824826522658652960153191302460667204233169890143085423190404205821085548402438827880451549195534081722040328867053605188972973362966826564288283599268049457686526635634623477684259754313976688953133545689980807507812254916135949586207074841501285466020096992712298205277104913262690525373168942359884589055970865950023085576203146227260193733393793376176704731602482820585861299292425651623552575444792013556273265099078274359753378443125186518918230567887441972638174567603552012081246313491046495766470283212184676153432168773313803959570267194096858401326699263258919143197057184141558486603020384528151117818225452225250695325812876729304252119146206807270897437711972199270467802674436145295844176708939152150257944770573166914526004100958693525746725685498931375214763614234831583737808389245722495137212634296092865111081185729695342506206465049858900797342417015068579089347641137099995044551733967113193610877058642021448523331341294347323738648814943666120388613391623981086798501539413974837452112209408894948790844889633348026589509638632776065225701403339271180317273019607900913068392036413868955390460409150888060204376245243528298906893073007189850389870068206823862226577676969161467227930069631542418397902172143687105842753834967262281736249206484930802122023684710685719409028572180864396282259792870863811924270206997679668611338861571623884951484656211736551812732387780201715298634020344354206858564415840127390045914111543746089088173042812111326296134325315392599285818908520157238831310331294644303243680880039799535520102912956704451175488446048671949182761450091875956040246278049360440012802692992726376814556682216780105812246223308627952811769342967199733608812142917430346663017069380308960235608604360088161061742933982693526115847356486364317584679367865215373194360667217347832779375020070184261105641305058445642178142059872699760765517993381240206965604451235964693391348923764349585871721874057837018544518170986190922320552396195557820641663757921952995929028475072104450157526271810924069051242319017643675954683902113720044764221010918015740053293391429270010975952346408674871816119501838339820225027408303009788456142608047496400579851967987698504720243584984146400043584401976789855026550958985413886566323391719290458158178940811896817298169606302522480419470044936103901548073208755017453460340099286628755586238357537928334607793742194523449994415632632761288909480879081985925114738043577768733017831528304469280659633523276133404089449849492924836887828654712112862546713429585778070518530046056150108952479163208548865055965667388343381756290830256339378256095293628380134117308296514410110500954105844638879024477276168886688003892965519780908971847290164235134191108728799140491305022304360779496736629886895047086622784835935492310402697326643905629054084574062463269079835591562409790351796699709594195168756848504691352886317385010635376414116737935880895233890797062647336874030826252831146976117200170406478492906356235982230276915478332723276459799764770407274427721030678884683987204382292321856698714468688713018074760376661113480490547935827818295807732978995143556937156983882578227187342707041007445110733030348370267523524366127581969186608662207829634951761352488725266602537612155307632486227295623038524016494184378855630378502004106341547830964716714362311960721211189224458222143127543155874315041165103564325858987320328748033075209347624669416314189765858074015325205264367859784865668469581509032752675446671911709704054895423039522273154762967665991400773224856627414327093360971302419126278160524874471608600938429784869762261614574332508083465339520194298567113204582712930335418854597354884112245154468098269378683144846687178541493366874504224153656569151455000827703524049701817133600616573869645445318130962153702289644625300030959678630712237143055938568825397307781373072014066349410149880967581710150507987629115688565699618080141143797834698286502139956359723254285501822315553694895287282137879334688696274911421618120250768823182582947353340557162279200872846366955062157959395813155874991626052227697549951129203698574465401852371779281654072299328889629333586399575118854590131691505671936400191266307794228491434454408504811096830485858385801843942278427153722913584990539134188387439448926598765254439051093205054372167626807363259000366681303925045402978810588471420074707837694610587813776506137335485759505793311313234460363987928634675091383001578914390107444642768649131416325284702774020031987938169824514653689985201328332644322601842490134928833661126627066000332098779664113180525576979667757783010097583433788415876890388558638888422330680648519836922563995590390729587079504430989207587590883442586964604859059017360965506259445138879067116765981048918391442835696418586831055220724265609427326315059430137640327992516841759432595622801623919960989121917527665280022640605628690107372749542709756096236242167176086941892092726016809210416604722461382733904488959485795619117005933932993519619794145821217875280438432264432506820264195282094094998647270851040470362458919897102340921906118862322594084153048984760641309192706848530590722020129390893351093987425437755550922651721906595225497072328080067011721648191384175466812449082047751559590613737513486534165618562116395398927496279770005815500330560887929254558224387486003180695749647918441035658192269606431233486905717096462129895960228515467116935248239485804345044798487079985460285250820959020787589364230903871052243535877007325842601843815349744029016939352212558168461210609452711546820998393548937092903407326036485948878321779766888867697029934635435472413234041359852024103102287140069004820797950319019572858388923194416361527401306116083480054194882883146902628390341907312230635529856796011470390125363788408592884809526405351322252125973542962344820078855030876093345353434528720415497940651545832994064166018313064879785683514033160476930851119638810580510964734268791212421946193733352568639602230119144340607322656006435531130734042751799277654904875085578146189343429744407241983890255832276458472612170164710297090032815078482972399467919089176394388237759104677051870738849227927959395027371343752601728773529510827805707305883539203303396396226736776358979934686759629937482867940132819096511606158925219887574461514008987951108231148408437131846181218899905245987150552945245667081114296031403386843444681995599068280243665349270366777086761496507938039123934894302026674288801468801878871402762020485828479763920165781509617535333002483029816178119712995550375625252007994432380640808004545804655383460683969627737310490822540435281612609634591984872655430932585382391549402055238295920972402705674177865976929916917927244868595158183529336656384857314072397723995416210509308562033225872819873916359358928466766044385450367995320263106129847895506170692155613366414224110371653335827007177970272898036892886737536002546799208070044570810864883093211324038378011295295853418623940698953227951069002404673228565710089077098748685655052629725394132682465613836479347491488446124179608984136211066019403890408092333087139130334842622494451374571671553741257186144683061204786660447538220980136563386121384748009912106592273810787316736730912348404079974469198219214234394160050401275042678556824395357751058412059086146731768259595835360798404921762584849860502228246828204965383067556618224991516440776681219426598335480307043367236190991220716566561195894212343490158122133807618329553662048205594079334613232376571313252115945951945434373686214278801265352017577858035268532667129383279474263223317815648139118912254489729193282418829387917191164654377987150818592923202659191179454349049734162313135140585787203488280836705158336030980349515831032336603190869286106713227616495621532266227726756944996138910941909803626754683252483627061809614272910254034831781378570055736855499673555459234329095545582730465670361829255399717993269211816350195621723279024782292536326327889149239791266934470106242132402602083680434333388117983619467579993356257988893472049922620771214705871228485876060305197624416752930899271120443264073932808598953425897451839476930262492394935204134866816004010564962081159871889690113844194314530260689248005903069518283731730410290505329651965480707906245649795473907229195676345969825644395127419752613248546093808856477655711737553026729080574034673127840774940292704531374161868135305407690421980681721054310079325102920558777898266826796385832458498016282245348428641152929448672640551310185411619701690680667099141349483498332311134321070522270110784095593342033437240970411662179051515130713150516122262043541394243556630205353640857382117244550621899071613245326140191516072922121784926400900491992045170365133817101355960576681575465158148628378020837389263991451657662465582249179588827548592702684390616809537693746930705141155392956735301015721337788125574645022127432644994943411123459939410059456999271870532335924225809319195748800586636788903270568362858347770880755678982220113684715338185661178911285094690884874707510454749576221507310631841643552368396801597090151671120774474085813328362090532074212899103299197084338692677996287145918555784554883860398504326184222740841562633887035201122944112935721575915883090362429290713836547198197321466232243209327644731483547471713699811451353097859074730504627173283422054841309049409599227447335222443239296290226620565433811529711907568122207535151722064716715039138661360319614974556928872080443235423530069943532640813617299936240172847021228030407971470201305511204530900858121299539738364616705407886119111653435662824511261411036505981838985752286966507036719816823676682568609882626440635548191074228299726821888290491783899320632061377330016680377704439614069520656465914304381963680947185165871851334014467958988758050295639698883406002310154683258052253951813217210275580004838038739842569079991753254486137439445951147549889021074149920932537541104519716428501039025463919562248149662936991297546448368386244826394776886012053495898298530255797133823008003926020131748140233883049876445547497474283463005389563456668158849019882938385979514780509074126175779545926796013446789856931887385729347268954455392296265098245270853573988219923980221409803374141776267377843784302140911985646488964358857331975210699027897040463000568679535231782135264081110898028021539457250781769765740581134100482068527915065212685321262721484941479220081241485458890561492045245556088737151498279694716818473747801861504869512502177520509301899256516078121092753950973247482146862349325773587079874123900181461840034540735959436244060888825253275435662385817110126943309781105360762342986952049528582512899472549880403680958178697232207120056459831601551036974838707546712626477199749198187452252993264354122891157115776217373823277652801382726071369370842096246371860368121809089288199084187542245507231884362759384635822335496912858403256749668470374403012117008537205609829281743549002408612716368542655969406869721466979763876256587402810861583816835404955599437418884790918545279771599211166917726382996551675885073622537955093075078178662992503982901367652434511502309667307451739451143597149631989321776334255612991989048605614115804923463213027271072724213468302619691053265789040413579025204934052022087446053075844706360997011840857339845596112845777082636505990166162801373882141742348155220745537052081464721554834268945800615090477139519435456204764805284778336439143030667542091592933056969747852794446661573133258784646891124858564853458485513040638408645036355072278011201141930398025037192972100386367291734142869265168972268082471473850219772862488570009307502305628077728929464140671175991785745672043772625134246567473820094955472993866859229030170387452213501846952929663637333137089314482073853374539546692610988432660741324126392523390521425462826873670960824048655413931118856850820125431156194253694360436518137695010154430607218976006728541125077799344772249584319742865530509099855986006895569944971720265118656971773682461862220900133407847516327740895229820496365606928022475109415255797232922490870173749938699192970117489009261474552409505188976552855266314736673969397022597625007788346346942023938169716873757163031549438186528922693418636242396948183846020992040016381208748699559456674506534615419455868354565423997515602258109473947520455511140377743332429550015485332551264000673121259036595558545113425128283822756804726690070018623211357017957793273761101957596101889933881204068593019478732140970150675629082122624947251010333542873277635120976816936487783751518544998863631869515659635806245544839468673822142168646028518504916510722845841435536169792687755716138325001566268565135778203679012877484085037285572178889802100881796236337324149101611164936058215010022804890667631812323593207985109515307580772696862132917874905757827225041737540013667584318876522144872442745932457394510469352398353989811486206696200345667709360605844183685846872712949840720430977500589342521399875513201532178268066126737272769542684318107051745355685620116983058692171999688555160861040440460710070023692836409197595146994831501223719873894292045824689334814590242504722166645684562635245913235979257712504629578772468914676135105423416968466950196387367976318499935742922329248601540504869316290733585742062525632247188453273418743708754880726874495607909063890785178106188573384080602788618059503471517699813443369473751917884794486754031866423630345227433619422326671735513244229838471170058240127551551617771271658937147322721604487814905172979527522034312117622717789160614586850469887540077550730288662279660610313477541586053563917952390256835352495712680049551481901342723339256434606074427916740864379279332206536161316883916680412886964093622104321478552050823020952993101442433832978805985655077273509096953328535461700417571991131750331526216590233655413756657761569079785866508954833314951790318441989508177792416457802833667065751852534701964121380070238249145036994672195824565241277050638019932091511085668805880170620910922682942703984434046459762128163565834993488394799256738505303587375002566309031136735554401957986829794137407661078257349604070013341955140872700469083782669004018534256629600941022987937859036646862483790744326600090284505643780855286424046188629070767629539130665547631278920716416030235305788287683007904864973336894441074740554967937249756768242942890521055571608749184663630010845014775529501844298536611537228701067009228298826858047336912793399527381408931898529856106061541759433897148934807918946159866494261731802074725964135874031636553636460405204019054329086871242487494223048427686030445929076451543759754570136612070802670671779238920552885678968615853634957849623821837325626130589353227159805473677274933105562750198207976614643726073539667252231222001119148893222316595956587984374612085477838015258807974725237906124425790275255654261906201516931669815787225280229995303902497990904168096026713763105221349924585159467113124212884828068851132278115170781083662506172879448867381269708494434394700394040040399112957115238330680677627742523137679066862906852362074036194623210249192952565412638655643963334745728876164457014307348469545481579895580751757157103698073907291961373979834968208895628769515164705908943421963811840683801535634205066730117632461455944333470686475246204852002681293457919066094655776302337316021465983211304821115764516523413234252423111923422573026247501508366101367979144667575170032064849596438413289503598514228302241911462287403915246978485395411035530120096006319789696821166889645590404480438443375633036212667753885509172307314100885247256914505463643035332074218702567996752910469783965786107909367995470431243184688190907370496352930554932754867311815199158067466975151340888058685113801020010186501779145791760624949391617172725516542093783837590288691003528002046500337136640784621496338342212079744097522296199470151790209400158148205852769796486316850192805758283263499099839811342860769400045354421592202785216487244262979328470419433305631830398614490598460611355713439009868915240811512765295636035042850839480919951228392062927503481077973845201788705858593655033922105964194939511662214373901282828119699278113032101807499026291488927539592815451834637352724025401725534606454007876006238757520585100801553997679674317934822520246607065999917208005706896863478578621887733455229981052205475974251427425343280781886879273380112431609781332150026929211450174407983077488821184217901713134347367098287109348961959067029411438168838169193889388265982043787744773921494451167031355675538245763848097966082065739612512223199464040002095737306737557642862963638081479429344901721394154418451272305141824593945716498208345764648201203325561467287223138696650010241922589313576849565730687442198000864938090482831617296745790228259566792835928358327506202324604880629120621750115159281936836417849423187663502680940240105487382382447229167158127821792930429140526653977711247533430152082181264138014381048567143794160748654922884537413080480738141068245623708641311781328285364359899277109032498064266812347324708560219544878816815283491562226709201034110806032449365697595187873136295215892636411317759626355195345504838098896374815520225677324868132818497305088873730656548964468630168441944083014301566012821457093168882917708929248954366404270735384237060104683013442882272923422005185193266446845456146136103134365410369462169733885680682080277038251987396257014851060409065560606482503231959149505045262911058006394916747235224058672229463101198452519666920210736705490664329835963007162697252374238724535134355768839422608163423709496884974020684106033143425228614378064516724355576596387102090845292897344794996193303108701712970810094520612774064926676450723250028592079954460751988260771873279522751293487977907906633810204757649970281950411005615120727575981712133003237110318011959627601066978549026091348735652183137357102354597076283926380841848776964105967283119683761147270054935934984603905363141137237095258838257480794498674245663604070501226779162609511570142083915174167407307498716895571945888688807029245020777790117775612781289877442213814138736595472301218314330508808783098604189609672738538900483117602551486954032490713754547365848567105947743864372396148350211034109733946168080097283454930276129816238976118284190110485644485292257550150909832369670409981344663426852510481442707178678005924215183996690251421651975967103325754515255083020357121047894933008474705581123575333626739347178024334502409391574146330792677184476319830407539303290010993262508988665034092063153884534980098858811879895986874198311013319228649384014504369990233172266800854549621853807933901045021688142932757174998740507338335511129243424713833262594738915288253891737786099389707718710212897032159038933753450410016882739880995601911979947499555470865672488246606268432507945216185936945125172357233143925554520426276087821930570331049211683795107659323814079151153150734589560020486745114629563888098614898204882075317121807957904488294779811415157738892372392300774528799740130870255342778393244392709343312827123681077475642127032598538490289259351160614447961245522219072277610307461721564669796559153265629038869662412267755306381175148656486034799449240338289606529923060153048124551830573300479676781568074338739770088332536997780678138273037561387412635671392448555991275573984944147253422310017115385703926867087952979396697550371171732531281408435323001667618412681269533393248506942898500723850796599038546488512613807285472842784167729076089450386891635135811077996349369260193437434789449398121950808080660914977620189169660006187183585137508961460595545132688904856609264406578562138574748882987523661999119447257148825522868607521420309289613078928155200686585470823149604493092461334501152145061515098936193427158287454136183830881426184420316169723233954008793763979349388784466551518457837934290337311615776386602205470803423262899427674664468707878238908128207742536423163248198032966896829549909234308183841389085854778472288770579544223459240888962269270234579724926345547585106884802702176633379386432497049567151705840847609963408939184733084286114511301596432014033607106931722009985230287733514035959046549143631159498108777287388490763534631195830877434854446581166292336718416370593484258628068172677705587106312552309423290656894197545934987742927731558512168658272992121394609082176237667605271566029966648585334707640708705819751638207778243102711824818322291095976257974565984353274216309477627005227359760866764875412968151431224824116540351911043574490801510809278179413126481661504123391868752926699266620958823765199327911008042129247133388966370840260734917309844267276840344068682409600922092581229595152247306140979145671365614241131603407609094355231812294037450208962785209472083728780287793896898066628051609738038995329158810749169340420689831649391638482949802691251911359602330194887187490582045774054452818265100390957319663703102809370049795143899050468420869548594940688682413965631538681020285197420935365718424815124464292447610163288097876502476792721117914965313197562238619434544630878129304986425598771633391492883534775885333714169236827229842819699114633659475231683659934297258116999510889125856554257293990520660982152758758483796162939651865936344171547423772996745290219022866555064900489520819673815048658763953242644361911829928056127498568848359707751155803678343890826294139976230241024009687916351221919563332794561842184230353822571432309518311645563259854557057918585253195304028216573295076949499838760055077154165600158023996049026797748612525679696964690471291836226689170815480566434695127206898537028831174082680093394790770745758978638288229921131541115740654639693214552806505954530466926338911946459488515985164524263958377646498368983437069747314590294506138593364592032300641524855399480337791858649062769608037683676825058185854735848321937460253572754884580451506237937040176862149987944920967094195820465152307306938429933432140408731406174503475049769751352118353912633102872026873367410695847127163696430533008731930575297782503450880181255221704132496721821592109970331349098322427723033665933490684369284522001129585947169738886757359167305592342369088051972851737432260550008297475504070330424428221340267774655182089168244937169390087739093880411779576471448433005041481327602730252373922753832523370592721317815553831359687038966591732047503986433789191379251342850790151959294826592342782451425726809358106394439691123260679136348811212370694543253564263569156021553019346431494181690352386270526351454854360259179510881197230338337995038672627381243724994692425741909400089126570865247065470115932927455674861322334864083650873180862782016125548118599066750676617514093216032535060028742911755724857508521224058346301356793388004346375241261602700184903539302920222366940797915591204581444009909593779314209909968805811564174111263440658879840251961419705183336011012774733974705837220402236029885876784718236475635253160811350971974685787897836492508142329916541929966197853389750924080514440256897726969096627291395176411998746348294985553411362985752313923400921820551384683209449762859519233714286652695967337987750405271635571560752513801633751517927647182629666406722269752758144268442626641764234455370447451600233109668596662943911180262969551003350805618811791141337614731746814198566026716320699314441478055144740501240838939936607275805112459775654784445774928815316790855473207171281478680912226388524603666038754827904478315871050331686921489048160988701540582533982194528570917329034202041567988644250002539553976842529162201070067217037609364604411376508389379674660311783689418656753907374355723411907080229873750257547711053318030011534828596430981309303576100405331263136101053076688192449212074114369626997675538562688030321946567781971532208910267677611551928773813066263847015809078054038660507067347205927213596730229897358596203312766876772648661206764848825583132999252553313211524801043395122309283857053345508412194530804329673832675464635009489114062068872764437677618030301085829079830727047249603206487988050684364414948670638531002686911120704650153438253825543994939081521657093729491203752960408189374391958061588696618033084565106216564466793038560506273290898038717199034298445861203435795053643823185985050859867899186590127507818298909211557282951537506521959947311834762389157570468507376336559262585244463518176576310158583041134117381560668675729454813096514809659045062114843087192637429556297014016506341796752935699558300458840390783117997531907083098685653356238637068736778957954413689359336923121971334941898020611039148597130153963405442592832556330146036701846139369152357327959143939823510521521792941165755719132352229929963261977275963596181549346831302587830434018549288477781246877619891388381962141894159990646565281712915255925844010187669317992009002915195179747125687778528986875438779543374134567652144961687818403601625233705425728784311486294850412018432316810990458780797642231661398289573339242724792334144522935096904625107852779857054924979897541768889352285109933205313149396378977879541763830128887889522557951676587941013291392187543678800430593605270201513694338417725728431278223288946655380530697059954922439925108771223982894086358524147950361623007906691048750138740125496682228367072864809451590585845456910801544422043764044771935245381345858630218742994108943353694221837264071931225113963939104601504697325664436161915637716182214964662526513920541656829361999173968804830700855903409569524467803748219345962938666068657440689307043757445521937792240362364844621224388694557087639627176736728490656826801862021112209723640552437276492447985166557929330551501817963820413461275552715627772797619007762122786714811703267665741121233583431674384122957698072793844364904746925402118657263857735943920233743489858879925641096590410220983118456383908044121115650482856483083264251148758365145790170326291039926784494700833108085674214581749090436510292738102765375718653179127268624900797633972318054666485558061702746080813714301408736636570830538547085312381069205367582177957977444152108959343887001962238499368470222287383251086644029936738443755531737478847642041146523851712708031966285260294348528213484996123606859210430015004579282346699660054641790672896738927170062257139162680261097576833763445144377879323128973586999314357934891068397704039798071252478626935879137022629950272111369156422078672627182689117546041485384867970735806147483533511536320110858995044537021741470146291073893902745758714523341879905316272390383722333420919490106729250413220062649735839310053010444719646815214814487264416858947163918391724200188594962046715722181707033306321399913230749652254077089580023202811680489455094968100971628090097850948337273794246577402614162962282883412885031213346712516073096138115081308975540157875329161665678265054320855627835060549422479352928405096163731947524713894243097849445017698014373596715062771479589068110365551801819337157989132249354614163784584312353375191650544593905755524748303922326138894588934713436579261725640141734638427501708503677181135237664203925263874547020233377656102827347256331845144939723111607207757701073854040559286606517387016457896576583334397408123742700475019979143081078714114905497972815892618488996488079962622774699103384268996218889698191169244116222872548819301791659151020286578257305532190181256692120429464397110725651791072723537671657338951559159016141418186660703537009178754792203922838088926981497425411908432011482018678016395548241925076531698371943873439999935844782918186187737688411533700834680267371017202335978280397548168491104290774803991960011917129772808739061823985022359974761330726375120429755409602607918116418102414424451430275491797664242296053614676550298440195886302650120327271214966589530257282890266371890138497783885640799984986487090358565274133830779713138253035951814743986152664502307033670047968467109393559986907910345279620348517837324213491328494552706878581690719634466774242600068068638224273713665931006101135333882334339540011574895188489612182491705193213408747565422918563906591295409961653291322167100676893713538499493597894735980292978701148363595699609957406800768484251708094905657378805215621554078771613938361826839843752954571377312690338048776964437873484338931522966603670719843471587910467483998394405645227227480452896549192447006615236242304150325963273872947612373840922116206939015044853018214597141429191605255438823311704551220327675970859378258746240088269080603710773934998731601192520970418469536576803828240147108090152315583623269952020085438974552506633259194565783528443522301536758213564897362797944098584851853934049894006666528114268710056905049192100419178559315107086891346813618298255638808060974533210000367555260732776336634335014438644917587021734483261677732412696947161065658643226317382177619303445820843489792726587179085777604610059188022399124289288134931546006417852715972410498814397640341496698351499577712522394648072512668676696155261876224933547147747492191181194834070128996094344318503909443216773996016078446585143029796190498899577977029299001178903418190930780678642250986544374297646958620237191900736712660866220399323494739472641193403629884427177868051630776249319861263036965978803797645252468904576102758212941854903469890533240908730094267590163917226224932123374028697061020794898791199827003319509783705191635645854452441878490978832666778614363742034697058580271455504039633511281545574908239193902926495939312089922303829965300338460834160959407575884294663024051133529107574054211841901059299463164546453636396903656590024495025331210098272666867913054979203018342892902529705297337531107739145589896942138167411627430807263120130493499176994795582306429792826349196598917480009259338523538329874425259565673268370888451577700039626158405629870360208411865193163249676753145691484570934245508346719614776296022360171910422288811206901214968654681707288124261233795192256802398701048266853290607553293324567688139456484727717938045485820665874325936546638484715247914444985983692016904717680993085093855318973339601550608732202967689091560125041684102871164820860453755008498255371067953029597016419118791063699879141375058504995160492310438912683433159304089177473676401011713853587649462514541903947755428185839327094235601513521714113101835247846261717615749596659851128099210460842833894495585123851367367555752216348045911663125971110312603478384502493090631819939846552380355249872551298412718354279682400105016816805418520547903628609527078117357437313313889320281940283541323145166200811717056137313244410825514514790871225323263474941587167321872872059877828971718231229201574041229793097359273580241442522048843530117374048724749181009106840248330698244482642016215073076118604772587443636945934021303029248145113242005113130522482914131700836505479782061589732306189487963651025756154732947984867318648795346776345750065295531245981873584510924956534939491260044342242565768343808943280891101658502009428436891005993825223008774334519808283496857671204138130896472909764427383809802295734420101491176817060627267580385434073976187863727470429100228372880963236629220604639037008240783881736831264545747144033323914024306046168425567092556764068189511095637667194499127487147339820631477121376449180048047608795267717292643591408267110975085792111130564982447820920578010751105510149826724788984564983625232092114422645062444870807065294151313623439241943764784164224783408517503278218677775034879636747303349612125631796767966486250863906048805491330441925191699681840522369606593344037377427784903194851776173776578355308874042252599164766027560815345475056806318856988703934989227792555264285692555473270371549089534160768495284119511234681773147927783298083822378639805137010174838241753380769663528062291644534076708236853122173846991457187545471746084897174748714223255280494782459638906236389659800091789552825861358073041199535431496672856847924115710688092173824100660084947819680827990667185238591606211198253678144918584233594905824918880541428676781057041101667294158181148748548553821289060828577767518477391986485223953728420913170015812615842405548676763717999979490559355997936799752446531407813196222294995626718053964839727557259301151711000464653497370913481337320596441197990652795574084694688090396192302755698302377425220079228503208314681921081164179810632473355301300323491224502562313615087025565300341981025074576733088204520351372755446570025478084432218218829881916481020368415186981941750051864696406046384781957830497203004051642943892737281987444778843505159005073696590860426236328007396976193747844103900711750861504813985538590404960250521492470657547751508268734783917583796354789845109880142262088351468982009707107046839167479387926967067760134109671199820422228395124422508748491136862835625123898666483084794568290171622499488392034076145319839995581868637478147415322428734868501173940470924446338254036267827078073827094418679985541859278294215262427123806014111765958145672428539024046521540519462694758019682702705909982358558374990698285593188606946838068370793889739819732687132539917736577127858715494701630140245370538860142229613771962907781136600547441384488446172163664225214956559372090990809257474292456330378770174025083532989460331313505032043619409488573991046851234358208989386404284898815714371974226462082191911680521734813857778738173732746695986261820097080462966588740204578594545467736945124216804129988626813027070540338149845125657828169352003346253195622305967128758914337130292092240821191698673068976062250053001512105932223830407779478018165417911586235409979800234710641570351025304891027673125931683108715687876569264115247290494809014302048298677479621369971096422663436256403302363142656531175973903567469162776280785707838353032702647129778654917733404881618483904754550713883751214300532513647597354884671837161408721458519364064628370960224436490628955787576679329125661198479644682551333528634110221363186945158701093144331441009587354890063607462750056168888844416910692814603111051620799771849936183735598298066329447782307016713100138906066169949500657084289715105158345756433040570977279172964562627455865068875319835307778625947524365207144309177721625832416335534570137062108005955989166704666662105573365368793759813864297447962724246501293103907020115488271276425031122602221608639892060955616195354211169172538921152675316648725760232207111690396348258608658319826647624904729885137582729993862489090979170769296503052659176226838873373095868338580620220714703718956532444381047270891767071041501784401458834943633867808012179651934517245488983442234350399842252061738109758700267406249843515059679604529473623539640530531333285675276226534110192830246811129804270243167065547105687061868744138224256662536527194633433273363795152503637005473075636490594554798775069980286563718235938821474953230445582459483698275633262040403700248186882298329344055198626405827235886391683314600059811487196570438191378115204200429039851331324998383059034881483074581468548436949411950312321993799827595319312429941855381300321080078885370316129588898056697933332777145748044089330468805095251648465670053672928447952369638550347072397613543840799779513295142151613772460575566642296270402311154562426202792517423339258114135682115375894997709389311127847035362979841289449822250063682401433774893587187404515711905316743722736356377155619472454273842636282548844359625677787560533647830012277101493380567078700492348677096515784966697452942076367008336000055446084389287381710680913257387354917224183645300131081706300172889535757324013807410431414878836122449002918726256859478835460172834162794031219887873771523232795878845238882684133867752184199204030513914035838802456426628527743769444571624568490715213862127769713290722922833188612132321905058126298082548105825189618042934481913744534873648167386318913552506725734396238858082557775737311135963516930197662491335395921554288166563783206626373338057705954590907217699932160693620952863859162985975266292157081112127458922097425219431454169111182089160871692740542543112395177385316992974066916448358840313581358749161760347708021451903544343945666645988942406218571058516406128911205455517052529945875787474471290932718584721964235028927594101657797285047616737536435416334021431243097557637614831355738718450578422216104359211130070620634122891052289702202030330765288732139149654934498312391539066393987870375851106041454341754213037497432733105966137581585112989014942271554007686592683513033206478800149604532349873171115843511309563328415065914475135367688607174214027208903983346516388597733486392904665515468973744387490290326696422237443766861971518836665744116613540424774985102843980734432257715158107453344826408087863623023670317340435297559880770835889112056642284188566628238764789451943353362664631189313079312054759838195356094392189427708060043558986985727106873454428022794699452206018482688342688973940574735725547382262826368662220126516625264092001693160247450163207910967402935343733791707436184879499274793028333721337929109287525638329683728181251560073000273565820074418165321698131286140859944995295057443062953027903611230299950592207393790587998633423248344412009463292091648372027022414557554269204898032864105625572899600763083904567674377562871075475580353678631721298045571862688510834346408906338991994578394436959173766302811648341828495215537770856502373513157955279106141778569262574653038093348518342763927357309131339158620287600714148536323398728842361106683278242225633332302236233547405721920564391879803286125606450483437884719988348211446852141998707557765431758764916322236785983087875280448069564657142103615348647960820078109069179953415369549256110583654299922775824433190141275198152708897147541512441804166114612566383311730551587580518101379012411381040224352713288849350959872420365877155379581870464416603418446453251240046364162893050273490603377853687259774238699733391168665408886503851460872640933391663846503515548573435319215634150231838826720257349642527221561894680129085354135946819731440013659259115522041719523438183073716577454930186453299511680503064310195024637624291132391536611211929013879041573648719179819913006763892476984644437537083654358826752857961404820876109903682537177944131279958556384358945931819444664514551112553696616785496163511374818877970077790572489919871220120650623645051894587110701375370835022906319294801401842506535303157127023287939018072651654365306657039148048140930072482766032370012096675657929986066694733798853751871697204016011505046965424346425353019937995004827731714507477248709942719714726882069867844657600174726896694268088241251348531349240245629947216092462495880996747829009535749938347474412582949987603065178437924858359721438947104194003137038897510369964323397445390035593231046466132646182565586948840270506209260060720360920169789013140741416804726394031955733741366201284597788072308877428281682006986949734794774413578762030718013341329086693509760489240091186329827244499426954284678229068013334906331275544176977167159273491735666185982582785262758762250603867232325050337941719454591547944233398988795533808231530412711158333473726693408364678937877665475267322217578984288151244762200821704381406695106869187004554048546030428607337316347923673925665038329398646840417225402733283957692854153703102032918504792207854658132063657430661948960018386722058360987202232674299082891895158505150107542154678549589878557219911970399589593872894763274670060537287468468023326410012433157084725101151895620053374031681083934005506058648489485199040078420527043401413459621171348399276527729558084371047948308530885873815712478474787631765689621539322465216629594975174965736290962845146526539298125411401865691545911763074997540437574149160950567628837879982594812542583344131571414205183181617668935760877710335172665517305936696488978077306025617080272507438921322155801151190203465575040223458856193615354483674201770023606482249891862552836096773976006074334691460547271222078704301171379913287404496519628782688816369776273264021609034895114611827211465878486221355247093459927480560441945590858780431683141481571753936720132129112466384310642559044993655251913091391985047573626432551527582101749252218875464037693802030605337916014573779330912602009401564990599627237830382995675629448380013369371793281508628170533158945860211352983529059992774490661860595531209941824224606991530704219536805016054724803553292520109406034572124212995031949562777228323643174319941245830487972140419737365543181769829728296964062926269654740724772963071114824907214460157995045735444149159075515535327332915693289813070663464260600503485121888057120567745034481432310635440706464873024054028239497684945734974574879906681043241390769532513621248697758766657173944406446995139047964291070725228398964536282440688441609005063313018174337423995852898868083513106817046635951018720420865924689064641244950136073654383771141808934228804972294254187657422058845211977614733850132121295081568551664455827679677292474933322027786220734958971135675731763065972769723621370688594498852600742860444428337253289210370503196565508556703568595706279443768651964250972002100270123485310727282268500837221348042753542988691673220311929065724187173914735889481188591345588769348887412847447042048944020162961084839872427534576646900747356789254176090087850028838585085626578297253058329290869416148002391114165323159203867250082929648927167083925718224790830534571560810271312438387222681501758957253451198098641496221445851130793562404210322117953892999944281750906748353040194516479374284059166994766242866255923074374987374899338788078074233502165844333421193989833759679207832692480258888602831415464208369312843866124087086952825004372393868164074316994115220749450563588366427229636465018086920283001550090435742866698547577504069172980606043185143164830104830502658614489086334576598020931258393820599985370975107478066871337843335617184555914534438510703198564467481324389508803409248580444195068165674877791644699722114121201720978813671636034068824578178268287007996570437616807548593319584143555224224005310608704804534716664536528345635891846594567153126920105046283076548473850123298429425820606382477934197472902841418925418272119694943233327782526221120701762706285703505610441331833896614866707998176160117378924129999983476294136544226491463698087851555020243978529990368138611697972138885272095872178279869967125137691553647233846676886002855698969577645365351062269837847503857071835429491864261546651364039027298278522111834959883983588511066511851924022474761500172450018832106289256727121999236589341452032064591267425498888823421020272105095082579252850591579994336671922425981126713158615270073741333424143496107301025503529224986261957921234598476267000732699768558942119912242048094654326649215915071654658636287773720902483723278422308698797335706063953416389412204733468884106546587849706856479566186523930779882132192005997549322193691001717799866151687094597509514031487494063490256701087947145227283731749095739944640774073503227287058260008745204659452245686503175943352367703731702390076776094234321891609118193988522291373402056614047183990797843047337256685357650860531905033084178937626345462863736867406220756309876123745667534955245166979922852433811599813051265281963876954960716093518498007123200550484330396393431657465902757922340021344901554536375528838371429002059234092850207903531803811218177776088952910767030944631635410843608034949559614889508471198338998334245783749166300847941559527366752097273179794781559334308091676118445771128772796025270300005897332148186650171004950673579040303130845009016463925388709277128242238004233576787303348945722979236471972235571147872210543285843568450815356764155771843552871579796120133138760227442551158057183426074479090509231947795130635904070134321693435378698757986185234038895712253621683162324697714385025240070385982866031439534300413805458757580495840845272120790787138201686592926229071773605097672980028378152133208077859442431690341271764166579825840948381281713900163599655161403886464989284867869447455501967329202184989568074245013289688524817734526006242086266780057076307263126818942668329646764282605531070773707909143197104713172177610867493225632251192145044442460743720125823717330391708468496954330317651625529657914099066445199944616366828118725938061727315151081367232941715603085141832201694126435351221940874258023419170175575183202552586282444966418690911491731563370946891575240527774011305772088830808237862238405628864290368453533629810455992762980435518198233763384564445625003418073750792625798681962803364858375317635394162943678386447265001697254162349872291227587839002674749393620626278026904780265043503773538754374435347520871909430375083153452434221046925856865455815068506146137582037250401802670659983811444005361866607659334110609908797639549369630015709169751932667182043620652438548483890268781246508508729290782589056582758263390728402685587158760667522709457324382909975385052886197306589138838674269582187154448166076733054263048529022061552982695240130862681756294493190304959943327030959227535664288401824629568022018015992418104400467103150276242360103834466745637307241068860175362881811315803390470711753438222339862249994983288710301359894637314576694158648304090449463175250449667615735518379921334823397269336628100428730677957652021236840846018862968318026653591924883199618385825977246000242461731476813155836530195817670395042955112849406499809522004229137674228965395254678303115978358299108593761903369140505474845374609247780886870192599026997611514004586704748099913685499425207195584040042304174941594367290509636227438487374578331870497765681062607903051559837331973951620407529542578691862762442721459291219985466206193188566364511128939662851825605067754792847265980290625588907572838928516376226086870697720735941519994328497861321335806011953204020340863859637482783613518830771233692390736491572814817890414779956413522253312221701572031310962202453889497133706195135951670293008113607005503957405606204611687794937019520140917337076392560897605156521327285209114751381145059196543501918579462573610855039247724818435529932824197534309393954547117999109792010925101093145741582461167306526997655673907682767999063962204060159832985659023922078476248174835856696495562769253766103960667529967750954338325238196529924942889508553344237442002746845494409514264004551851818250370580731380660905825483606266188691456047690260151062154869810650870048729199908841156050924879550385158222094549391554808021154663778784699357509533747539323143209238324388452640085650318437155039989443953913747749670770836267941022382348428262356450361735871815998442430109472100127447501098949070386600583373271055526857321924537382620749894861706876280493520045731101437633934464679616204429978221566147661286221111083033266787417588340331062395770176800898822765496792706069471163859570818523428458328050898532255773854100173008151752115658777423725465011322942088939989748759220963650796489055957189571346825993305133678576889294306478834027374149382091396410476890766720132090672263211714247578790065548473652867934299088498872551632772955173384679157469194808071519460993835074167074627915280736687699097549181687182122643809114548392833474497901185608510542600491932381701470332974449183594416709510069278577244376750088690396369707988607426337485926565879799308580887174661896468490101688720403750849418213918639473406217466648492467011471043079994540487827591825977117409226639579767987529651399291489725362984528019738867538390491612310950446771571279871765315108303783768730842417594961193008364592459078628870517331420355606131700781860077900081253601671484835015003984693536194654257460921144630499117676833630087818231090360904534478575004884386306870256811579211179020732003210395250244336317829588359808711929841212505955891341918269609645831888512956068740939741825401584651977224108939635861277710188790190331422399223997848238827283557252404238688036089805052557054682901540931779346848154825025256563692173816629120902694004163012132996925858984807962425936387447334516798889227910182845221156730634683596042674549438831364528681114279695615343189651086877801342810976822101918031446140697070791733651096635961638356612899381280668049399727708341875727629413017545864940693272261743911493682265347256298526151892390748322368590619671237085325719736993343863159015723093317194634521905447546515585915857954595986608731059189045544839443785343000891933620420484386793156034157418024721414821898080136686711169196357291588323160278326668620893813575976565880290589665867942182601453935759257595514922530587571481034410466990273337307119265545173148908194318250946436745910056635100851951963154328021434606423897951594510970366812502970484662128819313952734080810617595583431050707612906676143670836831020750138990410146290594271804889634397855431176109457829050836250274910340934851607795489848518100067767346012281306219988480702913426984569476814607109642977086309976466690376184649551078528630969031785131440296920943595610740118167400803208667129760030225265139339303698456667395935258561946986261881150510918733914816925270256586565813219403304409809345436992002882397393198467219451347308130013194373217320116980638031561872880848900464155176277443345307143104943952306817952369930696008361039026444263292705844268533612017025687928393059416328045486458661476754582537517766745389621581120729662774694354024757550917088141670647797839369590963491456810442263003409886780767297674220416629207542234578131722559514364874936991500511766813445189636860540456649664566317448314191254454372269002067588670450208683430299123588971120386600565538448978656821675395699060691999755561055078447368845098284242823245084914039148740636437250366898092318714262560421400854644104414912220257193323137468930964026177563042241581807251545592898036064330334959432561078084530955780648047995284540493075584569297255231656772550388985878475615112654000362307430748498970428387486408702825503749682178434129583160816578137573487229275204135231726138725270306837965177061476206834658326977821679342140986629449653874602281554635805792197657581929444493400913884070166124432301185769683198685195096782449251973699749771489990104417715929459525627795064586590259686141470496662161439142967898001269236971385238886880881928907316902248184815779539284336543686093652521877001767815758022461323561859716337049129023993659376990046794039782869210219966485747674276563872584211496650711855463405122037384082598090088267752965134051172155680895012493279448746332952276698294838675123506149230592589420084973641854871977039146200320946542758451472480904848555349555773731617336973997815512581731966817560599333370520977448630667860965801154412496334522700418387601335637377358579387927164110452226580187185551444750748276940133391052821754316831535873143639578682674550063195732557389831002102175940291948291625280199203994839226004035244278822498756722241929848799916095881679860264352536577601609091429930853772731684477154514611427568579772546854208962240095605847609156734628800655605502964415997171318756261416330211037981934078265164694096466151957029265422621874797069000583274637795247685460457101351624124847967609554521243090039144338676280935755464929880967033960335401985095759447312718191316825429931813613282070738417931024159378675968693881448432515443622019411770054496798931572518198207007631681403967369560519645241638545948851546113998017137027242242428417091782172704468339892713117690950408946633752412778964325515515492957245108953069411076904871546106289987609593265059713516984580661296623069606546694171532669398580022368753643128215700630826902355104634332555184005882667798294749454883633488661890238640987086269687620522554758609643010533638234123079337413178522306717690223159844605732742099915436468461067302201403150699379021627571301303374232711988006076073687284588566487627523206397910718362078349815648678193142998778412356956176102077728611066962852587786340314238321987667862345406848305060642971551270032191593459949686506594055385602598745578686056744350114073990396259324615529362992564845018249802382720819702373171335307589726096455896993395803871802973145744752394303627199293437181128730841151445632191480007207415486993125961738634979289847916334487965070970487364456425088943822413294397989955951073498309776144754395797236727983644114027483161402007615079153169577136228565582578290982799326802693367048043581950077574263307476361400125233662765854844934845868106581779268499039245383587215917296062158625358763762323907820432057609596974181369376452236213412095723355188527670564268809345667066185361397612038247150764480593900792525290971979300618480748059891821842268255171734865232939787621157593706879836133177298634544752047253648666549626095370549264418557518520548677538370921670635579674831004570960489203835818961857499905640510702934188041652413879391854927773731311833583839749645752599142987684432629172845768873601689410646006045147525339502189737714935202270648565901197074542570117970506509611913812813617079550892678837324211612063289786008587330536879272415596528116414767425446237422857158676959950462438297705803823999825527965600969408847505702766875459371162026807620691902770982138878968892918006817898330405705835883643215783327011424138042493874850883708962833456202544889876295927671864505426911224495021829116627748529213087135532560981379083151681597315766943972463280358481561204008212282727337490423125486262289124478805035133623622393046464436484880016671133934169587725414865276051165909315332504246505084541869647232628510152126025873114971578347747253287011935989000526670500038590654341192266926489718993300690650527139223736023841872118331041858782610278467340587094752036050210334468688252041054077727211420403621023486256762708266169028419506223621746157529769645150699462057948869827726266513511840758106131703405749711802241891844045560447167660528414631898680090822601379796478308408934066689200615338385548794397893291301852696722858805095537764969936145650242560042914037894072833478675578002783535373860075701152844187917298920362125426643772903238478874767618345152204635982028182712439375699769329045665651085644595400684000777893327156707015390499674734520551357195921383452485965644848525677932084950678641613797872404299117771874661243096340407557420295592869569224311997837055751170505735168238842292213415147586233229606690625733129669059064372928925570931483958787634701341096110354750565313613312464194129371577926678476470230009129762655784104040477517467272814942684062391098108829124977714717920499084390152060246024401299071604809380218770697478087453674836435352177127027778655550540596572162475749581823775886096272418421723883749414991266739339741448112611446862544274808916260341319358453670284676777452213691395638626271115608998060929914011666440398373614152649733361130472499422586305994452697330411185504992518698526787189132480310539395586325699799726318772617286680272787563386896630694147634511604730846576080569100391427731158134667194242066604590277711446187990177492837263572547728406730450247700500257482107848132999438098131393783659628808417384891078836359112991534274774945461376959672731715815188268591655406024279484399698268584600947544373636532297017359882094209097044829379162246986056495237495385215926361476873147595754801807155437304980698265871842922782840517253039172890446398868508358190577995883050884528344535913361437747465500714990845813330232855615555062610266846609682474105664602148060978336140102494359672850821469414159908262079691841759978539106029400756765513102478036955417000412857386693352150118744034647940500321257020675785906030696570703511953838334918540915618453493831054981794908238404587917694735249772201219354200088108183548123680466394569907749321738112939508833315350524782381916268042493854598332026450026740636696995768787148689937934182567498386335236540915821941665000762267168012682213464924362248327042178484455040118960059594707221714476128408954636523040467936364489660896018079114476046208704162078401496173655507750965384447748078953627551111199173634493849182279943796024268909730612650850395540400427422036033909258555807365419173102043512439884062649291664567427970516605920756564909559782261451555584715034983941515319669223792150550971214453222057718078491699393914445449367885491588754393169112893925476077208797153759834981810278095648756987064340423901128742175860924015002528992958578997937023129606018565173832907329212464867044337987442163603229695337218788433235379128411249831603434824341796608622258394675638412952753480289286579202866054927639516012075688961483023962512462331557117993523226310108282525869491429296268857610618656503018357232973174804750100955145369853255767806862720837881621657102504461905215511178731457720549660903846720301114148444177570035946440728719456121203755480762426167134105613827812645063313457855894883116504526073393689617787038035491190481715409591413230778292242410884747347682941326385916078263421757957870732054500337401997298881748195133085716857353604750744323381400470650522185875195955207260963120363751775019677321527517246918047374521572983781727586565100329188565448810140495206845575579910274895430696379768244396927393378424930136169703233050044740798984312593569584911544637651726477652215436345488225822977682149714884789526896612072346160591673770000261490743757503439605838470919600006279312235959054591662403052207165460513436978792886203772782729484792823389128742901591233323191362913654405268000602624123448475757291749480940599806187967901454105957120303175992240255200892866435823424609369289220995192129914019982933375180579456452761369288413339219377494577128937290866725008741418458995454169833989314432990304208534348032905297425746808194282381047069578530902469458178399497890275824899510518040695455205419196655338009799067884287004495153213792199647135846386688108070849871056184363766296194736574785585091669136990612832907015173178661971079803217595946523514411455918894783556778695504463041226389400128100717121680917191288275812278044763250725478047935427528713966228525815225071943159407887037113752246686996678781713940573937759010395002280780575883044931906644659308232050139818245739585628387826800011695719574098871119015325439152596365337764158877633123140967860201648196970168799105214987636388067904159304196780073298778054957791857218172474054193111367169982797936923183006180389988543517072869612702189287682568273825981708062587869033767386353086871881336461205805628542859395802081900600905309995824161468986215174298490668261081527066396533151297705483703137434691646475581709810526867247153203497818158451020922768492358713443956090098053673910001476385178060762893011649166910910242130814503447356031889456904682447943249077614650705461603138408727410085067099455739252158996044572663876098943023427903998754381912229296374647494460086014882217580227167644590048278692581841694425271640165091956848565164313387293477195538307272475957446438398350968698842838560760472049616748425133458475947664508439368688615754412253971081719394424315665096139714990581404377548916087252652183844970324722533215275390298471011922238805990932857960185439343532787684244554225798863230373003767239808965783283513392673218509309262564751163186399138114674122918157050544444028693816710080996676650809320851984165575335636646749597290888208825945286281085571847825023597534359977956904571678624393856217612646296653802877980031964646431359363767382271984338551244655723986843302404035584646731306317835981496688946011159461400571905449253348735875301463431795467555949001259417798480131049785629797452461292781728694914090789255129205154238381511299792819116955577820058835258418744938479607372790929809831319982406944931383824748952804174512190697946109103249240937219675861172494379819462052724544816084644855346813241016655477486256861933179786605958480824074237456776891019450367709589605124677281271391689552863712013900483443205945073992391713294221220712469695604723614976358880008516348238355301228218661639817683953784054967179864278730019526809445777749563865192048723185815529126557273193623870369064351657328164876868359064982848366199063721252812469769058502418115569762235618711957585646533541257813104984363119081938578220065309857497500438560480825266038066054593042750919384474431823542922388002504499145940520904828554265099263605352341557305451542542848006051111682848380737237973940140940393055215347567924762308177257194274107037712144021436533796909556555009673284981971288911753953107840389985716708859774439036391360966442996360820296009925646774704718838006750579069334862611935261095480999336973407231500782995767219539666045888689683341578758826447656929548621092438340017050933516935947311234017329171207874664624930081950239814694789289366733759702712088428658104644600091262426583159316293267873856577089870402882149932137338653011294439789626757276989374325788329130238215783484222068630214539093332473539977060644033387279491400205393733157843382903989267923766934477549449629017582091448149966635303713360562009077222162586459780544175931844489097112355099295727651441166049123601949101220098661623168010871596372925349879123347332265013157507611387773319534058650807415100316435962860958502935773161562233832368152600120440491482076632183723451687212124932034811992624143338393578628116735888897902731066310261636979370709218125206385522782394441282904318552912907906793907865023390193533455668553339963051478978544477301433524928468186434238548007619350730463757492471377372513044941537879229782910065086136742704667686921503281005644912070696068298393602691332805105186804837911694844924747569628482619326791082342044717938347991410870200468893256172671332249389895145258286611885781985574234531351563701541666976904924145885599570848015051297337485885050601782162914239970401714774783916284780543355710917431675073626737455160411902923595162219835046802358623698027479252407448425439777349490969279161133765647739733348555238745095023714819962298416137194673573377123894031557081992878607084438509013870688071969426705428423291825192707660899348672692854755284704730624984831947108977231346218256846370300527592196472592799229946727666374455745051819288088007297439427096598378656288720870595072997198425922982926555290512530816686742605084395387449286532041690388067948324539519202912070630768145546462756528291932740697449079358589659571004681133909040723981098153076986152005120280415095641148930971994261692337711466428935317096790430835660492759720042872208383196269362075076920347117726276278555664047738669241044736855249349577468321645271815324532588374855911215395296714351241809571507985344334625225939194403468572449869022809337870229497253433327719317781160737620695293055432578253988343958545880914814387135691232177699822484110350427846145223021856053582561830169310011666673326474959121309053754758896188894842300962416062624748049171118768113938588110018676132893653490621168761322502703277430825553594201032748399749418221118003305470326796350084797897163778213371343982041531295869983725271845922956757146761901146227059150108363038342713581092764375722576853118012404189042023320602721280478452982418232327475374888341695375670445250878901340556574841841476063983843102091688327626234818236566864693384022205223741453130932381201677419155190635245429417575800050324769320354073627283461945764869034894327679462953074537253380333785924385620198218543555175322142340226450971859720476618527665830670851826652990939022007752622201625243281875485660257725324496150201827816074519193411393255745488940099596368250232616262583958016781010966326722282293502295962771010459276901819281778314117896417936893953809960468895410009164163487225589697718298909744554537799139012916249456626877730816772192421457419151973695982980573393616623913718790942950710449862064051156510824185366261247546065215953792887377869632380102629360242836738261539685451512412119565454872882894595955998937259197036268010874444318799259510695330455422077934344104767080832747302293367580565123641825757744750967425486636106260698067620793991955917117854218756035778178612820872519926203337720816748641065325015915747690538748993130236034296573403104880739958299781586067895906881221500278511723351828581722654334076368747916564927311984049814888185105294566018951970850020092181446279253824681802552793046621592928458198275435755459147049380142753697219896302069260387618788283185897349119333523481235910352585847552818212918974670671546949776757009172563827975805978017209208393732526380392426996861391216018709932165670334492048076744047784721156953853662133835073711552337444372457003298505532174738767312613820650580030810643567598486098255299026150729450451572664661721289035883688002519266514825883701533094422334408516835324498378727943562512805104172910502382021118542653324911624569123691094811264435124089499744742758699416925177001816375201071639739478443307969017407662268943720857693427747867303482522483022501529453939711334125886269029728116767714507669810579396202921382854749436162151026475076574317622014360674994076264022900684648073943092034445264205901155377853142647493659398782451605670385676449610749637690466671885200728882017570015151336016328193097336043477948629578241369408950869795527618645006193501512784176595247253224587190995642913399974719792111739676779769972628517758204879861400572522823225692314005041563950574781484138890588125199006494176553507986684402057861585393770829253146049875246013687692182610110700960332983733745064591500745410146488017955828891000622100030305475656964893728237052534763182230306773728002349111016828061915515048656352847113984111628296272494068667962315947529430268656530820345190839910619792100065591209249854280325009985084387593060936965388958931446921231244396600139566470183008942558945629586252484004668584073674398193058108239243207378695616715041937562562993065560473177534188799891322412839933137895355606563512302382004862708824468232598748912942690478191459759350146004663534053150836345709267660881580103266747378916069894532393373074163603369950658813630614406360092860662439430433131969544502040357000282401004355317040303059605024555805573738153021120412598924044254353167264037300525543981834836205818523410130823687516605771248296208884413415009009701220139456155780363454056980915952882003100001960297084936077126149074445617590023707125608682966612080984122443287058239869531817547743444793798837781389793104135265284227551066820470109899825126700335569343333142443703602429773657281570925603814961983649241708130076765033167094458840437811094886981140071838030493539219251352034964879661090910740945995482721902695225988057609908241987337704341671078817734526805499833728486921906618062820706365728201747919119778323027062074027122501391297045316922618200241596787569142153112148958548148182832726216132181526924706494647799684826187555308515459765258546378421735015378477020989048841890613768493077742829753724939166309556325604501772578284207409336612122516854563827342232352721470318999448998040048907595650828925961735987641089699567694042894199822590030091860124766899180845434575035626627089230291308242327990305528534962688201624239799247942917196123426038686809310195845930140609326282112546105969696617560622849004994698749143899459897289119933414725960079067957133426782868037382083448155568873520957269729020721841772037049368493017089210470229056980790309694089283800756115174846831093382292786775121558754746834876919574208750110654110435249952573784867719840259641542480648884717761746111499242917719460682882343464237687004467068612825838143618580869788322939102825299866520843982160390758810970724949937577488152524050023300468722325842346611470239599179295934232272515248053798404788677007361524392248903742269769016533188357144638641605427538749633114302416868548668868211158050876847759599841146980783483772757256264103258434269068036813000332105471351412128428875490159433992699208880217066972517548593711538383305908870031385237556321640510486079747983672925185210410041694318427264013422537942533896655168901765655399949611189160503986637411159943576313670272138759698560646555071322807233323686567307715716669016929937034242365790600174307923103033117230154220287507189988106461217143575225905041897702736210613342232714623284483790686015126674782311984617969547675605794410102910925460782177774633499096846577306520792268172280269803801728946335666447756550460264787124512534388177546456634248024232603210845677198832971780586097099213612782697201616626682277075261295892344348124133520368432080502075538496282847019947355377117515772479732090485077034934658752444694760479141118209846626604814072345856935184263692710978816867255918976030163662650688901596908754000552880837649874419160795107149322689432933736981404781903148189909609936109750778824954833981143804716235537381867523716030407431360505444347273229920250455248112489740477193381947531204169945037423962966789221527748403419496404951158797584842092538953731635818955020484859407278662713516577070568676703967021730258674279542216731410267285603603047084401543126035625945980126620838766164183085054502148321994263147326949001048894577298162415895939258374124742404598408189646903871318657944852959572901143986224614345302177724341054995065026905042486696856551300993759240348348212217460402544295204757660700794023291176058361122571333671627125651009384958744852989209021222793833875383739458462452136227211290556203063578296042540356404510742087246282023548689174276662219292179065518131394200313863894067824576426634833615385383355316870115674739239630305180532684990294374273030267531296809070812697848654209079453650927291056405615179235103369902586324411041241699762894438361993760440478870529128607479122396259470581301304955094165489532380445765194673433298995179998858247285141809801386164835630958393621970304049542652161289052609103561139147739464307646337824086411781767873573993341698708129339079637183169176437423939588159749351514706885051560557261555117703564670212487114896219620639732390991502804827027347250481031051164201692187489522004047500274509368189538135144135113582471427138957632826454523973228974679291617718997542201705615638614507374783709510095529663439500402777561950958604502458518967191025819530722718350846978453102547950110995315068879361667212658074981197420805463240588509253239486996297609876936514246372471718990921208177876411535497006453135905291166778479737766299197696130038081919799315201566599404412420264170201446780229156034727255294446796051570857598746126019748332825658216375432521972419654162700362833150708128096779820761837414976678120604437753036636104698193238801953495545054515314129293611967558401836364271173969278155432267663593137520734300062695033169780206971865453252334010242460071301157370538670100168242163747693522625077393622346475586681524638631830673947529692001188917506954017727055159902129549624047086191417443125120565299856358372009209217327157140696387023846195825373193813355517126735828650090662305946290771947191022876229710883978790393531540671994993091101731256689250884600139523421944086235666309463475750852052263862633288470175733696009203494903600318168606665300229798394826022258517157752879352097494206910016607766893886768413670355622581717143489596147512079370196267948459345865152481099490869449503667557887256220278506727426908785097809888360302956018945569245051737007636324451605423358670468770056141348056967329182245868581747663378396641760519236240436761299981045186776346426697610682222460185321953593244454406367879379387354972430202382203602246291552347707984789087293097805489229580061047724627842424978011140751145062702368819620398976576647770956239796356141553086133203612996147008504070620577604925803083198201012856469383146795819200836794081661617974293448043018136930833362874513641999059163799496144592563213811642623485550806528158178704603208946237112381002216367796777394806177061596668020331140576964542994219054646411264956517590846500309945605693668744306829837418806553164064225565563057588186948495731104974136157111480615787240147894278539349264515673050059863952106184139622261195024111995242245773481345114353912292166137840581822426621238496596623934007495818172239993070548087705607149932236599290496030051122282721313531916413856371726147342119110684153544171226070278993419864502496914344649177775051186489167847829684350298627070179355928016589776770790858467054596404589023618770483605934487199328357673039006744665317690347111569013951916448834871750263754837629523316928079916388717889861407569643753848945750168850323273932819035245709235746647197623473302769121147669797707413255787605072362297896723196493317206063984050027465308949327400744081214000225381251939622099674461035524503874470896859068701707593864852397706381735504222881508657803042222875791275372145515782190203781306955045700190761684844976400494153759751356845222191377892216021224158471772460456591767298468192296011762406340894778062793691703622618597646567195815105729353210579348985899379197854371189719062257263354581443851805351139154171571924865796806218076525580025520044862988197767298020979862300807737227805905199722833607582951123501603932383983837698851458113946864704216055634430605811421758917550294156728095288953605059305197443017236622382297063322333653851974320382980334006744578444518541657887231391885136779007175826538857563295447107266859715053761968627412254748840219210384802696469546763158781726714981658591974711397533719067291742710314012987095137351186255517660818053395069472648832585240373314498056688943615456900077393016804723762800971964075991527137942866128586191931201024620817531764894728561160383506992249749016847763563550388498508419990141265499595294280380758005569999490911541587577173492172292982484970123308742482073246987112841561171904356088843408350490997149001088049991935307215717890660278407741629512589413366191291821421237722479442258919103013736163751753581623499967513533354894405173191538290422247230489843460730017209496590689708189122500243481047458110017896126523456312319848490966424466069390300377347306949035394638717600267022522492103425276578838120186276744159266953936851340408352139107629176523346962007134701479319125823391840394991859613353023458805715404939716141546987140149345131131391929934084305746964337046544424618499196677099682531264441696090497175472679353880863894283486425040765228113422723448245262867672357965191972461121871787320450251702380160583173125907750446873643781023285147618896466889016343804612455041120783129768761618013208890307586658896671867923232053775121277745385955828059953031341307760728348705450808580049999417107405838466624056133109031068326180662584932388007539266624887617241632148371611475599559148929682788293198411139784263420760618471981721563942347913455430559911207396608763989650657249808818371391572347093296547092749610821034170391296742210023999799767025729853124563341626911780246341243063245693203144000675075237902504277645375195079102007005645680017172636243670710830548010309882386437649935036885719842545633421344758991056380781168853149987253330207567976050078782212499895781783893854572433432135484917017182636070160201907333847768750620418347843832261660221838691357302825323604198976825269154726102363389715260877496041820332346207930796961493249580403095682229686820993798510841724844132556699890049925779539716660303711573338748719725985898229508371494821678187079789527616830768221035251720889966812793929533534399993910321460595120406128944785391894288061341986682462984319417705350194711303091291188244518451120596762268075113561387846018328565811212320967862789980609366365716707328849571579195351565809612926909970674848596174284874223476452469772768565262452594619010114395208029425850978902595972475866199223401140054274135306577583858469639961126889371226433825147216286898516197677863355275082958280403293156522512574357581646156184671477341278217631122282336824899987706427082617105445686238912743424525072421793116567423039737970708964636765826992578641796104298567595717704790150361939090345551677199814551473017797262570247428778390205702763834412853652177103219851283951315700394397324859305852307851719098994612631680195634902705700726141480427277064917025046123387012413608787681620242902748176591649779890319878681216210056868458620055809059025066787810967960513844895495792692544520101671441625628636489403669575476786676478715750913093302500385048582694106893749732296976816803087798700190153423365182336155873302375490321986624811857716532826382907828410904777787421096514510009551320537987236828039112667725449275791894102420436914968507698160159552061906255242797534855808959528341504302601018811339123380274298388835890622224890677076167358982881943748027547670925458517378669888135794172452593548855597329145800843497036001396648288674716781215938985249645787299378754001283061909264236839921763353415701132077141391570157783426104088859410597964294741270172809699730445047688082387243197501703623480800873287959865141090954402726945127692445065820761390433105293445806004868435971458117102624243603150186652224181399795745394753752285658414870250340452971003012213735042311168787535509694276415649603591589102701144940660646716976003823067528692621810837014916472351300551192959315357748321196630975850511516285602245434298739552951268990788734963826048858118233350473972899968799848518100736267337828467064376438752059547683770747129420751119285697543281110821800349296749971550008580625146624120397257921611391229391752800558045670529250075931572035994299281953190108226900166420473655239751930926684722919513477965585519160451456367845635092167478090700499588982957663252217899102684335259846287935710121079492957513267115400456206130601431713391192507513854862045065842440071991586636731477315602022781509852807905643462449924834187836742751975786751587576658807614625323115650128545362752591945793875768462364539857685983171339280401160398743957534949778660329599525179758456254146050267189379004357678450519813486968799934069646496690276539235963511941291802656833090608793281138004697572896956898450721601842167698913846349552431263055090002318529133062718893003116115802514724891434855118709634097670374899162235168185754627812962898349984024332740555415485873622661320279083433102702936529018875406778935872322534169401068261234511996742058293530946155044190366372890799616427396135810989407963582099210771710290053787560658426378947204488307957646056145196518888895667925970101719900113517353272702852816159190171070034017490315961505969026682719516822222943645895845289124934583091439422313374181273072464966715533632111749359603149708677504573682082861532589465939261645317390737718342418471514745113235046132450701193116573610252392205450219369269585337342483386126379904154781206214801302113067239227698877985095019678506934959655434878974827224424751034293897493767291228928624258013423085967836052739683631501653887784098407646583454058622525238225376480847427512194073469522779945005812586482760366950051821565920829397026998741179099637238017188411166230274017772188994393350646581670562152002920499359167765975136392574431917904653109196936417259333012235482892487947555530949118013844151833887767413234498607780327476405624935662397291649973479176807026051508142269783528179512132313966894919692977576268976192192677168109390040471725098965102704006949709731355838412743288068188144476856337537748999824697782097868221089215551507746751208226710357590065395023498494501611293487541957144581878512645270847909904772265125129653239558319192557682427344501310412994451058838123380296773434945623174825502438601197518730928281055782932447474266865966222183160283398951097328176383642708469277546891589074971472099000021685290034099690778985083821279482128828342578813846179642699826525413781734114012720276575636814566917868716295510203583121180105755622451799698105323436863374038746824279419923306601261014749323556751286716988804767573403452403792615897572065382766441402435914483759665700555149467110019398306280542376694261841827815903112249091784361546154989103648404695748220532792526927509631810581453839010135317212148267950139688368513001395122463102453303748268115665982511883998701346436698807916284742532284269470804413797059704952703909861769321618389000962393634503364807283581216607367833901536019705355724645642990588068643337966863873325944690731539943850958447002087821839176320332187232790612651180037420458623852557844662012486795680495960729703971931370789858832461283007020528855255947807464215645850956096879899938344582902863410026572519488251448267476903497195804425187787801471764929199297056705418765578661608802786507812946039710347431621194497008286560871386978129588623410607641755617288754619873924120277709549082822677557192332946426358311393646167886210005331900694392129082529994530789056377777059529869241686743127043397446696188284648049714330534229409882149037518754300233827396231580576317320366745901205467301489093080811143053953152072122249104933848204513849916536594489782257704736863674529162585343842913373519791649584242064268177925374700682298554934972413766790048237198239869888197473689924798300165215411425699540067920766558348540757343804527853934165910182330767398558599514101190200574416604089264892402488587442340522350153126895366452940661404323715388707762005299138627640927028217054792331595757094172925119380520902815388389041537199059110916473157668007355238572489984342795076812604088908642679840548576801186187930554553156222059110773135546784762472141825623534123665168215514485386988011787415591092175983811119057276283850725069086091941015242190043187919832859193280119455341940821778154453753204902671071252058298872320132235548993356997703720848574304059752618124088717808369016249646699136012058543905357185387318406362135071225262102910267051004552070907997619163037376110954987180153832736955393674490053833890172189143788914035684326705643780385855236788695246923662234492933499690013764395037800592133956171455995076737388866538850840022872064361168283693845530660320734034929723119770646505246398913784256292533321596388930418130329348819521323994679762456685436237809315428571706149561642645016518556828137688553462868540947204432512394374039506471058432690227211372951573867383557584544061340779100017014034229767948859544730274611662205878413978405011666895755319115973178058081025911508075537570405748904312248369869620406457759945814047283951687393440906613806844504536687775685187239001336359423454688082303159355413261008724121124021842106448427844414190436493361096904673168291525919540727424926416261496465052022688472020035224729441631434345663713371870565197490484431280324987672300147383253681053286857225510560069042680813837317106355177146556095890453937468523102686577948798770300726097625267776769065874136269963004266866447096233864181265985124453506983737647809935295141567936929235638760869935993349725214839217163824803712361952485475041165737192541227348421133248630254297006637748082325759941817728986499036057008397439509828524578458409496510807649038222086597800421064521176391054040569176489959691856934241492185574263930766379899919776351061965125176355755978940543324773202131041034349017063500253993065872489669126681613651827488924104897165572583710990073358164095760507695272143723273666506831151503802144184194735940876509964604047366915753242237608920371384634186988223103637455329851151205258296160720127300370638521158168742719105721485732388490526538458980941763807089574919555860662292710212494836716352018301555329247146323434342647669850242533870018696700610419161631304010042883286570347440730734435910861990250896326638622841677812701172643445129411234197872776083312688602917688769629136706575095321096492599634004546664639541757295475846137599454190119379546798843311476299403972739732727777469470145201343517118386632379190051399290433132587895012194895230176976255121267745277620307940153285475703831959555127663739172831454786187631903250586429412201451216003434787426361096508928817050790131065282719946916224578551995659106421733016820679790015380786017438846381624744030778603656224739964834973863652243860717086059047349948563868637016033470075401148387356549140802957035163565949942808240963092953281481614961337589217979668421779298393138573437936927709560123187487258038259338973186458614031332710428499331752564030686969101294101212891644242721373991826821270856037837337871099681040983773941828406397675396969353068188374225994909854528317710659866867383586043864542386317476950322987201178075585868364969948690801409067506891913206014724603835610339287148662917703248181623674048393382909643841745391853273658301166694032746029988706335727213755289879377653374247518175755859935485389437927774567628031731525974161184865219039946344065420920224570354125120897197169038243625472441730415982554667396871400179073165226512702076289114289715977121631385673557894570039756916614274699238982615413444931181614995594242519453237484785218631055557292545890827060049894950318339310098390946634328284541059934434295286836093462833079721994124136505773040093571702299086266947294795717072791919620985694107887973871165377224262930051593151304622054540266041047745059794069172574433623083908319844823102004987056228401536691479945762039068248086911407938635502098437732426754622739647232072513331137072341333321587943809144624292096980589582696203600123011374942704580415419711074140622305388255044547781489558429133573482294142475543353749508478165292294799646516778278524661624723236583365969927931444984111699639538871393317128717670953440589955108292857403085360984477866556856081422317635727274440343057457933131003317519273904677709021254351804852044716282955203737610513593513735767329455207648995203080854330094393665851743134154146782626142221672789507957385151732251061507891708818568532661077916577470213734151762730827841980230697417522991432878746271544677702445983867001845351057198347809314291620493304854972605996399617037610371199530350902406276287582703527905501241189268949741076538450246242227212680876893648664585567142469551794652713948404583102026720693586055560740694393125098010201690660546250602595215842215341025510290457943003066098140999887768700298333204360679620161736683010764604561035905025757920738261384603996181353847266272911601058211799953040979707529634199942589382067702254904983119075614326419614266039494773078847782652770031193694642878923748094248521372912905398346845909360111260060179981624592960289522014897201148963256558038904288377734055189729487145830455172361599900107158634663326700769497815620002419273447669172654535506724650066690295872544940565766858266686085953184225587905041082523536391152981381507570106893800051069331009009411166663673194083534021472459382361703998691426878299339860677229361767712585872430174298094823497947076847035137969696778376268070487127597262932966818353596773586321344401666882931857681515679228755698100387919653061482618814044481385357964533846294557632364789777172945987307420675091475785888085263698851641507418131127997700112011459529603925122726533094394597962928089456908586897232389645925422751509928089259060417004257521426169385878764953970565397113723817676987748942571675854807607370163816204205441239969496921223888074095367587293801953448617723237206859438263132425801859630123640304101391863434446732224291436786224322822856291826478700005585505672803222186708059106542025397346036748973137212014603258237161448858385741919467101355027061282281467956350751131869585802093963017767854773221419776790339127471831436110388579270487938425528949702708154566118210311216430928389721473697566120829766090810261640615229713285556108212401026657560650790776410862611290053761439297586861481092640127675199857974838259280143819560339212185054365535391653004640483022154961721209363200135292335046635373876827760482314732710573161858884260885046413454504296687833399827587843276115125380888065204736875540937227345025121864057207132802752695512755679335168824265306341889559156265311986369400943616437066531815989915169732963504547594554673680699673849563968103027567735042527392951406449358577926435303371668107876125080419070359464174583034395536609872258053065953698499315110164310029924621117988648130176853091082923367102269795999040862560702134305851881291843288194635616083879002557057543122621835378699233593775784483249551466130066447542283548880930974784700096901596520405611659260162683798708573508754300010195452911559302680719642110518103747849654812036081348316069639378722942123396766969425372299162255390013887740503286012050066103886009236343438283566687855270102148749692280150232741327025187596691637088404852707103452843650717082611790387603340765013144070243934626550382999708588194103900266602996983770973087713965526007040745781031666802426316610336225025647537850108572843742561805326339930191429776460273616081758732164184754466563006343042521531108882647077922017557521357041589528330168090545854055371015062874233565528052529516760765367737403996094547944474412228390009300778008736280412564952151762175532855782570455006249974247408359395798594924270963754996242726744803464474572813465830658474698261932937638693268607963040614133439782488753460787343270256435727479115985984130325739267039418734932668558446490824010035138513933401933004292564009161249685744271581928533586864835280452920149506509026591002565973020399089475427413368109237209966473414300483989122765771610079504428732834036109498339471615037521395502852679780644810511089853391378683173535330341706008395754410702426477934322843727307837270814630959585759594094333789548459265470665935108562854690051876215596256879454341791146272787321857986981518836498914600500486725016967305882549189058653367448812322056474347677368052672532732243589112649200113213298646664739246268093470144526999128110188832537581807745732281620204047623214127703997701930128754494849642508039840862266786218390495105245271019418796928574633718283798806862715686048167814063043850402300588785235242003798439010137520316253822810616932873918976453578094799952944896231164314656263454843277901294686458634223970415219430396299086258796629421889889398459178576917899002926749765810590650226021039625993585794340499566090073135557541718376004654816950691559443632521013901226389401829740582584399459420010534069536361367537489395287931177613431619400401471743437968490246021220316474074128697247439609710974887972081727749151886393899968102488893176069687994535324231314457278637281516701684308216814511671396759260152427249990723217911577006687313426638356946130340456821969380135388760553070541964522176988909810160233257990489624732654310100056724913623165651851413797898430132963435727989019947038884084664445127251199129180210933013966325300854350611445043357724301683156712674114250611945282435994128311778283788454880980831580470852705586378676365593803033563237231109248986726948148382065722928962089569194482974534496929809291013125219259467941118267589666271006193689496285560343243348743035236359801512352580013476693947619655287183270378925584302034342684694337867244219647459455889099190195173076000868073798558367868244098357710368876916825553944507529746665952589560625987013926588126352334180706216171521206507194751365180094929214345478027750888690465545919334644542013064037717860046267936331881820841016097141532361949918606562810578792876591740032411499510575444998929484618618632704793900979801574503896549923671553293111324158023441328868333450914550230616307101112107999614402880016962218564274100422190540692263071268394057824458270541385050333566443221835463447559784040549736033118395805912870465824963904786232582388874931624855777067258944880999787962633531446029792036974852495993753077286206572691275678854233154394191690100388614005984332154761365480382200225785571150298823153068392206322681558256639431864519404665574587955742752857598997390089034126770415545445282918299984755877131324532280652388156561755537700088917105078628491034188619213074573323753342071126608535327466059184661416315634723554898434300004678507662610786475414971266863768561784640261362089685178849379627084765095784887306936271581383673658294239424572601908230032377089472575060718095907100288930525818583218921252985264138340892005868054710964165951375367744927971524601657967826345219081962565275422748868978294795814263457403477711837545621252322633795816673684584590935246375445567460461195508022937264312645717060594818821446812856435512419492174423735230475283330276932203887011907377262071750495605473080998731652959052268155818016138357066111046453350539434229641382729856516837148670530220163000416009245455217599447257619975509175456379537753350221412410127927650887809185358074728147897737493747492627261502944569857819101005872755883703309906341777646356713382102978444867871715823766208339168702485688767439883420057514627618381413377059884874790051582753138804942344515405699145327822491226716261160308811019502450215514898543776722897750914697200945324357063993251358462172898826660587162044216824865812164606819448514881805497349562347856119496335075538083956373029141797093860155363341034481961528780024195165867064701616826319424152727637910071264405762323517503994629218798343776343947507907736525833794217950963330728109123973330063885662799985291713311043271275191352830220968017301375207235950832996135063908970304656982722576400313055137493480221239122972092599649182442284214885107881375482859849561235761720360404180105447245282772517224885313667944656466766720521612565347083193287293987455949803758050138092936576787789977037427913225864311859470689780468238128755010181077753977324582131873229187854299523291037379568903104963925264677544322150787887285705628421063533265723168674455061753997503483317109313504229329910430006394456915228775994288423489072167712845245814203384268950466720235633011618765872533125946733453070100177608836982161126719413798657668528544597439649568185296620432385911702394358286211346354242667686969735464014204536313136556000508436692428554811620679177832379846985019060168286446803837194126394269436172861524540036841264715516926591218613591838618677218892711966397807513629511266839122773932727790731299347169275075181331862062273941912017077449935132829787165028729798538338666338724492420190527492977299399284042819997953651384966882621782410626108064057318875782920571713647193318489156959952444405437210232095644080117010811386657692404977631563860219724295539396468232162942861103618093952199745843005849979757303663869910060801032811320391417745880229367651852381118244766776912305263527516525211493047290151775731974621410146387444503399397469278557184592581228859925389470727616548097125408147930607175966049578599964802889995303310286863600510915146424522919731350505563835918503421110249029389783169260704148508824335901181647529610104786848221397552199730072015353581205105455337871706208176817347237589734424424497315731582475894203089312679125567097045630736902769296471470619085628516874409406676833103701814797551913830193738412085792326707217819097005536736943503419972273797471496554246110024933683578980123264784883447011202883733788178915480098807310066422594390924046365938708572885303712145932767385341695309732466945522850612032101009210156170827039969943082499455329313827048087153491862977151328223672356222146968102819827573957384042481059914476900890167083237124446012738600566866224821468932888596245650873651606072370876872473272056754496205863073494340923477085024390702088633436237867580928124690315433732121903141448733680023589142036902561064515140027677329524579826472925988445080971070292535258410443538807301266137364576715388304512433747816361141531430699092184857082162127802290746089214156670950804530133106921303233142570462313164726982587032819239408413194513040894829629748700237802291360523959806433261528409383068337287041833759418924894230728450381892345952183522612822314483612893660705474660891476257300392520350017597472755457282792681189256535402978166229363482344704679550486947802983004521307630802556975788535396994797416781962606262776531871267038282722546956738728768906982663345330586841486474389089541806236776709518536054795218074033418283445975366747010568345219494399105749638733011227556592508543849692638330752026695774414235252069292963400097905636387675329227690946004164387223439717654487144772650621639570167236418866181872153087123266780527659934992849012671572299656534160025978376883022246797608727163294248326422994422735673310565417929474368425698066394043027811008702202975350995438187015141713255605095047325491767126696957822151318720851085768283372737465335993463194491726340230254619386686465974555684548563208641785731942800328530358697132887988162997795030863570906699457948818999995010689565380011086450924050486849552652516338059497057599631793168386620223494069811009564389338664299657807122799061485017011525974690538943378275896222618165541430338087628744147494239581741127099618236797528672626927176312062703086424963035707243192328919277211506479249734733583770465621303007550780659065082616664206157563679357475748408096072390978695633680663051298531745261135498984355406525224038156507584436415781386948939293090965360282978733996847278325248270089695479335188601637037251061798682616047670708695292927027129565417802181361289133651644047379996221251527301807804939197491681153450145488358091828066986182310304255414105504204352362867031014335327897508590400396416586513934015569661176017492351999291522869374323526309488621046911534932989524690131245591300388107527805133521126496735738930985592857712983245111301425639232059348964916452732555012544869753629054701100400576599304976025354458002898933346466856016790833983224257756575000985032420057032872892567359158894263497415618507058671327479360501838827538350583246573649174729731203143189015481482250294925582412803196496772298655220174463484181303825347123114378506810116038639831771432333001575438761674374484829409666216422838810349777015609075929712666215897570569688307764401091669794206648556141793649225168541424264190439793623024863249445446869404505088224299914746885597441661676067721566010189276138551575932806197659954874157962613735386052012923130642822877395869201899369051219918704641925085188322557398918650676522083742142903312173902956823529124686800835147506980617281310040208382600024702067117966002303742024341802028233915805087075502689150476457942037942457976450908842470716233978462923992209564771775758020596425499809409754564780126533966385798000113015484909055070441565659050808179284445201602733535004263680214121113288289036747601212672753167309183497158886674897430625218729885687836990775434277927506259309736017426130466090265705417517529359662111825742308062105550580174171079249904947815692040173096232289351632221600775611023995257730465592770129446226782063651193364687007933200948253656938191093114823803617081449521029731257950052844449783701502718765051961722554632771771596038157611702343276883901949510690566663399109575904265449191757315006203644587727492980505795305887087595964435238453878816680332219217063811508375260794922060322608776756596849661438189716617263709379519909867405918715621863098605238695741400579112091101103439385961649146413934740925344795203585800448308563945727869483263167424513970007589912037513824105367999873350599381831534872290994083182963831968932754502728818980361569286367277706131487010954706836219525797007883055423985938234623163365972960491047509581291959961214621837394416927847000174384185176690827868221443942944203695559516821643178654822354712724093247528175487020152932787352702892934578264838675103872359248591356571771279148541644011607656935075380128074408830697432040639019209363343315265743844934668295462722690999635792797581555201885000053885846324478365017388070101031960001983992232127566711297082679967192917558540024248604861291927508245899215837028853847890408630287141278455042415017768753155732428152123230437852189787035384216310109461507688890578431570306226301097771796982065089236310367454513005600618449190083744711149775520014938124239041295291665389773116648871952553850354917548411225097209609856042298570548466942158592425319936294340654587956684118890672898589667745931796608380284611359873944761322544881172264294870542995550391114425219729332874231483490408895052189019337254324026517501828803214724924217191474385203104854831364569185283277042676278817832643679569381333996698223480133519870595974570770923339805469665681214649171020469449205164169332279087547597412242965499291598349068043108753362964409939326633610043390241758652140555534815273561688891643333494855464691339106252319892687444987128478044289831263658592769521217848570455126481969874940820862789602571805016723213385789104550880579045997560292000961694551796563209190661103361506599142480349925387772001386573010619238872398950961329695959633994532836247632442205328577274763215312557934391903649143893799339506524613499063438055696950851978296943100281811301780205562141304071673586740526171959691084568337724871495006596759677351412234204370483657818057591425542591593739227274953257852779643506821223347666405994734508854341204414184044650887547482980908391166590342549723207260860535950893031944555638293053600182419884059419864043584315656513332413028687866741108923540866409912537922392382763981911486475006599268304338942101364131516531459097407065919072282576759135257319374658682886083537811968781074301389174794166348325197341504482977737221068212739948320040583954177319873952113904117514878145757465778339439845442088961179979959649470856737163852923767805696387327451408574722704607355207713806542752812067322993074965647451896583855749734192294622682097897477710946718181574110966485100382829683036963477648826556329946766693921168595798743424234053540999691165094380932884420015044768128470467808991181222642028870443722467873615165483619577940328107219771069820902058889696726119677319801486321056527776683153837392635938688055148490438179455704265103414492983446936334349524445407454994947253996906933943217973228623146158036527408962473611302540060027346622183632957585876060528963638693212798985817035221531596938561834758252861362868713505658920242458351657996404136319313267041922117903201887420373595192291755220768603068335651107111677079602284220897261972290387084166969075044473224765210555850587659366957583858335037348131982670736713793684743921672937285050061331710266672690165268931281297983507680958396639968436007836121949681755510610656779419282751958675111607873673751419308292971443125486547615909839563947958741061657605077756950042365128462732613415760455095792269623798632048305070218296067354992959546147435186333872200316876732078651921430012201130963048193600958163776248004733839844647036007156992348841266490554333601289556706228038113237896029103697144315016500611244760145934220950204498319682557322204597936338734030954645003068158586612550052488868536512371939772101969868142360926395056415264320947081571558454499685845573270166267721068019442828232698228583223054961809732172109418708713963529751367518878149293472701289504557284353908920712445240477975924984942709877998587934482211205659561838115615521563070938947384244607230635209310229861584295392836171530192485810842729443203975773987878921155357731508729580715982722769931919647927820940407502382067283425713889621093546796333530374698759128086028662710098950480345559433350411754888450095090965622190853655911137327610587294617005937511893271127742248145745366124794335887904445291534262225746651183370117164695926960469007048728015025213750624409396932682100017189050409240492210531473626561734878387556801344903555927048614843306157309703478297567159829918500076356788392898347848319328140190368823035027905935966753070198396452152321181789281662967727490593053286215283889652906939664445377265065183822687995115785815617291225104087637720355802363931214035222346526860483505429634619050914663847046316893567895830882726164675909346108894385258052314247192380377011910054533884639102847058261657657544659353286326804288174779766067221731031241094928193488651707647503863980575447257279918987555360897003393987002649644441930745324904497378552992161292082743970964357268296101951511251883558983756453347006257359481669298845895601754479885733138427396436611317236648429110116762201148435759320354681590611384385130375617600846129293777030797168943192331064520532620250003563689514771215667333226873176407427582599392672708995197818777226438120356072177989224980560734515115243077634860232581888962318959925397155296885707437525532491122384379494839288854028022802917488889122633458355169126937102943690049935863548658444041600147564506820142883229240691451448267308342494591852803041038926852348676470587828156087480184593274808456103217067561373356549403491393545186814934543227086831284145603896874816157401986475338995785034365260695826460587876299670832137207697871777657890501615820811054938500044402561953510498403394547887267241500334220598057970782033110624000715476672587566712662989944819796982660611086508734046599651526448588185931149290857685858419756471574892814296089499734575890062897544355168235275407183806653047899300598639445115210790848229562208607799619836034101929987221090407665062535060931625772810244427481939615945132610703214425393065086177990115372277455627539726071584943989947062393078118924159702312332377485009644630867790680169419900116299726935001260884040839500473123529317547977264605774801573762150507097821291199323910568455925699180355634564309413291381807493616926196576414238099119935655500043441388755912727245355391606528986041639363059375670159456038880347585043694760969445746209679787080003034281840639626467738036893530612427686529084802624846607789737595314587716415362083637411215158338774799712873567070061525226205321207296839671439584305001615253238350375683307247237087369116332805509496451078685288283601517021525866531552463680387291541278985907363229620006796564878780656444217824563623353685401193217610554475135086620038448939143541669813739756946743567164158809780681866589511970632180316631927819641861136236451673655119862321138364528925170595762669887986662771750210391271442736989239215273389588334091022432244474346074094389668975530772352128149075616178566755163770478315682177757705412017585815266457232531495290058225702119025548047922733767442255473219596371415295500034953748581289208130048427117743513896017355411263411960615864945007609907789155978299342233547910894899214402966070047479864255432074678822521208771875687053250806841512038882160583702467165411767444789727551855320719950481098579683716857666797129273116581409301238848992019441840729220948065764889717391292812786973766067973827365807323778216309636409694150379453118040350821839412969323831161954392207288695361995957751551756096129224549955444603601158027178617591601288648839226971754892968681435942687439875879450890118541121956878336736640471846204533120142711129341159632227856028104103923363172900151055206175863965840686648391139674452086959556112279099281511859734040126620910175056464497384940695328802137016925983487788748216916926870036271945151717557683740715512608635542096711673485159871207535448302781714678607979966615541863918892231411407431646727772614674368533663082729030028450167085030607380656333921173895188014602578366928279041174697832170669793663058336574334941988582089778983170513174084675234447563793123631577205665657149817955682405826618350223417295569891378459257412220910971905514397205717280125742349757901860808062481944781982558100047881265657331441638613965365520908463036331128778127271890813534023072923776183667364272473762463356560366924235012099932186356533346281141499060209975961917283744823071661617973467884020994862920998760036091956330215272265078677225565756892487169085828840242710528155984914389481852998095147199418208580977145205576799130561218293404560996297798541684792443145707972930788585284258549715890494261288707402297034226147810491041150421528506608700862162140647496272452353279265793390969780490584044979302980336558354097320096509869739766968147387085479870497486358439034713955349916100701474844399029301177255597841153261810754422332044532072209466416853607383020876644154277105009233880980876905571021624013828373730513606855140470554484202911059204168027874856936236414815366276034226650242614690572490677541271393464302848005670218459089907429726406139685317645145373600607437198892078720939468598822095293906948072412386653777684969865881783756865974878040455560074791615708831268785952412186178143863090109247920479152966278622887335115444336564587818023960881649875872146162036752575197106962307241413391304882199560202627692010684500580412171962664771056349439670067998558450293105453685653688025119704718538104566751169626222848366667516529725650286912393318245294023165374607921152138983711821185109228381788181667496548501439782846920208712739591150310388176000267294838361526036411155607058120788697605505515619699399014602650323293891708961454414328603553869481990293441301818503473812530894095058255337269967931767082644529800376179792438022687810776697119072787282150644194047267060696459402599197168359224720198661388094936609139579723674734554884750790188774157879725799975787959231099950323479059162329041149706760960074175650668004861658592687229633456415277260228697390853451305410270008270918143696386496038041565612089030302519657593376678786408858402408581505068361628043020800883630543502698608748444347049798903404153190355610369114220358897778769278422526293397059340660995678687919065189150449117252178796441740985475513040579256563652920155695148622167311589298924915017026727598300675754812020864153768888306769473165171477148693506046641248358210915074231560596163796128882929586662693970720868954137065814321049618087311615170677689194401123781924951555594688640163731130421887479323128964478945014076544159128045205503501477428366774096981471158663081551103474338135242433344157635830045311248785626786212332635348781738788278709258819476546132815446531218769760917418594743267331432962198315939541089513268915597949638400016118983098885278981853302488542191042128072812177432549619687959625876719443386685184159095070734997851067602297711549946560848559174235664598054433551911105221803883081540863530482388867886905165193588060506226415227461905013781619945421570747683540419752532448942456415945938324328863315732427873175926568870590199076527953213984552138279475163073024641043638423546521045548522770548276712239826793511148483833206104708645596977233287280228229870106518570192899707944630361494236218096439662837591470013125885982246934990199201873003740141859601131286625782411895440624435768810200176128421117201693625737639908761098924501290826676706941278680503610793776040276212720402515376827850738516539260439589849422351825802309856131484992359202063977152347486066207541395851181295899552293373723320872072507805972161381852318640634051488063041847069687733133328851648908134261905917640673441130289921695000085926699945438814490941794345776276319490153346196308856823895540503755458849221237956147771825405589300546290151942977668980574532443296351334450904360637673831693378905277148695135664320863564375413574884929853494264946645774092042772439200081011370813067744314123248202072865137970885405222315276642596342847038675215982476124269919928248913145750168266306003592322004182444933143209237504034275191194501235139875299745878570543064708230476911436133976275437174784452425184519364012045091960217856670127482391855660639900483850178891899708619745421114465264379717406791298307263945754069549902927524578668482871759807843103793819771370895894135136575658856285426436372764433887735343021286494779389937723170973526344618925607597119585452784382115061869622460738359011898314749393951253149128820747529330595985333218746571961872719186652935829005260147691784227164375476079804564288722840541482371012045853036863980878733607883765390135306009455782580678287145725059445725974201481728945527763568384465587607545321450297530359584862192180920351006069389082699610969981114676757947732967462273814664755078922246272406353323879602025524104532812416204425563611385613729370832220278105612384386599021502466324341717799243059448782446779927978413258407678376488486299398314478598111327061056802244476277885702328037204427995209290213257375627035601924978186187076067491581573108211516714938811986593021033764012837589542417989803488469508251241494473134584814931362156647362618541626419102969471660746554348691817460682178315848968065912663112588895779282407482715018841276857528167080069812862862474427108535973416103505921797289672119604022128191803386299645835511239349403883218363879985272484753078789366446556200351800104988089155533223228417360328096068660588076885908476686927890723179911648433273819936187145250160829671807226687950398268378073637414964023024708552375679110254867854312648652466110351215891333483903779288346710080012572884529792550270074729742002416745075385515994501565835406102658108833370782598904371799259127733022587060989838620628769932148889276953582925959318708844195942248778530197637026598905469625600356023945904772347492955205861208091666299030116706574780450517526964202034423183194753993046960362959817590374849799832858577378257148025074695083469826558503146402660351184790304585214336547031515854957134788719419126111028662173448963771141830044446426684352222723098089068313652204530960333046536280028015456305757543010844794328790376992895858414655419603016510636031251369672510625550123705139098053571791884948815198664434995574148031840943669185273331765964293781213621613855844031650160379145085134598868544302875538974213693650036953372539513116692126678590351943763585692971082618952156068650213589226371769842671159472047046983431140684995570192540346057609886311921321167976624882710224272049639442580531802289698412816225844077526978995644693673716911042252859939410903866029913453799110995440442374572683700218045277002517809622425775873092454042712687697335468156001198300559816885538767849849177493192221371539001583962860459416541180406106131518926743689823073031289867777078181886380954391426251540401112878834526880028514881374504861333989356558729482541205270396956476442143121694599286650076137019757345788904487436799641530463891550698989866246817142070224718336620789625231345856102588852843648252436064079076638771509244798906806132825933586013595069021887429689389292564732257072922975612033627192650913807062351395367020566297268664194399546837873163991291685115526288121844391393927119991594239096994205686167659454458358511632388465031813287364045689259643526932389524141459957685500935873795411117488433791028220098320419384731812564789451514807204598728151870921436957089388864039444998375772835471999883871639962539729221510140277219881484528921764325162474685178314235278657666662882937334408786318741393207497778159549791190958855038816902945628036381808884574555052907316830843282042552794130582683021658108337643667995205184511154420655968851088282329797900787516860884141609700767280455018736556315220460421074463550026831623690685036946093068880482945166470702054034177161932105709072217829322591575816709883683035216852344242242659698716397271359956880136635439645230861974154940628036032656232570884691075808892397393770722970882668783593836404239309002638522752732827359094118845564873445383330586957430940035215679537437025493179407381156227150504675260449927747717663176134285101577355471051713168124769386795987761000076168455437127227732282779924455072775703183143202885230726299634660267640684004479729023592644096973715635791090442909592395912996994580569559662184086004654896410947481581724849403998177732862742692307126335657585719639360473629787481385029721629623329448509890700478378735316774434751713706745144170943565216950839964934226497941527191259941837944886206351397394966204163785451816131929353863590661358293424052999463690947665812541732857051134395855116469223201602892611131612581257423255840480246447904704806377645944902657715663150704960210003839304865717495301906271763546773274819611262940958445671145932121441813213547714263217112355569065425248537916921366496990529372413363774171963890664888511414864548093377161684460181723666699608579567194091850902855993451882325524413773756770943568350708501864813335707585576453231912595816321692696411491907923574389690175388253822108962237181523383036612238880887338814507428324436899143955659329216052628129613474807244611693312452513165116905802706094822984817072206993424108104728484443430395348611743438506066197162187896031643433719699092438169148413177841497719275430383296675554261630718940375903441523169038009183065951646696172954333355555081079864374060510725640304429073279620511499212845573051108663643440606731657024125289643926440392367894444061786446307208082694629089407537289289262394427525907507773519737088465369911367291861322425417756299845164173233641661812926516230304005511468749284164086752491204570533660202428137944289286985011890931227766684085351842877632998710875333069132716899627583588302334880285938379496407623443475901988321945174898921747476376544127475098254053780359976036480032896966096916497259304979795789255598906929382212736961262398197997441522133139248200798819385041579480007732403236417802384449530882730694341620374767827134758134203710971521461391191802095954637755477610758725566655622046331636154334652613809636652957231417854176606902827320396387277065927130691879870359420556296954905965788281849122799680680632932945342022828758789015011890046680669066489359986273385483744438630248787583541221126553706601601160538084853670690318076474064806551016322461436695168466861278818549532417104465980455382603393720203462688822794204869380403753414670486604805016154602048849709945851589539929746499765294479318182663446877727078440577313068148000291556953924947114729764863843489802443167299833262783735467400799184725728347921917277475619295354323698688055432809346443642421865914112321024450518596965439233555211301660107775179593506875582576788193322428048483014090883319244463910580959940659302295079733785488950889591646099945751028513254365625048363902671696684933476712727090954355873315517124600035364453941422033303016663277041572074705412914667681229005303031765739309456700105898368351440585204013927463419338528049042680376245288610071317625907635618078644560257853094981890256632078633237306612649640560332331117813424634576852187765366196862594040215696768638358316185359588148067050957074720036280572541251891681846387691192471238900035489623682951750077144962620899609533301449454595985889704327062945077686137230002119846919759546932483820402819630021403051081961336132334110954263739934577321780883515905151271389193559018859098082281817502440634069571849928873347613915287199711263183766842157532105787045318023718724789483462917756899930352352022301319366937254040652584306283159329353845920906278397069139319116717735844509753254570705565477754193821739593928744045021043195884445346703953898771076498723797200294517942277451703470938928765789568624508938181774557269301048383763590532119235903045376779561267248224770099475897215528828156503197654314410097801622978862463936950356658886275628026516231826381603210279987643188162767767931221893324896671174848498364025290300001930171351205159400585703152063799252266986257125972207209754910389743587357560789910784089972727120977770365665401548634801504535261824523662733543172165218536709610925227897245282251189620838710805341328253682554250526305761223611494581786901580614178493325987660306359699765646167358467762731937395648767341655547849386106850552440562564940912735807271071411801579819575625959935408364402658948399882410993062383026405615432756345075085802052542674208992273288900223543323345305021026772493413948457724434167945926622999720542776123154296881108926454546520791185572971967081562080677745591742735683487859273337115517893254399813453024649551300010181397667250597081590243562386559255930647460589765464257814115258636039190547487429227018298869097963818251636035326984308311277410407573058059926305268010395445033348023251859787351975516509037860170139386490731247436298811888604430369612556275670054842990320322925467426900529543473087506294214391122881840424565073672648459146165847200790894340051636885212855016178978437648009042944974883125178646801918568706616693078520017692309227279206712939559585115150352071858809093920716809846143962744727298955701837246615923354553049441877685312382921589489179718216795625941525016840682470123774155994524938592045134730045136697296735381272148588582229025126542340623101983383566994802919764827780662158451096294202366723749612133931848561079309428997810990819920916689973162479771736609057065130682697195266334298374928122782806107465157967407590129473227765245150222298808150918900383054332548990246543663755358326565060014381553091255521941933797097774500648864939619996839324838400536795588933900948989613256441574362282562432942416069310763471939303179477675663840087871642606444864247435849104473530139853291377373162879602589965212110469960487170199940870147940402619432023893876792604123709298706015431286103122532748868370009833561892492039599359647141176604334950174985736904855015060898082332898549680296763097821013178573803332675360129514092485370860948330416479140863142143860759982519511921702846860672789466780878643750757206672058957034455507051911099571510783313693475831203586612178206680134383490949898717764493429816448693440921958595231981776684331654447945326787404772188956584435722774315577657768506712613907034552147386090545526003247446985341971130223678795706492209446655876579255174270532959221654710326880459436842687666885693504146438745612760795585179609253779207734645663058887642501199022030629072212293974087129171602130416863423404989961111588660129209556021183471591612216400060461098601389284524525679925616369666821155868431335578700295401831458116227838452650606982094277581307743813049852076951143212537625430257953382756300640379955932605040748349116851863100200751740350003527575136489667969145259459171578136113354175642658667882257309968451916936832187817564978716392739687995735213152263906902070246130508463268208954120462612966780421957093932020216897441237505446905343996083703064665159615632540718743746080118280960131494159907056960742562665752919158939075078492279234022608045447989148760016164153392834563775577229945530807182969090177402372998156670435826132235025955305730232220404485329667668372748324581141264918572788766624363206243182828220943124286149840994248657795450903249079907801636219310690480369178377304441486507066881419015134784371309521612005548268744931882605621358003341842048082273095085522683513280362894756344885096276279196070974544460242201541298003750982205075796814229957589225177476265319996409534532050805304397296011219846270032441893100598114877065851616228142106491659688202951344806850845705057436727895746483280836914430853375709834076287350117252617466992916185465372658417548449795292012830988356696599471247986307575192272435029883628600176385607847117139517298635927662830384305833651323590921560213147885494712642016367971689419433466221522212739796538978256494926312000993196492415180893863946327895807178623745674148815844682445160021650931414887519616788833112849806251086151529341445006936536675629104418050122760495210851811838367833948595170834994049550344820708642099666245952456214934563098380442227843360903709559935170057760154177930734092304987240605740502816298934027898418118039177259963189934577687860437416961828667345724111272347798726306952782971206891938936693043318975816580087896701656575222794068608634680831449446808489627603219697118348004674528633563154351597174716411356035906589857130551454832333118859963147233684553309625911569307244338870436465653414293402937026163510431160296679778022813645282981682738833163929864892650016320464170091067424089958489673855775999916085770234474773436348162644990470406049813810575005110039337557559477536016040868852542103568006076917709935781932472596862295133847583393511448836063497866618294786193627199616059699148965944118707024199751912126187818763169912507684765804465234878708451517667049608533197183963107960023432587120246763636514700347088476046688152046578665514677540080038386780881573623254930360756285953094614295040781376265997567539188722867055123837536666557928669607696765346837560929399041839454437805470432275506835017516487938293052536209067094124470418956648731804208973651233214565511352336885886141869379977889910832768197748979413321246423624380270006149861288896346675922151966439136225169489973046329753109825712967304872762132656288841672694140797663991180937250054757748219125083500926686404296795212256200168971290641339037790659678993157299262213390738638117084628200074048737019270320242500361778939348287983926124307174734064260079055340166567115068784549090394210027320067708659284092329797064604654455913155781499143770155268013359658653967722278011500313319207462934819486192992295817014808874194204198625833175978982631094154066373008608411527926696351209831913944162577520294387494397329258160329468039875597383473656852933239960916503582574051007625210792504268986773766678513954724032259806588297859674697473349203390408456089461069630415462084440229990474266351279717220975274011477677640421488629004850244881899534482092019968213724575364602891100476302288488027301967082174163277484690271925328122945528532822328132912786355471222606063464661247840670848293870395731191556858102133073089231139093669199314268184290776896383495529417425487616394624589662880216517122128269020330985333625299864586449219574529017872868988617149255936105597063239726944422657535577908549035742024345064106815460672049177245529145470498265831462173799291481911891106561372433309643122320156102175869550064538773243002465581012460967147096408615090972190485917223056565706561354072973167773677710539152512200122915011416652747165179547188662167346418110855309074224273296350319940508543866970659465281153109705392074045861601742656854964339289127471521094662550434224580377111701368800788667297067205504225253842277514888435338933884491386902453078725842048713335695118483997480445115915518021768662511007120121945735190724327128647440738189067421466641907113394396245956735219005017535359826557578063934818043180422721142648536551392248578323479592476787249516210160801077685402245219161426332697983368017384061388476501167602919807898175960431559839652483826061309308569957084773495319731306663301643258171377975680273639679957095538837982656129479002386539411478489982103025899331544114094579227058500759212403144303421366514512103856244654962387501325584854808860132919124535926433780407063123758124881642031602725045947959775573495953909062690449054519585761679991189245152857055259419651167901654392270295470543462378162439809519309393559434236470425468934651798054937273587794227189329573587634944742922288258393893474599396191938832272773093297979306322244371398769268300236369926070790430624933326851736593410579059730076595473431214428890535918135402556596795919973814556836776906682717305633203648447383210747642984805502545494984642519478689715815695122488580887882438360410268535796658486139862273795497670316442533995007174898875401306638002109151816764936035179636459645550989085735660435401961844862662608606177243415485042470192578519608432558900305053192473032564978602481764547710462026978293951754027859353132672344034307773682464826151883232808951854509902549768168100025574060211760321871291852741127912906674967512956094700665620776376361467321453411951143680124031886707769132107393994646790315855517647626333151189003015703664363765599189425589662993695522276553272422169468341388340845295175751402255356651641396315004253047439999583240690880051996048339864288289138681971783215881642771951575580462325958304895443074693278898088082061484448747391298990018721457346912197110886882388463698519569193265517833706224922577270574626528697639276669423805145513484893724278227676206803129114272805028805802960966146936315498817254885471309604082395799288171098353157202799896014301790062437837322731381880443230570559822638214887502464321234284973080084027658029527018474138985763298972478557119489347581925894663742074730416165666546039271314328644704103202443240954442376192561361403786798008557861642136358694808857153353557099976633934459993347589618337917208889564770403889356538171862502052010766169766039448943833705412875238312088555441973297263127730641339114708447618558495594183440026768063697720501047176843104274940714898235160285193788453954014144020760476906331702948412689994310696714303424914232810015373895501534885960377829907994592913222519776655744275870771335563178274597205386148135647710896935398458241586008811884545579919942309102882415961156372892958121468128964864197683786997343415436026992315558754313845794703233344202166291708131030560099294737305494443753437566316523108976468737225213328927178395830534448764670247603992148061068309822932918262760634507238124673053821995437327260365680426303891404397152580962501326021231681904890924221751960752706579103987441687463057307918185653397857349362933217605090181820572862579975343233408548043984769445038242882372867220428173749320202281768832387646302832673933177742296151916271505777441900552661783097219574674249883514268273056378775240772871507729370662996156014838521768253577724075605235710984284906869133094773974288770863387227666982382190517946175208103766520384200151620635493425230891212200878757542120119580305656980342920361881465914106960668384395994862218443440052958494898129148113460922481084447524825737627330509985538998434142439594724876854684180320457828091033986785850672862886037520741450006298370137098279492842781669109722120087257819669212120039169888309208197814771275922189529721577170963268406002004797446140022951882589734315101704396525439813856562995582484082265236567383885755720714374986420475337376066320308712314314988345281946107779551688905143835629909374180469294983555596651079213046247143005843872852488240804938284312627797663305059343418227507550725141540749581605979667296363253455543680803772890228694763054601592292526596727373674027912767227912886823478888076646275780217537517391379604191677090113069760334551909083297317879981336241309010122567909188447858550635498733796664773380662810106648028147229952235268840919585266834750615426940267406899983137306833881508455463584911354995271722629250239312625927314013960334786382332264340803240771495843381508513694511663600305288357239784768766407080975797577235549696812563292973171812292015550744233800228044612540432803375553700730243245322510811850920499031409180690509040199726903886643660358544485115571852474928410052840382855462042920967630294739334629028851111871257412391396854620762692466456042903472493741382609897268165378148145361121664506196730172112842874205853401965520117126380598935272844374322479477234663121405577368521994723431051961322490022601934167385580147946455241297656428633445632476420049501427635899929832352945317146250846398591298923007110971280767486547777312170003154986331645691399926259244657968915861014037685388159735738821408227082402781455481786427918874383141210751615385752923630220595981134821003792458314916702410416614335344639913149180944604023404547165300886190989413069748881330154390419261807675287522678646132696816082383308476011887494324778987561099296601692106420004350307223321407398855096787056323787856444829298305580784299975778081407717458072693583323518006563892455066252599064565108081066763792683123948397807060153209792419321635745080609982652395084713253316383090122810651742726258974347366980848781045453633255929592145061938420675429606232699241188139816942742492065460058947792378341050843353245753476949261140036605031877996271823731837093667797505655300486635158085924585469786353128831608377236906604125978083135356354506107513096349632131593231600888920909584380536671542529934718270856292381735095391168906602012962481441608228029010626745064263324450944579214527219557012154291067414162791644021668891549995634505419772146423697831819663171716891297022277567010546114249562765303034780337939917548408383396079161613162681477559936114243921262660855600152561353124189514430565002620779764361131325735316935275255662885932783491306297062431926341852849932199542180469347837653412678558127533551565536259320412647659185135293504950011805510332919757426299645199200689651918886397122014914428718387193235107651631967399526929631741623810018263970580856096913867955018798493503732812104610952671940237883634399584548411228381422368395361990118120161704763413224933563569887531976121422100232577567821440876711002145950314596676243262108725716521692509849947960908808748528608267489548389766927634474039916645716202707074177357016270470428197491542000528842304974664272318929725446660544725110506564589179742292984004371906677817679363365321316789870052414888528813069098840066421474193198429596851869013563370101916562269680976493373993441033875861009710316026123743248262205837793157196292727319942723052296617919210462719653939470962500494183218699059875044023900244126245670004165493984284573702748356758258353120023664430858603754960746957939325353526042074572670724999467947740465786992290859308449424849363892319137872227057850962835571305475794908745144568501436433566228999564733104029003822283629961803423972173627735108998011467553017809271028027160443879867951016996618935537428592845002911400225141340878025539677924282235769364965029427362011222156561777713591449487475739492884737433190915187160966302809851058391812423395517390412572707559721231430547338718500221549283486486252558596801614322787821157369213668098603174342365278700979162003282326871889981423793700760059383746328529542517467089361932435916366927485180041192936782370470565182829135533036997028466741457682262174908462200424664559330765631199452125799866908972374354002651700083378654542363572281326504815074038746015730780849577854541062616043700788516771518065680505786346908735085870643830827560600338257048389930308934973955384154438843520783304791929227585482967468865349809005973292347122318924283084355931723412082317347108573238410495705010982367792728851823717622026975903506661593040927793116202037812043755749231942478762753517664805912033694100467017237843129489573145615661125497888239106955436379824669501479224163524975578348352242923008358653126939745108494939261427846065951882497520965080739416707280744138519873347953845797405391527122764152202843241470903156834164049354832913001775764850564042597417993538568241519373671031446781983267012781800407001826172680323756488467511016227696511683577737629257787524208621579798045507662500070470788570637879757822925222358076762287771993968662208012631832431746907086618992685970342424373120964141357047817554760556149427006350503353199875979817340490116883666729872767352501764250591440108687884657839635235798279861295202228408262984840837544819781489009097136774112875337596493118078656861534648900354668020781123820882664477031272184593026309377268853759807856189154395261147952721126592460477589518676051686964532148972427760581019520364742507280466845143859838667387572383652817385582440693949005838174765871673164532709748802185635963341161489702222945307713914918681179769047817798681044661748380382199993436509539966749877752940081843552093863514721898657491961491408618503690014156274601885977029203989338133670749061000386058527788869432849182810146381489494254351460627813428051168445672514048745336470899887494482270048805569618857726421565387578275040285127892829521105759297155996402390469849415030664424924487847148179815944670269395894658005573196149212404572925108527735881309982865056588393169803411967954710619076315500352452871418248660859874903658050529875338676934898121238525479157691759841534572263698158719915315460298976493966198296987005175051696758604443169980985035486216486973728369850049901838530975311165184143355712154667557243999601573278686963471222179033058128729682549098006780166997996644164924648160652509804222114251028413149994559241148419225369023190157611902317228673573662989001046851381001405016209120806388597775796886240053993125819093795489591629285838158865461565250118240601271626650492292137267782480788788825510528438362363051993892471719575320890970612074412814199600949124885902860983589031591411951671688322436300573166314586973403839648759691133905947563425397491271349675907030022485978030430608275878877791351624080301397399254539606380231695442043435484398822841518865814839510830724549977925284224459386419632926163381372000423336323038097374717177339526006810116435237482457902523746391170877865571195298647550032465023246370388047758905267041157944259895058529955931991204648156594156984327495480505991416076653407010584664517398242257536285263177560576908394760050440778636605859693072954817900747065121797609811645752511622330020192624666907311056392511836601137639039448440864383685025639861907602186760308476487995930070789548296024945581943504007343964146372262075812814399991959660908815264789003796701252601080138112928042804048316833486912178175822644953598646077321485408399133635987345007417795739203336715404359565468602853114680980241211377769885701300629778835847153148667193647833689469792362901964238014937883993176016103395129059493907686760815951068236296859336295886161343674076341545485479914191438903394750126265996940235672642547773088029113585510224437499033280446915689691728874630012228689784103578188143252765586274130613825000133594973580346251576920998310791123889271139593092607487761534666124489437609189290061809020394527767973709478546645442659996525883991330539680147576121791308170122671621390481211179520062138777637665202004585675374500451082391685886766905393639569588885180780543462692901114738311313980151863898970597083665356970216221173331336606315519207215414419210582157037451770099366040009625911888195485646688748657654861783820741603424953859709817112518578280382253212650181934708482725204532234967179633641511485766642593778148074880342168479708782397304576724067990039941486952289563218941279150420009117647773167503806416859349809587204999682561806384426154669125616072897766408047821375784415553733388189759238358077044155281032407258679007051786194439307429021278058462356275041256912906048709992303148932398469298289888944805879695422134076345074554929109123052567712264212953154110236454580534352201320298883276772170237316466173130643947387316671428957745888875082871941652288386091397222062325692111272491279522242626681283523356409860417399441928247354381009370225598194682470830003664363665221219964548221358848115891213593275865955317506871742471203089818225134625458902352238249957271628886160144838148245751059708012524854501455042594143126584479380696299843571187204425737407433104375338126896983662799597250826357706158494937433811912227719298188024041168842701567430157480465677217520851834127384257735142407766869199704983181321448094309382995409954132644072686847209179426857439722252978539452366256497942664909259651113674658193148004319404729329183438519624168858790819507587710018455268717386596382067980476608425147252244786442846204855121268317818819620702933230467184096824644215149598364042785327056820596892223260921645596221704700452628447248180805637791044175469555201498866634805761317003110663237494376864206763749512330936055689166116322328557926265855526682203846953513660082234883112782133495179801292339774551925678153061235454649091912841529582127946847914087266407369523873326890574301489505522090600775408055873640743906893884754997685967069056143464953906379934899410278322770117214517502398873166316041559014645070077676328679072985037015587422386044667468174621247368580941067902915837848017835456453247231020645203096511975198003991670752110323375630274630236026114718790704541548849155352344331798841626811839850282551882808069627334924267285296723500743960515339439308952947821782860985255133260903127077404331652637796803561532754795916474725314698560713709624647655479675482094815174328538765024734257081165966667845938682418901985865881506747289922503582668161838587467605057868355239111668030836654376215264264442108829823125963907288619889110287536541763527607115322887197591226523906439593149929103369495453744413608463745360396321916030545558747671232904410144096411068560633553493296209891900158109808404892197741029254878058564344578702983189086636758182320622326856819205075046443561620531042951015179020529917241691503488084892494047457477030611101100590764354754468052866791734091983751459846205144700267464705510041687514301159126402710463930575898010817781589214400426447077892534517058803038162198576561354174285029375616814548897101046249584287181179383766582914434429745708874416444051373512373369145032703801112265098847069304292168839857329916275899259818511057353680006254580071397628993244798882871317253925324511974190717779132868299724569175762711041633689061822815637057140359102606681619785072424740654554967955873340866831670781965261533370681698614755685693013709555204668500820523636332658866101072829123786732289947558933416378399004711493352913962002557441077423613494178067848490854512941994956985603318097961121289490182099256170341482051649161729710976852171351443893937163207184896967807091939631363200370126033835324804090400339240685027514261381041611361325940904935374312392743434952686280772535346709844744919739288743933181307051746298159861638413073342868097905699916993893999887181387766515119573952379916465008710268425750225005413155471874399732003789616919745057028379909798236834476435742255726026572357425199238942304922734729819174929372386691847544142080909845777576628194419879176719009033504638033033564633976493250780630682894176177903145441574835162765733405862293696441691966013773008683344979704754554902116052609084425701500354776939856548453861538522436878799320115799059546627459077135383961562963520854262028040757083931652029026013257482777396529732579120274748680689595694566128317742367829575297434651441038838431355672691244441981535914684003784089851551920520065907278690423440204463607807911050933868661097816561670116788683655002908307229394281227228218557112318825295244294837984041879423492412766430473583525093987520254193060990592540817591347509041915911133031285171277945227813590700780735320400478581031326873358511344394180948559139527307755389527616570548859786132357401258821984927723531201041808420369583207919578011670997059669496141173172061553298408692335061140860007062035889271959464285560130094167510874725466673760775251701224558914177503430444367278633883898663089450688248625230451848978176182914950522818731241774206279350918383397726681077108705896681807165446912562597205392089613103067337241086538345015305766476692888770013881502775530654926599428047763647125177997847588452866933672439743164885717114030716954561511868458704046229363330630571774887127445447133926660149676801799529908603264666310437289255675744703179403801503042729310606312239820810685542552174541480883079098944014239020295957235222852970122207680153051175563707695661806698918546031331573161730668361064614753031037544024926506995867738180273719962658951757195750742629477722216959539120135591487976265914621328434838201494414793350920832206193665007015522787103586452024145628437162360338775458140351975339492232482672903273726725737131506046914943326610673515058667936450691703901962298051947466033438181640740797953618562108425257164851982380685960123361726736069688946340288542400365319277691250546404104149524601732898459650234977818441949945288563803533666651034470268449101886720554990711100769491853363884781095114961859724502027494711333686646549997466926650183428232670604714607893318220835226241471703470819217495020543206976665187314379118875861595424544818603033138981374599299102689521838484308782361438079026605696921716772277034177203690358157256467213573924097830542602601940420750518292736214654972981047608161713500459117153110395877521682828485440393554789595553179888632436942385663030395757113974222792491338494983640507339428492365525293704892410615992980992026456249804388822146151201650372184669538091022119491276518298562173804345798746554498431209599534160849487854605862485013355320414713337948369332174797774092886461738047528342571495607529346786442920956274477545063325041626042802605066235827777689011749212956905577316709792446390785195094912382483820700439903744727492333856211048784904245284281840781180139841262530101126120136416178200587982571285504707288318147226976802681229779896949346295946558599576741406440188474305518196285189012899055683151577614965508936323951531181588333794898109601873791089665707947075750349382264076752028491183870093135567055406837896767473636927809905927284799229848902284565306887917432918315495139307373548935335485223792769370660058401794623538657106453504678816273162987705702923047236401034763685676511746318810323661941711943400787555853210761249676123934415529259093304031356524326768385343486725644021411771050096134085172893365527896849289762549878438660816527392083656852093610910948691582004878103982392904544494905509730559169956421892554901810212316926414924193659163902097144910529715540050798780357772406078720806048338962466934526279046841336290870941785744460025870374287646449621459271894111850868781663902047833534969589684422747975619283791005430249101984565777507252489097905855012133430587788515591349844082034804411324187264204805338345806807239886942775066871358825994240538556365434920960489985617686088115575280413535987987684333784409577339708729075397707108898606480762471461193618480213002802191706896222025010245826786197945405298392687690380014123676278512696253081634126921674525546241743920828028615249298867081947646310092182262385121219609898314619150228996055949302703695549426085309992422358267577814907809542159613769050778093986680058471642914861508331354802327017853022730812968457565367764287803459170263824583506944056725584751043685317474950654987353795499338261485704017717611786730058643415796181376553510391888704851015841916854757152510554460106151043707139547400312933462997942519494102869299159319350944249445605782612445560169506898575264271071128235117229800790537815632247058662432845089735458962704835808338845232832647805456970284486472535530394929252485312025583476575329712593986599906198298990652759439492127904635943502367626824215203648800524226332592755259802399272542933529610129289018870197316579848352503136265355279746047182613278744660461669079969114013057866031739226620197909592797442001826478397027898891857367601835691752627620356415434420310461556703381695918178905185380657650291313566363015360617633371059293511184601007048779887356010598268454293502768418060889707313399993394806518807919769613585104613811092524146956622841984881289895200433101506209227812255954591151838550192078518761354843547488053197603594876376189291263487353269869072371134026465174560039698761682822934447420440853734205188756288274775897223672301108909000487637873075895658536196200303773337497075391985366352842130477428779496351379524166816850994635900012733236907081427651334352636980768029263306639125982227467644066497390461942782372456642736913166249758711821439732498836388985657100640131432568277370895035413334151976563523932567017295392346763495398144767780880595846842350742473825289940887061273352893452347827733104339910761328564593315536537508206159636054480684584921508870392171215389549801432451032950087392790819527143406199499340553735038016122206513313266644299278935691845081731778701148378996320187660687307049543215571721058830776139718108444655165405541699305204966736222575563550221611591204195061606119553294856978795276448709859950007205359552753006192656608059509657432389318610479827310494768856089719740917364434566051708741321059255909664723546483702009041216536457212809674406229285814814160568450580081483614400766598425918951163830111814343159223973542631718446683523791743014403280966441540257109989445383606240516262748282300906346987460613058878135630276169089306064118606414609859782845758569924558247252026256888026440436873350675731267316396999994281372039081957383259951248277931494175246952390040993403826798711461697662576652383691375617082385260403632389686716148616395196355102648778489495844707500507917107549390069040411702638110361703359132065807367149424092291147269369266547677107096082101221493505320177957781744751594798674415142189799882008373879479536011468487102332811753730757249845937210036288422462022979177103347143347635437589959573307712300382483273167464583492540518163441317048641588804006804190297245602005253167386496140966505064348845095936373884676001936977269835229687503190044899957032721386955293359773044625050738598748577837401661059891769468279627700400218211052231003503410060590737149115739761465764895270580641051595007033468655337657519817787458440363901794370783341174620591753561948661600685712568142082406419695857809222693399737948600647244545570348378683663726365948887267383735170415393823069854003123058963043499707713088281935040852997474985698520695725755871370208865615713256414347562390053401406576633054954726360085760307303333070782864747431559087221528035166934407906849639115077036953267300821807420390914545065684728814086302401346787564329536475797965809414323097395700382822913054375361802741199934638555702593747017911656236215747407924118422901599102811640339674970202738384715407088130665144823339554480330390977551053768195986366336452836612068945504217118491695110553599531051509045398674042041012688780642454658705679423827318987566042714139989569487863734243557852823032489177383482514846024359071266054517144231009776431436307151946445724893874656832429725957556635202429453034758513370788948341474904077816735104865320124298696203958414319682720256503446182633408018168094371169637368978780051624955529682713410035927170918820403635392054312696740896823865094255777297106479480765687018256902814750506623033577898743451705040543143534320802076870835213500079759979299647918646229634678083684358981467197255028383728579437412981263012507897479437369803148972974774078326071037239961818661749851656094938451614025192121608479891953900777439506612733668729287324212761686390210704719482709468720236673479651962973744026608244976038348883257586164778499797298496393118307616011360514790005928991469098648522643909112104085278706668029952321846217359205358429309274453775144305084388324677133853382265514250981728382647471391082244224010704646670315869578248453438487654984031222316028107638416158133181571588043965706826487770068943849012754833090377169771229650743833794400359148662987570743525263079108190837268129969938868513766355340294608376944543161791184970462085705870030726539371676316163246894640825270797877255424154798666098317631544530968232059219705829839537541389697193377974064460460791573981153444622504873849616315193123370373438015060385254239636669742686967118273136235386771121128243291527573465523280810081126193226063962536718481617323099682545113873148138292168922052729887212440466269915479926896351018696739142415841548632244541361327590487276807377101947247017313062042762074531220046004615757717613391305606302344278414276625258389876903804788198841899202040406075244014699054140953510097239042966351940668873288039629971925825543806126307143948398716382380064088660555299530029027108175369698650465987486799266209321503441277062671747246525696878980854283899461067189171847911217340137581483902597024015938429916663381497198434097205417906837858826895918682220281160302177338288685268711169835220293256419446346445365031747956262607465372338875442907329453817305604099617680233425598006690424048231722370041023500462831013828487813491056981548050124188543479755570114872752541457638182701639700370768692356129346441862161544642490108386660663390072617320363554465555568050932360887307993384971280990991551332173904957880658278687527031936352051449279939996406535565399805501413289167621675023034789026954704389021340048388648825491616435529363635782078218279618796662503501469760973197057235712646531229474423193719365137320477533391123317138060966994732220419908382698263354695750674005237526326371957783273953972245671819214564261045246569353281481017492177325174791580247412451598277065466436706339100054944784706028187687599522795268967813331259175634114771264024355876114811979559192523042407446367879868352000545664354985111673655727359453662943687523378745417318900907594957804527462570284720315896994328630265800083534167798225403851897950703087939868401522891693797481339021539518424725874068096485594080962085128975730026492859743998729722762630533786543459163896681574891269934795449214656944847361207054965925415899986127993022705639311782008466149037330612824621626747012552061191448984407651059939287785981815879922998613886093632202003093543779598945453318322351683551998128199110465586831431241503937492613792805220879366247585345460553706873367123220446133963526687111081264177456725668396390988152819107211597898728869398869115907844634038259028984283999302805156558241706990312509562016614069363298781981671966209475022905783773376391217283086198588998122320259068638753966386918514154674939465030933784561735997466380916401198359215772935043991103741559082346134079416838747515245934811162952707579259794081764282051331447874161542918252278264313175697843221476529560314702671085663038188131753784135733523371635767468244254610844278636675559868136390807234787985441097103316768723634612361026572291433162580950243084863667769465202447194269912079772059748686550186554791874037639056390459127925014596405685084675367003335481904001354332650841054650021898421311557988102483278978304124506091016376154190001058317432136893747333930104003818142900106966196203974426603973219294655144080797502949765352964694813489109729881252415242569429067025525218763463339450965495129672021677308092629548602727526914052087412930480275958779261455943680802017794251591685453490279215383014523126137675826150041084048820384200324368415035313808715497687247479299953725266117160935375621318068272953805099162532192517780961245056928999585557207232629495230072835992239654165654940535120684670495718165592041255075052156155292842883103419482568030753414012330749653304406864604904423664983931583846894099188287298133718877000470572664648074691697372383570682831583331270017401840042092000498656151635076563829604135787791317428421449914170029592506252886432347779625838593640953165441032464258383934887165935625164020007864478167382678326902174299176718913779845012393851791756234821251746016054031495369076668610019850477320504328111348439418946477435382020194165441745641849784308895730692386051145310374512296842562566654900783942148683137316861307493879190216137765739480282623201120521489637155828323213943441886749922403959126807713621869582136976990657025710865380614723370215596099298517558650040762424611446617772220494782827520604828743180056207429024401855723056279605696049466285221880413166032213580925102121457543179968915631959318976516019592758385065130781671200743849390443443535339324526000364751870865385650521645013705651420934082718260962216839961753210538536117769850375739336489151658958683657082911569218070605716320478190746089614006703634850605539602569238282270277184486040860059590347283820084677818975775714690465604875363647223950935089369978927585026999947392814408240331014605246887525223426934735336131053603366141860324236124359570878350969551594770888400269653150697772945936789525960184963845406264859407014889943968460678614322007143804203655478625869427549968128466876565812045346482504266827898605361652739307575421291786634189342824208131216571336674075606715558222140671659296595637137939185472421200027007550358340504697193441795573918444176924113106587718417715056563872534425290543703945099233243635141194831843676360453474280415108415048656628238775028990606297234582252943172623760130640655777472174939177365943603357677670781778474175716946740209061622345125257433962227176442352698953628727395793252780314885294512859464974076017241804166157199999069567352437801687594428953880922003128969766970631788275260692177080871501725835551936695032362805203498320169998598189955406032664531710887644634220322543371846245643902878463434917022559700485215704052415361506547073739674153972910895046602541185927578116751168433930354143353425319560491257996115369947425041034072819474548224115596584545624608827381706215390673974736687663348903421040913346398410633192443927044288422780129902059500960244964270201699449144253969980232316407553669962862427700284216137992191622315975786713303252646146279855018612837360622184713980606665710682252521236884875128940617554935131049422616846350999352094759302076227203234777944257041591518973827047764608741451498649446475824810825749715819577819520725023883705524489063286158932007010129471409561337072055223508713200889971567089711680894659982041312272853829753496345027521258813003731602426145000048101567378784918393030737132770883803832328219363934675110855743061069277918510581499183312412844756450512918114802312102336097360319295023699006611577549250799753661086395227517562256473175218481811591083656008227695105148182642281875175006830226728879836836131435925272708695056701187800180104245454912629973053787739686024669441033784506705086227206786598041127198302838481436131546527800609592611800118983250179363197818312684887092916899800364083325028609594629694749455136171072156688897932697477158694651157522204245189046346052877659238733000278095685301992279463228559655576479457508596438273211297416162387837838610638311224489135596398231495633808161620062141872558435356851485267860211820235026414121121579081368442756354190954869815866150821194098640819527560422340461673923407958877093852003374395225393503723479348119633650510565512964677092324805739161714544347509553974441272501411888673787130971459490826205447870894142847454850678197466468470898428547776046948312920268413758488014672987425271310452820572466489120001277005411845149369596224989713126431463989543460672909884607467227377586298869214504139603135332070442068544568942777723879068884253222905624845083646813837766872205410399802440407708752558576741386836375425572968425041744593362958274916531068959047542172231242136121919384130964996166691911288105807754930243960608205567262179224600650527216438102818858363715046957127255490086176980207682893997884728316502296293015362122444731572810918598725612876107547199889391468834444076251359344450407585081076868215989206332591877465179562737575752093644821909357805649420573202104782121687758355206843747561834763206439793621030521590019377580995240098027790664095763354245180864446330988962287049835985325218932708344109243612111422727139780531176514308108641533240392443921567968141099629597522140640201758928171583622376587105708415076708402906404407575676950717199232482583336609286776784093497142319067951231573024790875138560307048161814342656512392914142224509789628005743355125266210317507383839006481914376727388866643611265797945412327273283805692902654011322737970295233633888582895988898501685813458878566268697765620715014596464373530269097636044637167871151186371025186410581452104963813919073339473106270885707129820087362443288095745501590430630972385401782471819991901457243692713934779331087816173168903261983341879297387081886092876157507849118218644101743577910132052010713113228970884512378687596698487089514490501119735926721223110987723529466275935505208096083562797923045227489319572267682036017921245339413043536264119537752368951651438393176683551134436992368352354626426578898099258635921586943101554033193428162425527616200929929028120846750534653756318286241262598748308246767041135408625027262511064603565169059573520193283106010682925281874772512254460497784606811286561495760177800303082357367446178312186998013197175310540083472849862465969918596497134050213256070020918317159275240791760367297920129490379730274069027369848900661591534586510309689171266561343721831917277737085921822663396533964803997994002030510664071118442621191200888203879942188775608514389205541507451090355854594591939919711226205896131688393567302232704991762957842924655632829709983376250495591938828191959558406820734079959873054056543816085838777787491452300207740295540590953965072095152446292196273468944353066126889884273993093583844831224324416202916559131797500100518540967906638761882330917875525889658397688197873681279781493105930939568140178471498560990784370735900963490043762171373999652688431730757057853514631499855220120541868164691073515837361588549756857651761943092347684536893039188355122177424855128929923762566813447359922080828314237467626385225949987980015364611542414353064696926764112993731776892075615696479281053421347237613768843083439926017329261784497326071557892744400053876170916544972636066169048898118645985995252836869620770266215429775709761953429058879582146823492686575482954703698739530054083251551328465652687541604474470189126461026744203891178451382487074996519237012910629654880482097214776317196110955957445847723875870215286871501510922629841114310094607361413586938878396816975280649663659718145749086067704984376182327277887475688804767981239518779081028576520779703899765939127169641638158840332765028272545635003863778421558873488932990602332322530361902481372160778759079806244190539592825184310686088704228237452079358021886514223073329689926925506081681446195529006880387533149853352241683863229395297481560084357152882073930813152997296276292551436308102400505728885143192705077268394728488298355528098013081317565046907419116126864193057303746133997264367219570842133684891965752548149260832648564255728204379254410447805430481437715285831042254298274353215966440344609655462337224845836748548786094251785686236008901600440043947569859541299571807518362106178533392828599559139929396014382134879008801381894819090383388720513174276814007379509149562197495838987203116379810301347913011786060451108785502751058160109750802209171035894308639727134764894838566661962624918226953451601493838289472694882329491624539295386968860475426641595164611215350247841884167367040624229018032353253748953531069010997385313894091391654686392041483155530501362125111288314930539825518256526650532472406394558232033192838519869912564691796453637889500226116807171343591212342833720777308940142181288389570039952805560256685465944870738201681218563919883308690353836225215425560549690035957365051182673913753184748771490797635323193845188196383787071628449038506813060853542337468397562871434838299029860139054524260630284346358361820754079033806868258886964302320019955974708543552738102899314970913378331536491761013522617784115282463615955295292052752144121419433987585456645062457605372126382419210932632820052550332750205699594385909257887715028656308784367105026703767647902228848068451276922678361333171445517783180415931941712044123692181812800130987187157241871891800107656099266887698990093674475141491161086079716826456875590158609150571752770187392643928582013953628238112947133878340041406625904772982355546118630019186321026915381742612010196113897707799443036618534911199581077402572794755600786978403359114203726392682776396021810995172681506780862011382217560652674935457083804346809444256259202085957994774490204413581987459795227034996649493317625627426000029254664953086045057906644164468413549805324637065286025829267588567063779308619589546813527901533792763016847729982031647273083652662384685968095757232080328116507670150628051929485085399046557137923349067380678797233658691170955471681200935644306017734239819132381012042309162943595255181145070197116678263357517753583192923092722050273128305468953664030959843059548482827935939869304529859502950231575395234255546810030139704694747169751882581714353917532936102738782498909713185683054874911914905724199276955020292825765945200685076381970064615685906233391813776870364040560798344814520857590899719450365399644373165426085396947432122311840668937293445249629276475589527284349191755897281345909246377272785289150043058908438270955395813288528641229664092144609914902161226027510923522024289820561039577153574623891524551929274575820153335634935799973726374917336185892476630415435863405547678783086040591748046669721444880430190288928447688511265707173136139125103362165359376632457069817825003349330963184333666345835559927881801902546726819057445905967400679019800395911987047937462981306918903829665392183234470768149791863377841748214771098856294845327522057896544531669385490068526654081779503814811429390193851848718010135373275298941772102866078004296618174910066251060514052127739798449071864364661826562362618051040699127578733706789011269458356393800988725572022483515673131861202852232265321955925034567163939780005346623360399484370420137641471528998670967215937852001939176131647998285468092718564065960743997818309059474890906250077627191050761759556049412029580827902920043983664946596772900871656569928947727805942705935790028678664368499386440013492275337297076064286094059594448130255626312712732871809964584709364057784399998120855191129982739014192248839102209107493329801313362943335474487370695652170538566577301821983094889741267657705661263204669046704354686382078647992206533687951486821051266500515934346798559822329137529949164229842609127682287480191323042033981504558151995047896579150520175962194897495217425999527727429249890632667758543834789275332647544854034231355444149392605183605533981881246203053838429919204257904595994566546317261719507215681980682525512838577443321774081702781088292720648193996351236009538674867691266914152716345099463827488102720669141175882376875846431532940053949157456985158804298852326649262665987576302054728435479205428767173640028653070587011190329162695931604090870100780293760482881426441233667238185872920324350713143082414148878414951640826065085271074421153351778598293710349793657616255777220226759145017515592491277406334436626768290519414223050342029354394254812945978888879005692882151425727567048403533899470340350801662275809568124348582100899863148156551555499513349278297721039776338898330316769310326564314935090958690508538262875807671982792877633474967335901163777420093403552212342343285803752066850615678709355665588305431180379967209772902403101924418207743741904974279437505610839269180672029518647309437861272411200189134424759835607562148917614853487735683192979544137753414046275451267241382120652970366699178043366904118064002370855837902546935051034040106244130003880691958395493971403011452074503630699015860334602455935714794618989761486318145568657194712965338484448679587309893888726156908343125617663890375801619502241222606504194329275228916080421082276557752059383389106690138815055455901719072320106841575555684221497572694597095210972035430659326866232017552798819990112024142510098124379623835304268097326319293364294171229181849993915262965153336186056834461332457589297580314772017846788233392936667105931029187204857019142225883893129608393344511596263315856971075174841560580727926090548289355667755244167068370857646495485307527000574283354081580668499923389311804903375297181033225266171274380753567982303627495114692587465272793332278174302421756293536916548631813249130878026828901069996947145059982194459291479144574571878107231157915485325002723877016205253368054578823748251299013713472324467007569329123769511677681445294433736068484801021865345390809221729548302308614175070785518061115237823641661704391473496205068476688452523938120625135305000803784400282156091916181905400665543946926033656374846744583006325218662472190313388650831875111250515381148360066796025122229052903083125419255914944058161447196052542190058176634579695892851208432634048004048792034185939688374134821052046838264461463800373493491082145439147675990188579712757546364989316490993582576590399486639960173335519977329910887255783158240894767274580549071942031608128337018871093715934218781988318911492114879909355422116377385800057278817525306048267989024530483233120774253035860316757942226426561045027794704033395277729087944196421728806830888977223449133921515233157617321133170786490818546572679482840094249277393804153496094779003427635411203206244908427323819301599408109094138960400165364740973273951292749999161334272401470888837657412676666039118073670493074034849113031051133901748285603052917511526890017829601268247647048400214856466599099290144611405390993817296193897115694452100970774161369279413122801641526449010077680021197465262419120722735911717901420361356363555067836759745481406343681174611138221012924227034922485622734576139642459467999905794565328845109273962963733456999737211672708217865884264397034519213851794097501380947076956300714764921737031671741709203415127971190104346208853400906255563541611212459192613816947548044254753176121833947214798730533547133834767235570560539765398723750000574955711665555912467842381648109178917946635021713279420573218025992540606058220980060016488714018833736610288375042659902148373099644781752491249709067711711079499743346837680005796940704266002365258878885281569288401130009028879565187685775856140946813746689551213404572826689269016482464364439498984712710993300009503938350754710657633811521960466149038996377995213279115176526457379615745154562524825289206725123888017021568876434810924317105394321219925851146930275638600435601324138280260488916602918989353708528114679927099042379089900682842153103745045729003072733810725038746427834783994606024654989157935822659592246676423485902469296616286074555164878825320079961825129006702898454825325883569634846513771084468335251642269329871830611369005254670815755720793851733154975105233442339606823542230728157685048011588908519883118550205402476006523700873553095031100000605610172774079393175320714507714859847863567467247422200207702640570598292007626267833273379219448880122887874761490506856903862841376071249012751147137229093821353972791559013614422932243977455056050571543076589653130232604169049909558492912222434544951421897768825514061616069125870382812004786069335155438578327730457659915363454692989288695195548973424462500416339113942555241037014912172096960359076547472915923806521744798433318630553388031762082522858115696997661567826823554931819102519683581278353297820226078428800613358646229661218183742776084282968203457634823128124050413210188138214623489059035415137590154693923731614627021315265627425405125334804007162973336844210184137343342970432568811222440530480207718566904345710635507187864400364430175007204545737141942410670530700667816586389979374647086749748297350048487381783812985853650281273132066632829842038945790450663173359295247657012374424141717195722310829157855727625938857816118278939883156543957804525648647402364812604209707287538727585216491210705375700062213572459880827748247567582304129555622615154375834908621622179401691897562008391370375765191087752182731193364260773904725057807031547361358820050630805880332724067290325233206616962717705545298159744534746458777212847774025496195998593726871087847012472686325074936407885621682543537717102083124822243544825823992411984304127838927559655536572732996187365105163467413068308587377744653361761889584755115124096475582466961531812375778462376019936155254121964290751383899819123063781783294025797109870894849252010813595361230639737150970744943794476825428435592143474030589066348764749503522627792602126824656489175054586801268021424136914235609488824202834314242760963318287451212282761873363761656708176016120825593597798860792746042278859306078472434835973718655709488821650287280578175518134318731412993660243714946220071068205656108818540707229032231674784629144042660995584690347829844538759907387897599025049358825169020731399458702408778045092759428591774475853376387304148137140628510249157545213290320794056043211646383525859235851006853086261661554030581275510726766193664119657082420834669395577695502146891496121496562142915903685688090867548862744070494692952616793297720869764639537821757909297357174589581488123831216184193073956091857267441922327011568182401674811574033577630760787590545591967588505658841016714625821067188478994568393163903312685061222952302064385701608307146174984281865204143633107963075874398037423444144193814466750117984369725207501303491789955863957270671245907335210290137593710959130500469019435352726457117992436806520547459917271471870105647070496578547180685803082207450546668443877891285483107012564121664214250172238420956347183091170107891099110481304602280368774078066749659035922519163332756417049759444301093363048085997019604118966270927877644092632808186678448552416191258120414770105383889230110877899723570913455494343489367229206898492631784055585134943462984881688421202733519193295583218045145300526887763963149827581605030063306171404678265672571784569079279926920913594414932911192434701500451459234887976753585424053198643101022322172029537437236633066503587487540637449469932252617358913806403233032416848466188629039075798512714453706532172383922569906393607228442860210075928132513152496611005853054071847294505939705527637185201004536569518320214542146571108118551502944203516108402641340920376059392949975767652539377852141940677311550651541241886137800782241567278627197184452057143258701481336026961030022209688091671974375646982012822199309166970398540243116923930229669965678285691401744791184787764645411843889413323060066263642748308651200364224022980673857304419811024165927650211163167004442222192558152439881122375866339568566937736605543821494131691980807951441482379167885564206161995858929966984158866604076024370706124177851031151406112462048809002086705338564250561752891076072159492157428687530344650843810423284121248513754749584225771479701218283131279859948757359005806969542751818466574818548308470149065856949862036709017733963492290138502431125017246416301957222008530796684208366441589371869154622576781152652612173037671052378048499200209153749615108278467894739597301695423131406267408638463512814984010752642126049231815350950721009455990068359369859620258890974518070830095018592939515868013882585719249423444708200839403391169332791339060895159508362911759918413908077515709296410446857369606101875767606070424244152626782346813745386837408119268912264222635336179117230814997225866860939086698078304070697079821852556446747020037863060393061700645360881502588557804718217950884900916537522592657901997206667762391359946094446654554951605096651072795663801406544281692569968166732765980409711664840709369581407654268638995821366905694192373065025686623700108769780044062903851205118768141502009722741584319800002523932726231687422975079715724391753761889181005325394607915723005438271631087803616616258203109414622448151163996583083755472705642480946394071843693836503330375608766691374194129370493135642532006731175656689746749185176359520710059009056621476063552870157054476608328257431060226767885493575581822839901182690071185025817607946108703573747783435467265367896164567820329473936885888128715599209679475210338800275667232395027700157342801156940250610687069111002193684661139267895197168785013493852005750570189276195946221974806543922070165932038191246930333059677923101840199560279702389672273730942034911064713232022164513233967279568347179134511577532272537836973878025189321887275842166770164507970420981443203786897201360082288017618007741551740974774259880919099981135996192391889187253887038379412358893507573020329912552962213856591907553193881678356706652412386176668025350942188322605268057723435820062714629070541652159441946547320015818298731366697082806308404027567828690259916694671374360588781452407281077908075631483536648202462196405379651514729034127788520739844065755585302681446798559361195914870111914604733327780152338132101605409055493066800237283631634651792996587350107161368352870607024191308920508753340744800326812819653912554495397027513849312189563911132237332501520288184633265176061397816947590752656136992900641053024015504057737213334655985749504705430809700822977261415360950171573955894409641110653424486975649676549960161762014236518401028041247481152654731534365228975004932807470456084447043779777939463458241082309071632532568120192446120989462044728888246319107085619342655368473034761046490431944523947111956491807053401808101432935175619767426382703407621692353651327950021102515666342861652552536038961709267219848759598489538396814651647395510536288742721643498285787196374503801971603874505794767914003928537431815077186606702330914366240423119895534946603954687108394448940507107949798808820649965456617088743332563127631214123915283493568804886775017170629421477268728986103105643330880911794363513276210030248085433939146183610144126111260397695959095558713109341375454720286275395685650579059370318272513429536790472472481836504565840411778909302851726903160056463888187614199182508410799926854561556050837901070786927117666207461544212108623305515009008158328996250858122753361111692218243873269593333084928493897116841747189396335935979153110787393785384950513204347265619835289966330867611039716006061277297965516244080651438491752249399798083943170003232925302753330784996915921241888337703435198114585028516582323876199436434962114139768147559965285762496466890690793897646314650568765356309536384670853517023068839515632507167672352186091106849460259506506566542922867864134094454770583766845070758015351506617314923634755205741901339371071675233147971336222170401878930083417655971079956665833151347238515187127930875754893712349854138209872038474133054747261257010253854262788782969968666828497669742382391992642906006828164329599314381096809022124962352913192890064392642432102164916153457857742081336945931505948913838993320320734032424656190477588921450117883019880339158408834921682561848816357572957284099248826117848008018949442210206532231658467808879569336194881131381842696473583963588583506816073285195668344619756838341371183363053756847169420200427929842244303606464290761168381767245283306288137220244076301963976973729585943248326610742560762246101058100339654725502257609828333133513601676686467440807657644286574673233934620732149241897800594650361924607534359295621765636408732595956792742711400121385395531112350577548116400592628007725520139480602229035897617851527367430380218796242160123429830919574301370089851151727116693758423680525429841654962111842285285478563713412235186292087194648128956182244821158721388518013949765790225645685022843066046957837849673078428648691357103338868341733993610268280943146425782524444912477669250286898975221337681692448282476759805960550876681094520682645472623927156488326080970531914535275648038872955372418568627988547629279316369177416750853036218068533837464067876512646541547759812386937214653095249729970282634230281740257898667629747005169355618487757774243911939991849727668551547023752207694864598609505688970863740481022141120429663779710850506120565479239967621684172022793002171074773893362271106116628370305244517090723303584668716390220642269599238611656516955020978405994392715313164540984934165512492750331507062572602072242328040015131905478581146623570145951859626497169517043694620084500309940562953116826073774342174612315652979957904169810312577187104288554392481629144267557837550140400811413712490822558524927500103822741500817178953823990543596067999849415283634600429230290036648742638888400062399010001839104405999714911530109546908573141375667630849190400613937854959423678933731771287498492101112099301971604158725971720178165683917130547948082869849709188846120689002995356137531885114207227950678609938647323024475935476634163061902144043643500064691937523075417320902399424408519229830339526020762343892278177228000534580886903255378730517523066169381352291218940371194468694315886892533137671388365472633340335285525859903454576807308638011217950966077855513251040850055375399439711618236871811721834820336411117328425234299379318295057035800784950842556686738184455279853068904961815637034409715337259463351625986643478535473192394123657703600258038637353994484946843160042487123695456231425412775846747558965537946271326136729996842358084238280533349553873487300328646566910818640324678791929893556163163970845673380771660999984840561944087711847530409226604959638506379141847456812252961553272691457820422629723408732481900715594316291777980167792134872568211315006469833246665225053463954394240699036498702431848366962090616891097067207073514819828448127959699195210950777751005115784338507443926940504245283321576717075798708631882461314156152821710017173485143751135862027565937156500534744356651017851549797311777986718597585164524349702120917802196533228505183985624293617796834626687398592660590018058826906640188297157857794836849838023493325596225965664687267908842533059352030033938472316197632150531472271949243715557329383175884153724527977195887673739964843017128887485836054197519093260737737124255081720653051244736076526341706591128275762959790856834748691415320583781023335891947876521818575560162127609349145143558250629693192127479735576440288806463590715230121509450037139791584375534825399722867812776854178671471013236792696659861321646649610365295445769512952014527137261965777291925245690726946330645894619440224986108545598444291211755763685706650622009415921622168198030491977097483325707305435301587335295093523906226958507146215106759465581831775577887128065059550554515593196342413508684179949969362069511664375838344635945514247102321579196398482400213282361670751553978976244298498117163731853273590415407396882132980663453898251851525470029658135963948727554385553217450922074687977761358106130652022899728679242602135133104609766444628964001892337003900292658119951606703817850973527826079782023775531815427458243251207054052086064572838406189570797445848089789901860799296634079620983637127158686776099539679964803393828883114022296838154849034440898478577222291212318576801963083447659784785035252186533419012714713987839795766683610595970728731044722136345237586466427749119978965910041417594425737691914286621142027232040053924981022937070548466633620332290626852616952312228218816740894770599214283040408846818915629967606312172797836967697721144858365430410154300880483150791972905527870514040904807324462952736834556297483222778281936901032979325850852605923054780440574610873635650489183012732059845202665964507681751319304979979291594106321377612391541346526741321668199916322056886874626746554728321190737522842174777611339717100424381679439155417003482391308887976474470295682522450102766188517533164996181397712283433747597807014221353585163832425026725972129445066167929395683088067425091779490188826193048768241522582248663575472820627364450173678070139534513214131148860132772719585124935770123411604523448879193766314597826147089053647986181784982833229212210224566474191044242350924605347983464865490231210550283050407804752693908371313661499471990154098327907914092908753172188269227892713845408062459785163868910483602934930278849191352590073451909154345913725190297908472742274698252297652891969736026992678540253850778961957764187818587332118379926241552819263998949836653660757100437148802546271752157188361816079663558770193317126980013794482810434108360209665320914398851948987447728735302243058934625377844812527415748013248930891386206989691705783261123157587744159778468346445147779425708629239626705918875436839159463193838123757290806209592261771697881617782702921223665559334317416761827803450168497239761920209099296462590869330858783601484536412663364097921341282005927063237129478989188763633491914405938890083402593030822176323241010428763848147475510241191787344835893812088722654661793568868686031012326390813162096637596946550535409237887481019768366987227159585168570281541568638816004274824991529122038082398789739573309491836420219052771443243627714909061693540098044212504813850227050990281205957838672033625320050294355015541838358657675298254858436285667692322216368919250846251243514986787409636450142171046145664112110718357116770412916187866283382012616254588593047212041039132699467617283436326982693216265496553928971268334435718085678018633965085979160037077626913599491426747714592778726467362389363805740951927791745448512071876808016553296937413013981384344692875011647065450979704053537591638122441666411626217915105993220709460103151639548580154611223388579172769185489797209605201412610490282531518411597881635064858232709942862209432787561035951639182635682526351777405500471152880126378153497638795022148077390337025464061197669421717454874465431920222888277338831418798761185143679362989775613719426930005194600223478473008528505681546802757413076618097507459558311806537214463720689190722410004425314440645737292864666074063952334059068470477365010430175370553428598466004491655967451621530923490826948467931496423514787854257419038886033436101628977924995313561046822729898037018380731916445090785301256423583486304845125003612881803601730695459875355781920499504578719798278329096442196168444456925586032451195131261437390157486869493099878606117991622085781548633022058454697539835591045793588106212219112908557424497983258811760994243305507653351809157560238754151758015131555894251787502143435143229891608609685307922679490074421896950786578399599560101633240858752668036336712496936729481800639887472362920345168319920269297093107178301187274535805702412429988056731331345758355891173079844762788403428995606712675100041140371363615187918982685096739597202311834065138078473364193807058498224492144912352389351342447652872796327407913263692148434836815703600844829581232752188135100825321870758912598016329550011015130744534707025679049508331566298875954062265528260389389428842360246248685216505079617530613112629044232592186564644765046573206816526305091264198678949528059386608715714414074779191954430999838419541957013937230402181456700852376380507007351183899139155638053434529235570056013554840702924404454174177092730978183743485298267585937284700851759763720115396972778485824133612133147564076884542743785893752714224201892953952757274451275277493252202831256207686971169977952722270717982577937049575159653092919969372549502896318918419366007157225971826845381661649687427302600918725107570329462180968363546295257872300353188166159923815920810641573541840554058930242873425600689723789139138347848057225372183756294503556514841117916609538479103044719580050695136922133978185760158243081789018823000415028785335460767193406113953865819240951186958027895754723105142133470084106118091390225695246071642479671981174807308871208338459232943830740257756819140521114233585863972085310927577100038714009354585416229852567550557307167021384029872329260492308178770925105877389146298277373171246261082242362637672631151248369267246706433951350856041090295372046596013504114286180170582378006513253646394084376164019749905813931347755785635127745750349533239947585827271892600029396395687393605623590211919017085843658968821675194275485292479218937734547668807663166075613307733004098631725331884818503040753737358676764833278384612886147852790890912530490451972499818370349093655178532840881998510539170216582171423140597182924441839007513498512409830903316002603352857597511971016716369963467376051322313566963150184559208123334015554708847969477537114087982859941323792931326411189758133447349611790771231146694379181927996239065226443505933619017594910005181419140585658062900003194782645146709925728529805439829011127301265895253123951366652537386144770438036896008193418529152624556822125749787570603263115780555520787476173699593622935711567973696563918530070613258973062434982998224954804380754555610603522042709764065996852688916081301165629554892210389001422923996572600136897650842282374253869291109669414041912499563120583664300640862819650732261528209542801490831633230304156183711489896147852345538785285712498391617833887948811959035160250520228623878075934662107503389224690702460680211440945078731993613834509466909230021636813988887203052442985660720742073139984681855789142711206152671351027229367596611553345600278002574546660315407608331788806750092462522428276373600052171561782795983228056852059021582424460876571640160975034682073726969287229323414285643106818792651075544877024846175320182440491596760436339891317155910116387516446368552675242402531083909172059179564738149754606861430144131842214732147947456458730416399853344224011040279153920796630300729857920365053750079741578794190816309597190427656442592425529179913839422556659695954480510989801567930883390862303277963469929828240407736372066157608974981310269461194321828610207880959247342164346661677663905272354513667075072586426296482305375356322891099394126460182826313649251237348805718554258354491354733341322513484696095508432526564655817498428073211430894853134502402669892332409419435268011518167733475374074129988039414888642848820385121225733506080202295786167586616276980766071487811191036079305892895617641654478445618018488090777462550966485338481321697224455273995789468034232540699300279300765600104726967104622957793417190562682224640696527041321835971928937051893149912344065228854019356207233511228053133294669502256994436219595905295170343451686375404893731328289362719517536952183214451468458609270796468047146910477484711741418078474455432857948689748066126700120796766472274507789116203284382100332238090234977654076000394783420732327807738412867126117995528642723954195388797152176395506486396748295706112420094566040771304775108616334561846086361520573140336029032815056877712426904958318865325548039990686526142603413808204904273895024156618428625819649821835590104695393728783341474467908565343644104122260962756322434722392978405361761920124414787406385191843503656871259617284616123750074952532310195207248165526773285035535320868662261802335238748756295603666394097313329319614665230562425647485410505068117491272553565968997687162476238286570661494980945691652920535712025601180787766408930297863266339313043383676378247394994485312259099649685448797496265543554992771532868938880336241339697024123141696929308125295006590740050985189391488570232037976743184571473921656271930340822800267264115851826198050211809720229610842432045568616485168908770239093978331894699296284056430522297555727195284062421045336696662995302446083604370408684961177861173743972348036900281957228002254221097736871789134222648423153549718974905999047702079043964048459150279448108516007693640107871615311475543751044043649981401193740724721222116339553694032052779639106187742262065381698774771675855480214225249963678545557402521696943134989256884573499432415661921261194545204793514206254480386204131355729817914615925137032670267199705909943068374964380056261660204545368550168271880883335154432935531190435859377244416034693798247845631491152754710443211848600120563349464587131856413643147039012353046465275216862038230751754474009245943462612057904247948204262111639432020862106329981457585851810266928343974448159217430036118638499762451330980447116483989937930859751192180407711977695331489911004825087560919579041989588821775587332108620234912501507750550056485794659065343791897699269920762654958062467644665296335910480324268582585508160787546560390571996360025209929646265808995571111349525898426509597118544022765451689794155442118446478980159937452006985861843508909308468766480771647360367501435338328170001291909889350220778031594957408662173160749604575078984677857884156339269193431384718606038145898038307558228285458517273320999437973979578791365424552613685440895206243148191994529545181230607323812759846517177463957763356162857409574198829530258435568135620119190115754081657668312824035406169114561502830351999848568034390123273200799149428253399325396620913523634095499697239082640146868348143640050511544778777224328194946702444015939395512797946832522452358658738079291356381685023902169511561789690365640528701916053932279162269054000298548964162848871146838611564904861862248733031191225896018948126202136653080549198882943469179617151796195409626850634739305170638588229403795973409882263468820914979339612183978010479622786179976523523506946112931354389392064711661978516935830489262202320417837315005572886801815240649573319789031633475100594901695082267648905899650891962906649814996361796533852929478565643667511433579907858433165981827134867130497403167718195622891230135813967559186770211226569822482920619664443842392097716010655559025581617823885844078174063834219923990749030410120093184825274405247695190275721734213818522630683765862058125252842126076582724858493073932219599796493321964976713978773278664670099444747890939491009320316424766659463589144157280142788846366382951914412130810808915599996333210495077511176654402369188626750357833075765583790728833628447447529934399545632503016141720326323033740792114003236264540455391277998813271038640712720660118617120005485142772132484853565986033501877596879502577971013668422935145877264241009474163947265170832499856047860203175350370633337611562398160047095124207046865341540778888784356040839658731475666325400646528750082240749613823902814671482498040468258358298536685431805164671170402110735266653014871526182417947117898952568861181002149837742552223655212730444679385013730378346954520873962499969481901703969524845785663614728518706240083947511226098838100487076976391853970783260695683229131726001151347308942671099990863538446836113226628312684145905748131798228263656977841037998449033866975589826362355954453247653551898675264034991180180256491038002758193045095037875393343016783379293100266899896092267564181867713625584320855264770507690774693070015880338596877691375224304232494859849068639978282827191229975422765062042663939866290554651888899403005693537754862871991671863837724997706091087801202722967322008570830195892827627073213850456149378025828890528209553506867561265582616602873344603590391860743934431235191821100812672812919186065673031988793193112777148640427019483861817866599878119859842329991879128246265433819250045430877554258987811399391437238034987562575010264515291673938636921949506993991179271582044100368873030955796960185457369558914402898017856422374231518700374383982651138331809052865112631642353288910012238319997624880103851322134141547905082846140007487851256402316113147341203477106224348007213100691934130217210530200089073514758065683523031704105930956577574170699948222234910221700873997072175814143425166805705778126224531087902188715329561452528345000221780153023585741256537899801490388242355830856351809311715169374201409128562409714689476050341447897109963421903969524763712990140595649320740999477812966152383211979935054625009145835784786764305104457217180462956697270198722393362396111584705748386821699096674765963391781343868469879707162962237026446095283476664696858180039734402527790485523249942205344763258902453372441228949664971545532118352310981816647007769826848732271487330831610159599172284318814811121041091926367927524483606079852258439365795324011028768228822990421440162381295671059952620011280466650635047970477260828989764134438623882534735674831187656333055892669282865059573699475248800287693336249721380655788232428043213116642994498505198543086743153864663410383269769921349508330782695723312599577396887252505476424302999199527924020158658814666539250615109173243557322542467035449605910942428913430383373653401944822338219452486487350568647568597002106155192925456307370476690766298670005476041349288098698528793932073046896621066650092088360865408023585415844867083090215892915934747439523911344258432125363896820873312282280294312755721343486937460263615061223623705165476034891811743009311292931296312478054277250259655327562872666893554964078952047655059030519509672483616793882449878501722467233488054946649033941740388252224096811974908040502065839511831067772914880793514661992162440099976791107810836813160052124488290480713614132899652664219915401747214160206457242515996741948532940447051740001326425889560783412100719439077215796883204886518019064163375398474632417966447304774854106776878364647977178525661991903220844105938901416853488253295640180395472044355165235086722571579266615439592349808644413417157725926498366851872634031584176652458440482916709969429380531491469758872206767232482732815597307528601126823215755830681622103207319044448287931932652715618777801118826109301418343938455772900244357717871155726918480553648402822085995577697580464905823290639428709547205329592909348300971245500517085209812991451685253101108679314130591571576619488996844675100937806816746321418200905857934459738685055103426607541974353300465093853212270358183309526526723420995295511507286053138238884387248011904222779288926678077169489013703567352359642153052959330155881339776839064065182943542216459781646552655452144336928618705488485249684674518828304448491228633355526143870019940683865201750704722176735911656479580923164447238955730006630674121215071070649304403513844742934116389254495402328186229809477424913512091555275243514869029629851674409419567100261849772154318050811789611979194868531021003074609858051426659522172786160253186181605535545397854265968320145052229641192982382870005971739930853194730510277099128115901160423887977269492790071608982891348372121316996562217870699377673399605607361218353778572067915219494175617537056629198724011050212438458008023527457815243260816805106122747321356524708222612873950197315953750844381509446131732186141921123298081814818029580228190305326354949066059846704324891117261312942720042954462851782988013119310884112389723263455146685969404263723695202351492061475877809823213103441545545702578721455568875627669020789905459128191372910387065404077323562601658202290332059619262631584707685446457392985250347846025750069321269534897287065887994982649721331186581200949073140328755908797865050674717370708360826829817065686127842627533718754877172520236216951140666742575293511957240875305846045199805586034183639161901734834342227225078863219493710648649234462395023849814912408558411426787302377855713223946981465849779024906018417708423360793440607907888656777516625376789618346420949609605576728180711990279389134351261235547734560644222447429995123323996068435063240506574278468689430697617163320491764656135737595307543121293760814986301603056710099552248713342121631115240882653143481133920098596050838718684121715423492109552462194444507411043971999329343800005235335295616928988657438581411964969614187568033078296997312522990469277560461651454306006259546979658220885723676731610499634916534722349045684233586566863295180383186683413994071295492713791151834278636391255642699383446805711806723218819648028519421608819294202648666406577485857613102151449425025825981468442908842370717198477734823697455469426598068074013845425043243140983038513785038998036031897606010039949595004636649576293929394278335479724118100032299184551139732792544204276768291164861473242571204041191485058797374731628358164070420214131908716645324491629436050040926896191517295875794386308626566088802053472756466894646440056498533968098548052059472836903459594516447365163268923366707435688848866685746886757963421019777563621269123394813784717474769766270873631790965072790712592286815490671531570186716914254587817501912023457716477195641048476911256716525398027706014065305989484117953680724545442201296649008990413495018305136384475903055740927213074474487730326434631402952361702803014810457299368581604285789852206678914568980609865466661265826694740897656364348141410527327461046263545564007889157685333502617183104324804006060866127007149193200496428959301250462669629523015949426926063202338858196737667483877871429466937553799575493594165469550121441288885606289209071325383156259134894138519096687303107154154869846066208110653071149258158609630516830222711088829667090414616879661659125431901826230851136910049819104102485879979335207835370590581356147446463231360641497927209838082283277853823811272802493236871150669997908915808393331891845820260106136412119701291392758310996879114216130936040419788067726522064627735949402444631825847289475119901375619925420479703578847045747173655607512572678608341211605609488341864870308188177652234372243154913250388462532683939736499399039886557735069869169047740172064130256686685249848585867249280143635861648691052860629143386721280164802726762516022898206046001335978830231982306705972560486774881476077104809443159101847864668347988382722782750418776471217536039106792196634789813859843765435038928381754638940850062770148760886759951254940102476690476046072687618251722853613533776891469356668964568590908805192553867230657798276660221207678685589099742800295797909563071557267908839850354450638952010767763890741220614513499934787743654003007238369634066966101285622515963863668957979145946943671236343911387250657038827298331544932259239349644328314753106205651632387691772273412028268391608617862791152037584571126353111476118283341019084571568233035687518699597478539686065112063215569122870640863945081913239707388711389130489666673696594603284008200380615185033914298088067892740854747787204811079143984763458382230849214283936380610202502771064677496019376973063037434913375791869112550610513439850605505972341826991698476900444501051118185140948121146736604513117743785101006441002219737595450008554945018382154785398424557332125799737464380494265729701256183497347122123313707155700071107500637498025883042149779468272188334200363978822725269808195862211257685566966636473404796000144636614449454571020879680184905003034455039120613589004509333186333926661624558816790523115548011184095343419140995661130930110272279028124055816455290679033505803786259172199850361464753091769008207152917437325570438568856712932169795501732722042572684857682270915397803686281122999522105431205040010066785453991787130457291191394350261224911392156249798821737986558223924017767674533488584016704585320690998064538673264014563308182238822107812810999286224137212960136850295168782479481778413902414518632273477867006560430922033261350903693725848001209083666561186236509165743709790492078723633824980777760309251089229145865834911665481823631081085091324908857150298411429402905765674300995671178451933183663233401496018255075950132524590955082746352881940915505181133818835489286758322639084044232276377798983116194066526687445703273330077933274382376103801535803680549928669214139976833543485381159921954072764703478393199421145869794988904051889324469101931274557496052737792099514248815610278766122485770573710837207247880866139438182954119975519773054447546081148338823880276074821471967873473237336357109149314346904207618795307625545646925646409096093206765396952028811485252550376344317388599994914782800528715486023142717550533493264530317266907859016904721223267107471300893642942989485983563572367070171824492667351311338622865977203741070706488918967272346972152834518636527218699995155422138114483757960875821499050307699775031351501512268917829536191412051681730769938390722447082739336310139978247940505300620673273755252844815303785705557771536043879158299687656848185298104952196824420414942855069622019236510668237796528568150822399766040084755661385790482000884983011175861533339344369925021015922091063762437484961625412962116171914405774967030116261945259141516145911783824098422096923320348714884246456508744252352376071312292292654339344931711860254844800196781263597155758882085389441164244160892304682484405934006091858530975410326758480002591091241463038806995001043973405787676647240092572599201013632537883075990730248387812538977764341363171536912538116156062840906217350271948697102863783395941864149118841365824755964339282621279002451749039226932916506640427564288465061802203484706758900886471719790684330138866562016128764654458655664695949655196874543004172311696691941383843822994623083230816700146828571478417637227242835271214927497020003753514581272979328591465277985715635834535926161996290193432269398485073595173493151835107740854429645425911692485553793673250969718887354701597866108178078674759585370077014085140745269071073320466695924768553029544417018401326453432320607492317026167883703173276955388119925280817260817413430998713460139306527468474625447522227273430713633540037942627657653848234677439968823069458253501776896961933104899928731856572801504026966841722556308772097283294122060623350264493350039684065973164697961407733967356820105476312024054926353922200427338029784182330586702139897293297255633228831301855260432057541403467863556249299726345218247195353407968936217745331392261994578547341195694013700083331575645487767619975480157590840190309729191536124309469256362091377854063806450885195066137406224967801342060297359856542231305761054747045720214055440465830421191594890141039425461718966391911584949742862343781472817090746167907037564544473586483957114875220515458923412277708605627340332932005312796800126795519463813537688220066820450555916390931348251955540124835907455314851656877901337072582544609670331632805205302369474709760890826150191449282741505086361690127997998590109549297165594021082014162775851979712906834169612158254527867125272479781579430367481450875795293593240594696151418831700895880161608911220382128659882423616999026357052826530067180549343724089047113701986772787081143962897528392347182845956734446076123247208402439102705244720766733520943109309467427691222938702642828233956110124242666017640169310019904710125526545172188954566864088257251366398478127457730187918427171987273134480007308014270405272165733822495055610263261430993375800431235070723270817917719839576473214384766393500103146601541135800588735509479781572214160762172803461308921514859528717853741943077070263495479887040705409420285568158397354808019355044866259257943918377813043065063834324595779407788459170057599168035747407044849458399181979750807258026066687697395068478969316403549369619718961587223207416960624696373814993187800881384055375411875587543312647277747454325856635478917417205062156198882248078163097321118237247122522393565892413388110689322760988949373583608737984691561555767886453635561932764488138766157787104531526434443552065456568425650284026829788550773173448213324807180414175428213419614321266395454359340889573406814712277247020619120182436036205786886389832808271345363593852856194802099556477438459592816212160255099863546029219377547123401009553348702151222130425926796355484480787696520848739467491750892235008337015310432111768067152214689700046491094808873775541692653841176367045375828322684376489232663246420287656888505741956551168960776449924134804966767414379354300931411989607962257520157538276215694629975735460086661804231520806244468619268057415709489137791119185036809485013534020834241976283894180061023276508852468087178125830185993154384545365186291648813324474473314478258345425435442849104472616741783480223579549884720304543819799284808403435969479101359248149574939550766585586204448251922916839916258214917712233407466709327930997517146676937850270885444741548050446096160145969502488436919799995698833850982427819763185816616571241591671885874748020494486318195282619017414264519664542850925161158205433643691640183460715451272811310424897237982954955110211939462903511053933140065584854264519519366581054953531018747529323303303147281040277169693204831505767342047366659261118073800440443617382879398238539690775486777690704034404641415156692779320922427021664682253115437096881171146879907107414859941782599858143953516084208242101004626040603191239913955084979655462109231046345248165659490444196785217956236978025905666322763452942004618412130354660532198561609157355281854492161452656695807983856649092518498906644384948842664727844957088671768081809503273272695407580980483949046199156588497903868534042953797137111046562800583338834148278501299383515451891983741473720043442941778206888071422007582417397231484107279763666365386351185226216894489133985159391607277137259194816311554997493598003178342169220678295328338742659803069425447349862082365816527605807964230689980907957011918272890183741970632137497988182028292848863720435626926345609459828112313854699947335572870395698144207289321407752471149149475457651870325526610350969572409005314454445317460738998739523113627709350895827191303993344914512595650878195572029443227530899020925863684140870482096092413138016802943829313750089412701530050141869002205861270283692605357286051359136464268504024067534902045506379709739645464272004339134544918805978610650695457588996434410061790166344971839044779325741268797593822850939316397857495077770042654395588234752750063596694165614547659675009247144440248190002601240380373986036630453380685697600886253408813120661682178610939352600427849224489460948594993011103961898209236884100783102672571553670200165050227496439927219012563679042665820384347381976624858850246752652145158370664058698819896937165988071616619879232354564160103774212875687512445929652056603755309585553709068301018811588000262179887905522849434189500555667780240390977210558954125253395392578261139503708195308924603486678315202049560467550346109116771860822728909508347142505954979654386370451026454109347560126204703522509816817480489700429714378651972826102742373517116658509848044014761809201067766103170348042909286594419490761687714836475489426381485803894311519463168605736551425028598858457570201738089367209552187507852550932788027336343804726175490704652489926662075956278151811336854583496445071984666901672635332761362301491464775930853692163728859525140013883611441982971769419604791625065041456754226296894508467592374978061545098375946149190734800228298462883047865842025674624074819599927851890598596296200821401947458858893412959266159329199910112799517844204373531897949840887908194780148516884109634056204017524926501722172736995694440809217650499359013540615449761991652772464752963046090367613775407649196122190652194490090917421555785656476299505828434707879396233795216888349963797636780596490611406573222545637737558852040851221614104369353621574394772452698781089472561400299342118726113007357653832559276744990786938161815595091295783360802883660262143016342534089513359166169464801283478698648104640844854682738490405899952130498807985698053344463445964892126627832782274352214648416067865746844661692752859937297027809254493543599700256469872759797215918801914920076760856838967504634238581616248418447554675243800327009232596338531592921672915969285628817969820220691446529127182112375457540936701773748894756391051483016261840244962581182876436961198323253003028192052814418384976227555911580440063720483530367114018401387619415759300335767262930699424195914881457542503642453189905029139050667979979000255340466895105539968985325989040241355222033369354067906376458491684345869882464879153275413493485072984647979025110888358498575049522983966764713979291723389285310945246954829919867507565070871905992534973791840075748739551953770315632240797627892831048378682573846374120754125493440253342555504829063772657044035895644076210786471791837102651164633559328670844711054083933055289048425410121501420561680699146057028441965045029983129292987223577422784488506987474403542091179023858849824944132730275483426168974303751273199695876884934936988892180300018690590264857676530343287430911279928630966830670348453557874921046382501382118146793236867960579890815826045046444874020998965041700737419904744433526449514994141749208334396185738448942425440602932264115735650230628606416550845632868217438740463310266399048270262371846381613176358921810724348883758816285519467689549898281372930082493584670954425020917730727885619819873269108314072993656966530285705599744056954650401242697606072298687272224665977863455558636728804670137277954463569781074255522611360938293403369492510472640666067112482843587552896563175567922355577369828931360779805449971668396258633850337194417257103142490842785266932020383294338974372020933409338664049987604732371184586524396394657259458335819122421914337461425962433170044039359945013257227235205717625972592042762808486249467964151799070633526665606463695563634708038182952464028404150168232735697002720521459447523669142918353927222716262333503323693879737706195580905717678458921426172222093940576777999955811148130960482186203848091242001408839073381382164833649077126738008142974370623870490572366441825389761722123193981503345712392937113572388505800030070895524018835764966267024110439920707926622688602300021433658340592636874694490988060297277851057001257835040964956260279807825755885481425487368611510462967105117276039391673417295396346414727663129392457593836287433048569649251939208850396963808229366770622705670508474633893613320977473592929585760186457447344807727956552876504069513492492540056214970978703804934496277737193152358117109706052703169963431552037755948300426914730799558707879039212298030392000721134366377278164421490633202201081025463577102164773303469508130342634170482705595054197249021917024120721833618465957665799702413655852742163969200198040486006391144052602793597903103476697152632174726490213042509722348084865115187458949858331673314745747918189983306087857506805121232176252080499280456164298462181104448949444148681775141503238918478587114040370796518136262644440214218534344360512901101566056763356696367487774324504909183939491073536291573089192961654235069122410571172948905242994426423163374596818851026013288911462984214521871268276205294281498023631487497915364361747597280155929239338490480969321998486243292544816441193681336812322546053969054408685440902567543196812448867838962054933336062061895155767501843919609001688655573710511972472462422833795986703462745447872971088767695974590197574289335310455675870210392669122521771191532894705511049678123017843867028019781488489922680128920779886333680322998120505872962528413367267652703743635932147047480752483035132285836813612525118170776268604300265602244057968980136138077356357834339665816634614550754976346973297832706348038561947556622686973682265795735741848859905524290332567591354243115769003756022318782816835164185878106120797570069067056048806990697403921173151424829315314348258284987264786757239835501264764853646912434534283435534602544973906838932753555897979679671800437906653244585767381649404990093756604432275052693198295567419280869588703941667574573376071814817571299728753927489326183603688351193373661301844134580403567760646237579941526762217727239878752256680460618053617850578676604207972860703130355460028049755511668631450859242637439157086503333765075685931975792562075704041455904495417939512325889230964933442812279566712271386423279432074683384760506687387356008029257400598475637233850292410485276290361175311059998977979267833035575375710118635633131495089951898334524068116510266077313002500640331868810625491573126433833779514774642827099303123488628399062250085751735090335698288642948459135594303070821144387777578137766920156988378152327306387187182779306632953433818956948515419194707841952278461073206648268421584760119122554427132567326172264490629201596997315245942265227154010480067228101742666629530321964284696436285474096137408636090556155548570407223153290307516516892842871581348127497079478846096176622019064881955156535304205335770734243781591924160989645256852311755210517788343700510683217608578125620848601269385682957708575515070718159025123174179908098413773383108882529901484136977553894109718109343912129983771661327427693859075566883562740622960199041908408833555724232362990811751741470350110982062549412614807148573942156295452427406110644268999621660672399244501160410550149384931785558680613101340549549821024779905623981838618479300781674988733584858514285066415826804603091016584664923795608678485439431036151469460219835144750399166783441413960569691527228306571316461904556732033534348541753457220128164962416098999036747701901492043558141834566569157951176423722227658691856610521265208298211453234668371470095542136826402451133065519723670024039633034657588678795918831665811406443749296392701075472294946427183814537279472812790179244495449657400002818535489995717522975745850346317244631614099074986532398031639879704442493725829750098250146482748385116050050014132900941987521452432349046570461324975180802463834857014278593128409848183959986447832240571065922218608254764231376962703832279397380259391283475034348001677056740704384644919014095996266540871737441603229999955499288579249548484366947476772681024209712396285247411706146490256442742988642793514045022031458173013833357841781663448453515754698672874785413383359221955898453816447133326129612991558517676260682356782905212021073322318158805115709893622728095520781859267562919911783840691718881249756356417729748119114114862075590542748428749564513103662296769420818402467283988134216370607058911523013978363993582018312979407137136313676862082361687139498156913968130621114883209865144287271013781828115094710286634618129675736121450855964264524734841067367169031117133958633384665699497490542818639692071419803435697413635240291937908455132309405199619366378625528302871912510755888052342873847067559943440226566705528678518849155758893293939557665268490186251718297073518419058570921955802548850801117747284216511367281249846490653103750172295998815972916438289454194302619274324408090863598409651379491240252570839537536553717700118304348645267587089688043786571077652924514789326344463999489996052726375893188092565678776116120913904970009101850897846744840284668069187965782168401763464809532423258318857475492052120978742349639014801800355111187583091698585287067062963863876071913642586145277790053652938474153512427584527196411152281380048816321423229932528480897133430162539890940718990258639706064228355802224022610096060039425640686836423395232578974782274728813715363479485399483899526164295874296093778602690461504605391512589688240235004536776602413118134583800547777563475163805013662456666878757632767825513161460328181064761296381036311784629453197176839553154460129568577494926273547622766198088526610546197625444923025651059437523093682278626875279222761985767005379014742345804763253715208016141326335492287782620952391604135401545887335627354219923122537025707922009648089401745397396504597114110771715829359746074092727750140532933473736646888621686893670391234402163130926753217693770082474466608822454271556025365547207836703619984152496337549835370625806541676654914178376326493274511086051383519154505247196080511452116131114350247163603644092828010950102181897188315121091941608086934453082176300976930677293518183519615596358946425170841417141355992651861121419962204463354829668612413093311688955732262931329924695879103637429465851597559815027078333555595233484869431273520488654553478813246962487592924327671375083444548251039752976059733888127352910787123471171328241114893541980207585813311101815004081726526914462262722524047566304118182118066221940452384795841803853413417502073154447882517692022229552753132519345009392595586112589282547436908354287068304417425921902399958645458904477910616466464489000325657231697147107458073418039892220560460370444084479303991866739302342706688828070537774000867964800455706031172864834031513903041925200181502253014756872770667466442380671051704872857319676927918012282216679865605710438600362990041776770053728173146276474844881807116033331947786932345801005020917654353563872067105608198608379204197620899853760672685844579876500240229929553216236704178682147282106660749190835809457383558729279567567668453058140458092952430944980136949039502907286273023431168342795913145042664542488934278020030663412731237200047573432167224748126406070389696461699678046685288424268784248169564680253695936756363390506798377771871932795841398157739703982115405754901520334967840056845144635675415547684018738048921433701816287474683485411271144564687588072621794123209715138085304927676187483141962690108724355755298853918546279476963884264200979905346996380393100904722404651249252399344048913511645498875121844839898692263393365661915771061500132145626213167410436105608575981110158762299850965011386057292071010130531895734993321999171345921394820449885405724461271299699110479012523692338574903778364829853762603748913936536516845392932084587264386826659003048500224684914442627934749993338600282899605875159499507973806728623629108505682679204734439601888276022205346797225204366139687685722522267223252359920006253076914586095293225070647047940217943435986678673854407153926444221536018793749209168968810697362416643251218608682904950371915685395163330214545446841063919523558243108346134182063697507428103233649879548897304372745917561501659991212616530953309401400911571117873446592949772783430446637856863246413594442236757915954364977939912674242806843046177592408963985663699718266858364959821732332746881464550305583269162458826197227993074298792014062262536628667889603100680559827053065725082765615608455885386055636378222998303649444402710402363435110057229837018831282377657719986665952838123918669624993307594568061045559875038054548685251714249910678816408341110791263904861055538975767060667484999840999334741597698041789265361719398661946694955264914081388781803308687088786491329997318112635111748178152451982937637108201766461477757244726804606196369272002814636675094179433050222626168789037261801424361098845765179259437485406292539532767395098720130138362856948418955156707510211111924367500160068610279206512129174045842729417985893869058237480141020919390264093677672010233951189980365070479590045620677199674419871295405977905537466060752452557733977691745478397190344285032605239746168936975892424115047153339797472389937288618289762229477871131265719842999278171160164320741409627415392511409548734695979878985586669830437341731349386651509470357386018262495178306750956152198645436509866358239596202494847380275309760523150193174338635097654878707793079970772230589895115071380160852328584310895839054076070587512336765236503853668509658423155379638695783360555648726615691628916966298631338202544458111497596960866476317925414600869299457427600534049622386629679034113518060272496295368965003696321618188017724429634471074448345160130316177827408046975344432812054491119725483161526150430468163551112385453543650651719809140674841344901531429725288995567413408335719483300216569441102701673308418492310891084001217998166455546827123911836447145940427513298684182022696130952423972681967876452883656543618045140599371589358938844826224245843331470774006374446015072583836016244115442994401402824034854247882618030011443203423347742152677618875449002467311209521637443917729177748233234655964269864018374237346311922083008474878734342154154994170703148944641081459215552192676665948928130861092793930332714568494226981228516518333026104425809062358651709468684527997496828713979968953158461558715127278389769992216259427880600863348327585133884388245660724480026844998588487505101738914041253580844691096915301956888162596406639951774701614786926046968132110609887807285906485981047040548484641028455171758692551233548741060702665852348923599726842691987572849133806441181009917866501742007198955325360124794343341249345669601344782883180912041096043771559078516278978600663447374777776853208645394389122384194941090260984329391729734951199038045145436445369709774921213382227320309810961152142490378305059345254400081487086706147575843468032536849284342698531769366638455942851105893363680893118382658637831843886465081417730440078372376322470462380951647947886589828826871369724494100631609799833124212598987547463446111412430800009780077074871717413198810504784350476604261033991511306086275508275606370088083610924107586647104017518994512553746513625937483570960872427518162327334325563153722986429639866048071234963167696269204772086567829986523928755322390416560750654330776304057765721702471239261929169221127965781697734512303286757203955594464795703603061720171740919672162263501436079852723735737274975805883474882288226111991335232466796797678502900993793083185560349446119150608382421967962312298474285721471448145893945811208996025018163782943278073021931879141421053269074570716657786097485333333615513921226847915281849767026006397426749356325120579753869744655704983726481899200357399232734209293308956038301016865482307459376534059497807927206646825475720089378016434084805571402843155597445862913339320070431513158011454660126084896576564273697358424829559535530454571853035630655090070805918310117737604604580085881274737068329724736314340951875060599367060571279303082351961618256735387132175220939246163532659688837389148366433966115506590405992664213797566936105405158056018356374953072973128145766699864273020026541610408661257099593594580119974430070795397081529911931751388496472131131320513744369587819962135392380615760010768735798416164220267204665217217108603158444037720279740686539509043459454028897961702571655197540730381959146052639925676055777831135203528185106048286036480771185995698106010746892670080020921151753449314320307147293114570623799365577257377873532078653530054162777109549279313120137180354047341527114904183867251545297837818317116219416442070165955368221776075179072783568907309740556868450550407681364767509436443822054413423054121344432844736187908330225831176056031436434511061590969419856714385070766018259989827972030245354851485989655153109919826880916351103721024457378647156665508317089180881144984136340791550913580179811672308855004057136996408175566724753669116037345266310308036511316078885858695387623091619569228402655996556755722692468983132213932430861000219437305028757531532152730665709169325989103105793908783068704722496735740822479812618544670858136435088823175257869734649135721708837668385697629894931830619176323216305964288823143099555305769467600375993903972001267371185481494571679333407904378414325203398249567745194290118905952414576576499045488879062016185877575751342391014092269514794297065560059527941251792527483695063120554013908324613869528528297209737026948517152419931497581471078061112842732726929470969402902066665421695814897306744708942873439082022601168489045609686524434610044308989599212770624311120619640590610575481990865719687496774454143536127927241690544081219838543524831888897109783036898164233392665721309952028950020941714423162618084663697017058014640705314946258773565977169681206158726159417382922645997150630465411654002118114700006839740062670033561097130124972187420000780438457125012537242518688430408975929066391237687833557114840859923282725704729460591866306435601343735041324325140398026327078220413670480937230321706572903946646250487059275912171434101501091935080482859271077111051426217660171754942853962271505391012299807924004702269171263222916900143579334265102092284357974285812872224775519286115612188016430449290836232093995693782076847398620237346365336904689726258035247430731272422976672381441349516187666174779363395992259296616470861347722654440934256509098054364975202932865841356259567953128717572715005205591813022844642510581271034801395887389617480281719155212288746314395092336639051893214406318663522405327536356875745093897631605938560939744735511822739918591649277117203116610668113626914497063997097787778648705750140930977033358034777086738027257030158216522056253992801622000573231177346583297465832139112186435360066926251117732563585616859219112122724148022352696639824170592336385255198222033269453723669134989821773808038548087056865643937080898901168683532525116704479480731199298395410032295987982562730476426762641767615142042186962916331515019761174090276528123567605135102804928486893142430994931148531030630929836894010296796921205943375416918573748869553711634478880044130874465441634299385038969181073111896882825670553800840448291848787091510715854115255110873904723483004768994526861748847145120664019388213064219414629504373002174457815118225362324330533773052269689724758176140408353171285037257979632767436829364936635407753325225638104853255317339236552889767431593072626540161236842588610475194085551694190724576782953066048235251523416130551686443231309428737943322910593640321373549592669082869271366411699684858235002578942076594516310476467719674390891393134856670744112772512543516787780399730576575215163350769140967845790038619335314552582982538164752391171317862419487983596847064241178674840647474527046679428005407603287637929463131877708187086384703697464203832094330862663835234153541782180340318126408868627602674462759413814260944770642149724675153789827352874385098277481159606410522220467463312589406128982610298310281011850270112531075556510501416134761117917857701313797084939809757791892475944494246282357924460700915105047985130188755338884950782039443145745684084175310320477396269945167039023704199441610247485966326580667207542750436984007791159577665649273571901765225579799424731296594443563105804416964431541659523919577476819421717886826823617870251329361403419398576599054336438342452151870943001761927663028816543064979376789283098170005903677018220812243875682494736057214915803345916931196203302542263601792213247893153333743368367702209806611882888324211456985720246406746982018872694778058491282635103829751083883621713545361884009423057159443713894233935689414481116050457641481748179755305456110526263881376249139116929612194403131680711019794767863021364797721065200574610303871432791303713222359268957157597027732412040657937066324986759479502401154545032552670940406165827697669211494840740344079975523919950101222464159350691984480191534567920718251556672219464784986487292879353275792500852831202521382374944461032663162825784845420442621291852004866387285449736357527421481339707051359686046184959196488852931030705270748255106860941659023984894427653638754622990362218176272639360162332613207138973679864201079468246937122146798522386328376083769434033829980778272711035945213074792749279691110931216748791319043143651944738619481542484661581176458460026963968530261277725628293546335610781752145626166010663798315837321477885165516467357781801504739401961300761005607800918415766770288324950590700352377089336567448546115582076790538771210222079105241276443292599666196346536124889240544575683598645678258201610337580967464796754552511254579759799131649728140148814285107737736015287543815505976841597605138441240285049661533325013989532226614334122595361116814717173860227095315213420483230440672938223040102648742493205338708269346120074643285661902113027581273478509357807796279193984862244064403159203792681583911228319516338157628694561876993320199531806291349415724223554638488428818651371623147015456828996652173410548079136811694539473528812149483528749449622422181971417227451897155843360459743054928887825591436144108136310354874236462121376319278341798297588328440661541310692283077297623330968246170348513766557482450754665526889343313301485263497403314993658333944676028855665107723621812897296256474921179812668637261716762769752027598289115357104797765963932436618761387653751857998693826531995620105948108798446633824774870052871229776931378040671628496572551115706912715425746184067556398388568292691714262347294987244047854589730074504858604807283514045476927131960127043293057789416744412307200038194038403956279934521077655951560262066487500168223780667358538837053042562490505816216734117430942956670171997331414092951521495967207076200101102278887526610008110129362513390975248807712285783665832916619377838011785314861069268589792608024596157576157898060038283080031275004161964111140176050843826914734706404003778034780694084792761615379588869245736371721687499996386379360310312786081356817616853131221059660104357980384565885875787880023317229605466426246438384132200841164207814590151597644189754301160544525850606144033607553468772837846881083330715931347612834551532598447330441614072466627109913773038998274372281386899148808970855529127350287335420155046268218541789577682896007924410356961460204388854909443022240594736352221988737282822336228856291450638143586933431716141678743303108685575033216661976146328504141208428035174888859970450059739671477930745509387579046270044090594845632276062717644261586945845291559579050522241075602004585084811868676282470428394430598085808530610003877348676702552543509319317463441429425334576303246689674421107715018599782128337845180284672786195636540183411840722888399491378708430085821391983684085605288625618432468373242056356173194754781684858948684098066286374500329084841686283749502124878713907828048138383002026363089619044349161214563489049952743852905330405265442794542113987969213139119063159145133973233504316147713403047359799305112914624002037980476254128407987787607498408829937314716040852997260901123889921810548120928453322789265086318403661845326245005926725091800798753792082798588583986515916093764797547408290013425392198186790236786916732733267701289595956936475976294652521429198896513678623527377120848303308177568648143861720367603454328540510203631851359662650997692898760676266737814060315851236531157575380679810615338106501511225660688540251610454581991189546882604620393028829937058777500618471505853085877048662292336724781144113122761073343221379093207161652930266737762940278459747772749625865471876809137269972975436369672583734887966704611727057680425449544834184261210811128842323944922294675964906527607661446263390829243661472147729159343598934468819249179450834893853926888471157142656835032947889766619866967293820581630993278168767004839390784705973717256270019654020838702829408194465918540128299104970449107382525307097441667199147575551295151228303988930926020639820383100778923091745620380217690646343361760183751358561229449105029844159395353695788939414192095883700254648084182824094393391378440741269488758794538084310942468048304062822438196842586206132876189263430146130260967002251585006096452488314150555040929703686662234568043090158944802777752225262950294748897468282287497804917138053508468696394097226618604788730346347477386014729805255815823172350851197413787690282001765569251483044994751156825415468254648779679494821303428592668535970016263086420381316082075135183632376916705238573632380432266577615280142030289385392228841495415597273364817375609433937186906071170242014765914637887006039629369434668926626374302936794697036268236844518008948142015855856239867208602914820786931042979486924789855541019654218373433437403226519806119670981590355579586867883746371215477342968858886817560131928163176125908218270523260530994364915015075790244589676161307359984868034475498285608770916916471907571394216109244544451593706586981144614629612239338122236399469270249594825465858340955394845453429996077235573518141081136349589421162125038867921525795178838553255549211822364696236112385237105406425734424984843681780531828080483247572950297616156225879814141262195002361627405839021780118707216871910759521999316902752842560209953103771597185166102852110329098910527879780462760861510171014605246217622968679747811305582306360345680458115978857405720215977015812155291414444715339034564293532872015537137933963507118238194235442909617572832057674043054901883367173875158679383722197778842772729058360187642547561518673062733132737256309801032551172599959302120603146494227311139158840219639624683440787163100025414059113792797369739664666983504856444846611048071702454651769699034251419544894755690135902182654594676125970889330702062679560536163208498351976846396176723297683906638273189057815319434975946471475329593895676973397446286737099149956183190394672284055472604252994137872020730144814531346692748745980147313981528874661712251135381918400299144261962933575189788754047418097879344475408411490039295492802113571364417916532198159594037135023930625311178460298809119787171455616978836246397677311276111013361632126190783184443632509350187833015245604655353471600968498545687977821498885729392984760472222658934577827152771625240120770088326774462857097524866273638217591192617733240646647646680042075452531916692104523877197931166736460151313652458689375685559236154581107804279193012524942471224217116794431466345334801702599549807776507079164602696639955909824364205150276261915769988901238657910166020534308272168102262136034428684518093173017200172779525270518760489771050632458196991737863031853226328029083461282811711822318966987882879289846012180593522331807478750492225793137930657668741534335105873825204968418590359847560975241523152427564030132803875867688325548859196842503088902469230746269918833818809239146082487355931794751756893428830389324082058768723681579910694428039152086867396226539046028828711329618961830269771131604127678154500661980503824056564094860164161959720877604674154931181454113312404859304502456893198752453798928119421970446627011086926646474824227352467217217948222101829113276609239495952086126480165645066786727103541300734454786979074411634543439485467089497315595314632057398235055413207814507022921953554579461205001195986337081828707984640478344666625990409039452809277037550685949730358605901890249741247287493149634370144199899512290166883653332281507925206316927952331474375142905758271421041328710836833634671530465292858055802572322296216865532397932899860465724702041802300655091302011438903669467516961459906414467120904483374939782365031524979473997881418436870493191147940797392545184724021317419325991792489725650387831504249221695710210866846379657043941063829201166685072403882198240495595150619958256165855013843545895987310864022768220793311210923395014709080145155028382181130632153389414346768518159855108417622930066296067772169465491429964368106575556525341968108883618291310305461078941173261960805134339488358250970481384400914973669543915812508746179969086235018070351242330460325719217920686928233686356799165396113708399897487410910856105155598178361225649300292585948725553191061478457383017507442028416920288040489470763134027757892810236339011614415069391568649225623116286490533001994556313659792121020387740397013796007770498878811892278275350485292028616217953853485331193140642185435782385600919378014098341115014446920156212654957184893973914894874119705932847541476156861159398127464091350220038702182550247770208056662822786244384998616718583510019388239074844321130894675406565530322282660457719656073517472175309110658415815940141169677988118546360743193070612091451692866937354315842012643748184513082025972831026757360324272697060184661657399076152967224376788800524112382953538143858676418389160848348145171446963209514553562794117116530126896640764679349828651259281985892439573294906306856092069073383113175479318713978522219215991915317432159546100667313441628485015263984973976194198110644020898619854372530821417367017121599469510238093643813844127004749221031225071781640751907396001873028483981599877277687191754511763992202427859144828375632011802131738693423871206554692190466759777363928656380864062115189637909423040741284404597433115105529682065930158572400591883813895608385213541530276576187740703967549536259574116841799360779099730934022215476171794894965860395624743704384008135653809088133964487262159763661073051843325899277231777014751378929851173181305435977250648679369263923786875999379995101778335080543898881197394192228890957162282606170630374076500913720687900193708886999021424242026088546055448068454626990506239772832190104783904548397432390422339311297701370302718104292499731595951779427753229017427143753434626057645361322448685189278605685323631166378761534631128799407248532405329438532462288135419497644510406475786565813282953334031908404531661662347228355242915445119129337016988948721428874181770964701050549961856642334834725619117776120990774974625557585050730727420327377087807485420827281698470966979725671161147880577120636786778606881832141750676531727761780128700439235381257019943262155800309327863910803110650708838337231385490543937176559776099807210600346745250881933830087781964496427645574513169237363746435118437886656021064093921185779196628586501382080548147656276955173894794056666272508077785857048085841735985295131642417197978942069997380748242262227112200283675063459190882602794804310311732090872685053840604223599589932338134743502599221079090171648335769992294875856995513417609217489648034337532028742938680352528855905694040913386465092590246274437795328909702205669955927424343202155460116645950904521694478556396095134895961018932117771529188984345565865063942711438686494722491263971443345723310814557383436273101135814989738905435324610920243391022934806743367339465269163844648728278703539762413818559878676626595353523743547465013386586727808862573073677132390048217292811697616798523401047513381097739185359036259596782805144138596411061966417214093462198860266646681164519015925811012061118394791543374695259587100826973040186580869336067931714059919233702103330421298350762497270173508379991831207776347772675139373747251797855937033330319535731525623123588149212942785965696088037206496832754345385381511985719423152944400268867095699164131252793994561403882017931521791387191404098475726603163231235592376016369136065798923244980020705851389304074083267070007547055422076288143994174843285656993941516544686226884434238425987628497818253471211216517019297459284563796759198871987654451408785072130229423163284044117452151548882384104309430497963971157168542758701961854980149287339274641454757762992554498913866325204789281240889152841263136658958910304060514605604715711713406923205445711753227559061833613058937894986425343675641293708904147592145836587431816055243659796408435340736713606637904577303842122704163733395440477834991567221612843368891707906492869323930453481324277107538396209834653011275885027348070618476444208616158135969022020399739699843368079033371451013756573758481223376447396255069510870511245624457662838870350808974368525900530378131599601084594484234209541236423348502497292106468539786397913748622691590518050576491338124531152697779892470067581471719312008599931712940129143048787426696433341519872846896931248218566731213821274915038084647172862526922118202131785874054708344316381238044684601087838467545045522969011923061628643879437104656356344614250267045443810438269891047484688863596753616146544335066252970212945160904471600920890348602388544054612405636111752715849793308435123261268511150787014381309889279424057424716954305711364377436126403860978363448918962145772121683183089182675487658110219106267391793486532899773463549117032759740629826160297387715194219598999833883734292394637091659511347089641265790132306233816473470845912780928279928407456500691929757040928801057024760656379256611746557488147126237398413623797269259887532889637228611149065985128672858140687092280522982419981387565816038320447414478301308904233958304577276124704513637407702401594625401033983101361372195020004071441422278096922188729406340468903548481109893388884401032063404041826529252871064995413425155507082431668745396267589746843810356742616076561176304754179494247560140502901481690112208239542221049780900265197408836098481429651742044927990496368300501353698214064639049755407895025431107821260987608998832966697826941735880567113008428213805182529372302533136356566232194934603108796121231960452804869489870930541525104196864361163520110646772637012884149913459377434880391340435666663930427753891968276455366160534042866147988660375031465014937676909713240929937144107057677354486047512528305335354121103785600310746974960731033612949974362023688175730683944577213587672064960499098219584087100697269331634640274135090873789317815836128862380105208747948672342677507579988129397174907480391183732325314544094934615991402377471205960142728180687489396574238089316627415496363697510921797562569133709452919040298634670228692026996966374478630067012966166678428240143444262035402040959072347522444382241237581973413525518890734778546874877485076836105196182695712560726825389252651252377156769381308068847111924400595421002005256624898785534846369919392737916364181358247088534661364726358211704203504409532273628672016693963222198867392170650269693380021071408085209481659780304122738010488601650000623392191759516092675567216115569157661172213846579979327294953937473238499103489707930017763582147079365691005198139924778268334785950418525682430440650983399789003824429195683131173111000241207747003401535206227460263587167865852724343827725201629217504254366695869090099149045964732364556989707781095497501906368441466816738865841776063945570543104430728524261799187099347061265135897727650206937691911077067025780283968853277453065517254096403810658915416914755297989180786940989344460307007928043380470368134778121207177334072190415966091605510852222513429953489800157914261954500593098626769828912223855255244495330525652461136811879567912412349377845464184360807065983638948528945292937006779359201131163221876954765459486908135922237361921990011151103494684089994244831308265068702522515025662812276167508512691873356598557310111620120385810583303708490275570800529038656363503373907662953005409278776499958562207312326405239891853467264528977560555589785618436240344955522253406727974214221326253436478310219399725119545045622083592508021160193233885608401325970843556177286762184009253679584737525854599876605739994760427121875370304338721013865252834593156396744832675558221767554993543732527778050733672809764367836202214785996579886903697773783888855882241070664280045729635807166585580818409474904387872358855713214251682097377545292596991165326169128030838664489468686648615392937652544771565984960941132389779859140861378511003830134621564974413431599301559929227703509348658497861611661754779522145714434940901367997535943683063286938007551205491995409172994776243807510808559222321168965166710097688876348694225385909034911314411654830447132914266218937318400722893947672640322572352284408992954632491688118566281561459238054673503164910914896911438339211882121228090775321581769818349954990182696718204889557514596344393468332119693837098639619994757190517574364604452137752122092486335984921579129318879734276206696186909241491230201143369328816062344935352510883689602497735619530819122004019267148094542129023975140271635510021710487710055543129782664074454999598266521716966357712111884460147647537263147879502289191386011805358436957139410092866344392705434295664275209321776010047068756495187591871889620785840531227267999305948847476818654198787535297378030463236605210376988262214779403936137217343151879151044235904905369633177771019951800535691218982271826334527856920291452917042091430919129847010959006778896160300039732824850398802525833062017093446847466018070623566049611007677494433041841360256528235628812321153295862248546099138595181922253157280408081685166129901634434599976669639851040246900694220298699303937157129631521433838540179118130245866102713945832291208230500355272883639715649478952601113766450441864423150508910858486569792156116995920124238540202796311485129737632674256505608929281412747329307853374790401135133474058443051892510482509547286637628550680148427903545789428018630017318714953780706769075888819196775412927942694802011585313116814238371065588750272584831871293323180620018406980455496841848932601014883896236606430694856660361605566020786043290444124828048148749452931870245800292108212152596733992656297633967980889161824144906917571026425047469453592729464963430753388998017134023787654630493941791108342234921125593131482538041946547634202524456497664906577787377574613892459505664254291155480897736804076639300639419374632066791661771505583977809418303988277073314822086237786726519600009806557408517520160545877625491548267038597828032107485599991552781550583302632720851525321286603279462256665398662725793518956279126237824013161982233813075718095407765884687332087668698915554875631930918484855477771224151363138159706084672738837817643020464178342991377693165825577275012994707368603525292686006341405962426905072561962422007216274953915367824540103313627588706481944206741518759397972291660560594814384530243693870807675213287889257618834455714688918605165118025960049218363405865274999593847304459480109437421935499126959873541196055469249762263474082942323178840586245607579743553512934664843517643852766025472367202800339532641643761336454687996245562569023090802865827418916464253278821292945011447950537935050788931928186696392832693657488946872894453296634870913296270751466555279549357081504317533778937649800224619671256504407237955840854432865375551400354031644572026845930354715451317878526822521729434690646629868383568424687462670931510077991221085704601265818587298645221122107444421324052530719015720551065033433928861186162842521716647812213181609915493212314462226152978349368652414675241176643706251487294230351460545004953993493037320235086408837851572172974813028079133069090269266845075485662653044883297185783040753904398443907700692952265566787370370686274369677887199730916615009066530186130072660979191829891332096709730671303070343601924614361778759280308337970739667302571711488614607289871090059035206052851681069447149786543724947459208895130766491413782078931933667177581197819347234075061529295667765754383781297347220669701190901471125587819691028379248790170414380662900663598650365233235012219980404507449619489863629194381971510022788283969141380405470063079326751852824887250518765401470978547735364023263977592300407036733482585690049895603099058690729513179273239098664568976220031265462265667384884463131466042461598207522499950555669537308557231743024161580424484879211158909986760745329167435400910103151829616683442053326747659586562414553041745673673648400865746578299030923818753043863210979983264670105020977405456953308576513160800812228128017198331532234137046461980847054519841655244093115931738543767822661688490977697232798086902149514857728725626084848527483867645214580291368940519275690582693031046997775138893655031735038127199726877950063561021623340532594526450183085532152802385640565903789182590948128465074572447601302364151832849646227724572533672983460828673468209054630327656401577228952463277505900098674538051695849551803396071455367524289997381360577282587505665369019606149619427492834288251227379255380422152532933838780254281450914286695959671738320215503584428446745527789372335040102516887282282608439414576260760464459623009305092204946347007061618596742225670771904967928220284440415084353393244616704998620352827814715077567871885821383902543357216636460566114285099242079122350418147404055832924388600241403792526256682420120077135221178924515549659641564498816865442148785351142214896923005741230884674796810450765008796517152223035935198060594644880534324953890363851083539545106366211470515436192869030569889642060961089969869425939182502550385554874340202848171643367456525414911021584648422786244751057785186242253771780831349693297197744794908497509310967482083944228435378863850997422391069879806843576224377194609308889380467943785853920799898246972766769133241613599217068126131784248087390839465036455971139983068055451176585204982775643782935837421893382212685628334636180006952907439082710922916125877087966016827180633494581251589877793997881103993053453396635416227703011154981152358874674642213361510369147057895240065362654982837886545597807797965364899103739575309639920793718743885370714038923711993701168804721356109698065399911937566572346118699724280228784555804284643494730222737449076588630302097277926238944319228996231101349890936287467576224966926711039707414873272926627272137171732183463943548461148038512040371784001722053190939937832757422550975320743956497521276772356053925406347401827407238812756474663106606393861013068826841606581134461777384827239894064127897755873332489788325496054699762458719537462316953919455450749461793953726405353108696513572127065369775468145221473969382904068217737963009604335024074131046092882723861104973237737966163839036729450517272221225657678670954527760080437096495868177438887298987957763709402180563674301869349186568925571789012070255944897932586852425437357888286662518136017815336420110703857618610423540400587412093521188066920550622169193431175242313233632386401976792378870712803026461432507069880480055842000020485524086502151585741935247160896264462972954396342875526386227083473301021221371324025349005360498325173582093624331046801649451383447696517437016521064144022861908019373544143324367440274917868896189305770750301233108362705542240444219122638981305572445470506229728487324809808233673796750640028127437760912593136199145294213797962150469704694668880759717349039947777645905712702752666343500661264577933630616194220999167366386873202012067481920467033113439999311433680159261264102355825284026772080991709601635951227049776692379872011229926631813501258362688715860300606034156226523715311252311873022381902731325974753857170315534906790413547355724481122295358988965648858167265157134161978372612380444481188324694601430232999122205476141407932392636181759550532831201267572602881991097930196574186067700569389206513177947009886727669278956602350781331015480016820912266527145617852249435793646791188696064745508358062259490648016266056940667861438926567068098316930364310253983105894023833884105866172314761810564039445229689787953107781898523285639914110221271890322345298867708994340638367574221343163642547985400299317687272776730117203331191762515593893682762084377635539357325631374738658363231360462409978860788631331323263957185383865383438489883781674562092733581946022831009208381419766132570728336193549027463150648571046095802621701730407573244123616242341111999285464488064650471757764607939629113670435372305559669589168425210808047199786899304586397667951509095629291889838838949051031131689094332702282296428693208392562978786746435892185464115051226434945237802730865848618659430910480255046983531157627924826012372301415215476940059343175119835406438019841457617564364273622204456337392477415815829034455115638775598144367690219353693703742128051302462369804105910720025100540344890846962364311629427462970812765982452658127978727171945605299843940058456300275124495865263871792344383898219177530800656005645853541482933499646080845061096928413205990759078328210339861954500140400995563757474783806549723686719180353554918041045313578374807613704880154481102781043653763422926155154912721447282236408436459340673929990891538624644960249879213390012002596141990397750888539145938116270233685599906176758222858833744997604026954212550558586045731626971461012015593099175675745086277735439781547766249660861827355185192785355895891721781793695933561664989479485455619226368832377588251454874872259353687136263818457044329792266886824932775777759358960162831017647661088807846429139301648992538261977224940769075416264532493150180247208463610105388721869882157565341574316530096433306674927567937885357019733628396041318201260449271169629932757156941745836774991729965140747230937531270454003673720403917406128124655071239971128746958076461859621059551716855937086022189939779635388702992210403358382923260046599265656619759196008316890210164901680952373557284886567262416831878407767462032908030544168220960247024366086787576238685246907040154292431307947221739162671875644560213324148941595594906739472792649889917997336224668278452324449160737109271625606196887099374918158565075040141560085346029707190184601851584912521424335538112205518234696264135982796540588408570132864873845860759307753658104052178555496058812869549097737774664352916888500949921877297449028287427700659211845732069247085437971755702746097271312751079755193442506576459121539912903996675782786106535709237461958364485035029960020904118688037952721686057536364111247463623221718603733476916054122314459305443820845970231881655204253427515436664616666612622453261280748929178395882462315650042127256720623297268104825659146717421425834957059573950826222337609256129375365234495276287375405336465990987246698135826166881065926547659491937758834081631633200756608649887326393858202066141873718482347752943330780144225143949283499782154635861446477409087132543663028330091476862893393739271631526763454814888834808110690582044578432951766092675554490831128832720856919767927990200664727438219852340374232734220286242279414828813759835328721058447065732055163006684343973855271227875468796945035819700288330380784911685168263166933370903867673942212878664216736225495854687143835591290541174478622867167304399271638666432827270782691077247151433329463858909815168667335922477915432291631112049605957478647319129720897729326405152030731551493463910431386353083597061128798627483571889886527020914300682914050143933179121650135148490818958957025850314258703179008498374371909468811366581328874325919763682051462488542389529813455465821570225837456333050033042372445296941753476393599001143973380402690552379909901108210061021977848738139758160256185762469721530634877148301629741086937828941090008158070826177064024947503408896340836011094726345062114415316204013365838161115220782694319624371377667369881297543347047035263584983311471635058504504374452137582852495948764967043891910267255761513882378135666674983599342323452244041424513773790311464511474697431058270744572227464000586328950225127635883860701024168602632130888408584998562688253218286609572822534226715787448644558289894197217438608194878108720556405476620856501153989900065781641264513918324746498283638779504530146687197118090838611285582919271211696274429217614116873811368652812130228226011318234248283233619033222381520359946444423271339100693284290573132802437063866553207932695976599760358370861482909379735046557929909808194058170049952975673888176836170063099679863931244101153166393042129926473577263979998768985868331809170198657765390862242438664344478800371850634028828514949271762692952075747334726692257640301112139203113237894456572047219813667154700551557713686519772376047713240531001737517373406270747761847146436864016378560205544813902135535462644273451706628828197625220364036411368393449271195159021439165934104321057529165898615652811546497720085757112782964180297949908946300944570720144937993331624755610784616318481274905633099086045067495402463242873242282922019888666816002709513906095062152471307672995964286236163088835522613672640717837897885207799280515470299256628929646449117202723351203584315151058872802106074250362860174178024167313345799951220817771320002042472898469078948703842450531570727406008819902524758349855820358931028378637489769810270190510417851067917970597389441602771056225441972436933041001054672666868159504413679258649555973381826555052133968891934591418489663659895707028346243909684486375705669085299758444476392135894412396768514239887442112027567234838469870029114414458741328402967469852100840185127751028292119704443662749234918870489032665706999908303292764793606379594924253099882487370432346159543500887070713676900545206094264185917994346408023135305952710479660767141465203792265167540225059138391164261570514192141619648163691896694507685175627402447444126620592741808229887270365467963132154142400223663049143732113852473984133799851351020564428168906837385011647225006161940852536960137086828644623456140498324364117197268270833484283562401032195320268389893941252561106424136066209908209852087992753261387238096493223059397216765594934530317937256591061586536976449346442535927695366103052015363305565201953585407410296087424872714138561608551854833687012999436955552296566075691337872527737676080978903273858539422764462606173203688489801686617580222231822580557154667833522079930364262733676907989677843347714002637483014387811661917753400358984036268195046280364646486192776575047507179105686699571962229567035492810174583321343489681309210488992849408842129574422743285468488669553297151540980534091093517572586438551204668799251154123758516762197920527800105526298444098583281879146359438661753978006830346949829192850807638068741896748475658737431047064319170550492013591073836879299863121954843193021238479157512786043951997244397091705439314240385087178019898555464665248564032316612901471243963661696098271784131182968768219294859121407130267484426660501730838668642429692248544087430983921183582399919130534301256288004432771304863269837873415906629381952414125259486834315523984347260443331313799270759597002709497834529902243665421160305387748967734342300641736989780031689879339117418925515809094435342746880682662248478182811303367455446451729203497208230752655055610730088057913642692003329619714725972010760306315535978193341333492295134268764725255795655840893390848977790625512823139003778142646852478735963482622710218020337397851596054324661869374244443869524961865311071321582680167517064224190760718783275931823476107048639990360766173288186871478007774690365085872974424618505663975617378868232457601592812198154172939917565879873935016749884721317889926377827258575092630959512961637997449607012928435931614121431232444304444359358748543570524186289241982635599267894100401230215544103900549747430237369455002279063783924520007420298576361152919218119381925319969195283101983091865577565644894443607211335527051000592879159460600463424410603966963260093624523669621793368605573166187056314430195325325979320134244745744303746851928840672876007081676834960422519950374790319108357333090067971551048391910031191954822486301481596023733038445708110867279536342971650952059950586325184786991482484765472845640181582978605994751521747934285845976725319924999065996058335422609028030197805324345527822795153659124266799701202114964700551361545611893941104836998357978160291945028476241223243829073727768635741708531381467319549924108518100465383536154564573571098830757375863775812685304401501588628023334671553052405411950093319515439413630723485393677504559591146844836885911389432990854113282943144111127266400932106572938152256552036779312611120709760399352784531319530276659617143561002104291583867571198641424353856021492238890086754509871392382825232833984747995083573805791691794631994267619965631918604895225787209987136852884616272883102873931821955849940235734077803248306095513944711636989621780857711736247540210885502109896989369772823688616631193770083411790941801730467305864222238424619488346409270171204285587026048847231635449042149776565933954470131403911180328380193315622921429921057358835982523334942601036661752246950672894123438154210459831469574451166865178378610689330746492596304207151674450286708416662041504741672412193209459507416027768905613993111237848763651181819541357735987809672041993581499522628749277694414622767985954763014392463739822342224389935724200288126937209913174343851211180355384589710325348642950888055664922981723950514679237896316625291815353579920038460012458427479421130089928439537505282424372620907181801569118817255714536136316077290211219499954929155218678333568246663083110013629314990585286211326430396072345376948291072096600272472098433124394580603671209827775149034511823202031463048717194409783736368119391728404470453816991014273533605217717640588527547333986008046111747199237442109923114645621699483069195482855829366798027579316220131038051090257578470405556292418697228571045007677417391561049978557308307058785810739103802593612588953082481447313845872501756018509810793552505700633046918982959193927958662838397245191309404430384111826462971578646498530630123957735129422475969004418607887377016071991084117607144567733045452737305402234679886967378528862071138285129502575116909533946184687774072710955566232401478022677520497320099641296770881990688248640382687733326492320337988026349853575741384902881888098247486359225991278621908166189555090703053467154079634936466656357610934660138082000365889832435193905222632275046655487003189145305138312348378073795577834031040764117121765326943437894047972268568197933689622378062052734616201685495000226600175219696212537485221513667315587242375500506219859825873435147882350164654590304722251088445577550392005782854989891837792925721690558407770178902126075107909699547779053454934268905671887928398709369718471416600633224151099832355716395277338679565589828203962102089226303929275686099787860938382149745760381688625928121158266318532268471392981892962111062178273067824608619558536531827130143573423983210032304456135617068378186369513652708831021920030883470274294079282648724039422767667921706011796432664310713460340683789936335747988666444783029364400879590469507551254250769666974568343687433230482580092694859402741282191715832189978326470640603926473034421881896206991362609045225441748999864634864371299469319603282382026959737175572769691934871158206680832675341739327187706906877792563032139030026573228677373306994000898462918439258965916356278099998207124912736115107895834399892644018264286484860627351833329522987535980647980535860984423887316836756747441778604402904169317925968784698880530674928595087178893666526579495152455659221158515799943651607783972701561213925682983444742531971736014596103090783580789768145061407875651806339468151198396032008853349779948972925301086392942956449043536141000978508860314116978441087600943154115417604332665505921556237399386585537150463303018407559877680561599998846524999044658504319430502315401911413403463379038381264160843579638494056351703729916090967820198868877697625529756764070332667267031341481612437337238273438623537141868483237046237016597339467819573872641059032147210729016309155125852891445206063459567607178870364518836709383935748316145183241040767880711732674679099950281172794962802686750602889188048835065787219509043434304463983793804862239590276500290142367406901479991430728057921043404497124623951518367822753061490539004123532850627867706626915999688812232019661685740709162441414312701981636508908414493835630411453632910562873051380366445911334130288274441230674720072292572450684841938025259077743738609592371830709014396904665414492166594783683961047661286313016281137738372061973475491652238221917290903361935081543773187702044506944795451437466988026544697290752016176268306273155436534034072100195577506127582050990445212060211061603111338549533599706879531494114138687818628694185682215506410813510997378042076126545268960010703266371995450778091998508926780412663478107322475632511134379465759721088882700090831829631935070075092733218035687867011879055473589784349337086367450025527592544200285391093847193586306568912935585625861259896774568897854951758802458355201216890800071445988536693753002028315389483151757413250577783197481117660598417079759476959592224003693805827714677238985187860382932040808881304048428279769980041648765667389985506434887909517417357796084734906796641774693202869288602324057332372557335230916706284713893824089754029799100585990432434147243191781868755562078983842577499579485934415617412028215719729944601219448207280024262437688114088495528316112558558690318931746483708194755013229550699426084312730102289597662859653511445593484140893172227412747695617525922279322700258905704656480185096587687078577390764844121595240030542184560871414539780638652679049439770045774051046500119256930135941177073142279314255729624085858745692401142246626032104807189487734435860919289976904446865144683912714787362080569410491965583278828438975924227002731356359345716920094635005787705258789417195280397327307772532789592989333748948931516073084795869767796278757847244837584329231787106667644078550088186840670144539967715010451000790782269257642030682268465312129713407841462411328520134775774516203206130532596757065523691241949151438796073019880982417114387672925879902683577701295421878792837297929216882234257816608921050652289954679778921567342719236213035071550158319763791732512601024035135214336471766341288966251715363927487573070491111365119147272734061208606718565969397204504264429740179621129257843705369141652017262158282653864696042058524460178087947227245400633804351050195541091405156019915836930704686085534697151888084876350330902003784328224703121110373741527425795137666286458819137853025907894753902297634127449242002901396160946246551020973186105116767989146815249059096806297791845433442721906007458726914306874693817361945367405976570230546401452213161783376516635899233631734356209824464918919559043791223620692325345791458408477245327136052783515487097483097032673216316396698502255742413833751567460925818409380684202021400047540737253324766038165268726272139790239133548716352911762111496633465345056614575732734093104244664136816964305763521511816808779737838430510705940238863620605212675248202346424051899633139863039281568744111826969014557511339224126417792015075764874475634131982887179102478061331743596390344125153394116515162387959109574125801392102760364504368643130647414104824239937875996249516080251990619496933043273829456529785127587009062085058786381050369978827900003577649334055087763420541027515805717840274067709838482190510232408570463347808470516848380885257285250207643204621631190337335677940979195671740754208292809123400327190158242691981831910272398346155025519156145300402574559507804141212691625545499790844740876597626067836887924380377333452104730449928184546801730404753211567004893484985492490122559698218429112610502612890398559669477430368552604181418074226443619376408991158580684268334621695854457368695505805775813060388336683669449195447613878112272346002548516560700025460300422413990703401806463271019963865731748539064466723304907821801340905769546016349410759705456001936150433681864694002874615807625285022155464856072807767477435131836682731711362637250349022143915650257925482516601624871632427117079015773270609877392539998545080403077750780717437111870750559580844913747015851445409081949219415106922308438621269810544310235418988474571592687752983335617206244618455272841095286784815010164482895554511785051168802475025527469595464063109806756172810558813214278650905831601422461107410918215476126583869989029573176446620628252819624858503313172404582890817655853972702419107421104504065195627634232295049185600073347565378365887139104230339263482464779554884961055592988203291528273700233643792279211567770649114080494768755821749222265363568086029386318203367952929995162320006076239949836438199741354914395977676622504542704002477240463757314491829811056877982074155642915089047051415785245418495948686418503665575119526459025479802439176393747374225078744719598281428974714169652447950414147129851295667411752951095529467252159728574902709071141677335910181362010434200460120083939902069659708949475104150685138013660605735306235821634149603117437989579232876168664010705706763061122329403907898189279363431966745455833056129002142495688228666887105283709489910097465112690123147989216974050392860542635854526614872838754523014211637227228408337895294818106884010175860791063397689458061971744685761941937040890750010621678509339036973729784090842980947560640311164327494651337954994096784137806596725265306488896807236477109149052527503970112907583094633405084087200467948555108455447706096822096688248772642641820841508333420088596722977921640611264532141075079526301635117267538724844623690548204685208702941616203191432645452573458082410195386518715754217831026423618411595329985314570666495740864361012024569814061111512724117803094611776988611764404363152320067362560061990837964803811047301558305571487712813694659466575455045226750570959363383081781749294564717819608387628926663919052806738254856684863929185456786757965995129777475045147216119813146928672014119881522723215378143726271603000539039307915802546771572549573915041713443630236212096709609248215005418481532126070630788250741164981092547789045099814115830875885489773640157914562565859348355104769129443190546475142151412674569398301748396966099557723164639869336162673002764222971093527914009391229073090248708249699512503854932621553718584485564490115794407024789277375301532524298582307600778150896832513523198451884064989321447432708654116401707312421905905377461976522048149790889802578417995518313831561877393647370092668358730094111992639382805574377191083674757857804722098530546614099912101393458188836737836274794909478511633658690507619380912438218180877009745409799589802955369497867370006377050545522488774508191562901141707989934016713289293578846465348660515732617219935269944433154313881405705199988412316637528398855745412926327525082054954917863116587423265947050572213134300832602231084091374995392742335251027063324759346409855221051330447422641899713081930702887568308267629586031581439420408551486816615373904200282102804196087862243037731312542713902643778054187104591396629118424773925571698646589773422986368372120485620298074833023498019785298111981805230767888872668476730247907834518825573169588274931870275934147172937450841721927080787505307170144418693314452560918086894862774107057069683401198375745205641409055945885961373961373968795461032604083936652335373783772419184832298058201006902776727885229120842788564951249468615024441047388320805366124892477192977662895516523725832859776676935607474340827125118941684023702994659495103291096061436304515042489525063174099324618471714367630461623451019589070018314178842826854039752829240975967669399748483943578695401752913603130381520098120828140148354448123115126166143663933781558373380747861338092635189180941872938243956131719333970496915917631597136539633237565779050317646426870783713082422369056604351909819440995396678770410751716853990845076472864554759866461153895051388140960443816595653060876295026667829882392357348108256073275500443752991186522730936306791743805867870500820061050962978765648742489220923024496031448768589118789991145787601061949274392809082379255564012421523515884748698633054250966358841832782338444676995488516044970814908110732426182292985297757266219356393725968424273574445191267752038564735244149691433803468049548203200155200508338399620429507618429686363630714294862660475583604240338577093746372645434104776045942677386442686842843538028456031898274429193173809692492659439115145853714333194768256451602313555610985948634103163754983704889632311737646788535553755110176603612968206470784180841561833557722646003852373678213154820317824887300718717488032651940771413142447820558956977869959277805970269612197421115004987700812428102067775245563002172665981436083253614678360036387313695271261168010503818983625341770438043848258652717011311070475527789954031767623812907454626836667290099372485281879965631314180063690295409879970002343552110465740330249148215006266766869423843411243445510105473990362973857662715470704459448752185486039267131018191829566132703489995842224747196623329121435963538506421439281074726838434096219341899547619890516603756268193697519470647855807115303181596683309938327211202319923791905659296031246124089035038934657469768422473862678347299259529275881543106970683755816050021752503412400871251217808831072675196976132671187907464043297431094550599153372453822832008488413603864636378632548723238032201628847898491594426887367409407001721842712941335476988375804215729444620483764023938982547295264084030614544064184471193861582754473853093076057864478365760140691705278756873393360424181792656751732136670549972144133473255857203043759622914580408061861603005357074003911723649624859306612913706004530411341678292867738164836588749199581418341966311672257967861066944235969890471592232006114185905409358403490326727458327905121007323274587292367698251707990521868065963593159311004519497667236259479312063777155989323046206092794317581797235632851347500291976823802002656094536587954577239124607975531536770166440170129057824270705347822819000145973464311479442965326328694811235323442990620680456921488994729585585172166940017123596537464511108073638171976205701106414200279603337648189475495660727626675859805408224098194127246147788650369363440031559441687234900510647336703901731777444531567684122532258544715839797392483004457485793563571668317214304041152067542959069152802276144592902585406986371457435486569261474794496539411058381708220196901413462537200485931829410980486207394646499902326485811427156556784617182157125469503848656587491948024768779246547199575844716805881576788024010201622973931095114791298447507033541190486616802551408394765782428953267545462434026106386689259357674641483719659073255544470924383992845496613115356494192137681220533927104973481325614164054269753880617659191660048734038214775231861832603197890182575753601071970664158049930766199410780564619898348904926802669144496576113743916432674051924779464879129001036653667787413338863417624780183702549218707282319607856174329909994201072017272869772698258539583891586015087296829596958845646924414882507006879579637795432879263243949227952760370006562972264515854685420882513991379861121742038789698970467512873242917720428014538243870098652598900872579226748751157075921488779289766969996820005629175806369580663744427980546425365724620311969325875348118330089351134591350134258603469968474778423143917765078282307255442615212597219453009112166292998946512073813402684947764929753393597852085252587849073150986634204531763164155160316303569500712962009996215864883456984557907988459896703487405219362277264314696257120694280068848057085312335744819103037696920891186984070973555199108561654517817220779220139694777533330811685638350471785897195403024438750030730089500763609992736093545608264448128353880178093323217983517422486090153005302106399821861199125079474047599973214939182104776919035553503744760880632507204905627104556650957323077360252699541595054547353528918486469722132177480264552003179964105277561736392180430031623378908118488314154919628769610241647969034818592808481970187722011036266210711502511054254414111513204046535681064380693828079303029874894528967696086165581807321770001607778691324130191228298144856942126350989032019667831700830687415914503591635346395665671211084358226239187858649319303093765721037314460578713221403693879351776607054239909592476857213046002280230371649131000553968269105553439200262663956452086556683073732878964819760378177035166687306899971951370437001756756001827823550825667309828229494395088980701050550965099153336261975763102644084111797214128824367731273293450209667453915651955149766841889020367295660440610672435841083612106541189469180133254279560315617625361905379206710745943849603297013123868907390881024752039334308632527762388609315039343939839966257961079763013364478590000084201637945762655509261913640017507990945891863641944774229073979943371249608544000748232622178386362486132451346796508150402458611998187464416580502018084898428609628881806104198074312118306681264818540288825688351208699769008235562563682251533165632746959689454000168509016380342282278082366001958315619293598133869304209139884546161855840011764703371701131424350545387749093490360433915648171443298779615697047756088168799158917760526666778378897480888365913344486928842671216725829188622838268230918743050264068271080586234281384070894641431113515885937672746950610018692778051297287155684395125132089365908613865759326147520715983337631519139696660984944147913277223451741951910424550462492569843495517822506456487863509941146271766046790591209285071664657998687644854793681394565689282871835036526846149953896833908035943822828121487788153146067542316280263399933751491196484968141433751423282563114248819735450633489101858626805585836635858103366497424917887640944288095229235211087142601167395895754474974942470049961267555653505539262019908422654201698260736530183880826758172823526872941754842904993384851100929298974666978228834738948641522265641073853846984697428884548311376815871099241739094288042298314992206045866671112368921898892448265358867841906487740275103544484522107702105951803161325094548841954644203246362471974967536490056282874772310023609803837746280294440801149397410087578490639491487650591291335924152371940757075938191077432088882516724272765122861610954364017652385015444208355121623587162788588391712645228700157797408196423838987334073537429325406915117145757908250378073692663820235137414782428036354107776207451840009517096895120296690571777986925092598409051760560939013773393859084717896712760461748636068564874412931083536039255054230263166056739210149206494688778333735864206668499963980713612426865048616628290093035963440148822157165220042526875525848557891730032559511546879085443354369987287592381119065364684691768034897614488789349009984435075791510991088278227352056093825756661984246458938579558615784010972839632443862197767116241695581306846890259550410690606963184451810902106770484622198167937232041815207827484919756923486402828236893672484277750736351390106160405620584754481252383252133919123390167117322539487386834120607524074570552671232508349779459945947544172050296419391946817697214230655388861448363888679774743166583702842527344880191234341148557032117178830520164645835178032017281938374295889948398170679091524816688271592779671253181507549620383566055450423881764166344582554189584436572268613428389462804824572303174266191974669394598132197303847628223211227031951750898761218883623313119204590280883147875043977252562942213977317609332222609886112893667108266371617622673604645634503837383877623200476495071268114030951987664775866752157938865081747740018777514978415256267924137168873113567606376351578615217338187907299145793697872599067698650059029224022362116468337458913707068334972988576565251047719863316705479373821372706241105335451821558013464171654735120062346140488891200621173220934403675498452500807838431067779137883404878881639146976143026728880998826524576233709011290574055925693122348099418816847024303887110003090894449746637228159730906190695907431495356656608954431479189689438854066381278977045606213325814629189748627214400494175645533981485179400337140855860498221918503899027112647812122900458355531632431929963438300149604367115842497111159395037140283598431759908803846581440931686034639266301759629598727819795451683020044381159812843115068865294848196015952597626220783687827658407735823242649736295679413868125104427235950882493067022978912562109672906085169331377755569934152350960356181940261449107118852914916240899548199624999613237526998207686516783495259530843687687808588923626213302546387930410923379975077106471661294183967014213509842633485253981577224736466059306905796233511635202980576200361498677827983865643739771698943454031601068301043992461169635364881336453094949584525002055347129627278691473966992016982088505858777396175443102730290632822444827817130212313159182525028420747264863644939944663739691969440395674200601905224669513054227569660831720154940242629983845878443010924156319421693131158810968069020720228752295386730725033416758867457645777731395194650098994501848913176284995802115084836220176751847254474411033028301876194347185567628721719954681783124404827201871077007296205901424163688200307891011815017568039990438698104139417097778620765770833407666613791304109753498500080655448626954053672970012071883007922629661938295958755733951322380277246257154798039103331417242361601361882076030237256810929658955243648512560624670789478554345207684498827165349572738929499592923237620864955610278119900303923035560596605790419468916335939750093991179408349791138361013462392800941809877939095833986015596575338852441871599731192859792237208952375865457943907287301010697718281841659774945260753983404773404124329878533276972926591261579548572946043352416326485982358173613582333381723005987394563150972562260561214843293072124774007959161493540815567920216797039563339736118350822601978381549950205329223187419365857300736464155834742876741532277995719397942607676507452223060515148989104088071238926965433940108638266487318737038603431999566603879717465787312446085524386432548731295093514165523147792310886020245025489806699300899945778135965530553090573177654608054351321516512436237177323466340343142234055898670130993629201065311849842382555997996426045148293975340820287273356313455137323968483535267094115558893221961102084762260826400736824765438942333832565347759058454646155653754203809422146061981026715553933760780307838548275964657165232191540282992431389571077149543978248319169913258574072478554347692305010913669479437836677189580542743952176574780741332411528705537869082921397657669974567282511766790447833210837564120739951030594057859917347387298241303512849642392888349088403113820840023798051901240745740775233307473159220843567671134224468956768121224604207184130852205733387874378138596007159461945537519872042654880990698402133619906684931138682692161672782029504225110501460183728150160545999632390558397523051502727833006580183665519305872325095595041293968266741429766649015998589142751452948884713670900599060219848514125235911291178824084986194596246021455638260321482213166159612965713920132982919601727728596051862566587346333733123070818584965036489085367731885236297739373049776930142770322368364560797085844580568819661658864037573999045974746128321666500071301427218782185939547762937019234061750915465377703150096210926895100612152973617638254861314699582980124393198624033566917174152939162177310492988614635557527903321477776575905498717298772168007130920436711489246366336520014187450707225207038775418701631588184618658850246953091858132721584331647085646428672536293372563977918857208964299165751449471388951881651513463319657206090839412821024576755429037828312707342981034816226569505930970027514682437900898816354359437792614725859921921167104625961319312049238330768368135810007170957152157584815799068781350504037028969522914782258962911044267952302959208410187208361225792646932321014833794619741435422903084051308707933937174480939201092494876110326081707470329233708394891624325402152944647053995942064154762937558919010125199182680108221258094294905490143619755753253465867720269187561020983345081229524944227955018575056640813613468823257152140119134638071230149670702120010733481579399012260731812413435416674301587797926362652211443986978949967793950180860806279117194547831883802317212145806733570772465410739608006313196509214236988249350060629908788683065555943850241337133944761717667113846780961815488872926373439332255138667298605595506617735248130953960550451923329310437596396400694292849311965828535097304085263504681352236113783139182614102629403174982473854873093928830823758115335689725349554774914606184029101496151308434185357663551651101250326683927078643315570140315743434789060295663530942200554497068294493632255324570872979337431028004844166415090480469960035775319689971909818109348257664773702107682894208923885509754736529644947504842410331889616726692185976944951519132935437453220854685955738091446616608575271425648572814910974301083282335186467000350711190398164474246689966467979159752562696655304092927789606270085473115506959681108663707473654004712377800314898479650278493823873783670792786043145052338290226771194831106192525550383689392044418509769431822626848709926029873603363891929627427999635503741076289415589659277418076514247793137088157162462489873280857772402787440774669842900912104708244573295930872067851485428532864665555120661720011565343188712596739705903424740472425950673775563434169103408171354599524761638956216906390709040761386282515473701856281310735627365184117298184375842791194768336129218062110154529415118743877639652298533401112284854576842496313934419837873653209471465064223420827612156059891843758090426954460134564689154112555304988445157092677727439701611410808746671285584506385393098436808762817265657131042341052922365180000258457866451722761664283825501005841514466531860105352065329165780881499003105742735040999525565964501417451103226165020543153875094886957869505005549975765366861875643226323461888309118354135944466161600563101273745009388009941830403405530522830624245728468646370056579540600359554373827869116111707681857889503110805142405438076752794216363023948732029197084559680435358967769881983709960866284257455772728092533544802204580543687832323744794477813804571874290207335011074904081835555932348615163638434669759049170091913326962278456975978646752171607004464242533445987120665538947382040324142204857083602108418711448885652721175683359223935789534198073103657289076528550905114097523267738555412629962110997179578936467255030684824822025875072444753125887605978488473013314497771694202214397831489296942883519965487313667621426853338015880177240953210539631605681027923754089658997098381407000164708099111808910017097844705739679389496293160559055469561618077286953979587594860594307625048707538767671568557222503328343149902169292532635898178879463157811826064644686641126241104470389878411230749020278473039214673297959580072120456728332534331227438908837833333134470937302689199963160502306266491225020085775750989479438862373579678385534121716743528358678581276323849676684785524857975169945371643559488405720982688517988558756695589576602950969324747603002270481583918939228419203480330917149920959091041801741081935828244992783627794862335246281821863577863941515096646412288312308915898743757524326828511271366841861815695071132396883296617920301293716465660011100204747880507124189948750164807747708368688947859999323086315984115699084163530581735527200023744249039857558432319398453779499294581110796975089145824404423138427650510429182284681163595145532349017519744018550177387220660583963019161206392802039936681424145710876500415253484501548662236127469508702756214092592824309134033094089711471156375526365709892228964954559489092845952313243202273979317251544062884381753870270428574317415905312853410132267089028206715320228113498476253806024952644883716910525901619929923820070229240831507855094868861198859555178323656291549571412674052692426305586190245496306512338979127021974790643574571948106417581205714452768188030775795684396740963187190178014007840848322326189690312314732696409855072046324121260426952951904106377433823769969751790623448944188679878351580266345617300543340384904179570032165806850103031834933925290958624065832489202653425556690402916444512564904459935359409476904573815079971308213873178116663641393422460037410248716851466692266052081253918951584706283570248481332651204474206065897343220112686214729473701404098357196148174528709772637744660846639869010817246980728535817026535118184495936381279565848817295427527551026450596490054260243480468410314910976141992384496203128053180705809000200424688726076271059544489400646533005535517723374655758506117534918113834188585072218311165621580497894339770927813838901707352792945146136441129806212579258813575524765201033901106168519918375184207190223863532233770337404051831807688940135154607166191750215257400860262007191002043352835599625319695761495534808254324600934981135044451384292416155045910312843898690593401487153600154676701805350960952499402353089317606235967306832967558007492429253168669354199696500063051658692858812084898089729646377288510940834413350584807797890154931303940301508553186801002172568926700180750595166769918617455046361165528043948758573842143558230187804459157717647883033661580493101280644258581800612113434345682424922571262896445752393167846699206163186836293498178280028724934905354200799112242102082734400329326137184236759088282303747287227481565541605058849119748318477574430419638630948881064770477694053394880341653900723954669758728356284719763646122485138012946007914226198303351565647083122883156020459752388310874912720361259381046697411577629143299498757586736471295049970393877655489981982672496873162043712178858320326326681470098356990522548955724917294070776975014036203454000996255433521921490520737450482097340052859551942179435676775152224510379342509270741495775360172227845296956271670219690207629022180104898098469784415486256686729195004787670850337090162404343036378061968499861318120960694964555643847321588161989780515418773870958315920121511357636990588328847808150618736313178312080129002639672686394188044741905636737190173638427671529810199892990013751610496841552609465746501004788148372537694375102072161525244175765181313615225870191384336401945523910342097961837431547891220235484273942086905233653128190935911022639186565664092200728446469240877184782077665372191483217278467147043265275914268655388023296879576377477398565928481553493778528719622338461583695158120031725953184885503055852721052906286265913110791359741434207775075001952006482591215505459192686846044708293862558941774873759955490559780879144758690832430735810356841965792804410449503065253326450953494469243431534528607434051477601271303519942548760701343626724162680609709755373518560870064756673357974468819844179710449727245506689457239356315968862884034251651060685940894159449741253741008969294961909722608593443819837512241275313437336917030329376109363989801208063540037330242855834397189342274747450636407100946378556523065851239488621094967263475337606103773218524810876556136404054552103639788626837281970635960353349914613833247476294664735345672947834095036401851637918303493785417036101199160821625920761987590300973582082793736291779406654868894865225727937876695975264760089574143123675352399403387677307469767983462996176741401853745297092944385317603210257688539752031973360770845025646346408792671141158470389244886422926322769282397813057718748517468916178787371210412399871788677348472209414601416420966685107589735072192592569998708998635719438672746470301789865321483018044135293326077192950509836385371076796328598729473168018270079470602498806394436462582524380375307829935562479944966884247199655998597658284017824359051986590786450383577744291624897907642709326308151503065164637816893728661497240708579259926200566443184054579004903395715173264727069654939847807797936941136245383472034565518654269720390141286033371946894087393807125673449374350065597812699578616741547850184279838745543076156014546401585093031971155221675754326976485851392587621734265214070619079555507750010572316515392956345251576075839212409682370116666921075997088978806159733643379447039062325838929115030650387326160498840804871338260983287376919422860295047490596017160243482492002929333018361381916406183390606033154784984765454558958374328276980167933979801826262568644426136975231186087023971349511133597992168060817246142531549521481922154279466983152510842693805607324246849350556030091688138949985964382148796212104161100195042656102705049529176300342104688760165776195563820504416185195307533527388315887621483604958523196700735820601749412511890790039139179728221469578782062912752352610580161314848220438606009816770240842247036278647369383226402382495846571282788882439370797028032322999081756195858495955461071928308314986126955992533556706823785556808284017554653088640805947857947176846848761847123691223211296171133373595577330772139339436073221810428016153685250059505540570446765781521643152901598705584923109611683233766790101569574000604255013291595008161688183417472042804292732399134911029834949274502124414983217152648962389073212126874504704219507262845729901248422580161675242106766183801419888904518115549064373497817261614532103314907069274249551288823254272322047773810863254775685700112242381439082258214780703550105495587772810253414456873730389821451489913891122076624680018422819130944548689301301096020517669457867245314225232389682561464793338202274410841049632706707911300891313193531578375378543997465498576010566860905068311985337759265001969378237527786958880675103204916206194450062487952404240140482287876974725605727638929846768191700713376604527207096918629487755271256403483462789026190713622273284406086303020681848575283390946448750958114934994905523666230875599456197976054143882169598917895287426942262946857967197297754891423127613982180510611097101743467521717646027717994963070940441259867636361289787283768785645702537264545513308041511660635129335527474836792432033956163162989794433405623624312836069630721197669354409337163649393730167748471130318647227420727620105571599903814282695266262583557235099428565550615893017071203439712557969061674794839692544148328808340588169654627401789941583613113455659056915378192556789986100888587351630500297696499404705118918726516407783061310357418018125955699504608308803784124571271939507709270861848338616568625962073923787647027291724685039847851458846833167032018671543622111894406891745919463803041755131031925513786480099553052869884571322526280811364276657778768659333903910005294858650294488671825213481336614155601593161418321109887056503184761399655265751729857679138595396469481533872323887959669559397073918356350608880750948110790109308290656927352998765530820271695166699386735719437585196964024785814645308665336106650182414149487488772645286003759747460159066370777999133565745556780633796446458486189037363294820935193833857323869766402213248263564988261692879518380425761299842009995782431127591440786704183744633570496753506741929355214539815496304263009159207828033052096323549254336919481349249194351692975947266885598128930765303328507256777489524631528123609363906843583859017624173774802031264229091402639893117590048859395637736049888724541620285315193176516293621692540005602133005582741908610770318709287082710592139224136467917113808512167587972553861016956785321150215486640058980550548670940884227627994025847122800355560761116277542643368521113471554920680996440967472315808200327663207178846884206756887026720960776050746050092369970180648520079702173614838657131397343234103419136448214596302806717913793619195509724640427346916303776777106525139480545721559387633521323559046302475839803913700691921519500300477263281013904635268702456301057793535332143817730821049096095120974006323963687909667483894912992953484937303373857669005236972005301361161435745461117793580277270252096907908442980683816115205411370703925027043040090876786397907451956242438522580320852119938181914771432686185445468568341928626834762501023678001096453998509981727769189587915758553840973689935201127393920868265222557030374974934361091231419457165856987873901978081448284124594645319914152291290900838727036077675318583088894569068001083842428937576562579576018584407259152306456493025213503268088308047547062255169307776565538795639577158435764556577141095350475496850116804626113251146091052577626360893772899729105306595789301273047616390260874133353281862870231064757235244672339142005787139561841564385248545383355227552649325771561331205976902751633212192050452491995159894608634375030339751261092411335000370285584090596858446834088910176245803926929277478893993645703842456397467561403814579132993342638497814066536644546905052521461728521201352765405480353968421198438335454085951048727463900587655199574815755928974682142616028687502444639616043478399441498733825742602560247688708706554460425043709749039080517195846606284994898338234013014869296376034313420495412982495179703424999144062949837038370192148545658691955960070430386427498118725598660022775043656441237099872697377620463607368571225235164649377149771385979532626634423612251071764815456002905192401821579059029350713575372635974935519657019554584848831967744046879683017362350865046770153354610909563274707669823199690108682225495237910395606394754376177496635158616428627937341076648576215793521558984505923549224168697339986742274728522192152538678898974748398063877046025948582827355655341722575439882811313743936296500738255149899236362652458851836297513847869283995318971637790488352661996753750633061330227233662673186630238900008193107694797465083536558473789209291496814906371348657542555141014029357781670249439956100642052932088854690075752720223417999988054998654028752001991557878083639367762081815306816091115632249556518487674377130394385720239407026537123576720252897095755853990196605171580895684249175804215500806576985750302344494906643786874963823560850779250138083655589413451851959416558611486472576633863048894290250852308090860346971197654484442959081233603812920471363935133001358995431719734796184476738610637519374740621325139551325782614000451240050112227396262298346454066761642596796931652528690358151862110283583281737866346669728279875974343809979254897238319118771024016215401299573971736483307497048805002019546237156663459561462803320010059655358648887686752340255067289657460370399234923544446493823992934406495017866758716086381646870308990442997751924891052577545966368145164998372693079401997145315682773190625722662893129786804072409953012636256360511383314508448200138593965401874932783150744714829159546331429717928691663029168105614487279435321577083905782757792219006303896920228935707176092608288955093627817765094732194469604779889808385240191189000179946024287794017560493976253799829043318273901909731927848558358817362916461994082664128940243233416021673715765385783710263998336615139476598734645739943551907494247036907944543995061444085756754185410113898653803975639520392319383619321338233300459958657930492551358562331300891658044134242537620004862802528780748006727579829968687315918091468379894225602229854230991642742935289244073518425188754358858627521607998047773982044534396768931212812468003711614595992462783430073030963249396635977866442778449619636168889582407570161144378011989611378851076971841979758498742633611595606691405266779869730026576607512369485335720661974266114968771826360450188614539350054158153436103948858120195775043488892857299226607740851906683197048689781593867937202199513464017627300717930056969382195398494140089074591104456346296529850355671756571900209439268138191465213513128174272069635856839626958662320785241611439928766754048754755899645141559241904882676510513889741528640798751741541859064420878777675761224050136610217795394412276823832064172846316016445413664409700375475278086881400411983899015618133476708358888095756908541376210706138684471064149361076541396060834457182810054731854742873662015888940086342368548291560649580869367726655549424737364430417178674645603171917306244683972016923565397053255793235889749198177431110642587475661777695441715005879660520538586349705463529205187233503462217963230898275997710665220041779630037157920373379608263918535802917211382976438133950412492058516140029733653748353530615769612681844159078492114490036534708222585732899249076577867799182825110178850602956627994607026486046808703476276779480327495054145062472299897098400830265661734291855048704738742320213535754675489252666302736620306875517377743077309966071866233101342026959669839547726612017493999706924175336620080625326069402726575697808168887325839032577511822150946756964894860532429609720922064396125936349019324621247283874069504994593322219450886302627521435266565518680566755851816701331931231613651159702288985159931499868929809810009974724788608912881525556445994227389216480981581899621769253882318783429700819333663323307360548474104101217621520203464713664794672131777983922153577311783682371762863980713090736411758080496136645903455292511996138737173705392547915879987408574344015781156359724474679810341478510978075107037045858143141588165396973738640075271458946496718638221603503262075044876932560415491034833860399450376063012821311783496584649619525405371268869631200544643272248200969833190955288316485646199555155802911110552957984834764208119587114800162428725296233706057668249579544480277809502050207718055866675650482450763185540830489360259694488311092246394117854132054646726062570102797864724856979062907781191426300232365298891922154395552950185193408648678332436014708074897812538814307261672279982860978262301665089961033755535856688384139263527463446793154882391194708532768208534986838783102820806412386248216702859861625204692031668534924719704320705382960867623729485789230268421758039303048756992409074488944727538978955791509903929899246967136656692178429326374970673490952419298281930630809989461090288571541008039182756559909999495142608498358013807196589059820100514254446539317964371486753981308870065022651966495695252189846575432621910142837001387540537048117305738504507487013204779807614991652640375653066140239125874549717988050908920471647248003815636228420837145644389371444409794775796343940574695445378839356847493068658486565081179931565705388292865162894198704847143493238727870062913168741349233807290774605591155753409357368950556777125890375998194247021617138752945835755493010240055262459758379184640485908098577814779827189488762294647407652272610906900451163668482972045906724499531948659701624134808079954053589239899078668980145111210356065152981484119635247814941963532250461556018315491589083160179740371405147384122957744166110232044993098281101326594372567666659739414085182624462025861227186828968648204316660807398613006891958282596118028161115218912042851566746364200309778223151476696127065115311307238267735575483950698619549041456149529268645358996109113728177355883549718331816841302470612640615756536516150874572528065960468202172450904077054930408655079382159082164534515958142782965055560963512140872498777762385676956133585898172078994410416645595935619096561029435835771221545426746931729385322357245039905898469905392253889255516087831657372029690276204465800191127044161298673238128571597778687149737300616003172187176931998245709170745297521386887662279940751549186229014760139771352932495612878022165369328269378323211396541688694196249249844957904543833961978271731086517714531744311233168602062653868984006291890526297703408576290710862549884245136734764276244146544117176761910264355096742504945097271018459693801055587475520879041374237057597778796420121501841984983144625680660045696287313739448576376337036658407163050450042788999435427571212994196467801943441524021712810642988311309005416708213156838921733271198815917423187964220258396223278952972735886710662609440611657170815968931032175881551936326004714409893404922847202044649258729026526556130608089641916951846131963805676311339328908362362277218008503868448862201285339745329174028554376767019876959949837306994942501402555417405589201962892635474351594656106963115290157129711720908998961784094768354368050025405802865530582184591799847794605712923835689021048631356019509354557936052020458075742774249243703458911221184258633623631516856923578481561661662676789274030400352234171545338759008376786785146360463065825448673795291808388225727095862991475646265791487199248757239911000302122856647544228195784999200323663819965594707031058987335852407974773362592626236285951575945034781430890656431431175860267124091117150445973395131676918710164801593343397669254154932093479788912203319010776873223835993471527211036179521967096674746098378097559507021197779580350270289368268701779204058878487185584692419859624944729184791334605924119799825841418675224253857505864244261556356890816356458654793606977287951244109065206336052551895800160805546542488371275457856015546020682653821638334287273611447853285796898566196318908637831479605103085476395436119429355743766207695820517757750181969785555833706244026773810686096667842504816346671499318328494445678443152656571546156671912614684182540271191962874890831365711783992492924832775665530369575328781876163735140802934578337414738009628986189551128974844724779116631165233136539491919674196971208522497801874284691085056169422740089708867094655720547379305212561543672543026283273423204348134777493462763514860438481134721709135057639616718410759672233187637265942685068689224863358284867337177512923335838024397219427194590061551743602736817759504389430642513450692163083091537792440800390982041449420939245401755788035192976105184833148294060340688143863356267545722481163456579619909050727692445439637191936607948180540108012343405698666072574957868539720004295711514351771726307333182866124713139421231824601848611576951344266131464261174668491972565041600429941322549698596491791729644853530922405067371186364723881793952962183149424853926296869772633974241378085799273009075551014807411458568810716868772889380947058481525151435852874472536848574971992485855416054184322483179229855928310141399578378420391889220889061318931436191559334815263119493886768691305864297514103073455473799046299464533468643769713630014927147590494544726170631046241694790864304530962548090308780211495094303268063765267293777889967857059701896260635885632843472677359875073769353071574464122465073913586466592712076799170172227875279730165019941959386088694671647977621076836949797448666337935491071581771215778802762231361549668575509048691083096787929439390454381168847200088682550834027902102692910289206552946806088875240992148280122620103124165788458816593711893967259553916699472699619421005679704744118557387349204350403376638896997679450704264702847878757855363655854565970230038433844412856379820066808740477066374790188028462193690725784366956519576259894599749143559323761129057286337101400026337384821826026818177350453701867138442085345395378584427078632418916611970894016957169932454644910350416650209243540288294325078257300151341222097320761310752778244480720613724178273787086827451876361019606629822507828323857742585505592230512054268082348737815208132089052725697333873223141542282249009504356897887459791253638005347070012496554019218830867229038122151723706934976029295743870103912548661831451573587543199847265116236283844513125385923066370469792555050549499172841670349949011025581943609484920090053404580593899992776731179460993038763389489446862921187626558168653362472372344990292526165111081881313527527855606617981385852895921620618810978347750290993841677555460372085259973485961763248820205494857482922985601311655658081433856556813348276656298682883483790695605226549850290540548525935479575369786740408121598252464733114681922860401477878659965626582307010476084967658180609897797342642163378074785460990135719312859945226826155229892292038551257624130456481963511097709459662108695651616922537937880080182156152628077263786081939898507006976305559247170387328301833043099297711546936949877852216702968002958484033107100062188902697949251701810183695051715430860240717437991424643630759027683261504881494562176307071943684082717577255629779526879299184644197632604841309928822915085026277925684743940534344415992083960742800928980686537821811142463845285556313718793271482527329933408442449701380178673055406977184208705212747058369196785550727559424693424283450742140993532326297517945603403632551833573698271150826256182932445867689460355022462759237231207041747892137152259593595781912807841222306359253419969666090183541205950114472547319202068910905465310162329972186060437906253318107459471137997815728986184286418848522625518174104232623584561664913166278543537807109535370970088624617809663620478777967926389463612768842700064163922586633539361095551053621626528770260580645491245585365712111357559904659947352959236088366148231764087577113906089702262180434556896047927782023916027968276661349281743083393363654154267952016790437535605118478618797864782577631140604527761010807753455955382234050439439758061578813536029687724786104265635730335285724601094249365241938178445801484032830268631940840070692812398708068206732448948826380876733608161680176073116799713049462604663016401964483088582849546628840833808857355156947466083154571793460135022250649248327384612088857683611430614624161491534654376679748360416532188599358323316979013807023313687364959232486652928203360005766359037620704616146904036752342301025991240378296861625206373418796959901612548887496421953100531086503272993391941829686178877453312337554766150746348511383732401260999991707178547699477283934067562479590351760933988024155344786084332772203945668469584110432848646399162194217927439976785405667466107562790785351458530280426061200322796084639414594832445922935659136156643967234005320941338254021949584040660099690306793904093306855105755418110798618075014779775995161190212208802529739143925066407115511328925598064126516969993852017840786960228267522289476673332251970113927153556876606814407303607202010115582151605743649823177092664463568694195858696689552268454322000421001012675092999476696726845866192937785455393022646520107644702792209617438203127494928748168611314569248856623770859910773949169227407437658256593787566598596502764432331124113543619848380664565160642217505444031937318988156403765292385387071532301910803276630318092667734616907158788094081843686896947619039984852849321728517320148247332960887913577023156640613697058981576052509201506278804297790169770921253604296785021278677141485399873268709660083313725907599597046038095558486379096317384767473691709673534754046556181505946858554869653036560509407175855508918573052354158231441787617835349543739295063213057688065179573185877518231781073034947098857698943362232583737785690601151097344267550862415656404865641430921736234372517649126330381541589421676785964870039072261734068327681217128680499806506539432468906486707636318394776179161187525885938702470564553682601987838763204645788815019469015205294653481376321117472791423255672763846433301831539957733207559696180698470778764880275134792970889350304854621353868591840115333393916609048181292217302327368838083265256363605859380727903167110096870766919733149504451700022702448604402994209698944279451770404934191836520418230079789690048232157044930436861540727737050742475937106272136069210325827073789093905840633473114625401002289875416628702389045354595274643606079409411374309727337838378496474393546363386960722986205091145476610024219265219805969749128844574110619133735152627018253457916594868494320511365917247046654582478361120441114578184068609308680158367086699842437826761028545983983998583204978565985532687270129271014159930437667077583632962481793146628621557507086950768956024015628643638586015757300683513820545738135651206428272298388516793538275390202151070517163724103951911819370275237748645196704217607947652811305308966908168212258474226699314344043680332673095203918030013116424759851641813331852203360804688783900057715215431606620966078873591891952471147116537843205425209482838346512729639944711573934157277679344906291087141774412359499525950961502303467319289436072753551193094851767174081255271506142091945250467485184205525668223651557598313781491176911476767533812714232979251427675552431843068134041412893676816784928209941800669107880992213129533131394630704696814342555955765316925070504867688438585421953502178104006743114529504705598430115808233001740679268353381701535452909160654780156701074996467350417539982464846698439181969663646199880538924356153041512709479540441775831760404799955286533208441419275238388547220528258583526862386051299604655612919868011062484700048256249068183618264602356608871043939794694730268255105254738529929389631646244130062502994894646726790600595285068879884523531954018551936763700225423584039559116943652161716846147830300913817864304199442520301828701205092815724216237614599431816217330061146021394480757918159969060410952821355497631804078927739865315442236785112497496366501650353094037644447015391911113097673676948382448544880080371859321620146551823035001967554082004942377481784802985572036169117050796448577641151443478665162781982384222095324383148198685758665828110682081108198800323664742473574067235748004643274824061239764339213952485309415150567401013965321637606840106104339851253778648090337931136935330901613096985627037551901080768675642509307665782833421862384612014675544274386435362606823033625168041478085165671392564520864298399302015314160014665746789803006113331542898560837073903603532393987007490685278848496676456694608080726753501586202475764085433753101293440851179126294982994446716547578298189763793290982268375001901603698024302490285095204471508426059247822079662277980747872535557681588431558226721552844125937453683143739665951993545628999555280024562529323620713403638841725805470629082002177030120587730029095924559594572357769121257799238246889506613971690543628309934358286061446689383858849911416334399569999934140267233781091493932003224654863559253006877893951187982921470044051690827496767291783891485527942477172453432022819160940100736888576657449343684985458398196156013119681509334574890619507547164425813949293518999641500441507336302979161078233552893423142611095318644777019491691279077351614683710420360279597976654003860363737865031893940806098879979756467317590195501038709045319132896083972571888358116970871350604526473170470079578980450051424660452083775700991439725538369580865295001708149272560711074501290233956023905911280644994878936109544050045052085835869995740404576173650024310406971918372688549806481437689119790643406340948806539082772974379677308216526489739895899185294613396467402936237747702003629192494544553701153977162192161482674098193708133617356274980016901582146139479395569466468047494284128272152970943909882009573914543315129138073035899051887187952005343653150829800741128951860214162590290361337233075454941419783382571082095006071471715597490300092710575903997729903438779806144754241918114712090247953575149505081955975994226352887819209822288301679008757812397137290866217192226048511742251163490152129732402339536778538442636675143090292014456974571112388314633326865136194109991083283599699907818262482179453674450308702191397928874420079945709486912025577993074518575706647039392168258121368628498892520051320574261734806332912563089740716699190715831393141534850914733096056967593909417373536554078825232942422179043154373250669631145303125470598694846765947210743669258223428619288675349844904849393994926339638437070364608944822836899609708032731925534754778615810049571851812237343676843518664176384140590319005423686433941738005687878213510833045334329085761030026656927653763527087300781363366634500414602271437195924329812658829385095158799971259484558388442893111791417642290746927865832452231864361301698689458607727309711252881709657981903163442830460450346023822883545903365521586685501035074015026558222320449047707701483820570229163102272544926120779491175798315158623494962587630354051901344967970398892138209166054358350273762811224361191083835176115057894273694148902871750657101659597442954033043846956870263239595489547417756187802820196194839244855566427671623821229333388653459556638498258154860924145744291564756268065779618721706066963768163246939238735802235204591037222632012445925235809264965785723578717392083402846519484663925761395737775397854885196049344863070862341219636916787954855340815195407320204028581163220618406408434522219155685284211749196866988020110776896405417818466403303413160062379098752704268714571158039893272024441402235217718583609750542326432080125131643130001245249569260194198086293577264106776086073118628797930330042173274303659476676889918917766591237811681723500838692661594553028430445017226009770522372705831840671019488338535994251398772744900028576448798216159451317997049754601105030799118968482617789072694040488809827877325608903311950358417202814896682941745816657008013846382063708569015990195786831750845677742270062700139388160481885650841398514351861855196670519715642299827690331482238939277565546441128698130952849953851687400447236221236618031932882728824778029223747501079510691957555157856162950661336271113334171698385670347960489418219411108695190711439554315490178702201121218793227273498257724172021173738525348793846110748638653577632156119274452298520697420200675841099981566104264943296658593866787192693720829633165228014720919507605588478562869849112100616193406130168989282971076096412513277398604455843113386414940708856672409149792990726341999759944891007671119848910378769785359886819799709296043005240553826889167623441882994806327436289999495917304469907033795385697973496397480527280717155933560394222760105810522306922726700477465188227765364780840375455450818304518788858953985893381261278112124457459299272019311252651326374412308106895282888113523698965997930381798394209817202859211211988024774734744051706774812433151201256460526484344477520327727865358612865543288806136165453660555083567331538579245070722989605180377818552871467319460694231857013008961889213947904262895505102625753554634266857014656654721036080951754508895248792884443578726464867712983887744990893938420561851775507366273187018834666878257185362234347106923992376372942819066471977438336892561247890482400578300550884489102213648986484677530760460328218157636015970575306867807164037263879984068582932260438966092475428671285598752765613451905533955933522067494718427980607278722716854229219279712849336715529583239368794109642533833155854113863851571629531315171865411773717680258565140638311120964755032594588705907685033900724044788964368269544924743539178149141217742314784577789815523013089168214700381581314106755608099027014478149700858242869521982438275756783099972875379967253703714035533663745124414321981538917315336828208371580307028998667882075479977444742723742642633295867097389343399516624412999659849663189751448222078288857166566351885531130484433047230520047048687588775314376218821735930751578016040149009270000368710533048099776133273222293526745299466136777549726097633200733199893223118179202295955961208606272155995684424781963877337903337173866088138880672903395500103852230991948489425214894895763007535019062404881700426418477392225578375178790896302112767692842940224419340439614656481001707125922344147294479412699435114616409755209143793513846050343758159217654275234210704166825484344919292393535481830692907017943887114459275730642489659765106182639262969844518029098796740414196841004120032551335786946657680417519227549239887333906163520958866730087267206197225195199091003597299332557644492353573032092295317477263811933336882443561675666740097537226937267631216371240512863044959737287274306121486023052565458866643720672882470926964529217260993269306743302209674273218227858061019975762988479745524183866081949567138252930254226141198984221535639731279327350364764360375233230890669273953488525457335969687183037154827656638287180489945538605656781491844505902242907712835798406690254034537492151602066076428712338836652314784893605863994859178032994783593784639701637172592852586068809482052387526352830276059311739420509797822758889294823665340646185413150211469018728463868603816618467499084179347567461382954951807804806906701079491865976064550557265199388186812451494542478651159387848713767438067677235400957867200029523988845995276658912720783435611287386833128311183507618098637556913514160871762804407213908571975345072147171544439323826048875899805846205178583579626835480331763160789565466188204413528526968563061040109775684048386546326452758732282368485075217382723184340634312758024227633712725568675440353142530631269254536121985250588646775078297598782404634473191333666453113612827814006400542009350535549064889153196242316127372338298642149605084558681769747410628061586373182989385524484325947003657220189749055527479536291837507770477534478684824385481340880408141533141074981410431701053492075932923971300986399786646122173080961955703844539673059326619198342347913567513636828454082196029187417961603749729183380259437666872876730703271974225238579799564776519701035942538361680354762755343152020922479856393086205647197051168610835965780924637429128236915988414777504422605939360122033922870445577863907435502268757132535219659162576007371095519207786148545114090417720364790162795540198086502664049185367400785429737762606507653555715690349638217108573659789700684112800506489944823799775172471244432298978925073925212837505327272854548077931419052633874363194120813097042632241482404473500016864783096541865166014427587691041371870083362378036746375996897883551299528168452661298032524854332376704501382319860347820718612579326357406585515764042754485198778001190081185094596256498604098863101869006391591356403942655791235783505371184421920563245443556147263087809162776627396588751013983181960062411701522110739782800689912195035421455395631383795257772672968870140899186612879347998865894815149189477400832277527394952764784888101830290387521064954432098438631034246498492453799186147404853929941577365294533242624289403889957090656714274073181539977746393449592340191440180048306759337957998713868905849442816371336937480400173413064576674503281198359169470116243562917733577716807319155492216352370155618535902854256156627859274125325374497174109247889654677776968833105619530937358330258699193390384015790452738893542641734170543869150909943156589712666490356631634145044251928400270160882461347232828752755213845153586982569156750077580677393913073880503167813016174872599870979173406863433779829385293790264879541874332678057725825327075759404058086738279934193743582512048911707854112007184302314534066630028864604741292905958013977634093574996951296790331570483974158213198985226860932677024101576046961361825248759607612657075606978830036840897447832213919350982806117714086733228562495449156124849893465534901512018519262180790230022156236558133572154169329461245850854857784797933604445199191919923940823720368413810723051388275697010235735464289577479065780728689667436645665134063956671803359222171408501230213359040452152993855947370334626846683687378740179786358414562925043155220842345350340961015701839990810851495178129812314511432860171742939182178984904013137337844604123210109330751068443799569243258266964285372950322853524817066917001748082684356443562102588767568356150507347091822361955210010067012806380232662335175103656876310370835134637779360389814701932847121645132779438809431036064448744880919594157690100898104581528931709612623871849060321654806141086891833015887502530992895426584596533975919723060538537837449703572385044515679609440797127810463717143145225894974626260335146198015679387305632889834228354195707962316931542485041533913873199258124414965070155665088537603390552071291880976600498645896675732251984929610577214180124690952344219247853849018717009956354797725097642647489405393203933603436412977599966174946301597839362637592302154442519062485580515329607856312873492221407882297842832726540655683352067745398083615449088521070733404479223873066388138459410025242381413101310146483222690896015744031443453145257073937414131152029390685219852789838527093308349755229052262916041532062000337120935901390419641778545569464543892613648098890602184815284762958474421922575494119430032548030641393666563504793242302849548712572848102280856999154465844945830397536453391005959034730548494944537089775559491872669010508179659545858125794473879926396948137939881356588939754954492956504154269902638589585655375937361072029453902661125200866241101851890752185200836747116429821809712083366379882840802089334536517353716890116766541300811559399864568572124856975112342641159617040872087668107060048475950726726674363968245986809118439275470038404283307159419562769551686308196931698046921295365483830642997125206334459661001067509794825581523488694640524559563529146975527476499596085522380852370371591553327604081271875254456840330866443448377982602397409565141624107239141799094414183922471311612626448386148746654657126100063138920788954545488437446198047043343291613076359940019471958599987800156410509701575670578264944323549260736376338854425815180110204375542208353953238512962295481870630470813847753987963463082709559874099902386763080358166697410024391401920952941982700999241711699629016585258712175973799266974446572243370013217389692844024194208419413471752909960800808167868923395097179365013541868225857029835183007481750115918963451739952427314878798468208562692225145056675704463279304812557081081186215105719823502286916397604817084243901377774724645032305645831336885080635682816314163164305245324544118456572362803097319368334558292967832772816308490397626810195975788851582789764963854859968048550994025311917447181926904919411025669149888683235013260681809396743592703049478944422966941542114511917755517759030737042967872693411034921142907395676202320798414417457374820614168346099122611639546345127823061234892270699864724397454810268065683437776746781956472545635769660423960214212154491711650518579251836551163285130683142527868440013245230082580659139209177331312846447363710452249555747212141798277679619044628737415907169652923113973769272019976072615164230971763981676427509297736806607340776404499311096244108968449241480989303354051267472255231613144618043780005960744943724357316003810198941443890116188811226336122602621306530032192271062542202729540405722738707611614015476520052121194401152213893966177703781348695794101785457771215701125892203257916646568501592862959281663786580145259109046969470024772464020157712881969853990721613720337516169831952619839945713616884982332665813067637606132923515096962171818404310426070064291654990353465829584571270702375825226567746441372036592342348453453596195665685675771582223057821931427344148352273723847810822464277923453443158565512457211153390713871675798144420916536666155054729424455388939782267860805564108454553860595271989605666590287034482595229084620576243730244838613240022831514844621199384004442075976886677631432219321864966901008638076128709538766377130824774527511089698072926245468712494091352462304613122395901143361387398779405166437469200972050423807727632492819323450807010882006754511018142174771181659676911136700963363999215632309156178635394455914581628847955868646937038615683155891856722330021213216584614456890316354378894031176238189410660265892520432468599578689279754886687798128487863031305655104170897930866590841001701696402665426785408342046366298088672259639133064809998672089729282884666537365971470047439999825891332059179985257121960662317810129207466214721496058694090863365812811227293734149871262614492007807442529991387635277166107887850382110289142644909930586225988490845165812927895722573668880013757219936788087625614432452673869345209308421966726002971911008558314589608441525198392231054808860963847453496594348417038266981677514861602220777535613214954827233528498991565577363510559997261363485215430071504394215900376796120446461763419856079167074891469606207698702834651471784956917205102086212795352088126169465477825379909826985142594828899389923807960103815934733683611671092450152990308759351194941930253252736879603288429171417538952044988500992456927609437581351106427291038506154935307721932573775925888949355559900595759045422517839556173226698296339634527833535060554369142354969223546956167720124578299513764971915438270419853870159336336862039895690748637646320811005357981595478237183813105476014873016709200633511285712476337397106967753419346333949544168659352298193205018419038057168714334898239188824611870878534898701079041807560995285618392360991313989705251353709017557206447629610372029329598936762832310863128077326488561636847932126570053192861023304269868188203460306999958160214350189817808891693849852188146930583723185301595204481782180717599125406827624902831684597609569979931174492956698216393228341762534792784854092691494465930833718171445495796528620386798881404581828531481305092464291459469904926797624587142013212851972511927968772943306824824213775259649491945418152559871424158089675288403290947385576065458381499435153937480038491064053836748869269349812478442184807442660183447640405596039114116117121476112225202561484947419441494965078040693884816094079438746839774242342688224105159381179715639215765116949880211855991437293981393092318046567329300531248347394597640476630262971279188762669394314668887993442190269443912652283691411498562763181467736917689384767688426001314787862720320361059713985831099340502992968493361987117170888217095139012493903865712709532504379815983600002509956303523262638260542485483367676174127895639246343779216824975173751574416682875627729243558410552222522059642028031307433660000550569252096142341564145010189282127758690500574159276053727740677097258522998908278386502849817713239309977880479269306552837309769741563298003510228021890295099142212197922607275530156382316981273190204726672928109103172055972443960651823829230648123708886624634535519595393760812475217555504371542085296198196263103679871137347781500062209822309722784575944018713655986332028202955144629025623150955067291698404536390904210759642897691757466631590768081992412590296239771307416752263054543464137218385864661273852664602404744045886408811864510791151295504915612064936496902811129896452968634862109163350985959242923215703280348485582871363726354437209797301068703835617823415104763899705590195971005676616805819452463612134229971325552509266085866202129488546171211658458001501451528694292965817983676440224271996621992519168932040028605632606103772908812456965211191594548251255282113265851975842455542247563135423780421122639642409873740219838558398188769237831250672465207582254469021059574313037389478494624429408000679471409423039904133299816447797021740769502341648195680679461547290591955596614345426552488482716723495802413198821679235153604857920572762196907426620430472460630587573644547372081072391636259501450448666949368370517531537605099468766206903040682783877627649238796959178755563279697906600308331437387365206004314358046139730813467433324550760836185640113685835780174245512723181862859402145524816194798320238519293063603874510021127312763469944315238933832060759757579519864945252854423967502282196590881860532284784014505188435493648265423869289597454020217401868815561095954311827960402121261084689321141095096058006264983388864616008827448523136937545565156193228224424080874339315477272835423080767495723962524729547984346006613161858976447852996809505928858514509448498984032449582745997211939983326297590636305286521043459601433703554973702802896196227149820606401480046384727402230094550127659826077418747750180773269672825152145619642623442894144497943834666237180989012712588084165189592645296636237567649360688302523116723840369722285114333769430385897615576319281637874950646446099724451943934152627518176082904388545168604812046063279803272253110072740150577974885632961380256384153288496708131361269542426854337686604268613008247775768329271911661445457678999984414454147984789427637156137919816555934652510947771741353702853543560315889427922856478482800935533645463289587964465626782763531855374639387284403331816777753557066480304208166771599516326198698573474932688725824156785497953008095686849640957172922427038118793903252867721590867001588284218408959193459120191051305626291923728750258693128393501982104127992083590505389302170561064346794638215163406587946853588421727805978731783415218104381900470508645763174444625586273503219762440480659631709308165131942258743691198950731490188127729357204518440144104996060464374339296582820844310527842420250993324185088220425220647180247668803868673781181583589148355962100977316734875468509350440642417692219317611361401154203319566033700303688873986350422826907031478400288358290591989345811646883629845726466057113627695366446537878207516260392417237384682390364872901192921475785876801169306831110883056952560482341831874098775174622127356496499365590684723021087555944500745009747865046897394935235425382991773927627996559262401458660608085436632204134693976802006432721275593636542403555856018521280475014140089406756577251852699098272122293585342100139985710246516633508398711802421179502094496285893884966873501271400890718310114092834197941434041191268998528921184442616105314215789223079335044468862272379866656041395401228290131356206207358957415270728299068969076646960204620974115381440429272119330862385788979545486230921151163103213129473331566633249482223866379172093780349981559141615059510516301679755509706508162226299936922235845322025566714611101435581787885402556943505975637475226918601612037946345199267472345877845001899990329729704954598420249823524132387238227059626943109238980685441919419325476059069610007451319356990074552492321098570271994236316422811474135520182450047250479315699230361960387608144093564800595093380707951723917553842421736903072444716997686409116710345459026924433485736730948521796855981560806575753299525612450992995656189299107950698433831721570438912152534190470025990950634710358595245832795153269982994912946302833702924878321320558921225151729420373005032474159920529253870191180145215378790244974024529488142903021704685555369905608742018372206453527665324506499859457941640351540879548672537302372140989629353648841713593745694258916927952811418601373720214757639417110507963027269424002559114078040818409823624445172915752268579275688466520713218320439773512715665254987854896238092269873759305527558156720515544169515616133650024224307045030544376821253579007595061272935283544104094799769489238828728472390845398391541138016628934296677342607253084326930826233154387827049828577622136421160205227087813709079334815329163838126821175041778913008600788048164039118727303401376477309979607239285162973902472606863546407043951725501259533900001022506410724576122869060140057420881368782466027053777281999142383365968736339629753547349469631243613959108845010965560008154071768512229280363651473104178008325596627921648951462513317872730280662620231120696830983808504714460452060010631214520875123046478664218328417362048536535378119179872973450805012192944206039536741676597551979456482893137865199978118920593694667023640464162412438748002214772453909960970671113336469101111124881445190003175237853267597248589983689092922290303078314617338364253976035834314203800508309654464202239705528481710058767392209043102571657157026982208279535416744331234527193959358764652939242242974254403888346308616628825769959280983789430109221616373899471740132847780805356672190045902128427881649454082940897805398035666317096383141927025965026265679979049764841951204269965665619936333063494094821062378765071481289629462944225695010858169582163665447611970524892501670810622559362594723980801295015097679599810186911056838155908678279986107269038726065511949733424782189862584267757807574041359261755287891398179366610220780663296145949762559500766038710360643141912629012931293957383906857814983423644494761104851116348504249892491298403161011827918242435745656388844117727956216839751598103807751845619530550609648930881017795629972811241403655828088891885183922045668442445742199909355891924567885903091210920987059577010908489114784442197639541160198509285120788863606359713491144144731482399391869477808893266801564175785828654456571152666913720957626366092494740611650924449604357841569936619597634166445359998772434096927015412256690998912537081192208116590450045147905306188551392740142972457648256696430282909219687034899107895095619668195736800822572331586193997657258196955512434587846439741463343608329420560494495693681114204349737362205470329019344369133972121945486780174032897524373067230147859050580178116200441342897989248137183329117938614731746884534528730769125984115258253799926932684248847239523404331536846892134937020517848130726564878147604114566812534830635518212837599686098969743166266936584655629942378257882842711133364949913765243791401154655714006129572667655585492978131027001285743242363962764063495315711925358916540040258516353127343346262925891175087158574278559823964080611938182100808474444892751488175350797906629168153801182796352874481379705574742438322547757577485695058883254912060628370884065042657989280858211032404559319405455707164927162846202636341339599009186708870308218732142373821588661459207796103611986080077239882350945809502047307110942641184064123639605414418372503281814763539937624089615151700448469425115001963753063097562907732818670586375341569727859391285730690732222780393695571381604657487204223121184453538245726998670918973716659980715802770185211072878081549926718609463596086699122969603599104405641900880177471522380737254283528177085066100042000074332641358586471162587704540201647440521337939375384601903053501090282339316677838358707556309814121219576238516835142099331248954885015351663205150958852806554732470953666382378993721651963089878421268178710210176323989433202738970200564366699045336646214953673259837315506794149645840905883386484188243010059368496205249612715982379023127187880870080645619340789704726517203654375713872852333887700543666724600195108863301422222313032548531865975686298193576220233143411185570959668697820301094246756652913358245750328188023166012377066666688320355391400292228276030851757328409654137423882196802766683953864374437877282265328951260205236512983735851759360544344109797091685736680954644159196942792770311548881710368832200334140257033370089305414070801519714422766369673511126366891517816844011687163874504830281219552924857816056052259967113342605228394457427643341878591209854208047327808604947318098219060185836636043063135316361241876615065256698638811754245507104212060976371855962384458964707520576592613558510235642653247017727650825410517509114100910474408493830791083321365235556461640019596516534238153634058435628237846104140461049498629712996870890928207156950975124131843635594821740120557275156000716207933602749141428852634929355356531824785101813948769859759691789389879939840093552676885008279307714155203232480339123324494952375434920881726809013961094656222584392987493697808160225513133946897569651704385214475574032972471942723024215546757699683667340737316676638199170269882475633120805383947638355432836817929470934275633312611718708675258833585722153200486036373273567781026653696019975377410690993323766499710628693383501142732111841752126636226444957514422795951916080429344032836398653679986768837664323614371800966458564844352596912146163949348569543523571383643574216228484663388655192890813067489781854060604415858799698054425842278793265511088197196164269426492209553793446174880357808478410182021810628691401209811163204740633921234779388099040875854782495190597341704401181846243277688903985897546293803246574448555218610620950313747516434213559755146529718721026278578065576844708938009787477941565025329446990076350247291246996471831507767390462952585300521840432151140312513348078824767046192952160222376809353202447656342862650972673342329260244991557674431037947217197066191550342497165905027756626763698708620434227172502543180167103751468740972395873867048182295892294300243788479681556406465205426547404901976895251763639929016960436171584321933670415557161275785989309146880137974666229583548609750179516747370080832875509595467649825814723741161500932571659739774993328703971024896900151682163778654089151807704559487605701768668244693078490192987098098000407981109486650947764559685622227418453011099820124783355087761183917118388474150801867811815014491137646662710048951922463360627212914596560427023394668126104929145498193774231909145435123256075121913455595145362704815121950005234165309934704130381947851591792733680810371955416182241896357966830529712014286749454219992026219468350119610463813312918099897062177428093008908177859671687995783765486468896796683638161603028467730600927392557265059024092256393039550567099137809918009275717025124787412913213632164565204690449134122606330733884800680810661880922836634378370082494753386402924031993471396813013238727171850358627020921784535928973994967451249727635957916488210759184981129491017113747924560488061317215703667270378995057103512788937013076973865240711273166214751448729394435022731741960994002407553321127119783257737579016941951763965238289782149574607863477600529210355096098339156587129724703657185520636446825609177250692602351283449164068415622466982645549628958329570177052309499203953459356074581629985803916281600499720705928847828522959225164104461306688176802026196159171058673658113074256562834071511298392109021654227144424574671300892275848656262219114233763628605290859070403156537766992364037872970923584451474984641774469173115460888109177358410033136484767112658031927696990705376085058594885069542923185669933564821879071310908316531843780087877878820729121890279083959036064054639736783618368969157968668742167926415349531981508534976238997577561137676808236740126190228497715609461243711791679344970952005199279518505416257853704692279697274243188754160435204582055331133301809258729228033677171376026910260366926714723174498642861280239192635221496232698149905342411188922521396195581379011307765340170181741720262038464119165612872519618999537919143428285241768548493594492143279509873434788287383253535768988392767291609272914987039853458058163236877875117021386323601091023535391854550975246884077027672122280209655132132747988853171305395538781166032909658494880708763838709383421052600585380416386365432892357579685322438108706145751407301509552578512836225323118682123393542205500491495955620597904675361417185445835551370660099012671303975104151527612741071172096724289866759343646667224256693320873692456362725285334030360510074025134731084979351634252432854446820639711582014271794348343167124181563964089144775883393495850943790487435967661553341982380970429392831957782493865171544040164365057160043766273559552038489368004457722609974581137646416260826545482129832444705785212777995488419364221396549732592486074759972452496575869703091676269969913371344004725440837458002423463239693174254580661758640359024141753531899452154441044834113084305585124364456298503884742153174555867045849557948513971706965868407588750794210401385852147541867324505304387560456222995885378375016533249689328509600784651266908570528753189224969691145001138259009693440255454733276564223883105213679424959132248869240176861141612435259817466002683931668177100980814765554812357807494838302595347988386511871132974276345241205959576847505880389889035230186991365556359189522965810977962375592481123422998403183599401104847143134351878025087268959466747968609120929140307493891430531040370091574566470104585586391094049172208723351230539312078985255886400610604710175783004475234066588468991805390364765349656907509374027233810797824523892579050373218486228797281206835187000739670619227636376665093845528104853774845967636581754681171185466909389463056297041296099453517846752875259248343123386225758552530901079047144240709301726640057165848512597810824476628022477180370990264323977841349235191590810771799366801089307108256585605046879800272802021541815363846306441251554925717890941007754065647720734524362243634567059947058989698792697587070783322534643096147616171379201080354497928243012590786591208791419512184120118080730935096851787650394495335542299619975895451448988222035584106025710624788300881654365956204529060799711209866511948902275650615583872178369279768896404476397679790280004859388557223302903398323562568385108200975254988027599957631930135846764499696255862054935845057203446184623999641288304108145887942879010371879833573828698742885893980038220951511613827936984835837789484120722892774801232923570167867469836257715246560289065691568286817866990179073199748418585852990800977805325717865226930171081659618969951758579594566332525183684775656752506974562565071630738237280161818896754226643943222008065823920627820980718332464988025856605427258612883906438725427028288973489458002498224017682641285626461440834598709638796590276890232254239505146253484747091397756894098567027092539548766365488135158781657904644802006556036037688423455582561310475820382391803373635725570326251736926229470657422853093619773272102837905420103916732822765611298255600172995041990454043276856329119559696239395780932139082343414895537087590437874943002437742749247678555802442348881773875960171906813913076464682302744370465217402429013559678126670220551036620790462109706982733790671080829637342903356758818398747144697071112886063793801296090777058575946749757785728625667230692465450468407458656690198384761194658601655839677009033007361290405659032084495421070476700721158449482916037649547786623088121443230772105018844354613669293241710816959480696381856917712126300226111437883420210553543303584319452600333797387524300559955218666115506020784483401130719507480558595134444650029079714598162340149544370277010141039242665274065585053158659143635905394143982150165073511462415254905135960838786813367603733302627294496154390719802894529397064757810407306293592780459478648042917276747357218635709758772407682324204671717185090256494610897696850637792351474090287157059548849130859358710553220478046790536639938465385137979256253859367326417971448956873129932087510492538294674857263598216714670812756011944585322170206350100237284536904116629139420009437876983429756146207184404869390710862750105926568350875347844814839574914009414284669414710541538377426747653117273040421830930198571545266177967204416751749740269411041930514993148981152266542756156329143959316388401007627900853935277710879604390619483921329531770622304195561815528197905498327250258209102398505422145335430675255745122738992098694984170367652508474309599357968239070080371326799318981752616928767579349013655858717056682935981585199835170940767175239765021907054517288569374154657343794388539561771305581185986818512926357725242742442580927141578635705080897558065639956336778173137891781765346530802742646486026196788432125014798922301004723081630404737035607824928182800807604464381706012543584883259548723460799527882300836514733896982396422909769908707258837855022204690138080240674432000790237036232691484547291677734001951994784703159212640788321656291628938308838959244888621583282506355105697791222249363397395253080858229759783602637552239549736236746456031555159388253791519953768036378432444788117842213985183914560315060878797331317459786455984973824154793665564032700589247146512659599825585119385710146215925348816661898086312245171905265417529660817603607977643062004301253819028723799189853228938298005297332998310143639258884979183622666397105289545977606718197620448219082990478929548011511889003805330323400173347408768332531219318685143497242825233660691339466843684593772951115033105409058741042188070581499272393200162512994019109725001622220796059868740117745573206328805272926264615955726562187967269995382650621334159647854931003016325791383020317709086982847580705790825135912636552683201224156728699095975689695153576210745117449934520280415876655947920073966894832051142768726012034784314213258239515059568275044412487885095911020277618753052087599779954559715306306869853462385776906722680087904232618093886228111652540205418001210908555981997768158460357116833036004847630187842279599079084181995470015751396769207373769418142135835947054486882141264160929319168136829857549359583118910987609534025142810751306134438801227435485372933578747917358283592874428065668322930281157554242347868433912503438003964053881367661360760899436214724741990882277142595152455429005249077023694542258008526791145136454336126364874444044923448268686812181134276361488245072034433205402455457375207731205786060268275463106288235324088225650169464100833298889098054518522580398845575162518858247999005517959841978937509529447673844530072881519113736642787596870374446266628654184019704054584353933994762721273204812322706639311694482594480245779625543947968279980776383040396756933983060247676638146142926357950058828117269960509140864595965774280626035751982800623389368338838766624138850027038988993247539457722382531990516186239721331176075491789076335269547280317229468687994951129307615520102689545845990527294937960389364248256203416867891088503933943736983515405801283855192962439947000969358454768750081728892130175849650774807835342887175343946925516138930544618527768310238252286618656026048957394731124913296187873380441874589990298173029540133607447938434945566331609818076838373305675194997979817312547148720509518794879160044735883076495444983776266005020986746449147915899598845865756520802505534420752133099285580780802227864695075864072512650538322870457562768893159646341128507511475427189294665816615933280599317009234028242443309123841659716253849857736726161588135713599785870176609800682275729570227803104485028428214073075349958214686132668899675486453700192019804053687052670248626785078912383056870852113105722547619304108434830668844894313453036079191911781085195765079383099688940803166346411453601191621771591845671194535377202848339364347915073949946260497350174414109335673436311042747613275327351982329638185807975839291925389567317545715529936557859463824760711770531977047643217459775981980548182676460405141956265774620487103123736540647677549098196590514347343692391139929850447042614081662486034483825739981380677255250781364492110985066211049997508608564996291351788919919811739589660424720309845941893218764415641027351662076123670142035635960957916967640044713574586730408851763200835029473539775167647881708550985624989949712982217789365994303522670596095961081270960082628024317178249690902744893537125693573664585876988752184453300734956203094404944431728869895039230420615502076543802232656451976599512511070623668279197999805248680051603284327443902385328907380291607155860846110501278425406094797239410214858625305551258687859956774977166746418525081658142890073518488576493322253799472559854991342761446638594501924724848623361193173496328028358995282573209379719966291465773322486321757601721592821362290563807126919697593624397505972589290927512320500338177497285709067196339010292049674584127488838048654350556471597025763292373067815322225092441847321370717585693206862887593810522171105557009303727698365898673603243830791245853643013077968436588859316748679116825222907524864439460614547731879597238659904109236481727392606048450236951511841461634807733083965275364428973764504908769049171099609376245461492578378663926244143629952180648870351428108825064655813183420898687027098241146981547113234203213624248533113578191144640036709081209873716962289797245253428491261721331223946745761042278813563236580636798115671214698555369814534105071053681267268635353054309949579766791163341047320096864703058354109486274559879407032163905985349561289008395294217733387429212119449466690485651886065299751717943796246147194003530222836757200675287095781896680013050180296391381904608258847745125663893345972698253588794338389685101236917207636868210977000877546199863526340338451461285387827725385912484199888656807011137962821815464152658245554776121330556316748333959585115874405642865766258758353549402205922766329714078508945384509726525715183040090052150266164844148232811798134150115477735799484771968970065523042029075520101209373548965823173552233316245581537107904611278028323440020615014881083206506521293688603550943828143969570933055226011387614928556673940642117235716579788383396056102441038307061463613401390419311629131639810538299483322071495381519878672145040410240718072461891263776745647455094615325396626040881274401155572716590038696701502934767677950618110876252384611670942542440700361703366051566628325517028762969413988257527342386371145052485462798225023451477964876305752862688095249727591850891124665903187470854321926920498609206773626046795454228580023951918599338840848704659373114355804692210228184113189308935674456944241318348471289759406688656263245350445834501836531055952530436880145518951876472964237643907777967086993158026640876006749673850807288197589274905357672946716384856112571779688857064983684584948605677770701820220687034291200571843978153824283640061753851812759439573007028942240914714354579103541957972628204449957495096345541773664956199736837270318896784962409816064224419294809926652563811209380587764558462481545383705923045950060517176769143579437778518547477192245975854438568241377419090985926807466164435466499718546637257163751351330346409119414651440646860547509866913454510070153953025801180774322380545083469752736855239927955954030059651713304503174649253258755434500808520110503850530648378160148923767683271768695194339748529856418044497787304034359059523854108575842971022980145288322938736212308903136595822499227510172621760461041935323691536260756669619419415309356487744940781199676898849562039829571834752669511057399760946168766756492949750023957384330219473640875064236993194547201124955485427579981573248573217374168930632817118097148492450858650124162765441139336041362343365228744928296249110325388055820361523279143393286334023948422125179963546147217337805269632039289695292993927688369751284418500346985225604392096984235585367190059207870424426060153662042523804537085935891811308505513246569946815378226980908483603102265650743640095677008481888716380577645131952341730118315651745207410990294132032827377750266341545148174381674721984628790977589665724516002066524938431255439913708513935251991562915387398782833849013202506962406703441870493604186500653943488302461090949503410628049033800201049464904335998472005147252799636023381082342581957505827923310463024386233169785336542371279614135953739425078359526647229092851692865046069347268336956056265698754228554629997660656751772075120992580855709359124431497634594792287701405550727179026637333270049907407001682494025292756805328980424863455745434063196596442429012857448029561298475302840724968229776196086211030166271770340741534436405887419231798092278515404495644490270252653713004260191798601033961028984120783493212640285070658777160320468612368335421629411188058905587186412974531800483900195069465093911799658331277875901389100618524839309962855537782279037459043937898329115295253994931358979125649732071618668052909565011210270179541806110715277242132499428768622049127272809978930141922780840742638537566613278924059757766365874498220272964809762380290569249722620459183688661844609777591780907682968708014184126747263374931752239058394858975255456439379358943188472998073947755629129685290213827647513548650639646538772560899766999327880651057717290494469740527306470774664799782964034301839614822158579564724387781619772729464584557916571366814992694316784919094227307656700603986908360266993169673053058265384707794123923637695004788838213255511361883605181248226283194408662920847204199359008085840232052343791446050857136687863968413164827821587547075687176626883504072585925926227712551329164431968637187085532758260137369274638142146485926369027410540973188652727076862674450347639907406888744125808646460144443369633242943897652701385086218774625957880883434338688974486587798650118235487603759676257816359111945340705183556153024058340085069147090161471377813052421563636668059541967507788789652046742460403449024109082826402363795888265471116263481521017957695668672667753264652318472885380648059508891447887489227436173079026191563094545200003250847564273497258642601125071392144273345093409076746953270008799067568017995755593315117500502594179939734237424293628658511097502320716621433088384501986852586254522266623913220192110525915189392188354151038527086753028792426684522008831522609085571230290745450207102239051349858461708129878708441336856365172883926935576384401931144786207138965164173409597721364989925037740304937435181981497997964401748262487063540719327532638406290789042811141429548889061474952862094713265952628443962559760662456433444402240126731860292264632207832934539263439905771228762243336135656125333549466569488855943469101857528834301488672264644379246956570403326915691015825755474709996263991632459956802386496209572809017785327294925622165627256845131585482080126427406962253634529338011182651078920681220465833519945242926139261367232984558288706058463665083510153883920099027139619368390989282179034747918180856759479895094497346828618078775573102049695896346327827055581726635746369816182257746786194246472085657851206279634200919337306339519312639870079888785225359922546806817943739156437296888921210169751916360664854844150615033597519184805299374546074491258938385116931704099628197872818645007402127094650623219597351713913743876783407207444647007920310999109100048407025445117316653579543081033422373331748780472388613251735280787208700815487771117996821840970652031795729009935602465944770810781951846007183989800272480030567759427523705280644347164074089710803368254163411938718575451963866252162206420948992226561078431759407980473013842659456847240229722625681061192006583913284203431974248755533489950123033448916294495140865617449382138253888989258264159618161833192501180948870980564735258406986782758481517697427913807448172352727980589169055228071745762525991496856127264586268681547232287059082042366334873226200052904122681448883882151844249942880352540570454279486648865721131297364444565064025596565059412734776445036314332051321780572487734068613533382327817784052738399795979040472792586925993882213048593251107941840360642284476786363754808602586095962055550797033031778666297074564639929439373791272047188299932309117821399974112947646846281774913871462280138380391030801314286320936180215118434188492222882315305074130773183672959791865624013079899772724377071116227457642989383583324679483523855867248236721108524031997667752961567771142108856239947754065382016698449364179555191031881831437414834796533030458155540828149963629769632099808879013109846368290844372088048827486233739162796663340434195731105493191486738525696635794828694703754622197584333756815130509869185261670123149918892821579537985593254754180999751079538228764164147159596196397351138983381591633039771062908129369419724031014985460882530959144070826347055422853288560145601082149126220846801384713778119735869698070625036302833912482700454668796153247011540046857751197107297426784637246332037084173111973829871347265217427916211596255109444039571628125796597919531922112608836305368428615941315983597237969744437690024966835348417377128884946214211261825532899403703340242136849342391188687710939899164917697029718579334033036955903866782356841209551959494709853278422689069298656874723006543124176546896111269763811715167791156410610383412226192744124332316598733299429806696138351355732079856475176389105149344021291377517338825882456349029365419077597635200888112256309587968885624740904772241245045249749838739393697408231857010306464781050332737313767239417305121059410993289356415847894160209261736478809243839140974116351469316828569188836979057403228232432765076769474275656279167542058071904809400309429618921619737957534829658977593443987767418519788422405125113556469869364283125484966361181148668623793181149870552996284151267901795815966343353165143908307765351342983412880348133947197772604434008731920672378983329085685120200163003381956725272843612058789783537324696172899958660578004168557615010114719094151290560560635066874886588335066464918596230852114192009609570912366946319730909540823181011278384100415522269545264157755999789933992936618589751595305172613009840846366947597894101970148171456576126452565007444680307867320135780619120479683684292042455118005617512179936896927308780764462316610425281769784990011543980689269574493848452605276183108345271900141249328531539344954994401152838082864676749059605732660181072024382302368834230401845411647980315508766757710637503755373758891186916035688998183146733598534684489846519895675074732420755899783986280184904300996606322408776853137989706275154865303130907540896504731257361295170388258002014017663400624267764400273430087875363944432301568139541933869760813655049879393568574389575242785404962793181901378225900520657526370827974481523919271518004409815997049551084956001327538800928175142439963229075621241432543168612421367237344601010073881392391472210134204286347365900673048158388911533086793286666335394664745878854426970552352896809392828491175093398093659206456063948197941050088120983169611409166841656480088950925570535005011062223149818338518274258792521987225088395405394513260761159312647385145932991894825159130107503714691984890807703356662553809023866880575519908405059379575326530009299504505166499340301471438279478041207004891982100540105894514437624102150763198579001784340621850036934678135566308017276659566568090887558551798635517367451659106872930395704670941060857009959018199956732438851471128905646278762481991260930898009806137814705628393651254473640850201766538561800254540218551672736247613014650175785222173994106433960732659033637115671620799706366375871356609501466533119930782875387872108021611633061671091759465798035441837509823234861911795657995726400772494940066451120961882249550730375445361059315888181514128688884845600194365581575933266354357730540958292084082142864495337316468073535906893594799081592446063252450109890388114718064875316431382310018764088954054315583003284055867067626933200602813244313081445118256862612107347250433080651874080196542055974019662314359585640686103351042226688868897655392761010614236102680439012119261265842542114224922534167029134030182826371215451948934729960918818963771025830975576692161105805204974549508904400682316450175328872537255001051843567165308608647273550294139118610034663331152056522213860169662795966031245511322178952433675749085212740374235109432396515505467621304481466132636225848957229680200564973920713607656034585308574579836257927008894325054042858707453768832489093537414917504534583515196673202620974755494331428016175689780339475032590628401241140147403708660078477714314528116863167699478925046345301721927623383829179784427290050859772195667446973059742886749309380440017691964327062279994949293993842607730281454737620453869249664520286843015833792412510617268042775558431958053913828813792621029782496635334153666019491214739378656000959767292165664596955604362170109306195757269874251422527453670701871143844722760397702317248018452573214511027019643784779981967314316638757480299088812684787410510042794066271574702414886917810379542194183434981969789601516497185251969515488718136603410551773232587943850574414977788758688537244704288508211312569411522407869585825890829891298648704800648907641546510098258056849519634871084473372045774606722987761971785525661468167799979350135166651695048380867202524146756826226357490435687172292424972781803486841616641738380209962161389889868481692080365063362501358950552528191396141832303920581543926949197422228582377074173681543831624669995712634807446599300234761912467427875985533143126736638860742400347408533395259672426747090155063107669496454510469114082242057292620608005722352329224209768781932486140947447017749564017267092286144481756082785817973064551286595408928855592911015218093095432172771716606760073142725252065035965673785479034489043175264080230794183710864503696937346006393156614520208669622231971637913666038814738075504114697133035825791245380608917884014476068671634163883365206989844321698186836479378149345016203524021164006986523162415293583150966851113090283656300050841997651825289856140923602403512698584131676587891499341824133452939757205355161219774130012182462398900054963377433561559683497552233392825020426484889948195744787120205348458037926345491939077848026650093266438411243702909468295816114202761079904011849254879591532825696038881801003492573284015422010914003133916791695538693253811512690685650983340307278530021049331056017654899335279376760960540304272303982891698924823223449060448406732277871808947971002073228659789761519076125946168157837606493731363918515445858410085251876091086144733345799415433425677007714799418807899124406561065916133471442363888234756900303897360590660028008236925515571351037424284207344945543655593367726617396053179094910517222076953171610334153205850800038256735665301795406008151518999492396569771116159544912377218808642513216091244113787990045841765831541403984838851874588123413556541769110548343285392243082819528413046057806667947445822014948461881871959451517861910883106355570186464240006516905188880084233248501263206248240675043694969211658755939741791682484589295696093224519934096158415355820388675729868787660665344879306158402062508359858321626171611761967510703119788724919609398744708034113043647770255526903916342990630696331999397960066738835145508053065100954348427505184681245427073028396049572932793500846991332717546221107625947592120303450676053995089539034993069323907130570491476717258523396299409342817492270553179114830784483124268939483728846719311371646823506872656682774119833581902293698830116081574279910577495775673573823706025864464616534901021162855803140196026489879287717933712004466732258918514070896390092265371618147064000357316223306666376762771968421457085229333317779348576645397382894633703379990401285174794714906970563188154109540423117182041168851168573113786907445744512636437563235655899132202829813571756925396296223954775207841839869090006483981199211096522178280631061850710217615525818973356350974236471083182879048756238956780538176929392355603410496732356119615955289706339620103337849002453707191189806842637963276623891489274889031131919558989483448123324635652956886920471126106458277244962893030674384663196432501134365003957822907051187991380057742507285449632283245689473135556759322712237963664025306423777556495309604270922571549050177360374532734823612926576735102861954183047270711484330383127256651958948387004037392087291845419269081691005339289640759026028757897927732775858017262490881688032090827704074779903693181506316946319956381812866906149355543432247716561640907269651186860788388373988561702860887571403156392075595188371217439063329107501329092026042614680331381480047607927581025194127847409549712175950729520083483800462367547543295251519098887210097568030472174512679791054486707446342150245671379271972526479925224237671283583548337665370254948353210150051698223545838450550776509635202306331293960344212122926620260821001569188709473011712639478137419972784308423657487896623650015983252592277217659582151064423334282898496728447453676680637813334632336406539744031254238585073991175584403175426589379795854167471368049226669496492923490814136004991790723007519128959340982135897257695827980871015318269631960920865684002564621965863767578497892033917663704567757641365034974944659084589933255539789756892250534028516373199994455551164815927516120587669227209619245251753370632427312801448540474617647782401697749116698813595902861952729520368469631800825370831157134266689238283702318831997083566752507960948839970472834942855595438817771256939712301148609423620973645179243032254249672648953913400570120498436350175911998267821438499225725185455342290991509200702266253211400943268735673014801479037859400558361911177549334454261534595833546850738734475500430147891622341013658303479921952675776030682655146546502528769488618650156463610778241417357615161017012801324985554168005548285644069670181470974215454252998657363938849177688218583677064439599488187915873398578884363831383494033538189946668718356720014353774697738389180045154970622674850431493941963433542539422719130101676159568139076604278238719269275189948819621226495743601923152983844493317022435687523045380978747904912495611036997271211789658594724320833107652223777037772017961469628147392071294259678160359246072929706276516147437684250495596662687440303046402001363285437343322997895030040028992775758862548785554519959790822642906529974865006875954900697226943343498369112289100653797324669215624991999044415105350710791144020796260546761480980788235721358519762073803762302941539808813286642952478916541959462745132348997974488338520392753787568490960828495481281728161202133869062133841597964854157804247713608593431474883202264240077180288711824746815123057818059864414919083748880780697662372525885468438387274634511885701911591759950080580814886437894573279074875350383315610677772450723615053008720231571584742647431582797361342181827484635433641771144371990022620101162581873558703372170434065045422620010481483162008191173839658925857647926146402910598037343250086967857660085948981370058932217007149982357629747569211198536202312840856142702160923528602744035389177237009533240360923447739020007763105527806229598065786968770396709937621518713872588411239595226898882763143723863529930553722458696326090378353314750578605756436879721101545252851042405153606684881980456449372051628447769217906538417688299276860245101417487724006001993495412185211842066673288860339581599356874978978985566194097222653005050328078941397357143749008896528621423320932200784418578001398402012502881453733112557706515224205935601525899571082707267931633872261042848281194346891890121521531939472665305178121584148939511871846750017582748175641804086561607672069662276482058540599078563117216206777182699926519997958492754722957982954284196018992750428289539122269601675373125325177564557633141299711640650144426763376991356171848445599570301097335957984308080098752713359500115750289050309478112034789502176848523864266863491025629326976046416322837476202176501503198531411327721014916380556723327451749959104455133771437630833074825803408832161996667878835782636156123189935904814620488130556535084755996466941650398852447913372728388017787600910741523319225558772679838971107457415771796649112476706220914334818540734875886973928810242421345223726737492541130899535070630300382229229012684886070831831809277084291284237478594524174407825217736735129586932830814165995937783427647482042018991611970444630800563649427242464742678397109762763953070290406673839860802797204207561739127319681662011280530975184816837368039013298728213657288372113206945935833880823052752890117744823983027800546662637055962839187854636610180817179511721070717756016568533292022812993182222336162398506795752227480848441729103310468893712042050092338513702645857575373246823066577886715258957569166959538603185687685645317519133933792353660049879793336356287320595051924293521083562088571139646471812803318349612563346112573777086309186548442650901315787092155112662509429941336857235647118961711333208044290821177269152901789544514713960437323671897031621552927259954367082671767194710869454646313879574305788885158918638590895991499141645787617215936646546082521131667007028115955980175147285699024501772805422370278046444885995302113267087020833338237052636223074415571480449868317164096155160054709953850659370141012710253603859156188249572667528713488193546559135137813558166251522588370549461798113656190861471566214680101905762760513221244787632814109448319377476856904742678693714144314331521706619240956652557911186111985033123337902871256601147326710681255424246132489809757025162232961165800253205683690171856857538003263439256680281396190760578653900289739480656781537088342425649109860633874716950590026194123244999331817129708472731500308325891551139449353321950554377098138370604050715538444578201513436378264117823067446312858631784481937913960347621015487437013119829270389975528657392801225743090806220142307848405513848306172965020291849349959298624081761879249555025854055802813714452606521815982738008306866639223749598580754924837197765268598956147426527466203316309232190506633182929359459235490104013966164041315023691786128603802837543907403795128066748924905077717850030771028337248347493782822287896968917831869495237758410040508539136705060004138839123511335496912993255027448730604017226688828757984652285247322294362091762481661128981869416842569116205310121753128428442812178612748603645257519017119465169688427131698102801129176169733461578505858678785519363096951440556095883845363298455933351178152344496658821290805633461056010833367272137198734558728455240834755638222338233760936238626623824177462061807366846867062230920249792736872384343148226973900791851311390267604575612802670763185921310879077546902540104887209068030164263628954380285247503146277811993152448690327235044263757366547509589162054819838172359750141056313472218272258177289828952287392503514906489681235176926404318882673192571216131835303089584078573863752256274512247230572869258302802743889434478067892474506120906669596682919095991265997462672641207087772621930019102639532864628647075660889325044093394343675348579234350277315420831795475044452764886207386496324913234790770285768582014267884552731160432689757031912155885573604702035343158916903987873889046134852248482597023200573436889797122864344073649029468931497830019175787383029868766667217943544412145705723819796108640484081976803024531013503069333325806603567059966241167020226112988584297569599419555642907675418689088036924153341634937674045021361088031206247918287126532204927088548759823254933101273278785072079861465643189183633844136675051706266415445289587589529025147421798532375286218174053833772246390856441510561274997203189058255798164819014796627946214243936429070470933125235410207335540395034671140114066091459629256098401289624140070375684052316807568276796513594301779062796239986404335084733537198284888144867366469187470903130621900113516782944172871471644531580940685085238213313323873625486308251767332610042412155686017786578011674323314681836046212492650440987310446763538593852358081837561223930394466133836748661323742574358193617102674775681206999332255920241228328681449464649576953461153405309775284942380030009803471759411924014007511885543204368769486581957263262824446251245287471925045987832931338234861884830917194444220115803921308856955860150299100714236374082370801956892587993062739172002352492767123051604505254069736266960264003327776531193598681144049330759086651019959462110811689628717077509306641303373917294321133851326360157040820413540403033882771114863924206106839119938979985826629214405163486536581036073024917961229075966943648810691657577493035273673774599185822805140961018672410161829081667450944827477450199156696572591459434983269003569554118959368082137789696003539325726343847959856766183068287706053872228086626397249079081987456471349152552202561854493870163078806516481344896220126468821489008787062253721671027829645611173943637156399484878190532823582175202202217674236611903478694986852244959775411299570978380422200138509037179878833814764411841119790156155083880868873347739738709403801739574668871899385220448395318118056876401751497742056115069544612847748177707488679127641051970405233923220918843289956552168310895537731817823663808333719684435685938740122642416344674929301063837374172581665087629303753077271669596221893930122697943024340077339701720144548336625571028244986303425765331444156902513467537587398679524071721844924339403541575258110241884743984802224893846053921161082733539200991682582101906710868555842751368745282909962767996491141726072918763894591341743008842529105627391071988446106331019862279907882676263509915719809789793948305884362983056778084458337426539733056064014423314312794003961713990529092629533558897873399719097473528230750829078455053828851632788085120143871259698195265577612543409915465322604465818349642782374618739760798934480176620983041619777704074897904781707481333158015032762437375636331208061705606817650540015659242727990296164251915120704389193955431688125984370965300906900885220300548741056376784498402678924262572216363690723575789129076974834189537083862983849061333881310169286228718109276876411247851350149186166523105476744817375990217035704255743872287512953922547497545592916749752909341632750336010765989938058207963702958666761168706899818198181277155406832444491151200271253269061291500396562495946284978572727396204714961760849678403959006654059467832221420098414146934807673905951575794987441642631056364635615129561930480753418548808968888761623674669843037632026043500260715514543306506888130848976585855029081345206616098059690284015981211524310970042703582035146283864798976966222012101788751678962432876072931049693830940958014772062646072106676948872749450962191117229479222321601203985292635067861979818448571760179631462276068064420657066267354625847050222188066327319428584873501945973054935807877086102898420590557813531555471504621020124908784016091574803205245148250220899928237780133189998073845766525840704190075863426947413138913496371070987294777357385870832128577663871912011235875683146080956459688699255674964349417243971485821014126487696254496089823222595700630927508830670642238170013801510383602064294715557272169298594727973832353568982280879195812030385291334092845596490863564303608631472310350428877686254058125525065695613740795894870841956501425086163975134581555443979037380580191187181609247280533131513640254189558038319016512174253500471801056776655531397275923326297238146163555056518811761831796663712170893966405435269495279441113124278871740141134350822804313823318521758205796940471800908907328082996685588490705927802903672514777520568313173890184846009344492497505784651476987019410943286272090404048677702643062292667559986485013005103462030771759903961243909866406156293180029414678192077750104075628493471893278992730563407049776568646745228974546044717747197893529153139828926384062183108948431517775812878339628758425823129204611937634213540972033719095370050714799267732097910759906911834454369120849529788729201075278711579533775407262033408899452777364879540580556547365655530011303919363990992035651383220318677093730738375898507600513564975231168670035169747940023440786165798548172307080569438340446774965991154607082165183818313790267036271264364808016645212102367023656210869613185094706997025590872884694916778438031169223218326026220247487062739592225870153695665524321602279847434453167664333108319363780594365249053079964431207105924313513039844985144785355931295658642989560090662193811750254492227256588277764410433817575361780355018808756880031207571309022225230696777411431516047048082502963527048061060467338733335440457146929144839805251421918731153192005492004974174303540211866889495939991672364170569505366885242700066325454550482558008490018446451644234728538598191731544082244388531518340430106715060658320459953765829874151013672351489567789455114471307980807935934334318087175751214117666301833584021901470358433610628189665545492296440724635530551713524564204759825876169910896061834087632892957494212081072678353290965451914907552124354080667225240300616355179084287006464112712717440072362327293064828891271633439126426358963511651891805384673525183944986387598594217936847921453123702247659558750747062685448580892143620868602361887333783272887261862667647262026196118081843746116534228722146011338645372849237255662752790354547385792818524273155365691644251446901698495799436257096786270925500675069418074664857429383018585602181553165815036676561219361380287630259479655955802562275963877939747046120927626783636012615724457918253893944217278398380447961325757324710927863741016240922913231316318576358718003505239334854243044177240651913234042536830088773160322162907965389337287308159593075866610623318255890505986491706745318108434726125516906292690631235741799032293989453093621034772244296225385724484564931058472799892331908327599694868561872653227460687990011390885760838819299828647732101312405837983384820505376517774223445256175462783614569863833882381524918016527638080370030465850207898510110003910996254639182418731518917919221576640810240286846588298177590625985996938823659706130419945833541835392516476808168129560930371395533807112535210538006564246138486736694210028001083839722964751261291651368366400429472856442159002136679959596162540946772794860059447805183048498316152956873007831964970339369267360210066476413781602897878956891973552313865801395436736316329178294464614916242299362477970866804678951142530314158992640532192112733369881847088833552691092595515544124963150396572012510863207022153934201571287567664435075438097643861140836814581946110701043549359066615815738784796751507443098669325158675417181892664942533236457760403163426986284926977951889653901280709822303497564434417514514528204245103253264052637864148194956679504900355921535356274266040512854809208128939645693047978163942907776396212252902685282705935553378700324543452594455339048504660810252419709614022571058208615437159353035354773329833090483393409833331059120308219146278303491222927352265667790568428537385311643005929768159914279484195949021508823519782523399851355751628174121537700820827676501622106556004409579742461396121406412182983128034509323641801882403736718686986230110726291285306697901992244690751174316652414186710708011151501355511251588712745748272602467675038216874756637938650697133651424315152344345663819563457719563230994415552598496220228564299386581228419608164606870353050033380808970277875068343482003360934590929991368939932429064752870675733607809468493433579010035236761005917146490636782044999651329565692758188802695542779931750376309459536759960739669992783950652126389668791934563372833717085609131872942288262743268593428637205906117065000712458278896591041889339102962775905815223607007460360045662024439067646448817653746950155147061112412631896610412375575284049910124740011349953696743057314412396601036865763646587657144910453008225571695796493695905381736116859953117320801243904268913803506629135714714627252508593391885121388788805187595316668259843987429830316912961871072297968393694018606647650867817404045563425387306457685301621595971096665852822697976312891945450539733105619613873507027779115744602160305129509349556106965536499195308795555232731142477502236694762959880388514230395834143968743611336713290458944128872326977084535305697122967606618675296086607364608472754174170811941465146602478566535204253472099179515590712018469322295408185396296751881291632325110935184602957645923784106646079380583311688403741940877723477390075052274905166414207509929640033989179809338021455819338391590165852550187682352672801552440860031299089805741545985885337727332688901353851605457712123204655906054796639995573135767850025906699552654748679913349870701257426271771610195187901278656155704469397747469210687642893340111727620713987716374327414257696670982574918252466507170469503096081857227645208609885289385816405585352463301178824284049464961661410249285604312378475234184512569506140701939803048802136315056214430563897555561662884628905100144906676351325030079078085541460659732061233409551482196330088779250855920546558433497158225136282295375298301450641526950273598738230668026452887393592694669533055844059596322852816970865564310474940904984872013672643664512193959524321160669250837027787779489086304017315040881733780843220190417037193624401204158774285015434160553122432013448043331232781442108162849259644992221830287063431563280448433488750756259325361271566536254106848107904761478095776711788728340914588596057707357427647470013946294125340112140123649021709645007462745277224213458730229253718743439230779907752110624901612711805109776725680069547361845339044357037862144006948108310572537145786048338371714865065594517985373523073833322816811700731518296818692939981798179723082993147695055455604296770279964774864161081722731096732642446579197430120506312807952436810460706532315689292341225692198472349357924933665966587314253828710246698792882833055925868207462139762581090242528203063879977945162510596800340440478330620181323394119969028589654907322121422186572476406690872276970113641363773766002336673527020042881975962660590626694923737740717268465866816101142246253571961326968687186307980583118113062933672302555354047576572995323846812919493385564032973752024795215120825855160120665376773891349793710698252589802066604770955462397007058662005955239447342757643510534516910237256565586360599364265718919788169246095088639963124650375938536991578141495566391440981117058637367526017011466895844204444296809177376436470333371082729135750630179116524405072689705634786804306009228474835633981396923825120692956551611358927974640066376549471598790109278071096131438837880057082976911458825640259750081812757219416959191859226005365987119616811300516341310730389625003142257770581809668316343438060560659406364981056995298299216885692434569840229668965395457242771671230847714581947542732336488624769039446107165015842910186185157825813381510506577937512252643482785219415404492887035423783117478869677274005039266574483056499234624668633629873301752368858660470332554167506963676707474890505348550720349664801476219390697646343875715697802149696910977479614075089151522788296917412212087956858530612495416976998382902694408253710176690232605807962877462528387101688690456393830637987005423992768504267988100415161206607193533528080631002143674976211363535622995606985221609924047921170277848094910905899768934546522551968485082823880336063715870486618584224033111889050566841404155366238523140061518987285608702666300340845594421841189768856305945730904987543047308175873294293168824872457128401685391237780361349984257645379597323141620456963680952759257588441035486882800644178274052866656198971241131235212901539611715770177098987275310879775802832944675957302380344605428259586485113169577950460107373888403506560405492533983159076169220842856230077492330405225661681704616706974148813419005626962557179198398641057415991257485301844516793987576448427545103059633423057872100312631977689362978479175474604819534827139046867853807953807059282356352833614394023654547858957908869347932817103606223545477307508043149957696597972349530813051784100562924254332475717791714490604088816967288569632752684586541667664749209711462394524947260506413565238369315105673583480653910606520885483304026374944082395943051894890185980693084034128484049110678302564744822351803965794102203265764505079031947668397642403218628802587183960087299271298235976765972314421261944244340863244167259783760921801919317216208057063201621228650690165842771582316446991129009515414513055318403709656276282190919895326573479563200749385425676096467758918942166489941303746856910288188478006534663124887306334611855655494743480958632887234641103837398682620293202428276893977908532779343219105879914577382009775050247227907277562886495851548810696274889791472844123653091179316577263580511418052702487390941432903828726051609518546739752575991792891310454386532157660543024710542665844032687215856825844032324276906411659782555625474033663097067448876734456036033275154276391233428625030707907303608410765980087006241350742833930115562326873173407374941578670267202610447933390444101283335836360022937322164170104827808762899892697695341419395277046042120655641277124624612441485330697792580115308567645959480543974999025053572689171277047083185472885699745712957283844445899835702217645398814878700689139243761136236070150033256078218962070662337513249437930086827786624151603392990657658672984272979386499561058535776474928933580015625824383151494954064620393812450486988857191563037410409298271437094419923789584001134038664426292866221159394187690949425694093488386037002056060946332225078923129704398673256911743145614972621111232214967124524043979102609860266520517515976060276825097247741401663885330689357579657044234845394778377441516274631440299965121369745068763026832208107883077475023223079891367482750717074913206903876713391015838427333194916746778331566321168514519685432339212494647638057903052888760628595878186895832511835731939372973741217815146369322815120253582390659548939506918653073261011908757476551313988781383579467306868711447173411854726923349457738521043279880146632413512646494665090517315493398798566477622959522911467600566112576792792935284041577424863815401233768914287115650116461035190186571251922267078821224359991043433392670230410502168178795743086820868122276497865215218723910930784983396045042449834107370597986307897704730125007277011847746155140592416612337813075633178631085102564522829910027252498694193255526276558079169966473533996473549737054102893137345599725334897897124614232716755400073513476759010098084617994335980714512931000618592217411845419514864072216462551038393604690749468221000998850932790277879552050464775150799889391670949049118554660254640208911815696945589189679490499329897075914899092102988526431888745412791508200155101271898675696833363949476769726967474573748014935132416087570275025359548479358363299297021118516180031443592707580619083955442606978354511975533970588410015724789440672411221774201203238861159921559992194199083196285189585083172177308726849510170711042121594562483228274769178236390980375571662622265026481050924882391484905018944152717367486029001337697934705770596834322870807437878978036167180813892511337745210429810447342128022770365063708157053046591232246424874294871300643035082519722201072475181224981270490594804247026864673717334541036720171772647651982826290586947690115352925044430643284058914055879408133566805070093533578142371719415523866551252066329960508397292858740125999099829726340980619125024290326571188995255159230809132494145572362990609283614027529210351302500009387507608877176696662984728555727394133055834698833064197290970524130833346300699169655315441778416449352031743662707197673298759032446572589509721078156242119205027781290716295175053947365175252617951483791544097766368767005756542411432027008568838477439267385314613686104023874566059914304131094958792794302637983026433233932238057310926910754866958706658166896425978342940041725789178610889508201098717397068346110311467899259421789702194834729598383316861399470708599072836804865721298267199303550661351290454272173335563629688659686038148948954930244550458927473652806295538479489339229096079729389568481592718910336726851759539132750882845423519815810834175823722115739831339546316529341745601450217182247816488313191805859912591580778905365125908980887540108372127484521640646059789309121901755545971612850185699550901789960269400521867818518293472004278189686970893333698423515202341166848635857193463424227033276723911889629438858967690182086130006969693337982535510800077759258617906020743342630417576405877583396468857336525492421090833698089226390534231826205499120941103049238840196098477420656461116943008772673464156119919481162894883247879527318495702743104828784662978487495975959358443541013645734292786737822728223264724974817557484503805240913301071455619066691545737175204011512696821242268766499237894546309675045747259382013756498902603244934454033785604365159519164272145394365561303813578147525176709933599610290160079552707069040655139844515444900767174647832031095766012315413280034730150432234727562409655076616191494923792170845390447541728510149618417052860017085385429319414708750807461187805960982736169391203519047702659781692523311230759005123188113740194790893929004201431414009960996682838165453395777848821071972508991013858505919189684753894824504388529999541466235034048055714024097461394302035879282736031449638515339490685515221516701079895528498539561120294015430712465828166854203818347781132694041996892547354642914659196373221745448397141222744131332256116511815993625318682044939373117711191662162938851082321136914300541444135073604443518793407372006448849015159074056062519725018330549787718900263325794138933229064109976232373383214239911915899723361732291128600854117400763427326401300212107466976962291811914240356642338928403876795022568495823784843728819564831049598484507932728794910841067552554875572294612228350865323650304563640618559939975192116891777601710665569019083973191647383255491671802406525848232734803740251601722601138087071883181621952458807334526070771168393762920369517001262687648026953651147311150045959251570476462404217035347099515024569095263659937199530534730246977238919450020159754274655555255693337504717980199401205459073315849831907951850858561982227876429844018901371880238801122640248428515059550481032063812099384261915941136460014051235640910490875071972173354957689824281855937444588608750636039107113688264425065228531176828547748868596796030719626599769647762520762689160298116281088648905004404794332100051962401981310926706450821763855847889738722131607980257294700862281341986990484223070490648375140693086146369690621496646921321137596235908880207332823540272588562733910482807319396942166639592020376308471656732501164205543183162788002680359277740577497900126225717463117924732623107561959150507507292823492673061645380429195025100719526927218635522775840358982538240767251348496815515887938861393601872203439704195423020157601545706927269880941853690472425948345639486603741986956375768361159608114348527659744620671010344952049714087684623041983458771767343740719838009407534947381103501210352065144638896525855738625003229516833732484920479462952901653289161734872458423325412665317418050918984925775797536094521864211459171787802580601775064107201635567619277396886812773220303914303814508323141178173001707311876744153118305946535865965078437000102131254774446505606079939744887892131048578612406674009808473515973168262331512921663012335545372659665323508264163515514143786981872237977126738649708274630085052355050452439244348571841164233086267875009406848488948941183184794222983437608906722124007303057785967805725296722139517507206292771497741775252247636137562577923988025419767745597138906719936134120510003534430025624464753578778911006392917962604523708690827372356266477315792591386062501945851294639711735624760102999501051468731532175514288814861257462873659333070369649878911873565757287756907476804073283518810793507907789949833163856012827340584672924572312546303062753570438190021970266041154566477086961601584736831615815956319723453822847548843374614777945919775348701526339248030988682084277445942520190724467351336577287493820262746395901377274878967946740056629319402521853776435363971182581533244845422287262259949317493226674546203721298169640916240394382910309213493892326452111035026159037709071091137200635925816149990625172930754259179326261983973717932067432648361866098062923845278341075562711706548456758768253816093227637017327416262331108888083352443187138128904905650000510449433732822256877989682857348288164753962068563646892095758214952424642560957374140634448423267859187294151873618280487500120710236471459018972812239108094880814869615540943449415094410187098889976870815040940152758621932287050447518994939324732440411846831683475898491298747599760718335843130480192862028132514881606849248341142357337318582889509546035450385417240605503534366375765257500471527461684208927651369484036024778065636714264566568267020659795167614527569780075910883715511160608997075031369101945203775542283574748665557180192536670960388674194124333368627194937977134785030387616262807513683236327544185525934840978102006451644491483705158774786047756274401690050428970059137491580815401831678878717920839069183120794705639108914857800309645796455890244821455158752687753364429749340950746955332531517860089824132616157225366014333079879998309224427762715021479890755114303104753860627866609590502485011047570305461108932736125024289835170206078391542437663707178823822297126737654910275269922902047618716803780813375119903523327561178965658895784225859886996801513596139998955663257409390044414575600988602519396272873710253972369237348594521067398154402083896800948501585321471887154348121156095383266980902417689464016375316061799936053297440178291555958327702556197024025504805731267904305528066217824876309615335439538108427711424472778082042402446556874324080884911722960274256031766918204770948265531059512399723905100664772917913164434454226569359289533038023857889796497198482481076499058717701498735843868732630662096836652058464212806630748202083874805700439344973667178047537769733414315195879563220351152948179745908516416637188435044849896920858386729615821619078063663595497084569846212053268538985603536644545745292693062900915255482871085211885070991990177256478729403146596160745720710260586694467063619073333002940540158025982034111341818335907458814712137940024323257831562243900754970729637782653064936907343584902450929686598355222309193672492966636401578715089461549811873526992499413869458135565302710617598021865656590192567132962897446794961111361629259847361768128090785547308529351767854932017572085122383513310988697829859491566244261481152763379592448406665312931575059673704805560245778853994655561150079635484206206550153265602800843036804509367642390941459823152663983775458080826099174811752501576973940096300313876808883899035386810621659529372205614270617506878995186361988511483824558574195979094765225636713184961361653426487329286380283758994617894076684077877532068136204576300250835555698908239979995481362294971086299714491613374349951677287066670927628577503183488593460345366137382069099491135508794747228824662394432725986209171179748556580675070490769702432426064488620800322828279225335221662326062624114654505159292822570095182975858947946306854115790273498002491266850520911921023163544039322195869617502847023767981564081452056199584230339013121724578493873693836010445608525570547979164594360671729553057874525401161316955746106812993998196055190268725841422569925372596822761170805911034202736701507194446328620342384367836398099798306333377826218587116741033327686346760147995844039467886999257613883275831640119714139919507541787996870134792338652019438761078248941139361167065543241412102910671473583796857798650981740914348125952725797892144577688819145894912077079937710276105133953181421583578490758632651480417799957851215555882995994324019030053480597865070285118799194610133723429214827088048018366521516994614545071261079477008530636498528159650695251438938307237749275057960214917074937355891388263914790445283210634615467512351634050777949143818022940115894859667379306799260724886135644055169166961487313257480786737645320704670039053504366246785650414594696196759460909932160639582822062116563012545855128341712968476049795685711702731935880965039733201292644127770176831125484529939060305378907617002808679563800981995388320155069868721952447383515243827523247890206791077019812886355860864793131932491442324088435596797552718572075592354658723367313516295224893464639983107526350607982860918524773553609426468689369214899364404676829083314087882366063010753488988679912337969503377322082220525110167162306473420039277024238643702167279877871779780088107047665127821007465364409841128895479563569289308324080253091797911568472910077249624452664895224443499734024344525567301345291484015335514187929524439539953603397936241144057123547542009161312125410029251446784024880777475312855060113196167044096300583839656566916814894965875885801929512817359556730602356622990042225492795827290072615919704912627319315371678423741056253455440106547804013818340262816221335471575365462275374690713271164958902298011522108024859740778758473519854605184599658367537339608787178871839670178536624960041928474936155958579232545003208730820569922447915570073532549673562847669410836172234178423774260346758574886981835221711893159741542794982908100017861432937728649028492771701864973372758789613453796823476210848089532428024379453062968138327319286823451170949737907940074173821401678436247527271554480421378412338130180474928264999940541062488637339338124258264277997368443027746815842454516872142835261011826247039870372854636338363066214582517030270508037905219086435120175930072785334118689390576410459797302694348823868101219677902799847231216397570285601387336732024281770545783659239689820384601630620432089313110906068430010883691518548208959187609874223079339752050820111668220135151282206851323988190714367264483121329296065857838542279971084116769116418835728496309304482119511404554898950136079546078985618094633950857552058478785833262133534250770526084304654612144396831844823159899261929399733218339882199699896337768586657661749508221684748061719400253133673789851325849828553485784439470987863539144001420161826979744565972121697022817688414139190164479547532681759161717458930760044817954414002194497586205626769386977898989978989963247358014726746464453486325522706492863942164258183723401933481517228568466022716685778945206461651187693280170334384189214008136288348403404700442832526117621595842380492840391238105801352514941983671212147639013058144799059941841618087072269782639912199154710034464391997698719706236552440383513839328099745786792485707166554730538116604494882042531457249196768536584376398875253204732014069055523779006672420554159273252255138785071582407164908485576134517483954093009449998309101777749779894972765364430186777135741183380012493227942640530736899039364810596393924349079502115339817166626390926080023417686926021191540053915838664770823952241301674965903418063599607604848113691113020271287593448684448865709319459281935946399700652371920089450022635698872190533669517002899213934549154523870548417589712153473493723242627257099571517988463488841237404386064598832563023579111935264549319146764157378467261458674865920744737373961439453932995011105578993989871492205757846247493968756376306461731618289635205373664316892337838195144089547547868287233993962779511636861180134969040198239141886374694660971358750628730735606433261759413832742306907486452699884397441329554626674353951830017484419290995381966349639044520540956836831387683303934502423746678901414334235036157468494883582864001431576819061740003530846485308741076682443476835570358930554196273001958143468622314027600432427622549512369693932841286456143018285258691138033741406928789349505479393465408505777757784710570618093937637398670997908091083845782643769595758040199616051485360826210297631374192154881427907313692628632506430571215646003716889608605927289730693480209523549836072133428087536292278143041695527639865375848188500359156511423308737374378050568232925525603392227099697218181370883093221636415040251913154625292922922793163042285803968134873368289077141298898493494990869753169731530157650783833709166731849147772279819824498182482786793104669021768348265186954629919521566559927746691145612353500341986020070731785850474483167260018992932757467503311134603889509388642246051346033901435150965463950722457872889870897251879724910480069667646056652679943459314652937529983073743893716463086693072493218453534637829979081298028714940556584312838917451321321683686505734569369008650497436876277361274214394149961770813708563933285146331670777417593883329076939752388275988706229311399513820493419194700824657870897676756710476862482824519095245915784736455120263772726380068516874608688693130761958543860081139417927979165410270246282658990605769709424536106612935250315757230953163567284768699808454547807227019544792548334036750058631010929918053334386205841204758391432941245545516532854529020217000945084653918201621069254524066885482189819283509457855675892697604823094080720950872261287398760248839978709982672925955139871602269342160172338329809535702251848946978623274535858092566870413036030202166839015642351974304122613689566741582442672846018607747453258758079669521372249055747725962414139470042670113728044991495320288096760001964872382806259216235616536718578410570331570122499714326472742295884662836614498502226822463971652569851358881082602126036514173706965964457028374806787301542810328852265959711900582644418531709485163936361735159819690565922994773957129690936591554709225443926997805133984489694312744411195313582853117582440127478483728102838523746745422841564790061167010208085213003833473724338791655240593294547663773334256157665326222656814300399654276535353630696290589881654715819797019700673323236853110944439614316979808211817324592324910664124397247365919944105795254324855623112302401033322033074730954267972530808015745407492340972091035572467257692566556188679188546141020593807190365836501131859886885491612639187038756553369904123659301844625197729629236506225133344750287946489842729412751829759023934570412960788167392086885077899274949772311361160267173997208260461838603363526343845247784065067008693780761482508436377459542096806307025113696131323991365906212838132467079657754067049691187848699273521223540489155712429688075773619708770151674145496948158473287283315007001119722281031980936826598750053431331669822604029594835621834036536439777045548671889092062712239867237043077207056205767085687513840367392628973300132883509247164323211587783094232722879962798723191074852356735593836827481118887556576463532879581354935073351133744218361594374312459115291757151870493840173699240556740625891972856699804714130536939031411296974912168139934912775983433513459278108378291437608112149066561351687716990681775305620781952242466279793145798974815349701615754036030818303518046106572313673081821500520630167075756063718397930120242471599945902608160815474771823764118259948046485328499485504615660086882518777601588785001973766909554250818937400138760957355617178184807802158132560828946430007260257321938800633218163616481497621796124467724709568820739928263401924863216514868231005111877732779020008300454910450947067035502226442072188110685403199095117730259130591302507700913235720438155075656997484857786158638035920193517865490074778923993205076421026352077830243515610074164097827136801904935537760061288228787346508641159218924913804879793399253096938477854474052921065723117466108117279251951771540456375813374251844415030970000711806579264064807222587696948818890293548331406331921340471852006558934889303304528300784194832490403876294329504888242435503220060563610931434299874457134353509171516716475983025001546200135957520597783653313476646642296663028096525066136232325678985821754247036881101712415242518142731652918320776325975581783503993469737012795463422973082951322161070056485863969371966684042156385648969339455643674950734785976194985957628786017843052322952579878500483596437584488696293407555797559553503669812257674669335678840625361045852679091439041189204111091731846973322079557937979728922072203913939715520862545573958052358797599634745800616171583315037085095558461863177974567397225905918324745445774736832221448883546451939449282950495320482959446662933775805171367917866515409525350805437009676872798177417557962773079597965241297898097255853799365617721012119045570640369228911314571662685493662987076360674045230656672463546510095970960548542330619769396931832082175762814970010170602943941407891128808553516651468503739898351031146534948349532229713557054484120196502335831745777867467742551106144476373557354495130854698039541256124205163930576110672979160622127274472967609832722164400712479830388182640278434217021368431470672107897793272208649366352905807975461816982242502306077143040358793645868510419830224237500756668126141508921662695199386512055821873655701412677902026698944841279783983572072182157295250772626940916371225872317188141283847665339470469886298290232770940201122416419600748227134624895295277564523193159316864905559757560971291812361556386575798449663610188143604936119937090921435767524063561747346424978637257762514545031039209018080439658002635758039363493126235451252883514314218026595842193869827696618492496713777384005486946717479088490300016583091237809155325332677189859557505280526317710246424300395994875380629802002376253299389058099427311672633393136133129803625860400325841552250799823488925506892585679896019674525386782659633106477977064922841894762157299314703576122893475203793709128889778048668324267784014688935905737930139108411615643446725555760054718400212414779896304305358597018358586618358581309678455345503195185037143268343338614979359713753004029803472253916961439553478452817269795754908239673934762468195975803128969442989994057711523029789289814389826449711419069673021655259285221416500970532511749684626190807501002373561600148989311161446146388921035573577814931250548043729449804121675451960675342554367329774687972785171279089222004128427385645834507835132038193157575093353018391614341294599083898310257378284095047989289768529020240901099857862338885740897645677093442927659414296370594636322096056146900453694435454045856872412072289076444494987589235379778543851469196065604377551710677064967855492045909772306120175814942672612342564979825264413444961706461420408170402263977611602496980013835310494426988413407901343481126494226604480696174210775952278569885121609411404202752265092349659378343033285577139307158141088258322403132297381616755530482909208699118013755914962145320189907576578437895606790313319723856491188019551165987552390802242321163336858118236535032919876962951218004172741581413462973983586828804555654729887091929119230260279052637812643386304420182850489634320820620811515302288447101592305719755573514293677038790690447922914025843548333287066742213569446199127062495402750030655247569889390597351869909359268197774907099952093524937651993599975808849027757081882316840094365705849129788314356844945543331535849203208772842010732245101788624012929977341637691868101350115079218540173140137843909863353247208664350666511556520380196043917864467158549299362768043052317250439058039277439366953439838563914967741423813109711435928422411545061815643509905387119448475636215977713028250541735530793808307143755230193910448567826076629567580182698002437018765130466536793702711524897175906410627075483612517809707571655494059488412315734568679663390612866361968304372694846595865152113815205934624301929121106130890890533751416015463097893464172974880719816193382482178754172321844084013971715089493650846209453710787785842336615146473566377516969539721644158595852914112642179707598681838518592097526393146162275999636449642353596107418648807203207209567134077221677165474658308337448958285531483268677916404932023906943663080676822708826446936762721985995555964140817129915863918040119945151152452515644732849898648000103736225155515291457665819507844016967798674177780266609932062780322584074384563715227962532655795190299397485734212233863704890262191777933201718099227588989114883641774892525826801849281200898814706221897053336409799135440451965859680060807108531279609649988549495097638906790580159256615414089324772028018983455652073015139813900530166449949096840191923351465804778740997940598263705716403259933968042557696506090725910659308007329415795262632748957155276034831981347965980993586017967921456821110160194335900421983734389544174317709692944627010036877133543476549225087732512959096569158600452394567766624658600636604567115304677292849069525755671324745329132457875042718386589261882741483434030332238666483689160309346032560344506627392513546365414067753277045696137123773966233025754133758565248132733660803778655658823623271835707294820488618228835071736739970712298231916993314676979942855232093106543351063338233218893898433027837527136668985983297352369116065480254110448542243704902221639850608152551991887348300957051907638784488304028908462944547014451690144906847798095109971009088898396955468962249367048656748940182382461934547670536466999154978413951188878777174071216021992571168398358630354540228464057033573538088451014109668413891605906618458700852408840267928175713113974346739395816339790753775137766599242280012874905610874286829890757910662235274693706000423656351810946470502304526510471155737678619390147005382624611392612768066427712443099851695033343460728216602386664804137282826358483967828731483144553963537607383996305284847486723044176003056920099762328040474730205466354526758965469589959000027714407838820428118848854976863606905818113460042994229278361116092103343574991223689402102141451352534288038338358646726832739210892748273045154616589600897032600898476664250664934942694318443448628013171906488556725953313223906556503020805243665536944062595899258592406816839603861741238072538311070573397429172267478364475060466402220179168281235941942053265666918303688532252629961542150662994035501760300668026014191619455379341817067531579285914191631147806362391280274695021164939793416174727018727613153363751740955363834121451017544191463270099405194280351428609324264025119489120992082506838294829914767336253433128753665627132319689438108963429132844356102247304977969714084513183792447648520263039767336132079054518645114500827513050015121618130975060841847121426592787334595573663637950548419465398190149542676394250196159035303307435507396205471206836534257835258289553985403382647115809708502134162689366962654941123096525853611909063588803516982601643434654370775557464198357001587298881861551523204984694201408339109015773271249747684240561712081020200364125377707937665128533230214347334544392248832283389586931256716501906069109328709508484104297383259419699873604628367153413511348334254895345932552384876335486146471384086009044042165370640825767060122425525340297717568669985209775267116468352501544743600165033720387316669783641506071284065052325368740677300097691320670346288075604945177976567750512538985998140546547075014079794722997075115659424050121850326186086154723318024757020274359471336211996889349157046505287677796732438173673958128242258130474858383384499801995481219388011688579955890375525027830495054002569167854178351607249711744313038811714508350762360899604024455470260239336645990940545393206256019143677341826804312912555563605603304828544111207761788061834909523206158481248875655711682719206401376911521820437628858513924274076155550971464450797134903330738937586071812056663029016327537643942920406100846343751351268202491124441231015558637441134420155172080442209721164533307898149965225765609082013202169068944621511293081987123667868896700011033361791956551999365081828375240762357924548693895416561082470458605936329576770440390916504805998394312520615441593260943701418144160253944465403481411341550025889832251039848586916763132280625873996543515760400143449235951257304059959444586979943457021355670505224823082582352368437581140643384426610218832972150259445385973429818518294097644529699960857611822955130742643960961205315945086579640868637424848206089130550100173975422424844950411504984049362497944187012027542880823246265856003423251739658761856701958741585970713896039738670287369694847232325559014051888718819384419733208199393765645372687972784748973949601832664661551853862560247696575116895593294935195322103135872303919030181225971509229816921402000392076139673943199241857613891190990828087063399317416732181832182662323449010958261872218695989449474413283998557865949699429514487796831374704904584556609760281461018847749252263346768501343807514748904826568803052806155484249790468932786866907812561824746482305901938893997208078346281581599435315462777507099017075681398843508971613261906713563229581857299129690047202893038047894790056640950786759838757885500732262814198451497770100369804166458509863695332632551449686802385624126694338900502210397405950703495008400440992411401490174033422444252053478694537573559994971495032379582433021281433687843027562368798257472782182967025973423500812792813574294965079793004727068110806864340947911070272528697803412074108539825425338199107277804889998276508928938690742676149060006925232983361287905455868778382758529206809686421454196491668933681929027378987020359786288166880522847914840049383759875641807370045955484943101918150767982742251789221939699834372523542862980832423678563879499543681841234894043650864436444373538490802692275716425694912866907863647632567495359359871162184457624263404045259014297352757842853070959366778810285010218077039803500139385986013015828813711861276419365697216362186114372413994413609543088314504387146704883354567810740573544485039362605587835801095603416927371231086707048585899192889496069595517057945771802362066154571858551097652623566577713020939067885466154905278167953567963993267736020943561686495087389331208117633551279769818383166383685636384231982889471407138207907777848750294958074233516674160775291531860499181827588828350033410389551296850299493212848363819237371329284511154034898386799014345624819924237393760501320663463316501868541798442604487109066523672168672740122324749265616250431060007437761342764832104923426577593351142933828553443389493862600901618628706928771860840722849809603409874508365326748453097224758602707313517683260357477330543773317427126327244661270580046966755730211742123387714345266844876612688915896835712402123105291767481720098087898688810093608388230629081438014833710842957680744203650404276873991132019241383633229407987387837083572767955099609965632752134886883557570149495315597410678975527240342297036098229858956341985222564926345794091436332852061261221032257611751087468311921485241990500275152709502018172376370016949440748258532455825250810888162195579232793285421246157952989059662761969622232831476399520877928604207998863543406964097597823188516370033050821308713045130420203479887951483660648093313179759049181262929491670187144246693879249638024761624676619979976922177701839720151403354527421231901361150834511301427965648635816778899083356728730054001106590504176541045428217804235654706106436204797385662355306448713474138817158345791331909584225854474778860285269505901687716491915544494703875835901630902887749894856816969288981321422441165631396901963828043489765136335670759265098143343578989187494337352561813553193963294214827169038564445049418197285604458023828989778938465587419822455595038986856079329522754141454794941500616960146591737650496383086043427812322329455336543201233519578459661167566831340724078053726201766557768445272773998952987112259403541366904819398512327645293799435012159210619029319403058366471714769222329317850505324963645970908730229002696668028456954124518283515981685346673775434079499881889397719504773992468623271481700707155360778830025039143025176744504308928174556473192502802061303898804202031452725641638394581451381136514233199586699319734662078803117159343716595098639335141127459776316239297319639328655043236909757641150665259032947431276722686472994570657996088310616194064881853250323306602202717754963509235848775216579660494514086015360993093368074397225757179486621228822857731324807282776414735033223961835290609543255050747854189543961812853455553878891828644800424809234867299990723531846309898713509031784230749126049386423343564115078553020855343172467915275985203429384247147311823236166537015279026325787356016969676681664206224796461700383955176708071436250882246360670238453821109447408621131933937423730348169932849596398626687386470272515587795486098764960625247534521943082664703983582326181935355340604252127379681937674135150754101896950161025640105589457275311562559703197812851429929108574372130030149443638344541567779181401138764400687516047341419251470684191174611093413008505546652361325200689708186686942998236309704189025888101604040145430116786137830229384518634322856051726398286121755651137781790471252300321945130459886112057994049320130068725207295436703243396820311587964745920092466593555653107627821487804994052390129134306747044925090048244060768301881495658751345293847697975613339121604836963031910561886219427344797156262529701682817280855549613128569179117134074109694763149322716879494303761911111036970747990634118653423790010660715740912954452577610578463306760057902564092245279723008043616529964441074483771753656711981181420108397444867424865166505020893004757618987143440834738521509436535692870835021393465241515454360655170187468293263364940612622020965740077386474696402062401562896596543604710622159932334854178441923273469205246930973225653415031694044116893793442107582983659740579961428490918315577684927167119139790978254749282067710090390386946093355842124544490948906413407643225496973958150325007497601259091600109833722982004370266601462027735190173140841229177754512820148151700280127960901289719324297180827770990739458723908743270236035940459409929137479813316397227826475462934583739668157489267842104130942579498263030266374697300590984012629299690927251065556853832098888967493624354443993341299898046209883009394861355656981871683732160448897090162046421214898897467073881173932323699329723288031587093757039935842166501132005230613026719665787055479959740932150261436029090784174918383079313135621978069426150669456308935678675041593981842263658025175146593573860987396126489935732801676856456711219976590706524734007752176994517521014073640430466656159770401014772537937531541228278156967657843742270181485718192528196910699426103030118389451028709675028087772816328863333870025210893215940978982956642393477018497912261514116363971367577365447295391171663084342051939113529481829138634051977209117331998512592670212544525982204632045281299889833663746371001493741044983186764604106740038517011632405122322060509945954905616220437104389721405915946155904953162117000257994974809516082747723891654178415270997800444074668249546747120564557281690990628131239955958867234945891985619148522718262588682680042954438888379030999554368234314682493852338118978265776433051783079098284453985734494657769823372369452109053658036333577265098576348127329443939567791321921736663375662077369297271424556474470749001626546216948449525013118528934233918048490292848311847254055798875929082713570776545142654937140321267685879457094522838488772650568032215712818577714965263379922671761029765422526569877062197530006957396694789812663646617095816768502005442004385038031039765971260408565181619683185298517221952249709585191364699541723748004647643746697787106143379354273246232180713303227481521307006058942999170938692259098869731123298543574714384144884458246208732886592742184568357343840898100256446699355558506037607562855002872202401325148068554202453326471179851381221297608804990223860578740939534659734581616586073031565836461150518345414286472525229146366550261422113505933281507474086491501855016905211222637578083573276833572633600756862749797541585636854565977612364833063024614789481244720971210185840850847103361058893956262504663917658378633666994562520890279027259701396804801963200677662062707390986558166203106041268536271786612659398003884916908556281439952836991118305274984577872102011121107135282316059101578208016939047922453446830545465714172871813062395315915806857287109870580055078035145123011632257550357462021710127303093539860452953393011883643825500809124534289786029884246614023942743313400745164116438941351859024610429520685710413071355439745919792642466666345907689303575804081285617163824365854328271534204962191675418132859964833306282584222652289583298160118285911495975101810954582619101128165467573198886778196805166576213871595140176090261188143842915465924702008591929388277441184428892022610175033962752522773643621694457738004545187531832820850515294503140642495391426959217482347362631437926250606163884618799605432213018878189145857730557605728106893087986173306306043260021367251685172798815185730467359569550691980130894512473858047453095567420912503492176369910282928683161480529477694515314104958065128659514024032780897685150167286916330674933028242671164830442178390949804861028846011023733637867372118870480256908866599949342131363312174709778754362348837715905648381308093911277129146444377494722627535919340475712640838860550704599514199238865353540431023543307156092128918124727958832386406083825831019703894855038477049228725811904027209294889410793273202550626072438466648970971774420023441493841648508272638470781018345671336152820225002964224253540963454705618153676076912351933472133511752074156421551330132852979671409852288761842765599768840541007855459122120439680816462923547141704750799158683870807314133354555961777732167081697474445816428954646830582247587619786210478635736900541753192370752960439009601135507064113233655131270414715553335764329217531813409760588609164368278407042104017891381597822221996729413674261567469400829435327888316324611233077234818549077895784145625473565683681091684010934858796989182602642157829042623267960092808382386598131285788003711420281199442887494093585962021852013542017764590825246617000977413558314074112127836276411216624707031306029307583708764571047525533411210411888101807473327273420926491606836716009084911382232010249115948042208376845452088740121529962732168130083077196503532705252336323909250745377584254204953890069016230883067613700520188310742985443228303849504081689620362387207123746491612514724153005841538721455374696263192227529929013385186085578443008287391399535965331449779157886149826413767347882936003334216289030425293867095626507661765186895267907750355583904369507113432022041874171962611492700131457816410573066035602965063081455591083271868369399405799086501544903854332815736226818427502628852829920858242830823252072482342885930616403496825130749112857388948066086454500564070347514973929594825120313906843129517374580304877068299692430292791450358479698924640622980770403224338882858830198213820254253426704149663876567275231584317278409760042849301041595695377676524568667960773205455471962589262914764250015575412184466719886147134701806535874738964089473620688556770416112327107247957774189688391049636840749027268318375237649260589920792015825275019995352743962719412482472651138502314728125686015242132255002501663090485583393514341503268918824707186807722062979479731986353669138716049400732504167300454118937867395980556924936865781371291969398742598984477964208586879827374261527246645821137890950804982049418794002405134648559595979891198122857144547688037835541467665915347530991822596449361844327939310065191318891677817279697417004685047201133345508894695084093583529416696039950955606487538480025781078426104924928573369077445385032990895721623236400692547550358989793269873616546078541056610580675700782217353902958921197642073843281579645381931584808155202873641101254681185971751420423164806931105439800628821544917560978177274329791918729532064385317249172856702307862401490114711879952756648584224669641982979342408237389210763973350202155901604430986581014685707393695074160387578402946065146067025255285029457761258390968194759137941372371647228319721158900251335030133752618039821454196672504565480445658187444178493898085361453382609248525004120952413921722306156028070035524583922777728250192256640567155385834257982841168284125174894209874954346869262256308874068496154457928192084100013887487904051977683180949933119943015211444418337337739440291078988017170044608884061221108557795772348572024155127386623570265602341362425605310365489216466218973628051327103283674086629882776403779468910944292103843307202559786535520706583383305572384035472141755722606791057724834452374437955670943357724264272249660086348074093227035567163415671813415415061755308253800354800642691375591655064704121442657729985522018769595811913360559957487786653926626448229302733738536641075853109492593924195686505761365643385930347442952741492706112243712178803362368288093313647827760584854579501398347955527447224144150533656366838775619828893161978069089458247619459272648195307906563049205065641463023819683082961271923876920430279090174448202187566013612541958635892984226134483060251867482258396800281631522442613346096960431059303280615327440715657630024805708650912442978209250656159789969985377116839985752471407504280397112453294002991742307848701752228616039843272949634572947815835155311642213955925184446459047518949043283311113723189732321382859439766897165115278411674869176023662567616799247006121957458355192123827287905809893555602904117207421700977763917122939109090045411056309025143245248157979889687483531578061387365385297690232648172052852939953539447805163629773627693821538602628275008798636891337470636576751930891655311697153793894094434096458211149275522988744485148969705293766799316303983606968275556790356223466359578703243903093493881557234342399341406469193187141372615948624980799551504967855550697323770137935040157564943452527556049093999157663095014005612464549632805554164315774007980438274664025201841755951089526131527491090843478702906572515223594535883263671238102271824933790724165310871916321824640365076414434321512729447646216215299264197273200904154281632593623669601456757007998100026032965394259626661152129117273520925404790246993435442147703014491233703418762694999837017541407220674969226117507246076047611145386274611574668115156893052011119286455830120677126430313151013915951095985957852426077527632749341190112891790251285416102712855249781401291719920811504900900202263865522350913048302427386633639158253232212363600323569201143737106646545230619047865214352867537155551747854635668010443078234955110246227930517061711434168321842055771435445343564645020728128999158246119610558210155106880838894716563790809348355185730074731629063374387343897313560228087342691261203045149291350052484087661689817956374472981814195363103909758013973205662562017544962926720235516379447126382130293612285572403895994940341160366364196170180535742033537467327276164619152324397972834263847891677050552002723499321293999146942536697217878447592980170101531226450751953330539763613811286369687218666313655285051162890601869156841639990321238513006565232857216251497313285241022269379428463272914940773696341786320875946888924564407813803496206917543837450330909807866788845363199906424703835182426393687644873671842313134362140520441796472933668203801274978655391471320181964270949875392973669763868173596322166414449312815185984061456015138246810189079371725461673621094921359534700062746053020653326407246849490449651196490016054567944565854490325183062391471478799553844184520570691707226577441012193193135682959828445810844581796380141649265034281572747586733047344888612538443213924177414302576591238463545036375428947676473346152379816658232278651128738942164897508948342237184770650807264011381673540958532386777155324023464461016349665364292427728989769238416354758264348702485645420392334462585967545421656646857840377186631704554394276740452282801903487930150600413269506182739794393077043897809001727131525785703343614310847210817926078838253560471656935140983546233510844827992701548118963995826691120448192059983216381929486154537616863250189688503613548407099673668972946397857369723748129905587762870979354633512292055738773565283595542675030571033911757141324743150429276749527690200454419253630011709091742490689217297503940390944058824198189000458302075333995530660590680174594510859395217886492892296893732809373349719421992914330495437301531058540818963046623844121556468865502787153961408019753207973656275451222594580449825885425061525615070560526387557736212592549462377519083640840177048953535057657378152429216623813192439983905596388298997016471140331602802998796803431048340569960258269282720199571713916414139223515515229356537694914424174182857182766187648199067944761044150449056845519827872771169729822640750923355833992191389019909278060375171855440395263014344222517154197331562960737773401710703761389519083889897352445980880946770696056746895059956223209234128051422679893978362148943769562236194321210776610668169342566772735047626508912347396814310866699060895866437248244104224285463660227366525948453179287888936685252047133227977398933508485401928916617624110884323859096585389383581427491443497869123789653134437108937939440493978103372032665915724024022797384751122864404687108984375843508813328178675121194350300293050337554931526705918774002129647383531093991660195486054315506284946731807759465416907329109195970390388865420236872517688874065554054936569034198473038183452052362274610329583292695600704892796877416881145556031485720878587705352541786683858064861883076618780126305082728038440991029252715023107703917647884556026947001537360445708174028925589413255955035460407896576263198181480516909104596482589825545519013660092665847177441763937808192623700356708477814857451756065015814723471283231432974282248839856642600075837839926163635014002975487400792232548437164678067335102754140795441191361861370819653819598283620997306416253768404004827325807506669026206740836579350161594600741447943685114639346726910230737739231270647384893090224654677536870096991955743576601536537624291289799104764737256485002526201404985878793537787390999742420446712989003051094510879507244510365794697033785641481689570222718860482242761229965117704519549882577463343245448893486712688513966019907356615601823791169839288369232862235058804184613528119750073648324825887071768823476399575930020756523655683987971183679550545222080996725653181290300940655016468969412533676435530524448118407528793757879763980302377905143087658343443399232986373608497372694272043055782391703821636285576459999236168588192560027834601505864447346801362332346790853164415098678334035458908259148966911485087426459918814757430186298318814236007192747407402790491782100833794884606588171487146196670834146486277380582287300317152472958463529018072229978571397301548537831054227819374339826223488578908833203652426556971212395591318836733279322877413970968685528425199153753601117490550810615443971922026609816802770399592875513516964382967245921893492257895887893095431636766582150141083533132239743133242896586621934831299661101399689016826996649439637414685030652967196363245193896150965539597866976315202792243593991145930536044885600225214568557906873452269971858996243555890650238970807493812780947044563643977889067482613377095119093605109868228758884097620974905048638140020869298431124102682770773368819931115460472999360776668890233505866254540207873699150077425085946902497728669121061933150520378386920394560326225081969277241847630240121022855236750391413683214778707837962713829563882894421472628586769442924293719753975439011916853532561921114575662986332479346819708287621444409938365898324274818858779734374339962582695266968180692176381880388007183288389154193097684170031844784546698832815103482816563069245022756997074280572531817477365853320558576555517105877830205065996118448303561861135392352243714679141530882205673762736657754690005434684084408548775044793213097971492132852624871390222191319630658069207145415963761331401189808284988545581733405640442592185602299937682854149121600889811651977521901917548916741540470907302921525344418632081614380333150112162628964516119949496827732314106867265367239345094090176388522911813279341679593847812464036126257201230878030162511146435519610255870718407949037073689663687004508370451559289012251144883520632078051102036650179394012463155733018330567088271388972955924846898833571333658993439639542193989806455086161312917162953496747794831754496196284787080250673193703475147233008180674403137867169144815459362840775906716873771553370342600600973218523822841365303378179772311018808789898162322343313256607676559290791153564050072338270141686067656261983517663046913881290127599196299395738577585902878412487883316561630472335790678570432963375227806246722399183881300703799634057044008137189338671492406450164710325851700223899408164258433612257747640741540842061649319596911394080747938346108905461273912081260891812987108745452270353541171625647601206984953000900089364876236781608974341165088329616476857193495613206823202143012586586925600452618444653784940669237192403685036747537697254647026860498052082889369247095251790354735984781937560865494812179583827248146055886578476432519999743985885110081525608481985605399382692296432595510219913523105213989634751228163515372020787616723233515644830668639683085327423961506383064770928658080473043134673000522892549366026757798388008325601521291057565247200149579275350536932362399585773170055877607642700394618036803746587122903250813223942065133710586010085463328671133779027584904184354714162831624995711729349041020236644701663011035935721145362281500871017408430528161441482338805510147860375148634298423934331979505258739459557307012577979441046698997067836992726415200922853115117924443833223640088507007976354718026277730837927204664354772258558007480903323288239109189778242665214475738259490063118590943654926743983152227707323934261656034614249588457466355363867615119970577101177186939957951270773269674880713924918844643131303422792579516408792862473356916789802898760908960323320247165425617147087443779800038299079798230749074353031295870228446480380175337874519301477865774121656836897713673226547710584243284956624714008925100980799846514715818340920932690169278502697263833237207912847064230309268233795119629755981462151764250871573164052191446653313830733324662286985305594325784779508491683611100607239466806517084324419185060284971143209782155723928883235170742428004811825187014532346208269130209862945099110726646669510268925638219913845009110368165890164040510012876645093604337782538199675624681930218219803689024172758904597906281589332072135020164449061633143157561618409040214323606639843296273130875647765614506125642386732662347222962290676676268526436760764734230421485877084324732964664603606740212402228571591862676865041626113399496253678005024226650517965090763841154357524306357111311396640708575232815443003231213303729747563646826957663472163109418192156979374856690702163839839806410100523120191942033125415617751115281178016056735373879362400767913979829885011633522336770431021525567383668875131546469668741898171632609661700180036661488765399312308873798400130740307407200033588022380478632195598291184224320944279537820659059438436929745578789034479844457706612340223742940861881220899390653014075511518144210238479505488176180816901530072295450797127448499807906309691638031500215730384060119976151849490852988287114970988282360036639799999990961043988809603533258904644538649126890264234554949120751760287149853169260054747257366321668264909390898932230458497981775936096828586893511627619014504382472969847099697626784500610504021628361734921555793549082116275220453535552583757807150007447125383156130296253590083532891431344177828948020873619980650383524556106013693425581171995652195998044938604669606321289633602018681866476851349282841636827636816285450272970520634077650384896982034781002569951379215375282193015972539701619937859691486654963764128149613327400788850818633740677937356831160093329558394914218298301562395324632984270506572066808474899126351858762385048278807927832322844705175342883456861312078805611936737048724153234290942338324309085595985764730016333478578645556506058796442100056579883196144109839990287007804342123375808898940765183703567169774721343061715223048357521158597228399793894877150997666487830323284909481608831784756599639237727569458326679240367205806769828665796844965979923500683404314428711000644410472800373468315702048824305741862824914073848423291837666149024866387059677509942324851665904930216791053654002103492766178975992391968990968108576100752393395697780856171309078082199001650481073762931158708400418722250176048319921028715889930126076119960088995720289413014883407617996955787123339425504887478594262481596402295670531942420909830382047634778763100744930717776607770294063818666731539979874361172317625684137023512293709231727224478919531114963316331726499686319500862529999442460846732430767341294733662728273592173508006095187876553899244018820220897440619227889429229105216426729779603968890788565926813212734691604875725597041766534818430736086669405118080387751719135225085468987429978480558483929551411143337679879449941307112783213678878451073729326046976816549735490306052518687155828105143952169941862363031011601880893116469800873492907141774927180223937698635409996989734107823535776317651808131900974244839404738766955770400841978323665060672241902255302116742906600142473191098147446392831203378559139999847208927012484990473615670950344512208849623823894579827126007975107894424691586940357211739229218119224582198809577743541830373624290000777634334087804479285305547480548230932434125555182233198448322257058783724001951177718050832100121076171682580927112950704287141096317063760987013674607517782334260373004917017391995120161818493029963412189759992545312314248769709118491647069477012089880186670376357766873778697436988899940810011312683587723641823246656540579150781229911909459778550319657907759509222563246185791050386654342424188850465246882226065392716914107496706974210789499904501541154759877505553937778882120168855146529708140666121622789073017760176720864868558526887405742276574406839260323741230919272112806541148221941892229410572131749039830934642162774876694200301832998942583583869908112843390465195346262106734921876893674541045580445714422919076827650361828187293562837231511456189081307714216204546894371786299873162554634631728893116268609216564559239577737649018065766631839787353708815506523732257208675344795139163374727735853454035614257941536137821263615397610193385203731668207158221347573019652504573013686645355912585022202681280140879103623540276233350849382783730119958694240155435700345580890188884353382718498247129690986112196351944830261999459700057610483358276906712828272292220778970505944444181564055429248136445916661436195756531372175549502953728501654927243403695179950513328922203190608127673678072179608136889352171893847055351157615387335995487612668442368306256672427191381186532111597731221497391709258263203587605498875178141668378875849387952982328945901701428529528816624862320253798644257433673569561695188734244547814040038488875683516591305265665797372378007846022919679607713477194499567339706744352551534767475806366445673741988670129630414342104799010532079899708229755151293901706740856114432357801098933202056299544905514250356608336085554966047467202941040560676826656546606481212778728569399010791177986404113341218742296723978324118308306108185314714691145450521631093438875623274222439666802008879672595382497698211679613119515342868409321553033943924105428367727751190540049455770431198245515888749438921800375547881870889746767153005758985164524369694277262085663293524429154339162232524076022981040004981897770607517832771498504371923487236072981650802626432505241883879602550553914456343594904876349169056315676441191322975176901247161992979795901729281143042951236347934281699042089810744115181766969878726986762282525503507957146220668793613153056688657646236755937191208216980399420500796901482678487403719549822233372290870440022120742340095246562219818660254113161273532904551796417589365928396806045345853371116183959119967696262946979373497582840455178532288932293695769178631835915999112445581197030247766124938349225984601003236574053405167993118208901918263386713685074152628596481894181294877211893304330128311544579876156308793081429061394050462710469925456686661951857572520976900000116140158374669678861082144055558936364100930724852593555898175068412434274308285329225500491233236537058700259809821760613943420901517707156851479233213156447622414498531925160305182919950061670106165540197021284553370061422204386178651814245026674960175957162897608402049215930686553470154710294648130151822033199552809447088382215674417252408366437437712254028290355659383415542882069925262155797584358814159283072628399308507858153692029827420223211749625570558535526659968253877582169315093588905040254138831524727439790633802130492273339289843205334783750589366705104496447296176360899412509109996265371505817363556926082765380124146413268167199955121558238043076179639086691318554767007125582785571505815960857350402428336362126705923153051908901543419875662041022820082037769989463539634787526845984969986326314933186872817824083900015570836860569051578270000217943764595527814942332956491511373255217685334446652925659400913095846920663912494338279492548682462171148214770461352786903263943896617711697582808904126288647245973428935043171970078835265923678726937597834909723441770679455490026008173835056631494465163729188752648273274507348283907957281941167424528911859153032997646586579785267319811802644269827145652731562820377288215272691537249543230844968312385398781614224842474692531932788907981062972036918961726133253158781093451137793937382853143475775515259461153957258163798449691845807645683131229393643471148965391430351275014636196872966830717064696430351355591272819948662483987398586862661693758633907014756986765272628634308621909788263145496733246729431590075818815213502698257773796634389335615454433523347122186685179236923525993479542000369493784196575039415791547575108640118463919230045179921378369770423528296998946041816589774318212861234640161362988844284765280225747917932920596976877763491378511157663454514558023097481283499941077019731273248079685760422275560971848085209117550020082171158649410210771444107838759118300166787897132513081390202997300493832997729337786401979089717882121804869840171326374846335084575520552877477512832365219557067349661325342851281720869199702332220075174032589270196813423793085521943460583902507637703512555050262471231777108932295657232476857897791818890857028227712257187628486268044148167394355366568191452289908822673193808341081819605068786332992000024126130063682593610712804216006415536191162404554928771543580639582408650204984499107501484192983581565142617748287704926273860994316959518249769312239527850024400162234803174208516777851245913991883278871042972082515692421450290233257422119832266609545318355198810009881468359697711918239058865716047076990829355248613797540087021293701799788517048383044413660155398219843188721863879778933774736675195932511678779769108479058770947119963828546007095025277096674087100397913394536767507744361716480740322479365798767118143335739986511578746793762257946592630574036217770827026486100629951012997781870417538785378092387176394988612119561430396497802159059821598306878525621376364559704053484590727639349968083143863416903322050067012081469761643728982706404240375769505156409688915653713554019953929793691486100278713697744109030672563259775590515733390153555707694320270076155370757261669188092141320989914951955556349991633883872134082889175553089504428627203419534021477753989355555062122461499687679183782674680118250657190163944149386311694474623864140780445524984577208073614055782436374732854041649654870876477398944596158299275734198571361189097664824631642186576658647065692979734676574089874719468090281547264148209225342853434432900885479853433665372573387415026412783307971593839142415074876540065338604279066166945078947845307154941442406374655514637296198877818621090206301118270549925877107275502118178353464473313616260180452542544904330317039403112083870489764537223902677990038663616863764395929895238746273960072930297340076433270978541289793876132160282665150756773541334281427268474110635519213436686481526988381356982504650130922297392887664739400673631229289290802402837818937781497805395958089166480486836214628381452177153513902492517278630267951530620800582524765594491440177708750693616672435486676682335253079963149819406483521724089930794696905079341579961653569842370984685530186636213567617178865172982216865928488576563236132238217195836463953152204525884059009643313713761640251271109478902930011041954748027054240996214849437516234877466192264705249270546391258967427714810380384242213937316604083970019045255163832607527705393007014255527927456297236835771612339611576793332160289261373624075715231719732607098394502684700717759644799488156789432780144125522940237936620567841704018272197593612175567853615623874857514847687735242212068600183412083278645408616479575161547353217694626107830203810511454396562860379963270340327925815177670553087455106540338185332449194101204283266519472369975940925471824692053069389340934694782181905384245585207900762582971633536389290764969526343963926914151422784467444540304367820923251450100513120693251646532677081517449288498833743327440774906582762621930084738505768401404534273206939604058492946350777154296948889575813778791140604495999806725817504387633456351663728313409879373821212571222542458508024407806737602436217116954575236713774344251055917031433003128234598920318487717246604080300170941891311472161761439731382755397781658805752716461052436397426928182865488026362619064949067530166854293510768983156850666345516454564699704659120138675739316649938403999272269758033521234833216417048025165888364370372016154396452448871007210386622626342237800786613865721995618594725302510902512560189020092904652555413662536536636684803467917527494361178649303247565366537789521168819678126012211008426381140409242836789062966011068547561287105816567479043912500403418268977614927693880492589247956994569861243608542181603878754401680460141830173022936604716217640970331894153035700673056282884181776905922360303127910581947054801033829520592956803426903367606490626346658624409996792354527571042136904021308630559317203402489385635659527062466152883481723711491140794667191149017950273221718479172631279766852563730254026552275225203328669515435345421647935155256203858455212200567454688585218281630866446628357064016753656868108666186222966309596238039315237497843112285679185257439675290345605025998594014788646054838384188220565362168794356928577155746862825249860607350632291351149637484973575425266011378203136160355483926088252178773356381863564973395843206548710095640484230868111660786886984445588357492847672664254995430725090110157517566897486621453728011936268335721234543420166061232966687127139132124384335078046107977796284684647121767594359901746170328136021168669922112285036431897204425356910398210351767483101864765150198486470072380023048035515154803609071234808005703306070001323332849257039327015848478571686152059830202256286226449987212313300394768643983874913599750901699280108119951980360636135769828146791705019498474475488552028509109685652833016902046507733462384579190795449803894048145352302545155824738068593707707576882605611878612832769763368578722379319192041933796821279136990955722907239773571251418953303824401593873856612975382027430127762498287961470610294120325069134676596216905505823516658271241243751788381033033966806795101622696944573328446187253142862446314951548802114250324692278120625127853949038558085273085768851983069065039693956543298919039249493308906453522025719499178021808155859931013234552790128384939244494945126575265071003343057112136328931946201352039103766650966930256166993948778508536423880700764954305018923097452488705963715394795646743128395961989504565580066243952405805345950528590015063390219086788934741891268923854654602731315524309085652474985960711032335865512215189594309671229818321436635268903420181104440353096983384966305567567903503063565344849769104056025232785563669428009220290846440642071857636143368690910868118499482370387793983792683002495452339614937767442440385172281133410073216330461842867056706854779785346167436246128722354474937647820436531452240985305184726312833080535265463565085465599185171402527294333641683560595484988990059781326995566348440444071580405071724912200895195956744533878682799758831795623563917137367300644303577410224229288049362592766352653225234712746058909844075967199364657886624263012255537822051855549250929769644115166261163513005248300724361234874924019139460601375359949390332988925308544918297820228351810435001580231683985591309054976205825200162410043467744773643180255119821079991554725172308881690665798223539296656441337371413989748131511819183519495561722326453858109761055751944330720771021495081058823567031048353390318164730386311125017963018933317181730328280035787116002437071983547372624991754071894048163786429849167888686225637367715672455492448881350090308464887434814725077663664787245365976798298655571410557055025063149374334162747826694069970270898674918085698299884083238740538139375837028442363642780865210577704639610743332105890418151999840213750060579016237505851962972728177633911312593394853908922459102139835064193445572483405862169519321000413660071386103981296572729829321850981020608850372199971366221850593587427248148068846090395853263517677700734246305098264133288084761716907875415670753802162958835417471677222917356801938703202524746908439563030491371826176692386022796692135392690307157968394810774285054172749517506701005457809965734254428231249965578720679864318223759707760456699184812931666863651594483347896822651333998723700180176376941241675985638384310112756524419458352854655887939350231989467868879521135892511193697514552989849229750629743363379889841094525406123275762158712299194432312932414310453387228848697562922265223239311429002856638226226428508757119840730607054672313706926656360017711346652824956572486041907141490370013602697765894104986383150530740124928437978884022147361172713676473324234058586016169014913612229302941905055018443383092031062716702772446996467928727442231841256550191437171159665314207941947073449981447546473897536902399485185151874053619365180303811642868530346701649560759178765342010660933123499815143215920800997743842064094891271740855224443037453784666260413940105601232496468945045980854725067288703936746590075829877830209457067465094839968275506299235912827151657599021808557537792959612693279763410592159011651483776396054468509286630352509700166538255644260046433210478228898887290344615855101054662729830003639981794462740671782521229973078941672398296140493205668502938645774272531216586526634990918501196722117041594842522237541027138569426433915196433129211714765496800593853994817322245184609872892417940088394402047752092015947610250055888065487340457937820795314032746395210878634682271259412926876082666808148336109612391716177835918603957907642786339736245714503175061141810296350388414312606328000580455408332888597157646465658140305205322826344243789305344039540880676982801979297897314580595160762780582270647378174220750828526531604467349958400709518210093006300739973710845894724565509909727602217584357534259063040793826795433572531067846529177052807333849330416060174976324393129166822694669053675430268029840125939603584222117513502222410277680869453407329168612005795913153167208785424927106316270627936609512166636366699768464087373887248046611042241204467338164842110801747892424900435667576016371830887928224296461205886161642597046225289610397630858065053537710195705160401705590277604616950417961497537580372239545647321474501605088749121519954559450374758322784471008447055618708276967373408473969546915414764864807508197803182086687233129795891079615139947473860030664711934965214302801562986537482025756205113340162192123317535063796587729428007460124483070896336815038148615192355888569301728740206049256692410624002313629611704297506963516445326542984058480966411589323743542219180786574629797177011394778178839412066869924473758345714604248129437264054143438506680313121953904553723070397352086546774887756870196287513895635135785387802365724642652920784497974372504824320871789122600239027508408437798498772451709306876426766676468568011677195712412479867736877877499502991823075913011647100636188732008154828992425267225347173274632204324184422545567742591657960722846601148937911058124489801022886956696136293751671059763812543957334146707720981559292544729784135288021888253011169167446310214586894087518961144412712194899256926239960423853346626066897717766870592741484690396765393562107028640095049795003051437683265618868189867079367675754565607464874712194233719101249693189050620247706937703789509572572950355083842354872328564614290907540388725496037862630327231442085859917978857931821564937975611544268112469824586173897691957688684992208258741946922790127619213855878525305307006216565816953812613189442299960558786123271271507983290019530841013598549638614207034270575880986006099750341694681750696663905334410780941915831052867337183993103194284714626532014322085056064432316922285050473531129923495207087618624205642311740291059009743227807060811109930957121882075587419118605191956047793683937814389946278120866794993977926284126756059597006760117762759816389009822016854601383163691293830495332570301744946396258556975017269853767846210121420542860189508248230882629921480362857902566414115106849353985793684013335000683292109772520171625336986158135047355305265600157085825458615561027506163066782787767594042093533691128251038193745747813269263847658791766648293066065098327737074939525436485661633396297494140560181450448781364764406549457023021188338002960735005274739535779321142358249226266013943694460014399082243361582053372926431857596544013341517027850115568628659467142976066072468029904850547197024380065283352353255559301605491254932712814457809639238534115759216131486568352119070615500148065799704904523919823157660668522567247363130929605980051677532274604662676852607297791859023244979820159954104678102169544336437635963018167660606472943471585367139295743346394223880614116910485509600302937608862677584827119564199470961353830310394535581580834238176828508062316020091673100727237733648812158122961752991379649257782594530899299061858854289408245795022325416033673792416430032519400366789218011439327343271942889910160385654094231524482856985077124619481641255808672328488605937488155486656623948202613344401700116927548053835545896592619667125472433018226038545553939049893263104117634224636328081861516284288842495917045883443922896263040386478475016830856696955968763517956568111791205231156299539945985384096548655445338907275643003064764890840785409904042533671520690670627819638281892988301173608976678769970096347582090749946118607366081646500472570338321993407553539516126041799967954946953336216567345989639071591458478278032791104176743911134594798109957269360236107027053201597669323491722194957470295479581512699865312704991821167379245012202970636117650182046935530046461183596253964969591959331653062096927633447499892382714410272713716260940775653683057142398970942465549598280900987360479480024058762958605345637746725891762897863981725327514268855483618540050315653214445495749277986217870303680978861927845036919516329007779795207495088198004640369296052743140329408009212732883285996469469249364297522538826882796258155518095488699213637820813938001530449881859591612351851092566539600206783600383485972608018633595107187245909758002281381202409746846174879805185403893742571539492742340066584553742507315359006808533165490972141614582629494487688102309002938998862395560297094324916270243277449833389932325850130384971026552061262576720094098668517475739631983046382727747814505948260348035771363930069486270883088062684286807646849181259021976351849515664602167419489437024684494311844729450711176298402773030497615667281155343444103468763936289248111008062479263385742454317191537185949442681500074425729249030177243484689953565761576547834036722695891494518525351147995787118691367975264167233024120028841814345532227490531956114179126675327245167585756672282544779548344966242757574464540257217565446330888575388155070530805853246909399176346632660832585984127514471042657311724278531054041798270682938262504157191137888524898168230597382118930854364569471479407841554144692548777798080868259574738501826169207142174319422335705166578838445579560512760309515395439369667778165066782569147602618053272170006423230876824955078999100474300307788195717141265034133151413627237032318199371498294665050769761277067541321530210519456384682464149869612779483278570262620546249067518061215991991501172070581941607358013811072261051324187155540222583182999176043151448007530077389944030014060121130428348199841321247055049859707030692855703304313689105278275297202188164385027426645603520640640238273388844702061683954378896307030706950341216879489786913303938340872362624320678907261401533084531151723454923237898015022588641959504763972957643766096645987015066105226540278902005572612675959755993376113684734951472196249863941561321606714557504730024358415237859402632308169456709605452901422255643973657702881962809868982251088434021961721699713961389617324148446383139185785609447228592892374891556459744227096657027618817050354208955874646005475562934012195060538735730883681473830516659657227297660075188668058410559292736397557024276886593517858993737739194274593002125527881028349473229552097513443164721351004039758460564407620035606863518722492628308614751682056711893494949999362965723533303970674632100944092846018470017202126234458835247517260922273011975440930887560368270439791774977640541494656554968762040252593949521297027530484642188912108551212256754444145778243083944118594791878100467372979304970555431638020554417972621549962674416999224915611375624242082068201817058243457411336642188947305806522213111711552590721857885993317074548101227761860306416822432302756643947399195861071700956029129938124230876005799158015312448228897957952375448068100292454632964328962282958434333340206807127162198731325301719211279787129891691160259249803070974797336801441297566350770117798210054376733504205478218680134352566911048161328703384934837358875075761858243350478884727409335689096471325185791271108708508076317491531936297274810406905938988696911908775126758286408462247872965235787840564721773006640543377095306466220906379166133627624997292113218399604626837960953238921958173593233344320093643090022770315516342311894848256521333742267490626943118559777337713399097166880689253194276844195608551618878629833974581493707713022875927174611267107498555462997109244622425355271649714991530971785285475135843247674892742806811103666057532193167900427854574934193743201899888224536529959872043870587449494978649789670786869711948388630049322604214001391204345502084715923574886484941863810899051128405275436684382363807191023532860051257401821966791400313258843097578338343980340519940112359209993645664539262008307570177418722131466970835344757830395710601378846474881371201566311582097175720542381074603997246576590106963285107724543609753863513883917421488149768469537936350757775859061528024154309922268990424106944740379076851937048238441075415314812291117502036108186178927827707444300329417795718204725347990212500693443686288752300833612664729802100386165633799548215191148372744326306087227498856647208898551654996961710175925087646640684868679991306627470981051216049644975859961642187630127627143677624400985210645635784897540795300784196848625676947138643553038022397633734487524310296101875477405199533777024214116836938242015296465382000702879700210434777019831622759005798963123433680667839000269588237198017644073571301500253587127664061494832816782999729584783024170143534248455789578026187571557317741229588809654768262429002954419359746006473429983164406571955529700552217784653444370739121327137170442094891941003599976619177901817351704718041298344310091330304765926543215626259830409610624869564360073075378590019256133269550661009496784473740298951675046528495400999931850630361547522115442953877128115519743851870881981751978029882327437692316177930406952446260578305668728179681715425338221318693539199580039635280313221651228386394828793959285233887549517004447042360525078660868941744643811324577426872822749624042820791275159344382170238780989360343950019321023213568914722162028760777458252843757092442600744684939763165631051914484940681653027496015632915892754162390240835141538763790261459654057348070954535005274816713714525054852922611101597405760646866983906375437514760553209944421809829146511363800374272090687435355876229750883493077873261643909068723539486662599848149913913131697311543246312438681254953219067261125726153934271932028599910616779198952470026761916421338124194738268852195317910498387601946886388537225335493502391469690424942998725919298865445955254867833557311926918426068197911241184622018399358556293023269022000318355824290741239587899305874644213858147869401350138998152737044230472073969194764384271260815932685741073189469698060434086617577620765448885609148771943712060964845682753261324624705285719132481288199159588747807378729258589839124948934412121913123750902112934157771911766415360919246774217733192771832498199100193045810681948115542482111568592308576417150130599431013361457752800999778215127571404534311593866141856586983015939183151539270646779612647164540895249585892127899316129144937073010639765398384076232051301802259863330760465265623306454567743411269918496106598014293029354094526780808895547907772094649298455069436049828135684079507939383837500089399160352027053644463974970525999052776246552162861759676606400250480625559612506001364904275243651475969483530014904660292660531966577120301503861623387195196134255165284250678710277904324425483984931327906917670380360746957735477469452590218607141512525499762560569456663241648300559425159719977508003357333627840730259407491579446419296487375460715623014968883002141959870925420116517757258309895404622020402498918717244812218713745918003680492742484587713533064895903538568749223918445863336001968963830941537041175713616517576544511465561448177780415314341873627422268785079167674287169611761246489671292591331307903373108888758055945764698870986791183794983867717180749635966539428529236344549545709733382562757798345593478842362355369573029970229728047364588306599399538121278990416192231442735027383839510469723493804063927848085116238011253288888299374905312734356754370405001925390763779544344298111488408731997360862051141615890655828099939147072720428927813779684263288465147539557148113324494603042049166326341948688649109680332009074035801890236845959901281619299093838527537672696865415015538202085699208394238313155327337920597005928510644846291122048882062356483368702011986716014958678746153134771734517209533094491072994583491350879274702199970810764479382368071627851753478071709483127069472311519276525606753694926634788779918862835812411953383469135670754550961596684303400773355848870893864709093066172238600457362014843758192208572048472384455805902288864201792631467473830951378411047158289246764745126367585391978369379440201836184320870087360191018567482109974375977546124048429025073460168682934216294833192288428001216497024901377959393884157582721588342182869429642925831479705239709265417476251397490977355679760745607130556083669877546632118376884274556550714761116233788774140882619569467352151462684275775185499485996598163496654446313065631652847953298346612859383546439836313864214699177906054633815599037567414391719089533218475890653663883322255336004058492523276096888201006119410099416680367686708801724835760883852935727678455582364475006228488679889911975817474854812769466887489767089492877637491116778404373618368574136615354410330244170092384425443507044049167069759973020930027541351953479534063201608391710296067553765508610758509423900138614641633795331817822501773764206743417109512042833489459642699535199990690744320478183406236781517193308604066371312233231490111951995626784512219513342669862662167958995796128437885228967375994769368618164175137632030265677741554977123095546320742337126969505442086546852440331817844786512973254391840109515044396581606494101156108218844823906581435622424108583907258069656063727499138703627455602843250527491208163074986789344261633327761281776961439138708158286529094518169946022243685795525598188237044350534039060855238750709393485074862657759752382856887419370331833460718060857640341484631595010314116943382117695680350225480270274042395299455578878611777409820642849857716984252815436074377208282713075636981008964764747552458261809212401273039312574594210047484008854765415711445352174328494798724041480039048205409027489555685839955492796869126229939051199036128219603539849795353744368356573814493706166673917084559478332012362576901130962002502176739229869945920689338885874645924685729513114771970967815657183549317706226897028392024198163884316102393624683419608081150044535734442316366337340349306246372837283977216013553809959272731532149727649951373944495265495670196090361395449448494479335136929621744820126812886014958972727461518338918202279937668925717487685698379049905886707368307833521712126009816459354527076781700532435942017890737932071797773495522044156947416112737112952022830730879238588302361779668581109508991757413737236600577886396505456546265805268812968889887701032901405162018678811097553688620231109194103465676070377879194710515461061197959405656234681524271234732968140218959658047747708474038891170392773597354578583221452318556147276411482415583288120359739233445627032704248107442005426469994895164350791099157046904524266450502908679593057221405389696158370543861633883349402929344961842928181804331133651202934787947478087268500533800447230374002888551244883425591860376030459624105046534212557305862179326486044538471911238276731862173693292019483817680556487153285203089146597072762251007754114393669802076877162150968693209888333075686751986344906102798309748053709509126749571181503730341210463621412352775512844130062458632712822819000629233920664275754637091437744420121716975906657956271305138410508992808130423350373136502889940315794344785761313158903410741774805242780087585997651250828828284896809976334770400148018159338656450647078451256400634260483902953713716800005623479370702013773585591335256372814570249510857108622571336396196128974845069534305548276154348581826526710621225722719147477531703597289342452629114540872531638071837025740861637700537639239623966959477981751918355830912382350477606398340201725030223997932166985970372591239344446954398137378062498891624699964623648653039519800590019139770360914391671644724061626859522505030786210991837782641149642924516074900473761970593950886864151061876477346771105207238262642948630992410221081447608363276348761723053932999283511477895331400131375520638776346605020368275691035556015627428024305621982797561662502957252944858127468500052697560721078097877484604171665344198835017409689146022663111087153437629185474439241551073525869796106589636356515688682283092122496682277055564848715559639089108691057882444170164057346728222397407234944262119919290226797871328468795538596234448400740039580701757546415986893041255605013573112943838006298796827161962117104567027026645885701892517050589701134970236811189671540778955782141332789896055793148088609898261501177271793320865638642673210524279533652851157233679878782269115068600169122762433355504538935051764548041509956828578082125304974688825566093218986473759340188708273894041361473516844894496450969449327599488589730145477627863156197926400236974885547396096366744148375907872883524219670935689857627178394027472622470703143121354366430293828037211550637934197374107386876123345300731682873427951693772781372839167929012084049914180291789173915208544455145437683586935985187200968795568943621251571213641760341533224914115788265713811121782487581652389094141079623054114883561457927576433303429813421011319361684509690057184974004731885684779963531686387367094999706620571716523843977964072864851738518142348569093838304454117893449466118310097970844241260012589817050286872987163529568971900774098744208796587738892666551007165644804066222475052559280171397138366990120592641461232917839772185322372629687283941028266043169960396772427474256815718969607923537334809731452649712579187421097460049402248797072201948814340865324105553324044307867980387786036651648920711905307588332557229272671167725264247414665004393655543589350881037297310480041274044724474228690737801066087605522631167067513310636521847150369620331173056161848905909649278307047784475851156562479394349190824548400820281336160676956166864745861867969191254938754855263417488382891123550315849416315092373610928248494422386353511235036620395502403714557636670440185175621420335646332103854340489616347266241330093086796337757060024596123552011853010251476601064424439322838485180036247137169893116358472698370908903664187030030102133034291358288863124764078471557727950451977721748225544448788260956041861242504382606043628483112386602388097475851169450865994592066898268567396276803071226079721142646634091926852465209056480995816731254293364004671149327982607284057035568397096438727980100658758762495925029785334284488659957895884786486605307950921724687178917451263285775720046930359839442947312119007082651528133657978807754814766613928500510578777571581193733167259396592240273112408733595940345811547936348980940559162483348536945427289082108583212168210086122687866197481048998335744446469614335518235309925065697097965990203393383253180392916843444180295686470965423501333332770134764370175685955266764887386378756189433991924715907385114706441137785601042217091918119894175137876525187132844615680497704724169339632192021604769184638248961866079622675493078397975886084805622537685112713860440006991265097382058575437418661982702592302720460014747391844414692545200280818703180130066331025898426065007049672009745006413499234280703796627995207357685936139539172015656280948505279396523841121812920101121551453268828346155126435822884809696424349241671160337845140349608554468358378225989391361048721426719056063649526297971325680773277113032200585684247965666883754586945529887663587865067585217937416894175362166085858721185629441392378544833820402117137227420373164724466259484602326804753724971953764929169504714445346817311721741061264783566150460504728256229709037258093498351179510525908485143143034814559602423112079400969005530876172127123640876882127374445392857749384853376283772065204047780137327498027217339577312447109694226294036297339040858948813153891218730193254551928040196631944657871089623993766220728322056585577572811660675086498509394521973088083542923970690091268780811287584560647466404778194334298714947102308446652876812046423739032504956792357330105440729326165112002121287814465669526796104027129822123446496554557906637380805251098378334959112254706499425409046423150434655343079368211304956487195213803377780940472278189108205132108898655652713484349201724777385957070861461162352907594479262286048564835502632658327439159822736104152502935187289103797313231439859976703790976599868065138305416965256423454550663135866737669750290520907555829250571257011824880230018686487579985600453160149419323405325653935409459218862828866126270735511454246133969792982698754965209219905356605037317549488773118055404690099790921065220097766270530044023590998882217865605722896289679193893752486570925048563299949390934902124016682188069221710093908030927654185093268537969508183381083929124175477595714323579586524598383482026518024954206824077776840890600419942715789271297277919946672949680938674941398922056971464716017105629735399699843515122895879562975818494690100582947042075156793342080498619011574568381021010159211886732874215764510870800760521527682228915071723996247963711085979961882876336068520143724823561182870121407729322009843562732843628029441936532845065315266959889094348835500630089611782382751106283497703505620666451562535928797836533983824653880971172444377932088513733599945210373685332007970054102066471372786269453785296464789594285578200735631415369185157304824383857582252625249115349912595789245538857548750505663041650632707148919930136705496101097556169753394718371340501146185677627390562021225774838362590349228673744468381905254809566909567142534215580496304572718694614934998907351877667538824388031000377492979498595391715725038441015478751075758834818629771406857355515442266609326240113270832164273475670842396009514103098004081878256392701247795309123181333769593314065488635943234785830584201306309731564150653680456303323014028587578890699025756230269318974560806195010576175281272754242006898696913361168486458455571807250594943480760446447672670663708095473959531995816919140532080448418643123675978025236722232588716883212839833470419235061940972384363584710630172651627601992935970629321849722576205802971182030682585753623468391453258083261224689345121327575082445480399898059844803532678637831895367274618461754666345381682752419732286752587466405894033935637350021604765782775060105143818850017506619398569016124108465061600354805556094300330703475643103158945861905049724128005361813884341921959520782988550908967149754248955047816506263040164790625048306332840599732772348770255808711514499190504322520807945919620413091113894570217015835688879102659692620779840024582305130684752274061640824772945754608735370608049360607586690969619656862908926540415677487426220978047254802427171241267981798755888430796970564963470897335455892466781084132100430836572953374206853754337477801731673797231979740503535229257827964378830126656887383466476679668853411220668564305110019219799013694411957447487341749836284071571733795019595554707050495747217555436017642004545003044679951082783044682853606310210504016036038737051554660762360704257982266987181254567872547365588584061165165488290328578197813359916292397942995705647482983516756207487064495765542922903217015716429292305544853139976376582530262722106556461373135296572211634463662953143608386914445786709443931936029155153779064609008354394933952504441986137719697661773769199646247670843937291965686844586460600603287180225795281809188604461704489904330071730966408488193180299530914718842091344960920825599003937809753940093059995015318321393103974542923197670981502256460989239921441693550911998451432996192567431837852581852654071776960860265708697566829643431028402613622647333602889099545101997567753250175379430700871226457224597410158306578747392649778010615792715820857681326551486580305427756327471001040106959576007676100833863183400843707513032939975243063775779418730010000841705718398677092833189348973421268479744664632485533223995755777413924538769713532529208427167457515477667714056032726569588373867915825690876039794773647137787158653606235866790173588681835706679020828662824910899512911945556646798939230278318071946412964416259711930859399196966629445556643121274732092074026467514627289098662689417462185478656993915795508266743798748604450784963800444038513914650843977635709753110942568357260639323808108683149092543761283320699359838962134559431102744510166100273944774061336766041582126675157540909785181903659018665975200162603531949030291517599645970576655094910440241421075101200303776429161344196801296307839921386007952244891652690155342697233244355769551512391170111127994418461102086602323850772919776830359622470414716675678310062907425258861392873524019622571228366787253517162518203726654570829511072346889722665516200363569127947022163956947430880002372231871607682488404885297617455565165319165489117218700348529001655847059435007261471613812747070616606600955040614167808361481698392207013591190254213147153899259144129074779896092234217074822409937443671129024178064039709234059416151387256901217962337731313471559920564591084702799633495240744777364757119814043133491836707405499604015152458927845842764070552223963417081953145768347748750146176018120305224413885327950970630836437266901044386517623211191292183313351800641690750680724968063636095220440194377220766453380744043307545022564728814098974746483028916766053960528810357122828106795449974356244788231884262165308919168814163776039253346825395289105405026276713574261559558795028250953790756524167568857161024100270724137997172518687222390037198029681752199136597140600942359050262354712134253933176381618823073264811087068182855124035263561018905092845259269058022789181858634522772928725298126644872237350062884526715649755921424050809996119209091292355222333649479546572828096736383799148618862337516918491176120307999745647734131539033486099792795276107668096690675418275136328085456608454312723024038420113494779648948145244306223395684148834539787101207730635383272684446564452206438470106932232765135773600073397633913105683118978787401624998202254739872545447272336113267124963449775395400756701552054862636974794078121612894193642436608831854525406857453936493774045534448852302750865839742604258907351193491770108155892740882351133196367385422444633472879356194192558164117593374039668625401210555131497383855589679747923438228889290883175638951088205101686479207319948506286649919326212840092714579261425867708188018821221060587191396330285237013624474330492121733821480060443275913544423821010544970591133381696607408359520398383786618135417900644275581244032103359591479433485691627663844768989683813722104955934182181387171375263277342373913281971688095064090424466415519878780516981330066232627844867038608843818612784253838223704579497793953791746173933082070645536377783934387190535212304884740931516241261037923512191700742934941623021757660009795385409973359100144178895529362268206252182538243053523647789307123564598695591363916212591829230817358974648310648684658473964320257686137430995304400840094939790091571807096520631160597435630092865567504320034207041409581197790957241422436621586243579260189936635522253173615229018243644832155167596293138666053164923591736319895667426159618456627152397638943618230174111114156095245472358245510026705742962666834085847249633198543798489551197516719799132757991858702662607223377597831293458939675052624556047210154617671076193687628145849938453790297804446088219780975049379023767515309436803982094215068843379204665247924438344271869189422244297255050801758264892487393808935288897554633522617037319084098192715380588849519672550113358929879999873272910541119661239443097509323405666631129729880744316260535771909517077474058368274893898447204644974118230279128126029164382090521003795826486093693662620802047935673909467872219065165291012354888676578064009594166775769510714759462696872295367811645954084477401404761729354234304914193044939733025750394954319898109438427690758265753585302928228093675198545191769269339400237777643926694504420270460314516514734355842202840207227372114817361374457068640329185242839652571922629302899471574568576041467079661446463229841412996819908849034742933559555850054743544974565730358181821780514672402644053360574335949289728483435638003294630178602364936582017931186463198131662481016632768609088818169394054874938441776142435719732101585700386406769807500715866753960561373191125985056666600879997581251670513044674836721071525523250974844313933320203786193112557521530999682039148018384515970385227274577800492406515407517763470533729598389755879914462995229656750416914669918041414494923744631970624407600829847640717260569639859842695046092089322504879126088851439981850091660601415749069024329771567844867519857133865296543692573936013633514913742037642979144119237244397800588393921163359434184658319972140096028324648255715826668436857281053750903683467713755532049668389810170907375457535368334643288659665340729898807357184313287755957113115129180150070106789643690873830164253667221551804983417403511073697125151508411283579999643882888279126958465701481181992082167397689033648829020253554536047683795217702020377646176729274072820005708617309878580789321204321080678644458221337562154565269903457424217328391035247025049013830544450780239909559008908359664176874070489442329576494475111495363079780994758723773508480561545760141724923413023277776829292282782502233682140756122047771059115265023745905855485535457094026779810461315785446203348800078753961183926847458659295340802877407793688022697882957045370638074400795182905965252257669493610727356809137221056465454036588495958042886939091804530172889198502202243702831018413105962254947728364966700709492981846749461698518875770622260578076423841759641369328531444425804022396929711381316607686103125874346215735251823206851533869007362002810536975623605869255145983545113358638210410852120514316801066695777814355019470776263136844296561254871546968285787552155895740366086352488013621459232557312722207764381861184105807228059295337726302553647791424341859357137842267229548960049610519436513081606419895033981808804635918701794239170887918727724870049885762760383115349057951619971454789935781384624669033701618373427516416945520184211112905989992169412477949477914204422738912075803755461001312829431220095574720988371145574202348430872309405785891304385886432595112117756666438946867268542730889015096696569685342174190344038219782875982853947228788478371002581005939898202646226304327547966108212959231363483826871362077989551578784212724523423845085411940160593983134236566477908613957524103212768798063319674346522984374571826851670500377397354265436269184130061914727765672623125826638907512246784424690869207582748650320801975207636012690971292578171465718745486490661119106436846359879855842454477884279932243383453843453204009474389794544414361955585114950657162369342636202327892585644639583657303078246498413345139934345444342125622898120960062549642603967485840881305702677609898565683051718785585796073385522894589578366947039191031652337418110219326521430927010243052735027413840529308964023008225916950965032335867443985004193057461410448214968397273748407290335004545459854989383854445426238033708359141499406453540411873878925236444588854133415947955671067889074680579677434609464701761809792003579245988710546444487642726025060375641660463952275207210152937421607808453302135052122946731327271802141744614715226573350413968095074668020772116319444959892331081550157348059281793487857745729659649007672682651399208725585319037798384511853664613133453267132229845833479545660179023807211884691528021269019080212826898503119953338530952544057401207995049946728515489201263144081225026492216475965275046605107339942040942608639278028486117528950428047270259850276196332846754033637897023198259403552612880045486056288885652371905871004576438673184794316646183579659377700694333595568822152823499019656020187193085708963549605424616269565660366677059693154663803999309048461413680011090146065587880899764488254028631876994797171952426061259922460933857711945120557263724821999339878890943645313132352077044019882207967673871876811617542806018846052038434495656927947159588562258445329847646371983055256047327954808708537763704415406704566671859866045513706537576310333295001560397076859734565058538985634393763559982651147047008213611747775235194603788193044763585585225037376489433691308086249414582526769671069260944617211791222775085852119140414362156604316144008731684359607875311661811324916355023075129198860629697178569940571158152847605149843586761406128001980541762030892354065317075606110597083698967620069697677273534055361254956903202963066221972849865471691851289088222152527459596398825368261013953017580699127188828581408697540603396878672181675736505319828473895322307742716894818366871882851003630806011050888192058249544650320529521079928001220395089842145229226506277415193832303940183991914656483603656680900214966638802154854370114496006892861245061150692365725167193379777228565378674631305131548378885250400671543637285188123779909577142411820211783091323108375356495946864362309357660556847486395147782641104064457358192814024511952839833257060545595544492676133202693784535053426380011171440614176714142761661735395471984136874173422255280115741846854113914534951014975550534217963139793693506990619101032539530321218841838291517718129653709002873081543179716180776744908202237581896093219482198444920278214128188523099052068165937950108017086103833721602397795580612426876645267816722780345911988383226630237073196989222120311982152375399892524171987884377167192505275217543149004983869815408275077131863506707180586234356079053776241792688026670908248264627763576531587431223408908246494060896668488986527200527387314027552893169091392094766300959421770219777105880101687767990781065011070071541495969989936112912012519925317930178235283902521520395090723088610795737336051985841180900316214911076930796043359590457153201159130445124946431259811264876198549929479907583777824628270744917294116833809463273886669956966454902595461384797004465793116085502237361834446220401840244651393852582978242867276606827033624645814890863316063697507207020951918047488465076858713553942398456681513493363552007022643925895644685525902720477826050492251546006867703446620614468802524612517398688640022253468658735005113475995620362551811262020341431263670932021819063251661786337144985141974547472550626477899292997551093056082978860998225423192435544311292028534903856023886009456687733823097382548323140630022696258239219727914280468668500311053903698201972464208890092717654496348036576095117984252972171343551279176906117598489341086080805166769842678113038068569147155731228879046239965246296742878866150444031765955405729574019173302757193475314448307589541095600351524398806668955451229205675012635349357105835718148325286864979265161068252430443731284500731667495932095910524478645602850963082149916366109475522057144037750959595093865660045530097877057145762920488632808540432815094737105764331852328225290170441694475292930973228375435891699753475533572356439695719578783988787692186915649615262349130084920164849114938930922422619371122915067999408312049112212411158071600164721104310965347204782143605352131502219452821096350598244514295079014017767780327802337181993343336604102204575152599286917881405365110194958425709505251837803324272925144746153683956999554096690261518315202178701751967165359435485788937690490756386323674905351382992726845747715977333568589524181314590082332813627540812644592501380444602898154793919969164548353229574467267613420663539728444672365558534179409037184822970618937829277839815551818523500704295387389875167757750145330070061791414017232281276594335626843288927479618447624118012550473692138717593940212475224843122783777366636524642392641400193288614764963228908611051115929656897230747829070755920595178206308376132079135829147414614094849372394065665704102630620724936704592957531349387485533652018387211859103020721240001813677258076235474763797549314202452563516701038762004437899589613663046103011530467727257674438882066457925982449724658073680442423206824800223101183665518089321329472346960018011208097384465698454235604100886176507491774434508677829887332453368749759512907612404974486329359535072268601776903870292781354536673504804674521226318261669573914257127812145410665576361075780120722464409738771961122661565531731492436309510091311331352801377498198499537554695922792325085414061932562714647620711634665418535326828348980557294492301138538088580218450066414947936114675277879016912531743938545084014737904615865147743394347284556334708255650459516245195965311861805159399542821108742986159470360580059594846166982206051812093907775240368220231551019985149578492819367913874026112589549300512932867859329508049037898290508079328871705228653541662776874292361456453134277796675537175315295835958602211876172976005505287405066484680168031117951313986488580190950074066845298335127255837812962049471448702433989853696867356330614550213132625901515092315483541994736232800971350383728298116113971767355789006523968842769081348227583381951202499918669022418838648706751790730770447156824461704286673220559289378065457416047613819795082663670955558323081849600735103320981268837202227097033146665656660438743972291262058677824346868598873338994175143511307357525275434632262531205919345524210656382439884599961148565277867818943992295732732198950313991311643459212600760556552240601118585626480229834585046702175219513639976077189228875073996475777339507615620285645005530980543305399695719573012313776978659273370533758726306106648868061584673066802578157424038219076009842063759599069222094893506848259198759760003741878701562349908741302281379451318095261398215068044430456873377987531669654944476669688910447169462533807490717288151368827382186360290680968423502988938353071962043500110091933179673960664075027887396769739531780243564219119946028633195435274939013684531829717787843562198895431685998660965180776029561767991588421121697976864670294866148168079264767469871041397150522337754352479019813000028343845721909001718222209422875762162191919608218663256842408671117399680924433725936839614068843831194845507079750626778575219386702545969113587572926831721879505713543543132046163935182346421277930223992245420759618844966892455930956036869845409635521842327684134742229819187300899797483141113004013040978906817261354829183653369934663827735165786582645701501717588395411105863009562236550626184014530095725041761041737943466679751312275459725170014396428068027332471972809885793105185364057021635306195741815095950805736565097157691701211815948335543937696050873015390836675462262201229231852619570764859255160947656639576429839158520698729342692738451571440599110038070332326446471562156464001486797670663508185032767909571492775381785804523564662419054187676248109286479125650222010446870598910545000678518648160475920180289979298199648465998779543222099556170972438775367489950733306597604010436982820460232176203002579567051147898778280621887873943314816764308128965209083810917100633835378849531375645025013534782430981979589879041223172563396661236728643834675118140601157478613677196825408057975936024250644224499443131334335187583700381628216401991432907868340447711165991742687376750417548029080824923122051150054426437999323977368526785274126322116651182908776494425867018914560100377692747767821407255481849579583816914796006581668222994548013586548242632434563995817050838606806225233722419055948603487357198778672588304777483005405710528651853161390601425278858806180423492917948718812691295485539980903461458592182268174955404319330741214567105483905547559407264361395077468513893297509250014292919026433965297592206393764486258570259381993609025163231408023615938607644919793530701891525875852944537595611571684888946457076049573809709016398427097538676192537118101482053684239901682937664358168026344119866814467672621779178012174308481122220202370171377509368558558016741479513627156882603812280249931589980361378374414260634059503669580746274366156301026733382657896170476645065892893408178090132344181255574401839962638306497622991652257345600822164006659547611548460067788361788570114381745000146392616165615130198394624592633025922820537331608438726347263390195386690315084356797703096339695976808248058423476074845944014542559242135380954648242279895047538651804609701109745807713927286831958910194306542260340949851870253388129167156930144307442450098423279160340392042530821480910265225868976654998522320706810969212101808930522104224339253514625572436581061401135403436556014041542887329020531492866630229173075023825071968273302094404512579933412253641038221236045749607672028927872849643252978600613552134087509123875100917992665365607124487594231231527437360355303020117114236808633266103780805639283192837461083712509921064969735976793876872822373825972251859801384104758808384638435348152130909559410592387736177333282595533858599285656963795329300717690346322068801222367834779973322533907372861695510293039739376986956374355453838419764237671576476601236277316502016027405698933411973188231236887660073088243161273157926682373030825971342965252246830825286172620271145679794850081660500550933339161610080073412296175069238076633688093656841769482251516674926369110722343698264454710507291205506477208018035687575585522114812706049776976555237333948631547470373452841420430584602605635241742928413485034531295956395463373046558003166457386863150449921616942335864388677731609064504768974339026994943973534230773587416841537667280450159304799273605198340389342914359840333033474808571573114208877812390867176570335439476676380680837534511167763417459090328556636645307321301356572828411379653637544021953295190188410958112996195748875313215452607645577437827369172247144808057528504223992737906370198087217996530805992432154281887582701767527056227954519699881366527039323357253806370702900450158576686340188100330579734760063783158612520704977832813852646774402359613392924359883387403916879863194195332578115182592375361532052139535767082108851433567380842776655489469216543098700206662962278546703491525741432901102842306874752666712759594465979665554629827881759611617109096746045560889755510969241141334397936665226845722891297307931642701637763321946017939086432497604173042895517774212216485162371821440843898983004971252509475748736073952577692836953414569534258818382622010784551057602354979416236943599051091101461216484576302417301021399046485870427116098551591954618514730164546986977589256023196665203996061230439383881683893614649915915551975839369437323125334511719052833515807849798769208075644068947007867375136971899344774745462758693620727615837504930193198746805402068854924461321747437954195018697354541984977362750593932679263235997573246218239098513747020099201138876937751438493252145339709721308152428010225093284594725631925913718393628595777824870224448892650066175715834147044666045819436436144677262758929010992092950952119249552567172930252641954056098571335211685549947962601477361572832878292272276335858852903314718594721475242930620071450525667477244850793444660727932037967885340346977553760603647323450805214234857269890854576815314111914695444308754500763873911028883745992747835495622741471656057405701412290694207586925529917292783027883695437671767812452571145903033331944333560301519039347920040419537654027566037590860650130303118635091388843732769951680046666211967929113237508460005031415382914811022391642450363164439260393324724492455932202070655812239568438345913640041176875713346863898257853888244477206361485340832945169156658760436682134688293904374902333045195724734308787473991947575221825108579329530212429904914542700076487353702076136027241363541704689279738472788740205938413429889379782483517934266179886850972477265666571708756556375604553068724531992532878021500620885853832857306482253338063384208565573732699727629111598285086343013857243311440134335770865990864321909188937557081284882478680181652474633715498596132245925685723194816539488999082820296837920779393974125019044475154700370550248623716860458477763604375477633110136073740086446830867813793828511812637399257778599267811776909038193996364365027298967072122545291326944546364995763293570571861055618664190587644327022349196973317792362620306513797310986270682215326931260456366212963329092630430303709163534894206934993446344448390832749232137574135362660286402200428713153244538612706616644373417201816888923685006909839433196789599164757864807891030766449532036170554028224835230434015443466354251138152746674595197394114655978822317077521957381551836501619002931210569674963144565610886607826402786606366881822059171945280509511322274528212476829093853985457739257078821214119597785932474980643950325614579643405852017176457969193456904415627789413027335326547772516884097943132373331525171500784525285509770055240102492728990293553858532106457675037501169086459315203026211000444254264972039226236040702489588517826500657340945015844923971365226650698572305242791547980102067330764254142636983773235720651691785270329978785053893561367708342133391978325997409183183881689329992316069489170103757153815227972575017265426786020306695332652507791947964609537683450861903793482391695112237484348497681747254974386174540405998365218214473872804451097196752406899075687847865828887379949637245815488727165274607950300742436133826755736852706804188434807472277842189293298917366574662358758331136825519129265492353852653716299330327961420916882825826504260190113381054934209434435032314554158700384327681025884515283252259926251898220752803331227327893630261313414125566362871360332466927400817055354525503663624477883525163151462019948222467661332314219180312741641139951507536892042163886465483773602464756798671414790249781997841021159632828782149515615881566296449589418284976638940904337596844304425939709574697752863988450738741463188642466993735563057542835268551635075170437155359312268090570295080797872086732256299664591575530504768527499498157166598700863544716620123897144525617438581410773469162121633868503976291342455731201175307491882873858900393502370696863834921415736932964196627188630320652206610066388477276882029460528576900513942105256553197965684999823666865489535928916458527836578708111585438288724159040867580536874372161461161646925214065091036889577188158661200753803168149856114761851903784175646731204186700972618430938797042837000630159220686556676666838030021641040803260651990804298835917262593516116992542835616215825437072040349752781296542556463855666101407253081619792426773306366029828410647085483288017724878997635322365542156249422274761155916834526156586938974307892483949988431794309438342613769753953097769648807818663015141288579125588281428252875240537037754828659494828684072622633661944316666269176000749312282163020329419269809319134894514550287589154047556305901726291628880314048337214246052169999025434210899805531147920294406089330475318923734845419005898232277518489895836345102589885717681572730411936599572913648386546559560117209570387751318655062814657583969688679519825633523686626734173371477599920987875265807132049811809473665548257692923153452649923935580360236416877986412645429367820782092860632527722091141267764169224360437230490982679475655860781811290890529089023122446108166506233865734806561381821976477084638867718014678736799148140472984773740399733211173670048510122220290777821486708962149972789681895048985600334065338742999329553261116601551417961940704490932703932050483023535887000366409895562696917791465125191208633585256632148633104899741010588037081001715521151357740653773468841021889767475125850608119729552140903844583167774246138148331352215203583328988959924344630224050938771054170107959999333971646353605576167229823328516432094225879191451262346981145318773234867277382629922180605987558015874963438497856806920951572392977346476778406998021278901673342542476798448578488689025509305165451504132362129294057487504011983567403633952411985450115161379363181817097281800237285388112796530275491723797320367525570441656831582354251925668606073527002859954645577195166539366139357664560399350914585233409967156466582584583455564036394409625525011355096303691890258601826110020436709405206870671693546285744850293583074937108383057816229889542319638934910550009831300216697801708735655410812688497891550882974511586296499207369493159161421860073544550533678451776371959633188304812122849114892065582692794730898368331084249002739545037645436353297991639198526418458402725784342071487100363699758975874473163941402390209026757643719473087307163202615041204991451673911138740578029973051791429333847149527639843175963436277861151526514721757751454289775910151278111471176538143550456606051486853412992099873214291554684574163744133858776436787154612517006615757729854497501890214226034116505831267876699985982639520171039966132960465926324170869362492142336634589799496320460392807632268950986703367170854620301468163736755149940579396617732876007616360167439873162144163703695807868759609460658952912220916677407976621127901740189008879141557608625715479851573624987304812938959986665180342550308505467826164445984893927946543573780510976678909043942611564879739928765156448543031165162774153576027757274505557839937346600035150591437049685505790075819792840031217829225030947053288553257245216003706382097294531541733139565884816637500482059317980706700253417573839797006881114831006279800873353158758976887180648243381138086848276762480226379243463709548619945201528078255275192241288687806739482876716884968897152638877310144369194049659767821215177646139384103626673984978962428227550753575375738700389430430980094335216047209747977439666019492376735126929303882605168931366530673170475077085959651317593182247249295992724924523179587407770631326533309066478692461686637127182866898434297834608479645523911953396172169127516184886158289212495019087473274127895577982235521075326651517296429180576405928500376480787402454554406134417392145731152855276122028571160072697004703683799374560467578857688451422716939474136837749959723476460578990103328386090563300522105953052599718722176771235864897853208615543089722112637705040211099522888222478119028240283889404055087856991225000959518519126153580419321269482999362506599150303345414466599892201307323157936219544069203985874004535435140855659161952433732081702198735965869025468650442212900297479591863288128132484013302479789840067939130257822112785010025546536631890472533558716054377616810775744641316538515081792665816241724512904309010146836144179078152960278415086677886529293089893509149284835565778418087076034173321475850734827604722676510368093380869266274596022600576917545665022536891547976581846544397191954863152732394349992738794369384958902155582532208009664202104442955615096591691099840524650313385942586064805066790421082871081198688848920739865295165881813881372436877347162241130844393151475065689141366352835772926926269746317262776755129913160082091417192563969283515388073595479021783100133562380481936848163274616046205069829668189230720798075174776060437438814091275154825090675935328910596486364147656584728181633684513681711457895421354106339060310961379683206794272729380991771800556471906989937510566709975175998984813843570431194862729159585679280883037880351568073291250219735009476140845060787195896988628788465485714026378533869856674613999458546364764552350166203250028051040502108275919776027308644090009787896465517161315089532243097664855687869100788882048178179777427628725507049095279655726597826724518117087217199434873109030018771411612005556952873087857330501192405656107359919174818721289460800108726355782080435510701789056172105204417208793161217363306151410351455501207936697390994229169623294985447626321533765239034685849923880759293713646962164382613219371193004653519029518861425534994171601697191776827921868902422619118842184614799033162192595458697986768296891327646272489370062612284397086705449923908860324707127079125994629111675456144126488626906343262816348676202597444640794154155652451708257530430721741991848049668908594102515508772823469838006016158222597122210031066589520038572065151224610838946972095327196380170417023943572851662430096129549890125481708590569694439494895334843752749599913326861644153767643544791973061375113478211279800134204862266269297599439697697978043962672360634128683918495286154565976809220231890140686521186242049776755391610490440989745093450301474276430736971518531817420592720164018045655020303832825910784855357078991614566241240990067289343831684415937526028798690219051988036450645165547467067674433965348261323442338456738630966123190610166359771012707547222799872965406427711810913511536264886371148210550092878583576937994398933737128013735523199057753390666503737859103565503674652510234573502500631324845489639040571231663466546325466949498757648733029275603234714151416086487488712615143885280147078970488685472578566423220906731625115602979786978934821879478792817877447256940570343251855360254735083075898973504083859662251052791503499800418566735306865396288511569261797918711093594958670203265320969331715560197027653451757472337281422560700555991061185667253033180949578826254000675881270573842331830693520768337874780062530924525505076034779293120622978180327421174932092745711890283260137106365778250512274370688247344849932007602642369789302289810869605117169448161210750637334649068388939686994985637035793778438965158173811514704964911939062371335991765829956980166016752458330237224192784490427998157965427997914338583825278251054136303639096861229498024242269009744032178968648132558504280177902145482797740952545880645759480978665928175352486728672049461538221991692223866018083403493101505530120632834994568081266738763367426757935594102986086206042783907866271733011303555585232842082598248715483825867260766962913829373441406759783822939424205754040498992560710116679364765972717378996543511167371509974613728561254448325718472221082981343734385779518829692338949418644661820524822651485766644303879260160858419570681393207649096702452757898252435537681572171174900656198078285037110414093823322044487482654316020594161772022061730180931118461103433775381152889593665299646444972041577192579465212427724593516912222335430970578318585647686256927613198356260516273421055112977270056509206981399135324205189212601235121002190989761180998248444353264833324715651085924854132431447146648796965534028997355513378296238619094633647467199820731260144970817316178362473911256323773225566070346693950579373693300396934449396798474877140645101173517491831965465649203238994259198597510032797674920989917103956257113323392229218959941289462289450569844505566305831618921152062664889447439793503293088900415715190573157005759072115401393294620542797506568894449234050097431933306629010983415356897763784057989658777969673040503179369934094535947459772509445061596002272987328494009046924821263098456510466863447802376226961172481791700551590640347383529301760746876332718762003696128415565325927285958264822299578418193052900054715272872254814503442813925947476076550397907650052418962528274686188251909764248544153210107400317797967181533261790031070590453407118402962102466406964573062266023892992974435522475089031011862107330990906933786668195071645128579885839995559301684774320531460180456714863369568807315798705719454085981323025659179079264465835369506138292284507448308035747486845945123698964431090892295719190328176369248932934765383398168508244989714597528964278817524826944864827302988844566104040655077506210043786377630682161139821653681111862845430138825752249236073706514684434953178692682392966423377669894030427976202121173125420378388323779109404150791857232700938513805342421776103273511779745302994578221665029759161758809125637611597820131794326938804583194578174708607239547473938791009928556388825122110614900494199401833348542160439195492599958436713452069691733583227691583051178103934919289045706505609009997044745602371361296890170569668943896147917844357955669371064690917525012879154396678216498624984130118733907521506982365238885380657700480700830941329114620536511348077560594884175448243592842271221680032824830338472417600461783501481896233966163224711172029912438447792724275934192993731162315316164134024031724926791104363314775279071240726511970543907448894208908135114573675075204768509589170320727792185213407577493634569629731339585715346587383837526253546197140484263503061171291931385539583215696902124569047677637647621796857577310263715578932417671033998372119023890764872655425384202105218183984921491353555520816093182620261397363581948680110725683608934072356061349871434193055150574984649391262122789428860614667004042335220307723873940769361794292531084961665822345167984297364786476332413381950728501756687542357337119431123782865629972342937686298455704912750264007719997086893170084343817305714782576031599142388499631582667862323048236331780006231191420144613977502509780394172086759086120274223916097851388989852127082135030500507934269517683026211573232917337842801527063120328164790972877297405178111491107797207416534365926160444009708032479791334192811098251431681649937867590693903298793531064458887697807732498256399588786494816289275099427517229400569137266253447393569630090868075074002839667629401374799460589917654458937674414308416292949385142680169804922567175631582480104855363672583379521443822937442596485292417141908257147583345532093603910648854713094602384132138827511193894526786059941605196948944735114559250231817717349583181947687574771248842112944067870913327105766087866630526772022591714980602412100748136095517966832697177183263902571332238340056313347819135592356192326969696764814348024860994203776457493151907537128599204498743601376755300467542902473563323383137222118555442018045213874079862680447472499712489708012509310585576181162734430983251143101512080253446221653048857115608737411412228650522479356394772225758721504775270811496480576388432510086704772914914459885806989956062755061434613959473280596406669264328565980200371167468808189642877875664916701338839505957903340392853613585792775266895199211651972903657972565661723812969064842221071286287101234615333062024380138376851477401930499981171114826554193285275759621708946076390259854719420515470881248970581091919781923810062192925139570599693955749733993195489754308482989742068174877205946126756683846805681450583035231800125399124570248351998619725521236681493650458897081742583971726553237283536191164881444802373445912871608055813013701946603454252121992031982762899490957876084435991893034781543109618333374499799902359511234269847013896593330407173499687666710547016222154440549857839818498173446374292438250996658731010455996452598805189312027448496966043714250456273685544326238024300119646605860484944203387506701595031927403815761144921304373947438425635642845399814045098102813865236129101687201924828388859773417293383736567941119909038191559706914257714052356350474654034560609147289860684554664329442084280698148230804125382271514757252410272983060882333844646369732494057405112842683535003517642656091010239050302097874330114413231326234185072032775068396827458164659759940314735085034120111865071094491401487198695004362456437499513821050985843002874281699148523725773642847203881425697054482296211413536838119672120558378806854322615292096247539351509068211799526981500204988851809451948010239394961041502513513800477454528598256192389620853003031728412063843109539523516202638835190392548749937846782630657800996906527300957974946533740945420703065724652230231862658238304433615989503151238955429624008712833339407783706674870557765651729162588871933758321610938436563844484711188737987746676484415783860557867176707576995106641901384752697982998190817614536495973783265112895474142301448772228018228147317856798480350860201298303466425637013975537502680328106844757210475049741591823665842954071991785812906571489871003740046377822329817337745643086068905932837175800764336618627302857905801469440300319943311310780128675117490287845830341788491254769405381068209534610728535537173094392411826096901373974295503071797843657232346714116776949797966388569256702658888544460723712257117048778090441874750860567491596938392083981697807721045326319801815160283208902696552598900304207144099963018706536022820044764402358422690143275255810747601117064056863052828658174753754516972384904321077635087583501355999286378926080875925576705761791119476011410211046119483764380766310253850079306736384486929866848610164617987521031834456035403287401250057884455687029877785667787885150911816022769267766577112257690408568515397700464014203047329080949487574787379415512266794071842850771215914506956182898968213270011380521939322722371288832480424431857879277920337798173825111437955593770098512711949740196396986314114152033925619703768315528790270348502122184815531498751974326856664910337257700813805141556469157806568788758045329085750516963340443297296852531080238219502775575253857483739941834069241583316690951105123758383015632055341920639319828756471582163748615355577548510585013131115363494665528462352968067495102474588256782457613458293846698050581321904911982033183212062105137487724388621051935762248925401882968509812623273919532580572946376980978769279931518165514712859548464195147232564083292633917012474184047955715205919539142022071337256836425752294475373102867205756033581818104049055314913511631824626021041937017286515786598471079145997708198347013543296235714378143638654392128372884104389915594283847006489880190444183909943469811052648080104465961979198808551518699637101373466829649060691166091296622364049480632856120344187995265959818747091440218527428567174591471968345967208593013642532236784447673412143723848332929159292918017038185824423647449333948827497423973556698416323349621339972739926598538039853142110411465615626326096821607775754687754100911892356415559416943990291940753866212734796052734157573875041996273741878438076772707807645971470060047636105860882851221720808416119531159177572288756808248368865139870899905551614177729213483527348411542686032597352768712212760298822130157082139188297970199717449323802988202313601166013251469334453093543107708602478725565608910571565814401800636516342418858747816524133102289199338834406457239559213519148062158063063967464202813518020195933253261715208986541661395258533402134984619921781983167179942506771005321153370417176992075875633573647316280869904049486460025054599193509520136822038553430275519650928300424881364235968117121734073513068289884384313894853122769364338947640178441633759146723267064844760845024163051235433884030498050293583669128025429932635601542275229179328504430031306732528420665498701589221098924033750021215722673770462081418681733327134951708109037160032991061931005923258450414624887373469464708654904614282664288758215409108048786511372155289076678430841616523814098348275424617007994264831186829409092183996776069477440854567766428715857964534006191963797577846676383197711613850020657433013947767496089998045110338078228906051811560969685078929472631508366674139389584240151688577593888722653792386837103916396754726630273187766182628311745289551074668505360392553369604365775734734083185917127090600782529357150372817560783298767093763736663387393720992268055297873248279662032500052560585774018875644066210637703986345700912019400927638651909573747438489803422451172438826403997825127132139758292086954742294761973597948989708920724307907195492395129209935025332815335480505886126948799997301551706198736282756185821377400149036811834443202422288814751776633817020954847119687523125242028478665918280788278066693239262447446307575824473692189868002163971968989869872294190558146674400974151569031505850138827267140661697488871894179327239408621940667971342305075588476577159764887961428636440919738419928210146332103768969616025709481961509414182313823910431560897516147851989017062862413343587746240486811451050592887715039946601221643971497662122650580121898718841829861633314494026094634150888672292134599855274428912464753174253180979052374203778236796102109388041508284679275300225461554553747583784836351270059355867968812087603587234280081238302631085438300721492434412582030047009014470297640439078854452326281157858736432898540440257828289011932832464479546031250864700904528155351794456607925325003887068210375631302324012447405313380728041656895062970920249490205175108214922670260178609092728195822845569753440429932525743355303014183514766371415576091895072855587853133364841184762555072592373071756388158000698856553296500507451474808826870718891748053358589254650007302854194593810282129331624378208650495720641164242822179581979995265438892629105868588790603411656372747210376606810180877958041016649860793054533727596555441676707589359435656948288428701274655689232584754320435327060318872727987759890202992943535825594804058631064905021174076548011077961683280759395046509456196888912087391574560558847196584175278924942881174648949204118650997405701471491344934847394170005066579309436745363894721822325810655294493237856444102901522014737875044272956750241283281285196795683131050735752906823532043302416897053690120020084526201499461385301822988476241617422206689287378588298443534099135463937616475505233392595680751190977102630530209891406327406564626351893839915217181200332698895399191981692282239033856685764775277958060809565218855260548915795107744751851986515723043661087034897674972015481867211626381949060577210473162100074071141455631096893906134401038357101448678125747553928680963491274761182484094009871170604659799055258913371339063012629664622410347865104404646870211134551124615134207063015165139081426433117093832891825033809508354499966059970079338963053610844462131149448875214659772074546891341278981251461458636140907060695519915223973681301781660130576223949160888253185115342476560494285071994012200652861886178347350384812806595338448992439361313201220080522602936802107116986180090156180048753860570579732523420278933351663287592972752817179648129621180544346676793619772146002595981209339951192866221530964496692133749560766717810240975253760907953434662779680759588433372764803441815097829589094509780982662153920300002500181179318563275608288617178953545796192434966864212016136265361547189988154273826793172959013945249820933448526087454978172967795798393939176117664064089576717239348303310994192654890971910268800504371304254250372391415026637208755771682398201302617913761023459183811097934835613757291688120819427636402108271912046642212639846240503628133751571988729018649138766004556794624101749920317010412979190702054238879469346010310860609969980900236365208243324187442554141071876578446878494861825794701774249873700654655781200421373570813012365198432150578822688897842775094167600484363209649118106847963129682832220871982067297890066144463099446168888432587246876787613321322687779388727801525515748651276062550932380950014869785125079537094321048075834651792918786480785863915209040659309664413474940050637549078637914894058429759463160611416028197274572447142382202078684269838081510778512871157239157677071119069689198786954358818529096813566290460573712186323344237563830785347777281604964786080506573958014908094270776227812650614562359929875472057848420838751994253605223278411081089983329845305315289460155359536376303289480251713670935697643434630819978379737903819560887283700471229784456654864564442012974855974257456567840259042031217547960137465647407345756545345750189075283859085300086202417936141138877527644354607245988450981571459891122327720585623943224735296131945867007565540562587767431837797191316407094575804911030543478855156327715404689362355043766645643684276268216446127598705471807620816371351138408071232815943536054883715107524879001438008939492638614720672221709295097984117207802796062975299987155121469179998079170522143727035116094699289999907261673436273211853997600119787863639683330058275348116584463615232806823414276877182300205394629373997428999075825772937509230735576848353264510000266846554006876144975805356686770649240174909427341778647441407823661330902274379768386127192463660239048492891712614855509361892382395900017421872937386270855246032359910982781690853380421743148737146052429085311582676177846153760890099835810525394842888705434603234576381734085153735386331659822085995393438092261019835792729064080535280260570891272631297636192573342260714523170145005197060644524905999622957642374666660309019338721627798143027035806385419635324097152556388526700641981275033359941796990064358386143533288798001573306986853626434502445098914422298220262701130316712115605021599892743107848846334053076650557875241006180309408215153206790677377521423978691589365307955879654063972897044858249098600729221337363329794709071416928157658949093077698673212667678053304879846326694930053295498948695807661726333211563051483658399602876437688973440614909685427532779739371762471345500039622540188400585535708509685384830885299217523497027303323662891268180575752021154690049567282852826456322256233119047732543800405901025217796253490094776118018254167290598059713298135232390802481622970992960726165542256395090116049233278220289211643064412540050394057247907722290394554785844090571105718700987862885984894998614428058001279963860546550551080369893498292548680116784566059318816564156608365272011127288518447123068159373246343093339212173041372016109267146822524506768374832277298192190052863027632209275721096228854354641469471708473946242303914470927376936867073208740485632960124822435896778691118878141456472770432564248019192294719213561823472139134564858430861026184506434925758477815814834283357026873711927361114378250191738661436441324118379713951232392889934000877208962802627262460411951140784644008757117060472763145878323766573742535034628318682610407661187720791356752281882976390971693426605706475655929549416840231486247572344162865355043636198867479288862937930660591228544083489619853118630294270449773920400531770402651737521392923959233414805206865897615298599669635793455107126729804823703568886306643983992419714815039543375073102731085308711362043588418942067962320679242686303342602219241775825679890823378858716076413229127352071792746073455788584027201978791039892001588452977864381927929103207080847586006225840650796683315329555959016617407119859692344602105400110978107817815624170349168307662634639702533120683292201204092382658948173291195674388198275054215686648325642210468104629624427010308243784021833701688198573067954006908098261150217603103372767460180959606618981377983151010373377387723052200297098159236427017689777555307040839434208872090917639810820173649915313312880522721116161007932252863910867200006317850567263932538533785987511941124761642393404978234584667504411904337936911291427707430168602872978934460572901966701802546501895662524487290083871017367084178781201483624517747029872398410177603643164678855202960427485297325974052521947548264738259868882185489973370256753756864306137261815265865240469458804957466930758283567369398824526506927626292567122529070709011757872952240600350758889368591889490209922475286668183868433382972373368909532870164141501026803411485483040643691385845834169271153740067723734023630962941462927035843683869396440511563705512755753468587667102703839301232059613422365890809212872074333396851000657560694802602906723502697467047903878355680609305956614363313516089510861444464554421466963190289849035695941652777852990572377404601304078078258563779225768861956437375276210313779493896520936972040825888223037204500790306684335367701172231868928303093731425231694985451959637671628557554636181675666772721220377671080465699951077440915657620111003660760588035323751521696682980724708262063649380396119131185430078684760491359647668807033608198999635225055293671552679115636988142866645202751265396447922303974722817535958980106696883616250958043295731774396304201713691884911517068701668906167629789384891107349002180969602689137492163775305301907578683821861209658164405375380945341659080676101140864868180737012312666037312817923935330943674612912164574991211305156803765334014982837570943390051688228610490638494016659169476348239539238177272265538759431927037360315536109636477442863649143300197811305272008531938578918323574991559929528969412954666342189213934138272357334830320088121247705362934350667443225331190916891482704066717167320568585367949261996493463616229651021531194107200996073645456319736246932701794694692599469702653676916503103421798398471191782527138268827511025905146216441370410701574340097902132300453767898813052837414977548010202874014685141716088705055211353429334482829935854704282730027625027769225634193153015475262924364584021535823372482765554536449305374472192569869239940526849885185096641842301814519102280873446258683299813339407291357847257412010085191766647146376134092108783299149637519435477048107213989355520171372390221823174443510846554066243231008166406069765713107857519236242118707583919876478139841550350259351882677121883810059688150054440073333101435154745822616088084396299369817822787114304495793583831718125592034856023004467393022029424157855492186937860979312372450136846461857957008460864232834273444561148363095371771036805261139257169214403943343422266280836269243105553240386341468891111512961278253949594806867220036935348964815292395291435195759903236630544607805314407131178024285186163318655311021149909109615355820962124054594816317197632105086303358018994752955646295010688802762373208094994468531504981236432027200914997547972712284886507622559402153805819083617028969802478091844368023669013130943523306410545193723064223121603995682659421545648396721394812471387941191403418956968051813753441247694185933086304322882047900625948712129619517646915782156458763342644345058473957964691580274064757296247934980851200757389407999799253817925145357842758382255532353977714111141328500675525336902484154182616631168710728262105276219881952716028130176670818862576532542645991772610110876518203925189717307133210150231849635038606412850303789682649602704007159903756930732669037199562997115458751283163368402541548433775756571651805293708118394278995424640709902839642978469693090414759095172284458137395908002586356384276795917370600599923449755548113900750836702282702407341854926347964000410587299618895135716234321362583086313625203116130919337900753408649791022230133998987096335359612611713434538269364817290200620358211641467136723288117453322782868391276572740305827077966607790195277777085930339520036190737815922573766259443197801343363615320499315239459969372055889830276282390171302910065417827140396712870680197939875141864501586261716588454378042403443236374317215410288057684947721282484963364684129493041241107256337006105743723963473808205820926078237129550006490130700640802034704590574321005055769817287740383628337578830556626257311056564693046161270761085609601088303455238164066684126159539785152276734233669390720491447802299452434611103926195730453420429857278489765837762544035050840799657778239796256230693274774042467623096086357115383656911484939203221986548567553560558369610021444934154054649147461433999483265675434086726672155305107286325826777547692650715008472442409141638949762420254217967573260590996159872050605825260953567141463829928914287981056542396635174577003215450956019813959050687740943210612193308393505315015927745360366318774103853043774686133348985587499256589558823024925960331481099568059600469310751642748240687976855997851841396581669075239008161097785848494778698170748635398514732530361673613491113089502310342368977639882841914103029555491928213510450485146678763854187658438754951003567958427742589738715545513281776080412279405374515321232608443561596367800780569062031518165982727699918574421996441048964890331880584915750828969962968851904418708590676285606513298093680425995809672699853944646916891551390602283764889869726325777966839528408322852395569533353520084158405213790614914020706587719548515967340032753365853698408270471842873919459890389044325297322155086143819040150861118308059469610565654844387126813046381941441053534126447880697297066557187151953510007807673402785455291824833618705980852850835221353585029821338810963038162161122986945603971578943818763357379383526363467500815928270424892760496033181771528856267910809501872858532443708756873934934553831257586526809459515251079472161191690399437667229486586940481535506650428102624486663170682128667133702703546515701512971837202747711038884099639989158608034035212968523290667516085826912307105029601462708710052264127711463783937736632441568968702423309259398392297695205314690589339460670254229479348332004379955440432477561735255890404433000436593842433941004632325053182361938278763976900626416120105240592115161567424406946707617460866545571900783793185732837827724669274441067323510091369855728241590271270254252285600361168983123618275907846051745655188295276202527066262490959334275366572819612696713330125694417781923195002009420556796509703129772484049364034540034468262196264881793710970720446238795411114560942520657831672173530645347276231885043827769799287988777487908939752806534347202383102447708086922283920315321563163550738578287516123433060650516681599666933433608955971904519387254357492693819979226827165201895913793715127726433046642183656984666807854846073646734762011738105827442990585270545475560155449602514017852406058537915004385316520641719212264673609607631689083845609327404062691553024299893422099338059482411010321475463320492255465604344993341160381800258425658003333664700925398075234772895692531845247247222074669760851714837219887109186287341458601303958725727987517019127103221448877167134364323007148229967758066707384172450548124712332579852859115955737800379970356211312997939227077854008867115305590846230737963053178235708412089828387331700174625136649564692975653516519264316596237676345616080601764369890995249863375460362302557267291956880878698134146344207984784501643929394650329875992471599541581345103997546194094525921690749332801816943060554146712126315811853639205198608634682168228378441733968758073440595481873864656096576234518423974943678531367032511808114737025540914059118168126145646049370984277343094484206662899419088159685811371872859832363505343569002146457740790361089790177605160375508427710665153226728691122576350061259717121999332612745050019343118751629192634251931917158163073189501295130527213526162436556279941860404199630034225180417322000199256887373730218657837964260343901538004167479557980237268974109276451967372877634853033837921178876448679600216014784653282276576639471839875052170945036679229396694232731162250453281743646682738627690805086544673221996281756293416970630208405350055702263282456653606408769309873992624708557600296934895720202988684093603195609764799833488359831808003605174876908517751011887668833574120958241000883093935273718925853289589887644288683730624996384617008415278630872695340582540858562470116798223727809131181314070710025090339836864136214276196858507533176821680944114758705505199285958892521203278085423311488300376424052304021090800568266120587968753009429880122579127607913228974377312186735840420434893237663579472491099630367985596413013943772526971821877478352759586956381036524863531780753425715035486757069493225766289417224508147468151278076445236716151784541502389646350701843210731857067062994963983238964671481378978737305519629328352382137763208633187965090021565848680228460429524403712576514035093868968181418196581176815288827812456511053320346419917297073981362959590953177345966670358716776198742835287549713637666111132512004622078668085156557830781677746978097045006027808333815551772047448777902531357066299322682427979056323982862475129202040993631934426617658187956719992105312071225719204319294086968033802123834096947406566668474794002384169970380123214841385567883688219607432882559224506256597054635633877835448238883188353567599127870854906979099182489867694339501521394578696405352425222308584093072118114332345774215362341417478858095697545663093704881423692107309001843665558172335553013672435850032258878521401804281575201910563817525774392751686102405347194093892725415798656248878147174491493801712191554091168498616443533904831815887260995908868962276375380338416730374096321625006449934599406635743903409417858664072155360328337961108167517360773126998082205288895534376404383457711052892808633659874679311072381503339658380250558625454605897209925028343493554668480250123249509565269208694446333041734994731598503692013427427585774848594290263192523691207350974628704917550923394993573509120357304864395487109183087978819938938812788358226517839298883545631969630305997437340978151097846847055621044694533126714648239922217130166967454967994103739273265817653937305165095838261979074527371246262798686444287156883638466495059405835158611172898630823349412290041582125579178137690048332871691085114871073316142843261338123008070828780634119770974029889898643259589717826239309325859367946071411479976413859584734498553389476668783949473906643175609253589224532853054497775659687477717247548727831863606227328897117475002262675383131296504589229042913953866887100254114470007324967664041842892203865877388197211891121402289301452591021394151078538503850027636615399522344360267074662522084455637104392994970542833527275041397455797123067856762591254398427070305283208773221923451642597277028915773488158380565337656077107983113242535251288284680662931056398566705608775256818194046875265828127743926405808317353277294724025821581876500351603193893453071909450623637586873241555345923601879453474791351518636035995044595126333617118411817347418801063920774383468659778671221502192966589340719422896250745601956853340899100863943980137576499347576695131341194447969747766654399130666947636166601839555564517057234320126645695963541811653555159390989877952449177753779213959250180644176305589561587353341561036577748722200435374953937740493350954777778200233605028814856365574371615126536914795699702086887660692449289083772089672071525900175656207405606300633194503836671552764598694426034883606857505361643733732402363977408229039554167652078748551951120995237254621469059751008869738686041507481749680578058669394858334565184764463659499373597277626739069183746052662609845686596656066690629253304332370017647714335374226735857263239427470498010271316806906330153000926057282279961483079551200636305462917026054857798927464947141003333472827322405670930996401887749407728289896211217238176618072048943616775460760358866349515733359757811124455008713598149967583500249173004098407624422710577996830373229578278429367076527711720614003009970896353876208055938055286485427877527170185634056446907761374726806898525036735829224242994406330425195374892437758935737539505952103696914114485546423209314872674078830439249684161253003941503975056654796219486274427781919082311692921527400021669711774218959308622717180450461017837032139981999333973668910225793276201246678341069398183499887519505983984404696027397256100148370939101810682632641042193403309107988802875869984839580533612071999801045836179341281781300019338832190153774471408045437976061610346448786566983263447321356334130904048187006858831714602824145190679238321817098348901273370041106671936590496559733461149074736006736115607572934485678625023695249304015472883969948276563771778774993403061074248048923931566212816866712781037559546760027132874558422606557873452343325300809033211223133216206627569319878078460362735956141767970049576364081640589757191991053738868729790862964915165382535054183693172162824394756668601929807081032498568130834252369128204646818033443648789091004584112761158245499628474487324120238116303030827427967086068285632871998690676987187175561168307208642164174953050796692898953301636924484706008297890454583864428131038524454106825850690115054792817581347557223020086582589644495762040615059286741196932942818622276661050211014375668482466226406900405955743561911052401362395719741240847540103551792856683963767158503100440856258470579148356336035716023539649276326999864410089323249675857266965584912244294006763340749756707947425733059544572421375815946679729153415769881068226273084440051460993739770607540325949435488315691730236557359784584275292023894909391609834312102135059379434167590926628566896032218299538134629893092108187793808198388004954236235438810698252250587586241467603939932229274485890473903904234202592828340261790461001909098856682054363097045220688366427492628371938418299337931011935988317779395791898540982622677608549483272387862869846647973149780959569636534069253772682275973314535392121380034866072264300497311837700401566200790973982286000989886921792725608236772828724226750060100218573810150435608928154365107868290976354461971604588166386556483833238782841432303671662299580520133311867025963276872081228119059544397779471532786518694258980351556272814836769408608481433450989589354872037473836253976884985790118429615659310110733211818203744624173612625825903075035371796320866494691074805992642601050162962919166742366339438631770393008038651292677325988318804612502720381537607004970236744994897572494785264767249349176371038005580393329036485761282693926972556144253114039274366319706555164714065662738249705156232856477918790157397221197195916104092305761348183591786926851076917516936000601613639497579793939480039720583630515433559922251998758305646909840912190203607410474106193420073102028212914532942159283868661420840984822795832360022905458658598782947090607373361324763700693311062473429803935959293828644439316908452375001633733964815459717978953204789182709875966356045374593186229399263791390366640342994164221981996502891689356309209507097610206750147654138023961064172222155883131115444190289442275125135696190002969935138686215479353661926002270995491775013355609564554287496110775183406612230367900553577981946866915526930340843135496797899811360501322046215110281984913616151415387308843013362083831451846080802083590204724488773524443447532374108340034417227216717537758143797490091550149368635827940981431727761656945819809863070186309337744071325380699536975813148647206168477609311528306169984609052322402881240131617226561769044011447890286481027532671455849045521442969361508835858064114321988670828826141523486231701744369583227457657707285581647808485137575304911189755330039277875044322041364844619460222973931599574791757263445571763046416011098414395508796106199989252673572646481911323206695745378922449220342712075774060812833477530280176765140799959698685428485740829246048436434294986450906845817643838644943670628256894476582907479772116559685075632849345213881424975442513893610181799696065121253460634486773356960880240748204735204379340961544958993861849731813272483334065479647443644298540466013721154953803330988126906922085773117433749620913993383914204336185176213876793781590776026141572510872044540090001736706319649734250646519853742568447742907598834244203513598862492505519593895629199527989407328149483931964162461532079940119513471277061020523510390358178689377432540931188352652665389524830854574185198913062721229138819818546032432537285890878236092736246657057900498952795684488262401402677108089007432020017021156202862644431660279202911901128649061850532399256450508881736571051631442023366280957640352381675732349050098500861530726984951145800042510907547937020377633245482089916175131107487754393201023278429297026559728858193346926270863994641408480424372883212336428415951890214721478085783821365586765065031258612945874295900147992179174834075555678155992974542280258111417606869808141771687989391610203513554542396337657525921904238371451375689086635591626857347308986974325907167838556843124187957215976194475116130680015731964476152819664654289784165338738649609383641526259254996399305549520352055816873147262548298325031930255021337792798640109100493482967079682831141649083710463110451003083937868203275149985766607126937246649811703188812179366736307946983943415657921570185469381410993388799946516003897881052461262805780305077773278304457129689269187732248957157883562086714177886955061808029196233547572023262791215788322794682576906619493174536116612157159446981023607200708190046465565980406342066145424275805675909098234867772518986012070241367948297592804724932168763328636804301419071631155170481026167118594693038606318332696049666605829810234476781670072627723166368941322426446175703600025326479485654555752492210691858754632147048625850286303674532293589020833768276048711334416268490916018042817238819200373783539536166570815252318438949101916219244761294926807829970593711394775282775722399723438977527688519788332401016009201914073468364274822958651056233513544761493005534731134907081861021066890311650067837286304179772987292669760498027981609972590296259075630340612823062705557252873867427259071936392533486790125502178660896575291636670857953445249353756045721708741001276208829709872922209049043200596851913116416335177641733606697789398339825395913907867746171426652456846556399062651403413751612032182965106779690684728445769608401522394149055435949969935458552366905733584393991020793582709945546947330989709757941739157427963639345422246307612166280549739099706480725394609665665540957157817371410860173172956512991142869644165415744311768100361414472829922147458967266572546662821864000304666237111091706863001287661029040187865450467963153240427075049689617289276167049947131587898699704401392713502355666903612635318107116676655806118255896273815822278800735297096278177313384211164559388307554589181171464388614203982290394324899503828758529715746943209088558706988000359461092592485602461722387012994602725960020349006277330770330492539452240287502460089292554202517314666380404074645362455665458620966541466692480032809435194567334768500995553203998119120911049844191379523397472813069535626798057961890640490589783112340585432707882503047364536233828306081942873501850102379452149418693989961327883504116677225072558247469865152378318389169012627874171883369008512498533901284573971702423872392761415978917883841286661074970158700258663204661537853355429172177471240113761179621609895838093617502094505229043046219950350695950623672023023576278393995271744969034385964337840710967050631633554764833604888980172032324282713918304831253543983140786569486594069433688162046422711308322201869920900008702411281520219899787956178651205139892144039889431061254300567520615818851337084933614417445563855692505725237655817031234300333670619509054402106352089761718927791588649754407271971417205355020443220744185622364691412165927890644368913858902498308296784402551238678785636631743290538173683052908504884522452455422943372503325537077812918959247529261774741818985128272936516073940189504523622086668866298967640045154160466232497086830402025584912430888420958438558643939330814726284305091627713280903057399442248249985471665904856300616993592668621162920046856461716839554483020538382662853394153403938175399202927667497042258966720739531503456556257641782604715340938831460211308041336799381550227116756513191369839808553158699436033964938898935762350469244902851839139116821831082614010435537914755617589068461339238528083715474728984648540230946887159418854209546038844021643907701832369173105270243909783276759714616414591256411618152181581800708281416782637612547225959803991554851476371110980137258546708680535343336363376367113340265428742049453350870206301925433895848603567083462776368665557926197148066716396166220510368810109844735160001751965121378116433447130307677295737742170895069673956997103553713675103701493565033843744853261613321371403993812618307379398254695680106282696737514180552086404098430258922796843778760578687991191506243529158256947311254883043104059594487285044379565046073549182823448839566734040016830515155971968489030536205145451848344309546168531759347437210711105751210558478699945989438121678962101051489148382330062399557294178412106389807720263397080968173033074019115697553245064622688664601261835227529256054874585714560967265638193918126846201662026472077295696408073449187496591416739502921335182797439545215937612317481186209210794976888696289492655366711901489550816378471583992436530355145716926903125991888848326228148556725689924937049203509066894616260995099456985014554301737519484017370252602205034740981671058206858330057615186457340433651352526776379567747913260099582859777286771568155718350418477478071545100655181719413432317539396016385098396011137598939540044216022453759962382126682801079325656624970948500811066467177966234850151901781566849143501581368987572666384177709746688238469612728794585031607710840460377301360526138236854536205291170069924695744193798982559286379650276894712249146370861963428918753927849065467708433808261342090614408840141291303654815539321107689352440250600305721296726252627895801633240162357997937353890669684855075796841507716084954892454332338639302519490710514170410574834456208851589472713205655280029313183122678620700414148872665488887603134511129026801027320058518953296694859878862148383687141798788546370614970586983149800044011966802066542995264583165573469192432509104734868050066719509764623240642164169086253593372485113640543326737594007991693995664216749172705445085792907593327302510386238642715261623167390374523576209199916162932226236212036109746113064681088093007887576722636332414272244594046461543685740644197217998490070596778917147630986494434294096065936973038176259243097537517485059062225532620075199984572444356941159908633046950958965406390541124298462736790834067400014762276280500135737651888614143657703833093642589276950875934322424715946928667176893073317323124185098114509383243900763142740122145609416615572512968637518275099284122191731244038038567705054348341528941625855832801946289098742416677367556699352168987129334794722209617784518478654334241664335938309353809974006767064940097104466692530945880228957216907865114720625726324341628268059536724682851001638766244137579167419007892938809429209306155959569668308094008567167175724115439620686422534340957728207792073591396798963524371466242338815564975314764720613209130372090539885987528200681203874878076392069566332447036303024281929505797085806346112235616386889221540388928019373021727686688773007993832491933992520728714465753998652373383844814969919093904167649011837585340290790889364718506000834159028201818294861477433061659789563573749567778070271691840875774481596204900014203189115018811686867071290968973513924455839640128395246428813020144910471102795055072036477150387168400634865348422026602683538491069444076155912687796420041393145142906371590449675588963171858327557028795171651187812053949832889868827877159392771703061893484800689794052915817695343453690495016450745297786598277751040216047808592340312201369966568675093128176358375268653342931654469246785171757522021966699650136350752578468154992230010069485908383680545861794785697629275031583104209330411784164600844332676191839417985099256603381193866886763509440177340023258837723215586329921938421445974284892597188252378722252781194529296491866360655906936559233298447558835472676781722968012110691247555970628629397197439142591230841239933795805439707783878254076826980660259543376688503084743875791950675021406425732518387543511250193258871114614442143149639741546804057918228794232205818673840717475083496422581845535409362075257785922671464856491490110834355040142109348580195707549175315366338349775853980736940550833475582984356961566265242091000033863167241603924683429310935706484780495860538915693265798450915687294150119539747469923487874677644375614103853070075315100963186044581586052001984703413885438596896043459269179078338515173429957207296217092081151941330783933740282154185102638956231084232037744137899654781034165686079801983652598213747301407762570211539726519791692787062501562922582185658770241907403202633267081584589340631016203087232870477372639187576167962846777802145207049028420737855460298492725089674772395154603412386569396864644112727959363124603556728267234985063001561832722753315653333084201468180889808351275231392355212903369044764387766194020864667763020350493161519553334940530274999807272159818477065678104570102759751040367326020019704245436749199121659735377928349853656169805973632873578347806822500602461630828485221547603794237455296906367842340972392264017459020793740760717546556481793183847519364849816560853661250494964915906633038644113047103377918606078015108992196299406838526137049990798339515932889521411764057297255890402758481847527153877831633529196412112600705844493240390490260819772996830720717002059429491643228853467137593427651115147931578600890251421304148521292770998010293845162243363304531223135373260739429638080179429012406257438634439610582942954790649978681183202962580454501900273216103287667183849202985669152106326019812578089550113701014795520765295966402049547785017531426728094388295394831999872850626238996197860464088811796351242558397882148653365864115072616001416056297674097287823352841580686127794755554974785349887940470683539229234767061017437774997877638697506088512663841674044431830631487916939364999766259008912667068206805721272356901802327171836206082036427736889543273247792845291502692403967990546116622614088135708987423475190607189749037971943004980354465875157328963924685906164949958198175053235135680314726698790355498880178654989566584203986194954554666564239536344323538564545910761094717630711329354051020938964473394760687531022575106962175479784288540245870616263099339053315189936568274875657056828608760889992495579070811593379154810452978692484811673773944300181408809797726367632875198769296601453347134466504311289274032873633976060807590458067304016101936572403563721551298733891791195306118877316535908032089735009120990065998374212331626330246348306946200286059763598918734539185176472622389739946408814735298813003908240698902323898829977102567066605243736405819003932535365746236285638986371433948054496496755207106729962543704742424654086501462730983448069215936179029532435010846895114774172154525184335891870578560939108981168395515331663466616757456054343611316381590488142613724919555623517838327110786624918865598179347277223792478213169571303270115990102431459431990179507658670710806845725136444685084121859567201474032277245689479295461521521563332963785783261065314831360335876040144345029013093872842614274104301600752807923891344423342406052312672212766913263675292841115921698637918601253141758520436682304633847036669081546570985784927824611332131037980718603685867204947993016822610341692691418989565110448414183443106299935996950991468461806778559575487242667059703069050227357497282809699453023453449907674657280825206017330256772568753377698545259972101342249697384302800967354299364061478431274773279992500574791376173287094290800127867741774016890073311792350598048451486792832973352772838123371789504173619271113229043953034571557531743615431356482754451771067413038225259193880424455460036035251090808018516339930082732199791676439753357117615201433668608267155911163119724319193293184966766014599424185654271709640581654637675032211404094151663400910770399573730594683356592263110700464458456004428418021562783447712525998653378489099764071481697693549832372020529431289743999104645896024605134380130120404340446208357862361117726951363149850642463261754666713846814063284640048403693567206677416418894187570306671297666385294431986336700592464479843725105201136442425371208849986100489995290432903166100388829750722154567298454657109262765880359529606007086590309713542744828326661973688092867993520921639343579981960282837471087908357678197147456299547098157970605860057831545537659529810051531102762463791073989553090523811434559858250736101100226188091940762264071189498097034327913731139511124535647433461580906369176621930442903772004955757481067569207053927700676681130962288488326055719094365793027942829314744635145086680000295374778423880566454498795395683902383068645592350022850741880954331416446193980014426691158017267970765574309306351523529216103823948715893804367573219844412070516296009893342440142329394337340134882643435101155358638400815117915039544344777653196513195443147319936708002674516081900993671961248401853593419634151946041210512526858026608119024415495501754922351480622489222340545743263317863453502262102628898264800146326786182885747938622267487586345102953871148752085147091867152504839833316771396210839621687338115075467434260151808317750861270137166915129910503335577113475706030547062280044889372105374658135108482870007454050238633958791084703225012605953439181823263682267134081400272513359333847679990038702118094397509572963194359117210759922022154211045896901277244510095786560367371502662075234434252413959789728605834929355915213424574127021573729444043438261295518629916683529945179516228333483468400286862383650792266780598869145697806896133064185251606537589494119894750959887341266585420725683196276491702320401679171191526382910529610368735023969532056297327674586291839879119456421338001673193048058796703160306969607724531201764269654640355432865057484585805974906145038180838978475382839852723367655435928737466594867520620279455002820100958487859564517605976757005540984849405582352683728341307510687557212591836350502389285292285840622672646700132118330556453049120361922401794172216973480071256046602928909025055452852494712877330379186584415293350298048517586648248809229198275834521711301465530511107026966041176267778864656615997453946366450721225639287677395484279884520430799104784156352049040073434316715878561421746623053932923480491790918945231243169094513835896376544361586132528209384552741692446605191523195800133996536034013044990826569856300689174779043632865340815552848140258745522416826204521922387698855899667453204331450358067506988741102744176008072794582342833788476349047623475853000961829552893308267672640002483546287981573131738148655339844450518297528840510729960793437748452146327412288037989692020396511039904967948612443668605523047541379245004229355705811916656363374426224339084901143511337632671362166224238219792435959091439680557113977614513458335048142388236199330223771019907927175036691195612445326646110086019624625932777777526111334813363143066219104482692786606131119177185414989230836285688521798334940862576676347192101054040906480934893476605306808749417235445909641077823321397335160752227512108112460779406825457156330923220018482601463125172788658153898988309889914589225571100140407425247119043904923181232039704929432308615339070123292211524233170582204047684508233860919753577569632347946888438432273419454058969152032619518189046401910374606244930807647529170113622641292575860303843016055539854592423849652368165561801783695622228084432164230024675799179249342997362380030069385931268254709890486921681371994187980201651902326832298018786425909962943648735605205370253221911037630493857843413816067204312717315564771034657155609808540853859341922764810894887440902436406355720549002737272850305388461713680148392006834497951767721528209983999577956185274658813127101368514643643642799184611305409959477997778278097788762981779570257292211982860753454497567882261702375601789728644517979344002219174430176659089276083177294031930176281796739154681112193504761596660960128352949851217465067754387072752246298286706666397815883264882697738317384890035232375893075094588406742635001253025087399544782814768287070351608818155020532063655382764793303917473596405661539971734288140157078072053365847510706218753101395439829763517847047399415296233135170514322517474254992115353418290877073348337958835026159686801677009081338234692232167945609365286474735660351447886530426676818462511305636123049390683404151564923657722765213977320674513838948114457475438165675782998369115240295505381357479431753898400085077215465873375463283959099096456711446167224169252816648724094979433368486716037680798872583543537382050639879841153614130521700465924284100942635863580765767192921930918632708535700517505104948154480661734029434122579767022099998395246811377540004560986543579373463078928006518277352750669828248346630998503052275306401584865056944586930609749616109598406339710144412817190293151241150488551730522823532003534812977300476007127195142336172549797477865976961345641249891708197833694379041207764792833788237524292773376988763736162134121678253845737404633249754409899522986810468251135583645606213621719439034091473474803735163310810070915073594189762247073083779421124284603487442990854239955201187230237336572742454662728320452849800048112444695944482022928874661791973184110827166813975371518575701681038147285345443320124587857888723235048403833262510442603451758885462387425758945305826815926345761998328724490813825772355123861153598804398658175139176639773774403331452779966653249476053451889760308494328034248047288269303914745175990098494975167675499148101676896706664981551069681117563647613628843269078547580780593012660903553423596204584354935751630695423179702439793714129828770683365252420153011360481451965723650948708469105475167605772317930738448258871077498721534373160309420673755960849953712704757115718635826052828400332041290201721470452634039131022178623139106885566628058705429383552938116090010456997716507570259551089799658179858058873378668103212734983295407227535704542714826623634893570396041576226169709089722562950892541277366317535216655678251729176844487439618903986730451038822448829128173404968952009235576271818593861623205361947355217247867221897943641299594027333028497646038242437397428912453947276081707282110735911878150930253710321849771442531775938476659456394368152503927627135544049043325086172296109800310668375899875333976795027113633896590748473628144636147502841250456975686478001146960162492888190692784581589433218106776112994307052960746977803883379150195916019318365731601677397550318110895919523250672266560882514493635749212722769427432512185105381104064823524241897693423583183262697067084524056940053080043961460766289180438504285812548192239093126774347869045919624854030316179539294185024862153652685923349183929769692189011661999717893590870633842514075158007652205876255176106488682627169248986186297462519612076120390491876802014244868722252578508185904906376526022066182607296980506970715555469756464242784701412835773225888002953262159073045880742966070435756683427486088836590527449332053230321763194316504955169008191029436787601626660412165445937957853026989165177264513413720047774324324135089274234387457713122285495171800087632209198383529220733304421236509081626448742493903851914037621615863112201917808477420195721857793772945433256416625406372242632824619242366320082007100167866992538105066574283921786744050800862355207557825207785632367955543932655691388380760750098358002242686280133728718805375815938436421705107823409209772533411147898845394129278657521099540766396501803644028414186437583344059858790197069993204210224351478541726624585414687377779525130552486224114155515414066207860103669078678283587835490661117346874082233543958908146402955226192031338582147460523062570967972843475105604516064989427855136432682366670034977890433780935847204106515650147384217697073847046145876721968428148187819581925075005653118283301703018703290904967667571397122335441766729437151712240885315676695577015067831628523801794654858671358695906491578145077240464022245228692853964793658907504526666783177053922317432844363004584908002307986111854509779406432202136430979738436721329786876052023634876733847616006287968873970672748249767014782178781876651432160003148611625661391810897134045080444895886630801856663301984018305742782335973996204153387906392055909777842973773033542053422904293849753616134637646368512362811415477681417979333741213443146935226373175423619074962744864880085755626608759636296065677317569631008711221684162735629208508065433725747961495566962864464594229415608969369706824010445780640631305898384906717786486207621176538118371745366153594349566676729700570212625206062077920953687533956013927663615472789738011939671240540727495679784744304233540851864554445829362180843963142550371283921630485569480919373719663404592882671821535406880354205269169353284864874128426897248375367659835625174249871366421985137289257609922922842824112895098673372591549560711208188155028748114519513120024596747321925524053954291844348888917529786411365050124212440410131569178350633341386889513504864668838289732599573128698981922895646318041456043249504100411806202608246759234430457004206497300142107524545725832786652691386570948679698091347392952086111014900386161458222522959510967140702636958230299363346485672146016130301364439292439077114616830164664022185940161858250755722233372653553413063928470753132113421423049289130495012421386198061452735311382211873006432946649205803167982917165001867224781953081522697039220218488292507859786534353551763292609603990626600743743799125698078223267292792082760153642648345694784201026181950522382494725426053887513306904929525491740447673178000144557562769893395709938177123204326393104951215258880990119941098830701894933281493929142770436289391359743041472374764333783760862990518713532326382267428704423302807419330553782534338335692437110852164295129917685827301764556416497690887950240826696429945700981535084963761890395555348632267949463320086382549167032383585725194240655735785084600949168701728845282180730316954890703419651435472729279955621501613693718688638650866149540039699028200654197006512847502716913937289227410333896395805424732497977395833980601013852170057234861622358192532294350408202869888693621157960118805440456796675874420932125385910339472005976443241377581354591022522089006339922006589842594626112384067978962588334402189289857440082495190497280193077514083288669543355669772360435805206612677923837469823456856274712897890082630172173857660768450657962736419499618469965800260110688084659379026490897233355899769067607152474451456677603624092361125995394601266693022020541332136673614127560596972262261305890948346815871428183226012110017369449200747851227366709758204631783386201603598879311417519215283020319487026859238448601472052661389388860559972520237165643546596077915114069842816008605048612439194025892560671896293929928725892857637448117989455162745898731381927376617237903413347320648313265232263316108582308716486429270937676733662294785183727378701284592051471585414691715951843325800789835308438857809666502967592337609196783996757681699406007884071144377301253749351360550032832905115737421203247067847573170918602726548084851610635370128363151606752171886811984986075478843032533475682602728524859166250888955165958630303225244652124939008402119458256943507902738606265153640323471551073674944945760099003238055352629003027332155638437933743338114049234432797458464826692612306005758246615221615550585311306361844455480978215236342953781113037377393301391218383934721618631625138271779004791684723252424283355666624004958015460512681273093517208701638355787326983656249382278572277821846969675608987988421794569397256805371084353025029864492700277298125571899971453781926132302285231362371563252937085448457405482797213154356632589020757013938318067989466912963304185901366080350331901900591610212185259508016858499810048689250560293589728545137395449996220416287499290492501487191840909519246746827522373602268812297347172024381686471711525514654660251709380155796482209504023779190492103624234395862468739825084510990405715913323403384150408241183272711623808155299426244485416468502173632158770820857578086551308550536480216897696471337693345564066920012058441371355683654737455396884222346353949613996151603367982506739491932519189126885744544027527606452013879709646719534788369959156068096209471728683530570214159915401241343737870402176351250928174447716479377741954570291625948649098640706356947602041941316625004542180242650333433687558110506208671720852804190422062075703291969329504648814663289708326488271908238398646949658528867831443569791883660261743107034939185275675551513851473011141719671468706901330388379466865605678892134342084645151623473337416682906487275388378524555771985704512818394875376916318197379749510527275923579563209926988882305728469816597455400708334901966092354106560312280612731598775212482001397152583623245302150907187879789633838191131390983093696208631848601465191409958760002271570983905543083717145560292405424340106579759801694466778927799926328276973520154199715536841974015647718691237227288648854610023603050863791283649220210538229225975905837820542736319279679588910416489479637609952207271411600370367198229167979703434039213968884780420811807053530953228170625148439641246390090519875298412508358833294100499838189086837518851787290071105875514654515641745894282548511077919693398072772797906700245131330747618128560520085006258214162216850107627780892123697227807858330868403060429518279558432044454457357141831170677638461397070148087430789948242480864513748685552144242600680270521861945674449399064160097623817992545275843815989882623625396008688435650742395335297315097854976116651844164299994518442354935636007850692233918092121974717030378539939800658232297943950597075576305970401950617967013249243201496555031981520949002292787993702985911811321038612469118106099996076757591620059034058803784131043419865852292343161783378894287817029226175632565611208536294097237627096308372501803791877490941997374596092443017012763764285567037845134725686672004984924552145022531978064480865515609656296981967308047203994319510342631711836530275459193514626953877466631408713568182629351443990631212266351060338208144642474832327995383978381921518577818786366526608449366421345677649892080665046138539534145419562473774501347838831323149981307474671275222931721714061177243356091025075720907335426350838702497439700859249037328703405256685355167541523829770467510458265541002915999719623650724199308381639069355653715629294461581867263025519669809211019496160452239943580718526798707116257670270341450947081670025727863506512287355298485490262756036195781509233817737664009450908128799351390931373248712297423833552862145412748626660948080808160524978350493266246685404843120289170043537335427522396741028617136422041814543348371278180438714308271181903261248761410917407539257667754700379222648567029787247458254097047328346405375931465047178007471765241564401332668817634829827768080907177632586691849129807217573855997486653562752169938631385191184609797445960894018824011136512789050428675193247711381362365215910437562948289826723376987671884109877619530885608503344645368792275382389822050058642980073507481008975294629495053060872043276195291002559541120441993028466997152812091215572944152187188710692972722526858803367166822447957107698152466656775828977167000980979435934931774407548941870918609693731301180758992413827849774336512713757673271289966789867041705108784378377041265222067489050298629946518183075665406899598386412946339378124255557661490386774694509174233586922603394041225711485790796264992165367544269507837511636095084683040977332217974979902440670172395690440756097841351139771698330727548122314391967453215065910848265474634178681477999847771575475178928617829912688747604591558339539776858785922386372817664129866067358307134146411226276761394034259858409940839253185135893823987529262904629298288749253965804667891821248575692042844155917678681460130157935810627662920401991575681331568264504040863438336922192569930254375692821867942794424106684249924388863933820040580070252922006514246506788781521126925313429751691562692660494347812987515012258857170388058245925585737169862038039025888775266443398198481881179583811037951194266545161783551790878593617511994362853857080747056613314666158817566608726442239781121360576830559443540336667558387859852830157400316878550529711381644056980134747331960322846530012326051406704006207085759766981599578498807470751265191976684294392094384121730206905390796191732509870820588121805692752421674998653075899405157739974527248013881035646015754023963157985700249482507298542166543714535017271362481350493135209011515440627014534452021996785408523674781011530345616895562539965629368803812990859154072243499133881851985781797825323053069248561116576427014386767035412335465626396850976950041144945076156686099305816057490848277690000471245055157596684000922353875052663674996056754376152239227976086636292030389908785581240383141219044435857080038009903551016457512161378222006827621633877720233670624942534182560663285337439988522502055244548950318046431970549125682371187321491134612186190480203389855318711075583349547746137640274810309261309807217639573329919348981370291074725930089449213493209372797467833470457413743466148393481290454412218362778247876671011921173559507810118206202978150978652349727374591110489917268929667633739835437416541969581216111256414191863096564662425169718963162223575496830783258947750315608149586705245383528064753482177745493933361414685812120085255092102856095463233906502712004522497046806527052070981068901189733853125004049911130818583871188684034855388786255090434188660316316133608057744643669094115100818859210763131434244090422079650271396935873353488473251977162979870257346400076878287889732395867852059242866784241364570030427998117313430038787294788919976960829390802355094960828302618610777294072375385089817756479296066271082920952045623401786790520733724570241029810563401100087281665139819970513899972397160499958268258897814274520774633245654512223807602453264795013026642322450051852115629257837560351346547433474066906308821703862489945857517214657447492698647711537024603945751538294188710508728018113370192631789273479979275298433076768254421305559260153907093858426718506529732329789677781452103630572502649127132402943256484133469257512904752972038548064471433686381438847345395333614993192493614759211726740571885532768011556236008603149019791220412125996878098195210759522953869339188857390344527924787198886760419608456686877023109503844878362266876771201090254601951402392641958483579584260396270660801830110148833664636050996916332601550681369482392336960092144529538522906556379244375658586768494251647775858837842646291295278672821788285992832821886516503963294688806388997880923239750030483268849032457260893996853273511510115746504630178567355062302861062241553062098931550251160950356102143826760897770135964670861057897569276433736979811896219324109752505996636955851477179433338277349920385609011795072596602679005243390767271895538669873747306988389646755905783952754594271317175425165295182232759925754313334949818127457765165913402114680479695005320880081761760086457484577173249672137134241597654821841271597214786758976059183111917820038255317215407976584709792713882480759611472949078865795714486835991043476191906410390962523177630621875258567316687091820764592429665566980845447580585037938172318711032334748533636996306528473632744225513466817875375300286822767209736825241569063231279327262471991522894657635153184486562906673493515016425934047735395353078279229729308896345159661124150456755506225600786941375883751970192460675040997244419689427642639851691443446659320523176906714807199526353695407447120634092555469502192390136981842576748025258233260968240162977187907651273801733102859073065253406221710671314222024955588379904546850628782155059487354646314893756562828214999850162838953138253898853170609782376396196961798481693824197314230808097939172253791627122735312226685397358405200304219268729182803660334515881861462499236257712544161468433038445765989291166231120823849878154167892107434573329727939936138977249417820193535498958178225332987704558153257463871461612283113874318491217452760016261110603421964707164692113089160065393081844001963547122684763077921526856413590370092082017140294017653729547279381119958267352337698795947569847356646933677548639374648590009848035992718812218294547760223360825383166907420193927866311020273164991478854203913490920203500966699473209324864649879763035914056319767340427452235798010027368545910830237330463794344688788419843878685360320093316641968617586991739913267199273832860781901412315428992842807165133987415893439708067571544327848396091944564575315738702792183863042341309366600474295224613097413844353310489351611222487656115918137480545679183214687405850772259557096042880845091591971099574468335272553574295484839587582898983541749042542407856782820928976514876179662665110015176806990885250419043148556412546833131179888707669718023590223734730711117768395809127279434748096516199318039144490441071325055355518848705254694639914059720073615268868033193072715551556044008699255400639665441325405718824597054834698565255244240442571758446043636107186172413530370559786190839687355919005149057100201843645266703908513979214616516139287652486914986398658333062436508929848394192806503306624709494126204546339813942162280052058067737036995354731530758300964853523924728024992190562606634857056364489536436119483415752551556069506932902442822073969390763675593224098547619103413668871881898288072555579762496668259783300541275541027155791004607571743262652431153439617673623208823918001533919905519429743732417879234981108643896418783122270013329412700269845233416799251696329577004141120775007195437603596567133345798480598858795786235340728682529619563955434842175195703464730083490594387164220703602927399657446408968899025908610202746443564056837283537326304281653839782458042525479824330384937285366856717918119543496371876444728599366416472599191526633491064922582389288154428135358421044057051684158452533019461756517470165460876527065081741731083310046772786132923561561625578564505601008227228517705189333000365433694099906731840556741317643044030359124651851591171352282741066064743767265080057153670858345880921824975319947052486227089806170215083932657168069596958372799858487604092396319285593964006725694311112642411142861496827619654669819679258036342720761510174599627239164741618868049722133150081124031700194202506910674001207623971867597960004958229914503554429455233441996006024137196675768287957212562903441193639865356786049921394966058688978236139892904132596772900034999050849899095729374346886258646802009035471502639147724667963020973169192635530061661805197782806654831599320097230532695971694942363550515245950319964074556600276892754782353106956287552300076683796955056942012558866070716367111590663642221137722882851407533577988690087196496433647129182250204865897438913543720384436923444996473348928771782173010393958784714233326491818268332928788504522555975567593266305167641116534513704141198127646083306883552499390614537961331282124204351126612774039163589349845454621682715090624966502362626937329227817563997408709985501044012480571291922819110382226152337461603135737839876112721542770237650100908050209517605299562722835293813353202343278933869391641348789187073417145306631626292999865951560834530625087343926927485078400090419987412700651108714211809578087895708833682929154842156313694382859997809455224107626635777141240402010237622422369875961245270424106521634071777038158383784166470563334443466603347079700849629037651890702297716824577771507529587391086019476393251229061517322158492497074116754730644402166505660588970827228457852153386245546325254920662384694233284653599900030469430556355422444070142823066320255557105549779121355644016282600163220063326030628882141188225913012453336170969748751573525174252676971950702595923189269131799582729664137624571873368623106580335909077248788916632337375870383634953427067035034120220191509970989202032343732584010429834193102557813246658866351178345372100470674967670451154263198445803479557574555534060345608228805789207574322241304989296126941456936177083959535591371656189678491279090782988382254738392988596070824311022831886129524705639740993036448318171610944068013512134270973183301471350876967693025961119153122260430403044480436069962389183512633457596786672350974674624736058608080943046470018491364803773016198537726589269254050756235256548078294907162336294693588117961808330225713305594900430665570841889460040733318489130086692190032766657071144945472601247757450559432017974525934848532046000624440620774164548178830681508327125055515369747375353627033544586894544633345658344156139947117759541966645848846343335370029962619940125604731906212840875425293883935422130035452597997741670172111869464622895163039620268469901264665255488871531125977443485741549283919144154984128101511054193941418046435774295787527465948190132303545471734676234805351897510202035347005228287497520497662877126924901505834757501041498512219859098283925976451238488456274166921434223094228783467755032892635409023238403908123590166813459825438756646398654409350931361643456602278457061185605529850807633550091845749958889880356295681983860191627912240574372104472004552337343572917221239604504388372953769162200056579397981697367996045765073635059317372099123000112293625301784744606111981153782442148195369071522166108456193792959193460933694583922213679394499587969085755491642709987543593195050259673390749309776069704142225305741738524767991623404144606014284580062000004157019235141616829202030854969158554865831341328953440628140669318668457505210302558509700679948606790518986862509493560729986072816035733436688938009041158204596406876962113203333232226169907741620022865500025784452224382985975223803228707828624523586430479211593474961053208742271879413423760937045679631570567349975737888615229199074676917411261400138437045333382000863837974168290196139255401333704820673329627611336182481351624036417927298706078320428084425897616733038900927429333316962546076898346904699842558207230184783504478429029739828973023933585042549221576940624503517770463964226109713411699319273331678667381066285540571046734247191624174804529755248807171117495113237661475006359687700244106239239049056652478204490537728908846471404791238232505428590110920109480393977058021393099708899142331773518733435344902478777694781033539179733822964737906262768633100470514798745651849889361067263260193411319047945623205694865148044427523030825069853841398061495889882564336306776663100222498614611790218915939912165336814704096348662036193463259990457191894163038117310496559655482249775227066702963702713701365126224774841260262271022516826963004952062103754356807985996137128291474139740884246829576257665978679524090731885298038568368366601239404080967191360464566827842185867381074938278235540289391347782421960993889066570171569652363273379978123617722391487430663500414123887552268548370758441058355175567586403183972505250702077179521113766318894126684706689692284627927186079509425330944048614736790292421494302498510810763135098119341307135208134129610888119599471573137887019680094487419498565479665330585217075512654962273163614897465131036366743727615190125814248236818896150675967013485032130449554769260754028660905070353198087278628903140163878809347116638437105330436217565517369777754272481819719657810608656629913046699276701850359134449211028639794527924069582301821053185439547737525296863286158419075118884358775526952935249116542317287633402065798949956672418669699296255806440055317947534656992884742357673277896999560560764263339614800146889593275223860866258064751583922838645265563235789254094663159579459807984097072809435629029757631416098583620707347023677619104963107295385864516585919540533123988146196152320065841174564819536000778438967481033081239675164399316160274358423027064021139122241009118514810983386003557718758487784140472408473291292421465774199787787807129953718986258677374765515511792306197140923381114005036898378303292647560118052230821872036615849968302754079570662088882898789991953424591116125482740272735919008721123099250842496598828976754917773586686187936255107575882138141429878956168000881230099480928091973844839123089068033233763518092990125968969687422246267934868573126802371554760167591497315573989842295416979196738446880113459718799054132597899752032808877597152418863467106512139093670655164726224897384435888390957675427395730427200209256319339298842371883978917767911613470324642176684673421577521179930301999957093920673240274860392187128703795541615190077405916616163538972187152341890855074359008526205355388774516783108130909820313567842531982165777983718150017372111284120392271887999071031663561450624593592540353925735176936928139377266558579777396018579986312914235644603702773673771675187187556392489971817787140265414134587018868684381900283138719294569499775876974166775096922512199533976560115295083618570750926272801435465423596105331173292176850715020711341217498047558533740274945465632290986221878304616332413805044118019931667794628989767964812856004214653846609854189481489596351560357565111358857757115770837547627754099923214308549625645318800547301782940093362091822095562713325702011099854874678837337416044858295281157155997579725420054916881730972102122733995030901179368802456854305493655908507743100373712538225604030630563268622854751814333309763250826967739707447892673941733772300503443793277510282162740484442238536964686193642082291520448317128279144366048917357751738159352634152713495530877085883051380817166067569041495857509052265810872524242904052503830726490049394900383397157975689646039235455601624174332420322573024681850877551791393596994293275359029367057977900623523477922424751127038220971803532813623870452614344354795752045277854840387088164250380586216745469327696537100316568082186013250653366872244776218642555617075929649907162865839874149137609338705925542180921731520432920391974095176338152546605468207973064923597355754212291427278107938299538614961839144893933470439220093025424523211789343074855447720369340689140779751161193770186055945150059829382689190076859211079108792728264622513869033665246978496234492157175743423927603670799069894482192913645434783672883938395920325040109801445352743214678683337514221349362460419400356066113193222252438480313448118294657649592427940122143702588146700324880911357220208379514662791316488058687899926040914078642602035079673062734957439076296936401586826558336893643706622318230341070132129999584135205048418506988174476702002308812788809162923118070069225111886011533925234351486328506782998879727672613318559964338380306969069486883460058699507968683415306994122640456144736352737343012864684070419085938582903440814363082403157294088680868260288064350914102910780511592488481188823843018016571094828590682180558151330475562555597340403069847438957748394882533556167062929874529735706805942579351046708246946813707187467718472402478335030189716338214660466750404934729987150863801956611884894436108575282251594406447013383473799383562684298627387230638265710492039251211670560735656331387733221873310639024242685844149136031582652585755684995181727948046359610569921381706592639042466522541338972525400535410221739968871340006398694407891779047635874858797398749184728119572900959097843392456962400623871430909666993277498955908073064176562223766944436794672885857432571253472863180707070459564828535267753342261892545794103579353722839005585530265410296605676083571925059256132985109051272333688120679165424806255083898786927963443405543597008917440259428048903255336519890346146388455910423523932324633734337167104013101786695586540813940869200555675021026989182554993624285433878635931518916457019200178787298354383326592329290511237958379585153776540332392634154214446776826274646980119601653529584889272272097892490111929492707110916840111779837397094771470219076100285070885965833257953300157425445529320882152478173721978723471259467268199089906412408581459348821468888784069888615247671004908437765697673397424699305499603424862970133620559875077388271631950799808351170206931886623661600048787599123347675571156483537742540480474535942938229104400766505677106696225585614112313714480161828334454592409706963371994798775113650324989234670759033394323531209939692918507860203437346759772045493622864585157774832332434868185474395589011892648112795578628875810897872383017434890203445322440940276738330836348046797128809536927431298405743272252403560613477410374247310703042384381750211048493158398461524630843769156854426440448271703150045987749482058579714832850425174022328258928615809506475130242850552694464361417142459037661579026872148633458459476478841760188066702840305491679802252557350721969346015818682204574521938858027534233474170724905691477524947939808834070519789792778205060334038740654285849843816532299888384910268628967199721993373239406080804088161152853594900507023883927310465392650560163693513129634516131751843466023211513551844085196992447950779200390931036128247060978936734683823814722057669373084217453566445428784957358558813137059765257424095747701516964669548550687124697720202761864004924281422247486469319178580474620774006172182676759882794595944726946827540394646331253634119421651621473716089024971067339380714129997027587615447669332445258016316625187004883362064943265523179494709469226863451460607149516180431098758240891936622621061222842833203052892988480463703688775106478568796407496462709485808909812399274700294221839264415923732050015511710712781610298952680741459051933345514455374094400325466518155147271654283291365016593146679166250059778550333218058516991342913159769515487490401112809214084315244026520792104668721124381025620937861533372134775810691122271311748202046659987462149363558930583771113510576137136283220884200366955191588660993463054185544279899959688939371532306063105276331586552511244285246990381610650852255414336116415531127171412009711194726216510152024961758079334739650523445640117145449918143396627905141816737760927602786838644665018815044917645535779228713897246884175921830354939519276611515364465147156671851297355331683526387130033503409568886411703888892198319045292889952233627970015705990071608067633083724935403242242560669829924141213720294678481941013924952529284397084379433660529669210570080337835876583312885988491465398121944884147784710920379005705661271348173750005359402462712260059675276125274995440681550878716719892410566092288242856191888086454522840927954860626102994951080813526569879797305892905678423731483433256788699539840304017944355759140285997494601505678270214949599600383628439010812871918773800435108142058087710355859864566623011604859328118555495865993940401373162083644171145837627333114568567275286979263337877569601372005018708685605533028850374172234119899024939385486601489554650484615672050840054891606815945543391774374986587032100303654233743353929085982117857761346024813466454125625171103379343440071050306361836573649110708992039816464563102297717184813499629914705459160601808960050012006122219550427185007596113551022023394766176987965176182628733682187090319906849133235475149817924363514615483403351645462566019018185200101417762416345735548950592308590019993240294974336401600947903492147768263715877180603927414954928199546906107598965424465790248340540161128304433865263537312689709880173483915638099745842461399973850520480192262357363378982878987435269643201488942824156258673709053159925568345375540864603786466217712078797136191076615567660489423612763543059616458883177647696542591443629639128029372929273460638425182255604226778669439409922501472013352517722954750019000423346750052825313973500597866693258146388814737716062486892213524672820502979922660290649588474721143299248946459540533254146945232784123478851671797690103039757767337593722726286222638416412828281115724824789358940728810185675471758578675072807616962400835644707491399990019126515573801226624058133101769856533998830232669353288871263845068426661104160881344537426071625974022269313263699735586427110083476098783926361159371075803669055872458997274866838849536530161287991714339060902301402708634451943924522687291057871849435652138719687969089507229702216692599369427535028126384714278098802202728654174482548851339658946717244586631917683823807073863126266751361640826086506750456801407140844624571686511218867448090498511365979819609786482637586511433723314078485825659969768225303439706734266791587313871106858336413516402025518555287301031639597581273193049338872765411815283964116996481847972804025904557020580190414864834673977650472959620740856268326713876742812361781128976513390794100314752280941899893795325933627452527106924325412049148972992050232278783859601109259263959889810568402057067774895639500492123634049915289821510197741258384930092949774363777286097289897360838682864260683267241802776574574841970224076796965139270667558472759345983904292703620670304223624555370612427086003654929060906367925203993136948374546805941554926837114197460492258291005117789719214446869314890868565521454162468862298785512237354590703318199104657377339182687846956013205545444928458154569204102271222988358387424499613970748199330821218298332834151652650184494279738995781307849528623871796073358646087499854709769980073021072910223832171637510961120383053422743380649735016432838590004816225312000937856878413798600215231578440608928513874300698664625618802453856368436982476741593778339364160322802612959527207219855401942173569582535389548564564284014558005271477384880723092178969791398590727240144815269656360663993562623969397405650557707112296490564108487451368146408212096728701880434921632552489407006105014262981126938153105796470569221582131051152340010358596544276933860811489752599861319036703362788159416660495296445624655935849237978002412435955018952256915857831840012300617489654496260322533473353106495894720058326151554975236340769916490342806043445886715083866750188621501395086963732643697561773619244308745201490330606566820496912883026650612698149233956096493373107043603884277191795006934369057108683729145023667961706646395799079975387220171898605709271894930869343940408771850165500520421637715228848339107510085555403683177466950481634492424362505255050101561273753944466879887554665884824258745188529508920821728729820237911505540141366948042864450247910165214735645086210338200891808458368093170198474153182524095450999050555939512310008475893645677732224391846563352354306432195401127667856185578866949690204602173942418705761134833618712753136838038879669861546944061875340377176403438325977728132330942185157209712777386757204771630382412612219372694353704650356364919096588207432343009537857418194225100323505959630825623203569976682872909532734733240863105331987466605434371580201756715385508989629832587192119340145661491868903628153792301297306663552959834194808151866793032005223419894149934101228549252879915264860394032565696441028570558207567385134001982243812347752273771951754156660830788585619837331558691214927404375250643133054952555268183200998857712189254892172660193205033995942287565378876206913956446964159357300972395470778310057064835950242274886030990544565121158667362577176482547302574962659221764206786791149933093155849725257297511188911992678318608126154803797727550993071403573123690016694158480494398280059429705734087965178241618154170370257849553882193573886522512725979184055195468262259021758387473965816187303680885892747105226035111730482485284040097756930176819178871093139925785177960564893908825358964492091253733936414322838677007416014775390267798792763316789578966782917612337738665899602209223680071623214258819863732524958990458410391744344675517933372400889944380840926872746091966003406372062255560410460738675365334257950778842898815616071235097339924036313132017770697163505698306686316592724588257817743741463035562642022248007613707147394825278732865083826088962020165112974369752170569370892660742227262743764263094044300018572277235990569006364848795487408252511003295031373208972850989181214051334402193699066838831132183385174275054296301621004762598430924185695732069852327536723703889541493865921140608624687607577059816094445207462931585078277558132725926716700895572424903100815095845540421318334145224970113739557278096352884170305536075781421485613884002391399963248271132773484379456541462931829989292382575930512511279024729999335012796408463220385296949278895618637756923488439489919043305922733025828746258909901059729533065597739290246292242563931250873408947706335138269660008094334984229670711898533708882759538412618574696432350582777999235749118681296567435560195230370595299477413632298667007972487062318383635978099309620606399428881482342048801247125471691686873577433691190330542343342525224934504555394530436917265647903138900214468624582322607226406490880335606277734764830323216032233986258735995069441959808078109157890035014004295836859059267856717646630666743119662379834985999283156081411584956325086400837758265526125141611598294365707157016488854993298880275411935601980363629108712611889150797705072340206816714816001238044297268464950415104098875192847159316736138591804695602997984097140513743645918939428029893362725659038457019422319392991585403211371534837410454379009237674875586904720120640552891576222013730055367652672529646918962159582489904790327288512852758010279620878947518752019227323947672773448869239613387936861450846939648594451939887833060883173002863493919355390977041622549392958334733831116568291241872140926186803911983626445021351294854930928558653299518431123173559126930999994401157539662361310734887089779422064813753519218714775016582342100115209476335576327109955644710990828448974171930330762139863758221261497562366885110478349553406304711355642744477827593118241561265945004423803219513133737995203815475699244425326429876979993747464957507406954146277124946274994025295793186592363750975649381396330745450901568815957360483317958333736431793147946408703086128686542195423264190353530038032174168031562172945173448189784155509593506237068706844750779068835043737169307762797787970902467943853175189823261853438105713051797461937305976807237724810673464752696264372141692437288492002430915030793541770283251121006433821620454056502139890852978763484819002735534232609273936334127478290870692318121102670659117068734136011397554971181766921705941128954631049659832556482033185388948721493437122955593784165591414330273101005526991824809615402624723703037118895590000142623968099444316639041744835373463564894406496537409977125471906964572096296500965843631902921513495110598929041991867503866531281050203356163470430434033033589612313929802569337982624083468808260952660853739427861003483710421789142836084423799409455569014700481942801621450401749649951421626202593575513318448195180956287803173048221463025862851896086648298011791104330971337850157204403791009440008522122142616529317130230757577189905272284330782011182137355953235572093703738100830664878787236725153744065724587261212514264037943391313021380855102985592789821279958319356056958862020907034479173126779673817476460843218161751244611436613340914270848029171226144176914761287325273955140494265966891547829108435083962016974674690025548277413170049065439455549824636855194550457608626820256890128801851921041791964864504435863025444822211833831569818975220022171211398699533068129219794940165970888183096758356097973309778982617422411394399736852233296095490936480259916298056960667735909970035254829445379332659701559370182264011913841912442036095739997692570879060141541434360245528708207431979349359192391554613030292149760872864462945594452606474603452696335183059208979390296298898623014456280781678434257065250730832967790536141592772042677096650620369479844896621935181979506320645284164676489056464143235424809652240089408838194714852426382238351596916511355271176575518913945113851059066236037083057946690962403959590447060657504557161321811913300322760539697881044009469381580282840705715333845536393270520101527673025012659392468568872787964558256185124042986924514548165752614807048673264161807165902354119540306560898501160732780405237105425387510399123048450061997114234763125380282597635767227846387969015231626211560408546643574401344907443846738694292170907618253507839751066507427119474835464512341686101013119285206815286610051728997920754290490702296009994347995848515008457426016761575769107456918684757743977603820520827967422859692817280198358913013383734144454633849948337041679054470575108575025889596609483314712092674030116962641118491152730426500909116207244747339088551168479371215742728311212796677265295360165864851244320680315214499450073165928850080009691059737192935749852918808205488787251945380253439710020219006442179502083369731797729492786883752176337732057123198189235219015713014605553871171375728660498011070214320313621856858296476985745060032293706754865326755009941537713729436467947653082329495575609390437638714967258641348383252811572258334079325028433345082991934312250689832483088686062351732196145274897817461013814823602581550744793150543548919820151858544813034534248055132759735014026160460309145163701254278398150263901675895138558387099238860647452457377638317835532685370267265163959315445328357612548553063394436136985849454256169134004143377059474022847372750128598618047648496624805814257372663689722882475438061646241029410343157645045759233101046895433700133879181195754888955847104694391263092223128556253299672822182792656941649394534375406036411504547525679362110518585148672862591554759975089245000577816334417882931673244530969962604684589535564743390649118242436277907796488648940755698069554602663890971598193886186678421393746666946181104615314105031738552156069122843138045413255906245956107149744979364533322517211645104342096971453534498176413850929759814587118899401489660702433466701329935548450688656364391573471396209567687854326974478191300960561153774842528250372614134908714602669351993558529338539773218153872066993545336942535271604084117595689041263325007667576995031439637528034646272138878561937850595384526682359979368349253223220551481629939611104279950193005346245460039361236267350725378623599933508545086307488718135472949766813636078503088767500053640978888396160040860892442593326207383053715016142755231188820673322560282665827012311035504320113096753275842512828112917806694717802282289643941013393041433297726554856167043712716376622285799168850716059104040693368524165135763787433007103230229795389848183240800718667707284993768823495966045502071245530176885596833210131660429942467586676840299964633000091949037644888480367632438297060495518499432795082609941795938217982960638336062613444913470259357450893269462824179415388075623031264129771290253705725186702192028219701252345103095076870272199541659539052593229613124152706037059986189413391714997220162349453080462249586674992920690304722414795728932219594508290093441300475030248977365104850540100163800820707084978647316916193724260814577571016109724287648297822105180738244593676254102137517015229787174767991403957210923905716357329145251380630888030009790807003480815547851476265815397161921551075277997463062850726764436506130225234500115483590235312426690396021215634424016629849813785365186436202098706604222875124464398273303288838135493915216803963598822643341433197437822626122132140200555241192028363391854316252831433482793601715951514101169786487756435183933398363382118875115462052703399093921819633918373892615474510295975264778713399367081156727545308882442193307994567342277026831183473938014016570693675190634020983416770380745420200664283016012280456589591743090439884627992592921948880444443407281533054642630961200014677305939449891470591247359037521352805453826499483491432194286257606814289925292314269323101973352864212209166194120495673874707199373956066350198255953654912456241039871618559746166516252208854607727100971244282388032074210309708705314437851251004830012134950253200236488815747821567459362275660406859170048425171806206225339014263199783402916095751197580621932102746892416362724439391253427311160595728090154092312768410977538280089525238959525051519530733184410774645033852333441897937134469288586659309337826337571996165156831984549526402269359650590809823361846936498816260661607063470765595078688185872769936608599923332451255787544474031584167983822883305252111515926257747804436599592773968232671962433656581634639407145669290929444796298303146091867444681902412649509195846057249901464297260299778589427303148672108057076094199313613650229380022194044919418079855070170063352011619218440096786233202781367009939473419953087145734986537559329835741332754232211290780990018043889906936481097486460500620671431650714277588297882627722062051087904898758154392211816470811947986025026273380333372538759949700815294561374292884174094627163783243243429826004728465762956645813955772015275288335440323653440242785543101171930990126309042170966819072946092813137574214195775713811420810390695491370944740885338179396223022455028044559186489244309579285312670856245507949602030558157340768829209765117406105382240185282461508304608580713714820435126358594230060843417289262643009850045459428418576986535972890719072065134885966169165703751430390847528819099145729517478375915480782417812237430972263272634616052443765670312914922683528816389690977573588723709274367145263515824126034447485575064125302432728742396108686769856400951826561279263377650642385366368135381384035999174975182808956429472039159480500359080434826599880845863942643010262682116960859915944084066386674631405727722499660915945977081631020243913385996290660613553258181442006279487250201299794651822962813674188259579932366782378357079116710804387975043373125383713471749803217726943691522507237111554777321329583865417445847820696806850287490758348135058932527872189278571174548317011300783366022537324377206310461706073763338642890642494265655573711108355042043268601210996387611919633383559210900886606970231551586200899165778346940572116962870236862192806408009921736426014576440971013609572524049492453300115441816714845166009215116803884783449465699956228264213064494261046367718510044270898270094445594847852576641787420752511583937900992018965787038074011299151512772386922875577885271841416679600704311640265590409504384189452959075874543734120764113670127811708886888308618579260015203009931911812635420602744033378897277747801016039673157187035987728262545545969200777904540046965087881209201285509163619097381339440252073715837803640047519235582516549523441381367087505390930380840136746068421576567760035392069400929510474353424108350816993194622075083882773279712737942412509552129502532104232256965525536767527846674348134004076200872956169645280837698072130246287155324704238975659489024914148427395684495850718170214945674310177203209267620790029785302827392862947141270886818957266535881581728514900274760605069906379064259498053131002776976520568579445387945603304993256657724213720134639532301259083732621492231461936360888309570200354682544513452148924759505540301398406361087454543935629754431544247334211797575745243374941071564915090248320456700104427048627883808119850327983402027287468178726420319996463853992814139300568765155411588797767194487515002912961039943946677584493276176456635267655992423409955748179669422350761791428648627332737560807430890484513936057594887893072385470475716799431037580416556755227293953104000842763190862884898094083014209382774725481435592795229252426221308772491959644767726765039117479525540457634973296666431104479392221358489981184377594455766387114577459758857560524344699181741662420852774895436174346615034266869385821922636772504579548550279414603448450952417984078239190884103521439151793750030175313933313826005456093194174975826710300423563721689661658078220732418415920934133150702573212019555414806206838251450232518530459459920763718705483060018237896855847155710499546751543637886435222245800151639437626694693595350780387079448486277796261934779657631589047687079205454852910013751251953509046622518233131471187022243384761361301387791636034017117761531379494778588815942039942350255739152028046209696103377758655057306050650610072809324815867148450576241056570768268150360954604227785548815046608014755649209545704699867854211562771292273894955656380775090456776354835853572030007287950645477636267923151931230825358357255625893070818890236587480444436529430167084248311236972825943999995310381055604698916932518764535964040997228659279851010210168900262689921882797764432466329646651546188898753656919933496803359848711253750407184865943059493466004999586690480321666529885150883857123777373940452232611950196410945728774143272229795831469642167441858373832160376660715599725015831896340348465071262759073772226681135082126094056869103718653152730526825485485899844730905421103074752752649137423642090052251889764840147972436967781346438695319010692089684731850401981030262084252335022619010974821617069426694463584646478563112661408293905118047894522926170049003355700913734081328463185205493727143230497814553003358646233761256675521430733557411202689604549957488342671914665783333635070378801328208132156152799431786802598457511417058686091866404722305702366438941239228119800543271828677812593012562639233901893116636305584176587749428572958633512679716895397934220933428263924783993072492601790080008914822882584097054798529618249914721807449248305314104184839567785139591123303431211872892039588685852519343280249920474402529159468388071125444498982217151529522908417955654068740169406818041360472492831936099781475511135977082516976783965927438676656866559084671709402427134245250724058893888272075928743368943600365255957752466729844846065334832093786306327936448731323182663342232700745213046134533015781101985185885110661509018345652418157527615869953457157517693435965724181706625296910102449752831962081409617695456840165671229916869152407811720682018778041976096225144276259453023851689872861173809140088997357940234099165840556244126596617839395695773548022391687273458449641614478578589686925190936498622155320828222755521055174845748965980625379098975675191281256803127334161129277878775827653606718735852041945304171663964276246228830653449573185831457863931070380077235871191198272889346326304551310870285085073620691600358757059774272854316885353439603814299914764405914696684751501528615596963190346505804684347022977265605621721988853635254967160883735967491901966189047437960952143232493549033694906278805938710238238826657576723000997308784824954955931770506222187120813087661012587100506385745222521655600230505045194239701309582366319987447935823519919024221203376231630064492374784415048332999399890946183738682306437059251860909419889995001006227853062299030034587664652841044464988529371010003928839819871945533079573612546396710971353952669895232934974811324301140486632323247406784786694049704912723350734066548774193300858477208342102443019115872137979348644011485292523092842313228796935291817073334508701132817064688168914868853091975510856146499619960800424647922885250324960414130724882260675949304105136174452420702503629926911792719791710631523108489942103403237335792168020453790962434359657630969799238432530157014685283847017437559373630788399797579770853029506512794504039972007679314119426631769298898950822878608011118076081665117761277295789101142618507158356261652836370192972818473735705788344824923879279662464065316256624355311375335910254918382930518723585107530753393523482502684661890039931266599419906495057973294870743848666502477034923199453492901199961475453649670532504323577679694475615489296934817783380599839196270501125786607849993904872479609037226311819357995782874708497741551692193772749092178604328134071307520036367774186293339287873595046621377829371584843264761843363365360842022963592722019830520568873085717161107032267373856208712388760775266440095669562529611439946627218334059375273768266391398637734834523964811408577555784943017140807840744293390888526662104317991286274522623762035549261207242229646889157922316817380821275879684813637610954880706220843396506845802413136721317898540643586491966683397388057032794085330071290349420713373903952809003659821113600105239706811761430584865494561681595088966501875282942389421783305372381229174843684883329925338569413886331287884533610879317591235391957297568989171655380330537684216129955008494030917336054274525673231763619310202426536160272461780641660656848087689322827973548658606015734310594004697319281549149201994503925851991804886227634357803555542879794938210531071798094425400737389537259049105447424692320479099540220414225986248430632872182492957424734789169071284864859292286328074187181919861290867341424178779413894779905067979134266857340804707558999842570880056072095608075626500347651822222836933754201034822386926301700801226293161302955881518241766783152312011251275522618774145786925497724400078772905362805576137561055857430476282305206460130932096745416282153527047765998501299598006351902534569892609635642813003922481866084553294872512372158959204766363213628065510286180617077439823224086313865449274570956849876324573265749521787068998927895477219222583827612367701684842852616112110361208498550106106959258451368773175167885572281541523448056923912043412675151478540825316871971098882434654062407462255507832735857822887457907490817723649392745698232167879194096833464578792560433672637643601517670552734860742631191345032503821972641500784086395205441645100918191356689316246758106552753766508060492290185595659074103201224894919183572932195545367889382832270014096216437183610349330258412759921394980155084340668447446740317806178746524042009241637081178614921661147215100522301682499265830314036190014512954787112701445364185843673175986204141573578568370755015635632219987665319758491711280460304675450938271739258097842998812275784616805079219873718692923622163536152752874047532361130101504463695230447474955144762532323330937519791248111736072025968726103553036553218762634875868280625701416157120417690550669913132580742980650605470005367097086511881556486932100602533971074532915558554943507253529307443673030150144799269500588676195400591519723061110398999142026310711158103984684284747613920173669067620897968603591849437475311350653857695376769087142346367468504287438647443661358346248441195246047233468470782114884454913432219652576931101014614693441748993607414578976550193321351944104379477974142638245787861221831270423459186609697113893443953024123290808567614562044798442807827473533225766969079995704313656311197081189610341386716217464007816629409190748970875863365432230670502720386733180066410114716387638713201383199491112928168738966121755832597298217726240638472971274405477066432234389432916385011884673357721805104357489772237368670978818130970916110075139715397764207444090262156143474470233989570577946156394086541535745153707140493259429884644676590038121109549976873766661578011118480118250586392450514689407947233865729996232741518383981706840473440190718998131209594742843908407227842350164524783707194674813757321821925419035956767026881105293235182353643471675675461226764106745790861596905136744346707713205305312129375609969108034319674202681956361858062527568418244671838441230955734626361847234555364178164801358179667659929303209960010274290083982850451440508040495441911813864403059351189416287076791463774898248030644418869196654580306378258666711154318301256302156816322916523108908770703464081234825812467110361072407758066894301058325214139316751227157216583048926583943411805321921195515400031941261868845714213711127719768826309575810682934890654810613550961060002192182300883478903877925369151225096164160013704713427003442404021842428791364766093211024591320447383310167951668306612500656821149182129936619243955309299066868837419615656914874129211134363181958498324324239305364102673133108233994208461397927120422187379251497074987370739272103536575586597178054454265956209174857175939896329856621936163719148492257934288591976389621753829760171317704903495135768318587110511238281755342116944417306421179655381418948399494548587761860388431790416644723450624447526401635313177015233881437534799858094674369881641499825290014693895754945971256467882619717841074894745486793346232655560270162667516058780193079145426089211237849969765835065717653567266924595608209475728655626676361467586427000344604099870359280075181602624275083894008951084649058022091764187426916947490483402109945400558681895119978791981165016036583127540383991530389639746808699115381127272282394010517273686881757768966574490608721033591434802394570525559575562529917067167928885247070771137227309711930587579429412874494510089526080437656274647643149375747796173777725026252090221870957113462254529377020746182398567217609970251900836365521473635316935911163213422556103393442380503926929232568442920710967986889773736752896330402471279808674367073639066808666953180605322560471955460444330728694191620317087717955721487999076570362311632125930181910322260633393715536142387022764113039950628258749101957483388487417398680257462385748775881999473825821734253608338572378632798854750277656409709842509114592574282303823838993670193217538932951473049048040651738458680505965589355773798670212701865742001928340359572284768803109053503755324849213945790910655952640282468557815240688571583749275282500397319347165602652953351232221493884892769597022071767332152514988278134604566536295323014945195330275200657705559411332786277585841288479016906593312855163314281413672139787178339958599762078714050612600902341989779509501805970308317528424573030799106134757670111929773405775635385019554347175145400414422929170647565739901660323120846269200359308472341721355742018451779864200508496134339851695448159480878159060320664764419396346724776732180726908070385469355856455394778388937355582621266249567088084661934911813659376222360413217772759167883234555431156488172373945518882662927233138933590461585832559086245997497019173328969793659325881281015840781296426367066760726110021508069530058887440994769969595683496613563704293762818171932701876413403876780490156500385015549178544062071000349583679553766636702090720251034104267529385384177561987346634991550928313072102984968809513629047803443713947301924645421337527477243357043740103180826373696289337235925744234238727757822490430238008989561473404923662004021945719352283322410029379573877112251605069305853312930630424121334824239602121249953195966513371747756053608815075439595603594059146163313956736121236138083495819116263512688931065543857578376497512565034492783964419293199813707989549086564035261936968213795596166037443533177626769270721196200950773455133194222188111545485320669511399952258539249938339766722684778200225475131499336586066221156711107420934678527450320063519529180500926404350143671648074247043208424076094943696785788034827395005238216365388966434675644781645066760832777152543410357311957114951051963728360543710948734027393043907654267040182163780302970084412244036772277725389212175667909029090424595756773764157661687844263999538622040713429678842574906889831937830587194600621559879239040740313646549583511429314846470975809426159964184553883047791208420864663640664997935821702025419722144662359130249521694204462542169839085785778600921099529808385482784287560818146543373301722802177819003184730151299541377846804767265469494823155415472472266471683869210396168209957296576301835082638870168068970433216707065102731033418371704799439898777343883216287008141836244045534755906258280978476013566774539166358020782107763217605729825714709971034522814688607476075515307972137745097821283705928951280565282755981153593748346668109417454613874631355856358265224208474840660089454696729519990044402043081633497955423738742725802304065006162087179573762132750863738769171366299880094246078669751352632368519397163805784114450014124083261789495314728736362451503383758074973515576988876225633833436059860505899540099139119429497577650801585804386350160301819874928893739010752614037527426711454056560422597230578094122730850067147784131040787909929838388922562270871805074536208946161922463699348398752850489804576576864091501328245990229896115095618885924984298627567145224749428372822292088803942622339737835082725744784213850521942725729873444580226820912064858169771440328426740229449773700935430066640052166367413404295339984056836593262763641867415068044647970048365057363414797546929385495785825826859973099050968803722486783814061685207487412039092494808924366203425088509053936770535251752944430744190407623240912262600813193025490468733680194421550632722687264688517203633647334525008769267802759677584334136106304281803371936283328069636919718055405546883034726113132533880664237911753959715716123363661750118091622597430177347884213450910623966459247778651152848450813998686515988819159233932957308568571231961289852895522193183698138272914012317502936166184373722497572671536288449585305468585525837353665444048009272722164524213992435115540460462883228495098251033351726483506509816049172453070822881396506989337223697645357216573093172428835480808028962453136804914419002508598060024304799762476906750352578487365186050146034034904620893633799249551517969969545457562013018707980867123912024998347451712726541527942348665315309875635868821404001974707553006925869680823765078418797145374951053166266022332458619999940313375595642587227818732510197973495440778474536648393344237847406490121456403448682493371607286276569449769461322008961524570058367316040995957232105498399023058204961152619260141836289916168106649671067665012758499979213640673982787406247459541261549905600429551215822159346550986682577594826995322293412281346155245500838714338669526050772305942020687526860840846337809334553407714829356164445408638126352647804852384297470347293467485706876448636516605478521982138055087646262969343633485768619705271345956596384374655270760499352159021272319835660980329983584040965611166369912032608636905136762096662396915101023800338887462899038010752889233581717169794868907326618843736654078735908148035528765721412684367888413962634925681496616974860034022556694071110260211907556545356438507601257224510491053977821009397203892079690539233418344637811452482272742266401080643840548506685334618219385008837641853368433756095172063473138830462576883999216523180722241814080292260187582241500975165312357979709865464881830109376603309112647001006218893848948436606729430998770317682420208658762536084955355685819309794677967507027145338661365354070894507476114415734804154021391644534370290036280446306179805415152539566984013093629999663709637436189834378369087524424617737616292420977113980284786222642045835005531364107304577946298265006920711454507641627129313854751578135662226865936319733187600761284041874449524846150692172109947793906138489860689201921629679138676085197771802140996286107702206563560586729124384550666870680636352178866466315836531264888368050048207953068600437619788421478321822361954626950283419064714383099277953756809135665924555792064167463199257769108919670318630589442793076737547790725139432643329832697358726012055977775855254874944011355155711406028133491752381764916725590429618079194256417209712381622373148156444767965069262670392335188510308985805122694350253648299180268563241842304426910768170450807342848116960447488003491857671530290367793265827780249220272491042323387789076082155581401481802253051992246872843349767696266743223008682146816015438856707294322385494706329728732713788714343375747875834929733460785353331198009913615577228433205586397624944054843711072997419839132611999861980263422424155998564441396239183024173939347271932035954536290802832017870444688949892721550284888400146883260187051671572556632749447121687024334942520107175442229511916259554464133974774838423970973646983198661946564022256198119910724009938845619503891459800722687445327870657271084419406778333489628630327603453315837405717493154273512175051493103152151206269192744208629791468420627280135758438416659791805070254574905149009369025684350635321555854579786566103413762643382186136102771075110594893469161262540949034380979477299523854370766665974035179337271519925420541263946659869690803710491518236550888865663851290462879573298167046923780120753500751414466242293913506914629408503176142193879002281487313179897445212207832550055964388736157890862553614432541629066091761641874434455281687783992544060586543907218740385200380517834590668211752777158741882023776631302747050310684303901418837389487802900467014843862867698962271376582895351476668129199428533253566004569314942760836848296661446369287081783373313803370112260879825517175810020199089836845483494813049358476864573239571068730820498772481637591787361315301358353683418311728935715328706708457872515776916785770824404180716867061275643226562394182222963077936393624116157968009322319034635711233070977119603733946098425528274363134798611076250511441129002501328360742744577428096137120743812407750944101159482108871488676169211875024103657497146583548376230895095770962058896473880826562564868527575641849982805794644502173868485738736317110025085526917492319097348990909661047082639169604496175706339404764937650748421355701007143213839861401716322739208173523899327143223676797743892013805097005812171198197016658491027851613352776549669717457007374707109908650715982292158567775743780598627671111063678029320075312058006054929172017530441849684210678402553011488331126504492448664563221458627659601264957351807999855780249506893150765226593044468788794276707121336408524270337518250869933362386821031669472330103700134230376037423173499828214685783828183231097301575534358246961646137435470499221583740361858154893842454478615225329576921569628600339945615265046447474512357951283574909459865641639423715203794401817485000816061205994507295641057883975618490933007794973538792185837232629451764170901688343286912614690517629293958819201223550273320729231997266880582549223920185895363597246932515595764966488207672365335865615715006028884858047449138669533601392724631092667115828475319080482076762321735636983224647108805962108211891920150043715734227579072556136774689829370167029654753189501026618801383992677525107221553720610315727984762872292981332474264700644906533283142199637764663926423933663644726356490917288745221379909265447058785527778352778405180072378636132240166491756463749530991779230647707974521524574133335922370426065539527149486624029146125654780906582802388927011432841766600611269096402426504780032432319543313565154137407259093583552699664793867759773731007513896327537361742368395097087123847845606607909805966158823338809719893821281048214770031783376756605117090866601102269240932307107215751307128566339063115014919837136456502050243191012439670387362867312268677103765736404293842681697903714184737480282565954452664735353059984152990517759820116354715812000303233322319262010810349707701283807468370506248043525920680820455942650718881074399567607262615642895493382752917644893239289143783192303949684101012878486039794816730740053361156988075974277425008420673922351339049937257849119732123172205494670088760317051106818437160295631580729446372353618815899490249376125819752496061451062790997275320093856715221396977470169332423315433369049984366288805725035284069502010067678242868905653836250934677301286875366614997259056546842747491266910564250876200948537218328182650518211784657413049147814281958019305528610913744060547205088023343965984136609440462495355671560789144077505395565181559306283039561647915975581469187810512497562976276484291774951703219870119687560077137758570906418817374689644460150839303534964936397274044784582723643413899612389071736475659413070297706260451503167902733096827502538168562104299355413207707959317445012456928406725157891822141886072363549367962282049510003579639151076651656064037357500962565862124381298635082137507783728722095249814230761349950037057421812649332952430580710458381944332240826541626586484296468795666305467823447924201490438725389849193276456485246416919857122241389709216995795253667748544502350579342037013388379075355812580403469186773758847027381972480749651411279137239579729835456804858444164980545641873187492692229939367368415395398644194216833520881071602443273174465677605381604615419371065321176387542556505811151864788531646086471378537609464497944536764362875894295207411874306040890942080739970614502169132232163046742964275124155564092515589809727550575617415349066300878443745855730550926252818944420681206321739053604629206774627938827676414963856775875924972115700478856675702373175906220873265841457764340097941680729308157170811713825960945468377222422856457035850295268733791488787979140737235981877318704306506921316576059662319713749460478615156811488977651967592362602673655590646737450045181697888897686597402692713691233567387808261459057851957366533480659202598063281556260953482507226696355308184150591402163382229065983700962168675647957691785415409096148954449233744940704864621261859791309540163757175811710645962059401753559078247965494173468822402359448907066452457744495041231558761181103422749972307344503024818354542392217808368482998245452650197685458383462089421792125299633102396608354569227945595078136837372330353584315245373223839540351494255953016349547680416651285582842891720421453523051274080323752639960496049564413977764088265324711601109274523656364923385560612393360746597901250137902380383242588871036973115462888081846330368264278239988155549983399934102140486925745690121057922791687340108494474752662137314626940781672358970633857989321339310172465274417185861018614651724714213975451456923252275088803315364130327667850485934834775947749706079316861849741883090437258404823266916694143977961463710172695755553966634266435346321773787451679770737123818489908730300974024266076275726480211845418827312912410686279473504471408895265142300681090397919131247872527979410846694523342405203698670483516991513056683705701862234811518738551012970604207268448170380898827305885705898889247620299304302504912821635209601118341270978153380782739986454039324726997487945102544045285030100109157409831371457179757930874620575703052865432299222033884716037277063404592669695389927927676837310724233937032255547945231176899087746827158470589820170312456037653695080240982554910631789350108512754974612712488685257025197014482352138022097361880010567161765409416016884693171052485895781749626007216881437387659613631427229300894028664038581074879560798337619088171979148687336257606496601099533762294726466034475246899313607910612074681412587880563137565081915408311837092886496720346695103052998251000775206311971859864035976090599319471384120648822275413196259370560066486074101488485079454766955011901609192388401398604445864553902414800984583885402191066447638497796324533240411084879714110605517481736265629239443898929321340031380876456813295578052547146017927633506319846624793955774487282792384312965482868932539481632583113678650612179299724524823465861299697562760605528051448767004149222650255003109608299262700387301982244005890202914835309711453457918329963329121772406051647790589907457594773992036266172348360060418746098890849861926312804713271952155757665073658305762898001181665374475235698893270763217206998090301110020500014070565214130232460099900161862193596148332267087891702118988552116464491103473172296356391664001343396659875863743634551226975640221347915293071210710149593087979242764607463637513212356303637871012091372752606358388618883193959972261301796584857228554041850223983663139575325315917629516560676702238906726398682755904294610974338175928587395865364025619641444062559146614916877191380750546572248003681874808187179657339312662265892468493579906377790913371073425327707487802772569126413782922991671529042831970844292583526003315471519916966523312886713365089097149512148832345440052995085144963889842605709997901380564299758763067627239973845765087314654151268177455492278617599949941385296838553436470389196498859574993963483928435106616710434486814360738940699665821907328190517497124999117044762806935884079948669336253800276171759922553495801090819853043284926008571747313121372225466712976708580933787363542424243254646529974954252985572892738659263186642697105963825231293709515830194817357403103175814848229267435324551567873167076095769064655250713561845298524633306063103589715779718051988690260927710743285294163621081437063963707059962450246792966781418972879063083937873480785614887201362398181805007849481463669637926273588938623836518744131301263916771982509291615785958095055681847192756031788072324975173198778354179211627160097377487303989131794953494552052516569997049012375267565841273928673097159079624792962665412666393166870931996424868572081637267492657122995599018838960269254697347571921392695794445595582086517629336917160465588543763510300206344744820980743218809922049959536521544986845123276239209836475598963382422196238150925458940670060870699323458423281766556193087495330085542905659811532704921895592230668554100978138870872787610236407386577385121380663473576935321547444495835548994293058077900392458112304695650164716057483885148198984833941129369307972465600851264967835423087262392598318639805567118015167574850032205650085000831161253986160144673794890024219954631353614424548495399434504868099815706432610140784138030374757355721687596387665245799869689768005616840415844764318225240346124246823056521122662387768089581493769049612860742442541762766751832300220483402738089643151812184153455229554374982325365536632520140670627134315211463066440941154556439943862611628714194058897507028905861011384524573687719821921299168516560626197461807812413064702945554615610286079003742554774578311708663728038987743520063168144771934964323370286447690433719701183834176147714307090061523472448028693713135290709807543680072168082276145654610955358364893792294690793960196750610552361825356656873718959619622233721025082781868025361849750740029765341730122757433929609046942440687228818843549732303468477051845026068375256078517599694589768642760993021769550534261626665857460008742969822852022650605663700837272773694687027855198988315146394936586947595407178326231765971852246725289017978164428800056651019141394409812020601562476397664905794110656332785491124576819038940930486810799053258184527481730079828865955761010564230512376152775233900247146941384487631113032749971100799436709087421801098009253431081895755828017686645954958486882381961841140947709710786675426124898826737334839648871459715045780230939230825992686826211222554343706327796535479178379412704869420784698086790168434499513308089605522633549839316088741534067351236145762691241607425903979325439003474802501930391074397182212536016699983690207929428522492820350827325784309160395273857085594815681418478316497566914827452095510433184695095926991730514166492228861317836720437918004161656539500106568569306202932222824192031190702547526761875631659242078382699224106351174443043587252594943368345302450771567542671051557855844374674682629341714871562422471683758714021137856075118979019325466934676182784281470645740179368576785530568201463553375572574541875075137346522712756610367426559081313106767613133616371306430929281533393636242395279885605630406842004348091763276688633663522530626825077305934508703820707008935352935755853063010702575163765422059458210260611045651061538785815621517268275800041948239187687801117618457073637729956993286736192213073247268718248089330915116252985766369030929291429454617168586125327648112069404969573142827697432121855536220712796720913582356394468478920223840712976920191218196238241944498876222125003945562546402825750434279593872095486651611443556183053984522705605150713189201367494793147485644302391424841531839444686531376887816280856565130230282008552466555988983676089988968807096823842242691732541121293945787530011297340847384993798001533322673241815590160704626510108076194629001338725859089834644457568396991664734460495611303801402998692235992266720925031136507194853965130188494058082824578339486071002093641593901275001166611561331724704842206192892297474629161257928871421965179652286288073523762555570731492124191342630985739931890492041495117766090052042341397895741317992848166548917867961312826887428499208110885213846422280842456615554741563365433717369232537527372386765280052629709285530958393179950937983035478151670060882408219517850323105715938514555870453793611580613714984707096719489888634501998920797690022720787481568076809132818854833841007425951334692961432095930805394822701406719849935874697966528744160553601139784605811253158293987161141291250783597702319978154394938607304638438917835307341811257301675382698146005301602187451810669074211944025851564378047211179760906216194780636655428080100182063948090909652106664989025897075070728783213991903915214399139881671052199011476930097632856043065002300854657476616427782373257054652588706478976109987777446219583219652983120480034948789354181939221410780764426735879627538026082204849751315216744856838041024420406500526139137452018579817380690551814116051857741475851596411176636453983507613763429626061175875755026607006660395870404430518006080222606301587862712262852836843666016512650617120851543692757318756723014009324314455141051277845238293761640590996506338690089522750510340101169884053448374351093010395730936143023207613331707076028536517266835317195252962156373494087129112905787415067069393738606239831228410648447369823014126251870435400994635309153740312692588815348350682675081301951857598943792971566637921449944809309901307244573726103718188940426179779907439249424331191104003445386160187338543465026429908660670560806508638133260606033808298272209722636369142922773673879350424466327130090339394410595754411499745701952148098388692076918140680188066235492071583739297539834466053491363389421362566886381602380157679396906814660917139534098727165899395916720286480657111049136882350774244092470238630420687044303758396798004278121345655524784370665133232860117095296736413757184286726686018733828896290026393493076556788828900856922027858251466202394927561839199352127304985220122521320361637297178715864790121460759078442081828980708258830951372193418196869125190875059538100720928448455569180570959334568725003749351731912148010717932152283933257456517370997572343272547831976933654716182429480543023485251793485514525218355239964925559521784644710356089165335826303678342405457511985044715014947785908688632686450803604698498406228433721237629414141883099308757799832503994310727408759039961981040694491438259745591623789401854482334768469184002954534502908032928798209119039257873799493861602316191600947243635907095459967566324646295822364625451434589097541405809388948901801464092297683279038958595912625443588939265305704400796622110109058451745595137786826125084611432104864411969511688718759526282895351429329513080199440883248850732038065465210635571446033047705040501685181419270884018356453404421188620208506715977699849098259933337016156939692524059074095453200941126582808109909183523842725376769015996781332563797304258779451916413538317685358304760047714971599789767931704119273080169995404063611866943207692141479231566647481124242584176549210128666548253326152045040213494581218192339001181515311915668952393773808915682247963069220888862341005656475583303879944771980251949328147271196658139903691776977667581004446593774555473573442074952262406260367059349387964458923845328737433284488518025146040220277517745039430452213522872175289029939807552478788765492980869861763220242559450910208769430423597264650175351634766341485935488171461129980465532668988122121639004594195292758200220613824389053667089571170292556587350948671931684227357800406276002667098097332474869276868109361480984705510253851620324958133805562852496011653108883105918613642426122173257334767534116879021952868045765123573736262188342435168496761689255994450743820862932009047798983666035329142697847557405757852367057652568067985753452642431958452966380422260977854681182897772178270524910477862936778363477589622387330060704944658618596039852853571793274878486998496114769700922909672915451273536660292460464083013475910302639493409638184178227818790507044650741200128975795586148231912898817301779211530012058351861950333122135187643492955356711830177050109592412958061134630466507373587544824950210628801415475819018597269637014648287936414791787060097071179306127517646683942423097552833033403124103036601669682905671789503784483014154182282641657121710567438888063841311706118297751670508861144004879424746506188170117710690335291841377621203280193068028746388586997318368615683209361540215197432712422969495967617432045592168410514044907376484047022285315114558883458294203580071655209101731972151616548108388294984576241057008650551136309765816871553694627377718610448800825027133598984320973704524847028151271649360492270134776353505123547336975774966653456509859864014470276099976608002502230715457037831896752845617508846650925119280170190313155906814693221089768902092882384880881346068155372065240006740248405840596377258447289383606554642407961750747638219427296352959960051641839373703283844781802941285712212456078008759139405686263134826176992039671664588633498708942911405280755934592112017741297011208071552232599579417533623303101473927277371002336048235697094346307706786111188946508899987351648101883427096569665098961914179904011601617416391694318729314622111951048369985099346545380261782355264846201554340714459966105201349908790594112327934393008881743466029553583798773389160002652908498299697876906674469077096616489729893816742959588806752592884031648157861414686593451098052094897317410187354409593079623851994159488731314033924961996839074730544252548997655985050872172855071253277460389537936336868429854613111623414009151938696753314353074134541595036675459508455513769804640615453016432912975923778372427549239767467676727291110252179485368880389311912826323115094615572417303136202512813135096835286122371090367645977523958494015072475616086847533958822974544116854684387737137266600403500145364713099411634916828776739740510233062001648019451478605326292145081015939772347582643727288961622516124014883557038829589129933281269151427301500253075906448872807655294032315930195430418240785105533803643960771237940215308577446158273686374372114513872752848407350725419447740863446659095583506536298096746136309906441858299394075804115835198720124809508893169427047569739272184100719361524445427044715159283469210202619812282210877554621157622932910562344825559770753380900804600059977484708655343145832249366227122357802320366109507750486941148522356339266657720768977718419627385834223516550883652581783107466927060400433162533539441829860899279378813357773434779659235376615261081699106911161977609036094111279164378233313816922320724088871455794721909444809060200842695539503280507977699062134362737339583751568308504609846396598852313866627598674767466827498506195515233978019469548462918010371898042961241354461144168555330708515458442895084260125714594943136801541560494872817320017943662938513300234546568015240968769506845288433926517011609501203330251060529479466964110983386232703367921495245936039625858899361468140199891071142200162222023336428890737213943423172751017023732390210712872276355399877378001519677090087546700764439284529229584224652304555950364672618281095610157482841734367853823393558257702164591834713114142350257692731741932443254957430393473404836112638088664636615075622516600129329419971383478297835055300604975051738210117788118221765522411309507997867743211117443440758736442849716094885554083594531214420794283802754282069499541707201762824596518538281058037941410401233243244847686222283580192256762144129533901971178250212613497598848854284175590125356382732756534373861126152272331820966614225874524652079566374724954974045932575393136259618034941110497784423046884423705909077680225515498827544238262118409984557304810927223932541089683884512628721566094367118255556718784631259770914755550027537847622513134839611917133371619599755060551631876387966748033631565511130045351706554890655904011094319379277246664537220606975442135577106379140606953275272383894649069274123887104468006883239275975725805176886387435540430295740810932647735119227336365451536128303457831576462284097803521808122035690956159374528871066386317070507496079069643496437409664347940202279908456131504806409301155043709655934832530875607261343601087454967326200900334386389360571303399114088263890817991448048223548115824420983242656358661316509258201330079866316107357860677074341715593210980040545501280841696928634647108706851560613661482299069336060209557738129981948850122765645158281611076114363320872043507808101637311332509692111929890685794014614466165229400378035282704641896782365465698797593880169483055289848857494085917205557155199017014829248289190101957721936626502953103598437129635323010173730446530274314700460024842599906406211678820938841195298304306094409241005647949243155438387893882628667612645715950189914199621719586345069875754503160319705871605554117264439570065083755417700345818438102424669652260631669924013054799792471378383989308950879549002523532079274633191991620551219549555506326349150223369651504171212598231646617003647947107710824530706934888660709252410002525287774267442140455430547511586483317146766753541480815439431320399351160913222612760812959896335316691954239792817088420488066267762450284954286976618988887705649268751938289036365598950125440311604935250142150590545778395554492480866390601993945417749305654843044432297996408445825660735493688090124640659355956579829582019788643141879157553806694394089496121117538869624079676761181490314933009902143026824519465042271167321069874553978620468356628188498892173062968938868634825312614379008387272319024150603865953629528381434872229053580654534713498964422120756726696128617015634774312530180934821478462529453287086680844807040273660899453208770725416186493211070731247169860218872023460001481117360417277667711654579057312556281780178136171282030803218087283808937427316231627375059152930414921595063009971940787130004450264068516939292229788605074240290965726573592066461935521271556945654830746757229181224766392652691270050813272511825357676179553462271541714777395060030959794091969853665731888236553265022399518805479083508809427841202922385780317850691264977434094187612393776563657725228800281154756532585200295931141249679041367750812159066468217290246839616929689710198439737644112027876678248089647324380752473905362508221953934980229547917598321445931125145445546808619161265259969316184269329707615584766544356452952298554095203168683836131873227200085501402386235917375990165589978646484057401692621814765465348460818304789365093550049413521505557606886208844325313266578991144915851035401679870796691192117435346499037722922086230576395643852060271751029302416575366525017283203142955131974172372467267993241321178951393786731731382249034890602585082722934196592398430485232976956870051063547210181116121301133770786783364995557121164174721863973789793098255490989217761501328772416648870676835712666858990154810787417160841664055969258261923471139645676393285405402000080158426649290800489361236234576971702926719436785008734546391318696269146207070785770267333377228552970055994475858772022421371670402887502225847573103557758545065895165234946372269491475760324072132381296718327981526281315843598449023001228321008130492015301931250138928313693326625556091669840226408254860065324971962653917593738212945391263106491697345390102227643253637167511863284629189547000925776761691431283376229378131188465019101993078850889206215315533951900583895190234234023778158978612016829579210727467970961587590880914021775314468637786827895413252364366863077518532216833689789428050172020016677373920727787371782875499444667470531169277847804012479655630783998825655448997552567005098064443045494451910076564180932567533716598071366899792810570277096065010064412309638445061321039921325087880821661344679222539703990687078362834267986940686386425762119436994242929667016722937707475814692248540674183698027810997402077787998610931943058513530703418516667017795187009680395020329343080354489770641560901403454012752506301358961672667290314136586397208949430873010713896474331860300348409845692282212843663814655440901864148612387381145789876312539804549395511685568865825091756208833964079861756311258658422358254218905035460404555471418834950471892436052945770847362823442732891936539317226607926431990211895464348104424918656578566312175935200897024224886753362584228956470238361947746921270671755806991897123983853817035414340006396632730860509115547665115520613405325777773355646551540709317650087039501519888269988389720603924714510488691481826655461978230556639808427612947124199582266341890117316686017164208718590086116059454509165011359900749987545979171356819852508040766885523220492207492454662842223943740396475139713501254978167814003932413692447900698663071158076147974746793987142150427312638196549908579795162211302756861118888185032680375287322061810303705742591485496167710151860672894475478368530447534464611423000539983421172893533405043256206731046485064615443373686202177063349197121840845456366601059196208036312390095965545431067807184951595612316694779312373373518631442309483267624674767881241584487911144483580650412130366237213734904626035734591500191819870370843701038052006341313082884003323387628393566096748029892119408463545620363019033207192420314163000203639869507434240394088830988271795395491685527326578777178197338459874073138106797750862503147274842283975447246539409947508525843185032459723958156342390643023758168992069530382036354446757504604268792434062803107305761065721825261515468446033868677494023448360387231738094392325914887000398316636201486777174756491671672120236710155088436408746836010518046251647882574617712100262926575629739377663627894343620672885484904497014421233945550043910877746447763816789154060728944753328228666817417173993679595255159083437067090354402392218029781190446742936216641544560185851156225757117851100982563202701804727189867400582850277437640907523552963463411605979467521875799915629770245394756723312650672408778146428497843810683246987138883246613169475955323407500485931515677790008425067729111415091048356450564917971596636099667452425912010973452163928340405564458745354937799027108977529879439695046100099481079960663236707949740564832148278701323650044301976673103789488360964147726650421671132659027002660837313925394368281633856083366602411784739797425361433259756157503867788551401792407679634787355486107798041659332932775783249061155106513689872923934640928711753454714800576214244480732447909977532609248165829070971813157094734374315016950211330290310272952373631719341732148825281608320573570831597761253377675341816517363238038002571743150576319721848186243847296275801481287139907773581020808243894806567424414631669983917858204274522656057579467676270660710096822008976875370693508553771926644488059385896226297368256314310653464444857559124856988721571447866696371848169691961756161068235354168581284821071873268430660471278962710256955469250515774584183293963868301088462731798838712853876713044179484047969072177261392380358382210232322303638117379790924207951620004796416196875416976700312374531545916164568808802768978450151657609164922270033279118972039471098378626623555874203429282393347029966617189589491559238265628143439147000084849184322660230252553403187849232930906871879905351010748870387769844723056494692875372128461939567120326580277527204223879595300156219198230598782669908560392718074764493426171571787621061720966752157515274362948614414332622167435249205352848540967570405668116043759096740430102654889660610624393145535150500442038100377116163320298381120667427157694420087883069467972451950695486264683587246842539628452786584241578997415910016727430264439131388351347958037326762018137077899642529331621187982822856563289990517274183846125268924800539674435239573826179671594060145152684979064472717434497997513708472991291150816675253458749113297594295467629926795612969126084340739709839678836416117533782956453586848864237517720393906552481452882683032195052733602889400185513664693060419646889130740467522586945723986093753630347560283176278496870605781413443199124750135102343356710051945287956229099949920744193353223119727001413161345346868661466964285548636260936091054280899946434282238295524252187374391630971162848254287223151320675896970093566202085520763720945167059296360380934492605597407259107364096687018709000774473622975021281715928190605869874114748127550919377008598108628626702631724873948180324360502898442354233094914095873707554707868945385336118929335537489794179743219783590081000243057105781965715152123682719158942170683604196297097447231125907373731561373308307472665630746108714899407500634778936101794705838801344017724040132907067103476124408511872892697797382092315539160674496666361579699079221822654666779633379565640160883639159119213195472249316832582292969416710291648841048963480636555495995903051893962865550908446087984110726510270964320053804979113904420778254551372066308329360810610186464468491172805542396754059656397094033330230262654800993982590656369726378788857976536078513898736518527102616603243386653059133278012968003427359365390481624487431241218019292921986668477383137913230770542199090420045583123059276820493817942830719724847353175637091223122617885501841605417732844696540018105393367542293596279253113402701179218582571804990917976736750975583050666443947174561006234700517737607699789729755608321653104274917374013541051696401017848102436374520045444307288768752069879136464644934973553130885383963748915441234788092578633785524781088894309310941098288351232726316855865998628836367163982311220270192162252242908793180292933201191640908836032021537353912677614135225541574713213096918500209420416356071121874537432979988769796814681111286966352819308795256753450302050518418098088444985391691031648242239880195655889211241893001700096312824186781022088743859957591508982096530272892450040840551105747023938617370652820475302610917152529218223898579166169718194732556125185066968068212296887544953834183592873374267886476769816888365565112936342831153065201973009417896899872322264315270191593616208755634264303979971003386686946899623968208528137170030318893438966086391888727990170898937734364921564118798356299510637057773195566433821948260783114413012892317384693233390947296853328269477790980302480507424746905967877307332547817705834986048857567997981151468568526276797749114711857367795103137557246611300541346967866256586964787708130552380261895678037962110309969045981613485241118564389665607163567716613412636724250327995761426117665327986053234454043589145400283635633983219622779471594974776809110828089413079956890049613383624300989460981999678867516963890090797365325661206337082983705605571613099127762921491914562656175068623988866609321397508345931969964888945151829888966652522786520755705876773053088571118608974422859272182338913486423633983950103633227472290317707441036385064488409294668529856235215811515281000949771150979080997265624812121422921677304176768077790299529468933634779706069679316619150077733044243114769221337939584271093455691963268031604909931531586933955167662177716182093846423435438941739195523780534733719709628805405860893468442610214191714788273465027973110074238560954545107287410136809473363690951217452882821281355792850786161399374553320564026044861339356470040450485899415468081205528309138857590386218732533538561113107886014966111260918060914739838609532860384627084356172231217075292049120755053486134209653717495193348780387996243733438785797452235129236220765000757711283539714612133831591596862724296987157594156512981583561518800764677570982847226113158036051001322659232993010880723699923455775542194264594075933528141044366603313357511404955632729211596239756100165832544555767482687459331513240124329824328036523569086066394502481988276044247884964750942245789091961575731361914011781604141756175402056308639686236837128720050724258212680893757158940015361800332416056851323423442377723751806025689752782054829656954876182862849243809408626891792040419590230296395635693966466937212633587998132601640672678414662240605371207937895864897352907899646475636372434638780600667936886994592880604955287577454179719613603746579773566418177099530641541375316232992183526934064442053237399285861399690045848214097351447816164265566024330740991888878768661770773690310185350291552948321568218120840030719331816791961231421940837577532210412882816491586341256579853429090879028135681871376853725478499038709650248815365143105752138140048535772603039213962715890128000435427850616767341342673388986947926502846125039274640663286890367558136573860861957324718552063582344710567788387918262123312298386820182342708848941985410164765713934172543846354472947042639864040268403760972263102614768876297133815720968346039530738242971719124036396314842929474667764456211950128736962949083939772587506090824076994027285887598661595535435958431472603116668081151633311022120073470419682609364039196486860936079704414279248931923704144927226602949546346103042166184090887452630438997170181323077214539849335687538692582336910399847964909553986173539183861861769474359149170754305561624467310859378399722077904196639336170685236102655402882936299834610984463272576994679798673768360472844755627870081978525639740867219841579104754010464416548880901133311213238390987604686042902176958696472519972251315863255630778643695668036331378024855312936546464148047390122889959931329477262434883027880220152107330427772690994322757960740954273448842105480013725398732538893829323263483702025793767483883817062684655488285636416085673645173662074437633260533421735798438968034897750082666698542137342399058845709385149768134334278118475409034978716035850995471779477446430283646711914081089454952217351790240224804659950211446981361119274229642381994883669668940888723990726766670693056528560110290274565732137044343238053863852930357350570832142434147275741875907480616213833392317761988798205020582282656716474081183605474733606109600265091732502813693366107297654004241748826747179168754611438749305594054640567957326440699234908210390030423156710830343754572377216935349720253848612827740644386003308027384422946224538135906118368535518704333244963555710802922302016061296566323774538587231444470724244951221479216502161992899873471455861069374140623361221855885180914120683256182225581571022869297035613349363007355196591377995669918492115703476280739556553145355652683191667441022044309758258164380150408440203188052277507557666012129472715574717986092045783914314983178670225167548320807512044667814835318581047128999844945827082798808319740121565642159966827588698248098983812525953868967968832556993353896977076769636053017926267341638636911358246443317716182720617824356224809046776017851805238221644920136802782830555979380801666152792380269282268835441387195707322248715409599835873409291105132839150300312216257620286444994430457440224442629527083816065807246698585342623875960354345354047084093581809292716939332485688994775233318198110900706257015627115880210401728677340052385558379882294917251090984815653742904969277107336306865191478709735306232058799497342150881147791551929185243646220458357773519797516261417589561661947260224655681052354022165897296772004104021103519525900058019190154957733942596218799268889161754488173731305298310829926046410378778613101733301382666483438055443460629472432562161530362473899214183193383470105501369472988198903139770892537774134499761887536356630321538987090929367141709826789979919131475058526426344654181741962493653018751450663514518701701260271255880427631465176849148411656329061581957613446166249081935359641890576989508372749498991450309195133864869010066750556953986616880229265268907935137622720899318371193410095331390070037192350134186603084556730217173658586864280235393737271109050709264186933833619897681908523170007142876693515593073886220966746094504280808787775835310223065928145334502011428327230729477865714565054641657148745812992000296959934913236603523720187137529258209580321441084804179152945511474288816161062055367212330270490790636512030800931843440639768736732955028293406435441049139256596258959512510514295778239322750004401016873491269065886197599438555833263974018539005873887473204711503124479848041201645749535178291752824866345692594938280886274517732984049603193644003179509147691725423759811023998168605096021897477965765824993747222522818691710867594719259421006017347669940747421802240120590724990645055030314843137157762574110325366795852610787237409221160923105932977513282183879344882935487204254800001901161466433996824466158457225716243229988154849756742364910810756714847123230380070229602920260871980892986018306255520003298662326039773995827480637247732152418002838224369765647747397593328071716948373847107171059082819429584513461919412961218506816152332207772568159021458632489337948092236475882243170925632371311625324308568981650562072010303703056135171240368446241873182877017650659576120335586777809671193921230546108755850163173119840271624776736507299526245797830620900449924795900780147828172333893760842738301202151158408272345996174175601771044454324976672178279829094894547270591958833836171137196958510063228805712889268452277480911715093671401545771576498343678281461655142662078702381778638740723876800021950142347257681251640702940660717892068446364526095460686004433618539084839182051294547395735546440815176076196699467231941485271181916558455676964729761589025553277663048779743113917000472944082466654689551646330083989088717127697988800880102108828412783334130975465378181364391909101910213481764679190796770992762329877834625213005162001858736404475635262832332252385151584499026627144914912451950716356975786825361392829250780151442449063160331651655551452112510297919101049588241273756223006268066281018500588786880469398176385964325937157169147096976931439539534066317297421081323880410513960552851222381311634271455627614801966349106326901591881115994052146090829836070496741993357052269119619114628736457951606993203385360021128848451676560613013331991097245014274577809698039312233514264290760679163755419714741129588637581401170180953688748215898588743893229412128171846810573380324032720140219401821220188988084812784795643967014387571883520906604310153787919001435367920343217779135484893431719053009681007657590034956467314084504166165762798370243381473139127811716820046617817063062134710482556231179613061712189219942535155472869494659648161462981767321663484779842633759928841148195448769800144335116405574477719861558898039343969446226301291345654014319301777776342024472662770393059794964017552460669761060489013321410615132539013102136755762083001810110195571919747004273985838136316009780950385786323039579088168845124784121009620230823884937229984318563720296798440816751910308683411350482757505140667950817226118822761961994729500703048833106070334352141042519896963613388068501972406670239844936643946821134858037173324255756753802084719094059904002936644469526800382683752728283142840830736619959379452464161409359366215129419407211494479617911435851475898597883262321075187898640235245457093623355015374002325936133854562051167363755998077313419965632721224738767843406132497972489493532806857559182197739390407331428517364950576799312123076721859660433091981273367887567686537340205580547637455164189989023607574864662552617912891581646050906430022243084781133311536367647455248063831853232338238000030178106014211104203392707383294612676053001323569553869019160884006444995107102665354370964705561029073175045254471582846175859056670945772541879104680863011040369027138912622144019418100488697345707926676779691071439902996269732520740077065687787587498190820366459871024521256610313080114793177196183903023912571441516263639122585485295577893465724009080665751490900319793538473015839183786895151880801615760693344893481678979581809144339246183720848330640095739096241835330120066269504401906293646999096217638759099534490754090312888196587740849302153901167315370252167501476192107444153459407130245613842592437707798018788301918376276332961181924449841683701435714325041661826624611446305091208080479160478852688415304212316297393817453600744742082540129158608585168426085321927356719725799857732155677798890056499412585142752565874119151340874960094655723054312059813303612120314295022758118445919838292469894664281888094475672743255528669179915821656758890314095955876260960178705496052710140189015186018279091445632038351917646142820887966045631394609663901902498507318427189243708878039780678038934152850943621164196749898586310422703526756014099342124226270441227428516621331099687768237341927488075997337481291642055093669904357818064511518854257816021050705700001732897841861445044493198019597509201448433599405450424851076315408710916047843602175092364833169986325887689274789281710336313338359331398255713986589759466369321377361844160262985207788600773769403542886810615364025979649268271458074910155841503574357623123393796366395923224675561745802795754661367776780332074198348253906066414435992741015924792088870053091459333573533950064777771735611033593480005012983892485799150042907758827195071758913170839862119580025458741636700490832207849462093082964664650735975145901821183668982574318502181012048644938761218716447441427397479987803196570203894893719667178614220828188546504034584980034962743035991025776182715858359692876335906894459511752679381728294524691038942390388385741666309758811250853457364897892155135029873529915631088275939767402762966260088677834765450577347253326178713910642356964841402158905675038387991782981558033993213676075814926232930511449655883111335956009343171589031129812571009622463136936044303074035339865756023832593105661604315730162000538617519396412156981091643124336281764570305787237127721758040383542437184189288304497635725708735202472790018270318288399406311963383117141667262348333585716812679668548323572593428737451030546852829456287485100367690800626002811608337533949425603463783112383898881911527289277503083229396734707705230091687299132230572533525863913853913449341884902358413230996762128198492760869077419745926356542389188792580110971413394130033671844225553360627571223089665631011309809366753678418466055281878216258965347320791192495250209369700712689966941053546748594098080751502579164841988320243260498088156211691400853908382987282378403953996469168852029226918630363081257724175661080943780332549501315163926934928533708669648065526334124103803979763229957644092541191123318137389877927485422237700574154497857156411846803043127320607654089421806698418836393523388611089500732592510945788721472111728417932885126565137954909723255367154823656436775411300305707205052637924767508488379232613703888468369872383749639250568765753545992353789410773663578216795902990351342001663267988387587473978872453210274290158688349340140037970898400034345197984269874672076982204954200167381226167371789686353109739870212504817435957034408739096001571959868033691138453184500537795121297220842909618537519277387300642928585986856410827637912877507512276431827664499255388429530431199633739384950566809065695178517172274367949829673989709731058558265514965282348219149234788353451358812684006468189031314058602674410407148081474707416438459064538308467358329367363517352224156684053222149411633838310617963033174299601017498561496122266333704141829239065943381297141945546693144200602304704322212204792535132115241287058065933107648571269499473623484132018559091658624196883422143637066504882164685116871874653167716590940671591272776203563703887623485925169048328373737536702669283770429948064260385964088097894799197080730352418306200433399180044183160476345904600769600430951315046237039695627972378750711520209963850658816100782866549961605524623643178326562811530862648468681192752880099529003624956491364908256744860989111458629611259432749205653639717553540387776071690507704754145078500060975581185488473164765513580723665433012659193982249190942295714862830003010033680220840557649143275566998927090610340123986578904586669883198939635328730652804237218734672820876842006362481454109760826021568482184619722816591772712029679216671035980005670761437815721883705317845673618980585336710214226276531311670331940655917372967415238873158482509089557032726394315560767701669476157095807898165180778289330148956568966929631474519545490529188544470031462257990909894468327557950933060022957148803935136614253748037607977467058554150607587550040267430070334071970458670019119667946623063295196684699170416364961857205640118262732975872808027226441403221369886170448241562104330960842269717269429063415005343304478528401156007068019315920724685424178987782521051514101642305558782344529860116295923098305602535920268407545170645682709712931522841259146141649656355417770885740926665686043422410844674612204112277082747111852475225651486431038616612683943779724477422461718461634199134524630945581357638001819933351660634387562033187221001330935604327593987369393274672731858964352079550252277397820303376900671575794114144368030430925955150455633826255291554181491163810179405455834817689501899082519371571210905374901812693131062346106917913998372869222527185312933812014994181968804364692820471892719803645196989150826311321740496319566449890196435131934829585400838477325824197595102264604903931128396563051155780671008727854988253604029673136197979769921209728094502116492842660391475530832945016264076473346624179942541360625887319527121520400903212882374349648362764341478832405760961049490239790643205801813907909577477192566710766990216605097138684222316760884668206655431780340358483056176197229342977793312846140838540519086715844644440429131479555122552250701588861217843581167994554669934193438152555880572436770027574168026705956342032276145173641791995810291638763304993127736781607039565846753577808884984826445198619389770236519031119806518308331036133106069252125477155320636077275770054267201166136038767108961793034187276532755791350305797521012375691135425014425256088837525190351939917167697095280660268560475811753540825906502247588404159395537507977500506611666422140461546920623403315470771993648467043972572862316549515167188234049592891726401062631007659481764288319895311591287731427491576001060796186132220472339019479102817746826973182319006066278159112793674954679995629608625265080615013226064241103081157461887178286560703968645342934764443336773444270923328419516574886284594764557851972396839350938808081122130001770499243790864050593447904888929374563739174125154092235852096121748717469955166461721633189183903489495546962903447259098820094475533064488939310553500727185254783396081054060661786992794654545735934048716227588273078855011857511595388526047689279799238354015111836860884264633496262288100303676236041400089119327251386089718730909509226375525715635515610653868215619864841656207470264145361732766792150764451909817161448862188160235893481316023571098893868104010103664296671904980182093929819372499575648923473381225334554505994452378702185745326382481793536131763576981027453769601969183202549067774775656330380549007015530890165722102385875908457618308126367589898385464575671573935088017814920457935291492141168336651613131790097669983300498412754403286696245662861233182495659576965410944317596750144487533479801288947670010846907929591144038860276010596908137971450057948657081643891245712933248751685858591302429826846002293193223771531046911926348613979152139316669128439621040214363647808110631028073152711653120171445102514326778140587352964401853935276885197375716786027139982631233072434424543661290418700319032677652403923598453841589865162762945298980090240776995398010584815913041505332194639532648747239265792272373858613802569930334091614897229566903300576835030012615040986604173517601394170514987325658321205483842511663039995919969766961617817846166103855659932191529785951246579150897863287837867215202136138378034773625464312191631686801180142614150882562146856120249525987074797751617046782683039442895482698308886911201564032142255781707266638552670760342418279826728108693067616493762069558170248954575867395078451133302330431885003752270925531059679964349554940585681855205118078082584774989883447508442495030376491847653873097965915308277822620399868886840417970294658434693508679676451287699331707954749075798002006589025930282517168216112785008047706554265366464158630160976887410916354850701445942617756955185577665532490337391651842691236183721508557468951446283365145322122182936743799567765381115163283931498729858655278313111669587364074852554546531221964671115024117598093216122887774057882916485283939272702748504857296264960089594235501595251308195780845543851288199830541280552917154324199714394060941804400488999494975712927398482893938431307443613516843380304444523823724580133810805659572052904134470324317900394204395395380706620370588825625102346712891957943773853524075955436434069553192069565815905988291163763976968373868913577971627215332222372400328560836085409062152442693379159940797054509136306921649104226274423703302095614034333050525535537532351953807149782157030345764594502806092590655058869818272546905419628253064197728206064144189583988486105755453190989048558087380072968835502437976988895703553285111857560221433199369212590874507942790443611996378887159794160860781778708481870921654777108344776785627041660942922292119480203512079887443986991958796212374995069430108197498046266247842893229210122803052495110913452238207194545038454832598373533202429207609379746044177127694084573940527900154357604254613360006097282765961178715060576459491347373079699608690721744279477408660424475035499144069589439962328721290639686533475257915091408299005528984039980889930302294277844895477083374895674559921270548945915157753970561294458067031084776260768010252954984947063584701111333531948521756147793274760981541029943605543768101551563650459472091656696234348445934216333602491908423937424321389782025581717239063769242596413931084687814411132091594796676916747678086454903300799985520275153354272648574800874239580416697600104047591282857032179941333554833249185789299252084410726603509103510981496636331298089070988828492536580811795512003980612823681323763104457287573936215932619919830666892867646558224130321452331646468200634631222061606904671980595361861800609999266173173179296601447769034582618179626019941583302495465627621630490423817017997130513948914248301887398984172718198817609654087602047260530392886172573061125509349212091184851491946670242135428523742267924550578415207947997187748885259504520152509263033404878886469356022640860726871535009680576720845987227707413301203860432326764615825387219598391107651185471891271094020018368171784833417342020609147548822234863748317054162225795008185307313394013717197057122509504304203109822945119995350849626528979240035913039938319102268954450502510480831474089255393799298503601846101576619537085055916256096705155801086633466230995289898827415984184752465453387781691625128530585073029336089834482166055239074001435399056861117625974941005575165431020433975113879608553573518926937353223674953193428241716841710831122873689825366318674542895660363771152802935419650575497573837821958926341220033461460473031004413561605777501275797458441695189113475203385726765276808773049271442210724655273738371498475718870869620445466892666042907033779311291704272599393655606983965845520182165826812640104142027870630106764677128252434101559095463389126396122248425541329130729197900795908758320957825685650532301291842650799523761441022337079743173266051827499782221981084764833634332393852973025099600768940534387419279424956218544298862619042307624238472717090483946520674399318171125422551723949528249384799205640678151034109979521479730675801033800510621743669887399807511384217733749872448790336825158150944924641580416804061684260642290458251847470383742589669757601619875913302015495752787131934988401359113433817073601575384110991449744593528153616962765673840354589159947833960468460929810739053608377036903851996095870202464828555038010743841487590809002075516154611630568842064950284274678297419625128050411578210896545426156990616934002300576232661475503260764257483712283900367907674397477667587174353560677493230735781924897244277922966566331388020231041465585847368438440373014816600922169702382441940125238785983157198376054098140585303145727071979393736378815592820222664074019774429558547294911645375370600102578857210794035969018111330289412947388662419167189820609928207767521541303494232419391119328236057999600591925193707044735452557838743749665859039160588900681601341159221316134500044044933991626602556649979219479673540121721100659446051596044984581185385576265390890830837715699427860323843298531078083842918029393618764796148677300358871631825174547995082616533329737406607938516466673748564811498414526406250213696226813051519851561288418960029461527495248264406912852956881822955224224064357288130088681496451210373947018724285868547620163155082471126269348378284422379379987022940869768667659218277717322481568942474095269318234504405028365134597696044598275533485689157052870687065115966171732185916035551292779650152958755999997449176868826675008282125381284098134821567508137535388721792197623722072255737922031401548790523107126501209931597025089523386385121042756090642653739008428910945389434099531987386757300011408361720295557269295383929724082653828692521885634366584595544457765354470818912647793373752776169033305650399936805912903660563145850344436603943457178850010551738079363227977816109075932573869392939073289300564402631156251772635555492832710029413924635423918719880369015333850481158168301465524933231904152989513797366389518444749393714937060078273866763268830656438324011966942985841845247962894876084169311560909118778595144051009116413617687840987118648902937442642643171392254656350227577979620838478290009696710618875928933260007062022390437560391799711865953490327584529119059046150174012987300168036717574742872421798224794711058512351797955505128177933990834925773635265447643561000067033315534516737088719964464745943525659427066711729976988854671605193065421480719050140489259936191214453221055046653087108020443302724670234365404092365559683325483229893722645338213911658266817470535107859260027034950590119201753000412822783465978719372601894864384081248536558447119891556513410825264244687631362227845831921814092998978252979863135166352820762642662675829793215398408321204953284697661041401044244056831678027409112387066166766459525857522512296801487558895834293393300721406244111668428239660387628927206180657374161439924349132602655298621835268771781638945902772093807281783695721120158232673310789220058288867772155604637098594131357827267466245590601170888419118209824610719803547837531533783240209692912236270163397338856172805905959306333156676433330483935393331307204515353069609119534330426189647043725084349402921335953809848131816189037725385921685678754442804148306329269016144107539633306618047561545970700910156690084332033623980835781482011744659627624399727987404823408456150882800749576990772284993666187339935597341591283234150620760542867210468656312433217478265373469336324064721840721451880041534488868173963262656936090284864900875593591249333384265276183868760788760968471436985915504029293691588969931590712456776784443552523220810927443368047848587428183784474545955192094116783196883396144643688514903376562183930667073080214651819812812114607850989664858679731997800460372967788213462527492320871396528735388014421141149299821344891804662550729279940567500862141311006331254331991435758914574252629099613866038282984402204863472109907475575907566039756493179608927097701963090062751103513981945679989085131775881293064845923189458217652457324592163785182789299511549200882231525406507072821173577736210984111595653798665943288125422712781791460278209906103902944919539609767653707235884496664754758719088001317170888197296517934894005466568574635959634605126509242608954350242648568548628437000334521862873982774657231589557598579304314750882002431785904030891079370045767581141130523895872229612310615997022819027251185989461813813037728227655655381552150294987305434298177818464022991622529091702826090436448227691811191668353427968364890275377607455956302569478504986480133714981845825660207547729623549661268179241914493993594377835996355174354634521168422660952159653999511592697587467589933479334305911102433301506175677879076373692478558827811034229419250445030788500022629974412040443947305291191049324383992241249134732976011153274862239179922077661561534367619641725976071102093299654375371093780330504498132328604532623300205468744481376591003994814621666058375363636970048302056661877481757272214903754147454896911075744238618211649678661668262848650999410061800462281795140063378811150234609400364671429110996793837619209265619408727780273922818640783373830572528259798446626234712113895327300174854638180005553803231102736440218713658909473284691056119488118252040282028694291281480525667318629417881816064159047500467650191900313998956629571801438266968111047606697702209019934682780226217019650928899280722570726589680117975095847029090808532160079770352767827962808827253125922842521749297162649414702864732751972294207694357784269934808858064253276566335665438201726868226388023650166119044968053487866227151522845157214597242249306907694531667084041819190244884311408110806287623780011018214974075803854854132324895177156821638486965539562503994082063133987136941859996086742371187387900904333308446626235493201346546058239656565275021385393538457951689926945503563775131915182674253124328340846416744932655155660843415427375496453651482291220876520185964044632149673445141577454787988373487759202492663034330116101127491661224613248766741402634680622796172410383182081595146402891421564610994753763692304521336838995780624847388749346199509036821980459572836751566325119815123705363834321812594552468823500112219409807550809788243122381697400780444871757778087933428437791240179809246634786102372106063114157560406291351855160411148152967380924119068597434258484020851416527714791627206647686297965085527114857645722553006135285388658879244058954745799793488134313161999011270158177992411377670559108433818668867492730604518640062424180862495939492771999043517580191442884742199166442935754423957019745350172688029280102605105600390811400250874467602273847429374938036170556779720448679219200209577876343331209247954545308108421136119668934504363342110036512919508617102346081456295879211809016978382281167297438413625215763287867164004036253290027852626607286493961458555209845932775784882293552793832124992504536583600557293783479289861055585497935649237772574295167527472704549612914520675186673615111523712520768817754452015356296157429433453489433928428239036200949485566337603642120320166886525413736153895054399979762613997894910344627512878210215012500381414117451760277037911496140511064759294481923892483015022263268559817741412823638581993923119327987660023372819889666614303729171763134908014671555523681289871585235841429453727212746148230819945611477989163533680980460353275301154541173725684751975518539807795111304220277330857147863571140000847649805614387335087659552617826087870959211645476058520074226296034504209008502570053585722637740303095579141196876893905528509545613862727208072012963143596234323113167971982043948586474426895489566847525252958631772009084915139217805662750908861569579516337276672951420699219211767502949828545529787783039437194858836640126752444048793217210569696915157701105982580353502601243078682451429163778079413629063756408742628416383961946281092918926422146859234223091308868282013132413083048309003825101701638817358810009811847549288728862414275948022690386851303132188671557224015031243088709236936310331229476813690856522932071440537783587438032588392736336737325635797124054767105260962623523432138426147708771188377445476481137490559857352530310680456003923222364373550365103036420257747029890186368058336755782983569987240836143354278716005992933295987832989184494960460837062109881660076951988499701470315058090061547727424404100066409407237619457368008965368701508190799589472965630645017905850505583542657711923983269254169024799189984152421717657554656460660287003965066122981938449988270790277178273100320961045431837646619090373309005107481085851148676980192621712948862220702839213392923851601790807683908608673318989719889293609297526744348810149787670191873700003474571829040999975865792132831613619879865170588033499275261862240799410712483570685467519559953155501744400091106893496695506245659691249469455693091813708475773556913442096096408964599286703825773445080802339962129214927156380118443837353730629012636920117683410539580831535464781637189995631654324690493852376100541394523666426172032563839346360971062170594512787810718457289960800906429834579609145705236586442930510909548664816123557769671318272004583572680333923480159119678320199302792150528978487528961378416783399194362727044010133020530675190274815365765432525868478661690049184536111647833888440974474579581095429894656303363463792799624947107121810573582244218609297710349643671147311456272307883813206398282576036684563883765352270024444372003230874288895638035385756493428313209685610666823852365053208321966125573123193544249096635079620574838319882122501192473516584829041201708084274678596691015965721011659363868108889245471200222737211763997796934957034725603377564105988197120697346390774595248641763719361018818874145582077262799257253432324378418283401795352050021323712487629284675580913569500249500514559586104807742316572629511176542517786508769580025421346994157708839691250808442288489676792670016768772556207371595797920915851815234704726284104584174255069671453032066309307347214743249031308030756364307545383731044025049416517007506205025107245540084601983376819766022438759332457097082054827117918414827280860362376196187791164650279520750576331950415267820617765682509380193223487440901113464672275579383687167326265145608149510075521710003609018526817703543791649136464783845791096882243007307797170273696777980136166728089864779409477182072626242619256801110495299239272582834193816627854124874939716457144688825428796167452494300553056319331849359897873295211920314003033905808810485106995932983987519255423392504032003394431675293737423767529181203795798285196388309246883224749764726106893113898416634241114528157093590929153150028104798288067693759444901321862602002409805576784391559521351622451020290169844599503025427446775328667943601775265408707360608661201391017082721076547539541716175506340939597643123101186646465393483165110416364309774487084939694802023705271080638975379277045297401693572641556779721929412240611611366369803476521505874793036735101192871402224667710076239029094225805276422328045739402976387694530694836477644107440775696040553508473884410820280825764058118531201431395732038182607181885978181931108530042992147929029066139782400177778172077586877361683618935411906586182076642048462329242645569560338976457912651889598597632800560095518300151020376321912271893411970145600873945898724413782849740749732988959678813187421578339190173927619161761246106447854042196245580504703702998712114074284790266946620796399673121075665410133720843934438306319750215786240742818655307855830270172355557847859150480947156089197367320138621737546004633602869102061064159696993701317219244461409083617079156595792816915225873284000615783116037665954900904709213099853490801827190924383800079006360548009663952533591569053716598617691819972480478052467192911787952034467608355920128268094656130366007966819940460908806716521272173866417644317450334633281598663722938380137419578801283740576775086634919859619592039970003899710689648288983825512433656820507871919252575865174852495674467561038845875583702305393560103152323119151000193636400173518401066160494676055945723540594633237509872603611664815241722513809998708946463710143310894679886199004187730252670406381722821452961758161781659670731545615635213887639535862909377480718031615974979012157226214457394882199191840145738593733028371912413916004907747089549147867971473219277671219970259657323874275678968778952152490705489117150310179015092274730185799301688996465634994193277029747606678157238778409736769659259225741196954578249689408062706717182514768793274348961942651211267941712014388147944697255064009700896129684046230816444897268922427064988301368037963305148377876338546233167115038736532795741573729500926668932230965558168875807783386606945521368114846620557245712604419708636655386119804110692437553887559961535805872171397099947314247279185012123243070122090157620521701958628929271551829278320138552208805580501945676743305156867290107801718413173803402399991945540745157013165774862666026988977945072587485451526098374511505847990341708647705002039328598770956882720054412962932434152382151872274271901026650194341547540672737784637346457709459434828953885566367771132577345797411989337596713376266700255355315038083136344977117248481364882259637271062330767472354522596479844888037947736614830579455036782320419568035333485226090067524394004333530967036113133870560470105404951300750495623637965193614948176827306030505637644464155330069429489314673967458783966467897223924213322148875267541226379933151492067147107591170236008110671068542615456581685041984629878087317663865082287321506548374530484275624605257546057665306539736162160467937728893149894328401726742734983687498039219309985315767056322327806386627503268693576646176535581440959187857803464016052222018363838386972719760864846417344695224898833878843326257603885564961980976281935281479111162214405429790906055535529125928412836293151853012021469553927286835681181541355464654899871123338447654026378755803800757005815634474777241454752136216617145775139161083933812939009690947968145452778272639061498114403591730110389662596500133915983934432784209901990632295746173801592282765100960393732394052346384873587722022111507890838001013647626540784860806994274648386998147924640114133843239885687340031669806096143414665112822362575181066712568832167860967687353851851655383939537206613538790371827259284973728431028714306741071700562785036896570180916748419417591078460183604757762980966048752522302516887829673884231317401186723691805171681256274159676094591952582734670854493604678461524668590434612294984467288417570509295280727704284165354333693060550449399669747793497765508473000138467575786596198763466015591375127931528854323871149424042909101363420297999751845063753290034811900080284745097084900555455433515906449064967331084666580132493264962437027638803546861085280469714110079284956598319795388835388687444957156198784648608155190891887108500214953750796835577372480531087969551707749375725741818869007929992753166255986158342124213097901798672740113530336969420958414988473894245019690594845975578133821753109635964492689057111128972720000687914288489223562879200513438416784106513613206796607259999974117585493359577491792485986845827337875313194915487590256938627801432081064740201225112196529810928550321900992261739857943119860977229828348012805559939695804042707105650060038809203059632301487182131433060601219345883982651450849246731593873682626721602669079027850182333661740871481222779466299850601262068557105752718330742767118087001757195914701374576623192097303950732087376566646631450891575127512027801288051465232798228303715430494280948618210253659706850676766019664837332542112289753772376769681239635707915073212455208361277993843945053141551043017645085518643940074835023782779406468319493550756508763699879745696323713688191382908526306442718253884457664896433710792732145573169453069843139175151304120378514059731506932106126920537377182212775265007251653318502641894688345809231146699145613319878610076070523818298962500812451216560129586750578239435533102126882831738439507221118699499338303438283450637170487211812134278321046108335218533376455987208097389833564177659874167106890923495540380197002299659364511778333141633625210713275255432131099876303792113519576842397854337716809412476487093304407298987252525187055977778937691154996072950700182895840977111799174075351141615844978703849060915269887612559679292234444182092980010167465957059170852829659363848693025940191139566492425291650028301666556203779426601419760087220411670921189621138570206774378932340997272536423219983530417651068112765973185555283339177706545765133854965312505330175053854123717421148550932663816703525787782694460113918749398741223077111857477216486398244234484708304882352959235422241197811572863853212973492554879978837477330769832613937080308531673955624036101623099557466977613578289858232228023562599947735701990599018093366861353367359985491459450302968557789953961671748483201004132383051220975257207305183163976561935833419192506322107516485014744433935614189509190224563343884862046935593500074339692953177761070164767486497119301842781366248182899610345193161718879134810285133548624451264590910209705331425306580137511234243218106756453874920868366306334825297886429704003970568118066552486435348777711246356318533695437115945293800928961617796908203764502559531142146070215855439636171581983468807211795770584153639211244514454794599440086585188096450307643074167059300117432216630483512673141186479049006669749193272156505307672110824168566014970851626356034428145650344251451410234340513976564936055360127748995099130429432549654089689119216765492421053820629401132424401391795408637392923661511751200629152404171706668031252047667899220471584578594384075413140997913905716032621716852095679705693083492171586820750969464034310167621335146803806159534173852211902502991399631529128609828740183837653540930848324658259603946238114946159445288641174516800989515833888947411056377578643585066667866525778248442618034390172254889077964515071041853856627302901108669797784442888355621178420382576121226802229019819099902676563757681849748720940268187021951355300045473901516601092633244936798416818652110991715670250119467077514752776286522445073647947658479964285351424034589713818503859438971770633416701761160763699992707499236840655322943030169977538547306542358446338072904454086991285048246776918303304900695057131861639755366260134581084205991199387597725238163414868940494252702455687995669068376278724769696579472354203600160263121558910181712756205768278376712426796435170323497817054435785825923057030340467858952677257679599822720969725341161446803869518349525900803151040753799166785737242132872576989564467828206431189384679612671695247162201042851851037044674188555262381722920657358772122134003696986361512538326014809621679961010076895245160237439558244215536195197327444798510013739587268401746428615119550930638277488830093973859838504315682826149681706002234974962405567025990953347922654718059231007506334104682688232019866109126068489582986070611812741881210701575645527114937099645505635796682473015937230603433476535758983982705796351182759478106077694088757818992307879289162360350752092888693788812678383913346591356592205772595481450396889851352666836887599654124700189311797858518320155230485455798967706626525656999252598167989893895772961925449336067557809941495591855113831310686428605654122045026483581989038914340212956920337661238088489408612439687366366801144146369836187346651089609506114021466171885058897105657669567653917805523799684898865283330228667926321223124522222810262345567511944015476806645472317092136974582544607871920956445153348058799050651522214008104879432462750573980931151004576500294788204374119524101148772521683802653034565406758301203661887353012501266058295260360732920797977048639551626993588450313433629144834268317640651082285376817262233959958171355412525987593239355768606567007275342804723240005708722829388829538522442272349818695701632713046014491883257285876509684094034229954549663183418034261814311682178243703160998360494698901870145152721380942467401746954336077289206619618324206509022949534615815310952066371994186259976679410084330709441228111063924822192209162490422798904644583118948439030996745113005931733453855036106865178676280589941278126370609414117720959152861608727005258290873660548088521884193803455684355203687830820223605534457129338734801996784766801267070404399679468427996033196585077704073091303187708244884731883808975191011699046125503219694260066700131577293882986145586938692654085058615196332894773499714885316495363301989504830770955495638618950583824661614192608550680437301400572459069987365601073637968549086711609547849874473053136947663014006723644052480221840954841587144411303593155909808286402197680194513879677333383160642262242030211714303582144174492878559137427203466161317144598266890090712650729688552912944959826964572689401696547799056723707927384744728188043349863853077908454264243930290604320990136997985986742487444794060409034530878692097111189974482862320986400068012175549179646758350688219588249217150723103382180576965594906612613821874140121781967204575551052338232484958970763020694200647236761763909120758199394309916316731882858840185912453544094055971463969716679973084616595530827191444572631508750117915173328552456752822117593383151092971834125693629420893020452531293749521908706810301377992884516310357389990017302055177481457702843600597109934640164445324839652795297174046922779251091593878403403095765657028856437296366672007062140888093665560418185297988119699733285291748371279697891639987608872452091411706053372504559573886045735511976694696554090598527497869856791550016674838983793721963233361007251917188158778824970632117483771843106028966468936734157876269906009339327101194630996439153237343451511164160734389138176630383617813495175753320545503137086685564136070913630906545896162633522137858722070131554805002651341906855165308497741830640257900119363088660344106454088271247922075337868182419555257744504799298695829463393359220190057848139599832473847013784381165347656994577292197685331687854837308478805271275996172586765967762421741568575515396094243250265442072839282088491229852790197121126186487147919469471314888963341893805946638909384043578907427987817965719084240140715119055492364803411118827915630040373637507747825767763918839584708640458226141978330749532050571227138683764740700707746903302725985525890781370959984565167068845097080115164931633506495135774536153198658357219989874675155588057444325593372809922786480352719627233087418456827132234741175129632018655425411535723477504705902384937839979770634894587819174773094953006152860252429625674340294917290413093096933214324223133018818197337739238051556574586134235531853105885091777650735702270883272308164133803576632300083671275179126047171204827751972098742276557981118656154193893599466054070267824982847478221641878710036800827970235924636604870289559860412336571487812281983975569305007510026739661614710898831701722120704290120785097761479298722071447374626284824979977488648512958438652759900715213813306218430436991816894407453152651120695499758496849755685955879477966103638206692326746802257343937066802317094289836854674067674003679677575228961841068758542279452551676676476584737960326269981031580418063128366638960714609781303748524328305690232581275711088239675447394467863103179167366351497563538205463550243291091230790448454159601218604360653700451872686073803429802232378234386140321142351732323648919221629736326660624917577573639276072007395853674152521201411272569878842067147230716746203043652038537964886194281802015863937236269574726769857061068949814516572195968316496141146595092204521633695796901108016854450467732929837912759779427321239254508556178758082532752557932764800141440408124210241571337993803276323892890108512403155494067612826715670023127288445804469714416722233079280103915400588480533130603231176074174476570646324169072472064720549486234552521569326624927098189328172437581710819140252478715474892657461111324617054565979883912798869563126307037603806165437529743958701317154285840916712619618688881261789350326187571608542513695996875259319281524682814344738730883143527232379201806753997750817526136587883397304772118046234688056821806673222071114846589308058660593088981148389717582338465306069811560734408113594587190872412158738302086220862374094640516474931820578438197687513043608967805575557028785809007580250537645309451338711686028735782289351198682497633079615066887455251914933777917398969853375944053801078189379267010049644049519748392016484944283078352093614787385625915968924373433785289383044894750668360193562874067080220209454230371455263840847008914989220985733426435709479860393093597277556878036910746566621305096385963196875488868363110164723554596835367034427017284178350286164369080419837092777789878642402652509867544225511514975064858170762470202836406659501139016632374137644665068373648726328223886970057880009552687241555193330539328405126472812601334598735145565414530717438620483004722285079303882798801412985528495500105085467627481635189401887082177538419627001602474300166271695278638957100372031668972069486709656339416137845128598305919850619811666438432652533757555444787344901255324639206644713614018325713773464315458220976735512740896514687928541076746189504964755665719866849006097417634266766052693552797385046090650020942170125626701734915354463315941836183658107755821701560230315099930113563966004356051771192379879790537109173770353702931751722927913860117334603222250002187267286272674803076399301127175673738624901380270907141580239572703049457749431616969414404642826270325433520060976717053599719152072425298015622435807862652811417801312224687134297993926295881400061322474764788783955560725453237753120234796317400128244754722651681245116510824103257230394867550856341856711307627212657162115803598128033085649008358032603628496808901699123988633390037687076064396175322625728431137044147197353932069297029908905639041311833944352118520689148411492639493119241047019019702959952855180868814571518240423603093388311986590526701268459726600457651631850857266725056923342055523922348496212455784009574963556454590783385908331813621743668153961791457018481795247363973111317117564567550484952016625796625840419525684664817240403217326682281059981986814644239548157723686647280579839079339577445291344909501415903174870117854075380480184602619499758984804461835090571111131179052893664699796995502104604377405022624280015715790832075775652614139356574221527534314539581893733186641518280394363658611088457743728012809370187559662415848535873189583879014975983743627906778954354495113969363122514305242599588080098489287717966206548926226557490110452143102795310386209465619587090805971370571113407082603601032218236141198028154230198359271324915064045660041496848729006046305935943489515524130416986673785687998790130054064325334681011740509081346572232762023169250970935741371551054905723572084648350280128428282768713746451699642292434489693671394795338782249474886327145217147259574808526392898762912286017070545173571448299780009406686217616631509035067290131040251601450704948514834974957865055108388314313448192480729915858546759886212733895733271442129028812821257228554919297298758402509558488819208066742799394653070170178989598668309868072668261209010895403567160368358090136937211624208246465495223276049382316597475378155778599055905900990573168225873595174355693031240391118207726991178417785084149841910877678253495935395676928283433955451725860288941794634229651526984466734800664808763374318119836285416445239668083884318628462311296055861804482381407284706599689794408338307719301759072031173885119019301522854497855506440131163212059192424729308110314933712374995813966575624161928070995552435011803852208644219487481311865797693227114725929739280037608268620151927813609370428803684206878436920778953671416796999720244219992131869070296976519558941703885530600074617937469736390626746982605810156922963130862054510957308131272003966096225232870411835949903129484864589996552113203697871353707170037576658289518715268667149868127483497779126294464529239880471367921171232247036154388022474828965649663764102320384069795776934713968222107664131276943228563078314473033913523192963581562164257580437249315329720026379753446547421145633970446673790613398199982441803519419245646314946821750101560657010711837181381944107011323909179738060793057276780860424881057006307702854821719378499348944388653207444492888507938636003780024811208886041018619681355101122237238783839395800519041541073387544085101270319247946855580888836208140254713530072390691064148900583965758126961481755197325936492248551634092063175071291839845542799761720885896338916589001939806240428924213231470145746315976735898314680883577512738087655902378807185369564693210300014130342298754550053280935548671364908672688050568137231027506997114761705693456073113805546924779856797772420178775250596445039200381230274098657015566034307887345854498254136515412031830490201517751365644668460692594780698022316392406346670954532434845888878520809112693132901713220195255509313999480632033041959414250846543955557689723683105514170718749025697815843119183096982520168217576367625853379982615641419060037593799356825331884150320291291344172101426870756729634223117397952509864920288799855755432104774481779030798235139658772027823214639929831297821336132654383275569467098974707763771530394991268862373351798687370685781861613698491480575190963686939934696748460289952117681447109316811102565857142176809770378188376192192439093527496040371369280382576557308914368561496804284134773986872178656113614113682656624010090064669343624328432509116740092833314942560762258639809648618097306609096494755463913876491089285623468393166226132738409494908808439495150492511762979736402917460680443999532325265897661844639434171409160324547332323142381054103182554150528262277862487711145060583985561306648210043472117337563367023646894119993741874780613880438268539437041323474346561976376506374984204989462002269912428005377794476542378059993400376434905055296111483639279898558799656133391336535877263138103499868960922304151745990932022636516760692858368820094063547713697476848103465062879743449642430171165756561560728779125539333644538111227473617239469639088160609712126717807607694678440949119078082195164397854112124998120382104594666770758817633029720791645007772065770190538331311907345353467842242108641508443658901773141510391547127292165172633716395503481607075431447361484051072058186360809569555303017324114914101241616910594665774051302564181335059846824872724328993883267354102758911932981570075900346659264858897536754200184330166343260002793346433705776692999875954283798641730960665082787969819355393944514518873481747774620105361686091338472182730648508538194605458397371264418633814867127088684664222643147429097207943733173174984597712092855459432425653268677072209131057272198724454822289562976583511449869005948613947322863946344115926203699832261800018561077787389284618533172907721827244354575200239475407488736725218607901462281608509119456732905144719054836192836172800363830444312842423569179513107591005984331724936634911233308077119152206170743204335379142187546223107544757067936548215314559285052890659732699800846818462169478024065001771045768317178178788587032427130095185714885771691165174997700379728954864074246171623344390568078128326209576412077157343461257367820804871627284398780036375862288766105578618322386812525378615702405031249034353218937221519860431481476608394052404847051715690101069758608370141149306219804853921359740295860278833105605649843624356762089647198847941143330672889398064754639698407998085462904183454913537586792838272923103290510722466561738564095622902173880553612632569943564506688364670163627121135023493799042975969060862911745530148301095722984267400715765840620796786298201406121421965291995280159858303165382261158632306652707237160714738232530266479331598684043052313193849836640240934432422410479510919760024320802215426272720147119356924809543234131265769612189008891362129573182632956452515982767900974796995624185806897104243801154112514618826693982179620437489277484823286538687078836976300988051985542025328997139788843156446635883846923368284315761741638043848229858975137480778389530083132420425536444741831044514329637067617466562031876481047912418109629891450992789657016715832268847048144116475155794346827324186599801610348703915736583084530483912829539514302289932875285916472799859200139741020464151989836156505586899944341146748808813371723218578126826507184856039341090990828918077222741645037563723621777620206972153873522105969345707609069155321320180623882855681200849311737352097956216546731746683989710117405243215022635470303048017286906344537085794252134184130992913787186529214164264159659759910886351873012502360770428665911646294458561378961098785318231299765535280425817260167232484361320364169826125753055900933322419644475314236954345394752136126023017411699607801919589206539327925427889043082482676721516372169766669713665818833882804351908463537327679700416237201297336034988791660922970661837894402971169759911098665928797806925704380948889587924581591020529053043128166814763825649823164429105031309421260198184257282973140667471853740632977453827416276130740317594804310619813513979719296681945967799427009026129187303808889502111860427883909113809245275044155083078968757934656738521028935668455532411921178824606545428734292568688020643871372586653342596858671586280715341111862272257215679321571939705605861004870026983581513558902440174379396633443365698354454620272537336747294287056481143394607275280339828918457085554815312261635785942837852482703414058092257045819824718118630358172753063212001604256928075057193663819942332802919091631218640992039439673812614732439878903684953678005887982545305758800893260462634448967429025013334453799658383597571882863090054121665567179282526098226988064643103019884015594916235696647114734036551672250933085835059677353472204503123291664369208814895217320403957216835033473142509285525604061075342320153546620645937796322249046897761268337803568553858508685046584079085564120823715258718008823142169007731012647301142187345175298835331641365925720632618999642879970973560575393657716559860548871449075146011011008289904297221712900922620979183871945546488738685107261745408023026039782778205638085724748383076521780051227945199573494225199299366918832250892484254570817935166801572905449173926275089980100484441272850392755517905050427280701904472110555651741079992825178716682850808921640480395056385191105823402261555647456796248692485473616814486514043483974870854226918315896975096684314902741313005565012927862676934476055322150182643241636027015244802711212183342251489335612381211148275238187461083516723470249430052052159947939343838695811546566387878426743858142600382728067535984926382723319695029504503500982955673592797258220193275971607735036371740243386435327685659612952453263619928444141709583195187324655370184134039013093570328081675525800477709459466052962596964480800969352656420883313116826580986814281886243008401408945281753386985938162508558428163988586364256701851358543596805845819702641816925098932031090817859655435969451662639751283828987750199288954497570282821829508048194298528649224545468472414626447580179825112258789878866011251751872926765405945310386938176487601675793150646796391237812730830518798481947158871563258670198511572829097335414846471565547101631709287337133879894866565817563050100390440968700266413764888858797925758802711008079256439084960579526108025240837807880725875078388424363555752636276564305892103566855486496272817314976100856044771193805783504617180693450395882245886393163542764143658159988954576217915149018268337898498798449840689982511873774810420842669720661983274871089761523864393762220618919680923760141133999677772537313201383630173934242850618744925157620705338296477443659898189216235527306118610558409055117975216556633542066113013722366448603223077835885261829667568184170623928232673856753135595648936307701101220317538024154967167562535217440060744716300681648885222210339931534193239697174314296747543338747940700631821594915887269974598098795154091298621258497736222449716009836335016421025635504326998509878096948675471255408569977559739804790424295386463803823141261412782833931803193175520648831062797053545471200503173533762713286523728147732314746240254537874380633956853168621212733655341356043010687486667577766991496499508195088863534728835829721128767377448862676189474298494045037126004838728785382125595599394019591092117342093935062822317014915721996384600196482629368975381389491313250925357783309172655915431694820933488805216795283594628266145202536071416312347144057423983182508201945227072968088786449480454339198256000140420485860345186237980203730755598045784962981757506268504658615330433745824413504941356271671252784326069508337769507398615768919207019437900747278889085050906867882927697581540833378633977832387908891572873296739230934669176367875344745149537541822541007028129043935595326994910555935213736341945871629423497759024622244321162494436729352522961809061508175813031569421005329050556373663783935888267573314684441037832001492686206773720643309391698566915163211079030395995426217152356940059562074887369915521537487742980894672334658582435061827788085051167034795702176179658920405375964207062753143491866125905994287334262682908017689338042708278681225883519366521907809881590512823247142376398659858689466198074281791557942169776977732478855820160254624824349949506558875785481487136839716643055828120452551526191400181460546075211217146908587190018198313808996192888043935064227075229203740491315977333720659621576213821618052010044024691995065191008768787201227592277894533472125993878071762114336110137441195982260147254494582025910677381932394832165329820682604592022041933211474686532620288335286580035779007604423681810565523809215880246990958437610795439935293767723302647069748277824460641575871694943503668405882177281484391287411309394341848284151103717007813974953034443377561026128448226440219451869593660557508727138306864242499210200030706739687478872948204564898056162015368134083419816510148260097622065513087432773463301460814400645221458623561811217233039011323806584912538557253037577695394735249179978044369229411198494506120169055022600655840636877054546944254216085132247166134546037661453872637367595729625467335655997129891566464146017020396288705025314523909013217309419441730135249635703212891800410643349612615560486665468214510910445219002676778332665663653245955454355951217191219747339800662582008448062647824837542518856594340839762416844802359703862311127983185050399731810525957964150738341869716230011669501243891220135426331301175611194075719939098123187714628051825846549255881056699018399797291227520633419535113210608080247159731132939149976011947068888715791889596487167656016477809350018257047657661790758446811247437167273380484646347824212431718320900689083828020310872009911367548154221828318297575337391849204197062862037679745628087975372094889252532472147003502016996551728329787382803367756372292905705507409937540423226798091847889994609570718682546415156679086992294143898729662736595379356611714922328118156799294981722260856780691823983533185356521981524748122366450956593248780757645034922862322403307771684957065615854482703742808155496810116604118207956140211330191887586208939544646123540781916645458659565787853830887115467798028630102961361075531000494484210455786829366443167328865699036637061423309372029209608370274670981076802733773967069580694153447324793389465828793314721103524087080014053953772940133680815629210814275320418821654109811928473485981079023568346775395465494208553057037869085329272579457571632388197709110030421678191682903542499158513083286279889109013827633281553390791414400730148270915004445172850736912473892158114581393476503044473111932513418217910963133215262251469242097224116187643583047844512709425797915182740237760098360922063544279906722846260714513853709440684657752234265741354026559923960661280368498978780649569489705622213451863117233893680480006842865239752643452164937391080411528775451398980457428945526511657934531635671595740887183429556585963724656687917318473692228492235228781713478173359878441027753671831566208858019828089881686110461086529825713217661549252866923658870611883129394020647838071171317523955550936863978123249542542914430379047107934793492825746834045130496384637906683941489056622216811664347951512384432480711995510525998743053067418047519280822916747585613549729376311366414057704748251879835881469612804626460800076979868260719992297851759845018192656488163296239864311259638835373361925131038791314131015098822594397807474124559000508136537186596652299204254497159228814798864147502790466695297982736798688898879266712877246102213816224410164629161685355552230366213357548414024786874748324384998628332833370019191492195905622700377398738956972857576049957940934066026343775402310210915893263317186341119076804125581172667598764890450415682222596084381300680006015698380506399134295944378329687873160575346967406173311307275519523702920080546629954088239026349926330231596636594598757598361476771153154842277171405633939778631567276672094547931086192662515780843354712251153766481806025956925975900597980587719051269271296291059339988979229522289516672455432870223774676062806718387072762688473130118790416022874900585984699766048654892720241056978068232094068605995459098087224805609362387164766676869250662902490674559329764986683533580762442825836909164318077830619359512012434658885999662233692720283091533775549561460885374912658384743561234091694193292091575706634874229371543439229399914470046220360866898411132265620710885336493646580302489861623586885229530303803681766151260028285833089714322593856976186851311962829634526085147674618657754658254282150918138688180876446931315959169099094821465877872290333034364598538547647082130686440414061209777993148734062391472200187156763162338386335282390094447574755551679251124358810823064359792724787662253208248767867146762857296124876937799488359199217650418630804585578097214400073286827034746845426920298143090752867827900544013157365155982978804961616047364977418988267182538822118991703058455875758406134463433258902852886849125976917095382679061102679029668058583730565289274852511533741168403979036823055809459602479278508982074487446482243231020829312139426588069217443789307371380471971420983317066754493060093945923169106738986224846882136049830694008637448748392102982436314616657245323761495778512360134509577448850219195998361077771304848307525009902504997061882130660192511644973660556394776072235459222341404334255286530564622123428915480829243593550814825162070594904000361862376211311932105687580015954172310101456684941422402101221234018048554761295618632759615704798542853766611871420691885657100654687436717382396804955234082919551909436323014772542606979874044655412583888973430345177074200808212636629947606722053914692688235873734269077293334492151524962302154954526306528537034397840775772221143278899808210695260755561370777163090694208439131189670392981594291270974091338234549038998235654353529693748426762418070524294342775463920981061986447495816861196540140879187575193329521669578377249801155812606784171401632597875680918272894771867186749476017448315261073674673277660130099606558927749224121880008766324881150791245052786940968377035819716687963075369643401586437422833984961123783285281540231452064118117436653993360480481921120025687057521686111101627135406390423214942855324330415275882523361524865750682116966738068565204410276398354665685728836400109175046083862155984042833312503131740983529716777209678913142893842207115264198815223308207842985690219250261440645575140049201817342486129833303181231456678224793019122368842392938544613966790981051686369606936409547708906573399075492083882967171464084160365015732297157294734804177948541469776173289464468174400659378005051400644960837304103262111870259282523998915660606502615734870736266750111711805621080038030435090571576119028372880424470039993424975224172169175531273572939050921058907887343178435877614396772991492193540160894693021750807231413062112451410002495388246667903323500272105322184917524154682516748516626944712100843820853127385954375843607017975280662028992917189613870190241921976638592360681914129493248645175732689520050386114663785775727421657268742881529476046939103215794324441813143532020025664976794522722415502652915537298022892698665590952827414746537248031235412090694406147427246805257928894368313555497993696541539972414564986907385805782457639969625272843587982689181467161462311153639498960020308266943252748707097495420658496364763601228197166474807942816710088890614850852258779002691381190000463879302897665060494678956456038763932031926899156599986588411842467651813583999051216394629307910758939288142558367409256157080515753483124490982267614496048158781608628229113775843979276406412953647792437286419641749045782981616794529843317269230194705592396665389518799384725399985701032081025719724734151726688381520084419526252258662053783164247179875628426507145671164584370631176644445101663408413235534694278121340815593423526799879556504770915614435644804656826644000228587866648921041845738862116061033766368298607110082911058814911019253502767594792659909253040861876237635442550511278306227973833394604120801873176028583128751571452005563076701285869495959860163530769779826788311774137905376629532210659074264980674849936773431564846932644171358896144735529269137816154068264987582629047499850870403859762884885099669200918461757453774192297121006398433002961538334535362086421677826190730083371836387393012102309090855446073800788022872514052666718566921399309054263018511539838119827935296867771993783108635983752051308528388794207072721824977844552193598721509268107783560648911932213190774461308737183822856447468676536752018742509633760721800362537431130858661247329060156761276567369418348807778093091908358755057862618939510508748926430522017413747997616806041644601895058011255768436311622698882239443117345507175166008028069747588305842625387367814937462927680303800269015225833070688315439556149081868595584448125501466596696896673039505168153435914960322766071285690532512521428386719009321000777734513387745437097181112784613764824657403957662061306521822106610796159886820189101692011429678928959955469502630911409806443131565734270552245639171683906696964654278070845530087375046593707627061100296976159508350459430099460975026295779430029698612730323051520999795450937216524174459022456084024725624040441551263346125714523230033899594935892043020242288623994307269038298299365620263441655190437939711910982301367692389181934999914241401645766613937723639837137274203898440019752104576654444197252008626423930784850876399869641730251180506080940352722293543070791314150083584379097708719331841120313265748936982102931774555021868482754015831523387394848046006058013991558341178203474997114811994895027001892600146293171025643813663802845008397031295767378264058155699160105243148731805003861476751702205276565145420643048282691877608674257195567005734572160148394250394557879069447407102380476298343546488725235414077579537595719965495203015517700522530458889274329801030814663952284872877526502823645765444299668866240119177622094025400621949864027419229805439652547882112488340227660141852212194705546670440823763518433134150132075480076798364055761898376703688653185159711724491910098273605963030057976790627884668230934787730924675135438245564347563048625682868845786727133836419926257630095383928563275329023233594872004164434784181045864973639586687580676708526136432679479296608388973143203846875627273208787756729520071361510193476520853642109795116072635006295808714383940443132031352226628296482630875062186605935541655058184537290125991891933202766688155127317740429395875926711416181587184842597572892053485581523240348121920135095495992372287075033215068804127054454172722120374726030460589372056155571803550862226967605491340259849878425800089637606127720017172395106220826928532626098978498192406981327196630299719570802510671074574981471438891512016690795377179734747269727018912016875373986124536689936132257348018953119568115781189232718751949890349517017439516711047538077959669988804353968677676792239416632845578489453564052754125321640382582760491075509520321043792679322955772599748497718578445426336598841173328749733818342242381911447765647524613884497602334418001615649035720325828866298627617956893554566221760854825186802865164870254961498597658858871279282501450740457230347380220151951363274171098486771606258592061532227200249851760695635816948888253163301403793776586615433557283636440301986615677759218019128486172611853379945916265827224983597479567172608334205262067784953636051798023737066707284179732156012934083313331687073180454541336047659427180118995989113037827343704330349766548130562567057278875033750478539795054362597404929198201943038483452095765442670894783069081124295913397642805431673917313563102688034317444696694892904771148167786292831875041309271339412874865452083174380598331921154565936528272170541939919037841990675159057878106276243082254578740065467099251750621203352460731850427900766256039510485498314309328122397275325148402330965046647097698871270173279410718507830450493320735060169713940285075756258976643643980276864248990594339503979483565444443966544991190201827074321878486272379635513290282404656877248058709365227479675385660280712272596171585745563503808849100430128449387264838807808256203049315064932802005735083038808910096668569190330016948342916176694651658775013240419279185632247555719678478099021908308225868896394003383217511530711932589820101964659050271782994751301059841748268920818124391327505385299213074815449819446169043855810600826291597234147344430402336050955590085716508691130800640878584192908988358068784121236272408532988244563105722299496802240000255518180543153216287386733660174687872390869124759180778157521980704465517216018208376401910068723744032855573289886503642461161593923411283631096920166318626240300508660761142379751185984249373241647219854170430421760598719792423357405399936693166248240180048381087377586244431448449240869611710025456867288902703721999052385329134449448089112155497844065206301438293346375164984796411283868159735910794361083549923752075214478915654164729247987039542779484570918695858547499608472566848356650238203493997706176423937310717253893988859151648939754747636872039314171780907838429959094171776637836705318868561983047724687597621688405675841465323273038153520788347246058955147104069464243893724265263962985244733909724941727877498192926310773744919358481608943894580609182258256451679934428408584352681272872402346466947624260680804938732235302864892278484049454569866194100121725829999534559096008135629218675055630158471718011809243912972265088647623796908462762094850021264481145653531661374629042053746024331280654422976266465167863443729459354840719494433268329434334489856100800311505156981704891695621549371885802928780650813345691684538898509617355841768227375561733442788074248489190639633241518002789826037006844532750042339850032531641551315418908042555077100793343860730354087922153849249133176410522794438232336835555863744396571116952664072574391719805968331442172317613189562292519805429370431954414592225230598157260011646978530894941094401946023730153108681879466832440901538100539772281921312913087063078777430374449944781024686156792434481802152612420085433722957717616799310767457082844925800232562603727940642312658286442843424303986336855818265278010724906738052614596531242953238635852597612548459689708350831798568606116224842269154511817461275454335345031673822094298509302434483765108182600831564384454335480237114961874992554810310283364446612830864790655992045479831908347725907277436910819434594732654183643993174396868085226034020051484877254956942907944170999828756709836400575915097080948960423002601892494732409405977712699936148286408910866506086273818551097830941982454789231154310528149351760616409755965504840117891188222393823169053831041798413846373006074870864163759784164349167350635331742537707935805885947912897910497816320304393530299181190309310223245415133852557859393041295431013506829922806141538275647916176261473329478776915065050745494050052512742437588073395023270754238233956561593713948075479200655080124794894247589917104177292761198841659506919707934046831779724090510082490167510545370872956178394407835239740704565032400138002610410731277057973702328011884618281846916148512035271793266990227400172346653387076288520130240168783788921430344019752432698126019993601118878543398364218513380687596635996284825506264517085656680530125563709718944980842807969275645285774797101542099457687224337896980340186945311175074661886210460234760746465136919149398156736229643033578160008638687854440377661175430787928019494755629145606949923320595062699404236870576020677083249679248826777683852075521454471322180641992564663394659350016394879055761500395163130603771999490998327596586544682305749092499505717419966640856007594288518227381229480918639076462475047648582136867445059909500505997000377395532338151848052064870175083935046611149012553529356999737309070475650570991177663471268120970448262964749078530819440168610820445462123833086532486747795756735779242081265619851481326987915078450020896002371985794981496236018784739409007284927653179850309676522450405131923465310233494429505420938473160937231992143030530181981601458560654737598204783505523162968327988204769888561746876689779694503670055777746602954211010149509541881567786122804770342018570132537753844565225898957507353316512151588593838755841357368565741955560424981977454998583927281497886919563823333544165865102549750459533674285069199999363904447836238191817316626986068944478465249416722139262950955925382901960468312046070476773337579484719305012647207720945788396119268775669162990086556637044273323339398796611930264287136018652112938081197285787177871231648055161906031180777240063907465928680906774400905844243996274882455517871897685869699043781739299604874662839487435482055541924874755433673087637596056608812177196287102729188197057961628246689006986566863567193215811900565913760503636219242052499913896571391380016756392419747290067602554570950454837598669998518380146393977177055457563148156029874847430353266000557712596499231897666903088991530876551938916783088916121661945484579095914622156814548197367384040710732554462622197576947594768572095264454272986565245119531842708410144458250581011027738662868054010498810366566769483366305156733955129211086524280690865303831542122668260558504551984789800074593688155635571278103860583499800174242143278339579551666423588055811592187656093881609483807528303664686615028291371320979122189106578158902168321309636406807308709973878485596439002036913790332417857058750022546641762264286143097159786033835526463544781120900029829727278711072212390006716566227647437109063454397839576055496090723140209952084605764785812255934966234304583085722310060150096318315924646250180236274962448925247393809982309806476942698167246441402287328185208869769136618322462434164899341238248133828445127654095102513923078005427741747722603067268180391657895459891558967253390910423952533565496425773351513478710172912128521824554271842210165060453386636709710880163818271726519555023643981621562288867688959550631449651034769722807277331980442680450671833834060790738062820856307079110358195648395931749587141326337955041647614941265902742877869668408501148680415268337929490140042337588789509232028706680041040798500764373526227461006946839536703893913280485234801770736628561022674995980182836756778494350322166666406525835757851880122226983020143651348514247908311725615889345200361033679117780122622878141049707899166448021007346544784623500207679522132170419813625617351164768581168530127793268708030584690285557689771733829800425572109861955627544431228623401860693940220062836450717106321161325094953979698711805891828208891849031955793416825843894004401316016278119691466167193096185336093274139149834329296164326220207929235713454254958873817212788137360322033067478142531664971568395751859386148551152104615179199440557060763734167364434787336474224233841371914710302912827017776183467329915984687175820084943816074908539818263599699401662586602100431174940229116506013872246663662787359504831462637615499953932478796990118304292571490259699421348021306009358001378971602241618328161412875943068507806047856536758490519144983069174535591190085507256692162168000136209787575014964479600803792103258440855772193331316310942223261520110482325109995380715627090510601182117476350680927835019069735325008421676527701972077250285329370654512238000323522201862190640437499636469209225124761189692343306282941668818834441062221522758919815324361390723519678550085669327374048944273035168174134928580588005960617582890824785775847852541978111442627209783796579122567473194947296062016331868550563162769315057007002150335317269960619302949910856294642796930461896596667724740651756666233139332238410792802145841462005429183356037900475628575599664570489643878878661609100167103971806122390834808070268873098838257448410070531972792456139038617687999666887081102289735184532631903260128974549528684208319420180890499346107929494120029847764321853996525737564731226686160721428523477722905425546468450390839980200178621566742951879447710523302723546528682182068653536394052566100383024924252917342536312268400769389383062947716163075454924199048322722285895012965509722515191001113486252101147012784323335012163310422564024925440228107742523080951864489626294504632093826274459489127090620132811696783790779467895602335955951166900097916505988127382555713735416148261649267712954853317749947899389834289277413956375728684620824486453573775165790435302013703879919547497781707972426203936074560782462331289599394732218527625489934431588775292942213162602490678923967350292933879445380320560746738145971062007900467138013093371224214633377621135223240187265143552037871271588173324387017843944600011036412841172305122909343157562810309412554659274941284212575909592659810079743046999002010298455793310722920089237022018198981985305472738649770228756576541883986604404889853982100640124086095209481414628047035727386955013866956286000967985526560124896234508270617130630143916837484056411546568889912462954335872897692862125344185610014352406706653721296986038565196490400629366316909021856195669438645066195053352068414124874986840086111881761414636269252404177047894597400608312813332267463957567538425005652930466854665529223556403747612414311579223658448312035730914069817114317172920845170329982807228928494577517712737721004573389813047629785847044703358790590055590693706533003408949294606253224725938991967105281102792945475532892601105424165935030670937915529818154217797328134385868180333764551981363632907000330445130823600363263683195103307966454969076327877892151196566847939186610800733308222720161613169844509001386723914014459157286188098709684267882168362030101664515864397019267596691540819062949749095198968709644009627002745753076438424152847662792058411929068003728017084262789620193562565761896118387363847793878710898621633784605003194770267379226715108205268450256532334226648845519833847724347869796779932144459056608561505014372939222861600695593131673838732936747551197566632152336780520666750839986706842856657817231911507916110343001058071689414936546686369897393679765729316755384997274701987604280129620898621074718345703473395708231982663274718138922518577924336857114575034411076231680810748928027704898759453307701186548583843915821222632796746481508588814276093572235437707653393067434609019410065453317093840449925967451621642670690380641408277914155810243702537366960684500141332353339593125373134457098115406704048199946036900449817178971978310495290194169935195229989985409273668069443461655378473370271324188507046501434556270976841995117414664282068612259447814094777845137034611233469893834807423674340545338667045780178421313200489397786696141475608352180626953919176061865131970122511646010127983832761242567605657696991159746695214130221829733142017796254489632422389547603089386766079195438616809723498317698078443950047960408193973316347429925581346873625591804086113112670307997889336812597008420153991608984663929779026797099220872622074422404981239020088154721074647246613564733395234421565790684784067100465919225787986361921846249695609846908049329280913206211884303202512360154176065796323768931316218388147302970699117868321513214369429315747831081367340196080147842380071987662317856858084565071180476988952537913898620237521809178593153543966284331687895391390137187391437626210446022666524606893116653071424917876148320594292121767307668551576355868586396275849473762035545600062161726430226014739097464451749005824354953239531162032747342351465216490180226036954128329190179314084801621203102554195775447385766873897389663131103294794178461036566614505579708237355186255200527200962888396782103975817650114649213786888007342504107369282497965680056763756610536581329906639753891239814254147466688356667370842374750886705682669248964005885597812489541863173526775937358278340344997336128473883730922130944423037213532153593268122152102011431927658190702766822245389999806367243547006972368952788144611110445381271545996170303280883117213078401091817809423053218649029925247747939594606988915565712254587622977735930551047469022238114731232172669765991316965103501902402267249079954966387999530239510184812744476462664465179563046938273328462566492107257932742850466851450668937071860558544867949732534614686586774788738067369916901828418646341158471599005053769053728159730873814414716337684603285958519596034362444478885406283505748632765474346658777888422297721995715632857691587568798826884430979723264628225756090170014871853121049291121266988047573914847532069885999657409421753763254151595016411441313033422814401340105940674763154024360698437225619365715635830177251603107997841992483089772624320893438215355651705164186175937734177943003822117332757681113173710626559931429872496995861054427671919101458188217917444392683187131654690168389826861545054571126442590146015946477810999693079337978022629017127858809559162722882570634842411904830732414200839175561063124032428536080906432982989667453326413534530423786701645428217064902321497386207294424198424801710182582969415445268520199161980366563277924842183539904073385646074404744580926859285958480933992336094483312326523446109202045041719701830139729951731629819984452087347887235251365363223274604799446287623251572939223841471727098405450144592072319485204875089955771679971590491076364090613920695434951991183898881538108375887510219501910157176920364910861323454151023013154976781775557943761074889215640109812110159153628364192160275682663039063824090334381000091997475603914900888768596911305406973429053586048524407664652393848761875522394705625127355557974477239774858044080031363942050111020222903689025770186352131783397115671351612679517220056499559723638346568036429554702917066666212342541416401634410374816976187151638554368062028244281174626370159831654550936320501819603016908491089471738288289528038469521578146437952015222172069574578648732181714466075540546397383451774631051660394606543109037474641037386025043934549808706332049455623515262292932188070747683939405996248740922353771948897260172393845471121879739967336029913910239710166350378972307849853503617830967104424619665048482733372817357413058286149490257505939699558609233764494884446184879091816437810104475972443594477321299940288179799017504755912291728465440021580684678578083934620794597241036558237016038481440019900359761435439899298236872655642715207657552069000113337007569914722812123774010222925677135822202794821038918364334476508947627796493703930281201078296036862646676622979974520138025024075799380062076642713479730146127240252485015510332892106082458778717096290455292749818251133182796586278704860371883099106834127881387616814857716377506898310170432320198865375219415432623842671746337491422544604901353830350106890126945296713389781264882448689267608532903451562000240693250302530912249269007670596234292328782346984831068806595307943485631088538951298519949683827398330366778282160403987263672146143257356891396751245123437786473931720807364880016972029042255449758231233858921690387822869945669309379615551239451478045366891188730683980493858418273450766080242248289027861808784977164707069370183511532575165219308287540221531113328770915116241229998853635331921748925277181842303727702611793088871707041578044017839115767802572837516951616604741838218830024850798460474589138154665387267766328312253124029327631663140804650855758363288248425490282391986183809683801803433706776439636109269069225863571661706397408694112730285755988506141744163445702668211151754519311405315502787320075907766516241579770856171102839416111699541900674243641882199069732262435712385913344317278607805290743874165551751889901633216358599256860564374091168087152505389164375378060071495682991111754211329664949494558005805414885839500896259337151889020986437166151642242016144511919547306041859105508421618408969351485155222001722777327227550558538427680535586581195329123135587676177342067238151963641032910164186330096663196891674574849385902396371784171165733072128271776882318624268659697192723721006479019606748092514302454291375706686949310966468580918828433616950813020048672919303810680504661581788846405217847412805411500688995586920912319480186045431063168715402366749107958820785177732387054223086162836514393792251034918909601806028965668575112131693445794309077704751700670445327680222703374286630913991910275692487798082862731490540070953898159741661370963625922698591734503782605854465639074003659287355191485466847241800815943557653080638759248867374573734252142783517657919044244685224137951056114849072036924897365531570608418011404616480726258507570964879771473108282416913521853567686207191333241706346522813636625710377098512455963418501587167854940525633678616170458010945149061350068338518166637524230879735210244863979415482504199477071405693175714630966277537048804790794122270423718454378753120263700255786252169390451991677419303388022595984984656786511079033145143477487995474727441578319881633340178498110070776556478257563652317474166166801219844993105605727117978929070500144142291602646623773846700551644986506493945836919837397695992329990430044527525875842821218386124384073050977789174486348370025795071127918532798992017605244031384437344313895236608315427262243058149501214492454534637932646615839809775670925059254116967965226111583109945230640855463713219795536388603515705976696782302581131640732529508976766262050032301011809013081732226872018960298817533322749376319307103804933691413981483084971205712663245731794742467105530715328155078792828403243165173167155876157697525671534016664730921360287197917262329161924849639288001789052812872953994790570439962509306356423832190753041449366180495152921022570860072984888998907830055080659321891187442697531755128873989472868232001152344971138820627782763219133600670918121258663742192119875792202354626479655148206689422471916438380686360681730953890368162994138454044272616576084784271269120494606100510974768464094581525260547593191448461529583146076829964921057320802731106309093022842646506720834727230745360947520787267982588896144678627823677156258521369549504397119700154735382464457761312634604432707213104464221085109806034164826995686543369204653685349105037394066910632402410756037597177745192805272567489255183887673628777328877003328914197140821557059943281871639567507032380686311762516609877743384273915572255272307940874983583441387365253545990904766289270532725960305046011295872517867500046551065193170521268441592148946362085361529433329952761734739408547862218140490443741398390333170962755729869462712425765905785954395577812094434296437234277077756629655696493229053439176106183160771968454331772834904388652688400544540223821200989658383397458746119165673151170791400605267933887196270041550170245959347278565701198770182857041274243903391750351152105361976421699422318552286194683539445860658415276123813120297134061458468047427302033892159417924099303046692465783304753001492964530372123647000784123743016898797783186771931906081955718173437398553922408649556671684662666110263947025159318083889261106916816724680158912644103940745429178148289526306291156338007568952725277036070668192584488923872119109420158543267526270870960221301699939387618025962431928318191178053811480101724738571069722271963553429800610287267417682681393755128305153856666237062002763485615547634199383867724151885451368770986166103055059880147529733837852394965326055117125167816428316499139422772573527190248281889512599215708042398058914497301517201534112201195022951894272176869256603112480457163427867758429097909728601154467736547562488523563055104229335104180277607339854576236409472458055433593718690609480701547876655066282381097626367308562761308266919224060756866909645101842759195018199368534814013658479430455183048356979517285900504111143377381811734847811026260282831805982541123146311725478386525882003824432702046368448639397537800130897765193866167493400740343339387138955377936079263842966710064734517967947175704220126318907539860469670591968607396930766570860403463184243832617448847278130045408038812514322057181641320578110003285731046909514115785281472316933377902375754472844572463574477313035429917716432741786891336626288399369974547185953678337932055954902504111740115459764296012656767034966440570719919455286923849673160726608588086257174016741923622440288581363515728906862212482864481585890313564846415076377308551221334371071611442209884395599901299595783858988266972443844233303508216515959366105355100573386900814718633393340224178277718513189914782882260596576917163899953671380918556505478194873218015896789390122978598429071439488572499832008015403302985008612895919306739942583528750402486536374817740288965928781235948527998658080987060562681539035338627398438160518301491991251731207183481518960524628725413968360217534242585131382217160209640738807844688077893771095350551530624272067350750984310265146197210449186742838795304247856241435747112910220304262641750867418381826796392277207970650719023425215613573896587137254631161642102147265975768784093444382446071547769036619394658763842496057498902087938909868043413640483263446832177469549265988212202128317430514706216504665336959676760931247821355615673740623155392222193951508001096391828018729917990238396967316846901596559307380178391339904100354853554972256170537566114836998876948257621594701727625880910949634599990683997308149153046836624295542183871348415884087434867967957198949470640794181304883419010028263598387288745498383441410902922924182203959485164563193024576959921683164307343541980488215001142325107977722090473083656367352760462463787729960996609565853343101240609354899275707298873767043820128301558231685051544852056776479540197041674457217909327101318569467190228593566440277755120933764004077815287614091178833285956933473471357000310672564314867245737743684835052782669755412068416873792633081047567507932192126741738475247946012268490339688152541997893383174889997875559803283828746409250336857336971196062331527299089381884840869173983501965694219354068606527742254822069162180104927214804901279687009091080996015181513804403526180214493215862310616555817944027837194409153973245384107770073776762727408330491636845660189921648645162484936786138467389384783370005808403480531946569865138262687598148450687077408652162134216170393951003059118086428669480458589706851532085239644385778115533544928585253403513377603813346577763223355694288636924167074152005689129941830052223698259927710021747914326733875243165370987704543818557799217733591930893386590937447545258435089198749558459443495446155814943571191731845514918737031529282041242487836238722470888053590885833291780562634457705971824800895759499514219738907424388314757948502344408021940645860513266800999809626725858815322284919757449839552404472399637686671692897148968045608159350892785579788280615148195662395216331377066535406651746336497610669892521243160974613277518076865368244535483238619656319961058650882970874712352081780938592692972680731743936584757436953789742306802863552755543427582835528558138154294668495755983482193193175485583452675444786300022526526742390816029411797668449071986517506876299572905871268143918172274936868955732124621111791922806534086046803936975415766552013743659542377812895390034623943157772915450457572942983521796337273452581717470294286032838620782474364513302740381264567519550687987351772106469357330347394059469645896035355781845208153984594548246078151360233149722520133878893145790679805994062986049428103515154146058434061594558970935466216777946788077218740246812407662063405852816908277572142001462774229314510056300630998757328932589782784496864132432349966966738706658522127151261946053348647023526214652061684853644094118390845213664233010694837930862345392782284399426752392466365366780557169112983446457300011248249406460396626865715126264521798043552109822340050708145507069131771856644411695760049520944969209903068330921362431418740175360866487035040259080411737023268281853663197991873216398301764035165275303640155447867271954251627979745059524024713681109317836279375018809524059247858663373129045496287883296741387471487794056379554016914727371821694620066896729971245085467070209869553314671747055637525760529719476331712279592142698592554202000092642528492479308863361194063576745293641999320050895661602607850698295159522565417319249174039647741266124864533955944593869915059459350498232806989681138490288305290903318468404215829084378426283205981626079784045032766500436779867565212391494402021722790164247888735564516256379183591054713798400427200098050897756644431635810282072466807191753946966853324620197188852843467428925933247792177305459192608210542708223772301367625878588143179257912363377659129725874014630973419524427285645180396742202986265620413205179918193171974733813937116992327314561094202904239375826475939010200498542516717580103682933956197582460496699365252689212613338199307461714816253760900350303338376542449098299025158937684163614487359445174917140453209033738809367763162721619406613007125646161161595187334177950517565295509867177928070346273574530239618667648802929598833285149303747855182756696148291864303281179669162499119439383792523636661018755696840170389778624753146597886926656701637145582871031825377906707364138471650711408029120064189052299910006725107012944649362158662433145041054395161979290281478967209796958200066548541500053617857737409286205207712128070004858585210106433021211671060167521760749487662535288041845766549482562420348704468251650843234659268382080909442005573078152895420712020633463664518427857829640804182671843801094581475404384449666907232362205682042743043170860464518365693761593031512925401774786402038294068447447161446406696753431275143210914982655090961866234515103190289524231303172644769560348769842682272248647622385136547658407755239837001688197282348164082640619704672277459586868241180857279283301903712710682394913525118321267904165529422310390516113371720930032459687714302706296256877085695058119246371713977303134230230381305326976401574907173387296067501196824210141906649520973427669501339068175332151371935361425281541560681131949242053501306512672152431725300948834483699051630460134644750292884571245107423825643059005655923503741324180208356628585265921761216069041486052341778849630611521400724142038417582907488749547387105211659709205216061734708125744125271211863485720458393881791471779166684489631005228529428872954158130089284833448062851806650442916953248314397203290552361892429179953440170734523907349859649348511215353086589921068813940432021738949368201612820615104193923080823656220822970996061555174637752835487007038585873381968651753859097485656074420308384422789491634112427955261812228085480422340813444971599085544340621651471064906115938774283982883953796809458236866511275214627714731670798176090040428934407568070726904410115799309419410777417187283935508871985558078531624176166601864494709244927865618578079706925680901483178619446476121257481269958691547154315720377283584365749512895978028273438762650791232105546910744778287732328865535133499547270474342027729111016981786957044049806443338196170286867186163648539246009621234597464823309173625404290209948560551851624174391777867572070160310442148000531531891785195054028731045485600180159813316860093901550238214766982024547831950135781384195701512276042136648659356968013570242961894889745079648873276839400572957875888002962314856804624278069465033945068651120602547676054783310872314317057460022268109919733068891171508397420185211484064001450987537082619606446218062811012067336165208984910758258105142941407845763271454653499568263747465922276545064146891924110146903990218433091049353408314134351286269340309844294036611701089770544504430295224942330915452383347230365506787356800377340426082284918022129023873812311275279528686138114081126409795512593413720357197831482273754749586810575884791006717871846719851659809353250575300230231459390266070305638038713920527830020290841353375396472470104539850578845219998858798839917959275860072866756713641254679417096806913272658427806050638728039074402386152952300482819226901001792184668871768243745347663217765117005123641202662243613238013104859809290111633336170279263137100056623787211729911668330753596474989694288720791237780776166385196169953577327182628946615649833458577887589102547414700241624972832456390801607245442224885263367670568700829793600726727442107132773512886865336219329042593901307581042498544083302729878599495912712999215151934672812545305751873315997529954685911816084831597222408092624916665999393484755598505410988605993140245239705335115998904428395740675839876201884448329529453533199258805570570395778269279810327033793985245622178524446003259167510617504308919928423475562645815912828321878300944083848934588264023605804578368318936820154823137229122045540524123874979551522756475020033805814948055326463185358656185251045307865042720692712650588884952084018765735640344891878315925210436483389402157228424822474665351867932117360550357239923399704262574046608168580860454968620271651192274302015868466863003817011015354482789433679164396957166145116609937201649342994534693605959107017462372302581724251350036513133978951467548691540539561976948449722972672997756867238327684068667816539786230454960911603020010737070033639724601033624733357656823188861931847126049267225099356450479672599746499974723357328212159257787996884218504338183964812913213701167720553107189278821606089891024287501387052060406000974358174250353795052054358015516313491222045625005246696260774689411191861998426511556480175766298456842117039410458901040994175902327004569023303472380379638210747584283423331933293334535488580835273870355295580318288506417424605190763631716128225114095606204973650776876319980677798177265608128010351994481006454907070146946202444951259125552813014813427616699839765149555073060279056047018985490013367449535810898102541403659278186938636753015956665272499925515429508265179425124275734976098072356999122811359425414394922138722081483789137469235254809538087261268339727654405207425593181219334547988513708260604534925377611596883865686734068695673120519857075951876626500305802356053337494037700649764400857503677201245246822067088763267370324002560829061283963222582965883586535131232799675649336357521103978142541633185827648783213391695869414190873673805540459568232729432179632103951434902148352516488726192294133340756439146833836723348903822961082631845879358729497726897065362644372733285211053797597153242777596724795287391560770449188418886957911175682187735585215218088089986180766805808842830713793698711992460508193816811272747292842579911458595054055587795273880037319686172379509705063598625185872604775004884874579397713754509594056716972905728952160029546410404523013838460313465488420308686719720172912011719224073760508526848605276163570242590229943340785890054016403568693053960074408839781366924010949631974056433783426053776867896468029379951673112824586856884755495941681066831006394059041162119542032308767564438443734909587344571597956689710639915822624654808825234807566241217084841408246265086067156624865076061319502757890128177961417119335152295992689332990218942317999727311435441122715044710171805649798093439113265928976410242383848650717239028837732765234002125263492692132250471343815911428355186010336159138333995692553877247598413714024257070643023815020666265402511072798836744087282699751429737042730740016675038925039854144170690740944129881206540786708155247667972813970755468137855905243708422966417480833585803158150492145072699942168539985079453134006694280848811445411593404989971745180365119242995869800163155012095558518824757152047563927963053217780861768938151310266434402772924773256945187995787187220788282824933059821437880561850021412283471020932160197641951873253606205264511155111882898217246557964488936809875874101390259049305835176800571795069561454832281810635178832813651699971227545094173567906447357536873441803658553913995860635904118048930868361694397643993703680566771853259544749218543499784959930061005863358750124378781506525928626127749249099229244961766779307609560669819503472686378538012552184376196106198380156139349032332058773435364851621647628997251635327343897180003190787133826758157953231263573233382243901465933206318612646308069027956304834042497269210575969106630047514402867174330666567772864151267294287316820499806224318353483370111736931914936803703165078049102086121800006096229027440325757324716526327376639385267949741561438051796205245541698171183842578565349161474922979134694268405578694318689681664285499460767867207553080426910037651228724465092783711656485614599437468712328874700883551153672757457730281630619199068875027620287260946393144133358013738053937031300014659882289278659669795313548018779630811851663100825101563582714670833349290138735757142331130954920278214878604832085138683717481877992817878548735077677218352398380297425011746337289682003603962850275972741423364192749589871099041438307012283027209475874173569833505483472136816906635957091438788364756156311615148285893242119813133872058961725535365290102151832475812410961662723828428489462570617660060364585773917323599076247934456512224419670346372535248781074145913438139451637310183657864487098480807307107467777221374545356029881577900277694315363624880206388444569119288805772233869381217575690882178823890659050442426116497332318089242641454498755426034499604801625703954744103004870753193505418254048959760924063977235752735153494187926837443337324364568855648091012824579229010137157939297898017992604885353996683048289519968180372771767657502457166131374712676755300140900707320948093068905767256314855918919268547995092543706912912513299876409458675872875147367284616625684696018214263976833768913785702002701671413581921355231330748525467407372212574905639704528084822041877314406525578275415558782611289215932371295438360124533687171918493077540128298168329835092117371955109372360840332458533169627926466262298045911471092908032932529694000354886746359686676522343778307657115200317612817527472364273728122360918515024645718966684202815145392996431473499006989447023598741436121336692988276736764259124469515784000237692225000793345228606422708856167325169525170085518927425224016061237622429968963436038363203336588342222469797621385988399249063157343832708013530034227464461111191742234361501336607206913957011821134935422948225985992156417067263215932320076592600748549315936745903567477006503056926348898593581932245162616717451618685022461927247744688946432184860698801826025932394643142572911061245509607747584019541897771028143358430763549081389318389953282842217097517285356821996987453476067714643557171544934315654199502750514235794025144684892143165734067930710223807485588476060805900007381728490471085901158833943808100964033166036089257170791782303476134554806104504963853117714387529414733988270454625478211970936834979316394425519933199765068575069891514331785074449130544329549946625501135694043977291294607276319469648735971451450312631283616922351680724968677309269581273104932319810111060851650223593640734962901263993066155442530685326115100409296681928585969364545185534055203234444318779036197540385803376019537868024435032641608877406624818443356826625302761319971676304988165940763606334941265608624750721405586332099272506443229437705590041814676554598639515375084076229074235273416159687729975080845822569251657950463038543135858623653068040169879478020487769264880280594351986501237246235420931797983413756898841886158971765044931405350446512502653102643064807491622789014639292107768718031070840299216614516340981290563140553509323490042734065140056028998289300123824307114417791020281199519120175228937712050950322180115906504422193101093076717757038563777263723502612216540387319085925927658891995239647524154512333853262098295972963045244098409884711711572803972167328215432380869498417324754339784445419020482481229017502749683492091839522795643023858033579524123750703098204217758329284826284843199033467247136247791566263898734855478229353763898029290357362795810768699583365739644881106811488708992473766845322549232611493779525202892722785338627510862406673021077201470558336680087476877874873431194387982058260344650032504233787208606902855823239772642664588896958557395677900642518048742165647729829479074004524119159285587547098455435134209097267308476749047239883739524557263993382100713688971881402298182301651956725046272440410821011360400676489853054873685457081185957615677702038353178593271036269751194225002755011758337173949402199516068437371577214504141106785853987238331963297575806552848441023925482637182364562376853606406857434062730777648351892439859320546010230080795193228153038851145920508145399257645754496574994445860560066401667573763887098999805822662760829202316633240475848682335430363510030691535797148112862916799906022117339096288573471212387954159761138265926654889873619317725837745324007015219868060015093810192616596586140616248373333642164379853113424168472782064704715001938714600659061657114752448116719985257465137266973179349248993320371904374449124399943999294412199441632914820609783673276157192965317976607660729899939546254599490602751984768994415650331512805763144942796273765244580397130585581830558328018690587382217207830536543499585786997550122100599052046952152814039360817592414673444810247495417392269001765590891834458409509940608988300442771862125396963348982132761336695267044692064774033859884877679182799028761753588955965348592531647149141954882981673490493702841949391315963739873526061470829557490590121243697705073083437824843651646545436578629898853998155100908673870399894835541839367350475911085619765947242649143220624960587627204111421848415397822110047069938220638163245126863023410507449177733857455671251995621601010453644614999715041383810812620834652548161240034882361988337866828717108164503887691051382179128452155472183883896605124279979070605842905306525832742396125391018324721891632697215986667460597573775347832331050972385088401453163751297803114404747062355262172854850126445898270472238921157379816857701047907638288611835143910147610332366041127462184639809609233813404266540198009753838663039067916822642307253933763041233228431740126987291033872612900253957410536451952546252873756898651596244961189770062691878304988227335100249198835180306189003728337089358802128268169676721198029268939927857848323608742087110292890589288983493482758537303963588421096458181539414798625212388980316453763077046317508014939798677215363916525205182611768702180812770728326672804377864566945235959357770731852132343290381833597322098815598174251296642833704520493332082850815423399028005329818596141217082320568195150071170524650973688674924635729433482724548397812949007097776152020889850105575517696561655455108916149018341986516646757878845979473357066309735183439346269867088084975521503039680225118440662316916503564028308793549812327726719623178394888324525372370767668090458190537461845538607088818876081438499854973869816633571667145216163358664459773285344847106650247373659996549180418736999139727609434429326587421106419739219267897420799348649555881992608700707839860640664905040572723404089438458096865139639244190613679112465905918425190345393778522908291303833859295956663902143367560550219400937107134235598011359461510799972925451681063492514481788239079480514968116180489527975758130091029775567829548514859582607725043433262073512671745617016978212928400791239318296444126412917549042322472725141940029753925991852421678774098858441114096525044872800170037494321308518567857094423893810318918537080786757745051847874325263938096405169414350996020290239018611488902614708817981975639948097912975088067007074854806928249720380653741338379976090399851113334902976284991903357809084806868021906884303623924333268419404427838298174021925704317499585719230927031705623336425148354434743438955991311008284502315724197328630596377792249642952833340552673889407038674684479682743093197276728301535974336370995834356131610703604603872964089644580326639946479151700176080298256519852655701217758134489188827228770994915211471315069452315907936200806555184897949655291019652386587697955967775796439578756992411988495517260154873472869333459924074712886234343980779262301691551021276585593689267957731721329956223836660646524105460923094074443013427591146823898299224741620694067099949196258339171019432020902918227157061000089966260073982587439774847237042997221699587368615579107878979436685799633008726952536886687926415624656473687810346063457766610218290934473411768699574089305494670604213481653164211097133111228671859879048455860474234773568950997960815873679951286974272855942660442745440475423318056059522769557087993885324002297706643527669076231217457651385421638023986476110891800685834049855143130735806477882879042173634619683760849952509003862829639529587948661891585711637086277805552106355902290855404891328606810887280637813310487262533128892008449451182117771456609607891755194788208950295874473620031969107376173798668105858835600571317680581073378594083515222586351726066228089535736567132331885953917687042815584527651784473496193913258409869368286184923931767654667446185947481839051549784591039374401529461928217786934896517757412306972821247394063991784340881144235544100755668978151450902441417209406992746717725418877541464643631731508474055205591117294497988674501091282854751434955103729420395447161157977942976507827073106644123077498456438376629169193363166985195752036763229827471018984892708820531790010754286278919436120543661085930449911781568718529140642271434865996491979376204548688059566481915310358439927851847159488602495222668092264446428040839538022523674538452530620754020359569661570251744451547387264618061374609030913523308955500944400825595018912928185217238238583820789553791265683110098766915458274058819423936164565366820891486353559028074849562848103888403044727333065095701763384462081132993297129894982950880487572953565244714162828537542315998953533795053494429594844830729896309607245127186477072212094240209876411389735062159132789081207461723035311738859527206588420605000009971726958961327326946836311929692088033356615572586192698311941002368977954697841925616318247871293379544351101279014704630207876949570194774951240114180061537654529187372538333333760738230619100781049643996650935660285544203751330450741409766530082530125595515250776950403513065187457393103349519733599770495756644830348506790871281774283233960316520840655148487859594622548869589682282275675684192532685388124437248047459717339865995919196181627803977013798531534790357449487889950866145791465813837538358127341428467556198407002657817229383154316934577122580577953480653491928559122090787576080445450318448718163713319531526561035561814077781085238659405946071180985157713997843413388746079365281791069068150043788284007277009417166591770447239812999472790133510492361539129823239620727713832704650166901736948859950088425113178744235813632082346583451002481086024947400171403218709694884251342904165192703868899859194730620120819188474744013544831331511492943308996958817032923787937055018504565035941365038577160988273973545970219870534974881306478260594809224080406338908356682689949497930931359276723615976838463776887188861888060558112072233329465722225212569022096953950522927885255183525800309628899074170633539988066832067448841481826255106978341178892305318003340861239133010220947621899958699833292811142373867284946733529594370382425334262164016970219332458174797046505911188150732996819032211526397127813861528027767508816647878499265194996362043561233040643600525571830668316717719503350523871207875478901246456537376701184220072761547262648211231531747690756019265537543873670250333307283401734564140866783396949401616253693556496579582968007683190893332474365786218961766716911577711523222253620654563844052526178807655419399495495134077012037311891012571481306084171856565789012839238899665482483571941173607844419142383298997895517782405771751287314644250379523762396476212622899247464839565320406259051742184019194948754013756330876017758415557916497295718495668925062319877522537306241026856020288190164616976950615790691975055118795656927122901647602588035765708358150964541613286301806247704387750858617130047785972224757127611728080066970779587219034172578112554084340014223106526748006948159583946747512194562396942004509002097153777528044054209002351731392403557932469580010651373435007754208997919025885778435359359998589882990119700388086615666440114308737229305758460588459613318448856575563804915332498707012206052993820180790486638211092260083969660683198879318808101681274112783803766780741144765263423443494920470066200242849055693938708141059590521745170455576905270375841137703667341132247662533163948368772063578492003601981720623798279627340043885847373954217956310160073545235244810636060387735557273212186081942221470550969527694381780155341811101809168217966878367618694887329828504867255969484268359586676791878269680715558426857309146755730030362832970855672410030216571674934753530896764055846340527673820755959318643336576215321748920723712434568387321675149999218761929546585919236021646394021494597336922772665976726888662462369094673243061077629899204617438912606770388706196267373286018406468951434333710870738373232082939156108634219025297307783720747142247282795525552780457866635071159260444276791214979565243307635200692456171606201000927822939798210092401676286528121105614119730847403420122167694205923890227315130283446264242456000427420462634705909237170622849904695441149343547262108577852117139835559636494234259790545727746094085214142756179952321633266657020562448911414511046993607568188725737172225877172987428704343054605953542416202838294441279560874207470114272709734497002070984454437398995515947918674298553215483804721221850961243010615852542957943296999738875151536246250269900774500146639943628643773455622645761321717503454108612106234707127738029841110914797502963820281860413432210478546237547596022967644989153485311342486720766377074717352809443014951931321706166971727679852241471533869134472982097301800402177885854398258991917536772519211942249835830687821110220833595615109667813254282099499719261766593173497165666404337624771357239785232970683337113718862935730034812107809816735554399281253144246342492814136293179052507937268891938779702749763442188062536629699839470184614905346772187450334267916657325093328471439173628047053588770773137908649135271567926068440741847900386117467628290089888983040250000876240116228909533987289232998671761802549805297976961902531357885533010239659342601630585449141409765368303483934956164804743022997671647953271392597660529700714289894845491843822265177544350981299035504196642233720804123671619295332789743683373710112215527623717362612856481452962434096560049160193313531756470594981787630806616516685183921431423536819765554154083623533426171939092482234093031886089973749787157967745975399277509098769597952677142142220047923854103718034780252352824340958669344652255512528717156019936793785157933161337752891747613642585539039883849028577870912035860407797360976013934147802567743227588702727762546108357070121723999409655927142164836757910693058473725846426715551343492498989484655383061434681611032603304713701171172233566185032776074179990182522836340693577817423583917745590668079487061955329546976343335296622868982962261945978770542878437585365848597202628233139767795069625637292446832300139067597694191174639919890835984411878636500757202941448180886524752456376345733942828686689566292611839986741381633669810707010393332991904920739333754834765405902523798342583403126764447395628081344805031028558542398860562838010324259005984662841935191209959967327941528945016420466264665536437756702472002682347432703773807028701385075306871816342003490711098242963679565452475130701609829151589835596010738154001077093566955126258654936636881445497555934046647338639324841976014752189583123176176275861424000386806361974352347573954529809157255880628279164812170975961235937881841363915496426159544453916027045272132296144014099264505272470174376198639943320785819988231692188867111906471590958968417238306198178665342216397745975252402374981288493504114646310578885031621804621220548355374250156008650456279732441247529776990294772252447654763107582989443190893298760326280510614610237806452020444503828346350684745833368094935405975712682025437768854247633522643997940115320354463611373479682343382790676516794442010938021742047022982052168035225708998307174791318904657523372147166583011636152932368174408047952243933039928516915483264973954118709921111411054877736057952143668357974048030185777135034425271479515035479228650593769560020497560526396445664910260102202317203295498992391840918450467774093030013243574610314470534643486972607796599744110119906630301782707410662601399045562577908775633988062603658237733461595169305730340779066234560895228126848181852125788866375978340159812037673809241214349369186504257642382175742778982482301456344356439730551346622472991055977136804863020671879194430202420819157035648041344707195254520608949149609195179911992437776054050747533128690709702355812639247760973603036610985973118037756682543442583210620238086539878318117853668292842633667732797724161621642136648840351546249237741722161528129041596096235375249708067228791962262663860929830751800889699792927797481561999222223075607767440486900360440421124725703027844016373448457159958065922985148922582655557446580501663731771710783339396612624066482232508201767056327788166981452009804627283749885619297904511648676719071353176055004729815576520549828405964106467463036420196707847650400926483167117650754464461544286992601884682911886792296349720871498815248429024457369185815692142997168720449847068458477040179437112935484516224157523292165451023293516582241207956186557196176303702501183615225941916962330875597192839168380339113187684495386994253129454692743468947073736918516145200773821633294232647266699577198996067516975017432014037221568263668321155578786301723235600479782547767423682240537072014033320244136751223591816209561480864280125586546157364345861207475714641483084602757630889419786198562606918007067493663494849814075436594720814340557004088075472818822057832906822317445480960401541482341601956747093266476027942860592413343347684733797624696641304473945363989191014854106552262949743301135922872192113330053959264113457345625976737214534801217272923714233065486617885012042669094542673485683922317666300301019643042088327038917552749530373403379819458990307259704573483672583093979208560480670401207097168286102409260003980787340707043031541630900849907560619583093637846544369197497897378673337568511785781032682209242065954354762620443154073935505922599834604476583545764273723784858878284446212532734781902364194037509927965631169726596968180942986246494025223595838052992643703006131615469128541260974818881827565975013138722989019670391910912986612094546553653429254202026970740741287794747149583013051071195537926940274043639930652984724436803772032883516553024147278673286029595168917121087070038352166742514372914747890749992358702497426055402016479903593919795623048227385117424400681444364346233781459909498841533176115236198114433377995846639186657848006352924299871001420536643578559827996162349225571627155539234360325895267605232715689052586979700296229374258635507869293560090452564414155748465551669291297086361230483625963576684708845119581633329813182543736393912997503910243222519796970818978296549669816965986454135130494977516686493472757918429509058596767374335194740649118269180952369759922408681853020236723636825462962046385797785061679770040052368532875973711958873716259257298453929079242384510202697243754820852042292193587901989562069545573370798787437471682937041577430928650007066527543519817091469213027639326347478333590957594433860476434958464428375391392126361639177208267867557102255030615083060725370642565277468749519836385178385157914164234553509443533829263881566674894356893694841213085682813517718814805696636731014087746847961377110742083831455252518269570189741745012062958643148543493092613456788546074742253172016946291846278397129426109516674452061567452252279152864532103216858742288506239725541775617793546859899332183741296445213005911619622084856759935200095599541072965498098835238399128732926451869446414581033081984614229637667790225834342325924417561328083289652458211444065082183501138495249891861299839439589772739849540527938357171046475830558281263050558524777887850776471871331328706400027898465862442296153701472850667160634010098431214256865852262444643058422013109508886582262005066567274219146469103552467309790114611281669997557845473228303290232382741436595105527631245408044543113197507236388490099613259186953704571405786783204144896854616315045215373736365906368663795702208754389256167306801049292923787203892529077260133871217349787921235182580873330289944447734908131338139974815382322053567663892732890846526571641314165314775462483067022601820017914510156406258103212200614026305411500071030944834883809954560245272668602746653664651111544456800997069103823754342108997513508804811576200134966539248698463363978309360400487030904216771227750711582956429844015381271710856821360944613331586322208853533456017696268674541240129458545970750075814236702823455486776043308459278111372669191504999222149496619467120867428142583560355571817098015288243392447088272292272183616911912325580769838631939140368741303814973826621571745845463788649204148788119641524599857470817367789712835373151166066374697729581436318655802137138870236805569274976072646809639209358707749806417233817594749522436967361255021552371458847926496330946338371928813340015138944048218612512017651927769993338540921651381682176963880833406717288032926516960048700102392815821025142769127725156591445337678476629620537907985985792077555619100665136355072434764901797431940570904792285451966424032810754860921061185103043734282610626304081836142538444238182715375641241206930154876249549815812795728313639928912779485757422881135334303541596351592990961182081768940320933898452306415317003327843162920907986896371613281258918212000377804745058634251093084389754920275876200996356629456551555747231253119996807216944910016012986371692788283045632075929246375680828473826328381618972386272426938361265296303873394507769064799018000250792936567645629129151022825381318447467856395625900616894816054852944015261355676345901677832714144725967315620636783418152374415443560833153172896712707414728365695064612377443317807886322211049911654437836745077115682642294165718584890104242109329338371550703500710228050336802185497897886810484026072305819820890309124526769592496846241219476705484849470458514651886144707395125080712452019377774361965763364918585816548455587847706254002043563368569245693481505682723541114248780125352596177145793422081081912000946504704305035202400556071189191334832932250026051846571218396394967281892016407232122255795294420859214040187245266220997480107172761282934994476726279199877030392844986230704432380329033244927232660472598775727781861335358000875504321136077245927621993551149244464739822121304954883612092305507626959477304578127942208906814754740504148168072779112993306935611486512088857567933947765840736704854317192125120653731629054200217292443884920934641140899957710042399987975951170366447779357270073128646932189158429831422857819535280449408173380400991164350611703801038012036133716922921604397273797424820159046386520532629091561156852148518695903216185667024746984440064697417214184154498407515455747202823370979665732631773012532934620408041889266618617185339913071511133729823237979043934148354500164390805206533328223836133833017853716154959960408353025091408785155322290285452629930352438402133134307719354309691608317685177008697121224204486920542563161833584674553346166115145283788349218281009800350455780946749684730039229375054813698547819386182876227890265350867145555949285896864765200200370346237625663009933958877117134896021550079857006672421401533136620728392489365337983845144503048254693574506927751585361171545322728205377574649974787948982208249040863413730433172229359690664636374342976267088185315866635641503534479653921371769141671881901614705243189332838019054456138517746286041754271214894519213447492030497831141360585448216757859016641709709018344215643898827155694170284664499695480866760349098673200992797404547369260452215876344564575907150012098256038914018646707705063805631599822500261889707963067830873263152075387161219835552055835998172738185848522747951253165275610117629118311814423199745690247202899721104624649016689673730783914227265814727608132279256968954106208947163042916947845745227072536385438775021984714515840747294703986163472563187833642312119776041785380815094311667784114272141480952091741269628708839808632098698611701467486718689445949674679876066970735328802213922615886232639257908609493782746503447040939542193493542395972599169508700464703925720303585954906331114912900979234865606222490020398219980436088090676424749246357203205051269164340340939782954193668049584048547273009130296521887767363076785326821041814027356435923950943951885611872992948839290245087125603889445706134258634141050430704015853596513165767295833600846201998170042164198340796950447320177879081544398322588411081549260053613715012755091803401345805232233868623321701320869873009879644461303950413618380312575992551067031665961841409951489390865640468488878252084370830876652598513719020938330326076765101006264765257584232295015541483009702077493827726013083290408364682992042357095911713592551876536049050764570575314340842553581819206726587715249503807058492750832124471913404248991994727335487422183638695018664029628779025594516724066578862869905273057561339512797821472335155903841687329995440904730104098780157832989821456842619830239832430199889431132902028321700402092948576969635670687849362289546536187903203344992778573080589557395872738821568027721103215837326457114848443016056079276025640177878986760995542689924921895946722615682319914071472943341927407393497855234819294643452141541610266761901052176827725726716180580178036701972175009992817900328819324036735319068342019696374026851290303156433356460159159539802050931447739506203842698984649996056328737125040160982042481616931744737142375777488856564451119412125061646329870866756337070823705068195663553881516234856478745763723622168014659429195309053270443836120994132288033896357016988195230159280746692246989109560822240199283734748973181523532011234830487059588271551860104300269955571248855334318598688890286994484460772579942382918452521957124709119201732545771288072303947536812737601372027040022834890044109331845374659571444053220894730492709535310037256933185869720500944137881395408796516654714812972903351173246988855533798143224643213449092491929752199095291855187961785453871805474807291024547887142736671278739225159508028759980118966675301606621106213088779652368043779633156015277479542756090430814517877715704740889216896316966178265309560828740712951783298795916878335797124131049041465748566185592861225424681763265142890959672586018097762433297987020657825442559953490712945485251119689493163782078282448633467378634519606342099920107687676017707188224718317380921108381089876069687643285770408034519155353595818555939026628889959763887311649270044243904114637191198031797049838180659010959687110574137669298624064580432652091754886761453459971404397383017891322796526011539337838405500666868211427744428699535707567426435046963480656534451375843429273460677061887325815736159488303700869536716118284030549085364949484559018362195690190057968467342858475656804233677853347901208457851882854005584940236554796404320030418639254183218839853087720309535185786642218132139170508129470985352119842606771111111044878715944913375640596244963842195390481097230306938775724365743118305104359244682856119483388598803047133959937319524557971526518733337579839662452353539667153407573139820386736270724369254376402261596661160463635658913762856318593720967526412815166602906657876553961977396135634976075945167191454598513642858755581893742545904003621258392244396043005777249613155721755469971543881562495224302882021619342078006130287492436234634512600002444765402081045091702063798566509672626370362327802610583970371969774963664181681329851706720341216425570521109434875791129876090797453911198772106345915493229381290718426830390777624572120763666786525582588626414636007933965467793361655456715999225770220840732916608634848130124951220919047207233902057883536717551772900250938964998677238112727392513900561684469740534557613316564553725868066983147922539220185341479407987695924168434711988258860403062463341815351714133576038955282507408687944989106267787488141493017371652525137520936013536555773427783097852777945713438364411119146205848027713493169420668848707665291765271688830949645717389185300889688436959354488168880124732783509080927077497628497091837917012182644520930456915339582805260219261700287956897336474116478857881757740093511791917025548132906638440937755824320272843728643930537435593852471696877868684534729785921023511513974803253895648787834030202789679117739458156934584612473047375883706261578769623152403826915396078731516791044339125679717830935308864692721974321610902517490383567591969630958344606584696273315749315626240195378840071899883700139653770483402739965346088860831039485103906822049678232398229686978650439250910571669627384817720279354920250720573023198170491904867030509721250780118908977929505795434341056936190080803496059378246625669177912427199857519464118620230594145206291288578383097111319074967857583846132708205189712977349227417168385146994753806731622523041926169210970915947550025753502227510404550639733914723558749521538007133615688531080249582803895859498265138013929246956296694550523049071889454722847597214386162572726983059375359670402905422267096216417551822880030707059981136602607867983838636550245801865105857361863761191177291309970469694332077530881662477081226415163291587327945463193080550901953772861011514811409821544904116538933883393908679324277560901764089208288481319136177747338459428567629758911514418539821178913476814990824573251756216578035527063210559486944164147449340898594098473121402021550415516177114262696759790478788343128809034692929925794551767405401087898121090328686598152698685750585969746218715112432373801583582683291335430477636450409830908628091454089718281072443250453996757564410977005944968988431835522742329172715664881185933466422569076555840307694137063610667075093769244253989619280853378374518374171842787153252881878605216345683557754304392132289131739918582648945240048403684346303912382756013793349285943330616897449617381892550858547404908601172264045731581750951743442632835372384938573537397868419404121722167840779680449279091716722522131989995600438547473373036639163128222144392039059080044139418898722263202483508726174707470015047327339443812979873414911680068906630820797826413629848029890448251776916811093457713117452671731519013480885607456643511595759787266171354654386358966221557954726760582991649649418810613543979724337514493095814183686616317970319405466453232966565908436175872917858546246476601010670747587632336487582287446435142710149494797244456694154582003538828588184704636095918111021552265411191152500089154445100213862275187855306074470626850969125888872789789039904374278958921316566332417484382800416973404434638788970366190161893782013985892969305036499434649585301927090024142776395003807900155276176975680877869315447476100159897724698523861992943492157033862871936246961830357697329720865296214029710775971531067123069592880995784788874405316403399737613680429809492483893274783177112390681495591145338936690037115711219210407379290084832738934419631393772349541601289727006064623456439954274049022659998392168115830217675727981205238674178858732796685874711891888778085676290453503040159316089696201449859921962199918389768427790323018548016335223371177182077648634676316031815901695408050243484659118388464308552940774213910322401467047411299305393274416359272445162246966867475489868945483246743364189518303594290647536228158850942720929275254490325627730565470362457800097306814493407453139297742657543282921193835235462018167011724036736251785840418744146195425833661869606213319821066765293321393928735995574371736643658564528716648212073271733070227525826636118692134511626095810791417227640539008623156277285489730105638747415431213845281164272903765989630667230972043468540608833522682869254214517387237644041129490290022306177828986874010913661198933710410444651446219127526893301332779523141585206149724391038408186204104823819991274941923000077092815728535970125837683122846378374165968361051278308682368462780881707262684322727351205840444775036984425714500594166084908077169284302442112788856900459509397370461891848932174451661043176739146133145796551621988186080695825167214982194709314753158922124807652807751095054271524737051965830797040387190892424904678353572921901564169404688558953561461699225951710029555686174959220204940638492268718182000155315058100032770789642209926054149656461966132234027479347379423484200364928578745335698954375274118416811105747545989855262477735712250157730989374336312204002914376793288021959120759182944540819232621730144915638825876500909949931046156017719464412064075902709237720460705955304834566726939035536493305871838920489071148699911413791966890004532713529742241116231782448511033721801350699739906368917405904937427389614046976714066843061848488379091720303365298348249967698704129124476841515383987238283246339619513358784132476089897584746014698468716322446809819039444592031527712128372431581874127610207990399008345046587690003084239896096294059820936731691527482260311722370587258397527533165517468734214554153092940793398058793028128836402141888692928577329723245147427457996837217317068415936611301713003996669163154445745689259082292096207574077101071819023700419505460496278765925973493930290626503960867953484104591087722596397794118705985025575770094520457058001736722025589657313732398670012656689145096407883846573348412901525314469520512223906762287895822920393970830863449074371018569369315122768635143434376716722288123888297715960440482374292402188602399016712383263473647186988757970939702841950619581029921825487404027224682798897781894125474897783841306222804997704207404824852982272138592633173461261797496009914326905360005817815426955967149498366073923504409997197540702354451647291719658615637441037018692586788916935973944570097860171035654724559301582584088168974631728006297856614363198908957719802219302689141208050584384479786943511446688033376047448580520651452216768273307034627018657929251007445446030955758377321944715083995945674443672358386621969209426835607244029926632877643353486245645370478827021587828797768916357372285609854146185598971107004756862807426625818906085314933024723590755494617149878551180775861318329794176299308379361056036211139739507889006246873430356948901784234182144708318553118911116530019164043719691501719960872164616554934797354915762492413440946215410476897267853626693175721375655688137673729728432369768706168198967580313360579742007889421645368684693419498535154291057707078148446598698556804898482195479508201657890030623386690374275195286796098755310444874252566589117577278819040516026422685383621167751927444817040684412770769211376555860397711484461856017795721939266543255769134150212085742012915737121896516353811871508067615652283641196204925851070603995889505081630165133607402660571665897818078165433476905175413553849450459934951047075117810921728082089966286021806399401247986122952077541198586066958628161039556227890416904726930390206448015480065731018506987254475853461718530390801916942984040604419500587718672681364671596430632321073438501562086173546060561460252720780230655396414430648112630989448907333569705412635915598046504412622531573591103816057613761521835482855672545867601255190991024826051748835082617835874454444367957047456897934600078958596964358364906357106498224677614732446324151561716685449058772951479129295647982024154449359194811343167473503753390371898589252514510629610525325780467273986454691534717564486573874489264798202293247580178105697726497215389761511805349836514521824934610029790703676405067016324572735349694944298418284826160591552914033398004290536325148389799860471559989847792254867872109432371946508304919132939989683329528346069108722508944968603791502264564225690521352720119594025349824453136632702918534318372074116681597745499615466730843183110845612404981996104258918251515406374860085850176776629072162388453985859230944108926306558064350138503162675856014273429225977414228805703742793991164185700841106647128929079707824086527954216170731968572257972552760178634080631581439717245999546036554157783110537900121681636405423331513312642587351753485632936138272889232676498716722640448694322494682043379279818526226352182550714795974178787079327273683072388078119555570355784889792293293101862156318660366915904443223929460105191984296432989469597713746495325765946368407089555486627510918611916388246304108857292598320395969510841468077739416425431016418315434109500929529468553747547549357104077976484408022988668501769885044259134707284827908801412017037864793550068172248364832562326938047309951375206337693666292557161984911181319612551030184984265350472463263125585156506863775059290196030147344928215603306161807802406653620319106860536122062774548667096917257428632741485046167227946578935174212834033334363951890086794477903265319150988641636201214864408789182802578390530789885701738904109597808259788791379501413035469180262098645753086389440176560698191809478951537010813184219376345456129929389599075128550586607832513667689802939556447887231185889076248106705931596714768802772510626253356661395123403199828431816279501027537907368737003937018901135561489883569468102815428366530123920438987143152339719810041450110501571212450301660007457176830384100701953989760706679793016876850474920020558700659400423268781864121890375489175410788723795387902599585170961048446233709180983351525067683520822280736772225189360286142905275897976740358192776117856009735120011597117710295563588118426034598504741933797416546927717513696700158107592991282546544418483251274259038845740912894599299169297475105135175557458405838013974083884555596714058086507837141605834820404215064393836800679294638942424449578369154058550251871907002684367934219287661890284819918623386944215094987466905607263444149285547907836291709551708576256715913725809394125107166250321707992602430963596689319123196854421571865887546068576713757440753902598965593811380260523979096337670461887038574570574323788505841724935287800475715049397621327774912952947872978524829652482344957947913902678257070358003181949254572170370750569795096879703330474467266237740723266203206439287409443786968236880539392190449245705883215120214474251088572265777343145383072267536201643249425785863717359355054466565946482824782435528557120436099258114971741427454518981666837231940389969079869288393687984706287963093973105184509746377681142893669856506149202338123191643035428666843097912395765929794510036913643159653927614796018271662426243517135834454321495003354100063705905663560849758171177362044589118434150042839082184977185425897423940996379701557646916581891572243299074582437882605152574756640111612044930307205806924815863826558475554075175520210437146600975420406031395477971816220651497854820424029217614434466521374526318767971904291001208830625769063578747126145905299980948352229155770873423033098532700134474695979509275600331222101879920616032160838015601617627723605037755946845536305627804454550269889213930649434964920450886016061756557116671772431856979693310172675284966091896421221724444915578561428314425467450908975800729332446050175265585299948179440017348418783547581189789900404477850620790082904468951073726670879035197300858948316590877661867239985587191729201992961023074066667594640770689878380519587079654600048586033028985926811836557371090387497399570914911205348074582870102505060189837261961582463430711265274814337960673148272852503920852653440283043283856961171761698546551365607469198420694077413880382846773757462674281271646996995684758013832916367357447776156509060825963111703339092312191210382388847773926497694444849203462042552450313833747332276178086462912944495387648348663419542076686083881195673637555119019305414301829287161557538323374025836217407376478991986480998553767948485977233394877947289291419804654381660040993529240656920705469054349205778240243350515072500049646576447075575262212431722813402131225632516948108552784048984178283976937124909566155947846326126688218903451057045471720535752923050225499077734115020519350633376969592435515647214841651779138008145715848468722480069487269762089045021181377099397806227963255457355716628798924788392489259187349673554609251785522147770787783132285135114450089278716236047094365700129627674108079213913581104591547723440396913895492697788382418716999390112788020050062410532302684183347634637411310623046265676895017633243699880919887388855805979171533216328728760274511187741290666561142283192636530005204417220113403765841991055068362929392441467010812411166306847382742088549270781117346566929685480938201445957881900110983973398682147254534050601230734290998664551260956737935210954080679504152270434215121020425033601392787138225984346814700655893685792904175828748802332052665548903057386296969721109691189595012002275127113336672195851097513171724027268988292725252552619230890275361150656965284339225614589728055247273598322251425180044852485812766986431746145773573819656810746890842162183047183772754113233667793296681358004251971547211169291925077340765247337107316763729962528608253957380137655432620847590132525664897370605974126809185901183127648458637723937656496169149420013732947580845659204041484156674047521386475953030993526177352230238076789002940889066412759113613369643037784434499115558138126364035638657735365746016706863934994192018263451437657764421884089304606571571905482354250537357153930278410177700582244012555321399996084652234130991901498307078903075385228547902840069740395502092299649123691644887008329651197383202231426124594869242565411484156457712731751756361665572540630861671542026675301970932596514285010215484498696120907205188591489775806200365804629623372362529052953856450329893413215392196480807867704751330145586919982966458202563102436282659070399227244019289033172640752227199529926393612956841049244601527275814345646612424554036915160100895614256012780599777400044361395833241750996787986553842322718649484630987597994213758302192971266802225847016020446599045029657066950155662800513723656699647049192852947096830151711199874753665328681512825694631096209488962830879180686405308815567477438749758873529285353014642882637217756787944250992944295323924020931342391935704158639198320868476202960144779563060827557978946843530921682094397082092825588733733060677163193524591215264506766909758738070479078251765288368007859521363293507705860966999246171316527023650809046636172510491981260491999515451717490986816291775299750355198040678191238849927013991948516171967724268700337442429027326725390779900817446400697934541873061721801956600110817319696492639040408120345207532031701307262655388242172219437887857737108091205665102937470590756649867153529439464389090741186614401013672390107775531615431845890196487320783547960651710057778332648005343021795001579069927019893655428126104643739607436717364606030740093399106043012293167949920866240774292696624763732391388657344031193565990845839807487375731451872064420409542150852422660557203816358000343285131445234866193515113105938344665615882800817265668571105668023269800150423664972359674973200881142996977186246678151574623085868739410484285651020160826223134148891383817124268635564189331926812033830949500472785804785571051875096211387293434162999122013221799885111850714988157999632415123197409876116027958644060364462205126175532105070082369382998602811423977972395245349594387755790408255608342968399354681634033102322310625370296309842511216557535432186670472183078339500423039907859681622074945511405883580536983390332713474035997110859603518615328486299340656443673120829221014221781504159339017261282322477491085368039042248929278651299984035193385765832009682283149569804032109421757229194572617474259371167221118785093395858195044860545004905957818110035830418750093445407884615146831265213518749585049792073432654535668228015514204838330809339168667983794557523922206039442675594397608915691459658231068277024025758629043558203798545377217878698000589432467722665329848177511361226507278628517103068922450154761762935083070063831984697552671204421491385111808595190501220975131276523228348603397315262841222562656793327653022982001015748236323517464152753740388235542201592057898486790152795751707505514608365801021077635806217202827006531377483204491799621389390282379052791657125449001999104162816504821245011552230206494001603336824329678782165770514777647689449691694244007858363290787037535058390604352223554291082954198161468806524815640711896674885795908253996868933900115033224423443722409920037052610887423297595602869648786713416516674695676826446136427319878656389633845425557505363945910419902071345169931930830618387110026795070398859834842405655036505577797360502558280311698111815332158195857275018562023304122794417760112019228878829796098527440245034484410793303167737466230590557002780719105963564696704033950574931997122049690547952229955909171279624262785666571352276530153167562766225190511787872250442883082496428186094773241159294169989019115067757619999310387302311938928337001218591697559440905334171690929738119830436719144711216558649875650794865810868070772516298700143070217418955110644563841505277996495876537953073294211020325104625923225177594241448979471860349110600274903214761970461263735887083231237498443074532256992711948399318643566601896203942452413059881194664036480105629280049739196973737889705139838106874768448228843443556306482871368617951261107679813684407800750515333110943167709097221527422483535891861592233644665474691644176544257866144735902410890873523176301172394613063877353497676478896338718252973737444001605994279482816400217516844291758421310882981811364465065927142427555999088597653614283299334176861190303016279860649557533499909723407123324329513043590427071316845211997803825380042532544198557429361264858806399693928435702217750445370165199021397341192581085052577758056123935784836004416633244591628942415872698615842947067828521832526573345983993938753766518788062066744934415345873754884477728276743417118695705816871517015212635791948792889380117586053803254423972069046206328513824675364251257086118841843920962213506031085997147454624243776375978519658297088230756579033769114062943555534182794018268079792929624328486073664621620749887977251403265155939077431697441118651257973818820008877914396773346629707417079463251906926219340401944385541176210504821078835159187312275789186313307734406841768834027843024361519809600404273067750566434758905434032558164721306790689009727692714853278376845177161043665819331611564014955497345920533289798872725913442209777288809057733787220601926387507253445014340417982124679433373003705338329435450121147233189997288455266730240670130345562375616795751638967348757996791296939895380668906232439423800151523129223396035800096946371889715281681082500696078534958064677188107888583199299010325214539534394858381740518972679871112715232468295287911102174193853984825267687090438943241878350541550851685015470997760651454492099949142719903779424815093509933670476832458543477044643511968133579551018126292205381493449649207197983676681841375466521197783109966322576267047141415662252336778620728378039308344777491367731479747147343692152335930904231985005087565592549850307444446319306699734466301713198188412827614551869668165221080910830047552678714981574528547076234619676603368720970745175478152329562828092530194182701981207769046467585349872258152827301797151856074356336458708513736174672894341841890163870356028505591564917569510631388634178491632192462578191620094347062861364842825267062619239928111435181059027755283175688643770898217516657686885497337806858877660669809526399954459794526651813732080866038327837091422269916935635977020655514684775037798762119127911024602565245732106562691766766252596119816422605815187376457062916171573733703800693416214028248471044642649391517071835151102981056402304690278113747023138889786394112797496229482517140818557074138412675421129183648153188735669119583850570084335213479538715817298229321259141249316184679040296841411668962625679992792109630511241092176087263937476739715202854647539597965800486568665678699501712600376495289789973077665145399093755392049937104544087275220739634359519274204110867432720909701801526523426644038966168829537173703436221938949451108195696524709759964013457656706073328718827525891398068164792709760464206965359941012666187854869948246914578505105477476291987771593896480900609441654776857916001015382801313945574650170923142298296698975224059554423678038087032016608749388068930565291194772649050977204790499269771337821479036139904984862487059611099472053777281187676336111779014734505468114985124357806639541169791100043277815166684591015229503168721941039032792430540645498999779649993679246717360756077877024516241451025696160051221064148305409767357812443545311037697154421395441782271376319677945374664071285411703367085962714423224521424242724728805360450714944954638788992752418981821816768211966266493495392667059077208112166823750233168424496195627256307739811422701487446962296450628822062022115181889769820880140658159461055984670179490777326712480614411266121908436612733289168887550310720831873457466308636278423093818332897193971420287339791297562353854835056315740063375520671870151596888929091391334197255537853193788705749086191376540572437179145621772315765244749198890679507171581710524087483089512847432258955449843031761854194456307045742645000411704036499767816114592154218685770898539579230002397365164910707612046924263451533308978716752243652157981275299110800554224418800656141938006830323020194438620066944465232246350376091472025281766630572388503183265237974712622213176653294159199918806038430957154365790816742151231029121557733255402513133550831011233608428317078923418710493944016635528628775600385804958410399759611613225393653106813326080112355551850018684810251204634384922273198288861669880653455686692747015195586758935502673934775233053683887338852493661000979757040021718144700233471087057058558179160580125024972035147447914034349469690799471009129538875578490772302121298326767156549957768946201205780044768198408378162374711793161069649175144048842965227251916513465715153295507339024527614880657410220409573055945123359597761924627799101981868418070829104972496272374324895891413344815662158459818753794559901365459345837839687568295735059463685944255728713258634889038540485851753237618829831092357199343592180509362189260163306385409765604726650552007595822063635614992047561471375787996839016048375228235538782075878228834269045085914342340415421492695528996948095651545178188700177427482707405510390082413772132437318618928865375788401921652278965717046027267780652511513609306751892257996700481590109800417447025799785034102875394297769694056901461428966463328591327838516440208277626713476184747259796413025624858992581447916288739690576712630723480904803978100257777172175817015211038957879170596770960264697163647086636065317015268307179125765464729919283981738039107863207656240342311399452535082511229110869295127715511760471381196813509138880161482180768464585162139544897001549573978879763104940694430566175931587860482738202918145470333315260477622527450484172727159713198758725587009393409042001703741085462353608588754742556163440816547943501408753018127675567659089166585876771672602469680680416159148503637077715520476407320134199172187327655004848797130487835292602420831393097368599055955710768512581406811384338524251525724348121496741656924990808136295984440539891033894792843935270426742700005451452421963607835648703760729224952611079226163931661952335125299992972067122761670449943162979718663930717482618320369731477825748568291518356635690029182478678305804072162445662442526965366677765132600850270757253883651687574942213840632521628791392325947552558136011348556653158332684188738021378776110700946095851192504110429751485841143905417186408314498476952834956379008966248528457882555993021845877930971191417462533529529698000400341657181163193458792559569909478334340588157618892559497596226977687651881693054358259788475548464314600723584246680309852674968437752648096618352718465420216793069367634436982359771305292256506615434645779055087392644499975234861451524166183932652156633705598735880237260355085861198196699646878717781381787371566832048336038283124080267951666326622971055239861632235669283662637093992464912470190483009620718029007116504639558223908695164096880633604922891958742569751545683124581740722737558068784553482716744374109233769552653006432632251411470874902621365434441365361019291636322432823679047508244190830268348394827065120966601716526124882559165632526844383156901057818364847018528005402630150333387205169853287249728616839457235334220298254883149172623595709861033479142856924051107724266939900023442033515897442411721041778103579422995038951638317225695580438502145385452003112753694747447679239607464726363036186190821354306800738841842597433468196460336686744014371302861310363705125480863000305518757059021287502328675168241533932984713690707578156132740341938759014970798191512451814637364366448705417423814526530549984441297459722434134365473145611908029568915727204388160026015218692605537692974038122689653106356763581759310848837547314778063985783638960691677956857623789977537421528022079351015418969977715677984579089803357212630675980189982820942841599552382133486361696052502119093349186609218105797341360051536072743663685462264828238706247901462328591231478659840217621472417068089434799598591092257888436199136459008538118345135743080106505631569643492220976292312202172996088710308839153925493297810886334422045807848583149141996732165969657897547423861036113607784443652087629179554631934600817512789829247299281605967463835668330934249463317924714934262464814344967545272013601924003231871702603909251414609065031224089182379264023992594311239839755651472472276740425775146577793004225652771139839258944246602361388230091498380625977698597276247761649027097851765703520783154945956390660628008136151122147003924370385352019870132267175166000739284932560988818858210512605996945736219374755655035902499812828961999565797611100162848763543887860863220213765671815213798890137985733243687378082157947192494817751958962403230022728614026123280402046102428826436357553117573960257007243050862440391086563348565399182529097207991845829734148109104288076280530251594613877014787562150719359177030497193482887519092445566206113089031054923030682085537270937341414517726781517445462417462311116911122776699958318150877041684096937902936999106763222581512086117136853419162063410862391484758933352101295112091080590937552601371392574786568146800036073782873621212161895994011200746703399763092466730581893217739238731870923677721816986085671992464210897273491371286073315787071779386394716136413474314650416534443603415662248560139148927979437375128486334897649313870126673215302718892128160017808963566235048624758632137342779147100289056998684750207839513927583552163970096016599924340190032314438610255186046426171024118138943826780354461585411258308055444767634188940091826045644657231228109796554807027959396475595907806684482670044635223263789188380486665347031922068355539745959757758143485709537993599523802233313685008500603739878997329357109587691498451616123105218364902488406414832318269174115884639210774735384514032001632708089792849249772297983113867125209144194641600987121670262564547693814281653375878627139275038424694588899108994630732384137880072386406585603293982207156060274896049930812386720104462289727823072648601706568311264763082301818270765801228362316170352927013541556077376664804446129143774518150668705795707982808785591891064196843536247198354939195022286715017143764467606200972345200610528317991316938750078557975746253857952983307476464767410874394902260679269696511537196647473746880366130104516387514349431113450219016821725387895881327333648782646774960719619631034101470913783851387565277144611499317778856927534312275831038884238942302077464174676859063268499425399404245956854558230454168581007059569977173386681046491453765840737821599776921383754778169412515797390974189128329212273061095842579155698102031753823984198889738751930125631167691285194356961671833286222360340019693888357368048964224264484741658891045216266807464903974402472778322010492551106919158668041849647561825191636948438374132675476347368985121146269072440496239866515311124776632205285046882578268235589562480689220503977613147110048402689548857233649009693690842040993307233359686487740063265920089091328861911558974394255595717599978741702673824826369956492762403730563329091042873918539776733445239496547594086272879826112960560749297053052868214920181921941100965763025154965508640467236246045670179935906789462889160668628879594059264988462906341721258237615062288096683952475148824468575900805316762544988657535935636431044634646864300436771329707208730301086909201620497103766889763245416020261027559737882365355266204558517737116946343515602941331869338684403989156126067586672224347718700903381916888328295519774378324105234119228655176803656211551096938554813009866120684211571986825670881322751536361213420522715207646690227921495472588793809924118559741418131976849613378337170981729847634227334208566637773154634525575530268877604499258237347463522230017943564374983388699727628804442846101970557390190980345956227205006375113475843739162268503587239678960103576327141644145667142919302515328245218780682873506304778848504653875949116296256222720272639565854774154120014748892024680155351950318642126167555477817981193378369542600238935706466681702478016012802322507607533555873148102190340334025163239986392312338948992673727370737364086843989132837647046681730220540384958779377713621631876428573997158718765587992321996836670606761789818466084102907986297225627125538138903998365540150619943553262711216117795840727049195595794333442461212287504422270984356972351043915831648084498827021351509943250692729683322541352570708095258233222168435516710609541868407428643826153119091742809351155260614489675760811775415159431992329194798149851961107416171649730710173226800224188613598489094084238000604751491261828688904658034179098117667350992943183325954581323907013489418261383829898784550183381207759938668048171857793068295461320115860091531856875379879492006164333807265406365789125255468068759680352702138597207337164855225744862076108679896224207731939291560227439208496300480765297900488961741539477272760097491058283318990732966369672949021497500283419236485121582800314722674053435959484378200313169023613152017172061388953557532540926349599256527336799010874798353141579714088524431130930834518643466483674262818442813598673662365967220041803208776841069717439127954508778854592874639303901852051940534119580752777108673571536518608379875102463435856975913542678927553004142564379854887315445984812396796422632226519538202652513574720891808494344954189429209189979819022633235378995785208264012651502542551144392119177596840597137720667234001435117687582659310250457494256286613860199027577788726837127052806321274992226807714789445260665009184857804618381898731393236757132383430719396689308541907430849380921243284316202647271006062347437751346723117273546831876740769256435058567778393442281183036256130310963756930882981098239754563414899757369387661166317715614226417578494879594032397283610486383748791968610726560949509702466961328097427683089513560077290855651233968168688101268772496831252615867305199008502143852457757862664012142971008240388981801368091216108438638812828946990740653608467660145880008548870867913805805760919334863449846555049969001196960443275989761366803232780098804427006569799770083678046011459083171091517733197225869936032849861497007737233799187270660679181960820921617255345000466967253855754225525555080949291584832638198945953165731780869085072178852595615432823858791756142985409694854879543223979057065025309243252191199539840678169744190696437548998949041543939612364344991540336399004197483922289198223576469706914153848403762923682833631021841745836328055748203368227323047611757889328235119437647625334023011136111342788372665239029294179861420119984746782826735898231209129545311053006499461409253173556792224541506492567986636688736848802624539885864930808661103636863017679881788225108997644826794953794872272697120145393045844258783514765247057253269938578694682602423913946813009760392275789601033612663997977994361274070216085710182130688894938932128603266485383272214208082062817343766392792427343073007522686633607004395138946626011075547657322982450666913421510294925202505003876814240739439951941225757869279225195129270891869850058559938841749114173545901931001200373331245579429242235869161522895702650263287516209486833863275061525361701906311144998168750780380850978983456702332909645553995369854249157413469138294121820803548561092225548803842426953705572926064230936811386134342572436128883437812523049887146250308914827548844493126870233911340859829323688195412573736466128523384204398741813983626947370424450781471929046623104417602600380583456392141908604897450336794655779567606829786042105708280840560430914665212433098484677283569733609791183859993199588238187076280411732592968231703543476493798120507776818014198175867728984749133939609667765003536717663679320197227352957988947504141222428665491687450256408232584426699676051976450659513591022405951117602379153073943090081369269783157108261330211025798228721238094396121543174930951614851342983699145757385212584595197989752426423136084072901477611060654745824011001132541188901245772334398605422424488694251964156250266893510965193669237265964546267265054700019943885959267149881333696281802066291430837205323834014203840371456272537221565502694617816874899869414810126224831924120609285374563218607909377965267208186919450551618833542868269359116401083038693719530078738051980031689222155267624757122263108884677264671191553652053490385772933027464804364495235892720526973125062818989928188291749637114291336344395642037295576964384178836102476203059434010158118214196533928200495849255811427181243832114529481850583649627579357334459690438726864731833484507068687199827775816405638558914020279283463884063920584722941246747338464504744058085205718693346297346042752545818135284342721926283936099116892034956476530511936112615104349537510232579559676946385945958427271465670878055515055877363046859663462361593349622146586254081757360659405247200677308648541077453577081597324624345640929262112755714876829018595643595341220226696362826922535625102450015935702073686831708368018793147469136355011038821108384972311657454527839162841262221063509135481849477998586154514256129211043732531129654867892848045174133093924843182384588061393916716564834217057166577894204432883139249942534740857764294359408025336614980137017918317621246694665792231765477255244558729356264612288946645187134080832657830784571027213345018667380121071108485083253002775822192353724429461977121920296530102280622378311979340829859643492888440839181604933282973667591645617420928967952822225115140458683555410529122386433647971083869541462386464648541769973648626719900288973115395180447901538050384726519009201379260085132998213562236868746880020273206034081787771021806794112971772625728677582004458404094124001327945093540946852081172891646621750860689742173027578747563686767465532789224846943665828266972612871749765117243490108663434494807990242366976075793080337613437953424669030524766289769123577204972207589054548492011008560341751756404191898577775186602666746864560169762371620296475058283553207871840954530313902908370336899129203997873595380504081011689033482997173834885094183097631557850582771866064415643483102321843951053046807023884561340405196198020967804875240119630995897209043953590007612647550239797236404455456155200345469393123604406352753829096455707033404880606547279773142911635474132976510593299779807300854079821216901033106213858322853905038667538007432604378881093778492284691907657374953921846264499440278734947020505190213056250984314079714800446380147309607641565471728031704737507807882270839551068163057717904726342787580425914306216503431751393308904610595981044841002027049672963463936577806652464254764898607092634807064748892420838313526068988914699769814076259241024498310676815643845329499814780297959361997220725734878811130321025306139656677961532351311051209365656278313207751113540229661073993502480343974343786036608455796014754504937754709753802111833698439533844711750677451665653059662062687979112019899847479343111171751628297038481183448028103335126255281080499146513004573708248969868431419686358886441659301659927435729341475774049279105006944211514707640770872655770874477156217622230372304712637003684019076196512903944459126867646300904741383871451661488840079361408870693498253185727560115181915442697413232758078736757001235631754122421633020299355680108966022773808504722374807664715126240731002771667212341412426337317364271002149284242406943693214018778795851636386176971295033031573014053630246280057399687150391545306737896776143134706019877076912580312704975851948607217079993806248301477833287704070238768654626089012293830737431725545650164501534109744403187437391075676459913602622318332465894448987659023000006055563399310365939520711808363834000737275716695471809972181013597244883979228549073598524762329095186530147665230985678404376177657946929305078361694413671097747410102764459955348364412618623990662789384429328201659643119552842583386079105929152155632382745004067602200984944871882596953966283800669981420174908255810056077527232862275193400374626184966978964021118590417493184689741159079985062978619490112765134553531287639524611339329565063617467758697770875870558497780112812644350261411995739601972616406324463596518643413232217402636045089235578517447302534486414997527380316310888340938321977006494062765236785642892340982747597687483490752710881475800320021905271603168822271810964085124291729854386420601616193075987115569450674531477766203517189292360173714881045041331501517430190576547101228116738265924337816440924152548939475780076712061632491650893161140663197164496121119013233982904966035973245934600324818750073645322221726731756917309125918414861327145445494739432761692446202443078832928103411568164748347708183932757730499257582681867769780875598972817340409845786302893879856185216634079089500297828880373919927471389332454741681133879892290525333095299882217795501414485624755862367337358551382662979046430027990206381323134331756240512540799537985049753700469609981370835635679822910208941950926871806135761414700028557450658494103710175877404158725078310917404914078486086648263975461116954276983447592964175007023199275227489924473147811768377442246722652965284547330685126978875890575754896504865073409019403516117172025610958385391176150255408005883854947265919985963407333584589577473019382015878696502064397433902875095518683695720538322019878059768749823136755285283120217610892033679221173372514447469043083455353830900162375747778895800276297398511470373960465147632331565524981505352184344818205267683345906479804843725979370819390057400857134983650072839975413018443367791355480899892932238711711352870201315616969251593905318717793487350618680984672384055399913125075541793489298060941007073487649216242583838366309920343446837432955442759202629875197557261503860584930517614896167316518255707752159781425890196592614863142927667928996144020049787911456291640300553825919375314965881483686110303333914384558253836514477611699926400968020939978354942578731258923653068302540634066271719675965485860543731473280410179548384279191859456271359866639546536757333338790020789279955112839146327724637421329536860723102317026510756127367689537325817467382341751169416523395510216118606642798182509731425093527723538981642025025856497781440434978223052225814629738393706197476402918851652658367588256324521955734095762279338285745068181526817884521435856277314725862832682494271569633912371770612862708080565761281466941668882799588523349701027609963992525725000858008398365159844107597987829168778812387681976328385501086504470256213859292678439425617398730508383402954870487811407070219042501263345036058832672957348880920270135591971245951418549444000805267203013964527995590064969327740100888848040567818336591662078257089883632912612374049607090883845556774642572945000091407640540170916631782021162426609575461474654680298108556142936467220472657789127798147093234794071160374675796653315207194456336567269228772837635909340550958244186713669513880679913835834624834509701895461639354941619096442178585365188712479821175497638112057938442597457982235375299782125077109730505044411932902091131921855903831392279738565536227289794917236110289590896778507949059979692070670373485005109171277749674876785240110526594427800804179830813140393718915884065241054840104900893179217701687513311904245319260974825147132054453753022410013535426183444194815745304461161090886847265961330894937585736174330545083571526619538412924071494055548355397424535317576919844714225554996561779377774137856103251637641297834526776494463731129930692199659744684122007548487387667829779509541940976863541038469027686540686134954295053964469548644947453218734628975937884579350781099014111959008337909050051656509502940695254536265547098939163377981041474395125034848669296847534620456065113395428870480185317966960167510052040154270063567987107367873480030017846604486097910522125255051789024729614054742333028152409828557587059388336512147859268351925782319751626334826658492417519570008101007722721571091530290502409309536267997681335752712177111977612486857191881146462633199896902649165244570379049730100357844126298303647017455004161047515103483154236819102017972218655092404115409482582234978322569891284849946115571853273923526480225470404350299893245615740691658647274545332774815882655740210090817145588677863418927626572774637442914303621233293936016690156954393749524460197164661090254515858996576731490506102043044684369676677740061215978735570620908407849628188476128376393596016395556195748275372471669853422625413673684825987499228591337396568037547982109658178260567546630202238927918786044072635104229085665991762953608895773570299689382641440304093815248809239555646953332409869301202979714439413990672685445482297750202784560455972422750165011078078153405165237326154002966117215552233139321221213907244936602840580346549934117885526897507513713883470722297285473726896527706935134505331646800440649538705974198760982081116730337092925532132760182924697835215281445713463367447520910004536789364891777874756829361377676079857593836367895026511936196538952991466576420111579226994647925093458280788316910024151735934259929604929508030651175254442810794330821385343947339401771601519421573764085554130214265575787643425793858245193834814564389413310373868717956187059753916084968104012844124385524423246409249692760342536043810687724789652469688248326244032282258706076377316944741262702833878276677362074035093698058800915375752157975525247729365954465651966413169592938288158767234654890999360502783230206083226089323083382491507096230929901679805901914511954705379643206685686457489843078797006558698733591992588118165993717133125841322825204144346543448714019931477463010378287973789420016415268061427607103973292899324848372300556505058830525964011247345545884030297093959863380185159258028945093864523260506480485119108279316783539093438545912201918556749574673418141244051174351023228550737759212130363703256758686665563435365078116337532052739732441877815866173889861826978465005582295572473562430732711152051520322926280928246609747979591172698133233344712580911669300449388811434399719318828493252007880181138022471970483122362427040514789658619892536719481936846094549451486475440492816972272848749672148194397607294682913285232086031932965618265788310810507340555447466470163857505434312524205399103239907704957733479364166591928097912993614155049328994148554056874577780808695584612180225538617526402734909759054447124624522539870019114628753852037366994537308753680446183395326140666494828387681882240819472806030216950574837505914262016183983776347732097620994680974236645461598118747582574885880414943380642451611473926777658265193551384333814974621219543490230504384115008061527486153022674890361054168546092682803909851374665592446333215101160725309737228244993394911060755345455137624590819306287030232498269272066638753779796942638418209378548733634901978185380415692807523921669600316663044008344512994464587528227882554926459370537488836716905126157104575762633280259224553419774103916529447940939032302862574000254450588910621581597522235348293234801826566293460985925893275663965145259386033929892430747615396299671538352838926161982131969093920861963250512326400058384619642761353955534814229550347617378671196922280392070015468001029307593063877444647673843908734090766132913053752595752032182958797862916722733562566384864172581697981277930786220229374219456227793102189002303662022258797131958574332346255090036485201725183821964712996605548982745466044218504095905323167038255972786378791918185858353860882906307457147298270769492713059390837935852207790600896081830090682248292927365264217232764623886777932899299114514370681258742304535271518438266074662263549811595546718663552397937310004643011522148547171676475502372127314193585168449814389740058962011337766560540393754718922150708618854215028789875744153806275197253294338471263524903498598037127453522990574746111771318567307954152048624224614384829535329260198038872375952737868050688199523140612984653405146957435492999684632404181899789987605162901356521642358835975971239810741836485003539409369794357828630098918636902806865987656334524042499529079276400817409408625826753920678550709072333072489597300623427154229028901971196018820247029978374342984174653000460331607865277681788911656184191337487203753711054745190169573466820002355104596275328938661256487896748013122181735911470685605531159304286565280954391472266210956906666694855274298011059823961605044831055384603422480747018512910852306349130058578988200890499575690843975731664497058620121943308833151063870340418848351985471718836796582447791885614544684981034973308687838046804615013719893034452728812954668276941221413248447084091388682869824246666740013072232435919620738972094430201595540019078116795048818048142000294081526915134295969275450629060579241032639221909642192157903111926761803629381772361703111475421030967443806087815469955325628468424677399804796390459083643946727570364865718620515360902256359734203838247754817844726098366041085359814517681268804153390572118791336855999532646446366147205971996416760287812216261741698442245073377080190316396614116413908328201076582543651316041100915123701690668059374382554897832598998993052525790363043929817349284623640295143747856497643303072250870858094636186292544040197649515846180600348535715040817653983097048764802332935783315805404434894191788035800621670210164801200918077522969944375256271233063739694295410015532515974572970690812986322291187044339578210775067364955559178436279931940075344142374921921246367089405065490505254919374630344354925196255980942111254600207241393522867567707938707955741460720381785391110677295279444448264524004447308445539025862019748971867873852709189550584561232696988528896454688759286007113068353295383399228650769619571162499117237361069606955764187243897547486659644804658002607356840541030985617580482672213676618234602663111500969065116583967825501080850165628702367753790154592317362187738716649425210017912107789533335370937471160548026765915166975694387723785032477367453674613330785245632934547822096540746425997157936546622411034116129428974516815015849136688534697226209469458832961281879505450029444356482214417816999669688272203953678020948578703265223684069258888593167360135171402204447350221490494325440906073633120968170031049490426192146525398886512827853770689259836187043459088093714841193343950987980125344479238526891382272523619233609149769776989066644803638558725456133426853594921846748655153652251871900633116684400386805734532039784390062851086724762400633997536608800345742902656149988103882526131515252390482949667020390666915990825656822331623999208356491662879831851860248925827958116979345719455109459067766947273346688591822833166411247592981167295032351866944742780603447617760114684068481814259553355595635206843194399844823471923424829599911230123146851866710455343910800143013710245119023133623349600543850345912225104938821824660577342394700305279268774186256169314296894040643971020024975723880894390544303373861447367389791203953208997473280222533120936135255416322088983424761671150985590956889184694351485249208046886035789236788899209665855154677493556314208652066999055012972451461508003756246434315047451091315353965764772003781657401603675890108366260534194905505123936198777400813735771368979173039904579344448493313104695016449450605791085880393187051783509916858352676262570318399854295181204450524523247575914449285304514339081182220238990832432693644260711603772304550296447182345807516822888291064748069186953519103480571952922823074567777369354898739208946927044521501246195645044703725033952664172376465841220002835675714299218311791271740511768296467391832666460004480067603119190072397339954536397705698153190867172252901270416785633451863458770648236385360204794068777923798528193879406218918834997089590004728059486450846718782843403288323421291074333849118017434614594217702210773966211290540438057131109321134472502580838623762258408394507873205445184949694166759252921597937744067926095037950970294299631476319728109416086740036854976368372676438634253617674744734753289186212970402250425185539594616849547123981346033213985432396847114273107018088329170388578863437701939963310263381071306957269093033290837979211244999771216220518168532826523306175768226759232319998612823391380449991156981847018956755418032988229538513604306619300580206149715380328836515002853685083725640978004842364320710696320908623672826762861623729681710602018800694700112517903416877391379332297949291732164677784856431187609457135691412930676826675588353458757265019382162257620121707338922836571952185177405728510602653146127660293469312337970426931700730124207368578982481044361233806125910734795970173604850269259912615798590781453427691242769604794545409901602048236080522138554745499002416274272943385992389731581759493374906349638386921182080101621274811960130807563006475858059821560024259258279512820103191395700385834658706968890326325587613233799191059278302305157037903002170090884368669803331448751174397307300144507332479872267835023774225818290557786638083959173827346507298066663051202025797310490751949984532101634059262212987239019571112103760883989480068534298275218513599398612285672457708235585489441210011608276206314304016394658074895369534109770222278782835136046471116643670968177552219066681015106685663833179265163827266828933318946550211887251094127008158146004666818728133713039915385620457110684660902641792212303177022145715941975701146400343001999228095699862565949064620445130296334542749710935251248665285441899836097302967741126306272452913652649159064178532326505280401785887328676249325735131150473322775707957344783317060446415093657077137230673918215365250805350780481221857348589464871853297566985769747599159345803111393128209833517827710979448353757201261964263164338591322350681366758709259591920164221925620763192959382996241344988734519585669639499089208094296393698161877658256613733123479377236291434204918411587982638227677751799470390493296074257458898317095934864985815503496418007898629486437416106780882433935920458914692771709076997878092471070551725812233110360170250331003733111953611734895021325319659513495861901535415518635555859764379854514094296706253086157497981220689069839165016931531772794640221313915433574375153638558235810578138795736072387292566098749650513517868159093399393145615475380679647879933198077033489226952760355860887385905747754415541197490733046482816689619256012091336073633185187052007743490380069867198125544529172578437185434896302494898475427703634925914912209718180838251593811557620568500230399328761884988992938048193941857680044639337048542482210853313382423292200629458669811891837545687961706937022702709766302258234218188024360161783153059759083904303262736550932946215756752639622224894745927768325510485573704213632849186910755174732797055119501475866394166291318708565032183937650543502766673545822619390432428165953133700761785908929268982533427127712111670333574491976163342243553677670758987005762570528011679668697814943452433498233467188648448742206573754040233011622700188200792878460911655198611716593013286867291512285597965820191474121325816120498733936482833128744922361421661911451980081594606227390436770650470059425423597265189074437229040744475389565073451452400804201402623066448658933084422233060773381009345371372266931107067209549658435483078614534034073275374060514542426578507894647222672116449536926458149582254299292510414905642455700425960602438956674675675070644153628747993619258378748625954423122055194127435952374370323680940949765717313149549551503964475362257481920573601568440421478852416413508767373692071407300830710106176540304543498489176821573279805240522053116412901542644035127324621448987142261385733460594830593921005158306069449718662195760429659091738645264808988909053776755522624023562090459133843104899086093901733193376702295712497552972995768693360146368702916448888211458998813322060775604976232528774227777846467413020663502924770791184704591551392494418908108335768116194964997076190513508303933750659996975166479774548103759099661390960760719114037735804461461384904517087022335546658982592447062716072581093290149338842459339091897634048809242284632725616793478636072814564182600321184691777630039461468220483543315579604334399930417442978311781342382289670675291271437900664974620710359600425811549697427776633250968018413332765906776109629818614440257449008425254072692624448244496199055176357218185662341839204826214291400379149490174213203865892917526551410754599571683747840183391459723931418862554103198718940642522351322387246231424797604984288087245540071686080251788995727371280417382870288002021732745718045652743113376531637732962229504933502677572512345556140586107602248133103773967277514046001518923444958885512890216915715526965731134924724979020702208276015714361574889437854885343679036504867308949833159457146443931068148936947394224141671904035319592390099428478307765856788913606700082800909443975272385844905814500076170992871878561755230512989121441261352298908404406143208289362513470607579153414542299294573489451849034097745919954578524238113519286404014963888409602331285753506757915496602909874487180321830478952897806986529145974014062834783424290480083920394994774108294255186556857634260925968418415065548135561482920501070887992828644013228063602871636605386843974276278847874036851144016130858394899363901145353902272224904999605628788427183811684650710212642766553753583740630893734234290960709894246638044636352140876095075554758407714401215762728600415101307234261384302864438712399776260714556614189767483009175783762554591632459881905171277207214116262115165791093638409636160176782045644971204190367422784531757248227686246148536963150819921242633555811615630907023441798724336709649234898683739905984000041780115001302950582384679262631219770281185351509687662851834279442887350341328045652049391457534948104765029565057726780119470850026970709244139046027364165950116121577052993805806655607976876633524719410373102173953389126893975288436873332458023647412273368817112139166736600281289702357381202335325510143740901085569352522329362934124154775645045309864254671363804089527770780130708121731714141123308872343819877005524157499020554979424496945568377809436334690582579764721821805710851215744281510384367060332171016910385030021841470205029808449944555718295733489611706934186406104504611060996873865431547562415494364510898400606738303721053968052374515793072360720177280951734395405917197033967370346802003821191872861869578133645847683902417742403599935199606279269958280349598067820402410640235338012104667315229234676522216392588430368147143562511117014180206171900567214915639816617308489696258051487452361978035168241765128920943454334729114813052592738126502456964909686103465852889549140500385393979790415699753396210018915985425981651216991388152632160900232124028755747211365881333183824242962369792007288817940611677133542026235340051046711520538685509232146990423133290895391204158340728468807455395907887480925907567861449006406597778189879116742484360061514099913568663127966437516825722199086326204615884700281749807534455039158859766123635423580531961558519038950795891708469916060160639271771576521723750365433098832943015591414217831422794100493947272324117761896094399521250174047051597593518911367060365712307358893136090585989152144761497972213037633266793284224215974225696193290645954200607427646160891578322995466482763627178087354296991137645091140457256932054289210031401703478858587435477003923807846443494793605037092673366428179057439905436912736653344178447989440607191475469936099275837241535175613023916415581698695487423364502962417311527798449373854737257118459118122068691608458310359465785885369731538799713224553122272280170754380207161394171404944223411221043891289063260166416874296432932051476313464864386821367469259073506519934196852568783383160006230027003911225798785823301177294444645863155236568257535376256544601993893175635247058739813744953585754423614970687497783372981060484678347512074506587929075349184934141592251326504303346939554085211592763627609416242251571421736335153656257417065376101318711969413026496266576470195056484242243426673017334681271586301055550302043219164449676097183199244893624665252879885865720832869416549137890436912139263911262827344576896673437955593926275405269768825166662200012898979110212686050439211533760722557407583776533425854217863223086376003020756545861766597075103456850604998596428260520520423724247806799841952033361727888310824016729300606274429220724487318995953863177699426665263309439407269596914686553534766303779628422564216244008451939524700372106207638778266787497721853131956736769402049360947845517497223770973066342508713942700340212942678891148342571325541146680983285014135059225527567494560796689100205768320289773964122392382334330714327075189196237313839199785265335049697860243788571129144403242843051726873984194508905619904316860624689123059743755780296651290614974526189003888257084692849796653661662109978524681497261372852971159426918706636573110549339148208301941338407287728146823890169774271817240753663668860026129810385320021041506715265706530000134672882006900451767265905639300826455792886282237871146667905986950536353576165807526295050469168300929956133981189761793597196377488339402151139708602831927027166834412244322261332005225618319662886896836910261937794072366160845581662689377383299542777596289151455333041288868439101943473039730172492874981611356715593711013107189493001932447435189708303771890562443331201655796719064721392315318852612637232273805891308538559382355684392799798797768769315202908851666383017063527330250222385226370245246202577660612119029360386925506151690698817182312674904753711227482410457263877773354299566290389327172234568339287317002195235299471071735176413967448902201959463334966168853145763883238444227272832321138210506443126272250569715542293128604340370047749130256588070030348658808217727635084160031677084705984364570174799187230015140642646551464081288549629563823288963870452688892342259316049933523857853608645780164926379895705309247952757312784519551594355608311981416984710163804075672274254483301116045130718766874804142085179318840896419987103182220625803996202971464192493999410095400936890833513634205506937322719072694709399367404108739878520543621484694441646140965783305981189571636684347371851526432845532641583996227897891086165968455667228099533999730871700532762999244347899653062159644391829170292301240916068162749761513208255437497872076162281274362784441044279780685825294661876001495383527800524543437137252386611057118971400461772973439665271964329597243295700853174141845548174463781776059959063072826566781733133425441933141854505271655185030553328429391158645261815102649862620656248928457107603616786984605244239478414796927549330755743484966569691690056752649430376064187544700083845213678800276029736631986651229683424962257545590271061415388387095600004974511881081147656477961535040410215856241521789621330915999840542855650749585029626377222214143708349445376433478789511293191422096302889730487763844478877091124175109551332088686479108491241322984722648000727550664665322179892750416348653153658007528023719283972049470081596704190474421929192718492313895407105713842033146066651376880578144801362986853951724586889895711325021094934824657157150782947387993348628930204730562632529312905648441762002534377135494003466437977841143555528657974982589606283990621394761454675334599701404224889617885437605964806400583431420424772653122644138178115155460099172248861212687267094378653697508467718879875122972892419689002545753272568196566993606080363739448382842826710550887521847732372610580447021554732838010307410116686081142067839562650811913801835986123635367038632718950890971999042999935793233343212852488105158879939380389298979757604310710934679696134052111599866133247866069191172285722463287815864306528134505191107817522902798927319434044913938711383351675512723566870602220144132083952000722519412157213983746388775575328592193444722507499808653269844729277469738219254014285251948884511586504247288018496067910093452012293551275838994863877225906295569433163745428047965790797578984671282493165416488856485187666726189446784090784638254437017655695339201751322781204180390265106143525933965257034151090990689878334225756986076956135339454690106576395144362923110771578082558029591218060447596518483683547938032256133789879436548373872482043687089533055284918821606848822865879230753554873195865556226939571026016312722545259148108660686093525219327747825911556845442851382324014772554542046999479766817189465911728837131329423868904512318388481787712547842013159891686478672582971534938010890899599153845910115151286859044017260905950327185121389936425265964039871283840092056701020248690738941384370136756962927951901884665969298056925341867923120030762305234935112674466486889038119288323370016328295427983589388679347199430898177206616127821121117134104685886307441685020722888379824133169409128666350850052718792199760362830046298709771468890429842451166818822400174844669370193948209846985685024893851914996854341633368522195600783682715087382262623551820204391125517618150724604420812944011145444393702715741145290915801326330464874206877978789104063053305283952865070373986554065042225710435547935622567036011915219822295231737877645583582858366642596732550072679525645155504177980118061883354232647588043580024825131941292296044832617208794699588573002030532887996713152210463601905468980381996932386761632890021440359842324038948890221803309850391968783837049419992264762537624254741801757280902892428037840813785739103871315229113540338915147332116241887160328350572787100884572135558025130177871904402438191075382474629875158808600386730378340885796610102484350229860036553903215629651383144551709104185556856174679832269001891366246782276145982038631193705656551280301272594989738336079797447273057308826580211354884762294302700281005336372214611924961034760170566904310548240661811937721302650848076595076937045796714177140111398833232725137737075335584650436826751432929870733900265571783472959881351780266364820413089175597042307772125931030054301636498923965326628497255865954804877831509649642474997119579832827444052903987049335357938837279439268230574302100680763168066787473756771366756019800409672827767252805266016805319167794386199572391230151007341586167609011255532291114706194258878628629508076485624618413195603421247741948877264295101561957393346857232809076968745291622353216163063122254973990275926073246483290509750408143759244447758629623755008494511046847079420984155716930068273540051147885022812599468858322510941970250484217394114296330832708888888960655442144630225661032553223869934531010070162519604460518904216634567228907350564011146528143005165497782014842758384196004197910585272932893219033858395813685284124827163819144800257673730373271429621727422765364822094636292002889818591211111948683883100428412936482383655793378707556098818830356406472788135954710982348566197825648269039738138797350295174362437867699699278939205868505528315560228014612331605847478621002417571041536023209664595629729782968821042342972007603196475059839243184546285612844494128769767007625617117368490494562036683297630703648387367998524617674299479394250243555174681384402616130747472610220916179477483219794431719881856573600329252557396231136337229360594594973229296873034668699789435479351370000115345014960233164766478758972207361523054216987570313150592517664075383070331723691694424548445469559147790107675104723072243594238513525146714279683890816090250885041890681175099150181965263764753360376872085544977240100765968262950725358915580778072607409238567425763746865269674663360171033917382236080437322123255590844913645854838153874976500000327639432218587509518632016548831704298648588906350833085150573613549033380190192175863015106397290412533780177294163249751114639005971877052511977669389636379346050632696954363108445153864774481018893914954076269470162679073657693057888444402344121430544930360312285971750435298123297607080667974005808683284390774896842129699182017597226272187031936238213463296779333485665960076827275878675707354376091429664917813643061024692321190168030008518013065735985890251583248212265109992664416721252603559645495376912680562393378840828977377302961609403954464171241709483681752494009113225341835987499204976267386380608359909289354581643715714896584585198289403949320647399692945886224936316500194140848229791823405515587459189703311270917894220853544256953661830382268342516955703200020793258272170381169338276118715900160421720705616822328762282730550233983496293149588811200370694797106146771597449120811892816431468631048937916781402429011812018783976690769519987207013457243195911735975708167272628431313414508258787389991159397668061168453169120717417023676288419383866649047108995616528955000161827878736410730856794683343359933308200528334219404773852207981813045291855316228258874569172494279878763571219849264408751869212251719930015422239745287284216957167843703741027176630800011263832948793186378939365355436213315333555423389761551064496769963843227737152999367234739334194090186838523350558132844782538407474549830496455243292683680658718869657038659086281153678602177539802911005792794020917903881004969099578625703419428093915210033120129947569490246110213853038254229177386981105707280124077412228960579230094775673244323231241156405898159288772274606471733849137581651146336039067713688988012999727399545027904640032762331370406607543421044814279644164545531672543378352580382647897278223009751570864118031415079631314975717643014541103260506755272338362158025428729646829818407117498541243505570455579271730924495674614817505514306493775127840190400485208349047713767453095253055020746354690150413446987201662077098365949576035136159943749488988635131814000959167358243166605385137523196523120089348998341758158650006914252576583543246818300229068487429885150120210776838876395711773628048608014975095376762285403171323635324475698413545333405512276749830384121531670173971222856235278077704637378729596933186844036407152384175095354932158248185419740298874875224608658346159868198464649649123190243413022211651597926637422240793489490831422710377847079907516741428207195773139583999886945919719318870858123005572165335712884981508623438145340541421848315455499698732495042964969222402995167956079871831240994713928955857302992870396150741330931791366225453041920863535347374735304302098347715782749477355584506720756708884042741143613096732082046901850626323728312753358951504359559605666743168472815047502059155597728604145444123235359162825337835502329353772198397155429984847653297013088262381476760896049095693888457307024059985575396972710425682941368107138615489283998624643961010399386431196621126595914223735015134632942554400971441234284121171858663531725458722029291399827484554280656111350185798929222575775004804624754328252670644902400218859103672293142249554498746127061313513560257442307587557114300685962825676333843831539789908880338174831771002453610699012360781424884279779348892118241404525479111814288246295394128490671386766220913540865532239905296907627974681213376133653872190186350672861180159328280983243413093089764650720741298531390037780449533368113108869125167660044933184311106576468956450822583306789661093475572511452468875343848291163805146895197544346779614534420526369342077416808759763642263694581763043079270753787449933875871659405991830712060240272570569628714158459154169406580442629665119936387079548510536022197692280844401001394398275355711086810783654087648567861826239267855576085068725737235921739481747006932187877233688523791145537974285815143872811166237780427853254430941921074021412123321842999204238494807576376420105331554757791574261299413611335663726015011921169388087102616941571118500214191453462789023158492402948631762243026502829964032785045226307441161521846316990691902219431032733794816832418795207759814926416912413706214457385870604343391595060671333533829701878370096321545311131764114552480796830309320685402543900225468777681395497933349780004437724969711504493018158707858415220461506775047449778060220858962946333864931957496739896919214555390336018584068176160122483456687206416198015307437180172051255306030736576739934060952397329897171506068776448318081115864755567996506375901479823949169998501345359178973830270936626536714934557824345154209806795919788218330549032862852327600100926356442663536507288252716488200334944160488543119615057526501475879823637710364562251151862335917470427429669160762793153387197118597441832445058897440974503221132792077895198218173258805388400739026980869265928528169327826040578373094115569783515723490776648079103952786798970305741134306797450984431954197117696623656430306012757676254216096227778890210358184767431235023251872910190117574707224239743730069759947976689357843366831520422867848482780903576882611921794033491705474743789161680910323012221884049209030170835793589188472502091176945410953754435255738974406204769668892872437741829024712953003322902890546017143764404829911923203799047276821144077129432540690441779849847787616149219515189016587503809002992165127724177994065843880510799262712289106745017057774049399168426316374559204689273956303980908335878088726835039389327748128299780235732592725645686740161845977639685716735717198375252324531457386954652446347289499512038490131294654685051159245674504654815178344594118134884894475067123761558817878229360688734471320406675684316511357302271222404071519439870344068105346578378326817472142208273737948387266619681552905834883570172753513783319706555147109831116055316317555621073076602289976029524792458615482942114587539224504102525586249187246989457676785577005392088431477474669279150734877436590498546765097039184463866878558193321045934897098873771574520702626029156184790859169917896947789931707892564436833919830803056551449393381748236459412831698723484993831458174448116518977577061691338274880317693893095297818826837369220161772506463307055346608329818973371646443009278637375099152889168987053081983649271659080483635633652557420865149466568550801635541500193675468748615231932990972763046903768810904676925527353277282959777981939074646743780178923453658911417425936971074472848785154194566745031391887565330764681395680777300208113254281631810790248478491218571421881243008710817874210010239952870703828938841563369589364835745002915301191739702995515928514471717748273940272213516831851748769275987111650698245487565145497554013451612544025581805116550826015075312006854521482762341286873134785086884425841392055028262919992081101182115608106201136048037866321818727815106455414634585363740013714385344435569159197395311601838169148196522937367860275539587661647847483294819792447459146286913057089819727151717381125164642501776607148956547615550905641639104937031072867548381283246791898781497652012614161122494919194044097505409866634316141661630968152922179135881822271773314881656549987589324347795169946517423447514862470564203115162847915890433985555901695593182198172682943022851737428965735565334843209096585730050325031213854435856933428572207799062724596343913625179048849543256169198142167890423074770343332687394425977140510196406448418076321245824548135489012471455001894066968279969955533984998817877829257011837762563817886192571911000907339876364888991287901783391963626107058828872565737215731964657898655837408717669480599735620708706687171025063943263112057270943259441877591940316710244927014107881368581269733432336327191091518283519779003516524817960569946259637169840541824098823639236263564253139850995748935797813680901454550944439193643665489214525963844324406330262123060388397374273777174482222041522736095950683850613039355951878898626272344094269266294483379965122819231937665043647525942145685397410250348642129946372807380665067393801980417441947333040346519811094986181120085994030641900338754436337031640212100915241178161897187684932017609401720921480345562725199050547359699220645100288577993980615468946544450440377722351472627265428333173893187829703798393763514425753020443793332786571394453862152267340108533729572493098455167074773497609675084386444240326348427294603668367566911484936896919346355515945081133400682165512650187103200488752316054602537779944388429705477583996133953967373423505488230511761778708017093943070254512297340477387618560466449179366790637131701368569071703145241613414983588001601521100471232503612985624168872427225983169368532394751649204447025662574361655929129268687790934226951804696446370719980314884493263426752699618198396862951845094137163934565572131465494516923393640401025081086368609788047476935688919374249273605091800035097616022182542127935729556078191702600516925868720984188715642218332287073161075233811959544005389325372750318563760953478338352676331194407614392228777220669550296906850131083886819243989164695389976981781387094536446290120424717137794641581666895337517979038544091865296394472080298073797994291101419720091770749124976870379725495290620404894299678354031703074496038440392635881562579838335512819150883325649387949354605407715576344999315598860940136498298761487387227060492293400895283902569350329505713103148600540723472342901532387052457997304032317544902432024822210031040635534741546459174316788436800948917930098852284394793283604961066531957525843843467108704067677881029304832148285001084431660950221839343373718864179625191884771350858579659341639998066694082842937307102251753840913423675552680559204435700354001045562568837500432735020481282464600134008238449645228689055795279077484387952104883839082278405114967858416742776225384070797982348022906946919967436861881461695292264524303952081196415355275330117677537504782710625706255747900410953647094124934785526449604717101790122210618273879083377294706126977355438574989148527589809735880952109310712670060428517904848707506151692109352686044392354642604693085836657403061135827160306900357529625741176068433726787007574180005788929556563985093851682484741035785655401410688217110678055084850273875676537798549814078568104734775289722000279367054870451980020624661589360144340038950588356494261275975874354557645358394068659181313743922305467316099265073467617546805480081089143320606929073914532086304951474277673350949901817531450283264071409187953228451587759062982807332425108093508950395290053038023510127976990993766237886275799680622303217115013971517792921163488007509619359209487131857492506251684093197443964070392465298668287468305505781588670075812294416787529295032311885908897702111091515845797991794379604867643452490442263304782315875853452623705219853086783495134194967724472606855192820136645008182332187833379999627931957964256496977090529912312381096583074761598572002971292428783533382917241685893360083875975939437928634533189838878488122137743357800569516563323682586886634233215467963041141388077319456932071762616765505243730555827723661550596862591144904502645474943477687509024730824355806629972583914525375715588575285334464682840157968486759869699503761967123285923176688276081410706991225269049715553150440810663090707341156525434725345084959021626256802629231045055516061592500610470995608878522094695277750283683408503177357812145973518959856471573121745315155280370439062987693378128582160317689206741565348573623809844254853948397063932685381123895751412682830570138817301674845602578456235383351187503642127608907794349645330186442503594915798874597837917139109008073697875835817140695700919444815738713623123904465393166242821922815364885333035937969670363908147797968687080897611759776969097202573918355232352826981218493813350967057797636596776516205837981011616500080930070310489162147002741279072001182905782609854714054539539376270310685098902814365364079080900839886483410839996143951718391669321351342349639531312885207747867867765690517977579659255160720920554691160514667337448694281587544528757848253079591256625813750297753378450597410440349210731698183182213179742494981099665205079029966947554771123072547179843840896660992671735264386703634822269363854621921051864480000198587110764561496714313216713046511074070447257257124274200457755455719295209989551561787580483226276008285588495149332803144727491577579758039850248433605602265697694367181900994137560955298628542304921040604259257655693063889013280329462745704494800043552254726659402762887789024220296463350224004054263045473559211460585658846291953440094116758914781737442110347131888310398073201684747610842053840345347820941136727332027116451745939679847048268788593910439466238486320924713009055718030024007250829710761320428036132694912305334557147173758419347525157834729444091178412939052328791305193474363943379726743351698793095519251817141954228932706709939455029557529689024213451274451407816761001111952462342830816048159102404927866866253757085907695472171350576585131333039425155536470629661477430328690506481720864894561479052357404177681552401533089924339769994161325157617258337921615923274025713479941837306385605381103577639563714286788948384227112234144763713923331291629383539109777762873370531660523299703026164756671853603164988004653585245189665269814892883871665040366494533643422245574042106793820159748752344070462832779765452802550427626930779394217944947647791274589773033267841179814471511400048009639648227849256157199713093371866541335097582102113860638612018779407395851325535313263825558000189545041999963729930657298924774582901008317882619085903636866653527283444940575778652150301519340170522929499672099575890673835430131024439980516039959815626386098018855654442243695950616347723565986259497773401403766426669902766464912667882981139830710363786365659030259221240037112635878556521144104680250657479934244202836910952867163012670384281023252992699937894710977512643952076724646678312808024731089625376727652926036351849146635218446783881960058843063079133792964085484058771004820614212298433636828869199137072677292125709929973501672398282662492538050902146125960037171387703339882206898906089150840638143505363130382563068405304878769361937866247355687194495668534370958242533243367670466210880436749081472823279262292026800148795822493742531118887283534000847855143436748381092303971266036912535917001430871111955533480548259188525588484782468575754775498475205466829279865598894926215546090561400680684359764672622718850830849929185524483341022878772603333315465961822198990353704356580601977886803692462416283500986574780256181004271852355345383823195633793773395693316474772909130259175745832118731683341664405080919901131852326900726092880166069569043116043868518413925620346749447911106093416724748774793111375731460467981462222326481786665820123946094052807287575528812802212557167554164784244461681373863732773936701735824327889218814774487024167332149020605935460463568742183448981911808315939543597749067200021784569905085582725259539099663338133113256910951381930539925500641443225362205394679726463656413052374609703239815060713998259267187334126518242405834983434229230710707802582903147762719722737166397511062816469972574997341527891713053218126160213523862697449877288080696045402605164594005841406100516023279042822477779793562750329957707778257139022964583328862192085226050120981545391178833222361397939167630307167838636988389391618647224484921261526332780931059643809218403058681859972910306630144746922906588792809354989534285138126646047945856406915708180974647297681747241905530780952202242373736062306353668004054830782052487035437427398113140062484622314575226328902821981641830643356251697028602451460964763750729409895327802191896117810576239627277835943913641246191766033045604820823017471313118798078183819495309643412139567933402213121236923063578483822035156858972297658363308065282059770597978052818115688068208546412690650214892873386514452298536840918773541064373567065993124849022438851770729542616901955579648881243779972430818952965136611941266263834337935733259007713544626577481012669486654052539116720244627626848855714551841886587186482392385059654998850957441268450380581403205547886671205131840300990892783474015267136021832770463378654033602075904443678038427678218558163691443260259283393958316370463822200065600276729299353958892064624513227813975518698532502911046510855064696824036121567833982304855068330328883122505842362088954994521430098734224665360597953483969138725195713470510057625778076266715133902109717479599894395881295989488862689001388823729353225951532735845681865074250214303444132007363303928731600381771933430830067343591510047805019520923648583722271299862223493788517392597735470583603262414250043001254658971083782720482386968940491593369804388412947478160762715729928185748784943957442740460414358945315471147305167026403629737565887777618795726189502791626436780920666425482013233245559056120085675875541493561003898999993475991149277884287261266958810318257638110016589484696656337862088492282090909960227681663078419766965440493171304532107363642143163422539483039786621264421692735693639327628561797444079904332540530628761363922030403836972828622989930106175057682265963522313342537866208226176022553020547082497487436062671456485006747674758566835376440123263045299437232482846751039661732166879232917928106852859073107436497897026068078430721099001736736442493804753125012331240018352735226165949365280524797037843434732631546552953296859899285019653888619598177119400497395132394704443175094203335279102506400970410453996827445963214007559366140740934292012419525309077421462790438223392383486481603426130991081104628665009794537003998568763782583181828631722647448114763801082110786753682458019409154078139483303833576425599562545018971180445756219294106712825617373310797669612988973491758437737616387678931868051604468271169300189328809180334945366537240973763547091177334095095642866663816035567679816236249444955327016396778950875862204716034352650065070644097737783408473936136914004402650795970008592872238442838183353459521020421957430241892641332973371113639313033963755704258180352377408614947183395800647001393392945336778233417358715402398878625760394315680165393600297235360896881904560382404094429066601891329342828268083325868639595933755404974824046209292190304497703435131725696728989430830451654311344728865051777766315812244664135789106608345344541750048438864780631732181424936889616601448035534707689950942886548163616530785901935402957602253683073567761958709934937467613525787939129571669637380689151337548274650717147202903895328738400822108371131838475386391754822220125928034951330222497943383484957818431071764595046992618652658436970267201753947926897709863672106822472852988701526928096704067022071498704839082852330567608722034706175685445856437624635387719785138090428895271665064458936625254898178787619800678846591586619178201593137592321795277494311875881027765093659997456880213817342131161240830784617878338917445615626435309839958702921570913056032616416966637381833265792308158445293938834555454380649128161086070642549409246621438033172796186788389842411657148918487354495448743757651163205214399789831492240184250052783132008250095241194978943400949173648336658647260553640692277396907257190998463721074415643185929040611438148026526289598019312524695370433543318250155881685398494738044104469489323721563023580616616057347208714549654048226017432819344329951527311023971653986692189056419135520867644384438840629009568628223263029264039803852307004539171758116793247159485071420235516042078730563737433684827041914454093235242538867793252239609459304442643359967636661091491024714405852341783182247021036617701516860717742561076091790260666711954730166725833799282061592763421954530811498963536705095190569508324684250963731305449250198809441643808690571673245039681539018368625379644223007858276552035592083176400209208281251361990431282070198260663769641758736529265453028242291999372688227687887651076171592259524901170342461836884353999672905155273142521965651938957158426466198371112226599363483298179026175812926680947665838157166836365941111746613138776451730862665041813573153652221457943993252392583285554065590759894186176934041652567317042362314780038052362510082624210174603221707018728888120791312066093730383530800787731945944498686875232563836004782181257375056253455457035309933320916158624026995496027984798116885198300349306566158110532776914017524377762190250097260494941890447142541734094691747454366046456569276724886083255538169874788412185162073544115363154084221639146842086156470030355074405453017416969938486999679562291585605068207845609192807888762595849007718911930563916457061287714820066428203316674035535361388086318756594380067332901219558233802227054970553823544021141334302462532666898827015439630716350383931573624018149432992287936650435759311792375344663978676526506745814652801990910623520381288810318234563671607447684655690362961872655900094563183077647264170510883206771834080116808251723140217380839280377779507707200601924642234939982240363029317786126141263203905452687876747741015261708137662664902956705686549861930448949822033357030504557316398904011057148607052720821292682024305073737051669947066959203216568730318279678803785303104057266189015095752994911870356920564636671930168525025710030165108972015631077806356604232936710816478567912481886231551803331713861463086576043647180465297373619385392101740190066175811362496012317287894120587185471890812182783864119015097956396510481929721723921209877864508135448539189851363839184087523120010347806103322994620542283881088921523037054185126309477991519710162080823645178368773524334315867013796571111623453944995236331665282454869925936061852869901679430718810020710584412434397491400065705528305625854375649613315155047951749047437572544805241707359583259255833270045378606710678487775235321509978259870359828251452486707368797988115706156146339074957499866789899208365653460426392047572647567682177675516461792841111134616311735095670479705161099432328062280097330970210407740464251388603542988610130884817059919865079268093470860384738635587917282175174678558993200323260725886706288049764290489138858873183026025341109762615653292915569015203079765865613559336317955204146036378622083239895244873283661355178172636066065753600455909603772241169793597662204264732852424272198689492972649493038839115348269655553263996048454780178912603628448159489526206229284381145442123371110990871729203364502001808147859277107497452882032427178647517652697272667845890096000731513453590904918235971276675218697498272242823180110226186648337483608548177193295977231765294134448714367907609250270148460683536995220573540943775976780675806417314246219001543554467517394565743190738913726184437306446394641439674192481725549643361601176043496295134101058408161715792790859873392670765792531853973929085504637820821856340818846143968852712648086591680135977733119669444348938208905729465907994209760494340717819136593195828951358527988968082222143549443711580209854008586998835138615753544427596788503991543609971048459511185991123540905107491890767798885076364273637700419226913094284014418026904573916610056362186544415570868221090839703026854497486078305640648207318421446124672818784318391999245944487739794126517929399489289082452989925079408523807048032627776909826747345638704775358530383956627374881568060785600400469962850864645951115127975401309721053050813650241377592074664302823534577221879226254964875770554421784921989966880006442047261038513721286518634179015203517867590769364585185599091628923617357602510935557656243918389265279523755176338173692922561836386153199819296480118489339286347635071120900359699356719409067339457322264005123102360820009830489511250847378741921506460923388747441075981240513482827068720772730514246998389285771073262104045392405156697279628946430701402993975565115074249354298928134478688449129832404192331068009264965283146561483816243107209510189414132576272165748248834612263346860024781344052912643728588511464458708833374371164640538715771909946576886833570417249898849575042841730106278064882149131440035743617781908959884542298354753170927903224820359401804015961472945719319240701738007291443472230342836825718126700022685875464494976930837859303123874524901685988893780679145113591146893273350308823355811423164103246974584878352438785048090480639695990604686048281133523455017220721452158552486961084948383705395531576868454644063948731027152396036966503242793746808441720520498736193552223313295660703174506439411806370879719865966805548021619431293376352642508227676075830977022350371454622164963774322849580418564979208101309328210601758267716059058520961773359052856914671185363723235008333515202715927799993476862076436642238995236691681576221073052967100632054168407347820404339442585595111789349019864125639369412302277600241679283249942568816857283846540351443293417793063562123138235057201506699531810609996125306723149349274996605859482743511139351836345143057703936000608463550681261984858429012184383096526419325331823444639072601689328124118099577507115915936134768981634267944780754030907198846239368814015849672382917297662080205488499639900726602316366926489472539956931695601697412318734015104345488022481592805430984420673439819987372907498658268768903176414661251290779679333839102230098985137321255783974286425168656134889297107098670483038684753669433464494707554466156449745805516623831013529680975171432054499280632112616124821441119180956382912924713392641118369838233659303925100304762972186984868039240052450062006288970020409668925902672278256108364200594761517824665930213001790372360024301894102670934541387749271794475597529823327042576922742668523834400053119368512818088458191922125309859829686182719844929833740069022014902748312708447362153880027210296153683259728083296699779447781464127113863331546223691005608501499520629349862460259109682430739741879141520555391752799969189141463038568508373979511999349202902868314370711031371465582764987380138931532811256760734781609901050135190584509893437296872540241607344670567284099149218741206459842678710753371172168088315886929351105787057552726349591918524005466941901734280361673020200540782327210387736851920023949375637511295733825034898676198071601988601131448345265006196304881685032137540467887297877333820076637509380596373949274851555593390083406651900272391287241743639157520397863787145008517481902016545364720293152856662054720929940978049095045180524276647077429360915851101654456935573102868162703767164870294724512762451632846343824366199842578984754814219719136378885427747787888422212335918015949481470756888994973581876940381471199649497843673260458144026007666091581922043662168568618821498351926075237361226726095317288785586251922719820775281118148227274469352682946809020452500997946827866100479881594380778100486633065180552109096256481384530895417284286461377536849277693701868079516146429159830826030339988773326096842106835324469586644111404869194185170144496318421175603620872536667987577621081613927572206969594539674808110366831463292856330381328761606898743912853661446277150175327043076089913728539705274547907024129912138195366632258955849763763623001724582360120268263113494230573375307394672064085008477909789595348848106664890395458725643951975648426174711951559334699055579009951147149110871646487845218609343509726747088359389504702377902400961741160117350054918538085422069322017025119273003677141073518790991870116109126514796197678717497913220750818632881500912327439336329502129457555256613425975573302770104063905820213575202374749779392203370627892692247377995841377296835394821247415667870730915758250271022474329797650383940300282332131126284796484869051193395125066707885328922259908464771114317461467461496726714264476319254853123005787022769538117209497797213033039741411640454027982439675516668823257391372810393161569412224166999852267289070472778304916156877445240664361967472933890180363302635106019393127906335303505400458802199636098913709143924367754003362650164595285897350758304298213930761545193171503850021192901355838115781917688476142996923579580577667059442422534372514459005767244464825355752523840990545954881697623633358634083527904769656127020309260480190864315800563668951711243197598311215629579141445001109002251728383992553297818540074841358456283460581756825905064041286730406527690045360909843897837196898427250614387081225653899281351080478689567738157906834139541451993059128219523187459105236273327820986240160634434668296809040396616027543049085480026842192736379720583934551619998339247461137553321928736953302116119915656439253787887972235245752081154564802099120821258168266646882750690892154725421674544011528307740830872276592610040757187924548856210761924218208608210554949669192798880299188850246440039664142739670407095309409360746586676610146466301564385753957645884463865074877539617076326726821531333384554106581459338649318837466901093846575071020124623586044363426130800297389752055705832244176843046760171916091214939944896804741191536089069383058099578805206955966347606491490141091782388158901273426670605469489477949157946957624506574808373938657177732741802020159968242325655623431382816311926686948866235274662541768333748299717816421762096119455970781518396730250649956636819172477171976058424132279289467108502466702441421564916327767202070217363590268912961289881687914811346049060374942893271071997081965061363715707345471410737426142107367510705666471560426622155875944037287214017052170528931546497069040352119506377296450310449871358159641531855470451245675160535517972344199065386865106942902508510253463727475901154568300756353046044778396735945836288537125897386064607285627760418780552180712814073791215844475251752201777405684754231217123789001220861469045124800725264874618777867510493886729003873362954128992362177261118651997444500768884084519175569239393483105698417858103634979646469196416229695796377450246434951620373989621929419715406138109662070564564533649498417261356774690061750299742647937236353978843948569998980390619243486134544814137905269606732878612490641507860380326086115883867195542840163294186550662609046176467672116862789959153753288339968516107347790904492029772893690351626556582049215401894395466159719891641074514319213385622890721801792012342146482426977997357839438868423873476187698459673675899550750991952312880599509992688802270039161007167736699113806398113954123082423337490477071922234926993364455259275907979865223335073421169836368164058570192362222527304559978556254548359866496349165191297041381329381639246074712607916349380606349955110864827479342562565280446660069252777413584990495996357263700446616334751818785878387928139208734511136429369135282868162187381913806560534669834107468255538249310716080926481251102586075693420170176437490168992060768258812976476846331514175169790794872459566617969909872184921707211369307996119360756443933533904236783384027409700062846568028047563492595824248561113952678960698113481327050985022071810633086710297048677433211188894934167958297378014139294790411845476098403632261136301404579566798002174324905577923836029017196306199152291591306452409696460980038683869868141633941721278696204457622472707901079118993464609015743009828674708992360905773054195829492256086174279551645862168742003598840663525071338618780912530525963134180565919716645224339718442244999104674420525747095610372031594885703553349674464085836233749853680497823751743083472151921416965516643938613677069746421307422265006342610684010934273141709313185944256863148989300209341781841938285871955468325587407785576440036859203589894876151784818191238182002428810787249752426294524636419108715882048986313280882345595542744213345887956457424012032259756686347862339294310999855531850900751976336212809331155041489264509713729953011537243271833669723502059898607080432498414597394977053545269015758256499451088312111330890925031094931715909813890173018516910944789043963078963889991943441499907553683681202341854378161371276683372437700512860892384359264085899753403514149873454006837487490657103211127672040626507162529258563855679927792777603735758821345774985620692356158363178314160388765783179605402304101792646417228192584420170329389393097507085550721515433526112773022400008697045869126415784544408436749934741599657633681113374941758589329554819633387027411475378485243480587040884889930483594799398020025409344849024606320339007869846244736705029354203115615045794395288267932190798881659703535119322955950367592468904764195443741883173966228472570934542929802480467696153677071117791923143889137932160994957771404893252280618076841018118207356710515094087231555988528322228457204603021131175414318583145262996760986087438546605137297829502520938218410330501734753418487530348490263708449456494140608027984435113057724546002693726768928789509727536724252708348191470000575097325209128360080339962584793237488656043155136060986662804692999879667854509729937271670687815042256237198917259438575903352562351764874895134543378563298926933318880837012604367420433772344903294365337592982682412358247758833308488203992398050914466892814681647236872284822943991275431047001101500046433540019761777668733513802766844856698912958409410137550335062704078089800017303429085856485486013322992086349453623722340184385800662601421278130459079825396630907726645831326721267920010104842508750381625693352627536994853875476149580885712426365594195380273819707711833835768391433600942059813268681340646021452424988200969349203923998057948240521736291325816388195571651001042666331784535452147339271562829266766088972537930947744310239144369932307229515602630778044269060255284517895564364049585866646419560323904135155544445454550840652889904334800526511265607616526198711488200713221499938702716259239220631210122901948652855624794881907834843723556399422079910602274008841756821870834312916950423634032303965690736557821793598516649580016943577515576891000896573208787989526414670860721098567533710576358123215045036827725635085650967083379849820202956591536768124100397728171217671642424497288103831732031494490840695143256500929759321446514193824959973781649305841765879550130102121436333257439104208460242713278991350476207910483697381503929986677236826256767248278143997279157945255292498891147199212933324758542741056142824991902082833171032817399579411282028165193066153197090232526068447766904135349881256739169052201650763543401360569655131021909868157709122642281962826512747372035551594676313382628781277785213861887081418942019086846939808322361964109506561734812186494546905910744765010881230388445993668904921955864669432603521939857041877407181053727884519736829669944619467774395236141088661292756551279597584198200026272893766228579464720452132369361395787278240157446436633336185804869343020064642885392707684923921876887012711175224422564034733146867570421748792345747451286705946880242305101152986342700726337862389079115551289177905630122087826442995996738898411476548072687677126287781162374884330000875462975974833133167137058093551035533501271451814261142525641090942286370812960444328745894118243123349974841921251884839394827158747723102058821869427915052078044472792858468148093376093602882055327477016211631151143469707571191457921369275313561871953112401120066520683254036431885784819281089759207787751493240625982998684715316537438273245718167741148172927585432334567551580387852133835326497755941575725196406155778467188176084523672657998423418256916616995415483465746604266316898937223803244415284835410867634363104837610338115113936010343120361034884736073629712118306116167612671169822243383789597360295232310776653147305035915313816260346681023875780057471942691433575753177719228852415219408217061014912736698563109861960050215987672186898628682071127954956773135404600740225442703663871535232626277953856491921332754485366503336740219954964118533306416442511299916629058046238151184771578015512568352911264288417160363800482174367478093531850732860426982557425185267082976103881309325317386035842843395211502779315509849806819443828194804185009173271955198776621819580101606556396618113668989190485320528548604511258469917369940571700517487451104206432730579623133048046691775005470865008454449842986583479976258960769922971167796191534975912940516571254167391307703707493252101370490437935669786173621268069245350295735812407868223215311853533095090583928173744366543355597452930511923545708820550166804930321227447325915849453799081088118549640983898865926852901267548506755922107253264096346604070682021950127210196952478244702117667838004301348860761238520007964399107139208578739259956411273340976996260546633702174423830807631197442386954423938032378578999275692138420586887885804541649653707309578742345429934329548605967435987917972552637334020177707623274752197989343015405819321194165821658808057178068754311631275002338037229056974886974903720776886106829838857327452789649393881685619342444529792592061751031311645299043883173218753007299841168225519528330474975014226648301159733458654518774846866744846544594849895409064961107014583602006714740562691100996742067233678902325458880147372777108257451360936906395717887075286504814867189511539445927193455943316251871109269191638278007155977130371417721568116614206573075178088308525602795775879955444942010963530094121736054881884738122295689617745914405717777706558921294671279735132076116038836997406830209219082370662342265039911337463993794901782197581605611835158956078207542255473751105973939933931172413937570899734188914288314394299112740055461044560171439107073487778361021601742878615325732061341151668281025256538497524974338756093528335865943848986642703670829710894515810229394664295969625100935406317159917810660755821563324307626525085374929695485433192356136336345431564105276390284188229998636152875781984989122663532830477669220019901688621852736201780409891174628901551259536918581549350629247416990265398316868771056661691868013705768736992935784723644354351049795068269152783952413050608806745756005803056696479115660891177117590939072400649335166563781777659513586403465673002423177960089274854118918646173083697555799228490539262272887614092540026237981249881168929092991794766769296820736825753256208733727588360790924818060362395692176491632271916177933038447877336689704833102107151177599516882011662002190396881587227630675344654583186191073851285234399405003802898943736627212236495087396437425677435131418487091627906730171315574130919380579766725535407783626323866658386612051755358367048571469719283231111531409437474616108317200601430758487218721511932867969036277292603503877442400065343890776796398586894052785305834654994148818797888282435816031391700443122849302734804391720114617225046351539720632749844446786553765427989405865450547570510029414737265898822910801241259986835587600358659730338522215373173723463867852402519270813918146979967395755746054025449790063095923172717739502359239043996522778166636171993472752604651352641225163564406160181214440238002319101986625520714697715340053666469322416180909695679900106607994067649491031144444810034475110150978535170450705031162509374314530085276319457088977283076172323519722457969022450413796182142628717498157480875974732507333542599389940202426886704031454304539987315681752477333947950928316247165997429590332170282527329028603476762888302340336300557091931548725690777224702757633288262289422030439361355817274880517118201666570662440138562746294892685575109695519454012587908611469233417230941831052923289968650187589273360285143061511831851955843940945190348020383258022779007727707177731823217283788731431202702685347977547136289506942450940963077294777844469669996386745615753584357949356120443437442641715066458114877454655704449642221078111968720032157026365661398093405824315247577716304725063864733593488760892261741588798342849528838796055578499397687936908373526142262916331780493408971177967312214776871458105590493663227294553680107721393769222847868791715226850462163521851876011002254511455396814621868393394800699858015332333372427713197389410790955727617764779936328663881607450218857929807276583886918727261695105615707234807327921265184666064801530430040996397618832313448835295398315005303257281317067630674016144532423802352921387057300097989120756121562406927929132381607217951233071926412697783554889606563531966413057547255619741681543493609083734271900118665522146655665807841138520065124035987738214740693358347201287745766158267889652766923036737058553925141008487105556096752899189672154111961283545427901053720919313562984463757628053073503237146650328325002010690206688762956696052792646397298296617465647862271687032838818641665463265605855837610062110309229039319275600701644609489210268398431982981537011899568372565420711084404923964285271507004324867656957503765003125350619503193339204985370846362738903261755575830298810345015342711149712962994794053851304732615332436724359876285194334437674739488761152952901178337235738972702145902413321980002839251500419775770091031143281222038217154502263741685962318086955987511019059598423748444273249076273720341108917876129372857096991141910683111210924948408009022246598231264716529840521089464063286698951062325987246225359015940932900047252997349593872478134137692661283972592143421882443027371577536775443209768302027289225992278498014932240861977687548647851402501521887156646514768167371023423680713188969476110039971682460774056327617100204266247818507902443187425514163649422696837420099661405652226416406512365337981944684287793140223848352330302338332337781830260987383163995346007224831699656389651205636962354436127253817562065238385723570930791535887959766446931672739268106030089650184987567481963672012876807655041509159547700327271395057476530393989134334242150982204730128412112810989142055734598753828830633298381805946591170533345790263482145330458146242199024125034453164828453095989697267544432574410847070504637210737465599607025492453985801785874446936714047529478554470230610008456918349234791811765530788232435356762379060975802090401895810739830288095406679185310546563145901130107108539032689884408154857796275051522710748657153195281692336560982394126146254838760238077984095746665215108413435271476072327676543509039328276119071934343868848613529160002121739418678526483347819361583000580210858375858181467383996163361449449829111752512004129655410289021821603249168946309659695201657417807249288020270663724838149796384298275689302876811359897010702672643980365937566636406243950682466507841295583374462783897394939300200915864388523987808126481093018006469945040070863479951344769346765835491686169650792681247578018114568574653919263211117378727601983318349358492395135595574100661261100863608097362496841150221006578614629049162447920262407467254343962424807054603679233313053265616215955165382020630947371999323755792908549592208654724731154569708620400941636640993295686596925056969020591497892696079575415930696227435059760696385564029181598099630667612819482464312332944525038330083525696720813337171293308315969663727273809202938613581536056402270161341223932840385005043520891341663101325757049393527651221836695355023700259821506869875572423549330306156390415789246391967287097863546674311061158248487735099715967332023237346885086811591860868568320843689533577514438730318105814237442610790515288640040967226282407975760630046368993271753472039778802539218790375416339694754001583167246568005785142339012784841180225134747438320039005410265685959566057073563709063478618498619522812391655568843168839060496073128084529644362888611266148999644626217319901037364855971719347710827238960437851403854516012738314865023779560156726147110637715810353737005577371346153719902008525884541798324410807367038255044510501394167441361920205181866728367707891026069287195360951851513151088806701164845794849508454146242590342079283854420631237127863799270531134390986079674888374999436150087410661554400092007050581856397001692585450269437186684944540578001122330294526908398027085561334142682725703009230437895013680285707042993067874409347204125548639996104537973891795440724978511480219537083415656961893671796049319220574027678069779439056240279434492717050261359629564376454356022047502613682712887565100963635378885730048932579839985356210804121245030333927845519262054178924168018894022660352884535343481661753738138230684459630543195607877449930861806314092128612756407335765835523840352981139774289516085838177618441142987055782759469808708924412563958694902517274813603415309769807346744967473639696916585193274431509329214306480338625786574307715242731295020695697341107948506216520326171621050605463128951201480685848533158579577695854455426977377423211235378216093962560331879760360401089456665476746323716712872009281904671141336880861301795729591850147857914547954039112181522004690286452427864380191792582277576870446688124962350576259333055965345299520710232346019882201499195224470518646766573950116078541592082004963402923546199498880170313966874190073023554789774100401542658915006127677125729839012315245258968817132151991585833532048702441114947266216975986818428694836469552396054020990767372063894030797482062568857340428772231114606640777768134231287160198493736986386440528140318252070449179462197872522235270212887103537685397977445789950955779080888460277711053981061911583985788914268796294065150435226239591561448222037609090108906068647866058328440618132373330842928546955453934072333736575445028475228967522120337114828669305916769389809095462589552729393310691883402838189733392800375070254480243618680314419310577360205305857994744734279315109374263790152375882725319252863439290892339302995183148103944412882746275537059273293579802625714661368989670706944484670194467159236171089604933956161641067252892545913120798824796492828181352955860658222682763330068302052666112121746857925942314010986912088647423796611301969489105376072396012044065616931858852553332172627952430874744945122584692066339816130743375479127180207476233218569150829635458031641362367153906207746542895716173470122471037028586577058459994770944801434025296394325515252218449763364471094542043384952973195119921618830551820765929682869969870012840031934744123507046113088153723492374535656787919995519464867506382350065064330681411343325470152833538200926622165588434731976305164286902199644525184083348486183871152000029213882420937650749234223122230038641115738192615698179533120988917507412227862870091777364534939988687984666036890998511134859815873029311446047738873871770820319455426012634550448607128602876436876285515420710931718419727091454484990769638682990817230701695302939715405504979876905215949255824029543157699815526800920161372247150978396281292074435438615019184274868363425774021229437847434519428032631045373470972453647058936623903806883184982053782689768691235712180444773123361761604166785372256836639541754825073496864528529488405934275507930396030617306762904966863382544796019413721168100585021757013570789108674739438017247498919792540844271547404789360981995973022897008837045152267056862300860230448829201739863240381799229912436844696428309548767781239200209225804593384434362655707568709911417447635879829147047721900496096169927215468000284047493784218962771901701952402145356289127069026548454675257580843444633910344880505781305297273977029411637599456525190970763096325276615377312076312584590169908725563732365358776414641845710186479985030937688634097694755197543803888037185368636953680377682595903669556762439955582231956884300620807162582740530243905275081430726595467988291879218151520410052914165246676522189613577144922030310802362213729525672009880267778629184870125848102164807665879071447688165308962096424506747096231288496239593791315179331693885852652974217553341077183818532681690328429974552641501804764668624419336146081656360035233630055902393743436828617853716769546756766629024612824174716991507015407477677531751022453138154593523732717914373653032039969942586423921353026216042536401650555646054878480259302851670896507972409739995628635333240577992132407761446473902585980331188545084741138215704883709043162602848130362299887794103509663914242593441476904937655107472738904157616325471592795689510754059831545950230936305726812289931425731001109721639633277627731683802056210295471095793065274504544705774391026799807025774120140029214251201634594490440250263538501411076132420768911193098527954012833350482353306521609108805071899326933749700993579778079231491993668906649156324050181352081882325276017671451404567275069358417160794635253310957566242419841299845416181060029126210033335737958476542597691824656119511598970058837656105874588921587867442639248028633159948621283972636356305058310969936519069524714654608063046785389046705593871128465839235396078699724403368406470859905608081370704110264660281346159850792113435538213024567765489496092693170954946045426440758250008914325901250964785262289557091310759157249956372469572684501201467887943520908805163576899354181252989370778792101527280177417643766194303214007934784433258225984677100209187181086143341539894031272875399351596472924952845906492241428981857491373533821428816640509060407888459557025126388123277999597929287403351543868673629835612383443191870058177884755974068004982025926305821192237063743080957670871687662687159522302762933306750236188731783996832104082356825597399094001785676311105679046081922262790742711217557400468834195581080779778757182979627359894991460169619494658309649867457266651344460347328263934243123765253851494923388731379890728852618174476459914213400778415933494528736202530712461098649541568409417178673017265311085154796839789594067222262699625565806604309836521473383704170352261563882980560556134633341735878363299046711676932324638916608987093155530023932004027291338548183601514701842121099070714613600407433103903598816842615666414709576495291070206597499387763984473674341117203134625629341285658240917117786816631140794459794934702043615554830632429360818323176879055906728945942951137216324622693808464808589413183238981502149261085053934070136850629523715661366730523572582437488900895222361327520050107932574356224430890211935672386453682517247157134602586923137272750261173202679151389911413899044702342466375673038705368314263092037256225704802148715306226715195549374424050706817729863663784333467061542220440997020068987692014273585441874748688591784254866584517706590707323376000543192717529691499590585881968838164246222021518282269364343353413662678217358629547573447949584299276441428359056786587507583639001201843289063014769167372084792959095049820075166012656538158876102903286193826408082125334281227646797139403159794299258145766469429881211409516805139571075414565006835526130581608553402027387668230233920383257284359089347654262234603169918552994852767355625992124058789997524483498468155399430407512599301755444662422324903687464119848248884420305624875061381176478358717773221265515272256510336596283173018884483563523395351710307644528015821131577050076324186486347210220921889433660917726727185454891461281072348044969540368913275200669032937661790547221951791870908446554391682386148195885820125438490509706569968393124859444781736831454911555833007804855733561668270102303618737304541767529324641276366962384952178454292245831437562034087542312486689785259534969723870060083802091887120388322236890042977365608518010212067675901911378877566219680350658018070183934595068074261290294865827890959556672325698603389076125325319284840530244508464731734652431019261462046377754503026209089033460911281430419690106007287183217990543670248849723786690403795018712639727522223787189892775949636121813155873187093634575548922533663173874058899671853036952020239509279593316919964462267745185218947744231959056355394553570733818858740393762835609590078174091479796828858758226093749111788901252452877264698840140605582111475115092093705455668827287546834761408788666423411845052596365684581449902459140280409937451577156659758345929293393765602866998788838415253592782962305080962142784393048150762555150565863655030180930581996092043035146407038025748407761066304412722540465368279173909544226925800797485713913901608203208424536262649146641901270597270594458233207098273046287797280131160359077262677490022140891916658478758638752415484707102470424930357375047716834426816615147171834183165158412392088606542438462487582513165362773256369212559063927759651396788314434693911794774609251392351284376527982706276133659795991150294940509480828550725936473615150407926733542393114831800310099382748598058773177015773800932079278954267407861437604853418914878408232734639699208177369491660424015370039233617109133011606323071394712645330937223453968262752954361998379807784663340458839906021266676916450379567442338948882177907300249102071981846164013774802951663629082049107272199919873527810350729396462326176874412567677333102194795053791164031943220779599073303883003887468127389249132456204046262034657752114176302446164523583038102414683796302069271909486080512523979450804319861385198267537139834917316010228351982078776109077823843758505910619959409575791612877101382494433075252592073372887226142799385654961238035108765858641494373634141340529811877884079271328816769656442085659247118840128920933265330164831671814431096193208945851948004523995779221119717916289258663913236923314670073726090089715262523513309855443337320363701267260174270420210633497021573833457668945848025671797934038769881540687128611629934623607853851479130900147740687559968632687777660386784683608324327484775095210619387732406183007026226493167191103888221015125854114496911285226564500111969239858265110563563432013076376772264128612748031417146117898133916584429207741023819500160136012554588699939369129039021595609491449663403542677981362105640402505317813057161568442510154922874808495410782897595494279214810382109139052892708162076455150026104730598495564429873710761902031162890468548565987271411853936065200425066151939391467884445803877243642789304716078172577673458480013693864816945400490571609278710713995647545088363902835191239308429503226724648676919779150217480155075237857231100693508611996286801764837055964049968879512724353872168202390804743087343245660197051832495914469408391796816322974431011390436915483708397394918943835067395215037515194081499572379336256462684201902076775681626488509276286397278130791228435057892004717889455724763784232300876811002781748221849014818789790481347888169457258805511171316259365954628054051075715054480961693869534419276894847843599354013317592603915655263259259933076274349536732529302066446773264018569123197896035247697871264364587290937830334714851821635701813303855593507944984993243489822326958307166366918034970109902927977763854902102125095489672838180139266762171729332098272936603004937849386705672736579375241069565614822748121921861016435843826801384276934060713399701687590942721063698321852175834040087164284525826574932489247185448366246080487931432493105205354870820359974226759798093905101764800409558413933555515579675932444120604301294674529967551134497152047030562656677223720638375980409335202116452202113281401360184724207356370878141539324047615217322556978717726979434915652517973532547358592340205138866958323428101532071434228919205497624275326225657432001271807094368926558351890828943974763295103033693527078950405013800189252718864540885688614639791416772760471942428215943580403882324033253703365572433819827690350098850611823448075011583694897331736543816411506522253906819903619375654658047754424362060729455274512958516482256327835213167170527288124278014184739696251382481411533265923080442343689788184447661933477607001557697116746555804095400502088150122076545769188553512438176875251602650728836718610178144184859842303997700756540804890477539952575071730340195017163147664041183409906794663051215043790402014788753866019597266087695358041050836486678686498882119375977496478788870399633676285358012357669903787333487348624434332259052075469240524502848272572177040879260498977406351284402525622897081068815920734872756173037051307582042101270935710328545178069710048749349787122485936162846972142581316871630539513255817420949226283826026961999767680850991944408583650092476679059048056834767162351321593860592646430014409212578402697364424665489773581084690655048212467866533365585952983040476936836287629940282269704002827084813852561702290519156430028641962570757409652430196936971024425497223970860840478065190925864426120783069053725188991136038319318777087953720475049572721568784691868149036425135016938682327421130322187665336403789837305809721934992341419220279503842169997051227626012840281199501390150134277264002615208186304988031537631241793561845374321202716178135066294626119030406190128866484363401734653675875824059381414307395480569683637889555780475673251277402272962799601457255020934949564074085749795015877550411340559605745948113586651244666673163480084547456839236849760048519536758245705655070139770366327802638500878404932495006052459131609146325720381024881352027096358418584857241730448702781230934263868104049793564716937967126695678231861930666240928788831037910371979482907953975859933445759842536773004371955500062706276332180153993234730360616378202451172460503185086761175597832939159148362757720712001686118396889394982799286753987388988892248776317484877906533001463100980074898826008636310222707687082348587960466721620634208150502836161848794651626583566207855400325204415054780031726961307274524825838516089578620815319404304674312361344069037001865704279363932859584822675903004009928573055471487807364768423518540979572897273279376862268975578571072035547457905876372450433789929796424940678230115482558794921667493283827189119848190302165568931359837727319180556797170954222478989523831849659223338817674284641943188532079311175957014172274507285930244753266990532415341758254890628584218457435209275624759687092978722759043840371609095956324726851886603242569394859057456676591474810419233466342821938876178392836785969707040590460883221368015175254756142542652984230952114082640687249605126205286460673456353314213700878671462132702798725102952871453582140344882900115839893742573725864466782250162631426810796067796456075911221557730596725349369776399130740856719172745736512499810722060032856515218445616229343936772535308659247641524799950658242145403323371966733911966416447134746422125034697456279955758892922370509756157196860683369653153926287378506552958018021640849598312536678961551662301699599091506886932754659144610129906743805782591843546995739791455950545945821776431905733663340437144110916337999127889416858520425263030209380716855758541411379966504848375728658853837613937543894273422538743897990847049690253634426705444769547518170382280606926075024273973547164815581165753808538510051544471205926445156596725047758639997312387706207046222513563319765057943218018716431266399879116475506286605247852658682889601785117280733748335364403056628947567000201785001988899149598871520788740506703164998807536546531696290854583998040921031259222183674402811839858858467388795860398658886053401691157800876376388066476139952209661026309304908237480983612855460189514504981504694676013525848374061991243515527396561365967383114579230035148741491826268275692799055943496134335675344066583978001067934054835161887316689960853852826998866191589883886513051880426499529834217667454153473664874601922109334803364172547914428920350904786682707441321718828927196775301289025289425862175244914371915891098635389104345091100007058451663788391111229500968471187814797768257487100368919368115331269832991340615119520175596089106310682374035089178252116726430895578881886669623826671614679468054071061157581392585034567823358930493218714512512254947959191040441950608745347826266561737717710306083032117727409585988592835502076134204291599585069641611187547984754725259734303800389086805017074938474637160619183598085497804588755670126105666767510918404807469928403785329116033853757133190499421401095275303227495716345063899275236357336247341596940902608839674420235595158886864465478717173256625873609521441996525185342306323690349287812333769741017566261384349546051699398363437511560250624894000496707279443330806620246069962228666781077203920631545795032276053982761477756261054017128366376670325041893238674800705582983579483793417649792340177399863236965558311499931562450319837956668072328185912944703979498973485984849000342627373679920321121002436302100708909648097240590872125976473942282795576587617237272887990735020445022957468744565223700702078200351014390563487867032751032427611707441304291163021413648661064572544077782566533322937862147885039366109559437066313448707427622186919852864299604650113698534804168458886682478219673568066742020693319788424867110299933800379706421799853941520421272584139799075876809675368460289429240978361616446079097146677667881314015939446656477485960087351278297778069476429410443044756134886016937874347691153684381587399087706087270367262977241200318083413270281493630338347554214158101893244539694874479079473748859953704635448000623357809509551906371122302925655959949083417282157658348343164358021393639327100666921418770295420034593121357430316882120284243504979271141468223384276888302622453208728631904892284962411871531987078955640062854976769343063745050145265589249210037964470095001310965282856827869263786472696992265896671383195500612570931239105428451646763561916284069456941139804206990996501378175885087530272842728524036207935772309692033630315170251526408671910439879938325911718958997617516088851960402488072622664074146930803230350429264716284110865706344336142550452199651787290926289141932732728023045539912709232499616131722547043895139968950478877324700867385888366540061505443842660360283838814155021194116028471920520315093599909053989602363699070703736196707445872852126367363077206684890656230322679090987996174445297489551071347470869138341025259936091749822361063554666148696087966175514242216840107447332144082963525138900225718421305558940967515506645617721859328400366053974405286036630142967569221077482333349886230352970386910950025456094878608700849443396339988313709766037548166525784457637393449077449046461099737682267785386024447996753958381390980179099573413868795234311263761138610707327543315917247401599179538665965835401225027721981472539821038754364516601080130605541873104256391694309375368268428930918111731235756065706458434093713331494436288547508584216941314934175048761190939596433463445421784510120587716514443820828566962058780931566065108491410308620000678877762550646623562683644366765513154896281930902494475711353943660870878737412284729058284900368201701548968283639632487921478882928998747773025522308561835940319990521296176198423719840365770152491616720120592850855620735953510400781878116512010667152081718743455582179213455924245323535975052647522158781095456136537657896194016843423707121964715359595831678825899153435558169725381290154454811147988079585815665834153524946498193542686887154337585504575579481501260223833777481963572716096677996950433451922148775348525041621066554793826141606823012424052310812449752047494955671770210724866859830259201871283107143169010371550754191870840474345416142215916143855972821442542127716618688008920919310772232579207059161469780233195814115766078293214759913495738870366726851210722394759031894501752208406454036659202934716587610098266097968874524878752723438465382276389405119382537540879860521537810123888445318157871941778043250069261109369159819983258443008324388930785723607285936438229965961674253964501129645323801165530786696725115520604000957803602160260608971117496483480620013367365728887894773798369381306668085286779997455602607126275114247729293884261658307194210683106841681161024785989057866961462321523499081728213847331864911120462484565237364261853457435950259277152029822824660641693959105614229727953393346366536274152662018640704465602129469396446349710022170947449961396635024039474836640025741305724833647226319759280069411895775492753365673941266904823796568215497033104024286329753507189113159515540922532192535391833290976601582598102930671541586164921489487439792641378184428793917261244548528145240464091456468050908741392344655936246144946793101570317779246395923518605060769374105905705962499064217752327318217804073750677094884936174607748789380203041936126732279918605193359830353591813354569802809464126512168564134557907211999242951732563076113917775311056061452477425560762875106576568081227042183539329981231581187031662845282140403277238719827818427834331858162931757942754563876895190689429536317615327163934898167273189991092071257668966305669348319118908624918707241955538536419405149261000334026473622455149047185522635374493412486202244248024037240455032850332774911787109426921585841549928553255137770085493001850074519619196146513325656373183344360287824875718249538696409360818081799143287190675339647928338143496817633084702695854454193923128472017064347436363067211961982270457901137968233090914521433332815600037568882351865869525751680677699513020839036203514188305360693984251306572428682113276371468744252552030140125415206037751598738313839903390299142246928389808018059371664595121840766524987449053571283959272241093664957682987429535329431227114288521332607690051034465571222921653924594652322385058840833439596847402907068881361673436341058027545153680774160100186134466593127374077408004831888508316709581020963708973004495885583277256443868101290212918910867937882376998887769194081492311868405922446820374185531944852222752922178104806366293314647049628497407696188769510468669430956648273341787717282092585345239922172238879064763758755902346948903912888101497764743110147069981816321053527706413942261371016353220797649380322113632550393584670587781651311390632258979791550074700550927034353222308568551879099909874637767530920434380120388499981296856160036625818092258527911764844061471732035889966530001207639505658148621180553857369414800763732573335004685153516433117349414990076612858295208868438339772890399154225384837535911263100212877164150846543277345693479535271786613415956659164912396012064813156771404345066400220727942013453046807478625562728971125052954752323273723090669868441408751249241520672249463454076422932801776814093012897112521928142717203308463580300299712415924664367850446327963631914407975625678240103395333095397755368420656282813414972728824547802339961759526092483405104980760375023239261993187273224999805402684539232350902742612138842563513740647282497029543048980219892839905819241958100178732019026569727602283557132364827889569507904533575323129198042250948535361074403364636467622085052625360806919205955337060753758608046691161618028063075172736149270288321936219142079613454968424860630951220278952686162064415858893933888763331934962690824007233428445925190405628453766109251677954576194064809584057504938915864525325719676248804260692394607819721521631998742473899367377982346373343537995555248580928413350952166542723295863359127831631342425274291853736727803374674406639602772388635640942517645682724539319034210180182694946705451979681731321739225951357701566825706379699841752260517929855647639569110360241727461629516656425838497888717314558751960657552332903715790307901202821351344730175788793167966765348144830209794263265538908105242355984192915080077558807787523579208172182855532326468397860985185578726492013445919484643471759930011466958630909516631423677361966024577599228265542873226229466139350696806785806809053567983459447529918576512342125586186926203334441570131813962401406792711029676370204408230840592869943423639420745325640736198284569949112215490603234106784182187727402879826327592968289795856971751360112595698627971894673780080322905079656147651793069889862783166319036011297292487819555868512614591850393748859607749566415605588948914831320452089811840749381721906496632881105565073966914556758021629323932928855794916359933265701966092291055865693527050328003038946101148239777921469540422924364919545540551941451350063955886819069502903924354502456584660857188978035476850704326002827984622480130006637341442492069326563870350456464505038024666866496427712570393701022469702027273083404383578400147397240623130881945731373221177837715250489938492492601769841348755286137043412188829020213566023210807553242270162443230482897143041189950976279180697095243960905125632029737291033830609059821398844530417167507128147502622961485769825702023186668756581899291419280233314622451110646462177295433910224868040457889055681116063248663322368583043890786721097417022003112316294351826178085271310677095136491085505446653648857890435167917090069241056174207350893204178820890371132182367662705824906463246031650116881684866206744804919789187866179271444085840946063531314209129448927302675892425783204661665404074258175870530014333865640791639482212688600756490485015339462065000912843223501255964677096529767348355486236342087568996765144358120059169074826690924938240756541055603150626524283950128356770803146625414363524547995686226478381205461985996046621509450837012679296675952048584289998351000137680696208048463338906124030984434096441608313195643008056624297847907415241001638889104794950338874888301261571151348502905823109784060771031667203319109672882467777028284756260685246049565858337248435195581930555259358877658078812832721867007473072303854369490106615202895303446809097323370648721779450505665847806414630679680783714239081846942833263188118988367551756655453551695023094627512129902862257567933685825434356026005509715880511991867835392166177121373544267417966903222113988212198315452067088130341926748754262979563721664890498622184917543194401524501383738363641172015189413443818885184573610543789787723924492230103212949082096301230225441300137374070289816512290397619690876879526894775350485235237716695353357254875885515311815159367178821600637395846688206915385010119600914561769322053363167319875434418961084532060484174227656456793772042318243696949300195682053368016647385752701081634043976359770498175606819327021978871909349907219519780028082672456251819750306500597827742165224580696901639197286432775408501178887648222244688846347843752593879104184747930939326302998971327005356483711241163861576988377302261906608828265577321388900616580673721397104869313800551621871483567064079524468093074293308668249920588157537837953710091523933354044224870788730274136278174739934182220891295178867745487348203405298051512487878170140177790507619632543276249657513819811593013059918588633409211584260231209491914893836758665559565248596114228682744245611858024630426839140976871249141902467225293106070765097647728633132088879184589441738505769342800576584620530590748079899472707239609107549086380874706827293015296487732043792790238523592789672232051388370273234768212553799683374223290988551076721210356356585908688478345904105808581130657119327691012463427644074477815868232484547455505413629189021808153508059338776895896783586422206096310558832604836789139992163827909155686892893947853431205452450553992397502127324283388796127936442649984242137015248886299365043172040928002311230820622142630805027282348131253793242176977271288715666478723246616709277266178243593160117127029023661338539464388627693366603633184038462843170864793654501257801875843536067207989444970850171421064058290221235623829721042563529542193678924789637039503447677485490977482514059761738858717719971652335644630158333415869050155402494909833066432310121349556547477846807992253934354602683522181052334200614579801499506124256554458979110525787410637832959606584318078580745656521259163422883276964599509233695982844985453682232587200465578482439059740567482793201934851836472850309012964356305304537455939460742314244447765700947464139332745484745231592152708561460479229925294203725103109647818723395176975237679838400340917275816624329891952761761871465497217491993981660268836970932783035205501546084508237537143087704663055005168791891327553488664668588803566137591685504269788874188741855005986981947928952604503265373273688563909449587677084028345356127072214748381139827238769703130340947338354764965900658920848874399978512930214513543077347389559804261502668854391337760037584209715236109922897333124418376081807040475001453603260868020913588347771662608238117483352875497932443095165304016423961123220818484077536727429345784188110343771712747127592668072612999763185339765479862611554888664075834098245258501446743525099635570725748475632204998577694577743274198136729704653264327399975667783565499675171630202076491210066532191010958199452960256479758273983968274322593370647462732887823350609105946172464697513339746914033191829293165145199642382117179242727879054022668590727426505819673102411913352697380465730257025810964096163324753714822847714236267138197329438318361021724526018455801704715856239047706015185940366013174673632932071275976448580406630799718676004794774930723133393323871429366092117762008589523687591636964266547531580938097474595281799296976227699798992335020589153051663898085264543873344333177490140911393183260026160422950478212394695988097800511793831385268619581315572840867510345056363274737433169109049200842538932486020096730857846702942887674030248849808990721904091810561838532177038699461612959429723824645939706677983808131088898967089891379421873193512568968092931903517904197806270748973316185494585967119922905603604226315854250287773569326214223805512533257936418204886097737751931300235938160448132603003310150851380954543639911281053975735836060018384982853540089402731469666945623889193917916755476789404481137974336548628291167596245913789585364569543535489920374643885223900312213543065170482145369724073189447601044958135190717115601216842486718943515873365458946452332440182963200256427362468623954483392877959163730632900440826061854977091673042991556566757532748191339551693171542616721137190198964710841447044076266370618554703703213687250813941927695173413919615477718451933980658701353174043012655106337282987981351917380674237796450347896222956198859062792776680435757711795531999741621100314427816896910832422885062288967178807587904417452172110686908506498669084195191191156829803645511224013359578241874028911506584559261445449445904667644047340334326738419649036957112982359362593587745647704282783490051902537853409543167947841521211581963266473629968216324021276802980914955022450448991773765664274631540451480692989239397645597382078267466328404890667172334598372415353081218983486367524929496516719838866981308240234360026140947998681381253971909729368555082969491479148809338671413884318131548995192319572483401366875628451174141029057368912296678895686003063141313316391144744645091302209573073818194156242174065449565671492686415546196474256579838040989906296861523529718895624913578499285068494812591546998327090083911136938221260114193977029756440281950962350891943337475567483672021895731477154562072874411293594836024720100897109527422193669484913009182188409766576521270164155708330024541394285684275283779895615244109714409529510029743984703474148889788834131332144232478341608582000345531784399553138834990859612704189539115184445788272721982263417509461392176660441929138448120631301077026585817068381383109314053482924904944008939818171062383033725796799178422597785585490781977327840752217609349425689075610804683357529889370032183384908351632647585715185695204542281292528879416881389624098546439206517120740101182982760046347261818594744236426439381426814909299354353727046204405651618744101780856589735349356351649077629520632578267620767856555956894274059219934750901093225581872134694819354629255279360057289024060175907132990678053592571333205361285240470335003566255910433456979715400147823058054766476658077127604191880109700313269067054510292964099082298177193184750856930430869390991754201436526075169722495722731850352356409758773045006614617538538335206289732029819973108496567428715229996232907715544373264305095355623461515837090435786291164805653824341531755911227119252973806952607226655492486413430190574854075867692832953574935584100747199687436290261459337874723668266339702756503009860862018309772613174876867323130674754708047009683555475647796069394835441046638802978592595598452064439378893296937444074229564875345086837189965799227117342434900761703801628996637164893725265329161197136958242692621097248458021998603976905580454656702546971944669980827432900855858038574527761147832545800550284315252925273837247914737223140038953999797726732984648227017019548581118016647495775891920133244219974264352116106250801146582158015457855451043594749041135225620366802421301501353104895733342431435252705787731662823408161537420738335210864700482357946204343518497432054013156343479958013546501163098562031937626246642223609375644585563180998771400627965725663100145050201093479591584446123946627136387796637814357996470627932640651007083713673010606746483515834513202580226695323103725738828591470941905980338293369537980550616314566653578155600508078260537859767975290529048893132884044362234349976052058958322717226660833776104104393120833119918614785943429125555443232384056081177494675452032516926265840573722329894878401144296510840789414162710641307631500505380556211047617784655533693185878358340369166468410865915476715344309575990741714356547772209507421583154163973190342951752010178592602989356631832004075607749302728404540681169741600072225126715278891727922054687336286273104174038787878295484363474558904812008262184569724198887137220499805395200682555173296452663291139617085495244790600116991130518359778221209370107298922057966166134539042091843445559496485632065200655529165723726720784746043286346281562808355718788253255458904928248725906158039146366084921313609696050051139474062852128947693318751581942716131739989603288317902108363127358918715380748171104038477600269201304509770636710161065527454415798556324111388929531837682654371023636283146889231480406453069779782071264356690187577854724242304516477430105533022048678193820227234655012397704191195673975312410079933735459984130251192826441394400678654615175178734139413599429765490750366724145504646542179630442686882185185803637834152794400573765752205667026802582882089689459215456085087870023366405505310810247443459493803194278181560337723701267167862469023872656842781046849999476085693044682793502556788777051882852619825874261989072012962258746341584132060038319120791425444472897040318807608912348213803030437556711196158473923146425441515093695223787168535412776183666393130938159437130984595492129879241204293904267922528613833860009585459520033803862130684525291817094031184045509973207811878188260926473148470446477152808274019858095154201852336613327492941753870034789755493153447530210195587378741618853020171867754674766707571851343814251150634102200843333061718551160598782664315268513704529073887848459780205218696532223235503992809879856760717857427505242681257849741473455510370937321320613922187619477480788550177663071338154946793231930057408897698972827908761643558346814690819230853413776753892039428147459204368229133298586659280584074173312496476677966273424075290243002806682745308432560377283045141680997964644260395285897541628580487479068152556447546296248007681014606033969208759272530126750217200796844424923372258831557922526970175320504803665100825585438162744004672495042370999943057265263552313742330417809959539422089368459595783004168365874905089558436904480996919701238808454503638305223723434375576864940253157646755920033773381393266652422999242511233575474495537750653538245630897728347369191349815360704273546555337834417584803724635027870805177680520745935092808236330318425210121296145116379487037019740373714558913946127207943301988749676392035614258334890279790840717998522779889518925031923913234055922261685795283709580778759236418516683367845746653092446864700406833761349467979476515790003901469302082956778701226005345192684933495068582971420735610059781327976945950122922999672762798656122277241622753519516056344133134422810705622934627910170668799364802361592287179799989709628502071813517926062615901331587961701216365941635610579726167456376909415670694927657465108881752190598807873001464127581522761927507242642393320436867255500500151173770460813821646194443290462083277141373352059121828049835765754215820534757496261700784163192114639410743854190855446637916038310940910188218357426070977447349973511275751873736333223281501354869158951597460810614909881696847235958598330531002193965650505506806940565522753589110989001386943606014630058317274496158635409369171015426524701385701696079151581773810921672454626738185242941771213457138972873543213122012740506976500320499664916917625967734452207865431982134411986022317107091840453098951395167540985730282480306149624488944793471825457515277704677439287037060743389850545797171256121183444087749341485181221078228867114326108474362986357979175347205852815746558993322692424338967411666341785156904012297612923578494256122372505569689371536747233770566817252995256703416939402939539352922184362423663009719707484398788305813541919433170148547595585822474974325379447107037076484900783764261017471863654262181668387126200299080188713915045245541176926346278913147673763944108858675544403950507596505020867164286139601010109031035612630397319740459289989676576997390269809480211590533482364072604132026788482660947184867183834740035565383894118426819883290422120007947701862566506732305217233764334418636568209780754536824411805105078983519468481829540346745987465570319910784501531751082028633852278544477403106990705754127012831257969843049677460171715287028953284721705954880272320507729708725457160219970778148890136018345291194400725031089469429656551099255559548781277298009430196613473202745029941114227821501240565297218692194049470235010365562103218016882124897428794904661557681661982865106193838824313145834762982556566131021290198113721124448261951221298864711192118982645509183983017125977008709552739388815640934718827867975613912565000920529978130402999290744375810066982950803862777764584201835019237114293976053662405991760208420573671529505520409858357656513324775190642960531771993614637228450930266021309964430197767799101799253879198927159006067223313849358753879058174334974442354952496874636853162765498631245864865950910308108374129444162127968638541973253651226403130141393787526010233938394437088520785676274926839751662392745688555801105845140859645630399616113066901834146928559622112951579176873997910919333192391381114232938514501516505558088586703530148379989816296494432748927620165212108418458655282027039508147472829832540600649813285617000658274035378056925298133635467963736587921849952038035124242353731484999329271468043333488725594548817812381839623718328325825218125412330247729800243559006698845490643504537924694357417297079376088350412817354626258833467479189561009605781797162373819646938087643769622330725411934544498299339996128791598713360282455351255071846145181099371686099684116057780893250464534587140125643775081675449956112434437810975327549055276404388641196651305991560654716078665311355833414839043800925478163179237990095169368436008313410419883085276838425633885738786376471655422706119669856593431744600398204970802069344953124398682519451616207977886849230781455610254203926900949687344775916169648236332262135322452404573164969601550250375813465923700403627991766298537736837449870540328769704735191598036713023645139867655730306253691664160720913306568479514655086697338416249510230173252756427445059342165894977542820191052532548220921948326205405865661197801153068047729037780235435456523733396268696614517565372580241874354698300728826822024687337836221847934014871473774606119510709500299138191525925381752839131473433177969761335316047161052331362893705136562379606694020210631510475944472010276235959176434861591556163839215864106933127272208642004203259640595469903309201694150013398053229389023384219222670920841869227263808992882345173626828863619996734809792609565291957816515213024785643322858307576091397173989293594915419935579388849832357029608822976667362278424260281444283911765230316480596865908443971955423821363286538515379576423101106539624626686438532751883511805240392192508756490436045170965107249675523832418326604220441692201390652596004151465173970948934487329863942165658248789509221966831369214895849308222125070636297089676457133705589521805337552445161164045392122705929988682542630254760510486882781810656672798924751577657153835789905451163939484300793398075471274266027173723674474546192648024978048391642728194384533444087945329868852081518695247812292834289177276458258165544935145968579152819032867148285068025855946325074803628866610231550854725212557268038155822233179725867993775097151513628160884896999294911724591685710892803155854272074399477783142365760457461990711608786615478580127759102647844894213337699922600875190550328842868857882304466447254922046732501441763812973000136085000287126210482685400423042671787099801891227035928581278003306080642637456142179080329255225092865150579174609561023509220253722372086127473053263046317298175322901935429304084454353255613377272282426850017008699681276451498056350732683354976813597347584084566553940747687527820107828901238561820470219429210803213774936698312963792100098631219998533110167177946106235512243533461816882071049439286537965595048025220542293078892392741451308471401700863160640287761573713499877366757853845350560519742697980970646949640716925029314477244808052424829928040922425945894384403792162807628135869335423267462303824548657271103846258359185879653044515225984509302864019927562842704449734181679418313335430312592586506169695388184522793808257663752959051366254225834619106077221332420160837894165183532422529793872057535731385054064188728073679610234384501802494699413659402432400495361681136528704868925485039906898155961544584761167894154143264027911506806194865745632466817416330755854512554107943468798974307310138842020559149157719893254269091273841429850069132342770812206809376287227986269025087364864795890928618293915664632633019856624716352545843839924465319021460520006345526203039861836622915451258365062029922811539084174447247106867068270251972150423933651243610682377067374855817304579489181654061380213915254040123429012876917994885884017996144601727822076015074027978577553511364309140874129517124088181285883584664936786915384254842094509691732622541885366638840939800663366894785032459880575594423681725582622757645767832328470688622940540214490589165512408512938102454630998083146954146450592428241458904904631492699455942584810726619046550913214441447123931596984906487358455038086378692902737362432203853917541118836499333600208414289764717745353815809968756383655711638346993187984865618135460232759632470624541009387491007148533962561877777982606938772739514714549322020123222542712544802280769129944115488498188405794064786419480799161809435071895522142039289235656050210826978736335145564107676418480796139031901748075432736708937108701995682477351661761141451320054175539789949891738201564065541134710585784216181520188537177316938952754026706556984668001726501984182877708097871524141114105862164214588074467466395222671257064577495732052288158879819791056355003682962204775306546628446907963265187370137675892622012902935483106529975858459793106446607831867998751553308508065636222789268164064686934705160089888385221138276553169472569548830659013879448863828566145654298066161164216341709276404875562339142795804977767028013767033635347681277053892062303211182188943526975567363759808214828723461275149051768514354957322037427925305202684896092142483846047301301110596171107614761201340263990953517345325985029447271223979702456322934815233653459112956221652497540080563158033826147899401381486918841399109931876733593986696261389614276099809904444718349505096794427699383877389825408172839564082512782311013398430915550868355237039965293443883644340429857647407988931795812481348661602761313642056246436073160417420078291606793442535959142407054030202447559216079188386734816758207383496108822226911191657184000638670226057218979867659293025385487438294039812601080233920693822097577061972362366007872243437819114307860090766919911999927637797098761814138997139959741059663898169987888478461635822281133310040596031412927585851136995721604776684604199107459312082749187004835465934714748990761755657698022571619112655400161781583633116458420579175225905629040714882356612867401990374678976358912097815635370672894376382905664427331424218125854058535165907114896147559097554035430292032171986073296399572034914845409148624483527870118637558415717490048528097706407866660736192975686354733966305585544076138852661383926619462891179760922206162346867386631376308310874061345125595490728445582640234961614627506864779779315498057072406779309349681818115220957774957649684814850070728347447136705440723673795394727673632291835284719930281907604117714716384875741060137716988002165494815251205715738177063402153757055132688023062744872278027676010294006817195676531525478902746083892496985910679986178463738835700955765379000133481147396869546131981551797104611371406175757233573238688216101120420843931103792535866287573739556347611408815683001867170316665216506602898618702544145807161240096821286975160898488919167175266418425179768525659060932224584783514619359165655942956390214523303358584516161667724615893106733412513724347261486811855004929786408819210002552632401722547367280009807369575676992962915318326116119138985731520776262826633090630903469261618464856844485476899635627124099492666330012493504794662400266689830406663755872436222046938826477377464197929930279730823380649395791890462892692786838027908675475918222506756377263587504809694017610043003638895846822617153119690689086313859236960232957750636745344363916423488835838680331158231621565887829769942286340741255129219777170129849928965240045340198308570093032980013471004881833885752296550332243702167898471764912990521929381342631687982131157416537814951462585886097618298508252591904496090662238844352137802752013035431676901164620488702628421643452480918079845412791806625614176862428007738950240716631164219220124589992160506197958422287924096440897262574854194774383454188111754036570741773795210052904145518169684760670748980632442405331133885876888710555237945008685871986210004239455385205905512636906567431289341347073843440314014915250144991049643708404701253322753369051323619365199103549944043022658784660994848901529177283482047803679784738747718626733256209499597578706217281162925255063597294995756325515963557653857082595919293103659028670042502652361132553308990469744559115294218957103501287037158874427449787494295229920877288607911396695126539535162724712483223664322944518336276882270800341843069874255107432981573885999177575041205757280715322777944866680252937197726776509823418829388188050606428601980704997603751110317279813881844765177341370168918554717415827130829665466002102224431325419053659053048896462822970871150581143030709638452314190489950498452304670728199143734268297390677783544197520560368331448328102874870571225575543580129109248357917552346685257064749578817908012875326509804133100906923596109149684173530184256362063772479978128200808919519884767035884938103804893499431339300819415499617189537170276457684542442386134534224297703811186814631506527568080201217994927071604914423294383964605037484931464365921484438121018765493591602764337124075638328779998303717183778841607343216953295855793810838960240907132907773940125146100197804679128396830336020861034661742276745539123773979656612303600419603760475129965038835824285524658555862944914647656921514644265853718909617745856020375251329293721136636661945382496888664779822786953304883717732147958802739730137663979439592053988989417122118807794547920985918243685998777707894641384446160119055268861325952071857922871009738474887091669581079885260288745953535687945128770340221238257230533244896528403647454762664876995307294603167354230514938087620361587847026291561024040029594212137783151347979124743104405476217227983183953128683095265614083180766687264321562751223861116007696329678640012711649182455395460312512709327616948741356685760724002688495964113864310169419077027444622610450600245249797414827284994534809891031076319970940538971063419690323735539355528888426792387694837473187011276541029213255394959286633324274519767338185032322718809746701367172958220337733758640955036481142317686755336960573846166156624750475776038711608443309202705866355409288553192986015973805483328640662121951785054857328414208309463003413721173771941542474637570262425605838378973175536723885208101829808245333471128754628568231940668189031512206225188139950240900760438104811134117959365412923564328696089521416420220957778853518683880167257165766396863687983370482448372726157743434794781954513297016543147699301416568123336186203547625386437794964908654626781048072962765712349144585761038402127728490902917788882286703264451697641000117235154187860673199259076641192358457437512442582227853336389299176392451260483940232998631823068629627968081945635162362030512018444621939787721456708507226534426182650461178288420833398235760337317856686810361591385510691821120372774807962478974068238096093318532327356383915886292977266165609479682159332801400458282517974311584559581902273983477121283185564464928371136249416312317695088014749587446203181958847883905760245316189452106208111994520247238631484897695545434659079584343513912601096003044915109296607821731555203625059269514685392653976578602962617578979430999488842504792402686314380764541860581474998943391037500354663328762032828057034555193518594784236669939770895210878019201581425259640981598288352344731500930100537369494382820748575135391762139693701297987303099003456201145409334415703952812522759823919171497704950524076319396832117415518082354855328948419169283353709409355335399562623643937656367135129205854318151397371539887076061462885261609537002609349736229052696484126926035086913683201301981363281159919647192235626676731467749541574353901207729837649413088339886041278536411658573560200499618470892135007504085530325578382140559860950585558132990471480463334497109256053200313629807018619719299069591507854390981567685628425831534566074509389580637066100082476005531542729716905521493981354468211618468784268855573182776929015745772825749769612256408056437732002592253532043440937423023850339412006429949644866274115638587062986671275255203859504847585313005718092365969736133474535705298508800609605333938652978273189019139334715411988970837390991026314655181791785600627850983606290627362291100057277774928545246328453879483698000319472363390883643095831400321668872267719938570296721366740037732048981468455221305170146428265213846339074984882474618865283850639158861450253039853716191700765339717810360655759104168987246214240477734720003093570055489670522381136864628869878784589930833430573551863453151220119445415419556054815294793011074834936425488696794353390398554890078081053287501560623922779276843657981638421449674936347735464704488556561231883208652422979121051937324964164478372330149732820763345583116030977631860801331431288805975845192512919856018767137309844239353955458998857907006467650535413126990860201429796032442462856357248130610883267859283677925592457734540071782078610795048729402081296125943335616555147135558943283483069663504558045837616911522790021208168674022670760140504757019167667257113234812896964938280046999026175505246966900130217452223981330803542196979240322620358671871412627168755292421180961250161828242233452114527698735530131710730802069946339154884431294194095254965428999857772717443524449934969723804287922621397129502300240742725003888334440735651002024483609672045957916759220934828950327056586952732019616402784964568821763989684801768054089574039190924087088847221331630778366314385578386915014415103108691232921208049080992881101558501492288577147301827900505547738657114765968433693597989307604387573733452509902405174177436037452188823978319786611046637389955816885985330760175821125962554134606059063697347458109292007581260699975316987525936710941783623522501711501923220100166105157673757205226157221110605574373266716435745761759912790024313401965478532748763173021655098173550688617713973641877488179022711488515005627319666926508290118164823745030171685454712089348755465594700478433317053523872639757890699172035513789909522651703445720502206158898497688901374504757982995222796164724235028231022549600666600751962412633953070534610146137480918570762254514510503810300591414971735240775867594591367109251537809471945729537949306499550220216966176613571500313085340613432171235510817804196475416537263915585089595240669772676919715605653004374703652230593286822581559609170108720105931104902104899822911622460554109272316653395961779393082835795239445993865685601024280182050440509842486936941755874982219627629032150184672350756985481370659290891861653356633062603980406492736627384734804273954018049704107561334855763128492359483438077576451711727348328643084057029685007802398350931677697595112306179179544206453450525550224581377730914923356264630533951544853937987175202333416039547297282952295876072459772694475251910949913692940671749706603856016951122079866754419862273115463774686100160414802111416898663206013440652431366533546566517788010979227008771861036104043451229260357502180744424180791961707769076328954139234172742244233816794133036531176887415724997321343168021752344478409502399032181324879059019019217535199695639798060434167351142344294501176717375447506614775010639559923694620690855407475766405933287781097747671872609998923206534175082903157819288783478429041308840683650685782039523112161984288693807165332812904220342334084418220874234996088176580817251963607180451768503583331758650509715956059545951411248672123272201737808379444184790244979751531252590343480049733463466054383077824343382012514967203598849947669588539946895835854648633569406443589754635396390462288888063040745916402220379037091499131528468406797139627909650583193349612729730274785824674161054223564579297916791156669780972487944261545143103848185563688012646767426745745651824491497456149353703861538079968781254072589876416609083726950086097112815494749463407747251811407852874169894099559165025152148667734007271838058444850457703560639777593426112929764517268560888887291699555597999154546265973762577349292705068419099834134232881748676731192647221286816542142991318025589703598232891724713829104334137799588098385585709659903135773880328451834553067744292685731619822723538800787486613176579240218835613894692329406043227819652144527358678154037732259858511572867145688077912826616588549215711091647279556025175502302614317997156938274548892496004204849010362700923886974016072474589224474231248730190797200979676194906669218679081656926667576119034285792387695746485362796166217476443236206038339843904122602755227678796379825264964750296096625437829274806365410620588200493288820183168343834162050215538624790229323927379145505216834980010341220781382232806778743371896689853271055866824034166886055707170205663318649984951048057613763324354215692923453173258493644270384251052168675028225580101439312099030843619316103244019232105224022364693062388454669705174272564333811000743046437103060418071832214577330708706178829861050809839738877692840233974190373237375920989229984737803296574067661236328212026977403202519692116422784513523381539676262156277581617722567666173794845742657399630940789636076243265348493247549845042268213999569853198020274881043251631168197319292086180960008287134111954795891545644900664316112031050967910770236219548754809715457453021101839208427409605640271800525765872925762171612819292278567399284631619074278774975725999331128879412612659440621470995864075245006517483602951154112078809245674840096600362407956735718193698789556570300032344489547087384112935896073151111198310950929877337591038999148953919474004172348390170853728488703866632536495772541583580220744129693780145244162681712839689103317820312112499153861168553620644486257726287853073219559252698762183883771009552922960743621009266275962712214221335884366353498272547145000945394500539176055636088047991137237145600517043243920538493000321616112818171268214122923760620048903495662974969526005289942181666035018417387668733949508114067821613521961784013685752382185406106440818358509755762390613290858817879627852941561022258072124170477853927962700366272187496005793489677967730203503585202971369623268140239263466922360187475243459660995163054707084413373834735700914503176240090653246267276912200933110545442313967797178985056946302314201599229113095135305180422571887400593678585550699439724527424013305980777607366334496873596212715308917015121933827079268818634981943198729585949626557300870894580587329420004319590066150370420627600733587843433983391784026613380609874777967253537844883645548206432667214453094429132965320350736004854018516341847979385096883902630908464980457458963774479110743164348551453862170326353501331925091362337715036838644068116694586445938682690595213394099191817300029036629236187450359585996977824697112540068802581910680571541567806176512015898782440225152311750481215142156180504090864177335380632877323420331090472459319691542813268145489684480793918860398103218665465707648294479640810636994505944881851499951083622357091538794106295725093767347706017858508705661396166698006696964601949755838157204219225325300242315581165636557245530946269426786987507341521464165695358777239580011047642769869881486266535148749483679025666093137894297510307046260808915266718196431211386697585542081862644774077550476490139400506982989159402653275944983793764338058276846262911187341117302762420155588945693300992592239894467737755252427478655076166248971080638726890524682719133293627932089672832259158551292336286845793904100836951024302445663031104004451426772934173005235339241351567927349621336097069070139123585640291319652070733854299363005325127132844371134937895345705054969205748547675310520127676011450117558772406233940859999966969872206564480166347733163343537907891032105228296898690609606672792552423307621117505024535912559017865219895460784314977209092383232235507306215880282194769267826041532049542912237417668490870795448719262326669428541567618269184837767435377686425448507400436528615942245208194251827860778523873660737456806588606830350420479636021843109573391976602778767893722850173651751653708495249373900777683356496601185356445802261551773599524021098803301161340280548678835529901220611618590214181453259742950816616597930826375450875802588088804754231810601636240882971259698176448039932317086666230429860404198865381375577592169812916637134868461336341375598023616854142427100713100861121725882358582788111708641667670896625972589946172812219382408270038776879143607937516828432797268793144127417518593695459088824455010221811105984389272416981183955133785665241350884065519382357316943544812771374714871156701231743126771104158566044919679183053436353254211686357967319999753660186465998585840058490149432801291046308889190243402189136857433835628865299836087436577563229839023810597479386965006519284630814162544327006214667097064940520986972246629729674132812083786611651913486877739237136774943514154274932535878448153464238589766040624836317354644829103743020514832474486606204916532644851171017553474499891011670774572880313622232843164180042688508014575337802514092114934228967483529691497454661665008395805287764199777437420603416540355428793372645480006328839846231363260956419306178241405048733488370534548242362709892303274335768457052245569022023276137470838741238680185785290290250454852085400480337556365382805151326528317512704814771746139689894294535651556458887097897355627498890361913334574951429036411885349031126158516764511255128059128797413141195792576397236888393615639607523342845829580735336584621757778006112703229707211599481023773353016788948095603343659734508075719948711939409203882295593628501754825541095681781548941089309410289295051210657626509021169024514650414380793340040029336093228647176115010228621145187512099131882686115158532112351662905206902438207054993580406526599122775086250760815121064475734765640027007308543397389537693407783960489725789977236505148835718517686298721914135945416756224936314547864278177977689789335204363296206821151195153662200603965156837467618484559977596571221818993605680835342551287528191009560993162353546593327681488980950454469302616912719123653420033362679638879112753968246637928458968095828182799597318557561348636728130159202486610248966795012479788212524239438835241680021480983489431430385613661915760459541545167126653919638160003332169607184884193982227052975268094392113778926731203123147411165761082736733753776100945208647819303762186322282985206823207010674851624603206674768298676854439778422417547158524879706055955401608694431106115324108326433219437865710092377677477753574412306557779535948962496104872062069717717664865183531815182918010549728360718260307009791406754837950343903370119468324251198935434804283573011563940230796161805112746324028513063256024870356781170629259217161007016959587646717639481818886223190145240376316169975646995785932601447717285130683053518204959745932958097385430434799090212242431314413341844743342773135635937266006781550251443250616520548903579107908544853871893315467542716915979824557787799649455038153297165048889679228191495686851348007078151752913645460554685944394201115224529659279237492050209421779280471524119058147830982856855631415591557280599588479137253621924775524579594691661774536139328082385833361067656351094788695425915408131396199819523506189663954226992272606373519005529793677789434776014434280301957895671846154254179337377929980138482589310984209807041298268806219221746411772735298464651638007899571182403804810584486557481602007148309181246731261323068549639176367297236418695149407189759819520831321396878732170932448283722942185579044116579496051380167960719239109033419201323986802557563327414895054557606881427998263023378975597646078993778448346548707522372258756946263228070417730644026191537445043056601806707258537136186586683551838053022624011625707074281946494654190122893978298857230644197184087044005626313932687757258448069989256764449925075246651304422770608293712003223952381149328142408156768119911279207720023600077155948218192900073261377585182805784599733895623354853608912197596869996914494503871379027636155679332120970938107573922876835909998406543675311900516271932941041972314027620394954483558840031962461705742721077869290649516665977736073783747245127201131186799847187840038093984218397292118674071895053427339715698321447097966378768177930676154488691940932562615993714508626919836311913759035891684993897446424800665165747857325553247756572235838040506190980955026337761074358700689224093384378639655092614175759688674658221630977252763967150257174774910089298899937001836280860103546666522627024434100942605784494096219821193177871167191445179716840239626326985540083447893566494087659094874409781509409720908529894637649950887078527087545536644899867206931230345338878890964093511997016698697678206186239394232316725930981791719831795131088273977307062594819392808676230698831039723026111477742448683127114035178770370313763656236187468422870626289271455631023419092218411452071120167002937010608241058126842275580313307154823339572212318242446310709845170461649411806787801141806882085729791906145561706380770148873025708781554193574060501801855756750884551259465923664305646991907817760420038449053603487000275352710472206859083691585754998239256030258499671505005690216061596295176922215474609070096824099193257320261158773956391719922124590390069644897317528696011082947498423494676607864876560108569954609083500441102812447992499816136670324599200429482766157834737355549934259425730286690375395101041716892285797985983036163814633353139804706702291194043923778598430722491446156267156957722546599352664789390389059067339102065093769240529226029991378981313587070203188064598294733018154156202578365933606066347886823180585477337177011673195921888387166563584567166929281040754890906748851386602255988881968323995324948601284782580423631929153738361413522669860194511036487034660005782486038300871960924398004819891461263416138676460595088708126354041443522573724526652013108700513598524591334270323577354883665331713564756881586087503638511892856829092183595226205352320626172151565664232888571090248881135719874123596195181439336692238467428562673094941685504597152184668415342981856307104355560631232040677742283658686479644776561836284620745501212201757884649739133431826716002472783041835896644188766795938679592402227754167089677314778895735017353701864847077590231581220978166639226742107804242439302511312304345628397072418972003527584531374484056685430341988491103254356571946463370219852876160815089393810488043728446857856664938009503244867170666560144913756034571420873527094471368922043548243070669918560722627344691069577330147951573346448370540749571846018581874567823377504667587497987884320875306288827306584139424202089285793151998650456801891821830624492189479690362012039573220171983635226326309449385889459451646401407672163168946802962080019416007116689671900462480357068674413197510978652171099262258484786671400401099854894749417402066471261352512578192004089336374364888456676733392798522754062575078972776362439694350678307821775800413472772035021496000601120938593873927595030154867850234551472596407400791291903693483040208891902497443236275233679445859654453138281025801680868515153039958289201918100693152889445905145129452279362573895522507484948385484047145252017705694724443054207718444163160067254563309681127553640757475061857720844065778252527819986202555461256904713362627817735462692104718059368011342584058641538767503696493956982927961749091800326485898616129754596663010613014098138957720525613854258124295778927625092133599988225058483304965137857915764784513481862592878234367245900223284495969033468750120143882831310833375566734710923878583687051079456518668496771390066385142430942451853840322036278552799567219619868984119257984058178712688303391358715012600346248692934301424117037704866720179588251558942130965271675948645461780790562253262865689775037073658717936450482790120262799901098712463096066037732422467996913654598572383179795229219022208896380097786121225296493805363962486092890955127322446634428012549766471747458067751656714189738873979714890772947442504141794407604876217829587973842569603858390618652573670697414944953464485333443577924721215327411884657480358767612411068930744517822954394482001386086793253282934656778284915722083298809722948011960545959720868950653861351122914326191115368321709830297494530386936655600694970427576888500265999538128792530036176883326309928576734893674787253276400309421191009182756356824674609301392512704508810694719151171545415625400099578540402390665671766546795808386530503923251143861263114912022206636808421272099377656013563038651622557063475363083211916295772793662418147687031279114826949957969348729782416444978455799671472805746354783942841254598639511427155012032449710492985023662751634952410415496159223996159410464861351656203910449919558280285147730114409197989349569810558866479329998585479285460117872560075769142225362635892907303631096468565481034861844285314138894430728245068753575944372738120094985615610661550904471691206776367438375538535234416434515109229750751409967665096474294806693360312422386047607948789411725595140179683923674018674097673383094290024283831481602479028099149650105717598381741841762322438815463735410671194670694135892922622338063371221015235453273009305471872710369169670839061650306795140763149918172449563575934570976752106278068553006316239029270688709539404127334573073400541786308099437587243723071129696775248237255597491968054905353024880772218601041707940187488252306926030545587900639917242085514530774156991854532050171069648789502251297716124654961155047622169054564241231331545848302549663511407662250662074952878490260649959717345609623076349616922701617222351440964202045955538570771563395470071703035259990064069599071454157962211259691382943336978610374767784508975693564782797877799422927779419800918553605778043108642512579792279573934211979461795009404994967903747640828200266658610880695383052579287862994488146503202946244209684821855133559076308032338811115047972856170472796219031561488842519773839451980923523319240328948080156925131871620074016662102516755717744312355292820817699591713984230386393203358882515889354424850616496626949216423122688325691487227396090313901458920177722531394813911105563858411659574692681402168158756737617676408544274047448921478473108232521183709565132768635882199556981059837905463019302320397674145797669001342668276095479486275446332371697052110503512199609895870622391739651284627925310304338151421446189534568281235845025864293913767545426414151022253065788050693548813503081322571746330110971785365908852749995942675332673119249335579587400274897309300895734281940694641401801717346069975398876284863620066733492661385143677177316337295167188804032839787569058536893898030498686672804611264867321338617952836872958876696421816915977294404892930396050326310815778505816088316919606656436887330731512710399511542455171815545418276245582898769088896454476913221389810327525944543570666062427013038857284952847167446057727351340842291215642922473023969463745189426153553789288030013211332060412050261609708390577175745535055814025641207280989977311672143480805973510863284781694647105987186664348937034667642161129864778753775668842429801216851225221435933693303733001840578663335586392435155946192332103841436966871049806623095515600298989596222007866379442655961243008325097890378434675775125684435088451115381539442888629551477179928691181902024515831079287206668813285102798975738391588017179177457536543215339836600165280718191236532135992128391364746536240972629958482761832591602789236890358026607634047601645984014728258113115808733598305618616871007145547048978884084243282085139794379331372417522158328610179271363267807045905908580831794590278124317010238902673331144942967993453317261822125413385958936370148138219989464856891595527868124200150962985850414286578609803474862845335675884174675119643275194524517801257056166106693303633593222706650260532616992891728442394146292944800998536175510047795263660333409333564325825763324964478727443061446731696284498635274100224798986848112237020060029262690398525320251425537255840798114281357990705077905322903739605559551380462111811805146215592487589149287119719542685020777039430232546195196518767038700832652017410765388917748629945250386407776999921335802894001197892403691621655266793631511120596450382111521239289723449269056860427878901803303174037478236047107607652139507758588200279340718050669202967050295600164869347275958949945106721764196216116216684162950784170516831227931427358186068572989814274706524662377575353282444909567113633899930645995532271122886896308114930045104368558449804874366788326663133290556504173740863938480189970595349024786856423536761311545063371296617860338710433163200117370576413459842121731936552427891687524050238187163105854649103566455598071233111098496470193640658118315050251456360717176524519163633794790165217060021554033877411657893045278887972340277685628369047900071150328720970252274660381800692839372870896681620104699699485865886132588564758979420157216158665829269497704642503699747697753047087644943100815428319930254953884279638426142992885970199848486618138640041758792333385886709645850028205536181061761633329091435692529257358200267158353599959432665463945744506799623414182249015247983461613903478286327661388781340715392945289861063238031503200375694723148663635858605877501004585649628740384267464219668310584049152974578118476415251199969189627409102425095330060591158288414200013676795257257199997313518513946533433239201230236024391835880500222897170782774208493952575098897327225919907015948377656055622672066094137234123258993259680410902671576455264491196182184572330216779801792679370303783922228560085788188878740173211054961437170380060018288765663823930646198366102404052318833625263725379482557837572503487079511078159051506871947934301543497896632243008923468782712798212413520982479436953712096799907021820688423684094820168713090462969715776245640742214422056292961321956145799628667585872560159417139372599551166924404167140504154619998481615761620315455193838998233012705608106302497433126243010876521573017107465597917520384430881445126652367113038145211900415807010819049822994714909264685748263088134478963612817318787227517685530396360884201155416076950703757536099800219936127179523058426448605395222972850015232667910853261439067845068226649438278712941728881015875620418065874951493711677808950268751392129536347061433328015960236237144215980433470764986358373973130468361617479928801392421254512222877952721501548726069578904854891733928809209115818356538963992670694383936166150923680835734836967870761191810340325474903658207921004751166686977178871689046043545977182388371108524173997446365696996902141692641462291324688316591578698538522670257423124142350433106557465764678684456507860957061675111377879469742355376460575961223990999012851884900847530423567186082165168164348284826158719909344348232006613940510974633820417760768924018074613328652113647320311197550498471606024008403452253720136858776750694571739195983859541761707995760023913509975596960953136666130934973735765638190776643516236801579364681185498482933982885078462546395158063584426930389465216468411460036813978988523144452330245304659869222346441173780661767211620457475423447973985194644202193597957836647927726576536614489363993540708251769055583306228284389863758601262325704948939394054415107876516858440966570517254391082547070068582088566906485505969014261641741081726590994649747173034971680493336555679782067972527527412039039017011291811575274147890558436324234084777985331580179995783990634186685527379099613741607406851835212004544765581591108693001989739871409912806196191853711285104518713594739865084500254987368548321946296718755900388777276929095874888646822425042211718659108415424505075270970504021117265596360431383024041604318958576714572668883585093509526858634742128626046689754523923950856542400744110840027295197428509783273625233269592207257524160460549064601446809353756436483973249776851084882123678539645058575857935458682544075400242863197277216024950013972391751349445145348931059038889673340619877569425795577443601248422211306983238434124129651439326557632562347824099575552209400699043989414494923240651089028111045237170224272441916765697689699936034384325791248741257594112271790491343520762482919645034487693118737526238840700976299123534332264153772214181186071902061086485292682625457869647789156249271066353393561289034627470537724048026987198252920242722584101561524913583813630035990599362222706409787238037575685985980001503832776277163454161982362792050110601936104287555668028353146732913776915724686349172727030477702833586287918918806439697645772110464976616978644378015925566909698937364888819611365574057334460512816564204653869790832546586811502002367614281186289133505008252411681024165810634793623314668230193421690482046810839322083048079869864138234324273609957212283314807189887458946383595870206578818709063006368307633094503729343114231730454655904363383114514424075709989243148922533904850628744623134992466041600274100342321938841410758715672658654865914349543745665168784275859184032387598234720577969313000478129605555291052874351282127934050836285489803458545544174575915724266658270881669285079843895736066197438552805694743153563667847953008330034173957955509247989372995763098616240681233352551920363043013673327935707314882889876060555507171752326324079085156669203838826895730324860042214598260091727052872300492373676347022411659911082046507609868130626689242820873682913235887302039466016551480822882217073096428694404576812478986739789641738630467964724979740977100698279779956228570475630366556373075902226280400484978435028236712749403023321797118350977358764000770592482116925817387662063710131275963899970078152594572334671779308146575098146862825672147603052200360802378362003137715856826250235306796849728727739661145235873405179437789266057385151260645202182426287816837738225183086724430480923615763044062941401730316244139548189544328426103813465305920874877479126404916211538512600851526893166130434838779453092148663723153439292473030825246556233457469737783208493235865134034623808282795317338458107194692191912237002461009823575445231652602298450611379094832805850222543519965335200486645789261908283583324734451623276828268144292005280363850943247101265302348945286948001762349405693610715222024383207395099346139214360690636700191257913953398944349552137055661223847809215803484691741850802287616210386658458588223163805033468428494762600198266296146903256581020861060236065999724575581573902660858208769808345816965657301481717199757603890511110307076883238780370752090039486137647702870990754634854421378186348689012043659351221121109239450167922356815757671382143813905188106540132331479490756836485912968682677563005432518662701404165418419148130641347454688673428592497736885186369179400910776629914338223414553135498645886397221219883982140915655467922828377080565950840456524088942766749412414790190933735641124827597445466248358635860627049220033704225266005643074878607768158302939572976920051672642860710215696492720397463599114739185090892006490321027719189113033434737780397566350178966592293292736624667581901189610254147407975283979090164723138461369160999794686561951216577814270239616838424037230772747344573742413270676774762888353821951873253762584781303814681869964196822801687013295668717425957122861019144207714479414037028559215088943781172479489553263885610371741436985554424439107060515252955547035642178688684605512460674389452060154173113042692433628573989032383455880743082838766169989593444866990519909219282599200988089611953450463659719020510723282827697988203915139941179479447792088126430452527150862017145701659837402427850880232633064612760909113251165996792145580069198230688957053871819044652849794619172743698131037065169149221869010023837237278812661711427708096508242408281485692038239494524412391570706102719219102291257688944396316964223412319202628818587672230897942508366027503937589562737452963621071068753938818516392730606441158104200802769627864052906206440045349592730259989318445367340838911294921905969733365280008110671003934832270789769862731405810195852070390936980177604745425754576997496077919992090025733555813864951353979775739988686203381744463418380820588275749167488222770806728428428461640168778019772700939039076218968239204313592873870454615252031425404975088833740148054059641226795966227327404470612030963789070661117743310730425160964022652585025620918146040103573945320412673261477966079829602874084478462743259437255839285970487482305865608610291886848260518773268333239730840253459331817348299878349477857087913657173622979187089196017022152866704378921971312337250958510749920954789606483530253303272478366028752753273895185410677808065656383798957922974101205715960457402351434858703840813128430502096175867709198986205385167607980360030617920940069278553388637412810737193961355838748192259024955589232156008116828783966981042094001143933864379304686603244572771473618787526786364084059511486629389185997909046943106660174929343049773878176724567275946346763180934874665588593509541080335823549337694922834436910161657559344732752610755720732039748615286004492029630111085892270539210216773312986760432462386567068354474980074486134671908108940694157867012117666656353730218261399398239484092281796542065168881211452254189284645171143747544774314175495753924448871495896846942276141343003847493663060518574474648525492562602235086228892065466167387804876702261100261759165177593071920641804976972327668748490270112177061613315749385575160267551973961285344827121449309809442417297684024713856215962570971136521902546853101929276262629632561822010102451761475654712983585938900789815585026322194574604616996032834808390797465463642249079729480572841724949419065081284027422689608526129130215091930268700968810135016874142933219743826837757609195272062887675436099541554980485697750757541015249024917489637535853675445560654261853517073595093747913100816959009454652785060676821858989403425358405419835520641108116125713473991217348980599707309131386354715868045871762530616071469137092689126138431812849550111698899967518578236885291439754982337984945271977783258397210811751619560159210280218056917290192786715621650555093759485317456223987505836799219715433278496500284956832573741521625461037753606531860143978850900722847760718215226997323134624564060875867363948778752756639966434895123653932464970147143638241410774198950331697609325522505207164938947454720287789768757557778143988174273657426249569959403673941538179299812362621152224921424228703581738787348806260824888438647555128887857853063275303572608756441389502430372162563089696994178779910668103975506433687475371613119519231979355921000922811740812715014650003272927339270100722977589741392489287442382764337881267403877739621644325649368381391773984331600198766757849586563942263078846586656044557864717575166459752050182222837562596319218078660949301310967715231989452701691526537637902569012639337341471837744209525476183585054143033155117397821033684314595425312368416694758866796539013060576604485874426867039102722857816395134791234170555746593135312990795343233700896830581210716171635815825456697612846783306023009740190570060776956893144494381945641591888941940612354747411504482644044289391462826640056113034076879663401511467454321948244082045339113611934345408276324269239906783560194250656051572595567323213646959684017275602762600478897229167056679594310028213711422209645287335021622785085056874628330151781153226081306550145259843166312630264479437048218015870030401190434752523762590741294469275250546489048071963632102440912538784585567620722294500399940777065285574697250346697295014075785449732405424148373536017403155809164008655739560225651439565663855547196190459952751384043861886818775257334080896732860693399993383706712543625550657708769299250316269611914075639972566730635127892073286622692459927574547931038966831107585830997818532068631842946942948092298070378110644706915507937130468642825514303520359110880671796713745121696263943848382176682649357310293148703903059815551729167947184589811308090161245689863105538112030805965609608433055518078922216444553178729345371596913902754409414710812785343193311151622218053526339821114207347488364801026071428886982544034452721651447744670374016597495594485151311124273093556858745972681783904811743744363357661918942722108375421404538969535608731221561176066553993044805418498945437360509211821760282310031432185686159442003348249729772774121552361939232563841704140147543027062867185444974342063513181007261844217453876104514334734536586908044274966314512256450994029290896916617957074665499923425655630570230265819654827814879554597510880232572561040365199179986029732277315526558631909271841518167971758159721527936684723399365326579647718253650613126067829952685404123800057201492932872854384754469577379703098006367263894255850203471015750647356792272750238093029922346210401021067330056714467609685296005803643763469742824219393695629723073476575140782275617887833322994813622733132866835781849523346769223028742255080028296355003451804096216710659105669620844573690374636056363489810614403366052803001172469297433735193618643918886355381131758266442742554572366927278638225604693746628486953640561876501183038509401263593354077257956418859463641688936937072696681980149182416037059907861304468955546604740393029589857941279407030836376245459927681223592033428076296554717973322060898383094431524683828025124499023470497437159197320565995334313823369326240687173592360244336074154005128371187580775549068295260507285198620850799308310307548721680726059741072363086292864355574024246565114861334776980020201430733694554881842715231599292502457390600489306078854420820510413878761271369603677157160809160431827002425263097505074279080954914920134305328055475795227060083027827509731568440614983828291516210680280656240984358997670105869762881750450434952090902433290277788151176490547040507633915717640876856241898251015430169164207353094459634558362989336396161965906607681103929210113670208226099270159712158649895183094606669149364256469425004850127408251834318102441501109654943213047276053483791025971788028554997674807654887503423202156434664805587359245840581976560722928055441724360242092361403157339225303769834554613977124700145690122158636312063014801814671936942316764140386256581228656835173890483221452488839277566188651868428153701375903385969022427855948738775969548443185922118737465337696695732536941137825651596520992440198494157255825671473691525050739080585559154757716878387569346071478253483694627572101934062534539835558368928766880765894791135421959977404346187664577903434382682546194471572376619624859487930243941599474503710189717097342093334334228272776754216920599760228305487931504501384925725821595822649574667794603399824981562374256040562167498950818578622214078872608734493552630680485053297019879593123880605079209921491840695381864761934125251899008371803854171279434175289292188964114775172027924960460291373965809454363006212810121768466402623604228193097843349855231473077920884910018209713178222559469303534436307004829909437732150670905430293007423473235386396255253485913188599751113431213986069994695609437376184011438373470084453208893829161700807195052375287983466162464712667016803629019389731420784439329819572800612104628622361969998967714403603626546701615742299097952438940364269517027154768328047338256112692062114794353996173791247086531581233167524125986327869230773904076754972961199762015984349329069332202294733600325098236712015071453790470669500389982499223790629239711749809256680730218823448859640021804912388649665648671277766678771305922246942256100482697773009870091149546483826663836373019918829725358840611681496895001107732970689984427416903593009166802758773692115445460698014944767785978826653579320970071554130555168811253199533965537333047077322791367354086847721723243573258455372672704029368816043099999163831503999904274851383660388097184646768786781650148268938464148372175962693919316855441366234577054170534834566683262590748773824926743169593044210025499108690937732964308022121027275790707966877552187418970367896419814495207061655484629339982658753775276725400238525943780360873596564215734823007865902669059871209393836692013923291462171037615844484246826858415960584155843122584855744724744585055712873099124434491290582759025067817126102598310909538349379397404578135425508311621710680459175418765477088393654011973610842321579104086423916994200735489020483836460673803595882941078820384639186693745262967281937884180588620100603452520436655204922779328374899600389794897377469422928616922055959003571204288223087934582100609290942060735836952863240026095128721626813454080993530462509006655473163007926769112703699879817331707792467282585038448683887694086870516682619138415028658061828924869637986155738792458934579938464921511295346763973034642328807008714141118932472224089040227344508617342062116428556641767730833212957106454099711707144512931849941033834042900634985078145299550125108363523520927220298958305798222645428473339055546861010419213605890776680240558567175437755567337084046020184601071654762770560501753858078560419413397389600864460015484274984583960240443973338793773492327092077341707954551301241077598411199929025207005353677811008719369905652458502680234761024830863222872068282938876691802837655821445871892547058294343161635027883176982809444607924174176753628350949715830072652940242184065307222318826799089858541205280721046111080329236795517567009764207720476816433231249895364103976059059017050462172149977944403975196369850284410949703232867194550363638446726727797842467227486795772320215688509015791702148323186925471185180686506853881923762028960659871556954998324284033627265262887230276555621873686725192226158621467904400779116314565114824509689870613224877296763733293327051584950148442585511631831216650323584203214035680174689928681753149683563615461040389483943736186880334127731946757421152212432514424456027222537133163799847484411399129470424225572543841184086921454219150049394626403031889966211986290647615273272922032016646611004066702988862118950784446615047524645869589221689885651240598739097231867319995966409427321853620262095655033877041862224825266501654038750384896912867844278011657018786956674399227031935702923820449927472326951028007726021334339014809630538252910237851221631764848272277868376493788376478900734864671295154548367339395948114845399017358611278708502638571722761928027034525785900576368947358419084331117740202281706418005458093278541683950560505301771233991328967151125358999726030884737122292833131217120506756382196824317514104920770621020354779370464482148274008369852625981475349175938575002248228272546393327663630152270472058717327752499521152739517481438604972965326815157729488943880587617139723199930977766681728670049042431502840591510749629946900466147827257626354354355243573972895858689313517215358299443913464344193040142224360916707849684709017488194378618254759641316215107263514747424767086107119067926016248593512747335404851362215767290836009071596886673541948049045468464953908489782699944545034939575490848545652575449656315307997298401826295710160139002801475157996247986296148909854460852419698178314368677046878127640921689122559419959665143052555284240435330843528853663011516865224979858731864303979673588825382331013887716720567073861065471820383234675170943136357921432946551744675420625074891604115893250963684897397199250002818741009610867817122698085320094469398141341158433638382392189740437613310194546437442342976580510081917471508127948325846709196912466492578652720922899374441212471221623318812665602498824993564149907785039321191880699043105317928992772711040522638072368571381029446177189313729348192999000100970886223060912891174227497344271702206307887877084859773120438767176535650010798188753533358322142496800883658957814563819913568743418593237305144303568430936489982919389470149636581790476999946819142529821331370045060152226083272333219135546583979673446266272483184527990197194423300141875380633496000543752970793614244805186999663584318389864001678678724127189980715928970219817083983153693301231879515199604726294872310505498246396550352448540575163528956444344063025396659929860159239108580476610960863915817165241412538902446897746947688230133017507757161306581028680359007186161336848004830625545261333754061367997098601834048917848705391698956668975291696065366550157170343268473012183380200635410217777804726146126735286824046388377044034799299484256362671053464012355002218284809055544606249741305515044045846371672555651929783269968327866146680511483817042183606031828657021360618532067156631475374191187613965732712279058731345332401935008865471442558644393322018879427354156342906544550959722858065113249731446244405045152034047273979528159003107119034552137622032369637624698509297808348500472403892325058733182439294464789547484772508576431607478832112932030195458698915542191560367907187653510489213556930269313363077128194967852504580581898108104001947609447836874576389984491726637737280474290102447098416253954787683823699378444581451466522294920945513529672950481471390016990794680690673749259948174720520266492941026948159364343437113002449748889612476192562370784646178627002836278497542051551705508226215496986724690839769793423390929217444828582117622285785344855671609024269272406685679588813135682863844562908377036060568457654244962707588157470513276741339616451455822422471966291598604505969406194702816585055503245278245847728535574527204012245471760289288831232114996266912838811849068855309899455383229580192685269144452441932730691566011944081209641763010322668864112763632076706426755506731149582176822760871745454583044545812742874522508676844172552177660010541796449063020980919263087762999536835632259808256657715169627133904470906593870103856333644633648314476800029396871306656711550869341431849136696793981293772205845108830988961937843359110529762068060924858800013376775012578677044862764043135221589113047904922035774100150461097557032987199811412818236124345769795377323334398610861155279698767556504907537595935494725796358959708236869163131337071266433938461913294333062069639052645938830108832019832688202724425586200449211629423319979098740881076493587579562756950560799457877475184360456365923863746862841715636525088301703828177836670898708020642519324418570615336951872268687999694113203900014502411502779335519865111665600979292244565808987809986568619581344790156246921404828246117330549211730458190779641297044878568763566480828112076125268413617979510907585260149955457564209231406331974438148885124060388851590816724741604455013089915869564296164268434524496603754592635976451550038202651610344202240579712752741367175395686870373666652522745676332783798641839447673745819759743559560670492106433669591429752969166044915095122700150989068809540698542313971573710023362974242749207483550195979082053678355139300326396316927661476264108806495700609685123540127576596777589406969998968722146638320194074828852080080823368199480393245987954637201622324048258085405723445607711347494679988164489602787010097349628959614816069007346071849111495657126497132291023911744618354347435715303083308307769189578856613835132656147323131725774736852840635301359514068791392059518040115605732922817824790411311976135282545041234738295703108963883187030416027916164248458688415116304863252390804967866710822173854647592719982982428044029902008278751907308812803477258679311319630379349221190030301015025957470943016685235306795495383407686045535983267030302205651876726577672547595570220691766842094887828917731771353430925591921200331389265208783033641413339284052491688517579828350390570841998967004864524945812579808938228046393786596548706717910731530190686115302904993761720775165195756517584874302752772903771946234810666501011986878894282773562739192114185353733835038203162689886691395051223900089902236338175306337814264486869949818671735071409698172365649771657564689408748152111843590936789095652981886246993006071880862396084813977990746802687782007819269634769899651750065301995438468874986527610906582606722029288812138133437654919980185218269328720914044626359154495891089228016132321937097643517337069159700298652629172338228035992442644085619108535453578191183626233976239645088271892482662117163039126533677435066740342647585061819390148353867755661091863110857415600562248829869909109347311050822611325283865686816018170297595552916649677468243772201500522227093126768732370739256432041381728821514629677897260399930063717220709890924246348873640074098805103332834987991485025365180169500113674034763796433332230954061912537067497353814983485241297517324120961707594362323519577343892665821121148270282209272707831476774949684406389381358721940380042743436379964738389801768442165843201759424491402554241247118561334941253724767602349946138718721024704982530131360635404776789740051319459790508991486692499422185593159098844019559368149936905355338716708921878132070931319161801862824390449430072602908208614429162963201581464042720262008909098796509825728688302864572960351870982029601296636684108024592590392895930304146577665430977184964544948952992892772409022540744386174296809926966993649518219079972911131395656415394621669390931078176125173742260580241643388952725936439713718570667683428314495602536991885667447668224066724900519386720897922418758900133982014258721560028682807829495695440401946533964627295129969854629034601281401999600786732472795013729067005190558464165888040027336556253621974344182318574773288145849615649357295453877289292559303691405199625910081270038682650963644153349974105364006473381425433986198983620990817486353857224770680394578486394876514076334726341271322724740708678812962227247703991932013964604090607585314997486507557823710914538309857670549559065247214226807319286666036463401941349081763802784745919988730621966087652933842272985221554551918848446078270024246203254303609264339156809391322633328641163425483402925017054910756276070956617909710193358438963278304251026666571527530918428580208228185179019258458475425862218287237796752102964083446941636354118599089406530336380379903466775905253249027429919606303171510997871736147692224140921823209651994459206885354630330986053623821303429579164115269331435169205728627022688192999609697432189801474116734588910429480226649172559811207560454380195965359113085572147767562216487708600116962345346398535597243402801969715076476334025820822406871837324816535448884957247137408406944001838054997047956826864659952978519661939912692178469090170829520582450705730997374335454008491582628889650721705937828836394528961253834130899620390204616826315646170095511714227327393389536669525277387846115580829282475577807565117999444828035816610106158805893177844607683256640096961786881661895114279022339933114483653670806271777177138196097525414501804382337281073925233028432988437913145547430525613842152406694648280268965718244268177381197471274681813743550065964914741369377122791465060491537312307281617460577994340121267488464640698715201935176312781552647002177157939389155662845110367710641346105500969181215070668218692566966531509671033292372520122237659217099927658533140193679401096684571594142668401148061729876320539225678538500356404385594867346272595778324946476430478646510189879197373921610488897643445616928031715325565707624340948068049718414278369561437720035772894451310790029266972970543818621038729665236798626923235279722976741855194009083203300684794100511866759790912298543994412114368312515058691544552299338119859936451032213863977117803235610483056691289196791702864794413771255073662775569512275305576763639718193545069281027545538064844913568806922962693012941921751702543663611107783763959716664770284864893313762032467003139010957681223997273857053499081154796334394398024209933905923513346224949914818566274360558074371574033005950258078799798084517161340201658847986463322621868280536419775589025846212241304669405709013942321477449037688572527916778950891938881961979484064497316855209064216096711751158592827034955133243264250966961815677641364089206226598121457131404953753607939466105205358622853393469852905837878375341572872279144975804732840490137124539878642936950530596599209579363934784509187156782177134122009495290489725227653693940192263093968290616202855792421840318826305997672459816194959195933913464123240558267735235740360884249321033702985081532126934657482704297373685506522782456167440841326852871085013000427316405078052316225561848082640972285666255939754485286933618897788518158654330042281268424096795578727660115704020732918482381641607732828839568604438616440103368581148511333371278079136781970034646643388367387283728090720065278536523511098364751058389090711276396867915125820415231347259108771859266352754263052043323926687816680184375812934910388540313743650664810490781159572940939693149591491191026507242006197894310275608631614158913487414734520126447210126921444531900050010113220307814272289358909507938077402132904631321582988045425904967106460174158583767634774105827913677777188069866747581403607778786016586812857533085697404819781395538135334131785838986448548495172840603011858371583842528262540117530180266539171287542537562385622544984313759375287860648423336989208649723977253810525333766348714358904047676604414992325999015904851825623562965876876624232531159717296016698699786439165141204989500805485360798420031855129417430718366438513663811838718117619829147527832477674120074703429981934781766242161007894017547116771350038216272267034640194851670586545763163064971863205793552861954941322336956129080945859949871705231542351841040743002265208890041285341640938986022989064131664494076115379136254726465018957967270457207724294197097302318253366404581480258939382948573403233915025013662706863576615434875549027641650767696615580094718943691388025806258516744779898471410903562575644339589763358763420177140742473607479731668593159054183588264356130880697132149815073578849976818831767993042517846961708982929167348758887678121281513683945532009090885706849841948214725355421764124317210128978156348787620899852832406575862425477600677864347331260847606680317806764838773502608498202160160085800132500376641770524322821780094289192517629241738833334829553642534966740251613854583646779158823733149682381041266168727101957417724458866440295512483126748904922447606473739794562323349485149724035297841750056621057715789001416181426115437548755014683362075031670521418648245766280097341447949521394122249729135149318448814372298196049454459162221278056449030751629454739102845429960122801031787602667081745049698573798232393140165029872728007067149136206933070309717970839408879392857993652444103460769008287881727135454347311354733053937363166793607677063235328375642153253214773182737821503319606163114837168759997243984833122887514541952730317312420436631051986181706551256875097102549448459151172299193728871489505234432286406365364612410722408065482929388611850738730223577949481668373262609647600564019219813329306903358451554300709595384256728208227091239484233243683800685370117252154458148562775077614613034188329057271776509256557471803349466859120579188661172161160743129552706142967323897771514162741628265015982747646000369798970716846902349972393638395440133438755694763982559625836720015975198676376479147097977087471361016512003677012492067749834161681902328685309462342022846774192900587886277482281537649989884564840484170138306208634771042293533109021566013724479478725706997197103010518212662821858807510559969738963652370817342404655132871704770168893100654147776912864417946424936986102703301468016549878681161184417328321541552602083393459567237694679279756362053334967800439700181350926870900749930346503137081453113863693597154824195154793680736047347127949869239753737184009722632164589182955424577579223994856393072360061514168657315534552871831343479409873281465020357464017878523574028842576985438019869784478766550052698153544006770664565874980194058757979745274008491715422074362304150727354820183661716614411896678359876339006656635423038384145034855460586263077667467330396748065229907701135514322536273678140645928011361950821400195814706437574204525760501693419019133991526602914985585613778110898060661680789916047708835148942864408854127999357941037279652060835809484978944236011655225677208441103238999170526557569409787947644485229694877565594116824383181134537167142062633955075016737639166331251071022970768698798840276135159334863262170415996844953651253781443935916077499237135061559749308453405503922942653850224248133864332220697588128720355424115104595988376252756407051730525869461856992743837378612977263890473674652149507298084004116265735562801851750652898627830087962530975834211609563429528941935237597307463399106542389178611581073593864982560921353194588875038437157746367052290384429997748357658655844713205355865973791234272299387256105204941691694049154452162771048689019576109961796838131342986817206960372622623388254497689371721623399150652953030281817084891218602509885912901664844834099722605548823723120521762858251443763845794478866991558683300477872872267910493387763755725853603795859517349329244077612108241834091846307751303142846643384358573659876369364710008476517321098388446023803145284865659935009842302134774183067915961487208123321163221861754870590479332834447010053540175896285436871550097178971541212070376268738774265463308780708311799254866162556205274587172265604405879423090066365015933061753225212010157902589956233520372706468139872804667331445158195845922789871702075686611248470713623243506713323676783394821365216822798792323644273862007278186575169039836266251131727916452813354333863213546475741805293939454563661871262022869748784416612163508670751038962272146510545299950533976551514900506940122008564737249391054860256326300110688310028010567502113983531907730951795428330728521886226535019956028197080153412079197873743812120998805512227768857592914099700981364726639205140011933729658199664249729513207969731118732938531332156301467429632517810219000873475775035557317131927856764350324328043367017006472121467530449045305698025765865358786536172330089487564948882412127648684589742226819524458638026877181131782733919587648860404271524591317253178755283087402008948669540010070048613043076687633296928013449464229470639670884754498088472468536349318847124650353712323118576844547091229329329227283623917117142427928253099063898834952946565303481799184211586506474391701920597589850568325843357173350290218459545637332100638821808644453235634101381307731469492533346499553038800317207261078220410936696666927683568955330262184934203706908994832166575503603383068153783957253869997058899897246362034396731096452854067689255468126835022620692527051245811413865404321008809939943339172194402094163031023310542519517171764437646678056267932655364529880653999396904828342162397669191027091920690434790038111298495175792545945976615773520835302160355328472038221707184477258741948387675363026217297808598885450805247133727265839387181769281581246381523741401989173490356736229955320462454264930023173235690843399392483687688839450472960181751986231891270176150961328393993530390701707548548731519783735167444719172062992950465013145074919393707575578726244264082427589763012501997627925505737781818460177355573517115716895194306141732419411242321350408976121763435764199407235569211696439390474017559299184127462122252509860023473706760435171728145583847905502904224505918406436282448592217423723757555403660348755261451624757821130724710829853946341240623492099538142092938217204758261509717566471378615649857515994232923662121857440825917161109289541787837730587301873819889813184933910881450806085283007283556612513805449153203353341717881666886727740219761534067935966617398264425227126900527601970484989749071264939752917279969495863352011827590160682370394114208294648743791729688489461403253367567673570680858600741004879476339551571296822816272772171610445997255626821872631137895564859674139648227512309827690445820219070379121755868587857001927164036817975206485502400519332214110926397877855657967967577103468028577545884063030234061757551995835984359621324581580626288585185978213692395683940804310289964528496157368916391102084197124117890220520917687836669490341193695918383980054960279474936493902414094543625717979436184929635042445997460040886429725820729075672318567205631579684948180157936822107686674414707347869804364308369490460948015263206448365283532913105318468287482899317033079268499726873200380781851812305858802587648233244295030192977104610920435136103040569501610855309603943410927307878446576090418192266770453170868389144726054751401033083809298832539959566906741081141036438122170614601365105661372746667819056360104428362806762787227252370259532443946216001026086641059872241707781957864248875787926698045311836605280585705872758075118671107323832947748320364973577126222070911176777584996325889999056092671486382120932229587185827687773268918872930473928591465628549654193785323356216162167227636028762087242871928780086983855868138992667419954597953968466323824464403235706581582302753337065399245730374001771396282048138246765113332774236811508210796591478763721572265028558678680356806841488639486164145568517100141705766442533150394457697784595605029290964118781555053094264778780195896946648028294669580813566993640149532739695439044221272048838697976908860594965736032163545958203669611839838441495963491822227295902463636969502517884230578361796593537886216347145771236235973171683859709477009143603869727069508017496662166836065921076021946057690225714959474038866901761364652297470510150167289887057346497006508294626378292319071276738952049486696679145081667943554025675121796260907545422719842338087705411889372691494105043491740055659662680765633653188866385114373380092070485437289677457649273534359280692438910416458908756058973751612718704329551254766976289154494013206564539551827670622886373270327064047216446647100057934365169111540926718523290812767965439238162178386538068546898592039034472801764309359368817955819557926303619751992649458805933018410390226394993612612532744783447094204122131988804354260523246506256428029218481116296408636717510720261748182733995928960911692928518623345680294492432023420148377688533247935502168193499619253369464380768966514682010319761186163994947925084928141829702718852028616701227260158074421396346141576716664838239116433539482221025941018897517578460680843935142702890771615199973280201776376271770388736332839784268918205936389977036333663611620278147280685343354413751232794229622679542003232298807698480573946564613632719415045203766897749684757694405600596804567840156569901612045692432891048513544029974163356271231714733619519361259610486046988205031403279729665438989910144498042283375316090639060151809914756840579471128976668323860727659130087783451066694478502654868123640535632530225200281462316655980445780889550126382522129727097956492356104940494923075211562427328672064447083690498397556092476140713372984732090207540411566299509344421453993034582835788946184935895412109352221846587924553454448233216383106447743676379568781049203704409443446566219906678755554700306235514718551946743290220241169926563018057671029415111519194996881079746258290788911664251537665857515076542179915100856702280393634944905598364052998909621830845256873897534314441171273165252177893686867810703351694278255821537096140341386494322509313964366776906534045079592500675143871124462404830964897267256912177050870833489774293764342648015813047722451988030980119024353453955689805348631911717223285921131590122232003715175718701160116303781668018940249486707613285817142531632052604684149120016633276877498525890032694287436837035333676459630970223861171616588521417533287307705356528362035514725217397346172309462550650951449716021830898981741189884622596032664828490585482604404595583675483823075964111494381219472331338108784121100629871862175814256337903531783703805271553712517357646350825262637611114767044720888088044546051573597617177439466617700572589781068345197085995426963105561625507783180410737714132816117491214421324802941836323827900068794309349251644199539330370731554705571713209318266037448392654159060772678203422557914132645854994491976956575566836638313222872619925365511537942532098008567597746709791707642914362315838866920208730660209900732938546440490472083729586329695837244625135325626855929183951967817328898973560014039835251367717645606108545074401805571213447568478048102240885064637676947380899130322297273915621607343636121703761915207532129462051059459528477074270190228081094232995879384824797537694915335702231397324366980972820363070530503613814522405029146895900085560584198515526216648748301302894595806022985121783827101167836180511252543602890810443466595336490813308386926317496346312401344191858117423759877439746014358545636658968920895077634961630829259300795390505932131386428632908745436642928035372538555896153057738148316859121734605919332410750028433477521801648431875237754117341054445233222007744732963977463905912553072576656126767133511923908287401279813355729924998443271292275217368526167852434136331244595823919309222402637345505863853089472993911564040253238435423692590532289713774552556977539403083894260302771073565019698298075579524604383150366362719185539151304545186566945190382136850800067684871064450010805344177835777923285909824695175872872949692151795414759060253335974890999166144105605934842135653413792968642734760022424883917652999131991125744305193729449474437625608288430381798477342215679129971145079525826835238517721301355002361064265884665512976159398123361413222908055995508216374439681664938786499506718853014036303075930501233702131012436908063907432121746868587354769729187840459013109937287114565447108321168464233961659223308523591723144337461114599944676572919224038251879285014744751095335103619881190106948514238659863804836471710748918319354494533883530385496766632625291218224139270530754707090628616812437597713419128881639233623579962823064524010040749361988880856419711802125277292129334256197975683272385687730891401621581608112837377267098022864151888307051042597456641400082503106346623867581810417103583673535654735371539383516183595402128966901238800289469737719001717096825806690959478586265832784353006079339369898019473239738296673487256627278828715001225731574141091191981948987617540179863532106868563834027375556435626524204708496361557011976870098881792600597887739212329303508749891603524512547705020803688565144155782068238224840212531562358042790464811180763535982111247156228789751578437540030856862264330324749654873819744498645118857454404846073954451261924304244982576356354424389136288336681793142864922590731795831383193291000093929185000127897778267957715457095220748559032422790451163986786015744207327413415340421619886240358051700141009542798256889095561748985661955350444372743127335289105995844530527486750734212589053852016111842483139218446950625247557565764662588862823073030045086976597647639687150632579577789244160313343632428446924544923089868310357251531954091734493560567945896098129691524712659605787132731860625668864768109013987820073460950026421974730349940761947039186699680310030075799538144076915555419193020735944527294152611917855134820561095450404543471176713058264626257440182908685086205574238749619981653171887131276356588005196000138862558058425574415882674503050478700064473170525166292356012577863596755197707830201364255852974802292784369652850993126503658018873975534825842718703351642037858091485834421667302900760551238693312450182425841959001035063641878534839771178074108625902281980440875495713754360145597859139580792312258900686213453948193762756204479346519318203345877443164542024130545690707177502967784869428440569635965233749252693710652227447647602735132740133796535089496442812565127173587054141323734976176564285053599108119881856886836812552609580487050848218106465259296265034112481259847525926222064657775047094377112963915801699663963293893902989910794103337960274556025287994331655261716895930896583907346103626304908300923409191968287613349395834118065316884188397761367344011576324710129994803488506660238126262866987276554052272310261612665280207433356895932519510055359907384998691065491911658793328680551265253486092645173392496663271271023562704856354289990366398837963461889265533670869460697378595100338813841589556954858696533541463965771515064602564603721246989409072993878020027868833070132654430968524923992913122105851244413868273479909576476913595992608663523197815221989291782340947258127801661974248238982295189928449950326227453781050768325937479509351280625932390781292951182363782085196479364190951819715187443489025818461153460233634897982903126399708326466354437397246495830637391222506908993848332880366159205722276751977030154047731069641233411827567153396879826739645146434402726661012879242263365067371151175111381288495435677722672987349625909390848084260077058237147308451346267090475204901004864732336103060005610426276360793697601014521797317454663071898174986136727967751116237971275193773321292053699805444602752282762956017057241611198105571812946795232417886145558378715355354126347759422356150625714394646431853054962311754205030555346783839360418475114203842527849025088258186683526808839449228959928057914126525072085298916164217341089450717418546719201137912117356581048881147724861264800805514288614326671860248229949410953693009808271073476765604653431407903130008777707207569640186136215015020443454036889289754483350522033691574453766757081417896596953481653690418357897233068426237261939219527945260085509812122407071379893477085446232699278845882023854081286843204857371106767274217669411901967338782864933476346828722089607082940235124345702661382602168944190925783402322664376279498632388965923093098617131249922829723914456569016976270504082457905705276298556045482759694449189551956857563367283736920720976696235830775296557616112204712772435134444388424547057278013052083923139179434574546374398880188120273184430312516264846016593575687546514809174345324101331536118722166325286488344787338673463109180471635061092693762322132775782228250850841314573327432990495745899931451723897808174591826233527870953158479038293480909280664459297655130017895975674502751377657154269437076942648929754821077703621753908807306363490944538710953907925405840879001272685955862485945026660977460657018599978166159655353929421942475018443722354364335906907584066341080266684722163992345740152524489812008172892720420221113773172119844406073528857135549351313819612175683921974119025297352530486318160415067479101360910671957781815381554843377884728480000903833345358062024198968413116686507645236323689049706304873206265537886274798350971649576295770326924443680689166208927674180205339520753002555880479779257822047059917892228444018314630293339588237260592068477172450228440741562145854614900874360345256490001494165441198631763177988489159025607956593609619130867048995300479400304303499868699474246532714483185546569543031158483148032435188546459860358945971399015487637871897060982904547888477868579266890679929362913063332127877153753774676437626740279606951361214039538627329971562896812856249025947455531376721733644157852028095170862469667382586008478114797049342058513363249988356290257296072961293515063034551640934202221054651783843549365711334817164333977355826155873838204528541744737179344371378522304395888380589821430436346785990054047129285953536075113288432592643090074086381935259023386394545671921867128357010401399191757453762532824624942110683167978282523738249194209825074772493635309040299985318986841208824221270092643623789549269006077174313203656816216049480483122617288375923725765666787837466743910768592373704531748768180807287140863194119822513702639991141422113264791800945899577667909601331679835838250236543806853203428920250014795228717788296216657751027232345359295837334230184673333844925693246558648945190923038633471876770615376853908723509295187361501262478355114602892842348797023641007760528225428654643054551783714195587691594309157852095346449847275513532613034540857472121929793342190811188963962375322981793205453164751687251559326227650107045812252186691245725511264560592288340649066542861958841342061286411871481597694495845484475450629419805751336269763275203614859600296776298321878421103378963075155684597831228267113819664818171967935110943090052355203243701899786500257102848888367936914922708664648582328863321636766998413531618929317070161022461766243076450846703067653613606714556229868006776458276959424837030090954662183821437199660786469176807453759199830187357037940465003605518379206308059354144621533171221246104909235514533293936732690373040600273399379944025677544920945713405905924681573764457943723598213218108615440910188649964810950690289694496643675041153485585807906741565813129131871793267864859957728491155691861665580304928023097765312536818642233775457959795655224266842661645901272444129443521847908967735180863724173897196797490689865097425434415775271599100019030194674101126083744176267891642229788999523120833721660227280435119630145671197996387899258837373182392072549230812706857715762053712727758481436455042300546346052165446726740829694159136692710635836370780685299132852395744411781645978752539646352757068834643761750089686209664062187153578633172803876330098448698433189977778798538876544527627154101250493869917789633858694215389265361845390857693437641995513687794540310221197280677331412879170858574911518959320232960810805426054870045349872325806871715137176781216343680194090972497995484515100758863235867131980590680367654461710965765591340794849806103310024576026820204512202959712414020002336776205632102749926347179724523360171861896351803959705334015028112136770627699018939680621920833906476676467170714007440240192499558156222749526479246356685503249610423680898064857031437132987424814884386107817947126367077471025001071359432129359069192470477340537978375771244100337408819689813088761404296562986225566787513937181415355321225089808275137537490113914679876162379803049198030941643155168313642756026370560927023607910462345242664327105572701383999409588603641716418919898986360953210887222960237853571709026870542713017585966714788935120845017870540745952184382125698195395194278090650129619318328489105663215214719164634546443882640417344070291634674538007950627454254870531332151692668279966640692038118968937370311113944722602153708818056239292755032542939990467444737277857607923041595260931099691488896005231370057332038152444687503626890502915535243087056728877164622054530224674070933760787441047533359320813358305771820479355168023026178449747632635979510869122204290854211113007803355316560696755360145830557138956787859264027269945147314343360688416871586378896243488158404756965428489625167604887263366527116379657282114075308642444006159386387271510443016924266926441751607885210495987128266705786696806726116354455891060026081763392171975162753428689285840730351171680997768679937079215019838844386817279595864571581981105459362576037412743817800220189372199076568443598206988642112303120921177137110896464625319611796000619471935617179962612020779725162641930333856435249896219717805187152139230331635676812620938372060776680995374693058772145144527404830226188377964851630372776796292508754245439424713740876677517251270284206429490115968937826408783301621191030384814376610665757175886474174221482910019979994839550278956718749705428245305461928836721417248604341504571598667335940207495662843772078222595407570941216024245641236847248615448087584067453368945913515554211002770982059329071929178598351510024403542397939940581488887551323237415389753942838498926598587202803422253669542670647212074701681534926372529319280226641489127602588343010022772293010601990324156802358030698928322314810565193063621302918752567031614731238290737616976457581088028149613555531192663742830055030963600121098625354587757658270315861106730377118471731746290648680473875339276563252178657463222556402596486182705897136864274821607628929262587113959008951905190327886003694911575805959151833326548807193065763056373023110019523492413591104763623817011332116418636759526983316941116762790732949268341891437148647574467985063420534755972619694392231478448666378808989177346628831711871406960169603466030943779647756406442862359165763033616673710011670481938834422758294915264059387070815323969721292640749674061171875064613220676524041199932324478213436874234974908983000768117215058200053850210383756100782791907553275903895605282587079965503757302295923339916551525466006305488351132689310155388628638432692675171845250727824098021328653800833522623949706960275491347134755356933564309961840298939176550687927778370010534928263577743305633809022141910905443406981968525099348586657811828317076457216391345176608084149800387970177641522932559956943868593950812550443476699132721222962202501497378301903325562052193878088943709688480136943785918295870852191945055112833147577976896996526281402325315635258073736618759612806438195843004213120987518479311594440587180349321731664938500082558155408432637265092580456719408397941615294385510304988697998343235789535603982482550832846627088908519173010184162870352965948747488722801092377922456743572293876480141508769703942683944877807674456291231848035402748059847608621329936312276184360204824828303877242445066183654883029071017067792773480724254246561479332704703946836254639844335429774970324490683063595018041727677562617229516211184099648046186881417367574606363148297693781771177605987836623294308887796876974933920418617973338453422365925944215518152233224319140885488399219719847339687050470350882112025917203487754884425959119666150632766485842926017144146948493904945245338687670140187085760684465791959458879687668797627592277918835059943190774551552009946840916483906611141573125650557235395091509661159540812222989190829000894703124320202140040522151972490856097006468063667535255683199797843812884904888047999041654976059471528023304792615261523210566452753107943450089886510664434128277969171236637803872138889117965061012473576244393151155771756823713600528298383101823801946309247015902900053935742773513194982344081560687706565938675163198748676377847133680925041095749110541206834365641603911820680867258293958994018933356871427397878534391099205532896406770892703734544188952868464014409128078424565960853942966989205993253559445674605602135338986023352140615529330355942817857434775442698481611609142069688038753651324102640931362943229211904693580293900535851287207976749614520226976178344216196992477998382593220329831888131064223275465208613403255673786260776756483403708424834284453425472568982568593606205395221128903943794740335605153290646470250936204849418772796823098499146096716312568880769107850782634604793911878033865594084847417736448992174213932138053910821539681659030906621110534621294943061523937632734861986785778037534954017896921930927722319035548145808863091414826067362461800211296742015734796913525249581476723791048314329251327337487074854276983059575825986349983261787648680435014970934563994251215039737951982391454717979735282060373498976270974119332925233084559355266266922787349393039779230595992700163482555184781176239694934032652687653886020505557120693645466094205297509025539575594876635076713810013959946828709607093612461295963927883384062413124325701687790584450401681041748821130887324984596697540861775446476087603792152725129392993199660588692856232089610559253426676298632578450292421193250800657233148667686068140153741949688291626138637922890408147594834947378781855744525628468614598178284667233547821399501123929728660976688666662409021560368919585613148452743682676883095469950647110082102657065979904513657649933235081193782986545248535457669597531395161122268833482146281277571239962479937648685667600630502818142753578428958743212063270972456474609424907593615401902904597602448056230737533033726168867956118047615491072993776522578295962733868229988561827685863259242785851794542780470193946023994696062486137165045897783783382047690486810481593949060266761981214888641566465293033420378764892824278501859293448890625565507961068504661264190273551158339450214185866093397671946600000832323551619369001272442676794088707503488379982381953943479060676043107667925143553486220023547475384835980372811174145541522432184168818189843635263352180394201351598292500917843814918145110593613581424912341698462757935709595911659580233071034146336780070142536816095536253013952924062442492811759826615229428849208937473215833087194379952080303774344089515108758379580905166696512761763157920777514202030506617839286759655420412091760190869161219867490073633737428619441241614805346556249771226462559828485810407742430259719397685327149363344085398644421223259182689508373703180588700525351787041215281085417082144143550494626387970113992243859035363238740448459541170694745677203169940043179745003995110416463718983285695369087686729129523874493098458426099888551936493766821318364441964056878467468021483280432264042325070973613007778873826371790844655469305613030069703189569041864514200731689565767096792421308822629390403791308260231505197272344988416883144693989007273195329245136114769654690643968715983980990556334618494513277659022185674162650458963516146519921400645176736746561805014591577331202633890518640982675709593534154022539528213955935956467461338694492569919954030324329605328547908088234634682171791431737921932697218958303921246396157935503451489304263757803335139684153015046516344258109873798355800741935303999136211136525238698244649712538118432278169788860377035709518903881432538655171268420238460913516744028168264826640889149386487044233958633510907080350468693974796515137056003716833336437780375149709909971918015022443379930996254483015138780519182012681615048924959080343652091493170642556129669322514680099585271498288837294874877664491782901412472647270445939955234351310595685565751780231472998220977845350688297893574121292472406138097946157121046712929576753418279840996329339375591158455837829899494608603756171667348296021737239825193484328818365396003905961344974405534326229381622913444813527240295635770498484310238400762895764033005646979835315358895756481401273479337783679836496168867118907173803410518906137055563208409298685169071850090438725338778736449644587405515288142221067769599325115743009771505102939244511133137069539920893093968429564264500736323784793987423553779186534505967844255953019599309540408875384605136812810293464369270738222224033247915874071334862613622283098994813805094326882134025492802090660121806409233167103660898295334853778829291324566792814041659366386904868781087563192875077492232822949156401491993135266912776781108812072822186182562950978712074143418311828980306653063791920622389902462811282262026087269135729793579738377633980378462694494477347971812947374642479027838185703134370724292426387708083699046863792677831109618948207933871413067734369393377821231339638131048159488284768506496455912067956781490514772605122715310818015252159371150633003284045902143060947602661230127623737829009846536495259278310415107259530291283006878160861706928964533920131621077387242096407540414845915176200411445275356507224723952069285499502823445174047426636243682824040852932920933677401984608472656713003403764120964136184652111622417803922352950559418856628906377962626261473570451915381776399691212272827194010497974843259030875442532192073240422769315212064430401517990297446527804635113678406511276426270485165024946667893862166965649173708429157954137961999841935596738499029654462469931011606182527442759112784851819965629532628257414859635076160301480990107772146422803108353742887924744317966008346590308367596255732205541706785488699152396870024648508865461314554156096620066493948079448559956486943190167968286111307228529193703605700795166067665393447716775665379293539129589596301044900397295213102859411889367577266799079947868151146652911820308672342574325375534751734972721738360357221312297350678633495868756093456371502606168934364390088570569983553086214995500426707991799944492193456902517777498136179131806318804454491750919419834524963263743039943853979534703809251498492201016061840428085043740283581598088107994361225133345498452535961974550307787704711056450108994430612696156863760156234743444945878454328855957915459837146303499780723823306316510581360001694576746238844921374734327141266667307228126281023662890019980791744452844695853396822758990320606523795640193489877141615208195091324808614327311849095732241587278883519834750340427636782718474949049363880480451848887779777570540527263714392855568157688129639939670462247549508305894244424084204897202487445346022719199845852807581024858263426307486449261207617545210729717167288828903997947305146029008269854502728610033741355165329898317172794524523993268938286094613430255513811875969024293581136029813812269852896770477409219926088831136701286426090037388596617924643964597022993270261502730216529502253772849990641107957971738119643099983559015180347069154789925250867783998641936086076247583002104105202666485293665574562892247933483622271281213251737818792849107984258162168820482039654146065902361639769098946453449863505445482210314698647819302845004921150577925495804272729834705200707463627141276708446322773111836367920049766388591267797292030305227725871799300937450110555699429554991528783301954493692691325432832808043750793150545473378586333149607462208064171996398327475098894497820691864337365755352615509021121660690153909326024045323720259133177657578901726432627326265671429349867799113747936391280087265057244868569829498622437640609450320980212237946706175423036177366717924866440241266091231347733101407971778940353123653770380472600172628738712438760752883185785215776081547962357123397113561832616255208836516143360125668188722587517234364055158873647586176488098480840327143789841385208650250986712990091494828857894854880997523557773459640563170329652070424941350832462058786852743367387479004093541166737397949692856914934726326416796825640835236595761685329325573001682077630139749460347357991266548496048908573371375827231371288171283222584011200874337509596826551094919655332545489138529829678252857973698578942822362475938155428243563374088089226179326381310424881941742688363797943746432921855642749377890838726796366918613891430540083385274908880228592061602271688823864975786366568726442710081745378453865288607315843247240843227551319025054377864581071713032625274685493541470740355483502188766628801860588716019074496860461972518012268671427265008825368322267273937255003433057936385456132005169334589969093952226448697027230001631353455839840208084488028148055601044309455724906492994824996783600714404795394948437361026029518880969236552726411202148831644619412410593727300745400048448042053255311014682497957432084558995805939990912766430442359642893321259564409281018572788813938866204689672826675714480789011580058994938960933486571581957197485313207813007742518793113813251021022157703213226835816776258808776089220145033578642721601614984189751968882851194060022121879809779247919615013574211444844425271612744536861361400900644651121580429479049044167565912748268425437957070746627994789610894639503034016967577275170804077276375614197890476977972894258965786679546897146900726500784998119992348847031416189400765444963869853041106795157057121272511950360947150674740374010788617875802375023387539159180615961932790125841257820526479693343339932696480151309868376219359602772805317014257577288644191582347980514839949567815625433269327583831942947965865005955227852683554395052569495063480232016482633798968887334667041178815057885515228187656600251692123504598221995017804522443073954439135877049348625575720753008430349470032133917679631232319166640571628389030210339385841569424399216932752830117851336030836052459798083988218495275429000223832557639739100914148524086646312169869355955453522232492294101929714669396695720441019225985669025743268531900541821682349705333339895549671079743317088695098157873202213118476803542939550317699569863052524255779189250562897184411337371014967315578019947048633790496349304409786870487517777389327483486968632175248644442916448212342458501040177513277431331291647660754739136626043998768251111971583143045204076886812501873989490830092628739671095818417542589193225654783426814054949481296110136694781257253615969341687827204956283285101912528817447637279060145509754566410214269773728585999056282984981272406600831673904840223764284857331755677082489924450435841483743807201420490069018914235794866252584558629693811538671059997729839840879866591926897288759724057302962241708108716340215297943194422090330431721991071329006773614733528666127958936568124285456108033409514376963770137709627734072014419785853847384544417172034383609096416992677784383355355979769252167652923386224397323872230373912881038696315809919897069499964420968340592649209011770373097362127790556560638012316529554431443468224137858470255526664106697330454998879933731856729239061744080409495762437685065735821667228069793859173810406720244935689455851146708923130402493899277836070630142048663518089736072287981058768524759958763102438039647256769512757264195893462786181666599333226697846772674273952648197178948491332332876812079573169715267851375570835619653904164865286902383652488678759696154762173264100712784969940137429383951070310159095700404931899446725565847172934306064478393044672168744745165844549646726739529888491307702604640831047705091639836364422231362892288741987620764268708239228643493189893732305182175686498620716162577678793679480661048215977598032451465868640101081004066334377593743302883611665206989234288029934978492775505367519231705496057425821249878435049924070517823591729444051960354958067178565921176340547750030101592265721725530093391127896480419444033847307705347182526378904169137857551006545419804847723993933277196663503820887245007028386222952706690694605646434469664789347797399298751102179160139229744379416943889876444386098331573217119583357708408436389051446721482373383020976946902253493819310751150075445313933685909356165781550687276636020431973059945571440821950115524691071325184302658031495166952313628858412111791193980383296959943126792434126189381312306400338090809944633426812587976338603628090618475455994097882602787003209612340531635787171402945328872405990038746652934225037500250832606177767981178325190166931969844101034336943525062163652068468240865342907769635374726012685413736979785900785426334558670903845125627726872922026144849405993741194218488111173642896824474288935269294214932469327548846809907006829465356709115762049459261780049579354005232658709697425164438205094853249398338659893193047239587865181576383248564073607916216061518956515814664776914643463118908003210281987007062555933691715747681424251103065900057946582303425645150469557463847420546720961598863356565110785047635941267405528258121698380997973171107052409318351844957000381177142362384048084675344651836012980959549485859398297290919779327860746156234898806219782550439829483472018077179381392345638748821201561127410070122650322763177766591434465710917563212883322215711169363115844407442160128546349057410155108838522204531001064274667131178963121433912661399009107936896138713619590356039432045665491040994575331350649614478413155567386933093211640794050032650617657530785521531566021845032004542442400086531098892530965389432795597433257560684013072006396178574879392362022669294182241396934792463484264785047896944077560151765524772907921240110207933019887403160641097685807916965852696723501540173792962320847815018314810448345654157100917012579967250538152729220250546193759904847809265687903280303462270269808853171374283897663870756164903290857452870502257199054657202092803917519352906532257430825194540405859991836332334896324231368798894711827048394731603184275729727299934521380775985888701985065582933969112303136200028628257813688157459202566260383006977750947225790808111014277917803025731639661397863777559661356742923512739741001639496618803833993119845844720176441462563031244744352328651015253276428938764418575558913077515236448359400793212267698269435307825309698730663858715364454728549116350357624064303445823579074245199462858420542180512586802967749538097145741956859084553683505517395229036045721562523409725001252223777738384086781541467441589242425005610253703432540834662463114287211318157903945628978603648357338001241354342315360608088308844189425078922842258457907223893975733640317266230108967561388636193312434573942356408304396384757944199737928894551603908729291245871179843837909434268952077939587015646393797230956338757575253505914194414877815747518485604515684247999454096426955856749370015542397476188782058433443312806503967073027512946136899054539475803311574862607368455573289866394738702855909750048274194413817465629020437464054279469313629057729970238431595881309395240182194560265891258241196178809525953614947963799696604642323507121544701726252007482159915513287870462259438068740069087215870724194713627181022291967273809058229529274627900287970517883427076635163140100591547488766997020952509341941482416295427292117269105852516959040239395235674268520210798369131567539437558518908535509896582163033771515686552065653168112298517959081449190348544176170894268873766690868003193484343431238578609315435491120626843997192487189830550832850792008349360985120023398461865233407716018875406612954138908428261064379578067499744952898348555900210564495198109969391964440132551295696606889712962681669218696556614792440925449020913769461473712941038765358637312069911610250173209571973715656173723215081103988354985690513785119997867996086150348074621736173014088872680763310435045060686659372463008711670602551404077527444697661041670872152977206809377410017532456906362401726885641818984428625540860221523055266426842121530787150644237621511080179132801766217677544331733967190332471220303706412203334593802310865827476041332768150630017014180828478320265052698414138246357755203849118246300886781887509260659279926046489482686315918917834608135439236011854110034150265862030282453376498010174708629461507941135447160694593630655582499739929225273337125329543715805938637515649730372002517538801552321622335742445865698485949743272326469113957857586923573179461904722025863351118322826565376501157060385897590152848906292476083451790706686511455096531416545177681609896312684395205323517665177659873063920871927599958181110945992626864828369017999234742048886712221502413818051532658518671959806529810841856882381644326991524818007919822195979728764520089581481937189874795915387969437956207353789992495943753554210868489089408962124205031441582982456533824799886522053575246372395345070759299162627462045548809988100547585829946061698747573478783928043783148860317164172895117207933890483931981531642102218017123523256836033142149226586210006009625769179518537147751701418371660560511861511957945762138892149550217485324691988577988730274097279285072907266602297072011598516840329408427886019403583785588179458076021614903452094397375009347456091305442455697805036181695423122314960602904124849913009449625244579671680979891782105308933449989579267419934675524740631862565332991277576280691324216623223547661814902901902471915472733071297785266654425441768418569227253500551792286252917118677642978001956458621174685235725959175029713176749977139700466550124470996944668992007227987439887915634527734418715220648173100009312616981902593538706538837029854775756632917057575992629954427679249128044631469204785160790136234432930955415525246076918514592633618605314751671183178271309907289847607043823877366187757783951912108807778149195829961310540919712793143731913077007102882596785017276198278572664928812993588485269415683964945629976371586908301121438639255340439747283143285337467513677325736129888236682599103487983139706061277621900531241482702535175070886321799597836309115214507694583081973439129343585291386982907535947095498079633207355871305348935740972628315750264736302747745690357287427426521469817524454067412679877533116484329304546911796436433396419961966713989452578744365896190352861311081668405666933595814325099509106901021722206489149477888849356544414972780970820833150592098689118930913855851597889906858924320811213537246452111512768250798273665447090003751770569289163935731453199730624995759766294466236767665832194835142130474436267344444934996406290074599916962747116590467891294927464691406607479475871199737234548591339245825418173960917122787701575504122003428555790566682139612455417069660104330700622754521229180646095029253209206114395781111207444719098550071176292461563004326539976500549547145751214280300005388829537453421106019894102223811531700826675476699820143117584842082923999698635960573091381235446682304572076144418923325825324551191194138607619746644599309317143723545131610683203308599963791810780979578189337619842521605318479853970652374503318086641319503565733838340050181433254916458064597743245822319166512115877510932497255392848076245123957528445697592358243617377220598370883773377225066485931887385558736247961583697410462153048184969474454382787317991049254130648906685100340322449618379307160871081921330677162692360963826241280096969436354143502039806777485667674094689043062903889732211926753324404208014236191108555856024312251707336406839851178792124294677969483320891804626368297044600687252545910748334550931267342307587418482438970419463079444711648798840339112098510129677149309770149222314827447602888096129984789107801118220817284137109927292611557102265495464508834848484573366975084068334182877329343390141411002889032463651499910974593993693618541660811771723544494831557547620356560184484387051747313513967489899526705330646912541642917291799875230387679812003934608820470115800278327751761602153368623826735018698543259605283108265524195034915403238683082895691959488525976234459586073772174076228309920922913305087384710417899523780722143892493667744720421643862133233825143743204610096369267446785217572442049628276917523494755667372694033353383784517620039870182847415210662756327932775697051092938214388787519312899842517647046725031096437101201982638674466438615413225842586258187111442791690066074614415512182689814057695670691637344183282730156343795392113545448232196458026344886353691410442715550963000063534393366292908786542417227600278374006624062007631921028949134286205376579851465022351922127423097544703808752764449900580926359055789877904654806182214319273956548340014240266305465937854354707172967208921780809935106265287821027083855634904040771497988086923535694607366154612285547573196040950976362164987986159470107490212409485119703069219798866760178117862808155832716086131472178503360643856080409398163252474853265045904417853713100249672083641992645005297472675913670698127353814550380618662766746475109323405913241820387991228096747730506739777793314331910088573040135046409247613883594606887354184544646146467320668148084884818615079729907321218651949238447824532681280189925140894407816582416935666583752696260960695264105358982961239907818094808880580150122669561244070330418529711261349550734515428455232645256650604974087668718004246013776863603224559186047916970179985822414736375827842927189882441400016394029551518110817320713336623760274255147905002556255673690977908090797821597371239779418685432708997166089348871883020370347928482613536417825574042324150807727602879243332358921381283535501860987179082967923707966996310949356835221016700893812069047796708696463629527632139738507260903486950967386154322661701323063831404526839427413714795568588036662998726242503209415510983289234241030466497031445946812441928044116975594763975849278521323942189059446802446805599051106027809774263986411920114883657735442566471667064681912914469954686796505439760625805726084765298852082463660452689480897061668732178656393564276313650794409091566538434450730735514977960005006365043391960800330261077056182701156195169587596968799587911938966336390582389997657255116502817717758277244520606542436109960160849134183958171394229216606500080875791151538643700057501753408355622367236676638603367611864727212915379736289274156368453084366195085644806196018750559851381276575759511207039863819414911109720181868401283389627302961920863183650595808889780212026601211379118566404870992247120947509972972636148214574447762880429643044846526288345428714412918132561110865178134392494527295210792494822829578187679870394226597924542263938331550612232402297357566349806210329473683899691059550150445406337441109764765786439119346358180275952435241736688411049459977651918415024904058157416476426251640652305897178642748697261186695624762660266050427292555430916304789897411055025360457036987139582150987052463615522922189671789001356568785760643947644258676054604293503989961935815812569173405671476542579130705597588585764407792967974416217574648659109174510998499046503620633985364580579837293376015741051924474359044556439688640112076296401093771515966508849542283956477215320473526823257932173908923781780901192168528326403495480166509241961592308889270469556343754577008395791351085719140982499954396954158554393894618787363991092807347824331073944401423587968812520047607697760700045354163736894338877568926710824306910943764865491642908362638713826632342486344825877553591162761546522204499637528577577745416791699240191125968478505960045871156219036531611142559136099697158729759032075032034122968740713731235711476913990631936564673882827878215622676700718253580628728754220960273237876409239714114974270908758430265359366939269532387718700458800230217717040304747972362144717756418363669544938150756991444663684177821264732523499131247727649994803325548561515802714935601281557060697936796876043727969536292307954276313571946739205215305818828724825017826632486416150558551551706515630454036485955701397880976651370040607808750624623414073017617255063406578948527525435569971670136593173854479299068892834688961027934082832157307058675738883571292290014913873837595967646873924579604524211548057005371560141269485123350387145799049938592084690713087993084127986086542560263706969470413122004466492996605095892442272389112948467863980882610298853521306251554940324316733470435287084354220473288234624976331519203539051955352770242184982385528121844069317077219751076147351898617331761620182737525249203668437535076934929435241922722286982545946269071065494750395703991425810300945620370742900990113928148527675125328911858127762327947761626723089044216327526299467691795193460771790412774656669199951626527636792029018544080650249649471719805847092723830573543524638393150903386349625975924670775280187745041675420281233284257330260664854548321747047021766822021308909144431398855941024752216647435419064574075263913978595227930771539144924831296782732452469615918581874927355399510310317009728200298680162813283184217297965796657314336808217034724744652566913161129498530682455867254177639857284792518624883990121511153285340967781268318159202654682734426942812472647070808156576831413491914225290553393170730412097126945678984836775066160999647644277096881585935696151691634059625379154791695869900639036203500155472185150926032183174056918549608524198771426985951025268587361388146819467595545775335408185361041690797673281701647920193750064796191387723663312933274248505461391851534024022194407213941067798903156134622005897010893692371899868448725523942301010909174121737493152346261923476156927989421552775446456845106616692414037210781172147167499792692873273535981588333805775776997162439985542549259307108252448804571348021083296906578085084087437925362678125455416470161619798435394048676678507370918619160552571815559693666433694624631559237735884203444829443506651251779855356951960259208135044986509236287177448662183974225148457740392901653694885934355934327370836053433461527211354491776261536243489680892840760295506074306378933911476370576908414675692350182025088242094379774499292367578209562076851609414393663858200990781056916741861883049388302829902259316970748264708460488774443735998759110657603917095866163814646307203181552365128163072436704871759829943644485063278749909822944566243791691805454207492716293769989140537009886449327936225436024479146662712006046806256903440410613535862328754039458690981456225306570262942285268934745887043947563745273793394345438080369187737134945521623528187961522396757073297335199872913622377596288943797480071276469624385720295502191180150541304990219943344142455472151580871336848598586404778132718590491172511829869971858832681934585151885827054486408392200695999750466347696616295582782339705106628745570277961799258874056140345192419723013036995389519747203855292842944974963413644692701310045001846185077380024270462951513588430355846528351734488150438439198177338141366573298982973523906609085232614146417411727708671433406664095609056394272774536456890095057168874011568031479246808636910717552239253281428743036886477688905026534863069108114592986440769097527070163952722946012037952047029964575839344589994349333990711000513980740190822481334841331070490492701678969807675934753977810736983752020249176525705095549169818210367826697515048301132411740010856512542303533205791344320473432762699429020331971374232274566366679547462610569573467498878857946917317062151433557545426717472437032175141633647328362737415164870046170813034690782619595155216228949611948697202640263038282422570928618633459102614757984238860417083313403468732707911318029479053145799736581704254990710386437887419580489044615014415541905109744931506911198403811806612707951003957997292936682994330037636661485290148853636259477371364310653173189833838929877216199347836128650787707669102301039938835933418003243203198521278147938642559358823001691874912877823108284536715982094033187886977702655429213523742832954561053816093344612150568719149033119790848468722869511823357573518642194843105656930405512929852900144531318561663205086487483226420266004139589525723773176633162596481092679041222060017448107891555514935739040103557751090637843438324939565867094308323514257906032056479681708758188207874883134174021705685989617563768401240460352296736301519515975729645598775555257419176514160613859116978020013158383607839280479414597518535919431642319509720690537965446603688177730742085280155004243424507602902010044660895668513404434342091483161382396344605608241120059740861024256346974349114964491654896098722934719560059098135450308230512668430291302716499933270254362958532031457521437013250622058929765717363893328996371365175244738343232544652819024396212708239019978376978494265978263269542422000453575396606802019941949970408337393414652700679712649046010708170315607075431765049688963455534478703710415729269846477633584688869415665652798799057482332225771943714148309087385565938002485446842939895107209353298877978928292503550537974740023071567786249951572911097143701566678813465754296326398546322252860008859984352625420882894424881628213039843540796721150036007337688549419249004459477021328320196105220816074430804962135159040882373753857736003831656950030467979178392612649252643387590244661513362107715862904281262596948176452781863248686026668761234070001296110109265130617963221882063373689619116052847464600390420897883677135956592781845609470202057017863168373362899144878045380535060679273079543402885787031097825670339268287967267522877912268629670323040658792598864757628815728345848813261692961746753146338698385992021250344073769684776571164676324458277009760907712328524543070208155456210733296089018011439456142511742548366505869302367465290471032544395812530844168980859342226176130704735294213441689405466889990797644652640069180715740620504956730268527692314179343282579039603296388319137686270214164423792885505678325254733968284599593923972621319899287472869446298117657469502062239328616513113689892390324877535214960320593462458786997960497121455150772441027186309514668599459419383957371900591369589989048574466744531688080209092716773637703549758687280842018525555412361133971011346947490125747720950811338285522387265802336651319302438401969296328388466134153010072423894960081849843593703657547406289483784823715786801824061862154516645477015860430610136717940968419858215704149362163895993392775774169481464814218702105322425258046003763884265161246459345106380006303792410984364994254996225611248882784733058536414226952622698415015992102390109135576283922548582942344145318311635529241262173178565141116383220368497123605180690613722046735182581248437244833922032927578675214375839870713343170953507069584345594373635206481548655834240117004986063696880800137686776806135364943351359292617682793502105494083272409281420760634479747792631451160849638378134737544634823337777598159477286326479414456685855172174014063801832567335462352146359810800270017067718174228965704182916799837909592188945431549527174091266042408278716606246026082061299405546944843432561233914011635483906008572357904894293824837870580858040618945203753029765993019975121489038265846408761373777484487243946298180365698721714399982824269397480083710025390095180772909392291328286446226871528108460485313400182150885285184904841018325271593854323936887647665895618371077696891644002195504282491553815534519730702770711972970355285600521951159031909763492688472410510306943379681567610207671852724957036302244197957869612435739863773704364592714508240424096588555580004970361813903248903391352550958247976264990820278858376481393709260039668424156117147974562530249943865480999550614221522752987360617718481957288092768896933609727905592554234548287476008971608857286961009998907500038668801473418251113312427255973856294166784717274645920208543455729772623759946324922527753295323372485897252133940832633568830290026782652906725606974559383985430160444824513863043199331054127181039824898679399596944507234132243454863583853787110723001727599135911790116241527344450844211594479655348623930359687642958628329765637990226694905853017675542356084847008561927600063671568371592332856888681940915884414495448973738430347979285433542302372943349375571919754133007854103854501830647330697470511002029309825931517645964168593779797953251064291690895941257229813944726330621914203606630981838748105412275055600043196412051590338710202316849435123871570731357396892493893957588165084628556067987132771453551927512509684761699654767733943402186426505040246645557797255628473279786802379144869548656502640767442209794307032860588379499617213563878612942054482175806428864961428065278508735060237669885324862332939761975723770225620236350360389791119777863829283583874395884226235667935433899054305842650244189979749736859276227675691918954535806006781722176970562224720966533819004850246581522493903675650681393666529924383275913720112216978316290532397768836891647803409801629211142571841319592120530733562173557491599091838503514812260024558924200720477357113814870504828342497333141188016518853902082947363748775470326863775549132771694519720300423340076231224418102045666672163749929114321465327077285778634350012185120812808404300798524723625985474462602502683236748699603185698716712252166924374241897356400183824784018974563677426209745519830464797305612185669712288108190171842856950749231413107891716975000882195591634286890714224695832342237048599225330251317752753321941132925323688594942207576493880534001422768558538392264352372937285113357376970935899467717835638528657815936569805650185505383735592247326364285119894907936340183875076916474990518474719779254394089048901450683853898512108092040315204163321855243183318019891150920883932509488922165734501135266063384864389133982497175044017186222659591602481756790197272151487168240265803900823601830994775122911576534295168868229735833666302266474668701209856279197407211198742371738742722879828931358540982851106548745313147424165458263508748636797225618930183410347919246729497823643793999452045132236571849896943367091634636135730168432886982151047187150847551620614506215718107320108937375238691387672714534393134295371084106661672637747095073336389193308514257540637125689262274612442371127121382804554819903526233545196204637021805741294239757413522913906834641816331506108972043092097145855588119504421252257519183742613457343301242306774506414865366996338577313532201798477939729662643721194631158526717300735482471196279022738778938488857332519253298859224894970152110973073500111403813475643192082174101685766047885338111234331462237781132840802712432165195321738381103216092553995430960600463230858862471011250087411080667235214674427278553856312767481847316337766911652923090035444664442490096774985904893302092108926386501001694906471314082535355881587364120252425333587413184475108714830811721812253129781579008875520428517907599324131057034425025763399028496403657217581124981020033356136835576957108154251223921078543901957165213984834064567184853888181504434071616610105622491504265038617633514551205922475017362692896126461818881742713850301750003046520957082722659060531574805101290201591156336545952627103380398695237454434946079307707745149012137233834927825059002353342663580589582280034933322074160735531500547835990951626983534416331896774020030707310194000880782975988904836363267801481473218354356198373578694832974226706127497935716574006784148062068999808365058811237414338417426245763859928661651137765120532553980358025442594932029575333968356617725248831687812905364062267504050134774826487776718006265294814312746468659025381417647029195013256486066849407099703090686186025039198007483699725365714802618112349671309362189284481133485031376208424267552384487812643559381101712548547196241057396327421107110548209706837025609065848463064605602278263405685367676574394486833840812503480570609300747167533410627927251992067673057986579765163543476076506331651511217662503306260620848924106924707330061695649322881150725543020001948951971731104764939962020344135080553411346423333669842928293844383646017876945313598580092813912900986594817461425498997072949996207067550738056650966799343027990754949209760492708018171476852175770839233674249935414941137014641342942595103271867068457178002194318336549237147060096729087788966228015522032260024278419849976077827697792127861710926362076930325065362385261731592873856531515962216898834474773413505416426624932456006760977965206695106650009060796578861301586908274727539603541026418208884172695565733059131452253369600398408531166589924405252369878415170265911846595078853625910436483092158182771976531067605108497793650280680818694421058343935017508628767785746879474520879294566257669999694451390136215330823446677285869427012807242435774089856894543166248671249907620927953079169946466701112484494094685473743947391582979733970713527631715988138834400806968508717202273976629747728648946900630194610308828861929422716275756213349400479665289614952649437384104598873491729811280726157754988132443683954906492356710306046650125875944830044140618511764788620582317789539987104452337398191899166630682735534142338798515479193300151418366461047703677864555849708994953293241866311912729819275787375986159161963543964381905931439195553052298837392278337616780319597583274309540155805360302503109180221992094105458616928977756449057144935644375940248636893053342319137771557933521260365078195960833380909830326233437176830962601410908622187617300312961574069294130796308908987558994646128602279921166792832787597646871551830516060856610405249728768415279710680358270295063671010548016204121681738017722913630267985795728559869908354088547290814876095205260815819656951886479879115419167402081651118009490725747916148977145227396137975322832632644767035600088298283357972934890001569846583876935423051015482319646710038446161537193563675299266960678027238544685357028489022902828036224896539790785527683734739043104228599407730376763417106748401881999001973587463995370731157357248039367799034331586301790467558662250378638508098186414842485452151928269204223786409361510969637048778900879909328097507834080956098606571469754632313641978077873401437217969527534290410624189132677729692233043198791863791757988116792271446096044630211851362110409384406869687785876448505425764352048387024214282072749471307259363093976712963448340770810194687019644037729843339527019765188324106686034655155736500981831837328932014417509371809617662770759115185792015975305332035608657545303786908191865517000143089570535224571925993464587070571360094575583750510038523453568974582565410183675460865895139258279032816684217112374799361650902814056475405823395281603307048400715213786894455997499749724120372416468447355456367233707784251376068888248056853689771022707535636511671996444686305028275025571274337101114115311781176832119481619008307889784316185686293448294088453268784944141922925178008076541672227659689790293228820205313138380500883776240680142352738383811971353163049692542178239254369281635618410003409983593856592471271906840728067714972934191236927695701595944017007762265910920691682771528601249897387543289549313383152531788137310643963957820484348543494534496611003386449812607252096220969640901024823388851520008265532517961853247528428344675699671993842586646933888751282486394286076931607543940631898240976264021336866836491862962719202228902018687707587673565757718662228891180292131848563778325344091250161737080232229012137507734569909582362814168914531093615593955149074908794966972981873030201012501356408579234967131468413016802057172663570843948902931320263750894531197919935549872864482718897976968360560440457680085982108161593751497941065886659099271137802780769634079626682346156317330237267337725285496387572589648697177710964599125105095142142239226734387864801449436530510730050830300522269081181520242435583073209362750114534969088656800828686058752575222660272019428470330379220823158318425346678476260144917012366351224135069877000341195081390902570171007156615606030835528452436835340790277149707505522320573610219621518619585312861205576169370384785106539642709970322061555522167551959404726369553101919203988655403001246328645854888645287302276094918250707605792726560052995193429488195634819722758394571569314574066701903096533429468733689794320639298602631733643667517664888936856162053783295631636350306657514970770654062481138858030637200278314886299224761002043948947960484843072212657724481045765738263920542936926964336087991880228621944118232855019369787203801676576579386590773016089181416891281511557370246659708709641231767649276031386524466929313940369362181471540697737007656446765106518895486218128820581032135212663236819537327733721024587630573930107937621947982157105824525809181402179372823908650057194040211412961144347735266513225372598595614586385787878121449700269125968711484571286587207609628659588526633261285430924486573964499639925277968270761722105078237768206951473367321495389416027488282397279699105164927619184204364644737331708554510022777862219252175483513957851536279096025799564552501273414947952773006770625595995492106738321331796891749819335059460069982207605938763020788646989121269289791088921193380764118005521157914832979419141542139468427858312768356708129298143541597935752724071398063291038730244908657755695579875992326550220169104667088793526841075831826658222850941708830717874348570098405273615702820222388357957843449679528905967169540299766947555260781259804242604628080552230563346898685699902175806631006827495723490026763600060201950593717417647530775124499819676419727005236924727185450958148997852420747873502012322289410104162621258797783069072159804987754161630189640807395012589205233825241457529328035675348681765888815683718181521650740960492590128000992972223590314699150792659728758825770566376315004622530055189824794813542424040313051341888023187564274346913589707370240175147794524519182591459041690477195638588497025323976963014158609098574735818040051312239876431934579826739754626578800423202213547118957946049289732149370283148275306045491141076495110031642180038417871588514028439330871324942608148257755384529185944899438920704336651393539656461680093070178762831393336986288854209509473721965764598302990171712444692933919512896882645777814423353719854850677691335701975322717412733915865265265973792967801046882978953603406880498467312164793660061342051479945259553436175487381623451510949552300869286418909414716754305686492058808111624486248601035127242817476078952604075493397860257856671233394504056086153109404244921425773447286516952051230188223886437103603410701101090775207703721074107869357461165966775966016360518766818884442549048194067271457621757323243064331852506875842672413605597450520934473944334421736783118344443183806881467141423105473362415432799777908411031916108820172609296789909148438376673454085882602427437105235691600318930018729211940457521422036915740524865715184307995847833564877819535144350590170130310691119072029614464060049770276049701509168566047107989812615378269228594350495413680781546323051898255151912689727343455040620959342054854488586601046859215032706263573112121703351948674595796027723483046198075320747512217447121772073218828367567095868324577091791021615243429773739728291800126833175080462117176854348589681997797894883221953940180538931333086267919705349802279759030718029528222444013622539585936435090077225473297607186790273302888242693335678067409221705155239201433928058115959773908723135863228628992295019616839779894459562971988114619575043554413262149735395953207753584965686460043195039990315696995542469756221100758684562749199824206365858672919044972070597294024048153066005633575048189053820140052660722065611063237806943656293769902573148337787394659784680478447894438234894695688082414133606204056914678447373594582458250646376010924307685100513345308122363824846094596046705665837859705798640778391075074237010863931376827177450907554604537035936174090757545057516448258060215994011596858766882982395314666933697711873918281521615038643708397800520972741108774627107841009514180882999315902326013402986890222701261711238369403176860649601393427179347188530256900956059039109052064283568490753820848265229013011505640465665008571498581790699618883265264587507269607229911982709934858818053659609246479062297542376267777020594272558094322952305416296579932501002660781157283638694617376110520282696195891430313332462604419597884456323597481987772135617702886551345622495053660375199558024071461280991143005250788727598608984823829876191655441989327422225972033417803034852218417733347892305532322188363833392173836497591060575940726066499042671238698487355451745407866632461158899870218291761825321767982798130372012784517682686217728466471809480857375135441864113223917167391499068313532085219310737204807483226135525393697170601995251943761544325363310403657251812387265809611496122388044346082601815929033034532046748941437796375575839981217514621771248145538376064860452047211437317529780795986885353047614644195984995339682201758728328090462738527223453066499933547830668681716126265877225152080339265101493068031054669326882931186223715917717172146009968023569858461091141293481592063276977174602074989079400692763658989832606891700401321336627789291093826556639961722216223458425838049906258754551831060054007790927315875588706561723047775958148441002825108147587181650045846021342557237954599012740943058484921043090933569878909054224273640272834155455617833231115358368899967683130175591730214316705522050868412116053600418190456350605951954813643885863330096022438030148264140521893693344494599771447177893600999049923701577699851908963464443834967364798930159966374798087031633436896396216091827181082388989165660210841437254555727066091139180170592647082349827353578512688384614085886130823572435099484750486323382985808409835500911513266505675121115880555064111554467127011650464731142883923860737954381973829276102175555931959980455548459920241962557490516139807455616380160522454332780958627780613551302563274337734092413077332639325219467877142965163649950072932926545381316842292731317700473991443364817266071794525550140405626652294073769960558265804443547253203464771059408907984115914545091903214600532164255617520021179014591490268208672237209485821815753903944700698580324900747500774319623777741715373338581753339626080519528028023438562178355492056385334164051047015322851964768972585775077532353323446918047035731210504850543001254411713804820606344486036058231031073874480403078543427833048796369467453621319842461579162769236508021795010830923473375465483965110526917862498269522060167987376937862535481644837409750755774393166231752144954944962417834682161205343310498501673751225488548528729360818559334673744790429175569020058522741676684309940454642684461962438874201353997096730779899333250551345924855604084372049223156266906695265879488038607904918675862077986022393055306707252695825094947210124954798447681488999723612543089544830852780151474477022667170524427990706747039276799362275789186054458381263503673612599810067137245472606160589360896110453253210328840468526971172320091278642370339132490853971771600944238813416943132587769933607586901252839212099395689449623746545316124327089041499272411546066436102287260834451878493286010545453753128843795388552956014559315628456795559896885735123838689764406354325702228288186283378531327322848919666852734522143437518711333159227301001799254403351059726365874717064547955465570876115093137477536373705006249811719237214837282571654277791451406574742509931639589828149151926392419077678528430061237531630421183656021925274155376060006088420731571379715073251229000131189571881160611298307519239159400089841310258256972754982797256634693343818979713232236376143096213875088195881803389935924588008107080735930816360105097689613756526698266406170045257140818148110619516851839722162046595657117868758548908611468724275202947911678453249017313890511015862213527962693730744146111901130588391233902283492294170135058533616477624286827008496641539971696595729190974373855011317071029443987271739666822346728537082366156767147986273787632280556772757858172770052604027697118754100406574314949907046080847641937944427362682521632216004598481098282471300270044534599888182978167449942670908814038967595563704441464759541064205860355488984562655491076459014853550261419626490415413029562528459335943198344761750782447760124449948854438600104888249973710546761568720399186948771302039662353783908218962826605925766070113622166155897292577923025019076543418617784319457451192692618514414958864592005901978732753446841319745800207561182159614801533908366776831453349529484720676447961778677160603344339384814852503806971439056698146596513879076188135106054804744613740189180433284763774591413586400251598670945984907228111872946271136757271280649523600596539976498706933786397351131442313263510253279766310348611678351448863416795909939601166576574559815800188886886071713995491751059081678468159097052589974169690830643490394129621205738965962276236213687479638968729510711814910258045313857272714349088719355226188284261293298023671904525772408822245810369647578941757136403595457921133996184724402616939547683549994495618354115226663475653614239292629923170889571513189339256237836930066207122335431894143861374364893289253623944613699153579901464797403398682861220999664147378288460079560734545816001607844738095635474700255134905254184975787496817031952950377934184059492672215743325101821650340665205993616076064449560778807396449301969113956315588397934519673487147900744086351637563506823236972019901728872889167808516367385928594325747679251349371431369522647855878482834143932795116158706992419605484290903571807543747371176619063673854243697276348816596850865367177797351798825352939543767630716797237170077045988131240756320492266529501701591428337467350516372495577942269669256244651306638963549962293873114142190811101483556801377296665137112899964124209998003193592180064542400472320712004071203160354357908703958425637344084843321617498589856971250266608233611411065912771603489081814052150362630432657311217859859576947789383398760642588544481516799738417298910320151635504778340197155165608364265461485920107834140221769663049630334380765619829895756586080746635022060981871577054259923445722250210523629495252568543947893842356502675052672107211214252105004346343745737673161168564664845532502339159114808192096471914717892139878926314582434815496635508631938769617651141451234788539016908330213379246334042680170038819963450731327987340878306012157680839514300506760716405646092345723415007182357477125943172662717477465754145089884697039118453346386000369433265540907122999931908439649528393425715873033067581024250034659455626266661781365932354950319091563342105943244192671257618577768133884976903942622912638291624859046545449481539457062633043583876721711661666165608730453741336234013574370499109492559317509575639905074759154137827556743417150178647612226198596852375580754987022630911386793817628004252554106682132700924942728438787188896375419846053941571412507562672538638618491710593404311822000624897428331861541703237253417966407855615131315092913983089341749896073186265363476393973822466086937454145085892446418074280328957516638966422860479361876146842966071238125303175761630439936231326696379509906827410308763492060032502898054779587288138337716410517165669035239097719722456798864407785243834360051893878781916512170040338457224906496216536784487372704455912570317137012565851795608552806601714313736038513691138668984811810133595347624648441682102757384225933366971562497642780347199496015380938742865578150473269356799299278471740011467809070825207559709651263905321146330360859247592470982056161569437500920200613094626109330735151045510504822963482344033267959830904610353716777411793324125549982265120195536283315731100921440537406982487923086108930928555133124648409709162002918074566808156283266982972215450674740921525021689418744906659190589064026259087897057722902698899600573892919778113299423850615242937308329090100746829900557876665570667338074463974686937018360920180889864902582415682857549797022390623439818879327474673710346766186930939973839273957450494163082239889217308100669350570750155201720136559489861587930299794333403931556832644410315868650960124854110941932168952822666115090936175750082190197370219504819340779556660954377147720785282130214439127828742816840136600130108479993393783470553230532307517968972120029782792219871075167060035491700458647569234192518293030113276391568135821967136242221188608462156992972763691078243037266118899325869437184309070296039604957796950939485578265305485475736355141513796611809786317982074903381693247646636155470622588456413771466532497576576153981579884018536894463807339476559657324162320289730068209321580589926993399364777606169247331728992217393046371239646925938962719098478396521330096248733991184771317621417333848127127873866799480761019004866844076948813394594034608156671113077779128695058821497194705117110965067548844799769014736433738411858803518596314544088760230176897526864048235212956791151845606489577944658610133074677957627432090921584374029058990086983661458407358741274866062077570430493700943321007951217756403548638793990364096336851147872523682583286690004969640993578831937577298270269436276934553971559622936319362599134814654833112130888665963074275680206306792970705381985818897541398083162622671178114754171238282591920819148120044618871669905893383285731762020912255031675565095391539047812654328257415865607668010334852494959734814426911164190900909302742043808899902332818864351036586408833004365169172728252952591261486462541783508913618647823785544477037908484426517368509526967160194117604873096962386516839806859817456686598415504100951392668071914438278010810955332233288088341093578437654198521089074092713416992720809902723265138178491420590627042767823954071441698422695667217320248410793281867310642285561622746471681846104408069193024158974499825941796020611600367745648528260805611085618345854439838780369666001488930976137763740405314661929102849684759382152459981152199527723910824064091785648058229035376131070466535259409976374987449742335608769944034582532686606571376904284066097746252315207723386975872761779216166299406760841781870463846103393916766643263371139384918238138822431029495022062883323874937166773696269776635379588412425762146826813465514482774401071500961017657416220033817179794061770536308158056108172118637485333238707745266386381479187052756907440901195784595093271485112202640810083448362083475734500514955003415409750482826729179464711530915580514779786307077649056263643182226178456143173211404532269143310003766544026009694846337123390017142666314585516104837784231379576445316839927199741523573729211645762608068518338847508869347332136615317831058270748734166929072608651833625896712508733762079839533557148024009376265778036985205103159752427354486239878508332473949141084618023291209764795939466129582153007493018832310306024427716194167908126028377112036297549871290437034973157965588196738964506180348258853252604481246306621263344497438305561900681840942836669918965121176168766151131188129640190360963943310091854380177475215173056942454309326862874584238732695180690964467913149740652827760112108723892655517784371715512714963119622132012229973345737415464367069183932480913200365560892257395630748096043584569338038857233018393810287067850426659223433023198696198548158050155657384927312794901132774132697194741619391781325845410749086179646820556027970312319022895697105397475522189875192104024309251355697471782192659986084493712269655727261244991792395303513402078117071903176062248629627703007062457088910198833042802226883003719707090631141792758855212966468600785984202416878632567429482386491946993672515271135460600311152288847581905885691249987392001730114490013113125021923735388810979367843051621755128605920325438355324196411150835077277824038525897530257482144492578651463171793448351968230330306602725615244533211393558921376664625664311862718570395068887665657820462483806909750765609188149152397228746870196709412929895126168742777770685465868421677591797195087110431404206328790884258814887555423852976436311636555667803424002885717631669610448765913467080774330424608135182802589734886413049258595747607586658054549608039605244549399962154764035734227017122323772055806060294248662308057145937843410714094961719128505223579629285948876833690276800741413803809115826828186929068829328034479217361734990627664939728363769128975886292115012967005983190784622198271049897625697093885711980047108016353120378661152519882913085728903386215116985075025983225817631474961535481649544629929587973500994091432489951257754554584872447699554206432515429183199440316746562717693558732407419338690186663916689718626129959988083919738909680157976270562932071733342011646239001919238534978950095263010975921175135783802042204455126545709185585403900858837077977735750721146827291249555935990295069942711858311985461367273084227805680240486279514486701049034563911607539203358742361855652713277331891097071737299674594216202180378113020696776458580936636680884794763124759997561974810332090471153026155261462821185897745389623111134977032683660536347490549632286260591231457642681250539464951428629526667555907747956497757141801561246751716756537366021804797736502091453598051496190701489127855188503473752875640702406059098324347619362058559449725850006978055573223045806407607550078419477607558459722291377714658931638357437453096666186759008261872499480761456728805352863009031004698033273266957652007698412516215733953903318176615938938847336845633139190016007655649730599937004725145199253886751335458864544760997474354010201885241396407220686626389483307802159276497328500613321852112523075636590238034314455171282739120878945691421842717502028751646809962482870172280329147692728785356873020262465859040136573422319435933253276089863621498828363277142126317389212212336186200461607965578679846313189296193159603717524609998005994218142551636950594608730674609910917720773512722908313974106749314273432394538329441071162226842466264197338298610492709585235026477981041431398752974913734575653282383992282408782622687228337508457383676769698949967571793183012339949663139193066194333663681989213374454239647182071493892318674155180317729523940443882257917651331314242483624756904872441604871726195302857782304747690433573960515266811267069515216125034490148552009684981958576876271056357443650466841931942130204637124476417054561046073157372588928913965089278240779380041948773473373461641234456573222402429162296516047049131992049498478426267618221222147225974728578072161135836942163814229652341678883875774487009859011510658850487971185209802691671646709025571924399168312825634961975929099818112314434314648983866955283458514837304487525449918750849948579728373739437584506933061911198766408818094704545437857666241614082525036401349425153873992426334071956097692300774829326654128005549911959512342100188731423815242880258644125184356604034182177667273798029924293195994159540504504540724614424507035485116059217753588176630653371257490717797092947768677670773791260314882690666542596759942123619644290458834013210424615465787905738860637802372575377794250525262417613050200405949787793020404364498268414984352557856254609890777674788471549959494655493441808931585986651096662681334562387200265863305443767373235003822893090166940724789542950819435591233067517250928016974471673173941762050377698614943216247920772765151401152087291959364316896311928667299240145088262875901161629596818453447342975717974413591522876848396357039234732794387727759164628537969132735535534706673606947640121048577878490539610885888306837435877986719168770078236867756571970086359979742034871500281198160659845176252686155718466930364686939288713559555560378934445826122715741258604849679901244433154066681011353865346601397123512033560358937738473046438003599079780445475318176998891814009125957390130105924266517423033015785342229491118460704795103488238290895195024041441948762316499892476253098550358921849881338797402771339485617435139578278400671858195551026115151049478679259634461165455195269272122724353427190238578307999906127193383403721207601551759214439321555702386850184940132051902191066379947991945947101062861912034015110142400865305938005887595915819531367253381810772553103411365255454910453859827916238628658241628567119423689695641370237883831223462348937604467276996962584218573102559684940039533668974028531510483374691294668661341357205228045289186091875071168431302350494288423012209157694666182037317434242248654490217698972134113670432717054500233180490909990508368471714729252147470044629039841147016496961178908906772467813238903201623372575028443397711309924635765593332194271713555992519427531623256910883790725028320847981090299914682392450681453590151471351865484360564148929948287719335048375780497250254037992966238279316891302604625707678263367502984224684305128974874909122053533414319235201475714488583447980736074022814663624595067744488987906268335978102554934761713817780525681982548591821241001279967398787815913061564875101473985319994951775433159741881085115633934415697590217553307207577741282773610862270955034887694812332656458215400642069095908170717232643587533347009031613626751328555907388537583309900419877938406409666816743882480118407242576814566036665178434426591159092784388272356005453005020989288456036593071534139997738713344291386441107568361548878933759513174316472408673402199103150116289540728586789424422554021535672979835719827725315223311481544906726716644707913673803602975577308698181312840102447817852774218695465194051119323592444005587260682345619948712176218519631776445751889114289216811428775582042207075193174144960908813185744844421923595561788111069240570689656784107064981720610642610913203011920688185633585782428181547624234657365082754749584083994707557686698807846810221009621290300430029698067048657391239261945950205747980258523768259935517459439749415029428811871446516963650727710986078325462457818224895775383193079897367842214333388206688802123792768619414484691225431823456255583339947913599557451855958363960596851739987509782219574592193919924307469074924706876637198437971567832627941358721412585914590033797701886733335181078474318290243387693138269303597119929892309091284172209808307772992650433054165210790179371149208149888253198372728876853918705414139167797564008929703137178417610158242364602364055595447896908577715341782674291247271800099749236180128488852865685222111292034117852068227364230771551069797175000549304889619203335447050693475184454613869272461560728871703858326462272349490596330733136146028460607576941704193915186580306032663783354890608060068936767393942252860398563087505095338019880651461109749146675674697380591592102657212910084964133632750755160771855141174789809963446745539781234674869074479814174147622199808119343670581992196647455832437153337997783963116695813498164701229847758221562658826831447694881786903130282898965736923359295894687067737603618233118889059280750528085075512347720565471491532502246137663648129471612270318376484512685725510448408779605741761193549990756952726487504487001119210842212159934044991764367123045343777773033856582644138369193220413958554326717544971636568275105952180788354520040145303055666385146340163809740911133201524506083546941029466152991564597556182641358324512176165113737247543870810813562122151613095045606381764186673677193124063370805645818037487322986745142298115930796669200010611037501876911826724570839301328953333617771954588455978227572452749916268739919886008140961991796661347705190429539717774649723994660664113994028625282959170024242854585541031555334450825781481627129089065554279479821195996309595136073680913780355327696800749517102435738330738200432572815515145143087914099382316360115893714832125982769623802508060007014758512656517608153552521236269302186642513307424058970082468296953263699675219844202603094730778341377019175921303236386961408057299096644890818402659508945023526544168407367322939609353715284077038069224209260875786339573572850134621975964480462931390818800498402686382936205573115279395857607523154012054816356317805091299189389146398179962761215708871133976388422910451904023885911601069241473584425041456829077856270552482257918019375010356840643119830101544132586146832930431421522815999704344541756129782051240054128191486183327012831422922256111877931966505114115719092243307945718680390868482300527031459723877432120601466717246297595264769543779706507987220231056992327960930230358204203385144629038566494097463491839730294146969491401933363317009412660100816373592532699704152170974816718772317534294420881299845215520772459503687915467401783803038254850069573533402021789896085325722877185313831901677853203939325163101997236985038945073914663224712130023982268645827069580930622505591892493867826912365938689358078377375456760608925621231464060574842750042757297728447641132784037190822277265035365971120869159868444367238193298522157813842858061702477286055928874614053117359451778800631270949418931606331701689337141877928007945479222464469156261362986474600800316595427395223940067987715902676202448375391929053217397817560749807916991194226578922353274413412975163908731794995632751106400628400841101944339636431234406535111340292731549179891054921736384246552902566509690819003516644773173026878695033803033028986794631753676093924453719679930645265183085052754236925673766089303964467270335903518555219842009665825705715807989689190715864528736634785870622381185932139540332124114123244724466515406220255431404914122138057576863846455900824548331486476101686014594716221977007955270175796356197749086181190613102112434553208964142124706519259125062496227844510273981983520063371141612788853572908781441731325214006277747096878541461661191619404480487352997074114648121465831374314742071583252659303901667221931490058899079644362302714496607437596935620975134223354996266218404955923511297773232165480035467561797209946823714877978577697391324528755972659229368580971242428989781195610536783148631442788773097770659371417022887927126249846625991990319718015818081946588400668243231865204768459784618310407273708777460062451124175875230271084263906743690063987249588216555965595567226765969869861905581235918002533585940773802958533042029217887666861416564511439687733129696707059664355729150393216992780569410312082947874108633665773062840708421304881996906545638181484907821038911810041659526849589502558386274043253234443032253524647106934184730326658158446383520312856916647535711362430170506259366148809464717489490067454115307553668441159397321328999976785265839751397986700529910443041537439556799165234608674107855472442463857745209226190045080498187960520452478026955157058858962056616052310043862329096674506052963139197828925382922918174099001093276061337256593224348798271373268629397482205950914521191802290349421182853392160968517799292021030093842440371336084495460445315196430938232271919058178798988593847700387764021378742901151311131317149345485323281704457680615481393879232872697337663600699869211546677000475589447616373946357310206129154878532387730262267253451458420617399999708736843005139898643960641273573142887988400494950061942524614287124799516891088215158622574658058149802850695350094477547067292518034842757764296738599834667760978622849297483902740561287578634266079682680554886709501470147684385721161257474514893148883592951744023529389741398793558836115611692462332986469694766695099622096100600720594935109792761086754752276809591860615407425413023307608562427112665521762446721518900367290695650513557763169875951729916360542101105933231258354076649052327944288842881501200977009782776302152689352081459370660682392329527555026624256513677596999278869007069820429310211915464630558577117753440138590212903847237032053362292602086471272198083281639989528988454986908218877909336632905923384547881373903075665945247993951320200134429792045520984921392846657271538097014764944592614685419180662028024095713973724608966032522846436468480306017408173066282599614135399803332972002619402881552923722218484775241435088890883036996633897769385241387355968579438490387521747484706251908028794842885021245873274430906344602602699565378242544039811687196081652201910477574783491476519129370794889209950688112016865388645977031537623591844207351000221516328019775320174716724226375984796554491102780952934198644213664023710093132436219987537891077904679293992160512354067385123592627151407752285852281213856237390534346205726912458945558354706756185114065833901135050608569420126915969510272315369998895200531835953893625177380802792335700845043034361463391808409978353115510337130310130652318462978431276285455249347815008602863462294545876375485520561099868751981026900898628845484086041457769274132961209282373263454267673988696855743558667451716363725488936211686260072597306814848485223229223167537057476072101478979745018482735266566532074605114663190912910881258363920642893644026354313033967566749684344491976221082369308298850982708148885635248591183325681492943007503522624136862879657727961182763416663958396841628169270645470881558435446587535977022551760662169564129434225601689277155233556599475612241336240527978530208089387576744458394898015868770420929349322582949744365489747531055359338475346747348217025901235114167787126814982380455688611206986615312852277277988974392020094358505024958816936436834154302414515749899567802306362558627290410285552004194876799843808290611497011078439836272384100274032033767925072596244550289856285814945306758091841401766454355936858916759195549821847184001259272446679581370484140878571446428466736419791234421334598964545188312192936843906050558117919417223522145324101336714968001694958705934642594414641542057596990700040085982416462774163294633022518623818694881991076201259059462063182176508076829311928843611917724957540367429227065169699616214360084331179069717122977737836917832456894247368369065733646169230852035498294383049782018881607431935548040599406547431775868118462738770105888361566025071691932726983945144163219865985340403530737870939674996611316547320880858504039152393154039384526783910814416632068483007664364709878025748156021988253452137255400536123636623386695385177124649275702001251994650304464061363457619090379352196452656574412696033713032596874292655434025507974166501681089534596853317724601681303334355349671156430693703612303707113582052416727076761097885521936313887895984364208005271762748047391768901662471142564667333186056760840737902767063014312151166692234301784217025740751689338044129341873406729757991683946419648630812037664522883026311996169817890635069430168354350298072569335593919863742727659544982535238957021912631190224447896726831233985041717635398995296289254805094724329869025634213218673549493023923292434110455542411115460163780557837241983478068228471102946987478013816466565699525142824725756098297032332787048221554225002556971216515361920356028599699339566158626484676451385068734351204176576125627790623132735434510331002025115059137319747601392393541871669577499802749918287952222314088241578723598696630508580792162459087350945480226281998893513116331545822136468474195564887490679335380059347172424735859303077556278536969962355436700089285809202641795897487464058513060618123250148980454475841310415684006419478334134982672372525262126458824656655984884807039843055119923915631063666174578445152380386042064307515680270378206092210521494159469000975821530788563130223770961795605914607550514824736100195150847237916759862851753581808562619549716306882642158846269621923494246058475175619139622928872507117007885603772618856784152362881721809073181561175152252283456901790864563746333852494418665408227331397727487043138425076894804077356096513834425509992647435927501858504967501225288166983920279383183093470749406373995921827230253795659703937866245929585365727041752008649640464055040538858694592582698362239026329983013150579946934388684482825125106342553847842266949840846737330858976059192476177347043403275819332460205837458321979452421468678522136641274951559021257834778184333803254399468248723305007676394662984866954130179008702112914063552869331284209453251970312293837539372228274485787742368273053237620495975832836282159803275471753121880555444435224018647439577931731984878342838514024648101464505986325077138407476941979754697025854915047111778285939609975494650016963550222904588068883539259646409985782349424824131556999461755581247758284734857304149459931541998753163422129741072163546034184398573530944984711170330548524869009276284675358836935940358703971810158529194706719277780777722073508538870545048596996540193722951317799836877554028140257608130698803897771598994093905638783145210766784152005443487275896677587249101709149587474541199023013081879521118250646065729063795870456697405918746475914068388320688856605974896346737810037086154779422619921914250971406414617791969940162581344995165996647756639761172107136656698307628491078641794740891334532240717769019911329613546180866744009816060602831604661322453612723557700052315808530184569727434527404225614118819314369633608226686501613098806169569861412816500321213656681825462639486373428962083712028967295372346432760963610371468619457504533088978898086143768387078006578989892281323971319209399561128718019286245435014716488239469077143867495085988101054003375242008705841186601240087023664791257741882214557808442644197146705449804207483164449851154625311022628655841468023377526715795743103785358260356011646576453625725041002054723264274310797896669337815262901873403448365844737170806289728421298885971267759372334156383266795245425603685140980751562972011640943165184089843489644241668272854880033373996909168923495180490739401679437721847016553069860486766591125667245720645635967646305950398166181645700607375368290920281184492908586105193356285909299626564917028574925656929637835198453829220614473963758640736244124919837814979514604362883882281605679721940768804071491788337746625503849387970778358385871455197106966930411173111164576637806019498217821532144381966812742882124472773044853753747203800416613289079772417721555925369717303152375971315506818331396891607138918451799481195729331775451679541462420342291409093582539808308910075827039033952390646982394175958016972503393203942518464029966022452328640626228442391939936998537323460688215124325289450000210635400248477676005218138544339182544025376573829578601501241083810592020187863023993608937930339543288348280778421696555242411977939388350176237303828672435447850522960170584744209940584697472476467656147033973989167526771479629231174357985987969664299691757667925109425872580241409178925722738871818190591022095079009142635482638626553128854874811949814757596326360508792476670020802900297151227634634286285540749076259250725059790581454058984007447443638187070234374732061101929852302085044999435619288026708591116208520337031910868011869588202491963061068601399295851412953910192698804741181197880452423645731612493238883891214023924090712399625837016899471315958225096312339725706641371627724820784344270955574340475406827990850412771873349019987959400061559741823449812769997488641688555614112751908243432589482681706450753452963350866466920551025758745496783712748203050437635792546001717474461363956669024485839607597271234234959586336112398610605101465061910419248205005824268168644799012009610888685040905750364043847614324290462300679567961705366064164312049467160437846453077309957250195306399163106205567853488740261546461611415090371005391604456791668987946221487117826665072430578956902198360478357456741935849020448946666440522578052933428843516577337509351636761609646280279396858408295181774199936818661726846403318251183459312029961855312634298109508799454249236029817761169618998615575695984733123474583596789947331068042553549172794144339663643229173553016439927294728254689413366063622390555701899288456051289679653437713675865910042063716695456637686706101658743271486334810693337408367029073295999358833740199646633307088795442417599096489510507009736738143173065877276482111917054283554410448770728595996339177990844625954240428893669423009089979357091289165989319728620673264248864338398930948799274939077643539857081364653646194063453305080420706176311294501703645620653423464395103331458621139300852863247948107457486114690651463212953469994511337394459140662795486082989048544721578549661745100089371402059107479705092105896081837384556725283505075521092210265018344656810436395790160973611495440740150377432596901131510673316362645842054853188664257254438869080217429966839184846650850516431736309714781649942930235522393598568515214867949489567770439678644525704234596515599232766288628011498278805399557410865378320964758311418228474097105810546477123691359703202831043777934592227809051701276560052566852239005075905920238082517511335339328518828011573611193992856168586063852357685790846434856044839909735880973341912784259343110393938573070373927609467705215830240317471680638925895196226832293822880317471229863711341837835393909715723718939377648528882725064515658707720736306965685798495362741556599835362599239153816416992521729304562140372873635769316817252507858713762501117600879343360735185565547844384721397409429216034951372096310734990089935228475121770836293906191485781398379745187815603522266125703266401635585114384282388964566210153581219073817761789329109123572862756967447850610730802813302219069379567019659268600154427461846940304615159467756366534271431478315764932236027988052875193009409201458499149298068486971689944679353114868541447176810081100475310353602578267228922410619236923770609191020036898785973492270235964660725072835746744227588442146226738036320612755101627836764541724805071711020890608595370511673113016929029793545621810013032561568742053391998521408807197043593277454422386792342881095037590073597938790837758220680652086055514872549572167786084664506125968760302454198881829175646372539074111625290632411186103721852995344513237167167467810054146459352985745945269525283531282737118867826972076112328385497824606181951628047440879358388647975953852825202828459149320277582190918164078905039093801587466276983254751561607157840739945704384146879515118358398830780163533314393273885291240895642027018803561798353654343241732455086396728880935056337721454185134995628711767962423789759507105023893569435900135833332233737656231759261399507062735199247773006967371951217885533091355042252769482542638909508094107674829926497939950398726738910570092720674862452120283600597791581795991569839899524833740632500890610055269567014631174796774676076207391443844978766138116745118462399224964724120862799044165951715868717082498884575722283340612400691232453723880984785805669927740715441191476486409914910997117403451878333025731320997486493127322560962932156083275233869693887732718917797001323701003226108751644028978269623039381647897265559616361178105398417354092330278744158438307898245277631540875024484005558770184820207702471068453727060164276864729833564467873379686178870527334686905758507340123168301441171164788761580651039631207036301929161571221956953646374947616886162074639002872370185013504902608179491245415107562801137775220092537038801903284207307185670750609947129669648367249504224673252190286945849054312480473810866114815360839847755960279684801905126558021505461775056653034369784504184929870853411614925433249556440657979977790176860629023466636111050380022278620127526816709743638766542598768032342672200073234691419849020882232513508054770217355242119589441571272906879372431067661325383547049833034427246575322060861314769299185005063629838519725283952332549082779468112382024337005831832040832726720031456555496414519152062857104533529070060154301091325398677738459105342333997515007041837348071083611263788930173863374860437792643879297495598301566623004330727005230665281125767197108201410644073147273390720725543927048507493663830780610770504005893763453769637587638358388516810786695579916159926957424884050941503352980119103877091148527463615510897061103565922830807196715816673602015911924485174053671462608954062301347590506501301311987478263926550785384721315250868140503807964335224882326673028616553351028735643223499579521905784847488720327592532011408687472402366897113324913548950045225360317540694329335116946642551815582035387078287484950340908230375778354263584557417473858611362801507098500933494674321247462488426212454591665762358142862192687744962766827773646281733332771191864540020422578068739851338718376995256414421015564314167826798956908054330257125669058683147623944952616043525119824575007081644500332026019095341718085115539747775755788227329578923115372633825023339290823774684469390453756692060267559096818800342223734525506556364121886651837204007648483546717067431707565020089551899578383977179109386585290841884932525416540756637189923806064806890885295874990926625062549841594478472585339620869978968835535294600420000540191143525774101753968542940803665435364486044768913287175511313949946238877785819050669075660933294745109435637460940879356615651522071287544543805263737113267204105452172985626202004620585701806411200819071840578612364075828061723785932284030392878858674717519920660856773767471841146545966125530753991389124205438989185612413314657700965676749612939459872939941541934674418980371217340825847521540044722530921805666405896392665834045222302740461422485047716225739327737372318220765407463100922415940339872123574519737552602934138486742851730177661094731189384123797954362358597887310204226716014675863878590405234965295938387600641759489227527407185901184319223997530761815780703951870032078849368612517607779038031020426674196440414550130837013108324238367576519628391306969009970987257214738754596173492773412883907765999108694731090634232433452711702547611392116884479496260244834764351696080406949550547158767802975128643559576956066803047577793266361704378330297011754229655740545808870177136806329032677422875285377176865640415627333672876970630178862500039748653892609758538429294627556375756706157862273953292694687684056049797525152413714340178983891236310429074357295374024057886416821513158020265459727303661017757301637937634844766984179882413182707873365292425641945922509253664520121076416406941955845840655095877463548873622706664826310863036296261572905824008993535123032299665805144643218906151900035326761397083974122848409359296469471058867225178735690127060311667689621054865565126533316969341748010215530261989733559468568005473999761970162625194946944372540574201309297531708027239312059928314266411615861376173050185484567754562589044387134701424927012941143940613957914777890476402602902735246936709944740423598852052414795098214052202509011481507160233600826002074307034336081871274465903991436319631545366206725821528711671903671914700797613526563556958070551767100201323884076667839757437279339330328699499875279434522890403251765531430405672845748159299547957624266274583418795013856707980482361935166874848520446279318042356457214444067196661136289522588372475208496221006922386595638169532614529212959532141312181622429790747289828721473041425396381021700612305569655453873285284536501944884296708175798897567916721420025885212320336855708108010016329055841332904650994340254189638710568961704079266897096864083677606391239705995072201411462782653471459285985459078862081092209720232758566993731435314029050179227813795062149328458018859732127853181442507518825787898836950881991698926322101304215523585971537047289719063719354509098121778397132512009854550418055984815292788490651733244327582143424966290490175655806278161412272082662723612959062495244078157941473032575045132929681420691767990532418899628425757264403592503622937050617432501762755439844195852484850968729115459082403350377118005780424456044632247204931933605966475237489568358992611961438121134695929567911675554801275839651044755992014034894078112932872791158404334907965530800239618465844693293284719273342437364158618782740055427151017312147408382394819730539445725317315965434642955089054349493764038816544432024426784643048123776498065112548771337127204455231973626066483881105725018221870110607143232677220806228675887822864723447779797474560959574404910868129316094578179174535465819033089920472499421080014988829314987696849341196222260031570918526595718144742008520234682802131369829152011722779677221369780745431836625851607750180036169647601946921676388495989064227592120675835465902102431949820239424992412288909765563802747860226919473056668116720430231226839707286409535770096640154787288788117744060305783022906772022194564310261010659193767640785568126652360439872522431694652265455722828036592776033892502681558070108755444580614581608140134734204221443653924458413196752335083683495801515576797078824618706852093665654866420169674955938816464225938013027454200780904900184250635887301790679150636063133466260716757441009786616129358528769840790237895112769283631315481911740108543959651167846130934784719149914739398824610574639975924774140078064154773161505279201275931492805024425129691882265622803728825333558830497974885461586036935621359849547933626592871135042395066080265146902782197940595877394073667732139389410461416157038997181383606798779281966553502979390597254273783538257309130371317282272600876257567728494281207678511257683286264548303188678881779423068037177367698346028113841804222615971763743344868599001035873036786655476856995284274056105663395708548055044745820882282588001459000791629573750748690738199780536273117992276667376748402653684058990164683616890217054021144945737818497086885374417090800023785965666250058376321295864466686359904977857025544804469974157318397223048235865152541078698983548841128615604068419429625914316788571830650979324735272993362462427012855574600584706681070751976292461883606970680646613804438403206136014547290829400245196489401970862709352568639310633916957548277541605988771062616692448413687977365181005225595720754626430887034378537315344733257335374607954659463380772238801165473558504288216455684397114338822247328813751644320208055572051668445716428795459333057954473529822514459590718034856989668741346333047361106062829756675362828831227903841146830263699494849289056393882735081273663605217433476591215245210505105829632330697539072873239521130928904142615394016829482778624324588531220921769947092988911590879526973602780391666180467425147476964321863865635990276948741774060205592670902636453347651249356954528862486587110015501501355732088415820123565150255700717272593785913770573192670183660486875235076360191660544229806101805332639272533246770091842977928202129124547488880985001347829199839749280187473261253209370090111953202386324119020519028062790396778565122530543547858186351190296355582101204768904096790862369240826323714939842796047859981751679579511064400203434517569098758219338275848066958546186353312690295327537509221027437029500251452826989139281693095413067959557496180908701638751044750187593191019797951019883261501557028894029354438021802656606026258720426742606545244548004818050797741153584412455495633907777131987994273103460473719500145967407241991846619168417846320731319650482805051955906000258867838967664452930371620527719742387474028132674926407906284051188353806531974053495159479235234701322604800887993157512474730289649823957662321043938919959889558193772577777972341788124454074535750768582653319948224376967241488440373110863554259208567564564331901088202317007598691016474358879377016616397389880146663350574161555484977383211925422171704808168804535809946868924497189612113925769357603034780787366957715569499376084337420428094603823650896805593763429449980460339204152837531279518599342891546743148626564306852061032027289579433992341725876012417218050457713854781728390289151382094677747474605502045964593828331569545687017580314856504677260085686427168905521301667904836343922033873176604551594116535662232343360195743605260148666890845710415439295909455544060532719133907536256018744271121460298830507969335738577483048024530704243518513471294644155437598517323550750082271130656360975861907288015663613380960940463207538038434177525808101902320401442886063179486212050758166830257339764867822635964769173843095191957575558731673651673810125928396749590968406967824615793157396619707303265312528060642303271305211926849230764931736608760437838649583266396552101324274393612779111397132530052459861987665744239358935767275686806244200836857724288593388005856060872564067576499606709673786503646463391885101092264788397663840101317467316885506051008472310893242479993771440762112959879256518612041967849921105233178849269092634567567354287304755568080301092326463114744977978737316435187079629723881837856495388987795254432922275688614397344962136701386743131480825096970461726682366530824576172875872085632013060531259513607762491630365420206916182247493849090309064976688706222754068160559194672145245587955806761098544299977751360670406456866444480196139557906045090273759936126218259156376279864356281394697695439316560116726106823962353555856100505612860475039024876578871216496118308099128082393813427658596246653668668623933908374266065934397992604456067252020440373764959506208592340163393145976725279568218689025549374154798924285484689000731653465055217758355299415560766865460718905033348416868934555180977546969058152427879183122905119006149361673465162611231695503402416242759784925070255862730655224834960746439707292858093644160480221180376746923285459440040896252681451622212678681935591483416446226434238537813407482460181805966167378381569032858599562941664365093119137798950018510732971170827769334804163459853040541593792003285506296312474206430687617926678449809938667279069736601371096528086237020659490307804285887841992193182938659528721479198539076542874566098904891605348033111231172449230561341961816971133660586158513466592718937840235078239025317321910065906263162761232291074787402741916363349921457851696971537345714337444628812950584566803163993531799358775422427170079192089533772410857663628943829798378695040409816603133963092651433822738642067734137547572591467842504317658994636561169995531191051511482327204342213604736837175085069917194153514721384024330431964850889124142699542362555195447642840203663606034699217213729520771244666798592150698965484617539034586531643815671076906635875736955003354853122064082290824169215469324337322028241118401563172822183730320633133963761232031768101799681902624654659625974732613412731668813927653277956335610882474055938705718995813756955965983609435373153113734064601324084467096866755492330477535989352315038037797093865378251572742058957389766147046541334211672094809956926661554321323444977100919400511704692761611162386602292170689020135976717127163301764487307506143503118755156108246261654679741378675449550321259875009088095188524596222340600985802050745917686129641662043716509701353047912034651522778030007229470281951307528638381213143089675918145358793494097629929995149921457072118791858920151067204092853925681207505377255057956554818671781009435045588351922355396491581179424865189426595016326993764066427006477703805225514761027602942640718454637860959817475864749797043664308329750551029780812058287202913776234734857317590821082714778103909844331602263109800903850658906006072184480364287403741805515388030531971489102528697341788203972663719171634727919912357241931869941759230339492233244941434564883674136475657020697510499652434031667368580715159146425040795593343858971418587423748620254188645569649106957630188160139077331243913119758194162045663994616895614963956016983693643311027046737190791698214974224537115828862197321337343195068152073244025158611511541912193866641658800313594406999243281151364100241184504676198785428047827349624087522138927229915538633600855762292055385122623757821565556473540619765277018338360392415929860445445197724998404141625125961809469084706919641259551931618258602248106378656386828011469612030984442008046835343211432800538992692326538835650970259266175678489410143022982026803349158566843374459759376053154272834930123491729888352294130444145521701879751986194767198954640828073792160681072097867879420692811542342248949339275255512731356116773207221731919804667227178309812574946380796149425341343354367072444310449463310627767889609435537133917261610576830019753976211453683484258029675152559803147665871135762217399563640027568541179990440215788006136828812501206630704972706021070954158294783048748339019526219058455102169516492351219376758152827022756044017231608067864223128452516184431089722479621780403711648141763574424664828253159850665880559440683003773957364472989629111710087538756202614701736614666407747729997986551142212089503772129877762135941881490385093863505612489937113739372771330548237654086795777691378567459684682673505685141122465582165468062373925236420029494092546496536338092754378151095505807411696750859295212473357237994505487403940391009274121444581216062802365143167042910295953463182330079088101564856291318430958950977643069847259930016777063805308356238877024862138963594310375923351677751180081034924946507372453901487760465549796483524367130273871390720753060475781348336991987892310246694960780420828649836685709712607697678871252736957170642576361779845470470423606292646660178194196609207195991471656205269955130421118227012422805766628236244535607130303731938518649336012399654090679346496612786068987323136624718240632182335202034496442762148423360672001438358335766926250379221978216731703620398654515496941894882648206912345750945955914999308100109644857508558802278368771272420469091585410144491510581617639688422897673767230541936111829338697406891582684519775103045126135362749978237930100696957208793746985639500147954900360226921907578827680344546253819981728181574075587372060621468602894101240206851240790521082464291904489601515818524628396066796279652534429482451778333568171013021550451189191749489208726641386837578875107477545796678619583455910180653942491170559811488414649739882885971600173376997221924201301747051517473882674289410279680501808798814324343353290457500988326133254682940857068822807891320560592779272155907979132510186563157602836531053212546367874610772385575107197859974723849154114539582916355898893886346794756938067382475796351631254283391953474724512664678524612214654881991544997671420174298631931319369679461137059326584726754083713098047703389993509913603448000945819622238639401717407771233899965275840221484813790801652367106364063339147518068299105364931978146745137519832715192535356089398939769052416251558770481943398699757295330240470012372313699539523792045099021181096220890294845288264331463187180908807444432361801881591922934539434655202760606404770249459099997256621128975017090227642085205459535680497339509940522397349234854557329654427030446204806210109361305098565245075213854975426012082897580763046760353541926540116966168109883152522762868122609177838530431348950639907308051821503396970045209036047831930925313836514242666461751317928169625186068071958133357013822296305210823142329188596698784002946432462317425203447461020878864185893797895588148372153640685918294398771639839259685818061754699890437685429421740832170273474380347324341803370839942763340673858919502215520805056148003444892380399260311072076801389273302612740585914961153413941233762919107449881692080066948625987811335542277476616740602465440760864456198821259086816349267037407193852677258038949903046899979954217469049784850042463013721879324498208298357724691675229848342249558913098411408672530443971715125077519234137977142885583361890350254944147352047977306581406588681571717740426555631077126381663872166389765436781858231773268102223921939049126094030587837532852705309019659155276595029617151527892175197360513232345112624447076045466139107159996747398700633095122576304484875072624538692309570239839497991129767918238105952707876658587108129021274005874585430925916764926225393793943408152263146242961109150301467099427470205827553900469975074964295904835034395005518535971869186208675174249769917861423261262977151142090211431726168638692096269967808773397396256452204137223004808156501506385951436360672686869886860960715466352447645857058820115671832387267911519579904824884770874542196046998556902365755870980876729665900742163532923728816646665118792866340942214746270165582007620156620150131345875172362153894351217900452382012542909558645794905192178545468145272714005513388409113077115413158339589643529966006080607380831139654934137931605620998963617854488650706546107248727507248605887591819672441741103800348991492913471534739516069885220104191155955799159275247490003526681724167410437895223134024816237010267499348698934576417297999326166298566641518232867913587284166021679606016028318720229060549559534839211739203328274117958061665760550671866224829152035241582087535308566154090754439465031950474171458658651178139810816235827616416453537321352103058893409154232473213157434036554830430725944375833252242101508322158231497602476345104490976812541898687232462918915677019736086698670299164650702458404453085055866781686128459822459266550517187052134483794498580268743757175545584600928767435642976833982786165434246109103244814066678405266465729514865274924797717288176416028342795756363251673611201996156117707849239358291825095317146205352326759199477401995753198027531222940303524023639270709402028031291725206873170778302032085058718900484780386065816301827698632345178200402205568424529693977708222995779858564383500129031684677689244324935273261967353496455099672680613941172379285025512240975378765485246746706197995581711741644698789621585047012820870283058774621741154439282173599581846958262438377981484935628876870347082012067263108523276052458887070123096207825805152761426890577900686052831342206358252385216113878873098662038000682160558289045456779901698676134204112834381958072164963623583884061675672467961142475058317686041634845157823869591457432730541778165610006663285926058447845532716884261152773048766324480083724463178952617326750621615803826144428307753548988260766389172523378304055018261028381306516152437403963998732098302457360150132531905721113095906007274693984249579504755870767260053390031053951738518164120052300833893845202581660591229834779218694964901822863489077633008187419920054257367341607310897170152433983771614562157838398601422355566234642491450741131290621887887080154222896830138502903906926434153422140067319519816116302573706621887952975756729961717364165784482593748251817748035482527445741094448064608496164993440790557673799106076925392197724668610905464329906273013480350666818638675170657411620635255169280122683954837060417461152139735941583559460628666627672185204669083439109979949182497865300822781217430850785993655225391772348576371253964900734831932040347443655349336113236736287521594229583324874779512689042486121581165892752555078042771091325562759769117299039368558870982665868208222239739323480913747502268830543709874120047814158392012572196187168796703088338449501921418746263772422899444238672986710323333164530468276600732717453289427381689031705280696506318128885540362330156380575077150239764446955682927303836315289327419108890380138567153234413758175491322559944985310550348291435403068836357636746646776936417298907824810013628303620951853399138551461643123874282526676070535124475533341234056357177194762026143554010798037327586827191558944814690443044852165573890937947136342462896123983262406383978746588978767783146300073667419584482892644585343787825029182187373921203184482057053451190326627320513111831763908739886095926015068838274462900053092855085683402483939007936783474924730661063397781628757251924483191048752069571780529259324982269320822948145601896688236466903393265714300169310512283669947554857854670497068708367404680801409690367716461220031636336673526457430663310480608890178172843045068693766155696069997483512836927221749732985933908103885709954897617892738438978310082859496303165071004380525756985176154855016167295405263493765820430907287191518250263126480388386998218697817577826541678726582090464231223165127357922488269895158633353534291817008334543602540249732617111175665200362974004373705286200583784143054531286669429454026521913019778940971464911094027226612246623620466341497595693328817121659326812781913646306595838002454718509628881732336527546869061794599736797255474345784412426672942863085067072208483996658099839502252925728227523856043849615567178199199492679970610935905563535824256442498000781284356543433105956951422691559059378829960188666175176490716335435058827977972626223552218600663345572546938424362794336154870304972792438606370718672719987069157690989470480159929529973803882141032439381059919872607656085266743250739156694385374379754161595686462954087387104742847267209391156066934821938369944894343737521846888022009640533879241166277375287680736898618560371664504233219837709171246874513894049650376140732013430275505533959033359288802302402456314205238750824286323014086138076961882831796153335087721574487280060206404271023310364673993187241897781519256834252034681640545578379234758437650073686970132865588685639366871236976060443413701542884099187842135580973988784570895634821518301977675023316442981413665024894685076954540466551558441583257455286559615386715280793256806833804401502137509275321437841537453248308349654739971673362293591629729282084811918359030389483331424909008120591495418775370053651231966931222526491575000312440768682755386500779302376442178374513449208486198016717038115363780176127357091944660489803541869439643405204100054280080867680220754402894902874933375990363667441591034267324565635059652347294578333699623020372617495141066859478028320069021778478075190365196093597854988645846683350284138693556078526147407697281182638681060495106962397685559883958038675853283652455104261584121711661925469705489109739656739427053027372597996686590164773691036013385130190216413484943928601683736566303689267414973559680370112574966111729268269888580153023780836091673810487832784050610878930287699060733617354034909552589090500019119926717654922936313308292933044210623682607670589544373355502573664333039151861583896158690684191229509688945453828025692179733403060613290227794310624634105913445141096524029363131003546688176756042248569822053655597680065176862620989646646269509727533842171004096977355033891419307661956167816832704785684158048552443171686597922689772197209620588640337137856447770605168015854303474440109523064503268241001989359347987714249460862248293301675566639525394090595891339093542418784380907380771440813966384103794381902722232108016691681037382021647520124177541165410508048732668565150764311038811450322906642939745457285721060524899743126045289344684637108305942836304852065910074345310559467970449597520047850036811400435245141018005322563480345229350903998300655792135250509093049860579386061962485507086070644542571888953795117350838058640315094759858065715304762785730031488877313206884444335598205057172794987558666835062993431988266957583654444049389394817050531816398152375686896160603298888248937314743462761190274240851211502885193886828498565015603929703041732131316219092348941722724344494331861196923280396953593765863990177434223628879729694081849048038023766547600416346743314532358237186537983021533825047354943921325855920476073330075945906126042478145501769092856036978868802424881282193550681565314717378343613333903549249921700599753922998811751468404962363657409032236595078380763614818368759488649112553883576749638294910039877155785610806889719741886712176471786136123841208843898025150436734853622098505649185052594513542222138605537961723521505198092579777596117155235016506581389497675711228498152416339090876543986717332944444645870846242915578979580111754095247264536598431219008298530012349013960551141728602355772972289389065027549348995913116654876293778011900125900943943897026579327854360463007963093548329653728530029700457117930914722647434275390264232500818897492412222263064544370186371963182777073736150217252299218376012813622745488269054993995183727237076929821409144074330742664023218456956177796727869380714979997557533180743482932981288610576783628102786627939387520403281544541242161027059306575757410252140002143034669330950478715642655581530178543764481553276520877171138818724656226665098667290997212467787985542574582433013584348536692470553506377066691777690887161108443466715015994941847427739481673997427110382088003480536147912611106583678565977777497767061409804600332200242579286841702945541963442127144328065843110048992463255470476129169911907012579875796766688456047407713871831470605205592602488639174748790253550549006266787456146194190207656034438555511428252065971587207333604416236952322136804260495790978796330249909611399203810768898262352327195883377340682870374656516310598110584289324659977365795994620762453050066264035841976750471235979359711373288828041641465054934361480310605065445727349784938113642262488464706269630099853313950884416858557604557706741660140745222621444805380247158771259862661477489470299171746785944402518970601702459448982267503645140707537089885457548934747542444830077119522076041713049820396156753471846910022915324269537551423759010664284388850553288539790859869816077855472621502394117930001537021237628857444954158294599713075191678092675514843415359794591701568197845746128708303237426715341915240276959281468176071016795313245752458262215687408327480047870678099063202793148376101286106134039284729140974989141886715171711290147069627453788050319690593607785926232424855838780176546492245887180509637918340095192001268050715888797982782948331018732004359178188398911473249908291392508555774182898057277172353621544765079141367400159647215498746963660313100779524005643152820837381957610726208950375054318890747165450497424582194034687344583880237445056443094626195103116542664808911168604292805307983133717345747900407023256718180422590963413439319005409757034965882117241276864209394283461531471490270565809400818654031607271014253605923073978145350992421299780395426669880396784344753888568086038989756106614195704499730274110801706875285615370653042311384069484550987150937809339790244397966496073962565705179588057648386391301059169763507404273403761792129585881116693855226917012478427434627753308355013973192881719593029015717468669454599592859372993997784601056305060514447325037978028623204884390256882332933765051181461502350594218750750693229058107206258536460085332973403106700979612825835413519049793035971714463963932322320825224081707045526471463011545589891874546082135695698255675012089642450601145410564873620215324694274395168966790846345008469840591455533192193775949743557866717811617154252620438304320373354730605895713877009457576325479920868985151798907455872619028709188622595436052618944758920830511355825255560664841740633649074690830657913374833925408524952468520932400349975598528526415849836281515392040467963682601834439835271402997063767000451823382694035007551902502382958008929054888444544376782037061136796128165685447328792442947001088720517998922110885152029535673656804061009593221406480865683741779861878864691485556056583737379688513689743057269755605400557007289917525408062030134384888680113490223590974857311855122636043203115414019760307775058886795471368665642017084360610266727314988859543974494807547845581001827319316324884128044887222969567985501546485578048673653522790283699791808486723064962221004527085768335035212069684801817137616329975617384251603404725371000563516403421624920271796682492645893096018264502692310226657054164147534720341554913770421505764452807809035248393621093031022880962384868779231452408416372711809530588900406884376678143149891429989362127854526014314043904849938801556336059513116731891132765777881364690708470368634111963230638865074808521256828422578525240308699370325569209396081858741418123048415320404920234989002732447593020323794790776444752398445514673044032109689852449619671434339648958931905523384981885274684492483631463425000642163062868685884827453318669926734730642735036364002856022218966350114291826343199741632533723687985534511112530552623910408263997093450814667252138110591304721005242818988626533169469331951675296209306752291590715999898461792880592620008486381388112809440564880210604886585519184670236542176178350518172132076461971556837616884285589097240713051877681976484099292998401923246466176383426970781145355172271502371584920351793681752239485781203419474810278994041277975605549369125252265753963659243315473069558127683575041708386884373202832949498590353218373799746645525684496868329428637240860820735530503179110181027376893333034254979866506700293734874848404736249225509252752369988785194662680407164816007840446385105548626538566047190725678665589092724500481084631644980700680767653233980290659903876215264648668608201526375731604411077694464416351102455901634900546868161939205863963394459812053041519234752524279848438652108763493533656230326638952328463211989435750965937212758740338942181523029019880332325195876676898498826420201696478471117515943973622455326876024449646075887690130148796387681526172143548860279799958338050702844957594966531506111719459115378741859950524657667335939187707815250025568467589940540039467075461897377570529806265883536056117101084341555181572432009418533450627069176380862870737823869586980576000574952119145174166472576508467180132650842342282810225219671136155818583388874155699212397969227198851473785252259790859337335492072757226462894709608811650336047020521948150802218078578257877371312399597873489896175356053976443406662268392781657943821399420018616851951608898322357602390948482987486350387382129239733163007424183018154882328988851207520318010179819267505651006822559535721935588322143433395680932039261653357060832148294575104880617338996800087702960391312905052392678540796414323839996727880949249976740084347888882701486754276371903468064334923327284940280968730187790016109947281816875929190315802640009826996796792239302268460606358008874949706089515431131414689931535887879534396664672296967214686186760587912155352923685310898610682123809989715223597580205699802796897621491078793589146130436327086402469848919550707229038026028564396341983950140714104271409752031733080567689406190027910169397445815390415012810492144257153344513923970774457155484356743096123820311100308468386181548862756933981860140472293503985740383812458860459642522552178621966502343458263112227114911594887252290798186528685461129505148809445306134717419528382761338024290472721538932399957334905618233807380826409398709125365584160310747030287230860786353811166528634358202363351490395163579766643232867690005469422460796739062216348243534097445250757651193764126784163211878579002327727276133861311036394075025980806104362503063004768353030877117941612149756649982738407128504951326941321925504891370330891078104820321355212882361341552889531864156642756192462548779096100674196670613058231588468615222934360528255602729057105999474675437354805437501832700766256947458689243340867321110169621581454439873880155053736828792379746493695022026478784090581534807213221062898783650925700926598645765640820645711057737631222187443640349776134214967241597592159866042633216580277850783240749054258767936103687611061192148551099863496722739232696549971817774067043376843463095992457253826590756852217267623570577360988558882072040693095440983638744921924996783900866332964829421839414731579042688842208537657554036944222708958890746905780383470351812966727134848282619726564031478803439079912959842143577925387106868527094500451085548244439046686078581478292887139641428299179722689164777226268250690713089164148402796406022744556361358434373945343144919160726173722073572455536703375135540596974313766165712219486529760987185908259488394473933983963845683769166350589259133681663906726263543140480105864627332575381065914066107150023732805390213522850519385326811467171274371735232813863574019871196309393588828853093044910771110310912758875523651982153240387301872101441701552699216328258891919108832544726833168778810971390642168049327270574475886948981712912328773500592299515293941884741915132708567848712219886280634876612090307202252025023468774079274823643199996198319917646476632396243135044305816728156054273451411488567093755509243406663140894296354857217861845250374113958691847281378204134269893308634313546531055613547539241811190154639258318743270788928066896578483475196454935162597812326889199137839596800318544532979918927868637821309490248336418567058453759611735807453076138229356568837707511806399476692773943697684690374640488142082874228671589316058425012263864070594522512927204858365296937645876706902542295905167813046727597604276558708690052766095363312301353777185403227078797709952561294219169139058755239309132357192195179558469157115614067088057541321721120496209853903361696657822129981328757349397998460688884010643520647581843712233639977455788281357014778631831505902682565130779411501232867544480958863552173091883915356523334844935039874169070942638773999927685262732087656711996014192162606949930541523141652196419210675987418175388500562134872521679340306237786180163572916693901441447789695336186143279687825380373825783540721751258724142333521233891775869047035627995464671243976809647341872394235887939639042453295531015914729713357607208280043265929991289960330281029380873067085196224381883371750970930464531132252653338837811765824965200027848937830426507101921425031829182856463411482225012701214749588631227768689071536886562033408551008677466881544308369901788055642605765769841494262950810143314292598576258778100576025447321719187396316868889897546441313391106944123469739328636729903801723242342788938679559860103659609060993449901038659704143789137291197760094829227700902981156732003487268239289759509893213193578421311686368912081623508965185816514120245469763606306915344907384121324521451106595729559332321593531872657277749370844510813604495267320508718167679838699971786579208068976722548399370247345429547611097998755187211469465297356005192955432603895265125110427092932817253662876572453538621573386657565686813397414100893323150081620826602264903679195051729379980980850134927866984664643693278514363474818149021868232398451584228796113568464439065564506639012736711997658407024532787744310716587875149254568547315150607501023637839588048316016957459770287273062667350278294187298571826933502574504419132913516463023633241477225845020773727267256721104443862847439269706125934102313992083304441814511242550058208010377638816955365355789092723350931527733050003651840288028047095120024154930237816792871464165525505056788519208714577845270090081364303747931087954570007122702245399915975223477457944854494344200146460326626507074970974891432953701549449118164185620406087323246714398499456171496812363255435360097153770543192529076909786969315832673056115079173059062230350257979218362439794031284345734338946288299257807645635306392411784524984546658121173473613495901720678755085051968575210355321033319589449944011186711113448853078288581109957743488171248789993107427608225227474511860322857617629603189891640732591821970821602806572408765142750643970154108839817842168681037281367843011879079445729881270105084984952725752743756187846989791531500886559999121165155992029974053987165481495089565964959541543970611190343820600996133510408987437441165958367464999750671472948314558855853276835742430382893867323067335274891777324582114226424322509140300291529231552068867278481170360183705856845351477920743658789351713049194016691960850692001216068051808272636669489137307708316962627164099385161901971306587053649414849322222440125487175126923460990371968072954456556401888368356366397016236046423323702275026868600181359576207194266828313665026931830182363854470521099888982873746954368715313545757077660742138806428211306419018328319582230770452007021271873787200645886456669934523069291868893450531036150000156311471712482389582819707363444086469195842814139083733096784796789569625839525667848099105379445440879472116534228084394300910988821278203373006635210664591564589923623921447067254614689926205758526492923022386489660397077604722925020396893109649660901627014169273013994843109691283696832108520741490905338609508359728840098602975340762616201468143902467234629763751666991626999403370684921964856454889416383269378944361003339776698972188046781868881552736784637535147622816670803391727804501795643331273752903406052256373209454450891409941918991527872246593251475806415844600646956640619173610759016451859786626937653105850452158223041194429526333122285622849841055465138096441908531661855519078357766753103754363025006749154977975406030248982584674944248023671346049776308140715920094397652112658635300258226930999835875556557368177692638240738865851173220411982103896547159260406683376531497871853985053453553406525082079326063046113882869973489070591504882794230945626707540742641759721545001016531480213587442699202165594093676433820425091952863749602465495511725617390469867171286560656074327558088046969285549314099545400974419744780243281896841140746510677528330829870833230783094835388255667090070614866488312518901794445637623290064648367009153507761516991810219104708079152477620531592703380952001592374569402942197312766029666363075527899855253103658634628666822127120321822594517067808271864353137738878889747111071104543829637732224073655534886029712406795030108853730407956549528998364100122515318269025895017292241108921425895669393012298134797257569282168664338974151216677469145405789110392113569031394813233743718748010662098509289031848651786769200631823886451716446374184197792351915952440373810050573002134906692974139720478429958981577749717200444308321309032718255572887776684659149389991153898896906998973770826420652976828139200056812029987062685687187990806848883897773255265514411830337214484725799537837936373421217219879209216518912235998585082398217518224466440296212473119400912885942877810209028668327976872294614189933746264380181224425585885070770197496506522958992384712630996742175018852529745902441101072468917126198213132872021430490066198587260069037362306313855453900979712989434010816897296201655960020958311743064202524832501122068817725102850749225480348081449633667728647064753264517001020706805960977392075818630935611147712231588932310404046051757032949753886633566185704051835414910941098523592330093936323708056016694722082096009265881168122685921921424678393276993079164153087871846241537573760979329204283686341950666243774606030395441594870783538487846004569839039472576792357416701246911564854986026263237619355540233319822233967842179075606487320143046952587460134528510796373970742224447154205088810005120831317759459179025393852948544262495193417181455955480055658229834098783910304472393139290225762674743509367265503056973010274038986046154535859719546901156660161873585631921851917119317432448523870264415775375283474057356451810375661184015968838097157878335878535447310477450982016714530852462916166780188621603593024335384216504401813895252638667600259220048376911546457193133533916210640283621863607285509492595366432053686468830748540939255761693961642240350746735952963876313022724939599192117376827662918490819770542272202780229172057853482052516440537041682324795184707751883504388528402910122635856157565694403727940755652088262884598230519305485737341258716557719329975927023552438936834053242880385317538541814526760977307021825745075445038179736226947783467394780670604892927308345569029424211454270882696997070112206122243678655602912980722609107030168973073339246515072803460366947507689699780918009314561211568454180699543460275819733154874222344206225173884505316794832427902382468290268748838165026661210855317803403480469208162721928873335390463138481925238211972039170400619039937116253698637629268275772716513630388086154289201570909457215249842286119979621719817159265592804152920159493411940468616135312709084665200861333589358003323456495016479718677709146690592179877037325273096428800258081410897716523526159888025802225672727732846627462175274290482343410916889092388852471691547223268051466618408028436623614108995687624231171374836064284698670606526062851163728938046376991823459341579924300733972866497366773883454093212215450947311674967576901782862252611209692174486930589247264248189907902579657749196109653210321257005026047160912428288239724627245204365870797862190845220363008986786564014415972689198585283409503472489441181489302577352368791221390124419105261680434837353067000276466645380529344436195730295269241637430103898717972247678926348038588648938587996357867328922498885447026898179739021617835845761321953138614681610196987500821961590575166850716298220534873265325947228972852773961964932912371836019280149438079266773625803158054258635276412041266726030612305878430502654463299412024528006361191235907546940520439020922937827276324925467497192873971986091152046189466171229374692950452498781173449152207515585691667952511233776389654756278980925300239260882491549717677948000761432814341577269268949536488244159013901176381532925260214990240630489959191952255321889582249323937650608937361961113902910484189537289689163700774215348460082799256079731191162778727966863886335787069891698736077042861206950094614671216295390247905347775888414150747020379801662674164488047392276097647208793307788980703621280692376670630587473437293451171445702115544393040856106678781001732073544258640757261298794528781956134013449846817736079374200844120147850046965281446254471602713569460569573099199792836316318709974051681625442947394612499432459317459349094871867511924821748669314428699492317610031977294734031913763190517221113441630325360426689870433930532106239629929140821125588072964626273690206806099352992288045262790781718551613170961613478464239007735737202665020602086059344177157104934775773821478654359000865959641720267129323302212252711224813440715413492915222651040038939473019890131514142314037297165564893288575690901860894726258847218838009613082038085564632576583090363787443870209982101100217852266369027429744740092708877879027224094353142085327186171771631518421021450814565635768099210875536852808919179791086972590906234099160434894763713534104891600223285639787261392502489052797687198222472591865564099052257098357165921128314000857466835652395332761239367997822322889376318847826011528041688868511971900961497492347721169650967292167862666034449896536008169335506932011510049020247930974558882043944311553389493097238020943607771462783891505554007349573161827629098203138249615405623251063180542062230482741678218250090241278715712318625707133376323581073938315314497320593656592299925476595983854065924774947043634799390953738902643937006656745562820520104646948854981435588149462519182952912963921011366689015817204322826946413722435033010428475127410036551118341014203558521781997684465652563451561917728307811464123193701892352880975808956642474113230651609079052773056933991274277811814256470987474411850529443566173700620839822450641453218571955791625752232094467338182251096765087262307082572631388945479069129900238814823916552880354330329062958423757224929893796164108504205734751329137055710107041543976773637544893081493237112954213323418724897200342386424147678814371680490351934923034562592756760572831026264277375823839827761541489892095998691268787501765935267691073983171306280135649650452981274936069289945416911698249066871868740631072571242620560216643989502896396710035686181887642071364299760389303637961616635904733745253000554987717669243114380810624774945743960520359965566055183929362127625792192015267813155877694845519923845829138584325140164658484024278292989938133539691306032610460920639471026132042715132027320838589540991223044975578257994259495573595705471543576274658905811427066037571750306871590276688946335714131975386066338378704642374145788437137224352485924897936034075958076805318298388827063673508172883539683217725072267727094520977341389751272417874056589330694041346344059981753176880492019671569994627971207696425404099771916670841209304713982828844815338754576135972506577162930712239149222164854938790266948459125884924813050813305609679979598991814343245424428995432670695690256268849691676561925722659213625770813804826396274118592187640383254582865658057403464761404819993797226840966487671666124906206818646811460288267158218607316806196240279961043614548073195704577087410127505366776714109456339362169629334606195161111960435168351027360106700299134784618701715241682329345985290525965664712830584373886121551071552643073370069256304129134991622664217778471692948316779633271921633360729896963426446639734435286354527058511517821913170367971217725991593702193567322441540653764245010932090465748195731388842667586380653474508292987983655332250528670157563657026324526849083830859536190012361788278872532826697284666912177555389954720586200005388534705843831342415020568580300373927186068272066611023706510996602271831753877083761084078528704933331681051075061871845607785922999318009459096969019073834245441872723801496581218285440279202565336914694904453889148101512710205130581863508592024299331911048528410805219660405951084385448427710490270249659198285743870918230366963368004175618222781368388660718132190571022517315915258200676249128201803838182463160297489869672839130700364432622958048879578412239965201455639962044545307635121486833035464545975014257451667808586239284527554320091295378071295843331627778418326807375030214597437559845762177705685646946389775530373038451294765454571962333443760951296604589685486169889262416052926229383611283971693206002753425163356421748573827025534849581572636804863743072762469406582785661889606013738906932985450114702999858676418944150475235059604755227091303280374089004143326500356516717395925295656327228977946504661801081421137574056344052802312540080649834025875030243665833306544517783446379985949980969742527353394583589667464245486941934961394990090729157873407366330926080122563274573603925143784958996455815159853487769768385877569447999524140873257468790604889630923390284872551333916821432282464287699300753152154579261024622490363287095301667008580338169750805949481952769425271244642445955792073769569441351153361038165951982486228787904424191560115987350699690603766190045133591209869646249863893404664005860937617607333953611023083272553521355664941771700909775408842928148700965128547914839732180932450426742165106712030700809131379280029145530498995730726512817901160684630796436037888693551174628393561068601480327939392232821999796411488219014404647103026113103392329040571592344573770088347269565913407764387173943267734271556888174257831851946603262499286869135988982651150986776200872009534991483749229857234574935332549784842237543897650268498803278265513123550199987451550821600240551740660523438226496172899285465831887318173752133218886102722922630816828329145685404516031385074249824274473203979634814129428931775739366813945579436922138382619616400536003990332496181200102028054990887142380902992987817614945914820530877210970967702167262375444184556591325680103223412011700582517250158458671061197534492259382395600584690268279543189912092331852325927006700330598576365842710983098759329158220151259049663820414557777056560805997110315079312917319815663342585789465682551366761609460229192692059578185819015827762846605000335071549412516255318012332793413060868174433168146573919311425078282814798067246909937049478283720027047459315530441660869539046934211693444979515651419041021915397973708596180903325427422839030085222290166301897738359087016596487769125224926481009768085766151627809294574479797360797948880694108218514915456221049644698541138698042094080272137660574018176693396762851974585155430568955485429649571923203458327453676100971511269068939734472209320987718946267074821307954609883366685383436624364722048987684029225472563385231293264556340086164422584049675409875217226504409653793319923580001494496786117614293695464772533030387978070614863474348336298680806618458976649460560566042298379719421243399395274156391192550080357440024559626196953235042101149611275935833012663502516332771156468677209263831057756097701200595764023461220472176685487305377717240438480606049019241283668882864230914147073380224723502656994469387880837933204279750370176128241209046793469132787630257789103795161788520709240143134229001267167230293349029523678687122885887809442359550470938403648766351650790316572380529205579671242936641274637674307112056741430154050842396189254060982505898764141773649328492096063618441941565215666371198654855526666390761283761160359945411929663725626020947402577170623141284545914524336589919677683775553874778633343832200628960845575955015250024798936822960932806567475506655214052340296256092234606845999412954571766326862990207934058469935374156591033585750912826863629806202146828814485074357219554250514164048024507132888162364312593828959924716508844557821840933516018604774844662752446818455072978158117145858406244887268142006476816580489467548051229438078225141284058155764748504449026520476499705918747834500773560221492070672867977722659709524495232686669665076079795437957046149442102828746937306975587709391378129958238924462434081668140348108186209629423127544608135029942365264564757254153596194069866788782614046286640880530703134577420480646074408929673735079056042814577164853215258938881079739232908145135974947613602928558023217985886017781156941670984114543152153461481967493852907222132444730531218728128654575580327063793614200509059242001820812733087499108739914753060470284910353329992116222468131871260058809420148102853922401477973747843223947348961113750292374979431029838514809125360929980679534205339532152209561717311896184031269507000374886796091710710770257067532280171739055926276986974799389590039184885749571781832289651007207496662827366183827935794845483645186126050895189696234446355731194652286202726563349743775221300020562578944638932430922438563122502294442225371140971749471033921222263460008655209013943284693945144594230458648585642891276531460245623952252803750172151479242313570390508220157599880561202430355624418156045088186119094213157524769440649280549543408723993192139382540158762238000828288985240008526639727061468708405028623772749211671599755912257958479460322958216597683423516225985074005630890548856135005227133524276262932111583144687719047559554111450974765718174597404490932056271202498103783202258131786801872255021023182816235780933564147927985019332907201148630342132660575741380090712665817620652095164646084140938780312936364927179468094077849665798385489391690019509222726986681596999516454866573322446731341228314886281133761442782594168124624873309079029388717841432866053598832739554626113883279248600147937968177109493474016841068023709472092963999039367810893056984788685049785408895469625764906058772232778087350268147454779913863869696037556364570730662139589891540293360225821974779525436282230665199928698962800273042577900497151793318368145480754859898821586965713474326385414845607698123349804183433435788063406757780527194476252226830968369322823197232397151808247445454567067159584902493406624136327902946628374210043298013674313579507196608498768810116655651634953514011361547173145312491316810060607551159266974838744850081753017271770079988086931584091334474280968205431962965295303161448957916744454215535914777179070654309792419036263856005780906224683081258913441886966228815186557139007248868771232219119947263077558994127650793039386808639073301227469394151061736140097065934161497257830372903752550988893907245859353348417633598239881134520964940622616209436771668531100847310150817723542958034689858733905863248522054626416961232393031310199218846502001204092450679510912089818272232070783723454165482192196017628386027832126664547233169428643526935575853761676459973835019406404827471256257431711165763719243643401801922893389534796770838504024763665110302533361401634197108238699995823447626543448942505988908246813919509900416365410865314837821097383732945410410317077728265888837177501875796573445787577416168340978458874364684949088582234866936218236923226681829904359055170147060939004275344158177588249247024091533430906418131413404407667802120139360105010938909887143410659649419099058531185497986776790590112295289131348159830666296633279038560615255462169720273528504162405495244468419261721731634369196471646430717941260090668230703503028160083987262283329957661081503732633844728379494857982392985192660145749699761216948835381216470420766336121863944008694214366940342983279405821784954409154388671458195198478445362841055916535183269439872078798384261958263335443366951531123406527005385546827239278977476992143376849756045252226228159670527234954425464612729945233445700011395840942965691124213086881933623052234124375379458126878787143493247101810877932889229550747322421188863051350806441479500583639372071396736968847816594414633952787963189436774786396913543861261058752560953840346797598421542760461013594216729474471433375248025558238148316634340978019464809456903139128297558928223003265172503991879878419331421336101195663686166298843688129390969533572634012102172033724197563742553414551047631345994861374628522691967846790179028423016401567979187257474851465220815877495813124401454147979661826668495872014729972871093235764174079826371305055615928820017767479052650974348932593353107673777424252249605104180319529077921675989419270734857052099621846979024102757248303914473527556574887511000187749498073098360934870907459261704315756969736160453887360066882907739699762440149198928710323970038424806038405625274373486611403332345100430868900451074855147750210175354484372511729844989094046409768716812815536072984183543271113289577745256240825675120606176107049835605845456612797350578754454864444035047512954622463722612199262309964018149126420508333471869609435012585646752369249820485406295702733754260728338632148994248854867687337611323536220154316686468272081722447699952770634725174679287536419226579002764285430156048913753843698335900744134279079125338380398521311749739227708768517499059525981986801896850849420962385772598415242271210277585271016091495271558849650922321315387808053419896910608874241981115046248508469521759306420045381946540562802265543322530416901177008515025142471390516667473641342337370765315872027645489597229135691537947629679564549788364510640364562509960104684381845681057596480117137283567002154277469193995224627294673153026185582235495200459191635122149038080574880921883013252593304273336968225661914572008290145601080843541900302653602346685371071111934555753263316638095334844263832711691619305742388572498022730041135912177675848863074724463345190587700542824072973343401799199504924463337111472702173773817415164182830606468306508343050241875487075833162558217995871397535550673038838839787592457239336561973106528918144780300751750038489525333172065425761143091633036703346553160166331542591865114850787835880330228168834254798725286244879067031875240214822747127130282956004553401125984572429520640409877747716274911983056811268573177325467419059045619427381835898382146889251890127010455323269211446386006704805052611847559633415370347391008024061705117690403803018611985795585689930566602406229348409271878997288377447915254698827466783538484440288872371077456296539416322574450368103406699732813557014912507471359778232120542029901486101625732677206943838839861242693797666111556574736478079047760156075900403763245020419755406839466657189922985465665285912697415742094477224173849072770420696526156876809628002245068414077637275269519645867975192440788759148674242757730816843289950937449038078323740074362278583417179674861936094130307835841263620217123428222833122602189061528173467193387500722629283739597479501609957101489906176685989299523519521190369486724836071351544561377929180912310501844760817667663435220735232266424575985958851773692648854899281014316304287736328220414801883191393213532987483381152354710225312678046538626219027574185792526026986698639848261640276957946262530072139433329936323545530292626142119276724006604071714680209460027974060725017076137751104503370396797981917951780416932542392662522232744569918296129485137071087569719145410524651156742178194617349676533961859712124427145213453748058347812312754307646932119301543793348482960083452216500811134328147162660860053068782237619829288303788461081815412100129428512083606427590146466184571278635267620978241201767087793192617849442022897829895464048888246872377567146112840102128949286230240702439790549600333769666144286382141571028445869725833920637987800142208652160640378890688913902317633209067597064099327386608268592540806183827953292100093837792935913556388799039279398464450701164142259497996357284665644210026511623474730614186561638718544634101047026066705533600822626624163665813250539334580688004932475100467217330116231878433797530216933349963621516421450817370711343207399678938711892824451397573530333426353137324589121686695828087439557652735810978774971489509985381415966675227044832041721603065279770607258330613912468462182637247000948736809051724633658211980334227955342781536933187400143169732776239218536878610775507967373702453259800934300720085093649323685031433610644626022079445183789117071190101490052198633357760354139478950633956758678565905054621202393784051451752033148681021296644727830222516185759648009267287032014978139778477257957398122905402232167493510700163979354219011668140113420626388342939623362991611104205105138428847133582026236976987907375978174920242625572120266689054684896246130628423207135618330297058547910262160281876498263960131338073778838602918382036350283318147528075771245294676019832028620285013834556300395816635828683260994852358307590677400531704910545558590956139305583085808916028400057108455228010908520381654141075035538854641563594382730147777230410310823607225283239792066934294557382895418143761570867123033658748920384425185832004462857265093950467779356563658303582235580773699455799041642912578275482278858881020608790797988976026192168489224535612808736400160100955865343939762055432444482717138909380828695305518988713302048143135713142674333376665583779319611542145724782505593746113289289394007389095901708062327639335475384959028354549791921877577637843149225324565835546182435583843158991548495670033694980527605197000833087146461544826204282086666067837343290610012701278811500530697185402690610978897031131909865358373331527246270373838235348092309750865172004912153099621591874026473996154314891807373526200754629226084588235852089657035071247619342143480966008141275703262112421667535844661603903220247895006329292418763568380315599338873409777754712328475996630486908319611728131221376278007837305239449621221640966481266794190625493218767790980352735126677223944968865931964058668112482621579546341849813112898677514415765306821664880997020256333190674985156352039112200096456257554012405421457669082069001904496974081529384662528112064692650017848800621468422233072326139117875720292708492724919136295225494491659760697129234526722702161169708591562512202775076343547062576149127698897077983277685144535136410319434602712759723008165702393114259671762598726638398056578905525829440265038096168572365398854144231664280089704995518558381203320172022378594364456897441376981082361882439646518436459961819173950095805927253431750692023151613701437074261641931786141620306496463779774749666173911744288521635575722102995938414910143156192420942409099971908725850656251698971310184536562835794324932991529725657094596002745973020309187127625940838010074113074275475529709687467747184043029452912766570718681707778577377546760944098593973802769082414962457084964187546776148327080808721363219909006562409373892063792359977965558487620254472531490270118477894051051300211717881781300981803018563125005709870448348667963483274615737785893366502564078276444425752485537493832671220718636668227879737688539744019977512516673958769703254809025014342420867219422045326676688354247656710353508828891908852766430875736784465255426927941260820221189802144775288023653633302047115463405778490817305368414817354606359819415585894886369576643619033950867479375915647567317926216296001819107429120885477869768464347053008351933037846547724701834342568196341341425256780967807136752164476283906132611443077808901244390142891669654674366365203591700543418536494122377262083270958533904629498792338725812763035543413112460390777108491221341790219384851635387523430371848281008177648545168140390520072597266641132407677105567399934901347415433014703698047382304020023788302769317481530106123956108885570915806478736814120808329479603944112911879099446630809921885158010919679378193129284273844828275994436016130499601288423282177035650790288036169285013865060443303245555867180877795877432388024637238621259373341558130116442279147974575216315409560954205506687646832207071107804004021161126066193498141777587354028985171558846849916401287661484969820898045676003938001454591026568194878894659704955688057870056672195222361876130780451226184050488618739643733848644423465434874652285568711592670877302268202773129563911592592083498582638746357703924002614857676107835790396709070432145055977840299373943946363408838978252828419751897163205826189160679391968313989038458518818244431697181708953972350359149209248136325608267709707968278881421970286873205292886104265363080860510709058911617243924344757182612434854037149765174488503196543068562912060574117345988258136589672945461908518138957515079093603604826725231452440913838973513311885441025044962634592168625852112271166071227283590344755609509968578018791172845527811693621393679401495193295237146242174775275756749033630040067539298469565432523023590329718928148348013926027042889505268639610751249401329758171924814654223144912120426926197535481782944976335924167058664151255029823918414079539340672071511940619114076750286017070108489281201062206172429995605710439333483025277579497067333316872885605707064355810310925437002193338008539508456169042587496602444705160518600123600650535664106503924336279165447740778622699722319212062478042878553973050368008873590872596817191156121845687528038434587560672341883795169482573025253519784008115925968925572331205146599029428238022257373097157792623607968630842886436166240160422179223111435659429236982975807164657767834101687728209374728160400731511107316973645710055027295124856785177572997495504513923131663393168859729625985159225499373331023092668806692972060008184115878650988417235820828480365072803144968724709304696502787694662180540948616025455162183330509531103435279486367292807129961864870616464082945109590256586562488798282328214949050199803645168104404126842734752578321629617889678493931388096554769917666663198356900235898017663200889503298329662066014540336837237133509095805368212299852151502226352213721328946758539637923298944892923258945956991907784287650652066812065528049511515660692007180369643627210480058565950493833583903867380477278433573969602241544090700527936549979526565308413912188920397487909589786399929031561966209241857837368375520481466094913280975979443768469488539034660969962610865580578917844784680572175052338008410355065159241676403678336003893371104802678453855729169523333211970370128991238512178997864358595224539865101378508324804315755592970318035219107289399664336706760749745189197371747060782028306609035345711211427756124549378051668497987159662665970282473288186730668006177708796796101393135266639614825251798247223075826374667510999570152469297273645733206720065256627499051614968011017037444218333283355490879207234950994098763107700227917565046490558560465493927669155898915730307545345684735273797969922552306011624856147179498808015505823457869622280909988396194748319209925133744815795448238228627519915570601186512638673229533809759984352463582876254158337728298236987439527991159828834567433786001634919567405202327631377982411646601272099258203249354098108080199163903401227669817396035139512048632702735474604281777034733359591826899531666652166735614682761785358675874929410956862153166747499904204089786400249023858499451202859351070536174334688462612356132905719028719244053048998941614579200602076605117622543528815856308992274828585363468798383014316775402837588878778302070034027867520353085034183963489491656271760501591170401030850668844525175194098217168814035131024631938277035998884472836665379524819176418252134600667518311881351680373882077946670891988790049999860382184129978130317306476086425137382985369743693272246420995592642787361352858042517722346399882738273340433229358332867031993310347506214627553816140495335375125807469868913535828134074747355495950182786001583987749727422575012895160398779298363720857162165514155992466350328239720497531358650066345390373333623456320998004282790264708685279100498791988211287531887770874062523005592580276505000205791631457184485454123938055665367481241294260373035602374864669172152290631357361137924755718041978641420506627700710726258370336117565730558254264743764280234646229198049705325510387375764495627732530016097093037522594152242603717030046415683334666692782410663583692939427259979508784361093684859565470057384777361863621518322280382263025037817609078054133487052699752972100416403970201293542804476092439142130426649455907939000358220384439840741954571114033383699222911028062867629013264307350816973536179759927411954067001306796239346131245124139447646974601910308388833149029396610287736013287079925092993764618359624261444154520414887708976715740395416171424159989450719081274744576717570318025438019859724130837371002012747065306614425983026951196456740274360389789349936727611675754287805821467772398648755190849254089215303285019776846468412042650915698483252647210355959627167335695060241434003103852480669911318965489780116660959684624309697637135696173040558957342716415980011712410035531566169235880188320029466215913693301698271751123149986552117924630877651212329138799751635153814643120282680100016023934891209024031199416283865652751600164213287573244879163615240520019407329746042448562916070292736934462688643967808898175099773855868754883427367072353464333785322372063047879472608586389337375577578426849079311027187881265676899909480538026990825285042820246265136399081223121720445191365046835064219144958443533300667068832760936867048641726220820438365068396408700443585395920164090742417105309146288915148248579788001443699001717664891111945624715382646388540977141406764334620505374879102060655942556056169140701661349031690582261268195920972247788511711715192840992494188543379737171647363507209057237801672523887250956696447321603832930418726193294819800800245575298482989066486421026984874880491165820420845343723850547028656481111020041417416397017013279488218394962309364548194501267077906768581362539099601800687058596740977959702124823112662741091061707551034778507847808902949027244365342952256050299669427044844760257281582339325491349582861741583638601529206536135920155618502012535251239552050850137872660386564941589791466153729252542497015986404427043714601351807235796996222908251788524289695658140148101725550048494634022466721794064262778294547577622484225898310961236280658205400888387945824015729023691304527998887070126509728095696178516453695571222140237962644169122860812610308063708614975849868786542449190588707759695890935909588879079279354723175478210637630707324769829036607350157529921306892463971588098592281384009534913903950956966316775105583424423464985871194423868630703989189996382627819773133274970439664639560628220905977944544230512060253688571392381747758608049337615904439803533735034207705894727747725629310067029972579525434406529245583000062272573376075721762550028421922187340432403006398044850962534447943388743653999390379308391221671505383959789106824366351907686253611519964614848569819085920096710149332424398308030603621444968147928768863300434127086794296478038918174022682049671105050374965217626341696926617093027764310483511106369731804659418721232623378007111142317425262821413680516290877553597040448555981578720027681451647670057580749984746495418163627562414782539061909218236118109712771414519471555634037699823246482162158275529981733500587270179334056987567626251323908176501602259564514497464345689390462422720523076403258391597970456033576367322922086022447852917108513105741725679754290446304364196094628186236348232600072813106374681967033051272086155415882158705683422573236776812160406362511231591788678149861254720111689569978287656842084521658460835881456917301157776830016924109245566337434690490337689554318217295202036445150025363479273526283801309841854205753180780716368644716779183675183013530750685118570915175325047971452012325425604775945922147184296861039869040900567691351210326389281617026012455253422915935095132033771651409009047352219261704768681820451009730355421074668834310810661799729052675765429843298338038578679491182602375190362398472633951428322653645393501340136438230321752712407849615927397558927521341670913410168146595544646024681273727785111343179413935974400252766786919279395434180736503400342852183693942384460322716175250039739842932096385530513449849617374077695514391206620239550323585034508448247538918374789485470297602420550488779635922190366013032432942052419094960873718145355763467104957289056059512333371370437528659457617730862232092243461632712322992061728898152455672798331355824279654518883426047607227569252439573026479250642963840232116006015909239281528009922479662844971513596502890617538210202952447987138188327772171912744851748630623346363965074409687846788197501186536232213207701994276133031090837833581287962033104060684529868975355229923813889553410095174148996032473465403315037372771869713101197434334977650954220245304543965688294146704148665038798041992656898245955825475169681270763377063562155139927362705543299263482506999667727884576723453354458207723204215146943143898996219641355628603922779050827241204694986943694136041838909505514396922493304159978108519432165096523168460382616277131851512290904663225551403049735941133633816354728901550372034228798660310046053121076194834616152950587423646222808829979815492459018751326410843693864049924700935713149906851353649581656103814097352347528813116224393961406598831740552621106376830595769076594857514719640882314494109156554497887691852688892884246360858362568655377536023706929863161543342593748925000394536958034958407837212133775123965665194167197499997128716266458170020750604955471072822593684049920585279781253164735872946043363789436361663674103531131569076514412157425463004485881378628060913638424790575682996199059562032304153059903906077502021185242340999348675587089008885305434308860044811257599897373944563183811414814875578885549746810900362937458321917746330560438796148029593587363191812091040050123461854639044305919476367456732312108406730436342319889869667842854356011043114624621731243366491387999617601532265190423769539933017567812145287946694001639416750639267928394223500469676079006789505444545187291192278677825368042186069755771108455691635013805872531530125302220500603301897362019816056084882232764310858074667545646184516698570104568177452122237773186454762002393857750019347967217638060896622879107322965396343867904278574224801572353167229271846226592693837409898195897155218794991116744261038924968561879124008201728514330671783179949010213624678276913140469821631526103009884602312984125349577870674234843572307453859605091785222260312545030925045119608449155399076013972103794319352959244568255963859156159091229830555485490209490816308993789660914866229738314097301751836622062984484121147151353527205131246175071982582289980975382394850375268665832070769047577559684593821428205019092225698495600186583274896549094561644472808993108579292294469877563650096652306783672779207698249635948175332108539725426767170923575607889479824933502295317533012093155032473576285626157224835409847955376616677139164189775938897627701842193070930535807090629071618829377393487280076753590302389122361202568163672352238738944089308292276206241521238068103422676918979249283413534134640146848401287720026187811115806779589348872350435049524405945419734511441075610554155554173356905266489142350325195790535643847091822601749687896658406689259132801784669461443452622107965514439372209871244431260681077699577439809598938062283058808628775092907552293861516230542130393101573641316316475179551865824754899025696176158314063878117262940691738068584132428875597462980984849373729143690351291117294085089411489657134637661046904463762196719367526834060930677618204365568497295834438602858116564473937297941768244952013541445388720124973693370527338049316776055521306256631870261757427658263486622896621482734017713929383902701393514189131535301443422661976993109758132101498627822869931169931431171963522694193623055391186708256889600212998278168703026152732740937359682490106233129554742911017479363612729885019758150404546075103991578000998975024164392268876226781975007001399818813891635966225626332594843084302985664344553788810034657407513825474969883245158938341629363893639854952724182887740963234060020667785128320755002425756618912368768270376099394679257367780706389944512489448253794977865383036772458301530787414284065898535986305058786895546955415637533240873760008022818345742894440196546135177130607214295680488296061726747868483977433631488909556209349233185404841161294426242899398977268254713165636889415403091051984885462965530189267831902983154832716089163322111502251772259315013671935681511321864306939824651345045562351378900514540068971024592184835105267658069477263757681178301720930999626522286044085178097566925689361782144991767290615669419265344596381488291317652741799375889854309286799740583042518239214891347245468408977086833497791110164399973420613322961786009294746850256608542055805413037557517224705203178900473351931989659335353324999878916141538549667587628991025319373924561840680191094864240982231485742245470308571695547563639375876756226599507915046196981077555998643310759645475255660947347243759118508883890182893920555805968771477143917348995545664576894289360449820712095697798553500515818602322291687499719207737207397288036935653110818470447038572470947620913028259057267053607576768319670576700669470532783307493169948617642836994209372644874455126368273271075208846635082504361782931740598389636140199273262869072879510235280707877329606854643347483246536819789637537915308884727756375011008697598000913261624196829862566683031600976027527756858457129805248522640165610783588826878810006469807767040351672426883952102485610410979560664985433620879155285215155683214146189530035385509844869455592665280624996207654614396017122374415074113314817438308147726135207499079720105863253137569477123882787459084367057065966186589503220912900408926945185354724036102402565281812643829050822300822916946193095507176559350513866378917237454672648837767901272604992920398163972286423090045776844918805324706952998628343024694129554860461494268214730578147918739886092158233633587992002023814595636077745820884504798764035960748746619785336802024505450123889111297329248664817242453905325988026407625484931703965568484031313517285674380752688319424986526590015028199588957610931057415701572443524079612196551008616523033403187915616803204617517736976502215639798427409874079647063332080670376344713610601232680712416198912966872212305218731486716087188515535112060551886702691154941789776110761456106699234077927538296199472179034861424331503457251046772154648425480899439075978114691540290804019941201702589475013604857094229297198047314450480301240249705489549667266940946241204369412046365931493113355420408273062468600149296763568982564712537983868429503110162224036590767520141140591709398361275242160598080664061365736694207162442807948066452491366717532734557111129477251585363121608800112066603713937529783717338627364084839256975167448346177188446489695760513031902004114704668508862127289410992375265756607135902520869664867185826242135933027462682658783746221995882792308060130314958786765678933263928286268850282838332973857312345456151465202877397945556756369740623773795371085851206879631858535530609391768401391906988955778051190807079129406174217640124104920776606866473342263184714612635494617786741418958222209687976796131135327242947642102231079889403799547608780069199077103308503527319802592933351919015013688570334760992313827457935987333197569292455873163948758879230710847842189630054156549785247273433195791498951081353055189096364371668900276802128957024909918615604077951074608107656398365343134843033984370226178821932507964429115222580782465417006685572039291354764771418035216134057538784109594145014194669080326316634681428021573969847408897942733493629775728476799088816705053986877086549563501551969228843248948473275311480654265535913855749449938896493578552911123037997605100385150048477090595434942962704656597974574269999213776831858630456434399624424660115303406991200592988070493468781112702319114788700789716013676567499948583520041265332756097616137928497437538537891168045428355023999722525468064934977934981186214211210600413410993856702757438739858324990336597630994128116150034154815250901014989775685948764153188463225618063525119341802913768460216443079592794659726048311167600072891794562185463588422214011464332939108467425684779687231187212861482209934629376620675134107771820706698688275287729673656972985175346124433841534126277565042377658833338015772567012149006266164818312653357920077132721106015098676524689873531893804301140514368814839556521342402369013401821673567980628408709499130285272395517019530140898701422062033184580754451636401439398835126861716095395291812686587242806521020010268440019700836824888216598871964414766053478821815813792368686491243267276525784357410239672602583560047039923265401400527372082497486498654214875955158617144841224858561990617074989078452501570402732389628888391231494250626857031920296710146957248060876963653533280974761439012364021339150023911463956223455871552122734238197571317778209540961504126743112058254580237635172486530887939775066477081382448490304112042066718883616257615558386599043482258974793248625249510106851459158024901550347435627788492141707887793376696605248503376082540423075134007888463686263999774155275655666671003861773315760554736462372756371849301744112831691509014866847032294524957576543998355328619020474268991243219734888705981424986056328377780540740350372531729673268523125180058533702794213528193253899341162942616912731621297163946481125390892814309144775052358463609331283057849754869476120667011429290851539524402587564077451640579242085689182870360253597545643785872297004071673437097325180414155553179848856838733031465282035755785181721694641857604489364823657304882681177163314607785053971159097313677904070541058524666459802116413696582576675952140367186998668724689538310846478451595853021704827797036675412451520066600110192113715402965625918271204906990014817979020868490026054899110005668223884662675675003898688822017431657064690681132620010636395710834782461954328014624697691388504786521178447269870602985467865337835306293193300923904858091317389665453007337826040979569562076102409512523487732227823086955972745868328602187429813554647357998889272414232016812486135339728541222588459574431363698538240426202206890627608438694503649317566058215157281621558374750222645180258971689330835208889465446930130647442802486669892026322794411693965003433347656721534625058544180165803698229756292396865716466648672137629231061243885999060039550031056345651502030433342925590741878879729179387168123305189966392983615745297175295917567098374205803883668996714218268801560123287550297514275304303877820833338315489108377265919084145894953834877918544563856925985293314981412530595449167579466379886266241898682141310194360854833800814170169386405252288818225280268723524077924784987331855279326568167566917503940982897540831021316367409238640726927533526593407939126538865305370095927683127271309623113775128555181522943765013049819725054585497699493057935327964591417076336062162124014942554349789842211266019693795427607075335931736818346169775502648864263435503151732914568093437925377847926078502084810308880884963337322207299208819499441115332593311013336135916863031106327643420652237058066718254843718060611323618918713799196174052969950233721806164120950537719723552563933562852455608194843314181302643011255233584011841853523146070144832762713353022038735690616535311409189959006359093994556571003526353217605106624096862035763174294837979628647993901686901188824514764836229675904211700057381192491576467940171924739961193879745588418880048614241814508025431803169770553452028175357130106239476993095861470739676777338320316085534937379309430783885593938827059380920785721492475959101672315241341888506782059949200091012971550015774341840248729693110654266078808782601029702097544641606045142933793830622527691125869017940048336675570226346097243124730018645513571001311640614657174580104526891681230505718950227759273114815496828996955227204649641008768116721290709815172012861960766854989731238320389196488790479708283833912078925137656677423420404572002086999109568608090334369291852792796733992752041573810440872574904553627452211457473211691598479241933064227732990767511760479060203397883730238999904818979511047254325468518214002710700709742600850220622772381219610635855945083503141427788903639134323858330359893399130802647853415182077036426478755061307975560624711057016933323006866277196360997165881066205772183522182626262009764975412895907473343788324426485044945577505765378204158196321758666029400752249126768896373213848251576863566026090380332163443950950587651715221578533869534447615049380068064459871338303758713285123719569697435862020445045742054338220184022440162274405596608246932528842045545056255571079892970659010617605337448654733053095177902076502090937363466184482583334034905876015659229460260490252917883948858715742659565278765907100790717843094643426808313737093654080029651770669180781934449755069512264822058543863372395504131906822146762863359639347929531902129938784604087385926203808148975649043667473287810250187321923315369310027519742087658155405729714684673957189132344385600143950684356630774300023746765109416111577241281167895779342680998014460462965095456238687613769179464079200092104255123920156761473099529625774544395654001693254827458790086033888029579080606206545418953607437012445281631963859736579347355241834362740491613020731048276395475611973709085132486113781905231514795754717801270289585835120719012780966628956705936437444450998876046955067942263122742443391108498664428088380498036004491938953310913687759590917876233185753954851628897186806494002156406152356149949959393865002199397311925147821158577093499404732573702034476038597831391758263315962802677910971190658891251870028839885800601447252814621830095244853221834087108316946841004347842163412311099105582826139721993341016634336839587041812929308827582151328877200617016258740047036051999176088761760395658003675193779560558493463444185167245360861102433530568663567537302690248883378948437992548928708311725919958114083357906693770820859668783631254926807199254829559785443257623206544491947512127409787282885427392407282270689113458168074282912989901564214446087722444810512020989380657982946591194262580182696903230022946436307773382987876515359534246882699960351601171763233673473575097738296870643844047877885922495982495607174312440758975067556955514938994381218211835511354916591410486147100627796456344204198634455333419382021902305183321373899554652464623970175681656560588550177929061999410491518141788132642716097388822350014404881925167227281054281948605459002053262575729797646821440206884907571653510983795948875118191462098349778712205766234080280001163977125674830471143682725619582568803057451714287693125604106031992295250904628427418457558897294439487342054275393271936163958079411104431104818120066387519223950319735501187091789935950417754073861354487466349154933230494116144109159524227787572752303290633403713251725557468197769673477518543273368699044808055286985692821073169000201210797332182312592794887317354951380836285546930480670861518699279187374158304713447337548216371411009328900263492542042994498031261255341534926392731836459700460310687451894451547880544540003511396847963133686067656500830587994098470332510441954777500817638733859035307597465101255625426660375393419368067704465235678808860360014078067980905332839910524890553925315626279099528914028100015703885338630180140085276500467897215974090431793526702930622119178691069850355693789107047309392578050725125722000067376075764024788445760103995542998495987151385650804494837355038151258510816784006962875431262508829539739482442103740839235134387424163680234246750412560770257242527283920730210529058363288911206370473978293616756577904094844422533545010582891301339054697312078976694212317953715069680810585568835109560407009485691377643739895703457915887905328969358678960196350944673963502948955198900032813752247614536150753806247808396046686964884987074681618733292860441752026477985048855135960453384629319015962918654457146004151546110588625245216555513419061074535792931588021074040621923461749756220771427758003888144148645110696479218453031433873724697165853709255417466951674773019230573076861226575971241182214272111971457935114208385799321746150552574801131369051224060978710647328181359982653756298675541558133804464711359543633152533035169811082172562979531113788301724502823248455645259562556272716451105654473924229515516724228277226687581356241848140683971413738629642034373668326456332853579907345874306807506999917308092910854127827241148605784945612011637270661935093557870454965351678214308631464903134487158386192264493875667279031353188786659202374146315660752555107922856484509105931475494848276070742109555667542656768022447483857029553668929087053557087892363498083907818821277532264687513471759767300738607415073108590942390668527784179674545161213590031655855395743546713618681282473004986794297305339936783662603634883763622830326827052728080432910338097462737552369267360429146251552300370271740927046492209758613635516054943422773834932262885863000104931237133510012919381187157300295979681870526630085246089268451128267327915298216152178206645280645826562818832441606621196301170804748776934748356846470269961950921013940886924649377602714565723746827356127398877263890689619865577007044759348102761583910142686987077918770510112926294893710513288141255378461041062481028008993943736845790596414074548599081271288696928872079375291908281578335882405176824335689403068896342579985913817016379428244458045284522212075362852831513581837871852257299312919126717842050823056628425591668376538489348331535612129209864199598100672871570319357862843955019983827973037418822080189272527769449537985493330793955157147946889423207809877849879806615103139360551882373188482180169581027277283130547007498540683600709760438031635977434219680689036112172961578329604950215133103013232380715218408985032300032878449237887800049892392554889664530304221543925687482748515975690270409840775697686590748544463928244273436728858682699570703964845281045659534904134299033646299834237048437060058726129850528455283440095291282827994167687865117685519047196369786364520135261865215810324473834347643734336263811668620898417604817263133134699821577272451794867112233518460613378481830087358291023517413931779120785474745392824636445571520506173298852304783909610885570134297714357736861808175153484982228789754474206993856857825310774561366436904949566117669922668162996461109274012415994271813746900802603130394473330979019241976805221498983586271180620111160497139290490631149418609786546764289831100357440646340981681344291936078939076247838185722554829958501658248416385255204905368850439275527765698329559781309305981083986673852394788544799337816594028906625531579154995994068474884019548030222870229514182686747048620894111719803925356365769640565155570316561580074840072392701955468779195951600163255486946241365156975518906218612037763011145494916337242405888053274746277979670639593067341363718858425146617318771665591954456122792253974348467232959038569044912122264470523725426248449009663347619075149800128767028235273130439991040721578354077585370961610016384549937166406627522300093706639773077307466830076258188064608410248176518860438828811699410678703781016939915061768284060892948045954801967472817971795036601056741687190591434947372708878472862952883557638541068515292931250516368648295330208067033002481841025801294425289356101883045446024255587731446298649364915881125401310476187412134252109642773506691636276220264729035256262956219420721257382213179592424569608579617772212980018364314886114556760790679500158095554100578114176666736930126842314311888179556923224593618966948626425813483146925775523143055295777744608913287386271629665478839139275470604894561169003295105483759536157903424413515408334982004198243637305228988078300581013750068182460825164196833370046156643831808624123699679412905279595365129644615660254412895905647355954546579066348322173981813795448198877550772538564079753165835505550603513791562152641479078705373365726244579638547466972840086730495649719861367632391366967979250457610352259860588428733202760651584961543593423402283137432105107794391023685636216357581482048114907259742013653886825934493671910183767260745345163858491171471220918591936072492969850597238727259682530906969875801767001141249174559746437072304321841809301946277912825848360512873616418129425204774111340489121044885752828353241659405292089258176022987102156938719576903377060707336423403037988407558780548503545044418629712824235960288746093182275296838260655568978885438604946913566547182910662838033131878127809926079182512623641409530700093226578446962000780068558047723609777080351209763021330886893288420192199202813518578443387993485575666034597627015292067783522930436396433018675787380167127571945983136650540269727006868124588451219347952100469183415952807276680123576134315406216101804749988793282169431902020842261401467119750859512247044228862991209046238285411559552037617180284605373895947302697364790754309936375839617624547768727181390089945200926248601605170353807075449153703489708147143616975714161083260612181410655568637453064523098861776874229363634530125093209544986602347736873337661173305510497376155234117275552194278292338092208362374716166156821529083817131936704826555256961325509223956125251033067225129149596289354211029681801306540911981536445286066039512161933237355397946441066011415974017955310985379782408288455910334094456715457094480852855329717135808678035821743931353175254980418994364323810035588308193801866057021442521887903518811704538707260297153169683049687794683645407842817647457676609553515909523041734969188977997548399517878111322994785409818808037766661622406477589764791927757206203495566053922267961208107300676106964026957327085359271491067967321757575076938593464465155479549973573871925186904526341750065745251102395539914931256595314596056517780165448564948390839650946213090231628208784614033972451366381874255745050468140817749348262519606865678630474130800344662692923967932887782815893225943989768520397780549310707151665999728432872795874507540171423767930582719535574653104626293295997461299005197746516377218151692342988654591624234775960657071591331885484882437993814954855480114023157006397184794200120114990065595346494720324282225365194743036291813658387002132319785722776572754143167797660007335515136277723222737130863601173660893982912722071513104170386646802526131745756078400652349936429202106629764207312143081759782368686664649388026746797393029535782213356314206963224138822043204583609191631661214041524917680698504701901209142428382687561038020405445930545994414512165564829257257410129110007537489058576821514841291908218791244741529541489367699509956106609485337840078140958620247645291615340457943875058147111585447642473335801447570328177014937577038947299052107776627567414367867034074124423181139382924841871487008514754997188975353158313464369448438910431579349641490266878404263593994767177371520540857839470622839381090823527711019677324178872335929023230851257159245814799174149105378553083714502803782388762747124782388108576332163290411592893518892669234188902335012358416618218309560791576591869775980734059441977373209993668821563277863313428239853562142701075696669406936998786205312712197036234605720983983014091522168153779858490944356631046376602109650405633430213714339488745286000605884668193964787487184455991201877131392835748627883395397371257679604922763405281803675028540002226598798432864378873788313158612576187965833053070830508456197428459925002676052833547014505313409343362421205950005995699429581812358703629014199194078877110349101382258195343350489586925223051604986287395736241586027627030075745011151215239328579063314879672118106805343360716125402067506296316647579171901996970729979728951586065051312590786100830440362534193553555936018369967030925553558481981184650086608685190568963048009293638813347179871252385343565287585666017249716633852786469744275883059609394476872354158097250986419121966872678451162782094715669353511163604130700694406279366968124020253568809425755836027821960248022121171592831937285377570072574862373963258689271886804826321372202604716718764082236006702136198739465881792793490315391969361926941089354461504738260051608218007751901010882553375652573915712444391555545788885938050126165729688299395573935029446613005691381074923379361564422799737690120678076467593624506942460476629656686671640531887869525338245815674343361219463178330348304352918358356584954696810360533052544338530430889418695230117925474330093463926762970649519424416539075599480003828114487205453414480724599905525073019233221393777779087068514065085361253517884126439829952081266505978239848579076532693309118428942554024125311002714250126220803624280215251503557973370888035244944987240982635468013598862925120615611345074487710411326780350404242106118072012353627318287371620040897434335285110751017773579306831097800508271188057311790459194550387115481018707295270045793668419648183031245467682343236750293977698968966845860212348312419380164382927938899606644550353268012190189178293772581525236414248043997375722662764528973300537215034064315546924743246901433846042859022670952537894050827771132556522752984951275139634463739934946834322236352843831416617791540090544021266234036638603854397233221544772142881863241480775013254709481901546084054448043348748670831730156436109823820274984893577141928334955772048097870439251069473997234231261957222352618190395176372474266421011867312155209555606532607879545395935978133359975819927529146219354832889759812225388292944877952139044332903439701886955156248697354613530371774198900878511512374925291355559969747635390984796193498397998007465872461730481354745841557788487360047167279173526731635965248413257040173802624217948953563234780680305680313411364273746022969556741007731189334178778444570032733690986481824709032039839914418888239820347597251833917925565959019433634373447943371039202308653584662324279839770236607354811226089995878960111554338737238688549550196700556594886031614828465864974024807164135283456440180077725647491845804969573621190304480796596662594455264071414709929511617464621720127296127658927410610289606472583034230046344850683482841662134718212527664537455902062525427481095990647463081791122409362611707473132534283152059154404414597858931102581961386979357424232385362379511454731106427154461658158471952560018273565805156365645976223488445561789681176030074966975667150813651186219355829803257772765705582393344300357636855615370162685611383045800788072585530220541447425066956871124979604761479121543190796779126582832730635211977716491953897542085962134605646308528237875791942134323964467714022407133209113377506544165282096105353811166638335994473166615627359069787322702597600597250607221826837995799163055141019453316587434876895420022736718548296792477367899494029920369215616459817129051935174266451561034168531339241735421073051474596394138204496259672456914722811007724919899008366512515590139654044070755151141311838440758088917612798645008922552763129752105753986086312002407847750867033989779049894311679596991765569655131388189440567906194902005333748050084302469572260477770602772586503744746881532101982184175891374635807139305718286449730891727427959045612789356518313826746956954590610724100139051394683506426114569609191255878611795717023635507902946300177421289742439565212436921453695532085383048156643397143890536140329018483827666797620637879533998106809544371984356314618841577567448265692425213470426784892116136645272834115291523494874827689379622771388904700974312577969926666622332578048614423659888043483317541387680667221309131810406211037506997978678947242007354007030758905541584604836078936698646434738367664785030228740867191302882922315809769611749861131225023268299242086465793431802458774151421397148908128968906616075952905025980044064938076415438249657011194705274940195941490833744528474073345452507254918580760090031077576852475151572778869212430851827889994049421943362602466927713560483778962337752630093006175583736467154208104099173550527629366163849986956982410777755110236041393459655666216355220528695851618619971519491645884889175012258752706028162856012884822249841682288326386827712900614842588326293335694323024907253932499689899872119636247678216740751865458661621444990911421759768903138933389951492914020275847279514339240695145491468695616061471348467319038049696667570904412217748877066293007965087494560079743642242390376934129680518876220676279202197759997279524295859672156174519305228508600300068486524097712169439951442875172649275770894717341173010048964022562700928513750703354201502704133306393170981535570406748659859809862466967586738484114107501673128396924864398075155470235104413142503229250647657116346446368133379936616748875783652723917578611877928250725210140568733532587253261616859594275722818667532177911823052705588679024273367263399134769451153946753859942829504158687295484347763884741313389799389650038810323648644712934711256250685921825323010220579189358732428830635828236328935973028913676684198768046044295849315993498635805301962990597213865889105319282491871749704512447490389549528252844105643348094977988073965765516975048763723585388422665717894755784531304447904152914545135908288187599973471225633509465968929599226238028135232524492490187689272110055914969265159130386710962264782892216751654854958983568004929404140889519317514939542866744562211148169437063338885728916006161106523131195896445978137819331496937465221970486902148256491584961609314450195571509821198145787210324527986340700724480334697546152388932316627794382178958186728632530455372483799484278779322749418114074355301187210608685164488516916217932103732595531737665879637866745412418063030553082520395727623740761657931352627211352095908339327841288533530582184178835559131831040239985815609620788279849820940511532034023357611935207958975162195109777581799175244680579982924426319135016380524069074352680312223459230414674140849276920811289002192068397673306761539013093905273275737456887418976535273614852958195822287470700291539860647055610428224779931231061483927450003527793403137453754083309475765760607576515306948768482481008079437769065282285427752521906500546210032273862381763965117635816073548982181949924749770803774752609873908773120692816073079906300397384502345168231540913549942261485092361176012200767631126278321020715621305633208346592377868497895871918397022218309807748510025941177519532394394054167690285314462206911077578185278858680704933766819549621304783758243189099387586412597473440401986141458117595384910525775152002705047837675680402479943854524198756008382897508690733817720882951089158091888246038416044583006262417701498859257824432216978473743414264320718043262806620949904270540545887735426421429292164250668020670546389680248661160225502951095124280743521660923131443446751519838456448143978760939011049847464255142116124510526658993928144778434452933760791419709107498557771240867463129442478108947810747574089173886060671132988577863141754356962162729689079609204920673404394716354830753787032226636175485788927396311150848645771923423566942559208717366120898299197861927765994786506576243224102247893853482749783567871723396559805205299158400548402725137248556728240436371908007869338441083293559481892816069298648957869388162291591633125220375655849081693189497413507466131929721878179724145780129872536487914370642441364910115822235472357455769371631145533267332001088901045062822603905382283051691796180433491222731028699535761646902949678842438936478196521953229795177835257602188750867855576980496516377759812953323789530522295850407781654318859846761263308369186310176714229005253699397759696489506679497395761275665423640910068429945003589220782848362461541168924046389410113590107784888558424637136621160926706972151348780598986350803169973429472498144239840273795862691878098235004394080456721879448769156547143767723810610153857591181555498955832545214503983782474813828729716286566566475097449650915733986543170196103691287808411109378694578144069594041627487973573817550613061868364791803330006081776464106295768810894318434366286909602950230470389626425088584131141890833987687563283047790538590469460476607339964590211235271141094070074917336499809308816185902000005406415339421507653840080200271157834614697125138814197061421772595668520281717545190966948618624474810467921571083910923401828448848331679038182508727048580567967487061319456199554535871750703428779526562152742443179033354137449048462672193755709097917781141412499163328395270794198677386440989943367040090729698801516812221507336203368754402576485817722024917360057883789462265996624767846242915777405351354320570761970770873384727555628018269167046996775917545662577161846543327474832494998004964812786126815567537256649440516532646804327624144289945897137961521283582189517635843694229986671583519075736980948896067979515000388825935878839160952253569584538888682157453872087157090205818575133073418051712780606237865890479016600502112983800664488405788003394273133432492902378475335394235427592258244194351060013859971089952508756288361000525791399615595778215744799929869077685617227771484536564138675732610872899621746317090255611812070325731173602476616805763031373917063967462111160448597924805807269290141799765191600029927040607775320510218081360033791322405333447292053948801552481289273237151498240896001572075575683203916774784544863149129836521956436788146471888741201318824120796663563755886129505242126237009073219882222020020729425340429830175558230847026678984938242292297609844448179738557760985365111742705170599028095086578418617392392953575912301600924320681274568098449150371146701905894944138101699846730040160438043907056896859806424090087601361601005138017925309200312539944543988705584845559769100347170312699720856914817780786407444326180569354393785567014550257936444833596515032220287701322533260622646146974609293098240060130756980007590201746088866449781138385104698545241349883088240920841463748661006932888602342351129388639513447207127848479746009827670989970169226419615922083024205849267731157171456921354025961391984907690779190632363204821788060799555388151609656922623808769775220169135057461243037510471424412736247957575602855562749634133512990079427491310827270821958183251280896581307125144815054448192930122956412196708254892708583163697350802143396803937857375387906784727729804824452421846603791668586248943981419048438451468701617074814011105243494167174787570368564832836034712354383960624927914607017065583784069684240271952796006875737201979508502352211559722234755171784823711174847979394525051051064441351678243039139129180702300668401834421110174755032823144827205757753458085799011456675440288268908244142024318283657610639910318001596604063822139905573766971083616558030591707559194021992857227079437857938916346418209384586314360729708101567007233423821115154118994829581397274058320215839192048011680817735912821941994408627302020931449566742938998400000912879578738351457539032824168741731801736035351687268550958197986044957404854627164731794337472512972684138092739138999047670360827876644132786987065667253348438342733354815005651685297182334810829253885204492967493982007568313886865140124467323762435260007841474763994801528902786814619851171091991157830969520670862576645489248725747894614273861154509279609256641392477468423598510848785640912482239766866834719942057584058113262762466982837697303430187607753829500845872304881017582271609185495492037441179699308729539472694765864421056137176685087761089968763544449745542789984995650115478816440734228136648977243935069220834460043922625656883909327960006148454118076711895410809002526862997209909024772643819153170004988419680429833432069466135340855632430045771173036743890326366492359298276477170912264111368835956508187393133937039884705185026411693987098159994234463231403473339972299912323378066391075281041790574301506469001623743469896271669364263162255422234916253380399647052364007186330308341604557305423912453788666462227649193658196032895793408632101910458907457669091373237737316611347385275888771350160147878584599853882319539738136607993738554814708902813233938873740852704157612991221543511853978367449565839419691088437820013317885386928844211082180810900230916614091640283418236454253475439956116114753495753021157968961597277379834510147924609203256423603350415820193160702571955327185044145768883100626303762671282895556761197692382171488922433529817849101985667641389393554003316094201066502870115898718810929171075367812877696106833984703402423815508581425618637170613671251020062542082120828052556244600303796514426376877166069577835492548319228334698006462567259668042050324028444211460090866346358718444506822384010845165573056223935519818026412685511970695845936125628052969545924072132545869272190401597682609900103439927587935237867460833866312637301227727668070475124232091940906248394511147798061677454695831583016799387844594938050153669172897189086770680918052690982293516780026674258420523421922813322820592144959553989637064467585386100215798227595001998337761999060470529543772658233457677458851612570770439027762248978850645438944314116595691838519040847718752735870107945492985270901370821099612019710691825796500953739224098073834360821465374504093596338215375277927966736445603508425022607473812623261214001164551950354360625557084758364938706205885194306665746322239649027621688818459481287032234139531111502659695794931381144860843713849553191663851255359187951360250548952363968689068132503803063961256383775267686732534320154352026296431430555663995640868251220897266399494345647931161322502192061302975625154219898160223178977985282171066319656314926490023607511288095117039127412008783999652806415672046627023818120748406039686538700649934128956372727272618857353293096444441862737548174618362071414612782787320644072017320446260873173361865519309776474764466658019722269621490104150739821301661664810515403296189918752442995551361816013294089569566170577787149293570499128980820424910630436967883996457656644542039131531782623425205993189200529435165503055937811693098492777204138763507244345724791020332363417677923975763921737605224240242493917227263879216776827834463665698104658225918711831042001634678994032214513259153162699281984757627383642184270469920991909573529844619251770229387100493587085488245002273714630941866609175438354613811436338383285392343221883081076667444513561400018089721628350096192938168598242706963083766961872035908367160186575398733198302900068528028290966835911397719651173895144346456785995263131693124497531366406045118758639720995611543401944469514115542871482788595442506325863259093385574510428458034545822836639693134673691236254037336204910963892628286270829562058009224849996361817196494756930884047031653092048645388394432909833302628716914747422350436873464442737920646655774870558593793391367949223635405224465330201655910768831181317614097828355416278372033291340375265241903104275667113004920926001469557023152014665385169620383374377119411659519949825773596115623586290430391715762499095283606466745015413996839804649754528510218065461863157875802758688673773537918910075166498743685254909614680225023711292313570463208636777768771642930137520712879534940545297470915381770518916396436093408954282294182794791417468054182910505054179019775952774939531606114575796211541863762041403410877535842394608597124154460442815175198248199977241301478717189239013224531485412435979831848971488200120233572189673935666422758906524016264566952216105284907866344557008787543724905801800344786221582811846532956178080583330794648657791514215287859095944120524482486571894710975628518306937067202906986571399486219293299323286652517692289050948138492993132671463798509422478384251689002104844060424731905591283254696149914373302392135287960003766168213894767226430160214431663195878578550534443948492426354372216106131489859086644710958164316484358444474059237436661992811237181210387910945417133974088868957323767450603323340703206015088140577349566227931909896487579351934319974744800620980820475077980235281265275499869938349008329832537871437898431761158885449487434090360848916689967473688828986357901167357353146179463824904591683640627545571217033773816436463716387529723995835643867923300426408254097837250271966556123371879788615488025839361378990736149875643739245895363141955558182462610735381872645444183652425650656083518935077479176776125253761141188151885720777331717669267543657542669590408130949981934709863164492582003702552835577490204538546343847363224107551537579161928342704627591027343083801554451616673778685847188157100309915841023325683364372726671841591742443807942774852786743038254752482192297210614008560800839116700716561740861438870148677988492248511531235511614505561980863025587849975412689217338227279900429508259393270327140381968489035100509094703554043314330208126856209320570642783534681230586672942216996614055488757477081331560514888863075176446573411593117187751977470996966978788123343808728963947957785087577941889607194026675017536815544019621404192041614701271797165147507053765494456692739507300860269667252726939168164688719360164674173998231859354275635991963026416757434516278774049958020215973375539759698119541492181922512678877790179024885900873984769667871380474334491960594068748202175155640957601843907204785006963702072529984760734693579924044412727861793671842014674889748367383197340047991335272870823665034796419484377524758920384970882569948137860287924266733548373982471674671143776316076753969763859882392708666262282360242322548938501160398772631031660542981183936211463585186746498028251716908348499534017928026992986692000498441754494354526756165690451636916496145678140600340787068071803788466619430012386286676101203597443806299960198989370487792095108130616633994479067900249715733007840731848990749688053799240445376862173877741342587575945035919026846471033277242740163106418734925548786287038587933913287688069197896316324046584026774761372479965625282779553099921059301264096703696615705038948361911379673830112579958204953446978059194417770507482241105459548207058257057051408581480023253314409839639993783424755983735494439533981886088458385134218192511812271651903302210752874217681718337286763891967952324369607693155150903976339154305160730217457382107520289995191704711021611286776732690642547347836826457983341848308011660961083625346710655590910342584309497803819939149343122001797391504251557291633329578646517129998051735831911192562394786564747608138177894617859108126979409249438552200577103540071289140760535837264878670840687192959807240698953919732696794990250849152710085122746813010015181959830062098875602140848429320943465392087198898103083763224999986417659410652122909492668989132621310050600953974703371945163687861728286491705059855321793724886036655006021370621124108600590713424703164541236859210250723007919289933292599685653548486272016841565026674301703210481156206003559302461784944532630775333031204386043207114279121050109042066281272470510589315013484766955798757065627269643582966264254110972908804926210279053697826386721059397982985906488330321335393236535163349322605226078115572948005152349465618030007244560293656511705410469272374385010033117225511197104054116448728958886723596397277471286172506348624851684498685278608427875647693622715019954063732741402922158199854263228146776833685186813811865786756662834242106726065102148998450596691667213401363878219714151484533837027891908699338446287551325578694376157114187074230429218378848208763770060313375934880185026988958707311866166775612506690848417010451114874744214484751584568012100152428926094225737053181897010249596667446591185130641143358673075860094623060993380123330140128879294730878672166510605432549492907432192038166099928488949609721985229467625822022810603506348868911616801520458184283174858147834854119611805583583036573867480854344477701157923354464558261959573488144335228368760626343650624255791603254118780986519534662897775207862693785692458558493160492656259798790368470469126537685204114500882024542110471609750136597236843417942347767350862649757747197350687284033029621039664064279001571063160181599722753053001818877730935329101284178496411546576349013435812252778530696214965757251398591864650747736486759140957440122184728514410324111410744069854164090953194029852436972157682717489197700067917094747071432128290037763122861318542542701497978325573884625310803546140400572075532729577109542275433377145029558817510172491673286278571608196471180532745452267644657213018588331820379866855888162838890454591752760809743370923106413746257495520273814802270963980790797896014498684695190039256624405063347369373464508443674651043045698431821663686976368073799407454279679712249823214691780099069863809423266297641077183331937349345989662105615846534504901530095467136012041984144094794886517787412188897564801059782168389655765941791158735143067823802358835885927586094469185818799438727328510843194719094432651411528631358355309350549101742266887326157800531670825497946891511998535427334319200634493286326300974576563228521527061595324943482535252779328586973171528028365639287131611442424658255458750694263495896913047444897677893613413422451931730499546266581710994849422806631322798110504744998493257183884408982288308587361702710628777347531839197273097299691741986524873330221680222896063391017053905003873369185953903830473734044973767463996196236461435881689288561021394731366737260046595555142817290094830892637399193200000254556519059449226493682745357324283637539709033961817148664531248065690282065071047876258282457566727987175744307464209956939091632523397363056924834479189509401451155269365000353375311670335023636840523646878744160616446757437665015866186705965491540507976544206935810943708413512497309868986716650345803848180156611629191367939719139639644645523504296987008498919147396831173651732999067236586641564672466210850604916897777134197168713476425611464072755558472467351920368229176417771818107557470384741316434072297776169421389139522596654928721612238669193269570136782017070486085806731314040563107282327565178177253923574191189013340650608873663005984340170300077390516473859611390519716940117410046561551488907579422866935000528801026710552991391025887377490263090037025964119632602594412346874985411401293623395803267682698556607830017518368362312041546785828564565480973991847100760744402982635435073278079000887567297314205133566239656215662472143259294124526287173402722288180168817571803913128238971299967984912653481547317018923552870302202567243634746149463638269642423040471123129930776888340151036818497134195092721382213476489579327643119703147841439438340667486279937328447350764233924330755674603111824158700035951842278707443796432076399002634107530431922473072462536428983208206564859658029768071106650663842392083012878333746251114542468160763225367913563545004468350269417168558899430348028193911448844947452184147065113146376295178833940009440316531334394566243471708631167123735903130263623244165368746876895983526581564719481500304101842080456968873968393708894064478393177852344535242797812937073377731170146655357500102551127868577152679611947049984671283048156194863193477256018646358239972497060123795251619370485301784830332660035329619663160866355401859206448228081059905316011886443653388355189990842068973208127884272281811728856643224495479206894960031216801964511923756519165830517597328305708520118866743485796549927349621816953816298149832691958051676480975406012312046693091041350405490959617958501831328663125129039640693655602569721390184252429012299267025120358749576328141548343468596075246509506676006453641557364632253183545636792154233700117920634734968208472643961090274813427470477124884267632448493210872701356333466634378938434968303879006720500471114416452063281850166313732722926140311243231640762117674500550014406057050752704619100526991730874052529759672583019650636226526060523015035047279891426706085917757331775977296949418792783644589914210634290328472915645251839572256461453987303799735406474290568700420696755551352393452276832806593451508130698244929004467282921547830898099661146941502467940628520307688254369052492632231920135462007621629046795285769100423250102742837953172309574710284556556439541432188080768041038885163875251930464231542798653075774733599522135257770020295866010966820044093487695429258918062933614884652740481977305860591724313189592311480581309777349186922658444527349144292437783866402464585569909491775595964540779905104527070166340743812076474285488065686625623761181118070321461661060174252073307778290270473761995897569346148616085407912077408193625127243974869588181520870608536596482545996508639023275373220508928437558522239310714675464034144574392134616259711387881924533850564728969636285670893910738265255648817906394039802426914287226558799105293684008058179290832667698245254659911339011901850431062853954867683505490193936633594719865155274221742943920822774429948397126773696019836714393251718226699259760154062155717531082216227002575564812606818176658160054034543892088053122788920417335331353226177395209269062943851199360198337987562359860971035574989685974846653232707532482053634882424629167918304869775616657342668556293413141469996989888234988422157690988839698019330130885136456968058658942839938156035177753327148002651500940608927190901575222640760285164036284240282087381009030143732112734681670813144719292665475515498363956833320625533261431817827686510484366713964574905764881687723157989616799830388191987418632684067272619584361342325836746054905649727711079634813662390209142177855335084201791021145906205410730315825500296567741973901589319150032880170438764827655243054764414147666914029222355285773280628422060991113487857464552495407689580492614150379363007742325484609334180087232189316821319049101325967190772188368887825276301918900773467298531800488451977558709076809575965736589742271842050774624810983771713375480807758308765623971702074012632123343439285008037626039770783771655087706057721964796296518516951606164551398231782620392762133828316734552864762459337226773675389277717661828908416503308525359528719579898194593094980575500454227906757326096107272314505360458539619895746050474749852292937670092970941598028377930964819514665106845220990982572685246256500809371215306263471339428365338065568566258667777401435017281457434717066856130665692415178834344037706086642155091053532747482918859238313210328799099981211465009706720069513605070605119825457398305289013811738833869714244512221426194643458882165635492029882524193421162379239274918796549091639308279828016465778673147194565436849879885882880065896217206796838963244536197733230262076245663016229548938786157794980242526431675010856110428714917967736675566455234502173937079152945933901188276862743943877325312851423158731233029555615472701822140170727730126184124019503787937306460627222197770200866528821646955677265257430984407356220242464653364178195245115994090212981969729034276155643494454057818144842688215743683483944715379452092536201915445090197212294229588804122570146261135130568436946935814210196233042899088284444689353162705956676154919975543676290306799448786649083385120848401098436218069776210768393551847296727446840680485308639791977929827278179541496389053036969762862748961047051173424659038281918604128816357399566320862706329578556053100455329975707480117407884855128182135605954114047510622702066645539014482210976179452916017445701780287395227327112919823304404727950931171219578866495934274413994414569588910851929594214301049947981964141687152192841778780960074145551450492125582950017397146066423451113134071366148490442053365932954954332894074439348934803255137665902905349514537664306775552274653597627447263160846637237826497833635350930133019237600620526869656626203694331535500605313136691068314895208225454402632950834115448351812770405159518741806183998245321556500330159127733812309399117825645363156957946960403185973805241003162043697134052503121118105985387149885913754103401589870931100731702942890447351556908959031383761915097277896908536214814198266742381997166839415475351047094627248972042369069179933530156318969903814303251177721954933034166362893288586954269165352982430608691070312914590263850346146162910905391980745564015554514937693129083873048387186770762613988313333449472066540422390384268636571666472868096277406739678478767233408890414441966298701481598209379629752016446874286895126439138325340421904490632417145894610367136168304120949387105485781648735007729515650312829626486425154423606955925977914730657119921314768164018851186415168321064720520148332761535015001790558145466316303964788016644468935376868636417379792614987323719719656028472996966036783839838865343883840748827035206773452836962619845379459051164758208743844701532600452850568338660895437146738015652106425109835308946012459717594709672082831542149991983555412142914282322058530635548568000597320131005649146742870832120879389480969366366555457676026241192116656794399595495503799406621524910794278119368712426595692878931656987242499083823630091340588814935841960420814522209287760158302999240605585363524173944912205045598195692016052753321628505620719976949178838826376258532796095752117048294889605612354996037590119063862124584339197679609216063960642052448954870635820137020237482762643009134960798643500005149681483084170852936701282206729617924446549935715505463317013708045954652064431159480641757159848428140029572591351150643766814423387816514610711868696751322111285216042435957245306908520676486581535721733533440857071383684780208878866684820019791109777838318459313247566468019730526334687442033662906009438031606992774064952234576825236220774769146568536783044935390048260369240333018457939285468866497695198883537542031696743529937137510234530439104050654259774099526268351110124234505977557322448342640925873981986854578682148358134127716983224812776604154762737658224812928271673312463978082946969218582098461531582440102838027925948072083089811281105011457999623235462298242088660144063009124838701545666722110231840726209671884030652366837910759747856910004850276131178026113750602312947470555100394843786448803179944544205486585627803004286028142983583838978208856693264834099935851957493301148689224691343598765759833769255598877777663389426093333638813837858234531061276755011510300901220392620265990902366615049294413478234217935978394102045993626315329500634520015269336115568270042098462048261424422072000529673951629748354371587361417476275009999824912204841555013448158570950564034837579518015105356819080898993777382167957761084215270263851508427453597681008332033017083968742790452737105411053833497303494751802551781946825098204607189615371850022269815733163518359247138047184841063228009245897092215022752459429627976157199024278253703878614664444330851054342458877799944021126788412232269288403295305238655266543061266323251676606260292279129704810607887214889450402067110790014847239225610449037939514703896022102136901631179241188163489084224624460648830463895892543827063285815571142900360116166447515462553225705181419788162389327488083143647746155683525443197344632737715591474440651706905365224613073932394114000884968014193247783699769592753292711772449792169714495667565790738698083621425218434977315011152812335706728818513036384851190374131374721378086981068349626447715495782887948708558621641454256063836068757996452427124744918870262845063408140770144802123047049361364587146767706804156873259820858288812976808166456067397410233535772404584464509818421673069701689912271807198433092011381221652720400530673709463027736298423262561977441708854068943443805760754913060377299357314213241332554685966386865714352013890778719268638669916220693864012225649497845651935855866972585082959798154157124908961508485147544893678877671216748610105442613731237467029997511308051503086797895610954995906898116593458114784970785310432953572591059283093847261417095993334968530907146058821127038200398833402690032510212873317805903716754196542428366739136531840222147268455942051286351493309890498582577158193649556570622288553672588937110983205377437521709404243447220806338264491652907011348941292765734584895878328562461151406171403999715853351754142880340350737882912062927214218084570618393698432155147696156700530190215873722542763283180889926507881918099202964064175371648154263187391773821728491312364176031203991850062282661981709030754511652511376581180812964685767253501879598736601515102390453636776462022209380852962180359629299107789839558292620794151260526900765932329049506459695175509710272306871065976095324471055350053924501650841982192179826241278936527143882634068948411567883194363651004889886736691011125849846474786279417697055347425391271444222498712717377663731921406853241982457402184098968697565700006482277048705794710302507696548103712385008865763498676561020975563745936688483706671833713305420564488185019805336014098858361704288363598277860611914941431056089479751436996787839133655472154012733430063221877475655178827506966031321512739443550690800154395281006777905806989285437547985039937664197985452618587503273740134630202991857079710384576764115874710144544445406159961998512260371676906666523871161883212642239203298905247971461154343451642858003120344308158910686098740881408399345721625495151683534164347779564438781963918209750956413105076090454668138198212645528021168148909981143149898683993703206032389556042611979778214221923048985885082657358383117233769522174210000761617925414192885677424640269743436521988025744905039410414261888992866386093203162627787112572202476010811635267107557512350116205740476311993013906970785786039338678000763296989867170737836596417874821821825346900857923518596138917705366815838040318911608819414554457192293331989571486035760125770601101087791966894769274253233753798486766671735382166573323504408171582935603759746006105303069293415448194744253584796027561339692223530958609090134600660295527669503744918773538086730696668931228068409789914428881926275004315169592598833106421379756616083742265993867577052755786970576727802832937925353189903739828947118823241969311135863329455053985187236641118985758373247138045036040640222246378850016838190394961000614005985306491864437801304521150768333400995710176410418802031870303579918618969055138009042624592116758876697509805551250105049383417791569052647912390460447688756359266745929484045785910365528482779561085734109455286821252585391491079634598646515364379504219706607184559157418851066243674967201965899491043376051524121352393067884255326896361986004031157573409865079198359119010257052304180781204013548174198269427573001058586090227987122599962372979927372907874567108222905137019434759245691586689964553301155282174449899997677611073667288916549454226565193644545908431584799872494241432256499711538152860857600947035024573632455404638176124971392027858674349774192451855229373172393544935145669482211539464652575812782267924123674607217694700222922961999880313609362199353318683261530605391857024724317153333002745221887664670123815249603161803126976268955844968109169419223985931608169511939482095046890754680744095270743897511441259843763879581573589838335756684539809380486071170732213671800392000726477138793865050752756006092900210908646352697927012785208536191633515846495102984452831170668184481630167157163163750090452433947782037218827492324589850568942882964754233423486927645399030736014540201661756609908641564917536932783045524149138473651606207219335619061266933572528000259041595393589025451748463737026092601210021449686626955042548486515759441414239357769232172016840397237513524570739376559475668619793900899030498949915572268376495935614961618651832670882861912829428043147505493991614428291658684549364409981177979583641050909897709760841803433094924002679071206438998182646387963604195400474178245070157174684303581722765747988812547278247393141263164136693959944052692997076155660851635707290465397145841836129558099737039739265901886393378963646699006778656740487196368212864114740228252382333830229902393827327244964353025778490473296161510086836869095951777546917314385973030861249202204283365229143385495347368043354452418863015318527870019193196888090578383992458941280059850025532965583563055472174452359908485037554819223764422109391067937092765882037212438904221102836775222459229372256780787900448366039808223048259511537329761823650088794523854267243931185957247470772966479777645228433405546817683872649527653066685651575240619669028546228431878486686374193014952188007432155619441543535196007619182730338608367535104290060587197291101413691899930827213328537944173712051105223104227743342685865135168630995092576247706618608910380760083853988904269929499451711043058520794748587108754859491260430533825213723174878424499459081720173832035133251951040115105534638940725298236139484457262983187335840628849355812609533534858824088298685782253543523050252774589411653507879160098320583691618933270229452592700990151370791444531292622928291415304238021504624495010340954980755051730702927078496801924137767705066140439295510955493934067581482878630567769512681868418402441153949300357908798956637560601091443904525564280858569961852970076052978815215914141826484480636543026298481661640827409991359312439001246883563402293188731119826699108085505311248754501129121367569948835473362724543157274949574986161152149932733711142381295525808965278811638973613272538961598461418078634392456066053033169680014317840963175297427015950157939740956945557748600241653676336611456431512432914012852969550749312949172361619993575481104265924803851986213135496468191335265670789109658533008105036970808688474946048687129959022846800218585590811984166709875099731602615470740458937382484763555617587000103933258281178286072183537480202762325824235950918859472579645442962816330567673985115263893786493804817360789668105838414998678009047681122103981179403969740864680806577818802882387176376685337876863526733578950456708232096814034882934603889734979161364116391618480196316337586766216158462943486196826455107054336355173792893481784587510032530182119458318747788360205030283488786357464119883159940515771519187578048405992297976834658478136664150576112141005468341981086526660216216995808498942113998054051908332762587679424716392634306306450820989030994942525080939559221951809788955239873030590290341840777367287340232076084029757628516735122707599453049503660987106907474656502676521638925465780376894441987961728465060168627375780997573723465532912151815320750375225122073219755891532648627394994823750801563967021047346414729082128447837073522476125158731254096370254750541990561642971752284936357827457419764377692299292518187075895950911979602317507363583339782893473760271012568199407155338256621828803142476806462228185694161279583122631975305940787973118484557691442672092840997826619258135941230437261403076654422790920867065279812675241685674136619760010857776296321137498575821606942283193719384670669879635074317882365648582007160077056738275677784356686329242773937053679243314690103910793169044179411004708685460847626117580117723291489604889169083245279165400247135005762803555834067615563688144646725956927450757621398092653690051113643069802292739324343212999466705113494159596797336688698931907810254662292293177925441979128893740363071683326093962241811620733023062876663703378908794781084010243455630304283880928163964654276794081624342052289929124196256923085640848959981450691433021960334662609967289919763047156660714167008255499462785366962123721786182800236101869095828650564396014912108578707960131211047539096020478751697584736806585095001707077922087217276694435664185425979549210569517191295764490200178988298161668752497744693156827826097932241428275940290497606949636356021696175894430325924001313660340808148837011600464311481202988359806223272317418045342151409598450384433148401125767665107005265999230267456041130880655276094997550625948045275186306226498730587635211389766170274312762343885696464126640625500272676061359447911377239344382932604172012420319585830836452773976510819825429317589043732973225597255429274697072621536509968086249407329712602086357701723076630503383873191294569650981968264138634988816098452847268584107958449828817585748203546973589616993453236878817166213658599258693450372158294294523908777848615284875778936164445596517072424404122836172118431276587719569005876227146086278206754465236155086464088197954942980824341416870354057159810054338561785348038369538726714319865620281274659773867803962375374219815634243562451439627224128489049281196622178492392730237978569012162465428114977204633077062896476008256296857298039716637575437684011349250146521923067929691144261812925902300915437107839839710109393975302930288054282385270237377324831268920274298957494941562041323805014664786078703226017872249367631290747924517465717693764950456857127159074240697396894527276717780829189746145213429775780826506585829502666991926266895145357967139485151169402960203519513090758968511713013437756828024268150390170542023015888982891973021040204958951997738362126195042645923170600600434455859821560224267532811516348123126914033350617444555442981763835875491433201414768451664631841580041227907681214003856507218420099096663285778740259760497675162242784667763348311726691926252403307453310500138582960418741695101820106672107805254232820869822466807934312557986124475748836363691684545688023081607847254421098812668206535522842287768668343241134630361386331721238986655492926715138640475717385404210825476424602336438515813660464445979223056893069779797414413826196358886958078742387028278983309072957451435188342107180330310739654676207711090239317684739396666407695190431878613331986913871048949458722139335493099554324762145045912437830138480635986517912330700397945029659517665363958750865630719103649162383236023409873592161522576146778546234151987956983370437127214222562520293317582024214778101618821475633664257664192917519177254022364760636103849899495222944968537054169286964023929683185781418436393672288696860268598310577831597190850938255245471721212269626833202304556661007722677319265381990910282100920560054266595614981024706877415572187655475037282573356240514905406408764699869433306492810803803545157896375578277123998896295273693217197777946506507145628617976493210616836088157386777945495061047435916390557988033184860663449360031870975015156694586540821194907298766851342852546038389720666061016802841324864182149178086131510038593844184481374893878020225794525052739778686385529796845492267696604906757267403456835010618621355132870347756667215902275239838076170293629766148538437492068944866666653492735720900171427363635212358209431077478345168887354156237745269459808188515777794975847203434113437029226292352037620779532043794122312680003817652815273874887015601589526931005236351636863037901060626310272840180081275509761558375512843882875120560371177137891573001798121418728323814496765794350457931275740407866728565592695126511307135893235573764167541214858739614398082105134460482516395219391807091045568584938312159550636044828544346355114901774927464635593587479152280026419018700807951310945243589554079140962895828933480176287702309196052863950147424435701483120832545247982740636256557742611602340928688884524930013426453697804158526674428439805479769279274827766851839155270621754134562118138595182410136750398040767764783051044055886677599414582342521067336563186761257896985920018072130630848703936248013754994123527495154388305800511819956650617066028294158117759869850292388337816883602374521684649309641470772439110320911716524302442857111234109691076432299660216294327408163820430152894468637086067484511804195719630538646470621724318788024522846643812020195029761321747852927048331806992377758620243368310254824595366584926344389332072234440104066906273654106212845666247894399547219951551738122147780822747744488536423452417541326510578085701922419311782273401408563373059805509092974555343559623326913189898021544404519347758806806978938876508308399089067425769735496976570209861590905677479817444764806562589992927102752100416312355711581221128997378672162250301004801045851463708451347100645007013329448050710577380050576108109812177071926896440281703405533644600569109318255408087788639854388180411769097681220617498213637310196833673942365261046156665056974853633528494360704651474504947591428524411650808495051492040811782847259556067480154258920969018446858236597180703142176253031341741979665593970878746649258404639836626858740222106684631370744402542705661191985240787005262603247331655608479993718445310307756451443228372298553134042241125137019058317826219063285735293588059651548175034525424954277388313487205947581047771564085073179870821286509201793590016549906895674277781668737674446039423397480532461508276081841182276750183424373799580509725986771182703405613483134124272995790171963563445060669071699821709264419145392401189314473485914151095722484602429848795805684055682015043813009093889970579418968230696847383039045391917013637100294239267123061906377907477970022711879848256375373352217725171267212422843956198508584727365427715708466561407963089372726848725419071029972045298203219698008746355878005401508662886356840351870789338637215693054238384111097588679317719370203429751222961860983916972956190171792973400436389181971541641931862754555807614001896265432528893561396504122183464155820679906501290352995153067081161893795594808971348622973509695168995600060230915214856028359541663934411942342721270891543124151150726232270828310016895104795799434603959277714402616045052562272667161157644118573884090181510185061014192512847973422802289598146400785210879790274795489596470276493555817247692211617902752801554791796126370285319764434270832117375179399879953819417729909485717541199370555173401780665951948674038018569357209379918087500871910120977532617744159776364114586480360116097463490133797250343976974841964290398570656352487618580056371885237804939510148423825709728602883467850646800478099180731309233041579541269563742661418112293569770405671024438607366455762576959939504744653957837032580502511118537112075645172040704152106235708309950849058026859150307707583097159676664541071720334029768149553604340703161318753894440218806903719321021171029978688255007531268746820287346471741816161964765741325365536056093813461282590065469959324485215265786013329533463985857767404117351074840617014708555763051713331470905735876958854040122318409694417560981676590372835908884195642852580097797832505423984043629361075404784916936541380687550141470594745792672502388017876343703038912130987510678444640832735268741692443445471287274962172675390571494680213799731135420629595247733576933140357888049513273200167191989145855640271559560125788864230221682384354099054359844622962235249833164803112405961288149044737555612213109510422166497272531632804410202804019322572571426102617218975830128332615959515668697619296572044668070269195318813857474770913426427718187208409525643767495188180622260633244717300239549958212915065916793868865892381966368954847140100707231370310501836338024700070633910433149890593539856264660214343892307467740521301517369851939113898455056418333282068270125033988998813948599521140184472601884585165121486801013588584157400199291375699979877332152193759853633249806475842872801076156107262743820042833390448494763245586998083130359607484603403136291514654863337199738549542861601856640851343667172124355082716935368060041441372164991242782319064206923145235917477247380799214309444665067486001528325026279013381916646568986076649072636735783388259919999722219632641113512804844329889775237253556728242330091923117552009929069661492813880400858185309322729777283684333636477118387279585831413240155852406518422300995903733251516947539953456816921699047321463474613049800888858735553206674343291730998382379665904100175659215232924100355945168319242188537172562120736634726272900799551699633945610803238709486532699328184958268840686141611452665921854336789169549852111493179935737611115555910731045160443641644188960815923247659670270482934035295937122837834755018229986055067028461993326882667367977354718335054964235785717121746438767307407122647106339653765440883576474267754810822667892514479511153474887835841862198896816901903001685674535711699244380550813308385471886596243225894540421157961671408080451671559225892529708835738334327343448048160842675293027916096114254659879766787811367402215554539612353459567912561185180269684206523130639840929273232389105161301472039730195477301706788049661304013732716182182040246309907278224916426397160897707346550664610149045999663919278057732658876361269805047210773014431744582353927291736584359783675419248898588978305401214364092813455983440766835927523743565065415275624782775699951714672710177112376577841561446258714243169717106430381861200246332225646919450787820310038154570665483015033396801248682052693264434438657641857003023317708246186377965218661538811706603942955039297946761838627105687147778197000576430822212945739282005238597977661070743212934261901510994835084555321034103965795040687238724320061141353299148442537022039868187255232400338219705119680871536803350369970789113749457486339221877022303044967656059571675504035706818605547341354547343136219404907944274473336403006255218855287741407410298006376802810027088829542352015067773880154070565661035959765215726463542907577515490232319687566814672329316033356248522544090932828365064460880068816900762778140540279720354867819389804515234853920515693482646277283597957535142934395343198728509468000504826508602513395221294941137319807035418040007588234274211493191692363814015099550174075304992374304561381143072434311778740801092364146115789591149877159118246823272751833865152315921610056708593706425034200221124701088015243959952343678319055438050659639594825533506136130860483612255565387278217725818702504252988081243778988334968196751298648570629577328912870777917584918952237620656223148933505756657076072351235476716499103027540838398169124589959926074235745593521754435135256228985483406184616840789802571501465074291276387631088043391003663197368273424667612353778010257342715089046174728233891345598178736101277007748382156284267436389008796366741720730549660839280840928974819945955691042474400143585239187565411692178372440471565778826421522526930733726137411698381463902204397016407658674244104074049615439315050700978722909606194383574431346256258856844916537485184571001779828620852088896865332717004553061827491073972924423266258577942227649045451333294918310103740382850839264984767779870329448520364151511815437142512055667099804461921076117740956737697752468729146370593366782832459895386373497808503271894639931761161861230445791404096858174674092063110183606210412843633953073113049903443118637159478857651470162169125467320128137706669646196472461254765710583999403349560377022775704417770932757918613624150048966004486995853651393553894742646223255953883461838733153423017128264575955522780040707435470896560788000187164814684450899327342106405990569922376535481853668309313641864109040748278482082091562582702960902023179921994047882734937922836382381935773721984643169723316139860855359464283702084368414977701502111726951582611205179868161052372387174277800519033971589489497217727607131485053043437870743591772583494711230393623314672907084623652990763316166080875298847574531413019935606266430185891871991881626182970833686712605618450699262141579675558740447563594253452315852681469777618981379000567459215950201402572919966332176466517852508308076920384935157909871696703490849356686102600223569462196888435436287928722610219362291205309367751776347842138305349170901539542518504657117791152460019016139584664027553962256731954842323071167429170788623941898359875616528845383654609472416215128018169937009315009819599052074713028134168718478426598602136003523102671044199784138773764531657660603086310214769505283621068995620886337568231900633270670237542665236892453331615885677466803261135980094637850232739675992321311123732145040713093605973751723495922973873820486894942463855390190586676236031384484424036530080337593644209041424287425127613147550262230853527301758681337690280068289258193076320097544979127298448410844828844182813980850254420737237315207196689551355165356717858360988838255575007694573028351996851005263572927022754820164207490279694358576685447054411004952764389016703384217949775064717541792363840345391584324954353668686861810803131955873743914261167358549376330105770473558440598357297205856155438576877082156188138576955564810464856892689743501127098531521004343049054552001854808004710191435987460757260765200521834352346395049156369964231983828712226797659975038794720100557541663109998186908063568156387371959067996999233042087825083974778060522803484425213594921236103538456145534439692719250242981971818710704231100734932262607605521156888365724315997579593164236194072853895237965170156800302636742048493190409786024678854669998497613818210244707286174738839507236698857325725055926604243073294522482502441962727655444423220264268947617453391703696821599491475150238435952138817499868646655156331840104069793789825819041699200175526479916538635077470981604931905712421713436251999813828135057902384519787640016004238428409603315849862333159586660356261827183327960752726705298884880608286633128715953511724241418093859169284258866398914152194206478877900485316849252215827413885105193410136150480143415034656226516115326458613803102401443372234753301906272431118294925599260263562096739532038411003910478094177186714705655415544039349850182099455127737075268136268013452736465796146577477006126337252064311780532644604238115603243410880966662641897349633609089994928380762420811152204186053130393556554593871723169168073364225871809924643212575392039625679650083572029097782235429650024603959443800758522656684209106572957216888599686915204541630192368153456261515067560094724298240473133015017119438056006601075461815161479607748053207271965814972898430690235743732377003668188472377632946413989818767307818387459080259557528998131110609078949022091194602506092779862938420495721942213738555300366342469805615318859683323233065226716584877415616740230469540194267650198347545667375773665095392191346443113174143166748131329178447656434883872998531921367221483829488416296334037628600841616322860476680027738734424943292811590838648180249269730323633758123738940289326748234037896844056557510518605224462241684904668640361492913313379813372558658436530630891164604973915286393123096194339328256264185152856379135907009997626640376329362230337960053401179444715849604108693333588271543854462771425518999484279909259157816710705919395785636444184867439990309645396736309887985877508977746480604474028217235627422511665341448520064345490089286055814404440875141446758895339772919432499675427315392821715606970301617398349963669870733989874567919362299803821827200315377532428670296867108954422657811667353175602492641648050621426110080955446658454134533534714916606580649033182028486073960797796569382791777737948729657305957811177268843078048402337283231815012270435155491911261682665909485381577386681499587080059589520566393257217091493058466735108135366632441630883505454940807700083076308478347401301693934027061749662610100206149826301394026446762814865416348238305960619421896975089490015313377634388014989489714068843406252074634429070846040454045145188700763415816209007161813222404344775527400090717419775625924164137098979726804581558889361150184172252976933441954477175328765892131788308812071929735954579871761700449449687595353271196338077429718425947499799547800515998023473023185428503559464880786006164850349798272876955168735141633967468811732045929289731019388578773595275107442678242158969657594262742523187791682069931356553575030644915702732277043439531233465482730986445480406694941073396917305372461140508571612772645570453131462090705909242078676468446374824662850316032521645156539990795558644199819356910096548265279567164835943288863053465404096809853062938624483878556272511161501783022397491252942349692890822141214949278024319347785710281551293002473482919158123355090888563126571117529662295736855850751074975643618544786649144630284157211665749287707318458354952734279696319509404397561936988996610639707495187582519472396512129837998486931751551086675994274842586456542265418041756581281915780011962981944561242168618556583409607059918583023797142435434010878332669272436589624051231195107994353039544902414946225559568798361427520848286523966961495632026103298851557560597629250709536697813391959923343068297558616061223109432152993542318676702643376672973157803584199284867483316484692643415109526389468360163332522979251863179617752815760648144298230540023116142658282271928731210725370513565001424993712370850825319618599632762938868988783755061856432187463177906196989257279056839233021713629571051511535424649834718831976663156291962667210409543220996406587788336349378700378634116414828203203501433073344599198222750447550874417210976759908090021467147723252350310885590350088946524254760030589813731881814670462553602728372456872242250128057559382068746277372552718698036858115063906205344861255135713833053456407840246828792121272706389336742611808542499200916921480933424359993525722838952632372876357955393937188489199703298936596114189104087671972215031511462137541152510607758891823595544785067314187233628474904919051085792426531298216824113518711546434225644771499211291845544203649869348059818688011734879153661808571298465024948529783380728197930172260553779056414820871879058485971275412925762072440148831809175866241056331697562478012402036985057320816074417865901099823454661829492522610039335720325556541634246642708976394720374807451840365634194791156502921714656416634091244399818464662515829747398059059383428726107933218205583455831870805385119536409798932505801844902653632636453859863205969225589035244320724151543471041438884318977434089361155238751169102073927133886798776404451019182013799995255100111742131787362673338120244033399680834533087325914575292403161446169243917606581205420556516591190934243711458310853177504714815539998217464144883212048803407718009164746725107960817707042134460567540077134462061897002871560762269719174684360560517012486622718963762000280070414070380424693451064624093273275420739040788634665833333741368056095050381149184762976771130497668651244369060988278841993801406852843311486579646506418819815204812863417920080745568092175131745191589418342880957790282334551866889305342661623101235589556169592203967172333231969385158032365630890782883608595832636411369965370933221214271957098625064167192499461698195607128699408233784892306506555347071353730949080126943771765227885534086443543619042585292807779634619329662756463377366118403074438590304152358477712853868870604582534136216926033325977261598824340556063990954365162369329784421703624125991112490344658026570782937049063536072070838645416875900505137146466627494604148318690170316903870457044596799824359105202610921202227609571464426495795957477052920301540273107205264691714892012321600609987978257137012149246685986877620115417456684155424649641930157614329418182190516888169597635775361971342841699193667940286106426010490365341250427563333233296496095201563969257367125920182818570321093436171331053722537807230603275669790202369042274717170920466106765724694234385628871724211262904953993428512618033651738206217683481842513402063119712446794583029880230386238854945346703909239535918797258614141074817360289315448004988995410102765046849427640886262473461321571489377987958911865054505462818023351778138825524954481955016857818886004709907156424814157602435874708684685261769046213406629120452775673247033174289030917924899454592920917913202411845571540552247004765739988833972802374105234482067088545130504816256055394681224769357891123021324384160701725230233139988807929935910590805152501414970574903007244778774881599826014795572928503280700801726020782694992253086868137830152343105688800302551000938976761286045604347127057537239598731873717215811263722242154829510500268184477286051058704989566463113413261147419506891225238598684933629056476941575622058551420666206667305268909674742181649137085638027544780373151722593033608608791342595519530962017913095180122407851106798150014732846017794699257815258069750039919968897616495037561014488765104951724604944945140528973250020246015037681354306616260440702958428755398208657311275448649613461533234067729496833121829906536706999013805845015308260891436649547417282315911063509249033043879427055042220858264464514869193867999053070654231888653553143564892274767144012806013859093404209099234818431310104336657176414370165736592629482818505117065473526749078330615651510468434880350173980312276171776532451588845740238882239301542823174258817244880822710016939935258562336726161811056518102193651717373344266499850459055609084952657522248201182492894515755745920388943194320233897488528986355102381355218085725693071917833881918232551548813445905952464051062142408693341747735957497793451220472785950029803727147228409175251791385673993987696928251928670260712248386429577014132064657214567352771114448242546769830429236150371911554333735144334741240717506306167424763201594401940119703788768775661790734442556000534633417978010995242558438366254896325269933339051435243858991607368689366574174504139534300823285582849670125054649411828210423305036848663580061814653143635229923937633770363351770489816801987207870156938540026248047792666271187703804540288421260551664202804784832471916645197064740333808358392481927088876191487741139844843039133823840883384391661085191464581065925420327682205922979546970554672137530584365039515607995960693971209100059275119769807843486378654241141510837842821317125263330575806070585482326387738690660781596527153731197626464033229178136514133185777991665027681020438167942802117203858414613495188909144038645126657788273832036141725438068746211460956659580193579633248313893678840242461073010603439902083465165641371975673976993508105515074944944325468357489094561205226285820141157951051622474258480231109266398200317207135877286919891484510257402073456404335007097411972706930870284967072800753263519821374023118940022584576656830850534652077653863884490146660148822876432123124430820025915775488107270175252424156766529480577270352830847746222080337983054660160513100051605922847337968712465545491551314583292628135434825828614598682434353048592708968980952456814898943471604718611775509130642416180988277209405054947966406151298162592008198732053778608502386434928441628053560017123628553998064748747566545040615664054536351595314349117998353643011022695531307421572096699079702248437539098871188579030799365592342725215100266947310940263879858478476509445934117818556044062145353486866418740960341580324967812505275785438188993178364521933794060594346949550644201483148762881455758491532829097990946328677705805290956201616379008961317758612684979163215736650424715611010181798353079259279507912586549360132539773321785588465927046670468316868395162465426386311380386084967434776956509536847497181378940293032384709484002714025658469891919586698143383118966643005997942612469888302619798353402907487147440992476334384827396044709860407699342998444532854901106719707851634250352597472943187814293208029273846417134919313995554496070570811171346430431262409672051220538053104505264640967052838550505746830256132119643080542879692765488610530975916186781562804518716661012910543681315306502051548059063580246749415625837000204473442020901161139994502556107072195985376597906947868034449112065669999417608189781061425525746172230026575002278917565656053143339681937971860677451319354396392770351007777094817593667221941685941155389336671379529202130139136676245247372990939608383766219674013718716667182118955918223561579963191700030845571645158205958320728125623414799329423585358613716300590466736560958683925135524397225119549861116366857270939275719229758827006738604311305502947853907831281044011411792622555908121509390406478138161929232246230493063326608432554481780708823651056343964638011915806278613057149726091141826702126033244787073823467810001770040264578117757010375400935814967654562740605507645022753447349530000998786030872097912744048987455331324798810347800665375923506461460602576724491515021507396553786496126108002107229967901760490214771596411636704649106499408108938033741168237850131893030148237346331067571484547818005209335410152634984442638288589313966324128521922708555065132958502316659584830194278967873649321453542340955938070668366175673424247267817920050752268213736505068470833763130900873695033851789641123637314423619535798462665461762112209586349891885764157353578229452967159748304993502744804748895008177534030952526469858766595459739094423049841681782450580160522683717856160821146785358524959234926361912049854151273045109743494571622652897918146461216940877079878749965255305274643317528554206142403994629899948686082723385961949560016522596054932915983719829780560484922269718242123478316465981375487910440974432280225829485097732462475882394940814834496678943649728344872809365753741409745023791583190402709254751582662035589747050167750691442854445290601501163815804492527412775044720135323332233070718788743956749669381557894613188126536625655972696224981244271087483253485508466440301465638040236794094261646221923221722768597540174108988148214370337080271608071847915887895636400628475873036125334008248334093870547382219513227634577942744313668592789267681733256106008395295893121522167117846598276459047029348598184832967631072255933709849415047491034959896473606842873720695137669154913941734758513810466128387565696891412293669634037957506173238693727225566681425426113840066711552177847305667378927066696843049383347320724333687872389918107015607187232418384848373078351737656032682856508088089951601115446808533677488904606130015972784927224927989577759716241884385807241049680027396739613621213414940476672879534940124084732247556805827497907973399118071598732029193319168294738046500042297442373119531857276515089882984478899205205534991843089953434653266991564423622212696830706769196736480479339085443324668867562135457659518745101550254912466519586891078879678126933871111115164355399356302158105371380793291502908276851495631501955028638883452034436915291270695137400656839504475367472803741943767916393683062581100310602514868316389715813846521358869244246704384912502480507498518768389592347169448104253346934139784461564171140952091347611606034438495509342304427716503086313947558043863350562468864108067080430190637338660704972715771261979350149765086038857212215011144150835466914821631858788174553081397828832719136053852116154637383421927866118071561293741723018153405874379241294150084218710035591495242818309245569995256259513590033931440092451689099266180453892656446698053977089619140761469708918830504230115504066663530911944698271623237762387604175115434703533355587881668230544443387858165414433071876275540913167989643489155991246178559598887224738631719280648716030030991297107111141273535640458207499297693763280320172550012984594506410163743115819065394916012173935451975154914908167385447909226001898663075907521028152492479455152743499352104133935881968564707883619065827365816102709348345798423981845332540160174134615346019248037494319618312996675223874497007788733149286512087303351756681187894789233208407523688339115732905224353702064386977712328711042268236031257086323272341536937679914599890698770656018217175551611592230497059725615759982464997855301126620159977492897371698602160653197361356963946887070888994434933295848144641109291150354499955231093793329099840143448547892661262011813623535509318342175142096630832769906544979483620226257666355032279385511377267370765597516876720943287896374810814741767344568526947957627047585620201238148963906743252285339511448041345376810356019555492100391810688854190959243738093670328774282384344689644539024153193208622935479590953146630851114719163955236845339048193144587751391044803052771954113507555915558351981375789659516901785518078679443195088600136540487970959151309475359096811974609986388709073842924119170569392007466734538097618654572333125606829066580816706286218972228441737698261575635862685695610510570430025782737387299317869139832880427131224006869648314509690901940233679718898861549152190446534689099606439022616845013781206649742092115418766644926747428969009468713447971072717848039135493651266196935875814947645848415933859331708240113709694962728644013535825859996630844813136583351487600798964877866832570342350270243078330665305384420681198470896775301875243849831973116302454753349143727084643772882607469209938753211907789827955771803409798966611940183162088535897318563247901211695389745380168770582425614044871565144237007872442327755685121726561769031408596076738722984473603237621354526582052606626729108727606227376527545654952133715244716803313925401966265357667771271303174921125833237518169580789310607616092049284467461726542889130290073340293521994275059305968044983312502252933184028262183143994497158968136947861061608837764194786588145417562882779779818258901442843624081452219445157702582814358720510452617405830371157836357513463550665516868242932476528028611514976726843592754615808317853885463220506829959517654360366057046784204021007582891394708952970890056983338660975894453101662673415882680685352522708597216243533424655675586554084276909158301995045473260131913611630420865080251733588322100804346895685320689910316725741625650169497263862824391200654784398858264918612986875928835880914270303089823824542030652605550316481916785077141135163407202090286916364015025474186821864323537911010588350619075719781984155242144787362613261408949952582959566375698000881782714953367103969309337501079138596272251839479498822448755231407618046626289961848936996800116428846466386950101761177463178152918827901109132803672556783507092051392270690336823455914050834665838161943373823207159283474726548807958249422757646835192977493677793018376450156639765353833591864686365215970648439323143481888451351187471691017234550868077687436347205481355431945674570220499637553986272262200821614919478580730231031838737232116296117846019714803417246953769435102598459591391105838588911987275689095256068068014150366875610726106835090038186698457268087813537322160242094874412838110944955397659782466947142978403545169657681189773203419390142880369510681945038203326396840916022137586781208633525326585018726588557209702293681253919249186421336944104924933239831294790432351576040283455539757674329952911524379026073673313757411111948231193129060501030337481907291255347551526052002289963718221573806599333306336205108428750885187410499839244788628353024635038135259423322284447877606700731895750482896535570261813200653290286115644923808650397780782661766018997264723633864541162396028221393568166418292286113440438354154346261281180033646080741087139321393984789344879536928270621791721595082920966058954246994957767838535181373067663817827754901717205954394923909987143262812524182668449611668562717772817654616313883021364660001946781275036020299333376912978366235247914317766961262824159171955270206473646281755145396738333401881350279382451830125932543123670219245663753559677092835746355350988833997288996800948304526843423448780564826229719083224261279965896610660388080788063846119741533094933178283524762489087621308139608267035618302949116369487049802223811579278924128708073430425693332490045275440712262578603576431377365642632617519436849707220764685109050846912518750537612804432113942717549371682433555885746681419200682136986408114978162321002961414818388121751609353856701674098134886445679868800977559396186577399507825658850420029799541409410060809399524937532199041054580040873567651148498686213461843768828099418663337912365665001673716221771179221440340602785953701818465796003683541999082877589743596907063438197027512342310066131574554456285385444953700007972367645664692781448745183702205543636087269412671791494429621663500108424290925266047269541149932122171212450544393826243127046765564938953289391875040379292785686744138589451076585951761824552752767551028785080782259819178360419706479331964564265644510866386454670945635202544949567465891812094821321191377436696805842620989257701264704141309565758725560212016351094438130151673462186923108142344582240701463874714643236734117869530814790519450597312996301303844582468401712533109141346826589106010641845911383338079934355915525220707071056984686772210824652698088924973144593557720873843384894415081546533103611396196350055183747903836664396556744058065148047670380189277120729765140799919865967241396667431372709501258169290220110735863540707962693306067419939449937031239185224303048896536158169924123882590430042030655416345255079639659288077597016819137779683365145420636024886989063041551212968592227567698668564742484656984122402920764090736901917076394415189834947758464659901777748941876273122576621498283734795053163533680562465125448367600686602727218544611437834190385345385267118363294208514736316241546509762290690888639135823444301089719741910784500889606606311365845674466297932607974938040897069335749046358610321090977587811103692372719313098862496943200701036015795788700323006219324846656877123864517859005760280618770233634406242785577317429906981229345704777476959655211560360488372234950735311160402173907798052261199063333784383324169075957488611088703480935766339039078134522596791668344561708128693166792942873682382563027717882986252165558497406512647135125053024244152570514537898380263075875313056497058100262330987980988129851854345902387280935082575101672699031173767084263808914243323199718450749852402807830350211157363252595515553895566143474749984148455788571116049407717339999056756588654570267650502359211734561846254614729203250101630187586032126723663250893749994674835662139907140829787555161291141846237143002994929815440372990175878032566667871561830728357869822986074747494053836106148341050179471171536018949464904478588867892820549933216240554511005429296944029585803356112070804294487200285862425471101671707751871329717342997042404143989934470739126753160876349974653995871964417599142042700057335343015183827835383909505675079252823551221750339886549897120068440633182910349497226539623046194231095453557431237147151796647238910706614382567741246116360067775871201652919110522762874906724800755171292365437350491313707342551339361561845295373795209709131158202588490451765557602583141267912774405133406947906511994414728726745181249411948308554609006236317802296019072008936765020258458175680424705902503560430436428824636157272083806888287601754654618792328468535959264242407733850937728065831243868142579558540361712341280917357432452071594854591529151651696124113592492806797236548620481879940309159102766961878997724122963752378687134150140785393361242671086874808302645374679281963713359993866539461137020949218180966958219268757234849580786121701163219511410089483220126104449057483117977007063332467383516969621180794962983986086209370434057479357959831678242298204561760564612610184852549616511499293187124504718872970269789190112317719021574426243206029667099025371949090804433525802645952643387283669489324635304093790319657051257564552228866362928749641521302805880366878572963794030682507755288903988299416937818704682891578630652723263014499228520004853164302008013962437683721733602844217793771368315159819470005504602047346176214330824519234103585764859912349437824852343204835197303549994293401947981447563658124171243282565785348680758519237248297201531305397547472118581133257201702197977792149679435849073402094210976132061483320449167428407001306565937051119543108705893812479111237207296924749458684868234313484960637750700654421622894021341239624290601388434647101075468414146402639312713229219275873338833233651043540717012727949038114359729937048062175409437160218438557635759419307625494148714924429957560127181168114980691725134760996544681008004740235557393108683351129563568498598181318783328702344643418717879719664203302159672181613131869131853266261577357538419663519294178798037561593009453888048880132389618221531286923069077439874918776240511761577083109381014621009155456624137259315751345919520058146704353297844581559266062828092532853325229525836923020601148120848735625382055128260262236104585971645548940981907680962918142743914939596351180810335960001316405456638017070808722957717048613716509555020124256338741855327146215513357674233714347487416137992337946402818361805150460621736426602914208126706027958878136505619981026164343436519311045730725172551073955883983653542511904642134922551746894982135070854829009781757476046604753388559665921296096600029974481879157415842622934073779550969952986669784445122526836034959846957377053296779290872020676238773083490956577845254206169358255589956227714585567509607758004509756160909619079381042407403510544415918720135998447368406054362605697042379311316332517731842981527215823359088109225605668451925176847264587519029150647679771199508486737537169726088314847858877775762998343841692145346946924063978836508463117613640021598331873515325626266988348535304083161928327477533206358428459964509275539331324183238265593614354856288235642762207484725993243950553171790703729116085384822431989610834801928499260349812071121053285235246377463924430699660064596043717745235113499042455363034545552020849161507321010138147842219423748142935708824241395311685068822313534941412801670405847861397071657880300049121572354013868875563474844109211212265528199420312978662011847921494940493953278663925968786919614790146507577372743388938382267739188160091386143477147880152620268313244607456748509805925817589390261239995706195702766807221160833639450398200824745502128527323869949422482055894935608675355294850026037987402233820544765235295462928171509312176517126934567003379820385202831973768298526661408413347601601186713465957471404701995448208282664969154125360491714659582067208806235080633097295608024396685457469522071570596157901818394036713792222863570199199141472339342655468967516969942375520809291224116732945126518824574723632197429291191353618651182270517855055927158490452729800078759932595563699851988878172571283752604142916535233238281476553583431213827647654549921195566849756970391444893981703364088923327629319080033580974608331987823729814451363391015115882117774555574683454926042871280019715343902665860230871721984005898654701026712813574963758785981378594983227172447563728047742080905230098009835809675763869155250982720529877693810458574766656650695982289499641465349289898798090406015669549537768387406182690428572959942922913200073262714429798053033451726406212611860364834190863892851262304336776119673594006766878736861907999860118284948502146410820361700140649093937207578680455651068402971249039625115538165267307655612550115370159310163991734320191079558533817087347764534834196437824652697776252890498044181268887206813005139969014965972184688639323739743515181774792278906584535263361809452818593475690418269333655244654549009062127101108339594768570177457193528372605249435689073225054981250719660414170720665433451945438748575404892060834203301068345597428513465796159058837110180288439502892657236619648544121154424955572873614425543564175407034898613119697674614210520389082681079194067450654217834310013108615654543303482311997760468168958809000876301227298643388719077925179211580092306489970419758196723890799773848355867450202437427015478954335685243384427754770897774193160701841374210512524451975650575416839214062619290834584807426223574001771759182085945784243025668185808311840287536628351296765699195068874214539323979327625108379978867129277361999693305779632705136012264671791569958803459746956073674549324542824594950495467909669548049534528431485167248373088842073095704015701014396358607339644732177085753568191326125336649451434242132869125420759800571822006036588969382463641932385991891675138575026712679143483630508390128594194285365206997633970998584375282065793349322618705139647162780114456465789693970842079563211166569034146866995607237102270477737201743510567278281042228264646541959496684755332168316513143029764783908066989615448433603768867583902386280080749668673782425500418314107565966783050247726841736207981212588164118573040620417291027537948717215936107941969978500593972587886035863939514879173607407046511294475021462037408386545977632814661156052930357483285656563443781569760251659748679680036591590286548930059883204237393369833981496964675479131750627379813224697892918783668990205926051185590948359234087084447818656538529607800447536777614874491397357101732608190447518341387221162381491022928706620431302486388567056095067656276922699711576974932897275062741092383875419313266088435658262449887734313128747704969317755479655203740018180351480966279878968076427003208247716917744652543530515476123709355313872949937395440888092093573455370160192872454835553925110575308496326207193062860583339241869528638807724495906375025223915963270356139755096639705742150502080480841715410469856466466513998091542736396339909212651296271542849774007471579146545410197521095804028001698427930469685697507139223267169569601662300078976731334001002371209043471448403807114216136447479575849270940340805708068494848403623391632628778832442503568367632489026370200140967464185870543475185343984640456129873845302873303683404809879443233085203266802280193955235607624101542555419638977101188965180711886515079790549162345439041207929841044403804252474603395715201399433917979408051178273489008207091931977728491709450923131640892358498298681507401035542001548087986160765411793206213347092035990319205541732413239340568834987827639569198237855187582786069316927541344722934766030420757720092612608572422796818648439595134999495606370286675936591469790343554241233108911497739948794358940809485922515167282166913231274747107394933921896004060734385098351185920858207454059503261478512386636462121092038056284272044108909380356481882725782222203174917571917003422871876171642036224627633921072691439776576300035879605013070908429318531806842964077121591138451619371628746721021910695219588155483008197145070732368247490892512239837956026446386212351841611157315935396543740912798931040409875810576763817297103722841289614910747351525278212155790612714984912983895009805855288812865865518437704905135262497979879996081324522091894515182344114652400533484809185965830969010463961355431517094261793344060194604564015905049963930660519383434775701184778837645339523415091287298537315077293243520264454296702968713742249994572942271402484011233344576489170911164748609701009439458516433155814192384332464676336026953575042131722830992437986886935203830238748146999634995575216385688863499985618132524520479470604570009239215585265386048056396908984599778857060639336988513314890583056260664061808221216091074765048964243538255772851141628634254147651005939342284182581946383484702881401990597339771077900042998279283548443519311222044452433503581317021555679470106309192303423738965163598967708109851329584357042369286451310721853073971527801991862226517808869321811326516107049264210335719478358255451738940457818729751908966387562794446766719379448215440769513247302538747794175368230803468057345106032841252565866526320544911654897882201052218455489784521639737084387683578488953251254777929758245776098310189812438009040899675554383380471826665370516411943782768414548928688851115317241029894601740286911547974213842210745849550261152115369028390495543168080025259160553332631154915693212890056133912970195163693313809454708890638915879653347117691863855486468086222383299842627456948345563276033811111499772170090686893659917920635845372460574480014546313638281559205928981968779724575329274515770377815370390508381391570095350688974251700684553379978666688900793412568064377424795349367417487391638650525623279150328177623242100029748465093058997599728659132257826977572020692848720458765752393460180318623136900268660021365764449372527187600095386042158544756080144397293575612993389420615582520949254463454296744083617192899134021466054210338938342536674604105551404729662472324844691553420881117782635772084168051577306353024865559640708683545715457646728602257946716680699537384966288487548727741134720027540256273181591193835911520878298980044307417889566986849512096567572870227777929042817292597760416829912772721211181114108982304435990658090834619872563991121420541112743428728621816096750166145680820545924851020260619228324954952458360217359209642286555528417137564946284016912480191189121381722220451623928466133495177380061392022061008986099640453861605077969560882638756697976587056211769320067711860624518104375613668001607067311052664769904757601564399563183374233993259059994182861290924943220155191835626049767244338794209292480986367087112348101437732453532634203601761581622991789997880427425738803919827260109829989493189805740934248975000485055103479181478951029609160170643989877886609579922029026803300812302665999379701456907303335544414148243239379264526523135967543070772768675295134994502865762670369035724521390873183596068862014333216455880374428371217369600210398832309720468375369857820006405500402775794206957999587194877904104001050948078241934885234869734073797449794335761761478703443856601669051630774013235456753524226823089999712121287998649795215157233263813578887825401282862044299935623193070520006268966256917737168249945892290893042454641476408211308936000028207354545807548988455231456533581681032529360457532418375701296393770564596459904989246244499124170531629496629856007076353527643372662073924415976857000656411357927901459056111241800786631442034855321490780239304772598321818142524519380053351870982319779234629095883275878897307774895324223328190548214760526834284222743307069641239309238302020017079973501600688498456786003725599190669974599881806564269376299446655465862012481035620408820460003135681928067635221720587001208486843964535747173853791813909038651323812599221552168150492506112691785540408941309414702256597089967320266329454684915938604344226245384382073796342490553123424111254123513631059117797254922184690688668714045293390321715018060587337883904280490656513583618484252791030674038076611587168626070699159144400287057520242032183636112794287882942261717510909143847887315488248168643576717966492486149787340236668043629338522884963774261569539015731064204561566960719307756230524110917015848349590015695145874771478928368530804286475368250637770272260313351923381380964644122922394684078530418255335500511566472391826813948330247348006106298970353511895371849222684753015129891403765973272516117468426205928042533997096509657792189731615776072541780049500592270624166638316950191830998707866360816311231619675253751954853269558597698179960210940617858306059309156324043349828752874717470181108864779613011901391324576773497939901998818521202439980858199559723252734359062213617095813343624407676152316960265806877512167215986632061152458271903710156207146673776999537030186926778604713950493147263860239092632007651987002527085668053714769738904462273009527979192579880029000300385648605879804245942586003122140149801209588147631748126374322992640153266481113717041231136969074588052147999696415115230665570471418125336455630731124875667840068961899087157585826449129863029468427695357689714981637440112073739682682242307663758320467895051503647809224099817404105879594114330061230376119600682422799127776957081425320547581140486704597182413544209760146567155937661908622181663081856480959041210488720926518457028622956900080227008889822607392731834628326307802528972284943437843540910860968284675198351917044245645469815633159520736703258300769931079144220578463826338717520448573375949036322730965502056155736457343775430583437466707867305193405411562744491472372343096254252888467383291459097872716525913398249647297971820204421484649839004036962520830494958416327051355088798182360582156908400735712917984780286101378882887368943248413081411016186142001963498635937197695588292402487316121600770860648789190174645659466144859599965075679488155023372217545436535843738444170958624264828146997578084580971671486821530594916435699075724815019949464428775288920589137306304414550988096727268500397938634012697670077757089813188180229704408617011720892839928419583538795698283947643252287018317892633597112719047925125713995684438656775017024498845156280598871433461335173448385674758199444777415297035556881364954213552293346807916628360890433404192002677883666589998330383978685373727642473842987015050709652390856214994458619599212930853586012367645722068684639750713275185810454515878386362747853759584114781372954601423847086730042783559317265790042006727949207717975287986268388417434984338840793234788989168511810665097600252395925921448751044111021897946572615254121428767386642868220183631379801138968386101730631699374938438719028621928655605688247844964552184259852803416288802887756644888577541292668469449729892894641737102536517402566913891354819794157775688389457460224796610189482204002324117793385744880863702156578106140408552470124008901058390668478568471377369099485602105316014259651091998979607739739311067739830803867571301261989467755832606712809211541554013068651062369488203202020963951255287610089903280834006655094210654005881467648447870176112011096471078559668102658023394675897037670078124728456300276768222288900138655849323736414245933768976229420689047857651000056589831793448574605867905323391720417222540290653305081353671377528931511375640827525932449611241456618218783951066658216307972524625007205456879724323112272427059824926559706646284242031510048393979280717505972155187223881808117111070111303564072308133647711016161970963136327320284787346980850352751743820937317679117519708877958571834727194821275860678844347994753992043491193733648167303238059122918402574853148845474410815497618969906755755495751098454969726825759786563630730039076324693042787288053795549502329999106420323368491768681420315362770128661470456186394788839161882904626298483117230408316322108600825720009119082048563032224235611167207627438643871535483625729540063506780282008521123611599418051919688857483783059366072683271766279155986091406858771352840753930245799250020287370697461439230503165085376645562076648422101867445033499241646373078200264826933945811208734282018985202608736840723306599989903547760636592563621110912012820119826768403932919524000071250198358833645828685861228667513545452062501199964625746291769503112557885020709175560679506877728318857887544768932069473484532103188468291759611297383128947442412551594634590880712581005234265746828225673466715030423310908336602437323546544509950735531804281684849902216653162949525364162150400342642406712844737275231178468827220966834561507112068630455420353444038655043147140110674893890062961256302702509296675211839832261462720898447937309258787718719457501636472590986744555995376882634745380145465229123170456537221371012743485640034568088529029964779075336168548717232025829553101983899384735740500716601352647553021785731183924890773134610458721609072401718493132332291447074236056042980254805595861402561582606378934230924638351054025979122136098516008664348609510487679492496081722061679634706954383593597084917830831000370773812709511255627624745850154421083630014233056258615483071791419159740293297269574556591660866211350347045843686840331950671887639970444320378500483164938203771905343387632536484306822970840333630220213939026521094273349244478342998737414117404227447203378048720113855154377410674324286486520724664852905608484255181318836003742881323498037110948748247760942666575140732498527208596878907859597960630850478376755143042959396704499386312437871519590749267393404619284294776198654669459727044683669049375110590967119762236363889744169027530526009784701776933244551559317628447782966580104325824795088587283461732490802267271583295572408318917980962858992507160091798965601642736235514565868716087341830748547120403174714927849865188540417534185243670224722348251793409674701242492343612895413774263398041729053563079355211432224732110762309791177863592145144377691154918970159908575474897505835239313564503205849516676387332958396762751965553130356149491092772928897284494866312634913010437393934334016146431755756908887040072093914370558324307908652993155562720601731495205165095052141169082546133066314501344930760453918190652926714756643005335034595156446672439975563448745143439396847491422403278937423189074845371119366040852879799712713375910607483444452772590422219260218201614707389477638169744579507612444834891994328818207570505285772901524936087204025366760348787582256215256675446052637376575616951236703457128047557575066384050895711344269487560313766957980993202326161952101753867257319376672293939420748745617202547522924965683388726310684671253777555166710034723734077032988931740269692386791731475935842244116015904336369728075412173820255931906028019575942943775136777394978102230969342488278860641672916292229334823502756501419829756275944910583110080802255878002297645562904896558164730187015166713007529633244121233459005289182629674955648367213841692278330783827104902692433793408155213718968870477635437440223736171396971937719847933365262259712663766884059091971235536825615575133855906322078613838696684251102504977717289120353630714286748116837210429520663672379472462447368211745679170261212296176555797664603817596115578017898760393395440155721235919392793759086937413659309968626659001399072661143531667568497503567739795564736983714563468048795542255420187460674330708598668032837193719011741987367484878390832036205450934986645900828528331868670208525928748939575729354239217895451211894560636079178945686833013465124207856301626558739755028256804240997563703218207664702327933210401680860957901813105794549119136725234626959854014969371118077301757203121460703200103696570572115497345952817272532262867940277758595064990919425585505971086514427763678582049292818679381356279439418124448591730194954885084061318265836851311188703320716757032392043334615247093250462868546552767537552187307488887791259178579242308865784520668123347306633863407187138308294467925354416476424930584857616865397626628495026156439253852110353814637831435921934950897720492177686550756079316901716366702999066932464184643249410792724662537749485077425338472368037058038902560873055458393527347283101986514610291737002609388928781175609964092874326194695469135134331800978124202062831888572247593846861114404323836792936056732994602381639251634700363428013934106352472019971386268792689572403065062697823917408497422778446610714513667649878132190627634286419694540451910547110752834266946012494624206170652774135765758283047477082857675717960121367231949936617303623384066626877575410173352727734305315179134452906829744504318361170697080583841343824363370744676467822727054044435084015326106003142968618790715225480840915194667776198550898726648698101970065010902263530556454801117199273065530840170642291188296753774672987147742169938644342016671991967888847677403143950364559977191858080387117130310502794199807949470295893661292620326906944967090646727897129357673239811484931989534334093527098284692579330497424955237146572908040757198182829017447183571858446655605545746747853787851988055691970647931299214069680782905317568967103008887363210819161184333229601341678625233503141480169794945972248623052066282578388357273979284044345292104200961991325314606537132651531458617222931285006920640634633498917540318035386118562128518508915367899623510327261984302825597901336907869731680458123859548637515891644664576154541142876722800982693427338721012244917087834385080551041219244754984631449469006127471246207721031435506604803469582637615366355483229175016090784432890346246449925190564620036414203141655735978881806962444328321012362718575784725292903902526458078654633702273492343776902563054485943023027460633748725355046305640131589975874112434655211810667124065896055420072852727110449901464479701005693528789657577686195289181202815601239870001162089534534492677223793775742183811903217717070829301503654065547981644691791962166620957435218991996423034852118323832045838502211451002650078294392476360088800020948966785139417782687815758624632118068071192334735542172648619349625736742568240502509115388839220588407799426774821074978640136902435560973404188337767133749459714154769881339632155996015756031152549408815065343812249903115538577162399883883318510733374743693290611297493273013396997941507686387571712197988078680369690890611380692928862375695364319404753583106689210058815861960731006137351633844740182306954384259130661187104005564494590716666333250828927042925308145939754412090131285482716552139201100035083054523201026937584586244142475987167184770399980677168221675314328256486968830529441503202418026245372249904547160878860148083807059789127223336582224245724398807773761559830667387175767209355807821735579282774654565295274409278196218709655321267560762116230309306850167034716864298919634212466698635998366738496043312866029692254147300171101532723265367639974903263083896057859898522452621296171391810178529483127722981398090358264567184853124379001647543570501050390870489611840457475030772728716446528933817395785332361951630742042536843870041536511969176400953886364897219648126833910045057194143945962926723614604414862930858799237603379676804760068773030666261560063523216350433567609823189591334478541541145920986276139003726010126969631273095855997704422005947301362518602449092530374348112721874387981199451313813843839011125707336506714326786742603283816806974539252342528790042821009433895114828206003655572112559617540763978157236999274391914561543700699550785224159552411415995573831858973030252507059434933499264197298797535946647019877969139075376707381599000768726158904735688854138605937343683936980559648285895417497604127267917927221743096305290840950982357505721800275036777698226311197647262057572318786634465706360178573324693654846316279503415621822470133844937661573840745403070300732584059136339860536616737005385492746154757821102073911529825119341846340953108647351098509775529416730362411826549854003376638614606212315201522314053814151302585025877117310101077357219765925430276818001940997826722700230458325937004249183499898838675450407644497800137180507982033422204078971867487428133688229007078842208253105694760288355648310305667145503315816828274003566568308234175133392690793763313788984767093531747548959752984748145039236904217372939734784717920399083531084273036868901634617971202355833079739841322187224129341308792423495332444291714740590068821089953783675420725281532292427153377444349883610033335964201738037109230603133793231575045289091505178419564077271201447335068369156570509656677199769716142324839217644752921642369891107951911310257707888115985358730319087982250889193788576136298763896170311870791167599151383440229082953290093044089514490861542312607486468795010513163040773976490343863537367160664096536003678264734944105740426090597497828093375247046510130143240329614709196911054308525833843441189403272752600041398757281691008685249649106406589491635632292839480877649399440795858614236872994641376467367943636006401873514957196988440192124982983861118977755225946112672035721990628415075970890667268806965513986503723086593854292118271894353686142714809067684092241091456236855443032540825016241483527231923507053248255872551307541723882015285075244725291051245322531216972268847451471162392111719911968383279770269907764177004421130094847071160787193029715346295822174201975040528263484782892229663630386080453776142489269474592659557662916185606058588491793438143994000406056677078672135090454480192677048249539369291618299407596403726193493167452196302828914946385251914227863478982238034660872625129788143068469326663910276219749922694214840011434328346509147783253245260273440467203391328845512911425316680463829164003295610482816662647185445458287786786387710469447886293521860923316392016674400361819368235115919335933402118278295281502392350823811306852234730538924487215626617692035794981664269952400333568979741231859667171314079129998686786697121029400338231788202947413601641124968613211446731202207146744617729028353964408223672851382154641291217513677046615641888900976000185746727564603145379377680231587295512490888564820094698644526010254210119384934445107753013528451131670829254380198160622614348478988322272398613563159264515141407404009664561525832145553660710553677823962312597625222646154799440457620331009381617753501260781384311638015106009675059121174073725941913045108039950847977839107988205558068160543044135928970455667310947499897775884987834376540647634311262569942198611007397515174168071439886583201386017374764493447712539625544593842402862537832162941672458106446896053334162505773796498696988695247115250493993494602739337232442237537260043409270014018932790829395169029077544560755736768548048393649865821638084265787040973685450499015416707884227697746891320485719680710633438463332567826096075758601854905048623417736296965608575767614691207060414889731626380030005932949027873930903305010498783213504343475094697880340206774060929725109816325658381594596190404291963082987880949455952672280106686771207340192913557063975152823323936894476430506496821449008420744310281549359669375629363736832563690766175688403916022130431863037640814684170467550761448937068268810887864896592379241704288374675899932072952251174310495245430057308446628266696362023026387624257543823610693528760115260339502278268254588586967929298603181833598937233048257156661855012277110984079132819876327039381008039707065577256049155456425982383882084839391888549353206977345510119320683283260887136337731257549484319127089677584492785635124160538085568977673845845893727005504008407311899213589410857213642644783594647983485947711635693214472123952081856804095439864259156980561927737260092021940502984355817127347740526072621828139887792730219048661875495592699361316211484377850413639199480268986788908045436020718775268187313089520765378537032705616088488220421315455967463127761532291715377746049235716182160344607022330362419822712631966360853764058952817953355671302757767050861326396182689182745706443604963475934667992883115783185331804683344957437253989472658351312606548217567619723389946101496054588928389075959996963859518428875516947107082433903575870652283355335701776911822870624017120008350821784592403237366458099664138663453227339013824772994704546739106008543885061659257716399145443872442926231164460623346937518833703942692004807056096452261776275826995009269516524943654557257533703539896131697696708040954997788520923665337195130393487012672724503678305679831423868093007543265016928595488556179014567546555790441930285113936682902574519310042109522637588681154873619343808153512565196537814519759119391403282243069097108639915329674254844258755695886806399267865626698810876077140029928957315500259184637854869760235968702757305458796059282888306977476591584816275672960750178256605155755316449333311869221817338119071960171577624143589255797687021297897523655383424703406543610932437908418036087700696173827673453217716659801455470556826242308357550902660468960427368862569528985228335900040223100147325844511772754275552069370983506059470818075959353028804932918318826389735990567895014194170740505998829143207671164382212468988061998031704398751320783279253585049412852112347582910016186667615908718492356702937717559723233937878378814186876305818742604398190243919093182934002085738178497893981544946129022701104322580137065606131993793013235555551989186227030566020183121819816627502923113433707383599039175889538606094341991329519188029476397875272784684510843748348593305231077113921170291994189419655969495464028984077674837168317376954693865015582660134894331485639410086826691263976307234951135624868853917531802222997649741906492141922430680762446224607096804285067936056647400391493196771645143203761610425474011194385598000719457796079617855585636436850374626989848026707336703844964466393611364298655695253114528827000562811780973571540771567972817974532867982789782578103187061279445012030434588846960010587132748436467260413271960024600515199101889411173431740416904330281007290447643167820257072965466864471759503919762091288494791795741715130795396098957982174376902148009025202482916538478567786774930310447032721843711486391551212027562344323769585319462615445152145401213418698384503862041989509809700638315589640890138135171744589411893988910472120356035938922417458957199150258857215371718305227866895666922589162758040709669783704107425442385745562923267551770327334790945525842786824647971728407672370169822366736347138603115171279563329975526462817607155283937339347176326154302207049004597108477690478453577677670613260515696701562168636498227811520783184756159608617012536765812853777390695937901265768155927985778595610249424384037769059481509752112443560717082897365566577278565885769540183979840908582058063018555254045236056696229798230290379551253885925236523622039729667644585034292218621806482125702661435913003823044806649789743690411228710437351954877825372266076146844298390887149782909445428365578048756311798411335769587339869405289105785749707198222997553872119093797197339882051938603223606885851111054871792893697869842189682717518143384901845089369835834690158625089194820427822953081208932622238733368855963998118727205529829283398252037097004851993373415421865827593606484224405589155144480157446303745021980146252865562971012132346626666052739734644696922234071705492983666247978677587470700287532621989299192454026316518137688572246560140096851135563470454082512807779756682416420473620307360287003527365104784110481365532944287375794842556319649762461933482500248611935977214562429974166711286217992459562095446701683098412719689675103950711441891268916839171717321591137678996697411371489477724931609660087506516207567217675259511209692021270130875607171236183940700151163856933777695564619921291533048566062718694222837330630988877474531334305150938840616425070350477881771494579065036451624424830773708998923019796490820468834743389302904568466567034607720971480083611975508816953618042653743171252433261205274378627152755211298720011787001712668456381511537000997277697435166784114658210958049045070025836916278715489089860274157417553396669416897360414885451031101717036619150477316627474198610945864187816162817829035256846041830108005799356252518484529141945862881736874647549298192062461583928157128052554365157837048533374277146236563388240967306841321768887356344973368465950862413697033053976265096820064043901598790848719677910351273960928502765630468140975723301687505705108020593054780627307128053368591228864804738731404944836249462670432037723312091695413720219279712930151649358637410193101996929147562872163296208036347278154265906848488638884180751185146342978700857557607728997635313167517041453515533063361567597726403101504321520781964891578390117782782760746441332375542089301429537250266550360265616420422809447654998561896446965434154421785695982921673135477740204016877776099750031534545494160799969574925796378201700969437613091538662592073407229276762079164385978598177427242550444575175541265281099719624714589700007408707499415498829549881141783529381803902898859632360935513437677888570843630682725997904132852403358577515194958405186233145714155243736681590001372357373348745614611881635366644989283572284968569279009555665287230588514271311726554063939417418161284297550094344445302649321829222663964660067892327625932736041068007962335833276107453991104503262075057473423827153424581463103160688903047325763960918803194533265382077692136935629653695153444225600116840913799635933853890371232987089666703161718567850636452931443020227731498087260650584499382821685605150405074024865566943558030511879530897484255653948926342007532922932306307953465175610276978633891806577574238427501986827756746827329043672067200161613511117928179543098759276776049833812453072336764741975027327158556997874151510954341059848175287588782364578596693467174285858106026641438412022447083773533765194961556148772684840947956739400622738928847212972607225150202821079583216710659916730215449232335706239170062128377536080728585695757511982293112738021829879208489721685534055665382529261533463765477206338686816339476981189075055878968430459880873686622977209017541086186361294172327380719842833811565779928596894733401601817893586727972834985645553904461536896376566443712079090584418279175505138210149625936397156392457807586466153684724092915065014030746783366231884732766784058273756875567857011511328818569193237457233255656317063813356478944056501743802749359732468917288893885460585193040463780771603395187312696833058349928352080575930645511669983975805611046525389764696658901202949335547676511270282727291578642981029506072501765201128473015091814816379168943324072181180777623626020410523131912879322333494387360342972092843989419515660950258594456890299868890225017747430449760037060940939736128678663944728431659267064818317229516925991029754234254867826445672691623564027039742375001641168256687273406323527530637504751290856756481524454480316100097285620463537111810346432245896153608063393427660741527705714149260004576032885564074650482531770671234610507695335095269554954627213208911130250816668027890411318394782430802965077821975391987562369421136221508239759399242467151658365491062467933153782426333578603279808405358095955952086142318385226890857269277563213617986544706925412174845585188639036637178828957455203561276366118100880646864689011203237217223835665326585482025964507406962499579253822641234477492291440125944798250518579631238052148882796051752751499222458393997553696755631350782471304789174008444649004170751823787381420531874523935453413368509064262026390588340126203493048030797998981832681848947780342409534635234854533033553128357452104598517719865808639123408121541622169810025745256722769024829619289015408812366053953270582584621106986015832011493751268506745948875014765923083704838672835275494444681619806510015051467148499550422867780921056796653680121220735044020658744560993271413826327356708642281109547422999801879513833519618710422344620960361426364046576955805867040189128498146333852038480858177571575575260553406357479729337099474046513047168374173099545754813201468013393521176306080250397040189207134954997279429603106903823907489055816137358528242625201702405066623744914763437197659287930869283631007750853763762536526297759085937850458631173573827693348958262053622306730265789372522388042251812983806055206418013610329640509859055663150431457958610855986323383892023704198826873086502404163533830230351699772836535673340029578561932807608337697100794838462123253296165818314154211366191191913346252324778683227002316989682450209747266729006038712803481861356691189787493831641648310393290027157330945878783387327134913434881790600471469305495869818229137089945372442495391085932292266035754451815568594022516672739608610796502736863363428775155034803128193147424495116993313017000202328508004052571474110768496176639989010997147325582708173344324957438024342276064545017677803501553758239030720028949543247638834329816708818230211367060399817679992209839875661050225777701367457463862220151748021493375352238542663619438117762798892237093651547330593544464825796953545650329608074585677318866999196923118635317947131835997310888194627896911526794045186293797362687414620960016469131951922611108759281494336991052226167894945229017102272509418299238798696370717687511193680845413644112720231803098216615069558010944177842277484525751932706071611161892149966475545727337716914896445274265833761455762566312011087843062817318338357752760220099271564531641025750848133447282440379024255026545026576170865429446469395006439426952443429426318710019026554169427235366099387134060420114759016557668082869004241452695470297090645062577102274829631625605805586702126256134980624763153193361706334579437231204165543749751732469523191592649430665203658938427913066003250129696612637677513230097807516431301066913233407891074675082660419435735140771210875450271491324213579454653388869616186344081962851701861752077867321305440487521023627115560176817478244954328141785850694618877626761488235859065112803479429088577186634769846745146905947373441857169966781812556794452905562334314746965245813227989664739393255825388736326152621528905010732500509810438272000167050822318080963022323424564901538733230269909221786398731700790855773922685341792497368851497320704180379262177243428719747818870571620896386325559288319467379520263889272992147882927399122495185038639219915990922123544814749656448796153563811909027852743306336173743339112706277749143505963585667867879905695025340926505811862291803414931621659022872415218812906128413885158503721945224846556537027890208953348308349678837278948444758110310768882759789483026801192417234457457262102506864874835050219403946580762589943151878250889321022262197597632850497933410397557521245235519267568693624488087112901834924581016169509126918036278936298318353228803050615711827202041249652113526046465591216475848206339422113018461178662594793727855472659677253001334110414742292943230727332128148786666852122927134290023819517224360087280014855585642449920721331586156485068055699320081489083172523121056195524587212178674024512899905680764579334707639964816960638607635568038957856421463096575086182663101082468884534081127123748365180408841731882204007748896213989035114645497643672988488211852436872473081917660887703883664270582162147789679921305185274128182183299694930842682671819327183110807065339200752334099707004344347342796714684956470413273385019165230817567498327214604977024143661101195768624030773842851150444990939523033277599006224818730749365311008672166506219318173775700293838609334797423535138829970983405555728234394469516590220841420885138245838992352125279253649378563443385351482305981575569597018751888588552397165962309269368109988848436897298698515357578176296528373043246232309810192949455395810942539559906010339577533023916023071596110521675778848079432112964578256941731090700339540078192185557896393215365537830233982507474519403143544312369998355911799555925743242873026240737843256541535018201557373002728853704824687574719589540270671438349871272264263696994430538393584255701488878001764141628282950200250279925404098711318477765507754271050788120974559082217028368020595032200861309370414196587993405366489392263867849728185164915863485393298873301726880455593838171938758994500318211636068083635491584364451456438557174675830923184346263954484100951235815923065184189462023751524119387683135412992126566720958679429950221758758224461250725170663969474466204535489392634738301091668106935469547207999613549663322192543748942050357066525035846865052841504749193639556431085662602595689260203501145083992024446013476319587600803328978372188292267851599316141119211929894922224909271379337810440217888223226886264937334935912406583299506866437382931034004682220589176738994467952094636899495181820132923834562852391276587031251951314516528872101362029892838997224393664285409826434999819813855254765751733015955505478192334616199114296607197070352274858997999043998048521298305336783405013485297831349120690957543284497658192265024543212670978570820146003811282209919561114361695735469483268688978738182985222949723995752686285396186414861182765121993420484701197138386042470766410589742165577809751006774675016850982303025737035592831647112185512216795855451228436251183654351243775016333185577746629815295738053059549174033491770982232493385807310386861208289825220698260060717778348070598553698782807915417502902956486338992340081091983276009131481612740211864926595163293706949768958119449598926010445161192060828749688740703949888702433277754732810450985235026428318419107050935286837557230987536640874604084628112124704835786273038995382600640205640056060073531439622491724017194575279486985143115630219275160499344992401794356191820333889862682105805347313025739123001566234328737792996610217404088379058016173423512284722774644450347581139306115975711224777715863873520412597650044417636849217249656091464284635555922162541923993046126651705134717726064730533318168045037178430788916124488660024260581226427469001573125737513249432920587433103431414862676494324017686540352999917302708766368839862552977333274796903708861373652628878211751253614464388125255026820470160178431831042790478008287815609918338672791218601452820730655057027412390597277495807502189167252011870298734912773486842020346487575217262440693220402400317369132097048994916982652932437646680215671139830497969841177003958887536831346271329301627115408962267985706327838417750722217343471741815512828456219198228406036140723535925261404096148228111487861443503011401686678453390793669944288408729592218465317710877319207701587899365187683585109962548210159095122939415896273553618077597588355061474199422517759878321135478331549007250858839049103941085274608933929183964613855238047503215259592334852031222540717314181701839531672436613949189778472833323366546610938873459367408327800558054764202387208672932305995772782622422984975228727189267857324892374571216225917411522297627210568895502728279696266992671981544907959113363878897595252733910633693480622549509562069458334693559957187848724071513175538738478778727129491192144788901849964812214137509744369951949456445649331898981852682877310841705670315974022490569410306968707163402604308528793776775271660923710647981861089108562133419888966625897158123710151913879542538585793800749329093396883393808910870771271254023303134562345553001335125585330347680079374615084853892326135251763228507063667863300825850582345289488011716793791670617622516989510664423262608873270402889341012190827685806043851813226857086849800564822833787507888238425037762623112997834472237045908674134760855292744777916171631906697252852612409854560883714868688894481308335145931007371710317102751326719952735184278126159280296650660253953520059726397004026352316493381471681490627007696364648461144559978313891967170779673295124758201783429023511856310749659705656549178069535255563102489277038207698911041088028898044673830373754492010518478012347595063808081676332862051056615238266657178529834774817840237497692728495112934328801863384078346208058363701436796123000079140193794146627711048236448804275997409656026664108135577819388557019532419228024063142713430068055776864609227027306103563012016700930174752820906796985988766474785656100753085320633543504105207850243592775147703200105264380288335722502976159406014937861683128154165034604327303237971580279504722545994112291719424920706867765986974032921014071349799549468200062124915987611828989036562450861178729737718836960702597757138071530938625673783510030150192714089944998163250988812961991729744152378613274259912470165047741734769207804938182681526005857325151067806907048400076271568005109746384334915681241161026588228829849897252481809448984201422216703438289885610417638710726213142711052021038159666410780074418151830333901448549886092298747857244878493005019178638326918596287418282303130938447242639077524331564296088676575829220887461265373149630757502467059113083404050515303705996199090777220492904750191045778237267711158073570808128394311805706399007065509393574255025136326734249868308074272196169052596833454660407142257510410458362549865522134457832501744791980945549332436052523133192722718130198724352248341852938139501953065564294776965780759905794281415367981662212188574090431043596383177330492653411752863014605640190074819989125364187146029915756622871662196392982184910551644133253558776417766159150758781323549016507822895901080245191449779123334970910764465451175201181842936435985816557668970735686108165945380599669283152850293258767975496525397586061972712001304403647654317980317741310565444296146106056432762034478630177628442702184734466681547643651228560570108464837536844969223526111175730996122553485633238830585391896923887227206209572609593790573534952707065786585534486470863218611966598274481955736786107086302141186857308937417534640880791436528929084421272181163862606639966598551719215339105231013342421266397376220025347633728461622962951916567695941424554507740724722953528026109630462433633543821029545160816261197548131130719757030236761596535895485250950190256628099816876198285437061422826658855327096278555671400124775344214835786825657295018343757393954882395928726714493227710964434483883399510708742660076675806591166348296685003041310715196025309563878457963981848529228282486846389093787177286882562643393350475833560584078372125430904958515369386225464200563784535571754088727789518170059567855098025624801044824036584538156801238578510270941661011715654434184082312881289775533804780888730788059363496268178969037168685452792515176819934048299406679570881148500832055985579885289000258107005307235190105387930168663251897589221922463380689594111175667347485628075294505914396525460886951522377731675551011123876816536104657800067031101686866004283362181165258446286449381769021038437411067053623003000331424587954451152914368820807070435117371156483636081320611081999958519388772428510445796562096899115874292956969330908085374341561716273822384878607664839368134100824735508033121504402461018720826834135413103597816565361957303904058311066309125891054352447350493111859495459282483598914667053079480183913586841594783881158319454915005155908175131417254548216170223477973369080637591241386577237387308638689181014460536657425947840140361324932516337357570344121219594071914524968450712308719724472491131625320110330273661271354071930999780357352364302098882206283960810181879320405426696023319915625503598504972314137391013857551399568806369920332840978288440119038736212503124097866976443497258318711596604871420390610028123802772123667305783154158814479827933429728390782718405706216095214218971936131913064139323878727261560990065714136831838401283721247990030703294683458362961264237385740271304885835250719022859367915144273570255115726156753250592959672627124851478857781898288722287566243397387999863153293060382603833474469106720227225138364700833538119451636793495418995912002795544831028698843084337094087413141470445293766469888656126720471405341329770290418416868330818570455843848178326741778186439038536224262464957978257293108973385778494753550191381138030383224549134740351628348546878717657172807645915884425505018778562072773160526308794521479155273496674645638422127576023215675388799802994587904652568256281253626597276619545102809540743825175277709548196083776336382611717647341813779658712604333503126371319727274412800070278940184584430831517294608635604771005050784005984669722038591569779191112962006774860653288398132591069545279610722592169843772228721442779870290463061544088473408324459123205348870800137663350011028526964321473526211053983354816407587885875901676773314111989410802806204791740186063521607574437601628769971482646608162111512597019751078430592780664519493927164329313931228850653935666960721002959596893076085451515535630649240531255220570991301575979869203354141201532721612067142981418170809795437052802642580014717073061921169728431705020568043085354783718061018722757339860606306175076466393199627360859467647952150716965466768634750121008952032782580491114550406414790186285004388889756330714797414607240947268387525618253481691022734897844667865854644232990074605224877897195509260203200328605866508328444109818598508272233349792786585232166812902360096224550304702905308191589755600128113421939437226398062782392425251443026160280975479215094351056511644528409335915660279863759994782148087040099584739115369415283108238376311739120168248390515402159988230352861134221750371166634699365176206914930374508151334545649912960515818091035663824601206205705902045447384182798296032141647370043068578910221967666638510383242094670766849307630022243030248777631917469197348334539134573241567006363910561558717605504260275127956572807081149610005995598311283020230131947282400761278703153836702267326455846776333115672934460806308694573485668533847028813746241318556801891541096798313037870340025849593926438924079871028867515823514561751188037062420173659687573207742986735715715079298082413851467087064158829251180771879251410611283934885027529918864095473376286355524426413975240611442019504373432255295975571852559295599450150057083775250926921406923469703234619489305833607207665939481228546822914299299808141698998166158995103839783169974790837080666138025394671732471735446186033431267622752441413029577975289875837561298018345011366748740375003025676037786466004596934155512846773412387186316157238826120833405234792457316251404065118743062507468204821626269765369005628979267591474553249956836151796119452443706222087646048978378558266440945856569215649032256750760627805469885444241783694539285680708786421272145007153924402442882248068826978253429467928438503731224373485569794269399370807722321470764407923035029978939195615976991236465160556754575902220463358319071939072863579897937960167483816432168049508025329627640294467956348395714931432400724966081198170747502759736236884004019936179027833500154330190132737561651010135244635450407154198148366813428507269002179299335405891843280777640398975618415854248998475063295109587194668052228168586484524578593680440102522132068755300124056290843470155358131420070774783241158221169982368787892482036752957433453348783951951332565096760113435729060923212418980237874902332008837359339886715324238157622321768880917618511741423234511185119819589511885202374230464399836708527249353250078337832795593085568679549972272255150919460779916825163996437979815842834365507453607202246132990314931809875549135653564047826604021654647951679911332286244917647061589852745909781914193853485936278830980482288089376896257607305442058411503663650018274407999187284188314255487976554829828560151892523940874256764817876759259599135449801458190662116142448673221522336298028581546985516249239693499273175422621334687569419431228284754966399487789347389908031390025879230396555198428158377088241736150982936042661719101244876580223818046170743204382867105077332332891831355587361528860276332255609396307737965822137750088752534687393864422240929235365780549264242206770954307754696760303509441594698395268715012814134301757891540108820490573759151621225216652962177467329016530733338842858099814064212867665581081129357317571502250373294267588004187350919278118144980103557517560850376552188432997208270467341619641745128809053644677575079005090354410295919623443967995027876251694827186454181474000765544213603849718703963059697609082470478238347513438843139480288325361362219649843330068440417678216668956279240244880306790255124851696615580986280056326173221723710774151707510170829643257382455268708253762151709409080065406702554348597528512624820380742511846305658740983949020574026601449320079249659035285282464722824972508055063805210750728085104694052001540945667239652042590452243987339577449675113019007131810212581039261447511554311884662707760849323708822585484550859659930828252126831317426752837492324296249171287686895709557691081610311672976863959141577629820080718641741667997636037144900393617873003619098316949817451998751212008712616820482879350228401984334584870112394275150283410119908076986349574970426662008226102694762236278842470928406319857687928072754288815558563416712111744704763158454257663103375765523035574717494845918719249614505453811476400380730743526210448530097488779319544095388654722205583723505125157011086755779980338577682277285923587307614295174025738952785733396657102139641548592598564213677523314816771290121670867786874814492464123629041647773833663843261631715350682422842684465338311840109075963270337575399903877765032113471032422597541791917174885117322089491612866153651601499726956188211428112132598650231185220282623297940120939370524144464992598620532468034413666716543384405437619535686191507027119647389021725825968986680383344033025755847129069914405679487105501376956138947883031047968252284799571905276760907817518804533200709790686555900187756597089306341419293046394821428154484520562948901751344494079733521324607653695285265488469201945128305994280553082106918421784662432016447061517119376949855325912870806531203732449899466853590655937190053519790312868246418348688287402575814621723417588558106312629771669969595222683479900539026870817379137746664939289783247668009206233180421628198249791958808429076407431933211238753924209914759139019477747419046944211405351233709920665776457150683912714142461711990388625804852562754134858084336299420739393606849924556670098609438912743396258075749964796810460415103582538400813114688380690318363894854738267630304731516288518418801231978458609107605270806526749363595365049456609330646576017888603784288829132422485741486926661218339484118162773225918855657026331251382169292620399009958711823526586638325771555936878107328744551837876453398600734229169975087724709330092156591197786695415382770154251150462395027095618465933451253692715548831098183529129964684223670987528815537487524284069423172855494437339946475013087895982715485068182186097966838126705670766238750717923162948878175223056811742602476470299196732269134612868449416180610554920956447732690019124212090134605847990669442004477725356898762966160008518190301620170046898608123724037625290597740546787924166867798525099197721616213163365238087257873564614337633453629505148806448810729100610767661022192113756037462732759273516964079440399945176735299960718822323936274949103533882799672256926034709393348887975728079723603316949782753617945701679758266998705517345103980296571366759942677086424132825815142519003615357947622545356989435807929607909548946020175640872732340184846654478350530825646196354314055057290213902292691965224263771133256018401746184058743177380867497690706006902290022855770885651266832492998133744692788435743645383639919888084567425279618859901911099498152083824351549219680321161020645435882182477666926558447473280545864629593949537195151510116363020051733105267398653852234104357401188098652408105184089585082577905816238361148059996541402213366978886837201738326965237231645925477395869673398603328116458214731297792313293941014792096980410294470383990664228028513967811622756756913124701169532639886763180714226027116603240870066174943223087804975443122426676120045831947309699554441313682341903708821722965971914812414881478485468182633320786844247846694491342361796826593067454335957158106026241470096198038888704426769384489906937330698506963875974229687543965513785635894669525761118460583935496428795180975106175356539414096112657409317940547271776717180452020650326164123424632135420748223116750231582014332315549235149420723352665425554422560533002086681510967506576116194158792120078393891653044934759133476679954086859744688746733662279084148450856396926480022006109819315781276157998441601902174595356915859500588047611576626693814513546273764767028058475875856078915018602182511119663460335487021181645732773574861874785614143502870726535449135855967370806713904989703082160053227285294673062790510587689607134049205147387256635973212468961870288386578414895614221087039778990877323566621312995566251255217260367320297714873344292888066779909613912207775239797928134821502835802709689044083100192663960075646567561689520639576683017778729082441985348042539082711237749090135903457619979796045504674573503934320630048263653751444872013285390704962272860810028281193226065296165246008913653360092259039980911108477995431228096000295554207546672769449868248337006429258657826362674631895428790525026661892173978615124843395411974280255338712398772536370834969648966385469947079742535159631611974317000882594415454012606118556974728484512332866514144947965506728364929522545564552106310867413274723493268342177888928164619444160749005438116710165512276570600893447025403468298952613684375313135411539666213587236214550627410079461267993909137141318431703128224083200018868797453425674056348643270426118129347916265977494595516358162386726771879827000590192820448613555888414722699782294437173065410959502855921158245272694706184979612471117440993678503551710927378379257913427958832144441597982184071090991385102835396467424858336795509357889119598718228736914942045854721199946991805209239854517182721775830652362436905974490095879507964760480912754844703140082115473190947144685814083189430003099821526166884036050084605233101956624825652444190853447552353688290392836678846765643363183491642553210553423496905658714312986088513953005114101306655541576036600122188038045548478560911779849961740708700268430963228592278624410778906615772549060744356503250441832888400951746675326235092616453648735380647743389982502445498556395912720668878778540260548335154046210209228047052533778172395493192518279050036728620857434274361832108342663441150876681974920671742675685718029329965295898833730844016778662037674386184592051597236155727674855445458855801253734931116321015657502740764795914857891435983669251212958085889932354714114550915386476596615880034150793313861097991319830147952138115022252899003603079608482450541113610578703818687510177472749164942306407655991114074530284750964738952898664118627932896384367747702013654313464126522973437630491708831952506390540961327604616360759113066781761949138570698791299538619748772442229355331980032757077344801634905239773304506658499257645406173566454410782846490978005547082081400413508979329560063997330944290725480265161634413467244670333596836929838042781637620951252013233280493502123090810687252433687724475579530417363754805426853702767734078082570962660702960132677240924112162044945764003433189784066612001558953868938085092009427168246566459710613169982768037716307716306981833085173575470562584682856966414453243541158613574640679681551988194240008333978766757806269229266865285643404156208330405979797176114699410841312968339206289193192814696565924525047784912564505518778249823664399847257189290727873172754215373057956334461318370433105227917648003117751788679929261833544154258913699969936699183104134414681992189893673606457187120269882318013196570193600818091765219746297575882931548083077736769689155712194062328905788739352223592591463354948602584551928108995687528009506987752913025590930393695359379624713080385758883562321487523214396704470008581663876991496071426738203788815312114773357640377804379728718106114978652426708903380193772607947652217625475962890457831248266575673076097168814048407324741731861200300887017223298155862388949926643608625341431447355433904204461118806873238304247401704834964325303601636773509511030388187114541945133864314640806380902853174927104706270186973078023490714858426580532283326976171539098104960977717024590331979436698652391533043686570384699320122885120971607270201833529946666911939527534720515721861134136739729928768042010813098252896293735062137800518108854955070985575535469079546954037807117458851194104014371884507539865150253423279893629104332353383957927265802779467996844225944382548749028185569899376686365039707023708547619029841079212722660610528196896697406698434069763975737010513775489318661714857027478833820330405878727102553316074281690066786127590082914835710065823853815333163634604865035626774575459096323407854191299910623614967582186192813462210345844705176880476079048965937479704100112340233720092726124712620693060039517669186009308888345384906986843713996646335676230977113933833853738353947853200581783233174916378883482042722572374453660404951610149534916740133831997054022885737746351781546430816165412432554634130237961061056694054927360825134845680698446097023596642473616307605625155373403588713188139989287961364471287301462006253319844560916821698160069908065072276458354010146605240794091786363384836963002720013751602627676468920993603154959365575666054493178068223670935779037814889761393455233056516965860718491751503845349918888245201034608753657742794359523581643450420911696016622183025626115557117679811279529789582896125284929773390912883422878139118976062466136127697239144841018450845522739904808157685409009797462665823964515629612346148068638116940801295491568397367307551644949175754178748097524515291673221297143606417595041760550516604250828750681907418420860327821917522589596856257627777287442619985690712555797654491892731811855341361568058068524618933814120173403670624610251735203739328339684708784063139622812953197295371175374677410899715179831860053426959786078077031920349344702113449425582752072545012025042037196828645256761001183920486712761075225961697727683984931985587663986814440144610076346161392200397292555225843310126559628129072430981351503304991195785247100973061305164683489224207740537478668941554611595833858216750235704264863607290388305199652969460253543274090789153888415849753221034095188311823466385548164732363678081699906433731235498529180864183503934371498967824356138099378789650742546690413136971175837194889326516439338309360243645291976155356003076925474380485368523241791561393090945134065685627455470830584793691098258652554725795419155107116666524178576223690731587243072604591123599025268184080676199655087916751329156775672524683539177876835501306866095113770138940382965847803460998806506905823558871172159122981493369716471280772933989914753401463829135988299141526055652591509676494974201408755484883560971051116333786896662417275039565723015873954718847317942330181237602807618450472599968180409099708783100800486794032354192188443206241570163974596233903787869983997835977442734733351612411145829453693597077760175423228062058318928291552886084548811054696704768312834283892847928902043088224105707808734501015693961934686452409265849367964563318085676423152517899554932888981907105876316963179906822191516066149445040376308060400162623448464456500101032859574589286245544998497734757880571789002864716891011252565819497996196576375600234615362259700274474424925624108245514866600673141762691303732362962159461947152465513879923072515212282671426243304823815747034512405443589230486931730358190366200618283212284099373362961874913626167516629583130308434278364427916326399861884597835390986096316999193420573119410576825463006560281566874276060513987575041747411499867728794531017605861175788204869351611246938131975669302267072581874062912901693720685939618627858558878358771305721806520421322667552300867160270040113381081871636672723265755719057799193989357104311103185964007460063847077805668474959222253010603469834680145756654761780887966691035187949468577867297120683149847707651776289620621339982403113915086948797266436796436607406766842470498617013754810984626870439270866026509348516466705922566580645295905603621565305031622079833952086579141071946288847697800212596977252163330336194452444155733692928732942159770781676302870944075726316025711116334095838385683867919389855410285891376119768735564714883632227913303978977058361741988134629985341959575083332281148538592923332549818687070591425207797397534547111583632964408784712978511032577931808749323154636665781894984985997033117639667832098042115791157342120479952928077355589346093415734606899140545312302023202719088111576866024296005624974042316296943382175603601500170537503590450563692877807205599376358208957833774265915023908637836441898741274720171874054804343555263852910180268903492530567851131615751737275658050155109707573594695214717764426130772294524848131232456141667473524341996541717369982881645067222148166924637792387682538985277269563166405377172323624795035896923872178536465419963932055517985205075784638114577111440235698162778610947578423955635198946740445054728712565081204500713711613316122485381380552121572162324446672382914270632691507149844453067631156265142116322404661922784446948375350173048647796797863232165581541659252822799688564966803214265097525168178201352230571915667229755475394008159550622673558068764662584148644678689413682006675684387365493895192086370900134668640696996412913904984426009995042564935025820885008641413330553518325282445545525109853693998678147185980710542779187681480727883511216672478813769390452968378261492103224158174481783828743110166502387841876805067228500438012377445230128383394204084416641861933486341972483291346163321287383013657019634326202101953093494735100990019346134853523796361541124959592511942840385461950003281700564906798771706910084174402900538316412965212225717951005149022792638672759793798746297011700285267963986828735194254042042359469853338855078528062357419425702100080435082211837938913035719046206358321281787410354535351390708534498981479249399799499843412226833402238468770863756817531111560085112789683948370643996095959700784350185688725793532665235897119328108775921160033449664863531660962938057778814966083128861853379812454500166017718597805776135294007360062063139872433252328131340131576370230555262965503196377092235890363193604113471142749090551003301483151988616069677135464335924967756075649642692797230747872918145010261707130047326964125940789071982797985269362141827859217467541347514385621019827857413029136889611439554182283732035757135624343273254318246656074078313977768785193883379022777762351708389084996312174644720583295617991926006413817839551408810399991137030139514720654462082857866905365290613814176751480161630098181980762691399761971838608860077787667010487068555284848596568564553499748054671037049151680601707957934527034804981299820790329842545390840541914843986666284664709612459571286081805417869256985511250985236519646513886974711300606083015376150020747784437123525033781435179152869644444292374528687647636555014012764347654913683964371865244681020334177821129927330444247482043022008529749403983283613543547685896883736672795284160668490932353625910414241984528944140345592581675885206839046119336517587929661852816056409788853642068194207011344618778031791832687016000699217462498520189502254512491440432139692619324194107007150467204388387872491904388383503218268212941683426536566539334936130983505755182478182443221508198049143323480422765764526267095022240654057360348360885950095474974788499054985121341358198003198047951240637234528425704435338602792400757887057939004562104543028202155356781349042925282148621189576293419091789368532445330472526608075191293125968546084597806715895190439876185462646073443114908440268043885264835251523047068095825508660244684178272923119076655817810014292708070045228579970171705040426656117383679576897674292791640763893299640189338281513190620331617716593870524308206120212908840920178972973262529754424117937552991274770422225549407908959306875326553805895387447451955605345303756571813901855212376477457905236102870989542248278016311870080215022129588936496472321532962222552767205677875597055993992841486711644773583414055356376975286645885980626224352254487724021138422707922083842559538477479980679264220923537571405424719648140237186243038109274648728649442849758568861286525005377598979715281862655894174549778876552196619211356143145054682346396667614314030496044450663049554476569159693758715675542794048609127750900499041540038682008863588198483002473005306949224953718674259771715905862201734358088964153643441966059659114057215934594156012609127729776452894465045960297642294870277623293771781293664021395647374361812766256133762131894578231572046136558569763701394722532615041011986872587002441311855937101889658396803975777681507101166743982253301854877395017113897776001644352392019526102655529285009603932784454671209583448374646750522089274149823711311829152135901532222586116663717455631350656279019268438502919164003106005979139650009533032174017863868021579779141474989196168050355945107267051877143092221736979314045915321285924405752083848728186469743765044805183488536173958333558609214207523908931186852235726890228460554198918356148156154678028315221450414650109300842914686471576696176089403038364144074442281069220059571846777374954239978931000636603768109262880646940437300854045418331742283700378109265672540951931952132987245612426208277581943916875793757149959600242092334019079531008632273663404369882776905302442706185995479689583022901752228277806497159114474641894269267422042179699696947127605125792605833283874176609839462918593462478826152162166189363184255936949746457788694264544419436593641947957097992377605586246731022641717463550748755658408532796176102067750472494774749250895289501138770770436487853081852564946834700533865108747312011434365858272016903948318962661903458516546566859707790113606999045907475968100235958521910385769610224254020926718265442807801631205916943114731340968319374292366851832976335864641408266044085639436638507545828756602611743634628485066108777585601621193623551440577117471522864053738606906125351935522598635209686548796479349643308895603723298706402883601681186647783419261122806385511374135653764005433312017235592255893844928997013872024140536777518527936918523575319416226879722970160449589341926798435211266900444360412678157007911348585156343702569780040025331471497710628941906024557626312022136200687672674026914420949837144981022978933629737820293115418356865807507517213152043756617028847069077068287190214182989268502531173633676523255890091177618700180103422245522154497758994270950571782804107369791417877538730277359439245257556885536439568980274157217218170394279875332902226199244329599502820261846189054270693011964880590781188641128151302184512387381680697585954232842174733235123476877058716240134719922944100456477629090673081937365248319230324003408041032918826118786737242280441387073145305634746886625791379378255140657855261849590782734014855705742485523869624504295078367256244078210055894120583006692492134648055917248032607456688026259714938398723196276122545884536509757361120056968700636677942648369616239309173887030340699025230124461875588818353667753215406635608213440207286793488262396447287190212386190962811283041091682307593654987334181936642813000475162737719619608138838749641848909661372521563394986359323333070342121251565699279624579219632482640750176589814410121550898585162762156612939014821498759968483619367310660532515208847900803289279695226527549406380043416615679765075794833773676089008592538122070652719208272245645443994104578524982015569879284810950140824999566086894188693778709967536226038793346170487563120073376750524012093776647094088129424634321658062037426317396202338941956028993846908623741127979693936295020437422884563837601542215924184749359206622260687496621184958658153130465613443096023626934392071358923689826029332830466874839722448537619945994586287299228312923000635748040663831630370862761465779929089516842290623666961126325292419534663453762184820184062773062753555953685189491819683406632638156536653280373314138896462592221271687698004492170704969581027412829061991193008655657283378935650683898722641651910374002464526268030647043511396445673130529896084370228392659057231512451900632563389421753213236187951090238003401310459151661366974056229978732333123389618267661873282060581119842988606480411179335907472337424016684315024273800071003107112739757314668903968144309663196728379895149274146141013110368840488852130504016004380377691914715488176611278152126410988798435767961463245546482728664768983316950173919016270644535005639731072637154732818305559088612553443310126140956568562416524825754817653516054434631389757605790885503016339066635949571553730478047569744060919556210139250433398770020120567375039873117785628370056898791443467689886086980316211169940764805601804832960361673846706145791959343132628927024224633695845102794037656797304682460724404527912773303462420261183659645806077772126038134310203696506218399525243434559936263008488991712067140140016822295546462809440422536620942370951027421217707710509155219060992392912628685132244379272690944975766412833329346036949846322047320397292549918207648048899506553841050969090896021129136090158458416164078014934356111141809381204272998143654494420803687668927653108520739999163503669233165503477786767768172336278141304517378795436130307360415092009651532396201370894086797025278925864141199234108065337594399824449455161425579340748724801846028801153957447216744539943921442015597786220213076308584631230064239412325282905262055767486724687420547760071967856556707954982616725782397930872862949104970310403473337473849520878794484689790842315469074618920035459474093511647774250118070175040803807365001814433040503981611331316647181311490833436152377323946798367163148326337803704941803386868420217707007422063172429479355131304853498686153894483867573446123639970539024866855659293974220278223061706698569451651715680839001407379315607955558249299781157136189135401629827245406172744682324429272106364072560206279528817853094600355282880369699189949532742106222810869977090040303954701177647191115520729953715804168716177934949801225758253745594446872593613344366571646504914847089830087752540302043104627061991366922163194392520337847304481136489295788115594433000601791265464557782579932563757314984341918500342007100268096112960895519852898052286695188048057376411227228709500877950048112332215102176880332974666898129259155105954452594344852441789344567620514965946685382593310887806507364571737319764414374694154108148347788663143205907384792145274368299084225850197342367933027155341107029035185815040089881526504538887503524361045854555949454541511284032845223250897348455213027812081782095282898296678005783975278902124898880732626770289589615998305626220340444068263011374543197193084108273161267938916621415062514832637595166306537638566259230504819632872266921720874645871968977622244470752306493864949934460377484915314014440178801994407969050794544998437634331774095800351175161046356929297428373114569743517963644143742999478666962162082764480641814063783448579504908884633177148009417756086317075261544437477958969123679955145836791005730961526708199445225462313315104997440415986869923087987186436028818941136734377673102173935848587751082421157990382366384811626037395059357485658163925456306613944828791664659868358653429474921533907048842103924008256243319594610920888571568224499553801469780328621406167580937110795059433558322355706293325814317727438516156360525335705050678118407037464946112322892426411550707907971191819871164312631929967425924196870967270713638074260576333156389331299150381888382285228280416428917159248389315698174579124067197133589918761911685601316852416932469558734117907752278853198699496875330096197284590846248382176872726133992112958064023702997612414685604500405440749522231579740917061577556699060088729844714073056963930731149755863691999868986497605792062067075261708567870777736202911060632005443800554194445585288399548800279834156240861970455106479535486952833619617855996448758837305568302970384096195452910806803720580383431874503541675949025561592667014797989816498116020982620424137466807915084064664267480607473127995882406332554936505848949888811144870993660593816214831052547213795408212988713793211835173306581479094620064990225681624575590439396760690030577561851836120549231151681218078725237169789716240083292370800199996861300804724823553442518553370316048290328609082658263594738386619468192934463661171185041554732664909164161959649290704534614884835734093266308571976119089033847570768628159637930384650772943886979794134459670453003908276464693183845479252918545234295517697644991574162094562700196635851015470063461606664241891831554981088551578351629043485166866723863506242201415460701728036885650045366705371249463854540865890653541058403965006441369221341599254867426358479067532559319815058157932619052048091846442897404403423191037729569344349104189685105610611379789793775969498994019478657749683379329404413196389348243025516358906989388468119244299780795933911393724605725348334930034798370753044993547447061798199014817148900539151797852643464515364495421013720725559707202603788966535733066736219836515405555903260514933670574250725382579932719029583468098927964101395833069987029808836229427473851364545745755774492312325235459957463803321287011718819666390318960736732888784191481662332326495658152778435357051973981270560449840577888606557906183258547882091147992369256946079443527373170807603876876236787450720002429772686273468753469619190152828664961229916964399676822111487444240225947519747228070687718160058299525435360207692682698008824063265105816447587919619825915468706465246881537833816564930387323218910422139210805390753020661946849515600112058251871796812490637333817143618895685627226901249107680261613645456510467012768397555586830555668232982734467737971605411595404345392614725547433107424986487826224630330377586421541135870489348222545583459230591334367731153982674088582415508792188944675062294602615206807007793904738123687105785836084336727738260303080920506629025623570950197208454541655482811506458960100800542485332518192264639935149303987506423643496891375313207647806465848291803894993453604877168820404091115912946872569686678205430003974142278027748511755609227711356678310829510033288041517180773959592672044628912427236743255441829733198984383134055805868430658339681282620710629682612063492436711398893624326241534188959716050398110857313604091898405043794954425624443533119512029647549858030013685048038561725342105570615635689732750698106651258022173902569549176986914429170968277737821135401478523248360974860665795948838625623575444734614367218115167103857382301122745225733335655527271289293106909290938938849269649985385245561802407401894872426787414642917814736554911137838943580857194442722789186742322072954271141883927834955209820643904100440696549183933446371589716172886742821541331479838721705345869826686397874708577845877719177710737294508790366462299950318997314392367470783232621041250921563591481304451443533661257652518891105492649445766294012702919817414712394997986972699295749142770399103155640884921345310755380237239965983317510478210620667732800813029828856559082140489307578225036901755166765256611328707140227809162615220518194304707476639434998961102068627652204883688173052334189786176715423260351961575526135321401290424079422394561570676072253156657403705785530774219575500236087342529653799519387178896530831839880066799327564525801142503209842761658924032961720400188839941931000184011967066904323236244632334769347574862432962127177559184459392304278759590459488303931214547517531367473186172498170759471873802161602915633521129669870930851698757045566754471553332067782667631913525500915430708874325151943887769949612601335471988318764822671933112629296936001569694713361934637464781300939375540655836604846884399777801396938661480865077269390564977920535955892579754279693045979983471233627105956511170494780179275711798528267695255755740029236951085808165513127630666334188442099321521582408089790357168427414466855550515883997352523334468506680040007567684846934075041771223492685629423363891327210924941451753982228687800116740616308111420764500903247043546169710299324993562503647347819545546593701155911233730527796508261009397955228691896588139570480877724208208341941309780769504282970207713240558576083822493628349912640700481128428590861448361680722934028325508703441890038168471504952794542159996073186217276615570229761526369546727760421909812762914343551456819342513803520541622527692792933288382876939766661845734069598125233633658935311291037517837818258324075108690175847661105981855127744686324862180345620841719757987585516286605643676092098092007186927598664159788315121272257743996147079730081954443101708793772740796261879172795378407172464061047776557633008618389532626480673676266548473867740518500767079411070817663270407882539670966093927503174835571331152482810963493104780384843729243328426343075239712438021593310683210566393012671081001277380513525026259077680200741763936036098059239707772659258632118090873603782366303021816629726821782516971503026458192921272208514422953854509239282844972574353643318790628269167529456699606437380911654484967899593567464892507215853952477381616891521078734772296530446508149057429443236795079461101772312004372354161428791840183121873619427340122569751028723493284933453896437008046645005334794348978692852111470944498703654964838674499700847254048679268915099139746581203631202017665492709410832235628767107508856436909312298499356641505930424341660691926866113242779033590491944109265775097404222184421024546857628557414755709627205280489857920413374289979710617287304256065040303246808090253180821216938670222704467603809907181674082981064702917013585915011040346072312312445592720380801598095498025714796542066720788456285119006784097080632084660209757572831395411617404362280622599847658021718523728719604225193996046699624952533135576613557952553471938221839983136198036057088819193301859100298592642059924627257063780658869095827054765660961059872178662908384518570409270168369380401111453592471398499524439087912367831258182829553391890633769822283053618976465820132422879076777294823598500375538852494165968664079590712720469603480321520604057561800320391648108557329838288722014851480116368768063297564243052892761970809481070894743522270105259746925031224020312817762035739982431930894255392907045992442716539716867002441019885540635132469936982287960729455785330035799608405318965468253930967765178509005655835851711442494833522870900975394807397407168991409843173072676117126076818633620828882214145492195115916364663718187766423665964579984635398716058463286475179693757104229604716365627501045582745519728605582183558551084708762035916509334559737055338148729206942508784112239280548505867033847609256038219448721927097224076020821265754301374218845098619527337237084345675059931767007140799274667110408491729631090808119558580098290902589405357004718698523549002102526415223484730355020589308781423084996358961546751364488078865120982863703621422961502947433720682603400013931530261795348560787899224509023684293536364041618542813786859607358369686843723239428353859392612925132554500981047556499930940363949239067244595901887532190907052949281792262148406764323781962821447588723050049734910148685443674242949549054318082432342241331913703236283737601051030166265078650533757859217347700777697555729177060385791953388931373265433248706116837319466185195958965165338793061388368554765710262727036515757510930956312590753501920324215144614487337113341816804033241298519387656007949192675437936006989035085740280401828658006847698097039228876724578090664291356658149404300744368101631198591561231243877959301020713369904941822326688859658463057719680568155188046468631117909949709001378449164301384721099350209783269603519759942310754257731602110741761740412717688091094115249453042170475744932324008065723671356014562138632051745878510854359722857291575630610210887115131996769610191861160915139349476619970890269084408605326588167883140245633753901932036431669591585162249046444000744331968440448052419588191418890768716920359248187986293618532490762932573815972447488904661191591645813838129835238415747832456686945131961421152035883193884633929230545565510383795651697928348361544447136289116756985378636139724883213436867519297993527480820696157670168678496856897987074396024767990171602712632257557171426457429742204854679614985179653990808731286800280187447567890594755879246390807983222143190765625891116385068142156261049721721988122352880932998516637466097504638623228267012705595383101359573888403508760894090672013898168691291599904311552588209511568862346118217199233288748724213481312445064188329146133216018361001905756055414853710775930227149848004682227827203143395832465000534427814981016232205814455453450180636672567633616790675743383592098466511697301250615682169880184606595141385326829304995254263727342916438155029820012766768681587414800006052144903752964301361401584895617881760939276343054963225095723689139770058386631142700614883927260448563604580602303410957683181927906556934798904538449960954873477936911476486167280339660520460029648665527038629580489473888308465212179976096722420665219308286956675145009636476321834600471419793345111198514022027523560335481439845695550012385095713290972685281030495058165776261992084749517853408380050258628780952106902809268721167367822945704443092725458513219262661382704932286204181084878805797749504738282494010149955116918724725351176137085202954260500551562363034229979383419373097061342007254642769293667287792413178073320157169247998396851985576228143029800455788250726676186351027822042923208390596172418863350102404926013071890092289100861644129807579973900572719518974834872682092370953311123179363061969124732375720182038666671405486709853999027872910160029961295451733866890358933882507993178733368481832798452760950251429959721755677861289580499313902497617374417350701614871407028971499623401802854388289258781353543235712310869195863615831543664169521816427667333909553817421938549920328806307247599685001934008365034011516492274800046422452983186886684091017368724731088962937541589510968467967637462101489676476416444140848723422814860690293243490561532840066003862453768142367478208528619088582421917133248683922580984294141978475246703614229203908346744914683054546429905845046228553637923118052880604831806335129361321614853224391329317596706471190271984518722129845916812037582993765568206776156891622340236381081269580050355662860691075730882809703281969836128716635447610002008603383836125255475810675576772449480845467937007064479546905160347719563852804586877385553489894408684896994292382234308138123613637010433554195108831028525115019430056432009326781356795407311946050352963925363813474950228561785052096570726035400096720273518760764526496170206053425589011414421996909134919425911201040812129576812672135437539579620842597170197722124793055510118198558628808388242340417605747618311884620142819660966094134429536970131293933069223758725048427258343638289159550658514045383873946540503687358099897818839944752831550675625206805547950873260895248828301996489606477014081816236317662328241336786653516584818667870676240264041661393179753989395206164832861264184924087942702780214302104829693675946826789263187858759419599614080806244481889893434206242948087427024941674988013810587275053522073818253773917020023291331689230516870525948796264887435582002704863806887783443419925125520011125125166990120083884524383966587813294722802957875798323013273318160348973810949627823923019862465573069365404590755386642481380691474771507577660134094271108119552288734046407010655590396691915842071692957956129637047564795062247269137473986639241317264951401614704749954593413944014909814155197303518875688448815661814550982631138456121683302805059298264023288528955922895988300306801855786233046183268997042706143204623209386029193000457063604037167150955241942881400601930218254560226138982830140099974181374883248287862571124740996527255069371797898550753469270283117855143671280597656489077485353403108297363359329669443916375854966077501621256061358572628275281079039348642668212981859029394904093359970680602531546594405117892090115408748400288222019940804348027746630791777560023316795851622134183909028938991669174436929792515292858461926735045617463740451473483676169769675027045109305000120029390660552814208901421769526058663599710899746968579465604046216503715931237109691613250872577875095324936761169468535615941487491857871433978540508150867750587619418070457189867803191840226113790291158255957161716476024915417346851050324406657973572919252198399658816905339137034045955377684712785280479649783351575885119389016331096538294236588005177256634142015933757513113414713912609168572064072035873491389887898005789504470810759075225991803281902320919273970483976484772521038914013476140323464787946409902946776531203965664800190091643803580154565176658216415323464178550517672157895819983300385195833404244773291082144358686980163987058003943243403308264529254810544406739751255565780635095876260599227191666901690250382775058671413755951939991749565641641283962351021407434291681059314255991452028913146897460763127507169061125854595052628895981997443434296747643581781782768579327603113331166734135680122448176447260254232783928719398067240270112841892948354178484442473600897158233264601064556150449612289376127055031924087622843944340691583391279057218463796254939840957324090345359649678530835797529861603346632650676331465050552019429303234526743656817719271609483286495598637027788772280343359903652219710996233529108498473095554947890715557361193099462707089668324848169034293991653922485839466697184715719317462573054574530847984051689587556520059903011417430696564929662970689975564417336721809259290786784847542865686258681892817683229665070802314831406191608222097274827828102962638601825775449842149152963876924226574257352946510471319590884177971412776004239545129979650368384947583142965051420386753322954712275789029749917287256637575855827485278973926778039381915558826624826972085292596019411657661170580388843049713047051414709694848188473755031435162639846996418341996968325946885136044449665737631096931820079386326400615672324794930697426284380109487168701527302670111344311624899951633423138840948328436833733949255753470329792175554369590303092343815865432183666106672043501142880457192136681296490682687942311769246051999187184161593318876005978595687220059157873469587604059001992991108039657257171428669628774767507044271733311272374540065636466914178880179122426480227535674601882339704729095647401204803645939583885377755729290802695477578485423188290183551033032866586305675983754260477757084550482831704279341825708366941448319392950562993693310797945502147732822987030317225261475048499650700238089938120215608911962306712885088938287301636034946465876142404261368201981858185129103604385470479150504456763810181396391920098124062810430503528339659532898981798132554752473205007347053862502678336533312399940021324627406008721915985876773224395667687178467794245797501950118312563487218693702967337891024789048404305041011219439889371036240507313904638030548739313085540033299888052710655819976145063364203436819664268353193598939733693249710124988027264789854463638274741274779841980568711693922193867788734533564186854557284045279912621201206874603185646330746737455292000204684253463511951597709972075041100423402248675876924789221730292275453628752410128887754539679341431885722696436889202909789257104091960549797159390133330996899796881121818949991834879089874591403088746660911583389089007868934972602861145270066141185669135029738257348538347703964141388577500779300355463927105463745878235281978714668049516930560766001017957673396348288113822187257939094221743184384086376526644664467310080901483620023674130377665328359647227094011162026150599554937617748540561493019618281468944410620676757480463626250568199365835092400232162407087655319895680600334030553049937841011436259836301998765318139699448983278160650984146329427799231914742308286915582625391283654289358135078976617739032683114201216893010097576132724527245805068149031173862128722654123547974458808902550285246392679392195607193811688331051122214456899156886530410999667134336541238192048715678271285168158310907559227238354629132062387802115429840961022680305660976441287861834155852169334202643469141484968856261106396511042815300193579047279264824040505272703751438299538281348593376870192792064178716093256788895564678055250016205036213467204124129454612318333863614709778743645082798578327651581758003126644351011009092520880267971292216826400021197495045284029162208294731040589823709155019784087798181045395099685078743377882340243903620067680650556554574629829433447236425086520954271379238811862006416172827660022833816813862947104171411043424812011063463339047298951154602391894029508686784128386934511772471262691078692949890492275238530080995278334577330431845456760544727071753561383912086636910730907942739511155040435690819593550713065106925533581866248212116488986372880883721451902093762880696878334848262047558286026492332024733470882977879229639802796731210681716650663170997364827403403614172908849482104229285771900119933230669422783068715539148013386864739211644238162795276226989703516226782783197772478830862341836175702057793388083755725412378575253159786135357859976207959359336702743968548826623391795867563597489904598094025873215951237695689405671158437973739627802049937220007515639788685969282384975723771933881905059184262412773741096876983315072158462666986686838640591924789750489501543882953319110990943686028033639724386877657896944049663009816301645643359217719392655214473320807019432435164337706231013424953903113507260294501912118125636990190062309010918542462316977382885457476611110486637789782975958041721421884006297805828528175980552673481040451341632180020605718769098544745404324870122463011307053452429877786741180693959352124190746757784133529212075470205557057364361129892344837156294081968779969342662410993868189090398253083482923916730367334835110969410385626234219759244839370898501144716196317325441788066429048586126227957958916675611280008207763958034507158894414504784902195904643152874939116696268937962960858787990008490314557084433666335527140576072746016010391031217310140741264221022101476951469353002346343999136045691575160782897565732723794245828667603286400006189622353829300919809490901032729912598539716250185170501375528962047666880809861441628012170477733703632747653108982681910009623801841845645718473209823988419392992088273019823377872653000247474016611156184133941070555495294819582808067755207771886428799334173014413549094462064698170493871635271860904035664026596223803943422632536790132367417859188942175181520938241222181678797553608369474028362271057777156917164291031312982059218231321735838060757179149406290164373043932927852593786982703315504549817236416364022136216313516480387487544489449000432003996024347806921237339294720042650094457968471294249129233219456348094975054622763378748160562286959961437769542109661901355717913636177998139293335363320319502714134994198465961289319816504024730861022399128582873792936693687491142342488722367839814934448822889241641681796547212233855953385567911671353927125326229498303654019773215210428351871447106424010447329041189232372882126404947444561627063053926419066174992714380522338810934782336943497447126455107227074685071288001443103689465446776891264103338582552353730756448634684845834874419536233887232451599028810337976252617922438233869955073196493792201868496480670213284356884818911545185019279915358145509578235046800980748663890434061295723161814047429094387285832074285590928161212560211577835983808150661849440725372913611853372808520312863762924315302332509844188425368302864563812055516000219614775392002815802450669687591114278480549052111685466510367242329515734613718052988849856313387803291262281015480248626060874578548569964731226344507614106002023672471193232380452786657826919334237873120517235375592205741017201069006997948981854990989107812430132023845575800548936302009377268958432144149391913138490534187380187038410580024851722272973944269201908532109640355196811702263903000891247807801862653415277404641531414933924936394071524066957617793644239656041846386127098813583170349555460315473308375029990001844786078552697416037450612850427467831031821911510521210422617798812960273291938854207298846572376332627415586029705819722980071090967581948340094139791907421192618340232534085014877475035973118650259134355803855924948579468146120630438093116487498227731605983955707496309912140620436289629414982315482507694064493210301791872425841955989225372941027827824319270340254552951511150583122942930181602654019300639500426981045734882672146124172619044272704297359190704532274676122546812506779242567503378099227714777261995795029357710916595040763734557077109481196735163331837594201662980119226785670022226182517970499936839303734090961651004040279133731332538465751817342056410535768489100186418188698536231347700124524318163029378374735895423265576232298128602887659917716309416205561939041828510416846678091465816057762369570965404247028291363342436960934948158851838459036189653553875065017546601846996734999863542872272867661861369696875674152431388158036539916423614415459287129564287573284300098516953795314941828405079100501010871293970862022714958061550014024547264381027423285978856913345036346053123496110281066679508858331571376091291901803025359896860832642275434266892411423531660327071504382690550961579237445967966489375838843461594052541575268859476431297821195124030672852360036558172891267713595962252977381446878586716005195963301118673004069752324981473780380330151246341839929421702878727427345678240233028028556030019491195342757657466403395256225815273605209102489578113900396271569890021509096657216024120443988387889703569208934531386861628976709091548910500995776021470596716413573860322350479684370572544348386806613778674872633661959153405926628364291418666791557289085513992339387880413137037543455718640660180438620275705791032544749426682127918424435263468848206856376696666500941892352226873536513200760335793912701855669641039047172716515595908421849354304270965790552654868251382364178864545638256038093207173078583239210616739339938589852566102122113662786593660693508389226063086853186644173566131898179419291731423996332778383244595859975236785152469858889450378819782904770351762053565679931809637758044485147943949737018438293047718584020403910433897185656610287334502251332650232234238177383500616861195359859456016269128587633195450861388210797842013466482936017140853469033397773465312433510132605690018758563909222395405816160083845571645787230261400786554687644752636830685384824914167027860723994573201045300072402050222772899038510669227569937078838645560092321864053711388002133164344795489827895016759547159016348898785098487782324207796193620263743282953457369891602769679967422907418227513240887818016502876863687468975956495664733021656465080343836953965474207942966490870347386576892108316779417148916239862712611690378314308116770025784678244858251542555311934747331076142769753517235530201393195582428915670182516026347887246932641739535298931080595503078568724672642883211403961731958164931021093697913211233210718420052088231790272811171766583200287088464491911837100855782965244389330659128364807113417633538050732381409402715299523067908477632252810381328776860281372604920920458767525608916602212974420250299668516220344087673717959205253301556281816581627623848220660868951723297027675919981503564934892127944453923739247488262780695986367671310720829314431739224293581434627430965691855093275690254903565108060708882381854273818917906159198564465122914951614543512472832014116978230258232562779054009844636293644011438776254604985499720575529507575802753242106693717549876047966624427524739431661802194655022660684445329314301522382564344080221465883526076026023955073837350704652240641472327693592374675815311323793845613764702151429972385195804327838339098831784041329468987750709965675558438215641402084301188272123554798157235481388644517964769920834811753594384811199108798909001803708368229283045758033870910989216772862107662537652383679114292292560848463210244660067928301519929618627768510969449049428201397928695236387149432674071969964891552695138455626062226613082793665764387083077863886295280766492638627333136949650180342271440707745828877421288936718637420151309500156719415777233072541494488572527407150470185309018914819357136039029548641268199045203008524555391472104328894633237453281168851196134764741867338967938279730230658429412381953495694715489007096867694979571311339751124592150610754592319678998774621854710384568260369460333098421805475248009318060163382150318757996430090692391490721487688947597723655273739460526863816073232463428059663941358069631626516516006012580417738234717346365484717038112770708101388627679264328648900316218637490017110265671067705393290509181532612013743706349076724540637995438154397697916620910019004346251560477347734913282548296725946891898134878623535217992341523049560556710947234163648880566187626692331991916220803772824962077499323208505141384553411476286749157570654395029148045471615393622140576704226566706114974499791164903601313856117061674443344338405604828049122383475325261097689885835813638819618613266750046199017970894156340218671624906421783349634167801663708195835852230362867331827611424998948471379970689879582767538069218364708429687599672907989533033302077822961486559571196844254387808487328203687896712801934295225618300110415689621242508794549297907171422642181119370409028780206856124147457193191731392929027009028588910744176208888285244659624313563815993459085326807679043786981731798935871358918743929222748555074686507728168375193643155904013653129895146423363817332841783696849400708778046135934022806138529424690820922785962870407283938270416422146503423372000641247690358509162623095360467155938652475502849476272861735622225556487341098269149592815378350704946259587595798440634113831338453822173567952111213295582993515004961791772393429092058382159488940087159327397414486386726421698874792964676321647635432572567496817593405883852620247958214575333760923383636337261303866270049846414592150658364202625930798434138179804903468761111564198277666647329786513199428633731604977763547482667321057781353043343935175743874998899613824225108116600882679569664719340001573610431175760023076165703671588322787366965435072374664648570392705874423038221099866867991813980828481710446060129035665262640246563936820359667424342552513254609662605645774693257477058903238502555286688847427796357858303459441690362832600388511954905662252678257350396469675776607314734138679096019741383240604974554836886115008713071302509080095315154351202662626087107475766475664840567024575230499899053151957727459032451265881736063203650660622275275730556091608579505270565080055298962748280649935436817172508523784998047441432532746739003159033370851834567057825095869350039181558875128803797712172802695933546995906399284496063952846969859439070767440945670841516284489843898374186616278250491697464676833914686677517439881160322761103302351927327564235894000218018205372876690354465679802300355206274904166011918882530111388576972151541953621257184186052968327757184554394836165165988186454154394783023099955727064342712699871847232552774863644368553755241989591545132313398510390734875988299005674180572525982392334109115023050919080209454859063914616173077383169821175486427186656932028079673116703107267609646517046969001314931141884901603985307902630703343389434678748264786759088262917965329980807242284200829835405109586051261487416979018812840756178744863190439238156574128001888703659550115814279317904645945213332467157228862672560848660916887058512655018514887372972338076409152631010770164671533489757961566624782427658203819136417904650718558921899657060960453362045554180649417097081809386881525985683405836297412659512066655382084164339320363389437679291669655291579179882040306174357146047830751758037636143724924545459460647930604695731441389882526380213295128063032120076139225302892566220602752533164713376561252835182020089625801587901039308412008990415388429265642029732774326652812485440871368026206647587555015753878984557353504822755410084802748800190904028935086608658822819434480482876675861003136375533387993448532476192711191293101125408094942512064687304490473149902149706972337272389625156701628687617997848877063939507588893106731130379045872004773164443368100682571124244100908047854468199854666529296716748618847736632183326006163019420828307102682292593964320403138256602618591053049234736342965857539845970561518413345023322211875273841712913976222914168658282483951812779243293111302937306476383539766176970849507739247433084200291136657583055243077116390180532493736062041499536105939977164302808822136844233687968826800393058888766562702369410214693048013055207644660716322808078799202068655572479458206304988568110641075027872602994673061342478261964957893748433624667123811502069427730311088318408604062514241216507998045049399055591127639051567429393112426797169745312962379519944851282436540476374638717586875127221579691625662664929936305236235982562684943083751436632297555300796403078354834138463023735497775789406294930577916271792867272628202441175502294447030837007601554568692620816174517291942271246572914178270335236213914096610507064175519081731069216707974044510992136032518750589640288525575443343838244032893896808142767166592942896556289713186923793095941480313236379430843145104941205757335303983647939250141583956261338368466250503593397250564637794535626712722383506790087768967126578531965788770694736879217988563389406973614590114684513150547278181165539217445561390530013518487326448885100829351578139866521457747508517616749675344881299741058864545551894666937305127586369638525729642848433155707969100670400487231314538523598349733301207634828677825817512155698496252697566352420045661025313879783043629862902098668426932446680888700745495174784548346719827476204089150089274005890043278164165225329558025334384098927810518684805137465536486116464444158082524418811046978707555999212266935872316548601418028268057101276936728443695350783869705239411460862678984731981053618259505843143898083781115202720534644972663551785455437663086717908836265974567089752264236991774945239995833522146122323426061472894735477971495322654684466984623784204323290181181654811637776500036578001397000284489990340853017902270171930203996105308716514620077971207933595742425077060022522621143150035063360752545897756123125694895050242598905568927692419963020367117551947228673456281292089061344342977233966000888795446499043119286958555403152728080609738544183706559058562340688852344036816135248403339002155892854971139939700957612741143768548688315353050974728056276741135415486511423395035297686020364679549112694931277511976503055592119541020260354394275646329448930120260942053571438687768727828118482765442438898213698408773110282194535000688210911490791854376462326847215253929139237028964665153537119867843341656360405596288179291255883875065496170178000068099967443976728817420747588630907122252463213435324022388773886811340908194180927361127346287957460607528551105612033890765454803509135415366810804251785828302078317668289722839001925931446086954456200571406660212979889669680606217254244831089490116772535857977464806390811825767226350598409776204812336233428559081558292812645286002557086768316103980359463834553550752658782042992170112347846944275764110433438926200961224687545352319397901216965645522473222117676096824375950582636157541233681693320948991930821003912846017620610748836993874989124702620462825241912641949037313378916711685341175946364057522497072174266153905003848940427366375158330248815471243154869521240644620309554636698968375119077973078858009144062835683835492455976721583096451693158213041066980873568015956488754855017819924076884101067496680300616938113135826394124713710343872815960091272597457959595180546242645590374500876609728998826057053368466889752629085065531401832380360280415118176172429628821127235896697722661514726394261410229374419099454861848663357988346900774499608310531531869027822981855661992800445988770607011636580915341075220289430419414105070586427557222875603902587805907112292525513914621909152404104897823193233901949102360393489442941798731869938052935341261243231559603339653353711442338751757036660518037003242810627110259043135932103845605484312208376965521710245887096089443609186966569345131334124967691901013080027286641456575395235471765597484102572743851374178844780929290198003401363550297125799570282507764849753519020128052672034154455182726376186237787324969458922796455232242425753903631387695441746503889839534096436587764420475645944292605239685875477365673132804710843263838046311966184551023297992641115249038289309665720715526271575972902850234055293446851471359348999292294247863270840839274641972707882399268388931394450030003259207438319243584221625269126769300604192125630348631510591084998786379982797632140588601917170358379022699215081299674844873945512116945831228010976072766674805186212365451991509649948818983546683083981242439573157009158263713809783676870733163547041919364144029156416579681216989387825280261960859536145039259057369775235611094771717133908796035494639281873388836427811390484924921385348754055855320930102889723289574748161123038369056937759854056987247261971899303909254459485476634947973158748185081675564072930863601938047168742489403137094371496023158739973929755500212288699688299506062842669881324528363697410191533461097845224356072370554697950738724057806968670293184101370215892989784048702414420941402523875334500085609114869344088318948025282091359952523337006233321395775912513947088214377293480130615878035727267733389366795326683640586988762667705668278534813412721127600780089878556050726052410347299712687865005704775216686486365924708598511616388810523541839376350557091695962371752800165594281973597163777933313219710896728966588417200940769714113042252312680916361639961550661807685094734710523758858608905794088983987175799522120636010721804370473281161630604434844877985404292463448495719093335999216327470501946096840207950618928592283992685367986406003580690315883124466051811997281409180467421211186658315598174609419045211780910984043847274025898938904186202711181442331712701582384796550376214537675905376645223109548668281523046194687665207872753125773388426204207598046356824851938533035140381137157091643610923826908285332557051182953539392871706491368712426445765810060027304128152414716600826915578936239298404463501940503003584167686125069189537142384671069633404242936329781568499062255716471718655203202666586874391215625912026224990839889608711290263652978480122313781283087734193586679652631536486978047896551999116020300078796180981271515427525363326458764772447673729267598896768884213356857521867549448789346944757818231289411717314308311524988070099359434393177666623007115231264541318033577072849370928302874639180164973271202164527928306462622021121400260416899528606805612304003039172976136986683161067657296061076461397588842699279883587745747559314010715012839075871301382286673864824392033154057627884929594245532170522888599805486620889435106446513639071573237818821567136601913750768865239337084299868909244941016472258660269610514088104495858049276135078204282976086530271607469411791844979105701682297532070730525302276457665998897039817288218522389106068593203115259748521396045310625191064894002145184133338536615482495794337853229837749032265092448093084156997705396525407123158286566351228956918653135311558517039160226335627000789669543781885298591779958004798327333901045612305970421884892114801408522264150815678344071192172126262512661698223999219087443661898783762277894522022663864892624450540954141705013049682727388958797130116250884399163140324378036866773278984837234420942278443790772066953509357822385909294199236370730870337843162604056364579665428451717970778959419420645841357938751943688867743226910599851439335889094858198694959025213576040385238962340259015063828428471683032631341454437718816838787569786052515684001263870166155438712462196927507128627106915089602373630583200804491039692499322872051745897910863781044932162807488551984536489671900510517184440451791842190272476310705668674202208041558818743861282164483189845794346121304992191445195828283946006467509081928819615281721267448132145727409610875534847730745750546000708584425149025122632869121781041229491242137885628248902268395882040563486566527960811286711060120367033579509437099338713126871520434341291963512149609320897932706953298716271160282624070239876756951247615726485512507066669516700430806690112590533535422841140737334107567809790230652350002455945122883830570289158095196907664543044607661202384233983147738204563580470027123105933118160892198968421813964391618794512440383842038412632289066227732334557393025495041327282002356100389107671327590080198821445419990323780706344489163936744309618113754314812020310161045809108085266725627118996618002312250179627883269419737151438678638614803651003007395974928490190430750243004145509966388399987947437717418165470587190850790794838348516309536631923163672538725159788394239619301585428669511707145842354550999518032209424793181661619349518723940466915782408564126178649346715166802291334528561926119908432733892764771896695386247046083719642991371050014144080690978135379047127606552246319419940796600353289046125787814519857728152300902716139306051461235652101106426304471326370027089938112739446498484741205883171949639764121667486983127574820437590835082617646451373886383616672776621218572511043867873672506881224678184719433243082936654614313096775637332041414073577729655586298331534585805226220862121950114214297966938380721139024933203625358301960352402275799774951680169680207971826816516707794776678202040699764912738606079834747670918054487047555759807274748959109958421561772698512610875875633401948078166843889190258457016366140802879824854500565168350824722611933833737129994510895085203848076211511017367959131176364098338998942600859191432097130723101622679791986680721467056700738977073423712768231801986760956533993847200200582763708326907131086596461254760754769776167373932063215966811367730705435555405597899880099621383408773165127895591810516730708868010937530803536921227570152122441757442212989923899860403863090868718660841479504978931695319400531942425400496077770987376546411005788192192343720000620198988359051533134219136154469240548460094413969117213891374534897591766727597707855693504139832957657314528545219722220078654022449858504498214060305269993556112153661853766497657178276098291324593569274910498441174586996151353915038880165029033566774746191342205101734670433314519346103514529301271419963136262837674054448918495590412357576627884209375553050517554609954518147010859245522692942575529515475700677010091195523956303838287149064238921111653291100130027463172935226378335796870385755308258676412655073086706872803171512655770010630861227170985204302263165004889145404436287098163659006848045593981334327960283076978495610164119811695498109113071749582300262727370816456627643414087519242803981862965315602161226207095124695387824442673904550265107470359066490782786812609030002560622457198088283559349295251059811387379374357332828274420542070925269275995635437563521103490344194034571482854347483873684569427459961811758549983131483637035482005425233720042939763067551281468818459829710558521926180869790456316212622363604715992554235973738761133597702380220545769032875599256013160008812755822708120272160942994605071623010548113865054436614461801723807530627866778350756808194739590561050020477214493308006872748549721675071218606723176376235604608247307448789618271282576719717464342263630806999920511885545307761290516250415010055509991353590713183914597295645375849066289875505173540178943296838683217614528085249073915704784467704745921992275567375012015958523104673339463689449367985699252403408825098673505509080482017397919165149148570935964861362388211355461054275986133051115026741449309427947136401226909957439445034702721556334907042911679530153213602667864572735522960115167164494249022943065967082165414655583472964620146748072440189979167913796273580477543228508673040881305778620436425010380292745603670112728873099944497995079336385623292455041276321213476618568426456124101908220962885532417609664793226297558267184886206018078477220764767304594344384351151854021007685260492091476299493805129004817419683744068224072385493717460256052421598982900244509229963921495203983162036031897414973268175675819148333913367096020299984366387728005655089943191627820614872203130708711165378978278423829936897723830842126519747992094391869121494550973882117392177591104499278373826778909008876860967854622780713695371066654650926694995281042480559367525799534801349936899409961500169861301815452675811212373427525535762133455684184789746288499577312595929702439535269226059732594600362395478608407786159940359514707500205534482351776985521988228895876018058046674837766624031811578087561733311037440478814086311713813243525813629898154606028014160846913384775329328120920282097913173380183728441835206395059886244492694511894833119577149631474776386161734894436897462737825463741229972597272517649321570770030991691759473562099427997895014654895061051164864837916824557950088182125261099396039781214517010258156321592153611973801902429382819864538344087897140027142797771069238076206211867315576178007630558377849159919985272788174875863127201856936663752307255472017587784571975399430201299754827713957590594520206450153954884765702087908125809167241363843974421905912294752490033362785535792516809093453237117594113480606718641348933195952792783483262848107711252301902005943712527221082215894842774655175349653720796877894477303729867304879782623395028491265479793960111229188199120725735817178184986920843833679079617769576705339107931808253002698721095498216378521602117010584652115798803678430917660464892757719842125807402787572461667559513300656894287188265233879472090778588936173746416758309315997929143959344822551465565084148940748191152393756669617537858308705657155611817016301147755320101324577848775804874046547722409989584037093585261130766266636145975275869974708598835450715078821719389088265323901862017757902156069465181324848352744048304626106796540188361059118604620907724041621217991758030022882365157038981308081594724980053339192051817884080437807894868309251839231286186446598007709021851508953705501928083244514589195525145792234204407031309315853894212945300655501140233484705143566494509868170566520511809802018339436183039505813742991444728618827234753286255076491337070291961598555390562460831096917619611325424426636411248483828833065866194287169629985147654189235438576276480350974817593438129186409702010581189848621587523876926814329591341792930936136896081624067513093536021424580172337150012184243116288918504278214499301959179028870180601484163740959668057632816527706784579130338927295429948797647817652288797873767975523452798715653143429682060747934862712842392640801678661808914943551596345705149321436126010740693238053728827494899415357596518008904536731481829795251097797417353926147178039642301387365963996642337378168154615181768700813521579948686718861088437028093636961121041790554006856251238183354738187745021820771388080222594813295679074499166446011615944343683813477599350564989367408165728151845004160222846828488740727538431530125696662183942780317164851748393500820752599650598215642282551727172006976421268512935268145846478844383201090573744707860599586026902908575536998418445978110526388673467206425321930350173941266359323240430190266336450366216420660525959607151677512188701420657486932066592481536423189527211158910819849351199554609610651485741786383605924066225951066827951943729817057863209485338910018495985898338586356171858201936364184778984143851573237837762213154438066744821576784696957390186467133980131055683912225796717589495402646525840506072430763982343113214091464518357454602385155886101086454529706567858429353306363960317043272486124347843221974727782884276814310025682835133283926705047849805883523010930269470384167072990560509575563920512302768879495295839511988289628937124820825928832076120364226366227724961152835856533393470903056194027789260014903313903811243759254712173889055835375577143367911807724292925180583810800626321984342786349962645503293325931827443057336030896396315679723422459331487103187499323945599428720897125749017435774862780007819951117091296440289133422765732573779470926435899934472132088120382767188372829928751519116583222041038106731636183468774968442832495956955901687951372511075063768085406185242323650518664295668996920745057547440024255041117426159214854385228858333591779705624582343518490633199107590434705715137390454458286466217276928832050584529372590970357298447033559705973323138238771550384486796569052672946621046135277885336879745535587494369935573874187637742135220096864340307378731777996191038353959973800871103032926826077654302370386969848111113670045244859263785064040977094934995093846902702980773085478540040096435242022785988872801801085094466336649385758819406860255195164629567096546769421896921951906500534781417830982337781702289477860517396605459417751002059908425360899908340120648924189387338215980584504486984411614149039995250957940875907989580556653739448622058017526925624874018962785746865026197177319727693826968803537993645391523594158751956112003998607400216693285414580774956972099116939931475441068021311617141484592932648731015374129833929751725456671986422821992469441639305105825510016005647787994343272474156868337803132451656013632174733664653831570354371970504662853239318167745769038271429346422813667151152844862269828083041936618917741185998265590039112277932367627261807893221871897547647997392914894310690572333304997357705001295980942031394180487563410960389074775769168565486405169462398808072408233949589245908745416099080748332112713161004629159297333883222923157156543016914794648969364922369399564028333300473071903318989122155628847631817141081687102308679161374061178055424522731394864440305250867030099945980700297946255591047414917504376203084946432231436488748235706206850365179471491768303060309380555015625807912358363366686248886520497407254883100462237665808009841467621616579771297687580056367026887740333529126099906301670528616296379072565161693840320594252298904807450823524172031186540516933360225434118000839168221307659233526561798837213086220630357113798945533307598140499543917783815480987983223701027874253733452320175025810467017494668845837728508092095215245737630180920015618614806776788763047947638989288418107019852656881161198759412336894346524595502148102591552377605398368175584404143402222699507193677786178283963697065013225994046889978173571851239453145418013736537216667904368418315293840123863378417442408272722874058076479935959795300823007951831098215085514461849631791070395004080499541852355294147166284013176460250560487964727783024564057970150195372984067036448092857622891299709045735092275736440539952428802865184783084929151207275388657218847845158083635926949315937457197901626262412638661056933625968508238084965261217867721163416873798717060724664787499575456614573304407816546793030929722924533516795334290242248665934519578628481341226182403086967131130552762729071592630711700240258554087080526900452255304189219273570361049730165735420607905828684376137592703991033585720161787180361477307256036825319241937945978036354653850579737851614868084411480221747815867422471173447299093984343960720001348420225053584456412793882440813827891668958229635091981693163599942758866973222190146899383671046382125961727285616843632343013783522072085464169554361791234284968159482028346898277435126294428045010420317960735827221423484530733502322533582641918433514394515285744255478229068452665672384949177539451804383663722349007612892273937415182085916567308427679255179602859410991114545323026441537253664500862737322150999403641932295463928394921136049296933763752741592965355202194819281163994720244540947311777769687344984195248225826589446414348354237276972555389398970526548698237407264203394894716045592781943986375139194258531290546151654104163884090516293310266950922581693060116830899577851862699616225265539801747578125798243914465165011699809068308315598632743236200551158070137766502554999759959572171984312749751289055096732897701449833870827559088639374803593038321095881260888375050830390349571812265937470416990157985990201638776998887777386972800744043274887776332541107289446363598690072631254164215743365223128562243010294223200950663337875630441130218584955463054616505642318895105195139779614133086144596363740004994721717633345205082435037481214373741288644855664781477771356480138707439287426644967937227749128755831707875071486817366431107725362614764122002482602075763743963806201283591549089895968529297413050969692818685041310188717102710984417237429853985184997044133725009902775659623887034363919034295121010312694588605355454148898820574924665655874118518209203465827436837340504845899123247438609947612365849045864304912238654429034542739706855554635718316561056368317896931585404691099433034215131150110012964630262694492846017032638806866238554318547985910606283044765467109936056310849704655381131147811341838500688895269999112748478656649132456029993911349868830192564243342545888113231299281943293515458810490966782597902066377880779719184779485133885787629845302694744693158859260805677215042936046817798513941330671626315415041378902477378828200346820210200492915033850637413703574762626899736907602620086282615266880049473033536795742226527358918440289586088485165999008903508872342062673517791576367461985031044342679395752892782662910025697783180418729091930335055585638794703847853421769717525644629266869978648640848625823031722626915815606121859709484972549226677041291379057159489379952801044763950035034644031678704425654260664791797065064776492889204135947382967317436065832460860501891968134171066817390854285023280298601621284176109380595443236038914768657358408403322517295792714447803563887616737145017233138735143660355174229283145581962823018813694496734928560055434525172421009689480874294666404857812077615254270734972973233630937760675586406968666677896891320375219897077964327487591500691027926823789746024192054335850298007768459478140980597881228293210983225710641858030261668351753066244163801018303253772645754688342426190065046033877027898178715937738509816171750410020723668881185575159607068287183859789929782661083498598457195579866675132302013630454797288035309562794645554842722272459404690872463811699763407958510536989859129688602105498352716075104938640796771936645381639618529813139052236616074676258017208543057516503698173230583340599551504851529739053934645511627677265764792043592365537268509875471410572546186149890294914098118558059466470211737921659881662974722036389961527982319648271906544818850928571083950968844091815278150566657680599844638199296370071001288572387358656490187021607247617638071854215458565565693288067234657281862458823586360660381135314471822515903496582044902397999625532734132779528278026785977149284876380730512931977421004806918125952868472742247645278897028262685553325256740002559318294624791183254656900197479531441639520582022142566341267803866172939053567315677026886690113222801832522881812502008938478373210228985893873831931056927497677195572863935857669887819631564821340502631476989458501277985752987965810810650222051851802561258605956326597470253328089385151437770306819636850746080585643403816594394778778663670175247996912159102997486772653178959527486856320243162256091399280011827629666685852466882419352731654713339679550967225731331209573363729176192166549635899328745741385532921440332131466105671594732580797913980167669956314685200421353271049324094795029392751690232855733011254294349484419552678755582599278949916611922165584280929222241566850576218919484805414154144762479845852223126656081900257340894489715216021390185556770307461042924245614733426394201057903595816869039842708204498062025861400392638291739536995015290362898898226807868278950593577157419683847777779214650025908905235985075100602398596918578339230067721895065554259694772483677895055273144335418142263387428789891051125257787252535038842978648431192934720753705371434029182582924572329466018709763924458973885447134931685650681866927456240346794449762605016571243119118311704494296364715265155605129338562277766598592273318257782016916825420935758577309625053237361371057601555527746469000596309116797085496098146754621308267324809651154159509937130161513510535176814304975638618614522470722759045914913818768592722995913937954742260551387432158443297601235181923281772889182312009365153119090880671952494995121012509494041669303598751864539598454653985345124182525270399481157400481198996391087919116928231324716951198206585641470944244288358240175682180750767409684850852745853972583830036069711627764879462266450021613360528484529722308061855752167299213587281299937514504714074312561474924734211233020976391529488280379475788569544633827031205577608073264457683846870362321465270275712945775237194679351015692674643007768920748020256816885537137274446002532808544043363803377015260836975134055806960331004520667434167849949982601877923799832628299261790140793688026898601132251882193160792240815799650240894004290875286530432399048199548158583444172905643360526128436982000566600293057650766801896235092488732467587258026899963186828394855523135134009890886922468802923194972951981234360985368875303829561022995763525255141053772392143441538799707427632877004093253761341654859323925775409035250865157810295048723625617369555455830213041908127336244254651707427188444395431035825545374066910382659776671813568489530042897173541492631857141672696132320923875527840842732494837792502687751150601312635246460540816392459362335410618318427161246971258648042067635975001774947805693543415918368153119431720395646483471369087705614723458001276404496040900770006664459447766122815584701862446458826473337313292028860899709994363551784341522418519365672468550541909619471151559534874359746699354580504888577969774655781894576252653961725581223929018978413558962233899710701804512464627269052299602018199604975307782844425285654609184573602451546978019966366477216494880520703134235439855855727115453803351863768759165323011431716607525875878451620584818444451968108891580737362801657293560351868849796878195969822847861243629664569054037120295733340680283813399586145166522681596937405251455140545638227615820792789157967481975955770719794915225016573421818970116693433979436552633463830793392588989339779314601431511960329128998710928668028381148253054163272445240522775554470513889078106039578049431390110798792663255433801223103201911212874396621789849853671994641047487091285549150278706912123521780342874678135256438491155022548592198808603707497372280917558115936870065469622787960299903258064102551387289460576493951192003289231189722954910728334362716965242096039310815126803726302687657644949147195500013852346102688131236310606746072859949848127952477864814007069835990111661723331656659412010668036025490126742960092437287299193444966883826469902038836415290849069437299649907968191512778661919439695185769715952241641391102652128439376475885010694785368136042953981370107353810853098605769799929624421880751224334032191226325562858343279355446256811680979911256123056405661492326112362579822824333848682410406462517651081296925980034596945829553878301794613865742949655132202230033305203055985560373324598388070673210215882899258427669984872698504234685041158172530917237684288824911682155848369582542284572911900040037349393819708273243860174091539572314447691177620208200317310657496454062781867428639532890761011185543531877625664393007223625568523019905574115813510670500486006324504774781299612652041803796438558202831138032753472555714398463904283682120992786359721120745103372862652385598498883955934872245559812283336174333913191157857619388082731335513970194516701933621399162981096249217976957175280423941143825580071544258208221563201114310638503951134455814041397156997657430730783804553614892569773045347029355316905239292808960006517393749415476707831507056431705330114167469685028104876746421861374106917107448470615249883610663127398665248013482587209215820866968064873595262394596460078227682816571894050897134789562729747805330874735256939806454960791720047848378680378375212181809228711042599259962766890919623729598198597674136402924562212369292891731639195503318737792510810433027133782750984944977090309403167573557884485991849654718120743503829034193023324696023788167353791298821175987599839352111861301861797947054819309705670062775046123904527958109705983371249658221754052082057707577167557590674248450646857150746938158342503982556938082258381109620432831013335828527074062119010439606218165647500271352445509309116908930903402585204792381742043375918786433825031881410487661996288230454294492656421012160987785338447659024219006066512423482951658583868809347331705534024810389402528763324100245380057277943009073472871512116809145940089776001805114319381317216786526322151838529278990217569725946655023407915665040587572907682840953663469837951994477725493835120261838842261198255055467694416886877297846111548865363946107205413570863742295489935178922764213594281606586997127816087096233050889922813901532090130938941066835765914460901625747075872770550676846517999408311051321935667396065766881709285098172345457754303958838141317794429316693411622810007059296730791208413077445196765762529320895444669629590796365780762176761627269483153630747027531151503166863452743698668491804505124725073020233697823329658069335458130962206980639911309992292277723213762383085437168485307047799294506598448058068643046586818281098158124132769844605775965135916631351540234146886828847678081211635141392341346708154991696703744371842943151613192915997842751865814589109695028790603302918222433637101250823310731581407031763196159623838984186218121981239756987649991451269650920556900334424726102460385384126353895559270073302698208949623752222083358420307491737026354489088199022835066348978311961286956255710912949976535623917400508684377426132564263231464432294631545188668457036306136976467080992868137886671685757451376652192932482701852307819894229517489380922597304326991724875835388527445391235172572409203801138833343553793049244516501493116582386059281089113834607280794769881289625788838065169973504030149749818332615089250591436677224259681169887094107364058711172707877873865340201087169425703662058501519066664923194755458192452490145279677906953799247201649989824125052411574156660255518869758574021393072687065538060152124293718738236728362092122475514720168641662350901487374681443116808568357518856816046345134684912967121009773348317058381715524124075906043449759262076794352107517907158877847618086381362780253313539591992915385435463217775772421498852791590215642268945605935595680425030186880066293959521652576110269491126577722480658987846874731685971864009338879314653714358782981003458227419341155001573828167687324057177614098424243784927078077082367907875761190067747470134597979541439232022527871274807403237370191921288777449535935608997744864364797083431798525048143955197606793693537136742993449549836735099786901701812731953727047688207279538699512817489204556437849521908593350809610096089471161699618979860776074962078588861874150291681005995765519544751306041854011386281618749959932208208309138575436538002619202149724323365627166600826109058090914935236080306657680461552901530643689254814596873727057729887842583366747275355391404935475488485258992107091021165791180813637424864367824803955640562249962631288155969041108647188437124186457253260619005746103195717185951343471791795837640812010028152943397312334475854251448051179408005378657285187494652864459741621374710248327061632499239309467894784954809401079278404242599786425077139769546553331877557532134583130211971450938248935015937126773355295486905623416605047237751418010027609499314674758697862888053936258507030514463645989099297355160675230968319594616479473595516054935346436935573525125971830702872701884478990772340020399870301116434598412450191186020958343702415961912086347366971116297307701765433588906529346824357601122291125472585623857991159752282635562955522489133981938906237502208419305495177095649351872910023338541309245420108974837959747839072348574481296929539293666188052414523342550914826392731925757802464293058142794842484893772390997865238139976271562331096090348407894968459346792586047306690732663558590547999582212713551389865256033498302217439645192472625617578386220721596823053704011063679246900788427424333028373427539402918952905246995726873595138414692900605963701020460030298080349102817404047629202742417649664513588518103012246040697344253677677826294064719550175581036671626328492739180527750076384122272039524723015740075923108050843385120599755970692164669506718237546141438047617533908648895858533898731939418580892400130255608588053164057827847970295738405210349742626479042746670269152357952743605292540362479907220800781620159163608254408791198839757188550186098055175754596998994683421156979114992906572074746754837721679701706885019020580073853891156187655565520216429711376233305912925063818463222812815730777688075548595858208806913684996886611803088157350076781088849057515791668823018148611586241847188063947619620292635195524942733937467542533503101141546434257131942858894683948644545094985185630034856542220525776108587353343649722286001645838554823858592366003997643923347187482889411404222874172986592195829009499202250846744872019203593870125798854542892522992177492578101292794256682659500405702081454088864202897761749921104378081505093691392273855445821379497931605767348062863608036580662811133712150027090962153095010723566081467718220536966353643623708815860245686883738569906327296142110949784463332959176731917014584009035410023541556207394872690319976895174269505330587851561035264608947331647163325843706368992463047780919356358288744019263004205595842427079234130435152569507093127454041242043982669177908825125241675624596399169422570295127120985768001035236358178832405389027813434228717267111510399499379855343939830974017750677739649321268227847878122333740434951819967719170846939054131944923130664209183236589260231072280193805073048641030972241486268374777473914278553051728368190909607437778400317241805617894371541536822697574320634780898049944835977166222157751539485276808842563146335498059843142814990626069933795101138492624093129806567893592695114175766949529422598850468134616705312896574863406030703171000247099830249534163608440876167866470605475532662647861536586773881215899893103496733645941718680348439917022839725119372962686703429064538908964469657918472163032006934112047085742765278721536569902338053501886490605290097929462469876200130250372401457169246473368512182872051656307406670065719093177680004095212686836589281779407902372047955180367081274735555640488111777138509694288254996109181416094536411766006307269147557652284651030164440558966624099907039792778453439687785510868961605548688385046611812816832187718181802430564963181458687853860593103380736842913465000182426422556748714582710746493247552334635613587794683933285381904254971276608762788262824154740334598266618484247010478811506589805480712276169988683509016349707694648043616228257226973464070613953655665936098720557694380429092397057593208658592352226049927285408263120357559774373600050413161370515375197322113775247540074500288936707323031858197597476984400340921579859849394472260599784340161558607918829086733644130194564976393125297552403970363005827723979420151914996714112733173667667228290370059127367959158416413142143282555280700775717739336193495068411596584344012801763381419804233351598287783773054312678744553408719042179964199287383184992834258365282853110764044274318807608324110257659380112838561253295785696165988086706020903544705558467691427586735921979899660454303284293301396733840649264661345670351121910409303472382615883890483214965733651382959732936307815437572643004947603410544581820149251658681257544489127952560001598591145721787478419611308294714070142900459049914303773133911492390880277452029386301501976863373388454572172689036159918426849780857079825253259014084042293086121101620365368249254453934436013954278312472229782840682658320575140490352182437230305769207450496105403320141217950802880542001694255011388920077914032195437048877640579095195406895440929711741300040623594403786184280002923465718789274563728332751745699996811048199363479852851023757058668104901560118495107394479350901814808631422897865457976050590588550790061715894038463680489499954950168414742142232880562400697404761931145671581953538985931204704102910435341355394206347813162683346089022217131744587007201142835458508355496443514446727560699960151779460081787358294695884998573074828209714153318672826669550037200976551020591158191513152386952626812248598250601485259475596810584398208574232161574675728619332624856116894655974075550355052308682935169614142248699002644209939541019811737863315909487587049960908857565508097279927189744726056784164714116298490416439565525897761057243708414454096270046463024733931766498508720200024714352305241258006712680964877982769209681200845780740786003331419732195688178591249018411209287278134599596639943461281655973284484468293663449643029997030289011095997561486887283079047742856582357471670765159896545284738752174796391623738707968120320204348399964288559193163690142964223711468676585602126082140506075908660158368097519945541024113939267584932258631124536525367563608362154772759835268848870791342781017971356006467067793677908574334111934690145934790772190574252990023398332055755998053607793691550222356354305711361741887726558040649508174517878557996304733583328967334337456908159932733835615626309697884848586482452855601403933994253539821429828183094851425845443033364304559134755465900835537372124461682003404760075497584290856216704369673463113452933275632775703958000195260745392063996425357493792747533540411851110008937730473900878865861044078485724609525915873593412530756749228457992777872342731084685587398530929341919215303283412165815239829585407411907562577438599324881266416339860490625959437451015527800214213045509762489249850014076078034104127188206784949335957093719936310040746785314337739161989794080471727768925454275296323472617467603226757059711964221554891473106163903901357863136358822822179771615255672767945074086075566430373054074951458709887928065535606972433492042036514401589752608193020479907728251747903562961806761434392980987322099968622857837196177923009453619791365160266472288808719864731068281701767121909439791435173103392310820612586390407275096842366015040758182132892717483834501563227719457313036249856705866425025585342630769869550013453716718723962008246648751924113022414646979843879312343011326719604291773717918907961833143918966249623942872322367925457220363044417285600087169254536030988264617796788186865855083547304088509718797601731836296368445714246055102341924449450312897257582732211409365974978543494271180795769656549561372178806266282297200345404881146113801614745337148656710230195996921685071047071849660971103421176153249802268387418889199803644651564560855354441887364437368974168410780702754579453199715767071240120006096840585828410691829280029849597156814818321574202464708170086417525377123211282182265425688234490833423238565916331037242435831993405072488719719641911866712310399909923231750419096369717276136268522641604801767996052628499011272130504889686648239502460303782176276508675683358809219511736061495157991036532171905950295885626880476738978669290704219959996756064431911313389596684907208602175676681432750555618842727414778929042093578059371878146205880895712130262693266425635378807205310879887739758809123906337836068490348435753621253710325889437856921090219821393039901932468206470973682291539863904908784010322166942036724102486247921073515038976472208079659751934580383770556478177623159531661832184716457216582151278137481696621149364719219961293737989444653158495021542151079567497611152425273238697905876064932088664227337905796492892594119751503702234536893020718805215389520148606390688224250484942792663723403957075504319672210922535243558833928355709698305819504091967066866768793608806926031092329419370125561621415899649992926765993657668666292083495658251386713328795456419008696306057717839182894648820285145563736446077372224003114037591244956970148038828874575833921763041954103087505817227664374184894903264763778211731473541044577542561781500750231437657617878209078389325363592076964264024373102344076794644932258572469175578205009173596175802194356946059198135007668329291920877110639825403045887023542930371640057226307237322589985301657431556379776870895582480882893244956497459493475085492465751747213110264465355760983201223620683344479850905272945305761238727879108911197990416541822059823659674364353134050843133805616560551085576868171177579278943594437477224887517681182877639699748038224696719275547384252970543270357031468911881814953065259895498589349512860424648509251159056364754411681098953144749591124941227806872191260799297772400549501728796424920763633691912057233773833175659163540678229531898157894334939397965129514900583027239014672126335235118288996518486472047160550933067544343029515180294688281645711800324847138023428984840595579969587569346325415237977124767220938721915317533364772474042683463152067634492310517351289462810107978714414217961449930650125876308841400618902513809656837574434471579399837137936275162528740658631515158750613567891302903409239000959942533781382933295281886723835847506357126427962056905510011045778313254038382717577313814196048444466360510477733855552910108158885672292894044300664099202084237406561368665489865400451245345003973785265001546554153185782624180653862477557619965061179032078271191152786640823711862408049402070577537081141684111260590794810233961709029627550744196009198519493671958816805833203540307846991016238641716619283240170214363160644875451167458081346097253457172701751870370717419526661550626173108468395649743233550928949436816333107600189528696607301480394794430739678153616288116450372075664476860955566653422168241371383174339275357612642095924377392644710486468950735642423992171988814822352171455533621047940274111514321664956366644664343237815394105789581361006816274076152120521052357452966874584856285559592947458735672481631744201439550896392015233081743404184961795034370411365608702131875449055653878801149382762612113909547099251240172056408468723591036247674795023744675936849724877207803991658724319668761310051477496799178863387154488886219170235136464465081938128499156182166514828820926315071156161648216677558366016598865089559264920596667927915491381674073703370639614549117747834413547487352718812927468081532380351268037355933228330537800252921171517321153220166182768778559426456920532624927683508922888164967603980635071025575544657121618211118661179701836382253176629444838111353630756364448776089386339790857609545751310713175528960538808824979626718851124935680701280493247611404563191744613788813189376958210783509110379680445796849343746556807183970405399001372566475380507159199618001970870714440196310273523596054451619631332835308628091911768555155936634440499319467856428564903771811949686480373095047031925490647050051457569399749715982143299991645592703462208068319649827332823775302011685966103728032173868077717822990344577590210141701685020678873168393812643659387409511375494803873998875693996483633114370669607935246346586342539275170975808120366530774921765937154778433935523934755940749972893300311928333321509212358561949974116017184454232009721218002661988355875972430044737604967646395802863102526638876322178622133923736567243130021988840807264319285167574755399703710750482975706811871415481543143178610709128744924917586478672257948326153050559448841677686206484992818566275170422335957899959616606903743198567481860453944608289623367407770478615502041336072903745687683525039738748697777084765836259457627002368947094874316725235523746510380068026397678690313343859703057118314348704716069976550910842100687066212273866535088664040561089677032162865568694964841428359124758561390065352835622021163838049248844076648056483525447508349415620111058328416695583774503917830990132653558472112306428584714371815446461893710046073423657527066218073420856501844608977687417697088418845505868688324819331348824097725321306659025398714496111476741393754401871981696185652310894118393039241937918210600487868829552202007337227098236927130520906990298475072634086160577418993720366871047396642031995733564098716616412623750566584764789434422047377645965982011637742932670697247510664253384003572707595573387292426361778696602435270908564504235657061565140627337941249437994272818381696551220578644518151417354915138554239905194635515844079219023498448780366305946627752439267726820501047020355956528729679255222515423200845725457808201291854227889606493959766959094577994686497477946143160096477160417731924419739909530130560434929641086428812501285350605174917585221211609490460589413051643409395097821511108178522500946319704469230548595105969648406450808396740318375915880227371857630493036132653083293264389036097528892471225112405472843501824188023783572703581635811328888760177441792456072403084350557863785788912311019737222450828576039069325650218905920043323465738617536940787832579137499674867938332380195889521282436598556220962224593451175903100986537300631505919170539519438187147377975160122252302409896646797835209784224311155338819147739682612986459442006673021063807146243889281428715547763399770334484229681077881989407122307716534400866008763268017225161967817767497016813590672800838231421711799484402842442623979468937016495642175231265164987261689634189824993994566249441173936676726238716342246686560187317282192467291850880595139436922803873269574952474821487211032235324702807236622622236284777925498065581966560352007453313501005821434181858593231269786762341059726137533538692427571794680986357233027559740865851575750622083914648705637483079613287628968071060646208221390969875939602591418825058095003561511038488915201183152462390286691427580348551267564324280611345004305235216718252269923367464009014967677194904995997932128366424028347479375051243056975937884952146125352422542340312736398501958704089620315691946027910392830615270543146084210772743162641374121936334440690525795587480697965364221541230399970330341438400768701552373041961480056245531044285312568066726665275528126777845588509766922428845290736217845048823622187540502575741526979479855625623839316429198038818771126684442867942041088207884288459712207842476121980016798629536913651620450026547348761016407922095849211579744377564304752886208681037071097105661042933771334493469772961336342749596266860667586025257800493880613184911959936819574022887551940683005436009500301092899711404683829216360188670316521341862455168969069735118596381625031212088783499394619282591593491308888715827295961036395955023195768351821459873342623410885761842896960283775269905401698459607161636058878660599956122912547525032499572386925879902653744299455457506396611617043766194442690778594845550524141982526158630152844679756466451903332440583833293323744681197649973772662851591507903972741001163389271972796860717881008402456692506218461223846620231572243576003990923648291132883278234409357297534071487306163697023096613065443539186053680192781425218653921306493534592207286953279402898672878527605381972002768141278349569692912947765500240829081003130382352306544558424516791437354130585694462797297088708238639880883529316918112743000854573591527535341914299651025184130689854763778749329565082237933250207870222034999960098398229306309493699987385199497824490312783209002162497105529364664881731508838426512380009951430670016729998274252754485664404458862663465421783297425311030628031013989750154502726922267443977050927374441918857665395485854914997079476211754029600889418716910525886948335775984739540192402618130825727488925857352392276324919791370347095183430926359411931594095870762222341106233828129052181789316596434917050141809768428725344806054554441646438494556041874117284127301956880136316426064269833066304918647859090282219736789876190459309513900515844076528200242024502233334730511097903488144384603728524948670285374774652021573774473869596424209487061716458324421485394038594705913524270044045315909390037529746404353174174354153013503461303252699570436924414796601471556877199939452279971523177641894755163069135950032018245806968646633633119973440931135208414487750863393051600139451498613528286546386604852624877196663934147881629062450839227426401616011340485384991712257272873738315460503909797770205707986742749476858563296840976444712845936297894344960318749672251682965198947442955867719785254405795080651870151710570434585376728332273533979599509437240729505849768826680964027593661475388506102398913371436007774535866915289927888909181191853173854231064972599021716165556778310092565649063989727953753939293715173507324730128162069169019443486874116826912832609117717031272769298668196725503636401599012500417353391307551780455961887399709055455523181048728430559249718087322599647168628714783080625561671351770267897873159430634151707374053734036339604494775933031549987965099763510921025194118162343014805651484131167142834192995106501752628545575534639608268419635578801278692177525394142550633600246484162079344170158689355601305244968945703284075901241704764210079654774468593205026035221371660212423867435536635199748965698045298958915709375437972924305558894417930996195250078518447235807019123886082717702485934004839300733483372115006489170687446435778524115237678195195599840816767740490119060192553207388771782685659425805622161071990127255293448645901953369169171847364653373564644201723491422564363894801292214161587373315294718468711238899563399210857592350080177584187513097957692755955187251293695772373281802146422502596335004570081921027362527801140918537208918195128282307257824207782690155007884495668619013404227062025765109659487044149868302645510233252478753199068073644057955056999953041317386200250049278608669422644796461737842200693125563765779644049061399797535410387076180183871439846075258578164036521436394254941983144775476036791844161029613620065049578505659537234503413474272416718642454867381357386360635547608537658381592105905287781062932356460989171120194643396566636772451650705381634584444045386089434977858945529462811139743865999726271788097873137203986779745881767478103772309226881005833739062495718524429408274384131847930444295015652852856920798098057418947192618028288399903357540154036433117738882462739654980225107561729991767856699256026930874766604965880632182075194638390832684358545327331671379389500703789747438662814040405618299009933206431968265142090330755100902133597112931285935269697751917216491217364244355421909312615037312174367902248621266962484000171950560306170133111327391715073239036376503416402632538485797436681362322566560957950544037661543983124096951735526310059121776223117162298362712065230504393388647602117732559715061126938820485050054759626723091164933098099313056918727212621510853438447127310470052184948344981279209297382474475501129450719382703491217669115590982399466031639388435375738866020503278658285234661623032170700266131641516493426214889919321337969431933532526791068226073579096243945292244832061689260297199484745082722721536757265532791317835469261049334091035324602368773570588816563568811815965474394859461959994408725176313690993428833712082521189066730770039044600306720623745042280011739418537115511360719745040931698617918568952687614312433970034708698065843671149805910105617834883223436213974981863322583589923088857593489994070097566254623221319287650934341932412809677059064423044800024955103141380896102833022184171413499891312924097814061835638743059870834129899935757327259398573837949212407926314429060816926401613550541782538683057916560749267669939128052765176215274478249908553117581729289236550203807905713419461233144127534263773307603419061203127195241747813818087870330839654643482288436952589355238653280247867225116077819648041262238270650509071896076649619776363539250123703207913226813159614429394081369404557558266166448362820624384184543546727353305541144783844015172350928493995089167862890587186933041062533932114621167517996242878332626565515140821769327553518469164549959393703397470286568451795939230719987860790792340680648199758421455110841229370556153702493232893072189357774282087644419515927739378075267141585416839021207802287552926349353707345256359175679474309470318599003455753208425573943549521584887348770529488260468955462587109578696506137481952988976265327005030732954741178873677795744863578686293136215421208465997382054293092214546976829272366365864097913198705818653172130430302639566484996051080613578345973178405438941784303301238293287314374723911786427893037596222856577030799699507563944593550726942826214205935886146624400351461976775897788114181914304142652519968809636243852383387361285773579213395310018584382467101098546220544345849646482605809773503773444487687091926689213051510458850031243848154332302504024184078300543171048448931107130551574783101495700724872147248645563729309338499869658082821330019481575623922685107427074803784166705263308986225896442863793747712543368928375218615331111500823732610806948952488846894883899206064193357016383922219812097480651769633305173520489486100737049451146080631698807938124655308884664274797051641734148584258504593622807577632111397232675399806751918669845598371085254134473201778296791589787779841292831363563774963777639750179002417670348707064245004453161771952595626228584203314017272036900040021227400940660747921954795369745992764459768006038648189320979008905917324011606395713457974768212922394143915942252446428579390684278725533027542249179385702801645566963020907138875212016587292580538939849698173425979807733865204304973502038229494117042903692347606596678156483107639273483193242481340037716285667499785850090810987402941621777333351865026481550680650539622188765152808169804359306503271419872414621975857488262229318607114361133306223242067143278222817500740057231205170651236116163923950655910244916066451427137349243805019185484603209399676469404610373676296563129170243826394529502557069248443913550825638390612320146214995689592989347613866846314164943253499980002731297567293945426548371134018108217137288575688758160587725860544921960239534688747136913803493081071021229786217846638407630204001824464021234474506700560014060723398599719424959480253508690310134233518738676238119939254632544289776887811893943335415077834153106237876273088172079437686283748118481458212640899620491065338889465289725378401571651865236684507238953786410646570751412379010326208114366945212019318997078768974278453685480178312200808674957358434334625483527665232527751462572546562629401776570356822828348297530521667956603559653416739367736449112207160330769429711046221248625100814725981059056787284632533857917358591275691300644678594015731642679310456219970545761605086814556291320917353106384053784201708293571924657618068703050086342945674427002189216064421515080110285761377421037220347637078628368005763597773869841978478292477526767918264237565044028734962778853738395958056694359757624089154914623561930675299058626034422099458843279916568069313589157340717755353226187016158117990837544130977049765520389601688546371313444334748459179345792413999272224382187236447935483687216491909663318088430049097378545609409849691025156044720763942560378795759020833762428716957707070332354160492844722520422332941870768662023377865782581731584974489533035854547292903698947009457246985621403718370469873099118711912312252383741723355009933279763490911703885280897082722609534581397504593978393912287044242936265831751734503202613785562573229663548566042136874847751721272069640743710822232844193113566535271327148390399374020660435470191637545338156233508126042788124563577239512037821646912126803698454965997573672332890808926197687931126131768272778670858103082063427685589905706251203525189767286760574094163833963363329940766565580472157852311638653581660223471782670691424284471834956786977529759680405002608681799477397575067358812984636647347365660447300633985695628501850213680496424960408778689357889044084203908253571473469855186415637836687505475289820233398677911675120736479695250582723415467164804201603585893198952298903074422853920826992003911250366724362301425478265212692561671821954944529738118052007074971749089423639782359275578768431776374424506868575633781265060107218583269955765069067788683719506549399221133726550351757483432193685450920014638149446549228968579417034002739980580388893167451394975531438713567567642700641466610288988257826466140676629236032965409267013858677171602970713230786819110086009598695395123691075340215926488140015346596401710830998948671404064023693257449377881645273012452289094900826796010366819670045305849060596558646289750413167644522825074386331902431206817102270480831909694994651602151031534491755327716743145502059049654950897342644336574766129315433516340864141905451229364848526882149687406376742616307717079696509160024886955489372695781429302651758911625600721850384424825708694641903526467788957404692242452381320084252601095005783292731836759261897196828372644516581630518859962259536261680376839354271158189067897128838146720422962270574594876345913267079928500997372300143185804332940372031653991519187379459512938165402750955534557341657435575133591761493579192622253482755298012282314525700619115467050142365451596931924063776343444036927148029784355016850001542330573012086607518552868342239352370899126883267565724590771833403236341372832321126761839514490712996537061719025090167793837710215945717565691651322555701998949745633185407535216953418851561380364482094679700170850948914862968184350413290076154208144330310482648743738678165478193643909562397230873027796734781213093977900350929417587413077345597000310361278031571016573381678706247541276761439191877073175111021875611705718077722108893808237313361175115273976998108882862670900518217112123673102022215302218785583546740011412405418663584628009722172359039589160002553925968102474162098209189506091044303303119832263494959328321848187736291683804889743717123401826976019850880192165994152481287884987198189039009230287011876083679962150984851418784745006805851110405061122820764408623584517019638333783521021167309671031864209081129207219038846941011362195441732137442214053352314641695036557135031960362250946706315245353229587431186907776425227411380932116847795762515366573490843165613076311760428924787661063034227232927472082642752505961583976073219072940090865685405550197047233636091528666787662328865922008498957638880437084215596643474903790514911989185938145946480341920596768460516960308822328391666298757143607822395879410846703083135033157584796552185191020324264643012589791846994660291424962918580004203171995699337761658913637634257473741097979404866308757641746225644845542304750778657700992688162983366031396690665461262476444989497136294024356372494756475127122307696977796334876470723089260556447737672258163322270715374860667469977659977972521254173318721526929638405345349456947316556609372462818176701664459741876650956726943834140710901142291993783224823775786362527279104460961181208705173097128112672000080294488606255829994381517582241221191300214280047547544578902746533058767230727703917785869872614122439615115032316059855956010254083393677913643966996948821840661814080186830755260387304338701995308629377242588179275895445463373128775845696510794686925943787120983083138819772129089045866121221484847117808925259362671214499836219514402768186980700758794169981490749119767613603232444753949681197094247980150969014573241055534619044168007968804633822613865275400041059541147481187622058825617700375412245893085724251657187013696594251631337982686812794352794331287487801964125982543353932708866277411411487901037097474300943464747874177377516727507060299141581975975211379389669456583601517260880923214999747024188348750235067868484651452234143898829303107895422451623265443953032087922344873652391496587998445588093899328263396553512000462190104038783512991052641187290534233370324714286953724345378126169251853457372313795238986176830970511194715107184462337977100608815573111818847973249670875441007322019655853347052838320541004054010438868351434066092011001329529408554329518370245706459164519060875486487114941920686252428129636518032428659182183602244650118694736919524883625552039332588722554596760953523274802587326323854701594413980313618373351949411760581336934349356238406155779586777598542731251424009672682180221575694093977183585922311147849584221620752360245919588718860604452135731982596035358290760382886868932890555439497385124722135352326796581855993127620567152616385872031168796901745627235451395461047351717437187457577421814815349265361844249007599951155423138610087342786085025968902732551465541169247641107228099295243647328496299991811907131557278193064424862622565492411858407865856366646719875641025711176989550643714785001207777709535174160989647686722005500388238181315370040194976364639919930724709599794307480639071688814700691659768682719195095330764963616571527722096407213242009580007886322493720567705579688347497088652702389917783610592829029666127480771077425655407566789799392710814164922258401908737915558547305459898330658257174473701113108231545604643087209638476595627070699126764431554909099063110160136853688045950759847970976748439265207657377837153517538908224779173516021897188773179391015401580497850725639082991308804870224541043233557267086434220877021682255973132009860457562317291388748251417459062072970450782487938173353474027274058812403666124032973289888897587884613022246182074167019814493003685511250361898747361224529404952892570790354206595739557057237253728410982504982005891174140675209136906770389897049250973478260411646248102732147967730823722760492896360824937200709358243843767382104436998944351501117943265885507088388994894572288849468688878017674386965458352151363243446276016858186073896895318639717306211799458652164558629596178041482244501567354583877735357500370039175019136382301793472917876865463469404033650574832138499949970340580851209811033994555832349281061975972539297425060390368166500550448999519345963219950895002994284437889804213081803722207330423782082957170419441027039829325093603047330433690314062046599149125430376588673638324876049967834363727859009115232976276637194922503574307165048561985790616053404502316128287395385611935982110481343649378199010612264195982762076537920626003643590606259160556000627630537639147005264439236539550508907910872239951457265741034792750384048684945984159890204166140151577399335341703390551564865528575625648400081123909170107094713358533588411616391533129995944757659758684212815170793898527733694115309283336740823352241274017482311953863246639213517474183189818285276584824305845081252156868107465266626600619293194141224214920014618499293979266099216544951276459322507305594735315354722791611923218321771713856992052884405671629093118256531249937717755672416682431389875411259930313378269777452611628576964035698054649584701564434903003829826881487603088842496762463530015333491508644327433986474594275411945364224228787608055722369530971528275326467629947144666623245995272817947429908651798474853642652840590010020630444039091530818915345706308223443316725454674419043815835154653836772904336410660213557594877526831129412069626359763211832651433834735647833748151864673499312806077902855201795979069649736609120670122677889687707141842209492176540961784088251383133665662027770568263061936346033904243752862029477474909374681411766662518923395006531676052993936653768474726636148791938394877602264901892123652346545887598063024654632876755112075890872091419895851351590263113602927447997632425306995040984636328142676545571764830932513991470372620281231396950618423363914108230925889104295540018999113801601770463316845366875020424668475692037725084023287963475320617074337130401747966145523208307316781846513354206707980276716649626205939480382300171056453940421868289625615092257835377620880260082792536837849889507205453730957755914565217061153509291611123787636635644685786863340149056383953266816123564312734167060292943248765725452446608408714588983386482943345982459582920562867356544228735588163441142829309162289600599416526370321020694452832126574482335555701766699670085638334587832517945774290155796035272818825533563035627448025662643789004610298053684709265186730414510919732632222993932261250437551724933652080796975209557956740806077958626073687271425446072712209712208109046230105152425346796069754646874399732092712945117926642959842946644743320452716741238793709337832686980799825611260980792396237907794103394769161659561675415555307680620709705669741233114901468946108578332527807834647200573716855071218295194123604364121127475083284422806073421228209511916974804956042895658291755956472340581436170950537002812191250587183535064328615257320555846095792131741264968975754987331286704904492526105718210311023581340932062146991350703138294637302221116774762335396235316866616685967002072916869070500346202424571705354074986541668842722358969678731517891081260169825985931945654757324634496368339214585681974816962365324170250305139955574481638618375576732699333986069937596870504528416591514011925643268281947199292367021527005804671801109309602481206123872743989821370658317494521109214684422204291080373561922416301622481040749881122331789927572836930016979561219764011936483227169728727340858059628610013012168925968630583538297134268895597379748771787544623127786758610884521768407382592043359945614146083691344490282417136907239830736320788062776890870990840665151807986111347236974069663853352227328879413558679480423309736270783492614633656459386842851103620260285825931593208098245510805435761069228267873342486736581962787639101637497825705339555907201839542045043029664065968716485700271832166393765772996358225504805232330891342338161689945423008064019313281888966356603223232359482746185202646288247840044669468291270422758793215433995824150318025455153515036422557824223716997604138366654707985578838336281115558223985746385516509638151914684901737295897803181440866666420789589844776209949131941623632727976016355020160657675546734620409608345511748756090312683780757000545265598080667201408814787925064485281942239739171836108836477933734131511767455690903901361354071893085793780970633415169429570508383039072189872037761279572718336509006087022195065457239352741050524796451218604910087650263224331652337047196198359755786408507204348696032240199947447674315523471219802729031745697890509811028210502425722459054706571283972082543229447664577090249355223078829212440883342839701488695619438250615412968927082680104517893956814323445259275748381823907924012203447602460645030240243722753363805786355124028433336790691250498700960481603300563227781934723408949217447780466545552525766333930199471096779635793795227834159559441518154982660378776244120523452621154546688057757414719783800542175170836731093002115657391437103873069549974305715603002711974609841941572762045110412959973525612978424432507987337716622514068539317700149178514341828919377075157311175342029210469012495523993903778488592494397095288427090766674023507058204037258686684881677012677000197388225256361469544209285412513732090201807470276978578916974680477409639184931792193939392741522674406533325814353449298230862152401820716602058894580328704355519906130086251061148813491719548401683661358820766123332310938148935205281658859857594288245189867922644964690557585537351084480419773457423708295626513893018935965331178481835771793017514936742978571153181100115674249648939207773871184603908866500624123126744108485531237589366635366381242631661448125895373151584838614984995678121270697720289577417694258001902436493046800481177314532571217341366583471936492734158665692863316965453317489174534415450479137246132319459528681495831115865540812943503515194955531026578292554674004746844012156791472649785076163168174717829717848199455194016259422836429453621015699391353677502293142425037779513132851172974988532286605154750263209580868011972267045381243797603966390860481150566033339729444958976592202984023750575482244673737057631392273770886530261211276492261905808821170248838129313432755232874619395328530075268708398225530018856566588451098662877009264304743321355451703202876542241226826256083726960538304020282584249118099501163277304165309534930340381953563800894026104825405414438232706912550108410708804974949574681756095776535436606617215583886750169444493897144744274854840297737429156480280154124908533890955242171811308677428033819117563350569993765283436213561223252487939551508018572872414197682036229991753020385750504742938115471944794730391293893357964428226693322243680967021391654965074100602876569615060921344695494907926061140363335026347304043469014210477438103582352971237409103785845517662770178460696409273395696535521575293869855129511836591698674539237586577635212277603904419427674132957979370219693191531030206223204733794860811780613623260128025034142959507886801868389823326513807545108141027285706247651558298823033109997961598886610415062614922148399575128842047802378729903566948829988723723066953156700965436460379059735447145031197395078366371204478569388514808139209541326079273336313708087399862724522864932538538185173753324323101814951877285635752664576653981057237176354707320175621744022636610883886619478924274005436267886712304974065449329932468323920974402449485864073689108572104271879147294188908155065033813649698054421853167198354972219272556674627302998549349968967265083834167386935330308977666662649640016329610634720080714087941503009053470325909012402301649007719339789847695523751653624544772764584253795218967846953278797720032147165726709054305019686552389688774565294758471634619655284543087315495075575793116418818915912696895322302901735410006454037095359875214138462571840265156379575756661846154433168585301070522938761948295275893787446734122920927796533610311529929330406714547417444264429845863862941822778060647986579433534970156654683605256397480539978579301238025886152226294651382942287587113639884155458697598880596913148644236961735500348154093971451538706217947708995310905262030803976495717223388398180965082198729703704254655231261729389189439268472402864696405872772828293191629926967770874597750484443448788379640640772700128200266244258228971099246703517100745853808997425800030197879341987337589822771419180769768249547786110699707016092339371413773907237162047878146752024542675705705814986678119983384701822422173499294240686922951126591252653332628274703522767526611750865657959758930879546671170968420436341917573216737503609238774129870188237265247701251283929340053678623430141821615629970315326077709300890470980375442578725477282075942086590161544681583939147533332551691945553582404733827354275240390445464646491737530968230943149750709634028272006897645713052436570221422560315574712152777628625741936388924914951189062940528376226578658849032092950534391590769850779661213600247575724246569498567594420611134551467049146266268489105847690714225595887576849341468103173365588435062806628183652816591047789585996141771306180454418730385290482455372283512774913228843298774012474833729451515736600444807362122091865431947793232324625634243720932774230119548565819597788425934577133335430026307078711690518856501657342969463082465985551809618188172124206452213332223403661349554068687570537420675951621775593077337582724260045599612812869935185258468327346563198510156507378228746590915003741816075022519768184226405509257204792913946033632028512372959872146578512729004515110544807241047663622698185868767487407777768462806374498200544461114130181574450817149645886778825943701010521621817713016522343134068407621357485214730111237468330965263946826520826939410512044388615877715328945714499529238891198620026186025988844284915445401365631512610505846778758188739456187416295217164881071410621651099350572246592726146140077064524039986849558212647372532117175024694093822438852255367001737767203617327699658029511061962946573288018755057361815392251045292538074084874688322802509856234536843912372370396435604462401654961564347976838201421577146303796515644127938808553435449878124552342660926144468980795534861252377495208748251928164958218936594148180380092971342772169835260876921157498715745128081697156152875828529237122612719425103308553317744396793033380874064933766177061923376432207172507658317878807101599945689686087308463227217494123934649083638612937931551279528686104761647873525017422046072044252876223030125772766761996116842084714846185636060509442273556434963598406506982786022177614720832851641013601251302172822885632384800727460397446308753302046198532177985221566396178936523683590482965059061105371063045122325965081398342865542434322694711048201860129894832532777755639154694660562794736938974977441304584760113831644385418357611272810446406826618411344273572170137308972177656753223173419055313244234796709268198111904729370955495512030807907932169717496355577841551502179933791319402102157006796349274484501166188658745721690859184697610872766581508726003697027554860776877205364310112108420975168291992301806227252270809814889540234572972767479695090333773582893124584428283262525507466437315029791005931307835494191439915223235233710167806819680337395813670029311639295746257491174275426942369554338762282208606251715005896623334116740929753986471484926454329556884235935984972121791018183938462416882677629483186415389547119935627194670476890111387409020797941893994003365607807738854230230748562368653931046321115148893461658742054366588201504295737713531430187538202888011192671867377428761977257495790190770097149600102405259266802865312630936849361047281499997007889337382922720593482797102330093091275265801025048214016225401539294443169093274520747211762931299130799820407589764265298518570702751715732122281839338873858863490123904915089961877350033612014394962058562787681674852779924179472424015183629097475021844362445972176076758432733332422209427942388795051977096689674715276600017051680568156377011636708196507936720408632201260067367732134025159298687855601093633306047831838968287638447620858217424633415797854616072176389176058928695678191534816829266538076988965800547689196642457562749486541322127380254755659668655977020929199661986020602536976776961395216822976203101964602542833414934195760772643723305037500587597705104975482418742947585238618791889324633556225726740168255682546821343093341356738996094552669000158656985855008576304201884257916046763282496963659819690464980013919962270930284940319906878551109916439830816629285247472878542502713910795736040483964751628896710172883185671804917828915206819277987579518050554914655103228708176610557354618050161629439590961844732182156536674830332922646638198899735171336749694338560575217134711013274717346231860649508275772926600240479013723422348580100338956241497847465744334214205522897852446333301379657130320928630022495565518169305818679168035492705418140881079246431289448611185208790463940077399996838401169132885460352996933522610178014334424535523558155280645867180658570617837516795574061456102396317908171511883784764449567501212676003187083958104670367619088623242796672444648344832490139962855571594848497163561246152705410419774656954201807642269702623556081003184241735306926997982809540608873035488503284928876141436956466645565177419015647188075040668098953266165882252637969039707479299603075583970315248954244868869305933769639538733204624743555991230607898897498566385165816852173506307870589135567217916133494477274398651486972900632948632518387554225218310125065637687747950724210773893510069928841845756399937273354031918975647794438392086495585837031778733203962465128253566499099044278435620644218653149466188294232442960284170144747978956831185006425360614064223436138027305293183060125907314934848768168382071855808209757541908348059007264658875625350087159985509880503275086583694882074173769293558880302186711975997419127457945531146309538322823933440400736907508973485597723408454171794162004383638483348272168430706515143508801405784213185504882701742292987038644934253178446656113678751342346401482504136740503835635836724427783842115034358454398896340765118315900140493591947189075958104217849576355097383385684798183642516996799344266807857063165741872076996985304026263768233866673402249528884938415829329375868619577503914172442745575176232044069278898478688604492413226272395369823184566439504289683291118272673327443695342119094835531416093810334742357933052394226569406560129268433252492626796496542071223501047616221315851804907182704174425679620976337157760751110304220063563374062331008544404938501345703610066768583662157483715600067849304370279313082060064706500616507303913445367563021621719501800141180616979788791085653641670853234013125556474444867631141392730590065527344865461381789788321529771221812991532370802575310654559466208543459167344590747568891859817338448906140483420488847341333570539448368843421919302543844947875829625185358279122212382502956048454083992123730051353041906252086292865201705827824800032774970213116777472190454471812661801777648830872869063904822998853907281582753420195436840949303594730276019054402539982114798261299768098762979901313507214041591728461526713205950393430829821216433855689535820322407879799958664825687150589502744862747184339770552148402033185024166979712120396828745647892879685361460587929185161677702867738552988476636951465241867190461753743085306386395352210301864169552799500500959944791995912220978952345575208742734882081719076650242833765728998497911239103762056349018855034598777768122640848421264845006421521921051689218326859514376432813318707991494124009841599853845109681029672990620476956610001279852204609117142076241623222483409560900295238485968356438193521976140017609659505174969734445539191864254456235990411721743173119123357644394909453034005575279581138413588476517986650802839898598373989855967440080631449141048321991459775295864814864385988930150724074185999963510014926038512077078425921547671092219307926273286610257633058232682547947512606883621890733673767902303130643996536100468679540229097654133463738291941245358577039545533503309782377866277508532437002730869189175075648990602462633720103468296009820571062234478747606854048065178154720949552886822489792308783509360507303536813090818329445132012219874508204677180810995309471397236391359020995419363772153710321879698845176898398933271793205019413746616430872006085474282765433178509631864458327867109354813751152649238479560749754382267717038833181411183706687609950854305079514305137804041903546500780128792864794899755542833158575372528203725739692699830029709586671449528125824840020809832881943353225644810298618200212761659807053597258493979965826351101383671328074516574055831134103011989699805823398003878966256017951644199512000568206555785460904496453214147955581482781779779475497183877292856673784672139892352354250184845588452374224664240253593149657473053261517615629804888786687581564351409938730931297563157424937666997830979734463429497208298499963510755372862449776302747936411974797945397532497053803583351946449080718884935131550621951992184630787962402245278392105816194713770200706079918085773182186260264875004527702918817551991650420465022223827703859697823186731111974998516121246614252625023809650791038002724719651077948519273910051913939007419823954884610609684830063087023360647641559158439100540092607219699835569990068318799322524453278000587421142672080799815699068413374342950134682669470225797140317709132458673999740756880042063961874878365310104999222881100155218690504961528964483133670344596683648521949672242316308684302296561808576382790123691967516539313894626304672055549493080500834669735756290750909452200361997680356925477723433805401628250053299875039860686854333457284557882696123515449354686876364792017830553450068541965693458173118493848228393552597787600181294753856231481509572932671652332147785638983787604330166048814373291906779033512146093514510358796789467786695927909942100000224302332473624415865730342679988709836398548339005045100517626710284946900878216645160542118048018583877236971437513256579231822393647020827920013547286581337755028214455168950492861221440223485840495224941107777480751032971303391179611554981878822103802155190006504828998555200533806123391133430050410721532817319074132490100781443500522500536754813451302059355857423755062702630839645981360411191179967055941922455881748302629016144626317662227484259020782790125701750573035724521838678070602915692849550843825483302237134586567915089043912391483537480056735656098631432766831198163033459421444906626039279753568227556639851933815399320951295748030228004124514271675823708638062642512302001143514178982275661225361617776898808107375272589989443154502932212989224924232192029669139779862112917641550357529294215909064253461528152828493468484245839082232283598091520938895839862064845315736030431748136453404954161236623785432728900741646136133336260868349878713940324429029585892088530615397960228640581683778706107399282904851221344059660382174432030343124428203793908856053160576102521688638770434114957593202111890496253118936863107172331160390622558187563260468775066086514030302259329647946296973418978095142695636140458496299204591940333166553010108409556787564065068240168490863658985025977991940120164556859079668402372650385783806769892815374417213419939784554216701283997476077841706550047286315286670084051223998185585503794058405463808356126861469431646559379307872803961449815980853134305142633436575563057169102876438934490397692752006821891347590956243025552671710306883450756250021976722009145029072780877080624360413378752378620918000269554580029403742273758586583513443826198807668399744769336918463365311019659448212175564461008739573751036137765438885577547373737449897351711015762392395196205566773928941782323185975483834126119418158637913925295026340037858472450025583807287125991442218943665379626035951103699917694465939546567735430027964339217130542969542824887995273309724627302364962990773195503611544695333314536338008225471296782394830752442332305004074669985383082612923976397312073886605338311691788014674797869443817349723770767360565489626062066480228393634416378908689813419168077034059941583887815551154291544464320306606711570944555352259756823815730599746025824444726462222377660701072559795764889788112886366395698477331477305609081960349124560162078379167202890703960773267587171299839093654729407261197745248798860018122958401878093377204728045945013255702873138458963776171781934737987794905811410624873876733144335762969958015682999551020069272154829135359924263403570185645132096152534921015131736418910135277967095559459957077901225592626229302815141028783261419809983937428189474852916278648280157489893934575525560406380637192576313270917304391223504894263068854346567411988931201421238044755591852283733848316779926468759239188006518147426612508077453142712240170699473932173179735450482748818329289757297407808387747230835414095420459166459554837102106145822095720841631840741854738846841716417015644878108473800627524534281533281100135446651680272921126035132914364735148936129885171833999804960053046363565559562534351963593377960594604836465051008444157264833751124615695358715677701287670744661435975915709491150725869805351453952370689460353750475659188186067506865938043714290807571976333561831501792692585924134032477095304379621865796867601743861537587699125824805724810472814531309031800510301334222039534936993295815181407867308712072879921602336126578725293559777391788718426968040493596780750955087493743333672199269184622876578367521286213632930105391444293052436192529175245742341661143117207136928638115836704614966372982322281436738507581211062211335810927783085226766491591320155807181493254251504688259436487986763726968216073359080070363860092453289295502994891989122526845234351796253348561269077359512991432585458237159022972542157986108305780802882579015211355311929746445430151570818022783614598626900638351770978741566616565310215953832523327203894293499856907350716248812366334908082498266026927418785753277144563746830591243000725464760937663856846387307091715668285693601994930320747681262984380375812428428814722036618509095340577300970563206928092907681569172970785068933208002846531129464874505068629856528890459045103613021260441655536527421564668725167202131558833001135914248250856038631253792388131242399271029282062072484809036342938757748859859126901038142039160848076446562561368871308103820833086894547244254910679559657190304988579638941625612663933153305836043469462457116476448895435408001226397960816662725471019714666535551137766766314207069122703407244782382298115030392886628077369447196226283584164756545127998571642854852785722310777118827877041018303801503389228749286218867109121450311937975286905498528481807088209391074089252083802294744055360382769008790135587057677707794741009476538251100849687341272696747138084762865097779189395485748119329455861129177282179012773649700722020228180715457080496241669307415303819667565831770742423641801422348244643943534247981982142277051591813828748283394014453590320284334575504406576722994009929208913308829646106466244581687630000975083378106413821166023200309395683310946663511996720380103874705954663567611573445223944588099732269880119963170925428397656492527921596006432625270024583425017846272186560937772250725474870611870052272662590234793247507331431657317442013341266784821762079327209751914991368879681170120191225178094503993069476334996691215399017688294757962819202624224872017986089658636657874983998180508059682559658754960060755791501245169634219561964230023241870635810426295207234306577908397010549410339278834582693326500787700360006571396231583589392299090841743735295777005413886546951524367811915413075623904518816385424053178730406431574323255289867179164611390931897344354476837740276039488543329056951199871292324353430636483729815484320051194339637846796188666188123168083622139572614762572529597075829323500017409213511607052640228139619210293560331721805776266131591326780112158877405785444004958964235270630686758274134669017952901474490878266852726119216010237301847154998758950463702441945817105272387134616409519712045365707334893936366228333329493589813504915882034460938383084032398620451932843685552170377611160889440257215737225350406405481874463401677532795743535475945321157860274632592929283859303933252666250871555474698103197670229965698549684224126784059500579621857816113320974951691225241942254120380553335330654265476115398156225618386386626050857934935333488519478906411146952093631779665335408907330226317539656130189802338136388975781634041225155168613114094624057265752671435264191660914716011594127887943781465064315259997822475701124531423860174349381363927079469090998089645719847344905475713566071680742695054939229493803060494322193533812753926412493847307938955045875191544042842299400167885869684923644446282265348086666214503992332429641655074631933614074382594145258225974522712181939465403216752127647483660312535362615748491233671460410187546276771203180714703329416143659750669597793947390108018729780048572821402006264650280752285218694136346906889862756569314512570161092113134282061373541470722289420843082751205440127021287289525908696495189788594134708150501210754215937157587555795238951258343241738923179842975239905902364452722474421007913187923057273136219063592802489784427051861192939002375397716072772252396959999043537889003995397824437436868415628004799359253491798206533842207941460231144744423671723193161564948009686244943849956990671027435868255565697045065091770374085969461118838734341404838388573329997174494013233680969588195237449900512510908758259530068626368947111751665372471902758807903455865567116505477038453783299617203517619298873552330714419798006864008376091005445725462239384123711045511434040899869386597869457775051950578266311056529961074048717491964334158633476911568867231176308191445518705695741561321884603384901995655450534774966246193538558829341041912830155037950004390161649231987836439509606081019795527732927661646887891836882146065577943989157505488009290260287765563376036334400671976688809169409550809781699022941567127059863927565749502023719354431708123590571965428514825543492223320852391153496677488433371961864757604086490257544569668305192514757053536403912397830674240382687636930727239863406510482628132405433446805928848676568798235170059123868902472470304837101336129464989985609708255705788646760625981499222833408119237840267940812886504810667873036532998901212999382481360469657164782851103718137763673169996043518049506974023006102506417037282943171774290426642306447309181588728399348026623457612432189897645741689974465708439544048005761154233856142755299761975659527734333188560930835246074950810464867721103964350131076699921137860201689509281438837485765494163051674443651344530961480386198931124664494782281384993929307626304919504929979941095613770871196352989964864329285068034383975326505352176692340296343877743280199697012738161203277599706614563666167343056730067431191288218276837671212380420783441620209416320731512969331011259473829884035363462677231863647197997911224343159369721750496382983161480866911350119495810198456526888553070354124775842741986399147581913721701936620405539244667636589347808074753379929269557933969023695436012411543142363013047543098952450639388822626430123388514000835537555738653424193088832277535017192574372185749735923285365502449737718180389428616553659963368917198771034640201137666164890419596683341763536541754719551421724544589762132895306865539768331559087274985336013695665710007783049026268485495943831031488123348313878312746759452222985248587933461235827236226250931468069268756095930514350773484428008306437628587809454883445735075863258524081319694033503605243090388097398233188975481874981047385248635763298156865421202418455715034751866086726667434120500314903663473228813624278330690234245939955785084578032178644657979146700018069309933724257198647614782666270120531781498870371282580588733760054154601753584907684363951717878342775353799924515488742937870044696184768357689076746864811599807757001455791913125915373480962066783674029016567908945676067729666312649942905415998015663619060560186240853247646074392409097320038650698044048815983657652811864561972532081746416836804388055041348906945079595842451248822111401963464740295228387012759456928122578704757673247443628660028969059594951011763557025234522351580207075642810161070592330617988390802260433019785321470025147901880601644365020179120948850909079395278512724034081826303630917377733301048098990486387121738717879000654963193269146800285630719657739853154485930127410057452159559898379545255205853362595500462859381432480884483936202645070115167725583001574998739926138368321410491376898437566684131788290127615751790462757540288127245015117446951060421328628268249886145818707414416417115674796020056888774045391805482735346016544833545444977660781758396664392270845386778898058969480016138900803781337823328908906605209652495489989588435422857962998513632203654800804856406479836056978478920801629594114968198685823885314754583943299060904239161813444323246850610259053040319694904479612741155209066662979018421450038200849823087650179093144325967085309999831159275150549367303799346348468618316329559656720457358575218362007534205524137022310129979247674220655130693514445014091209445070295912582038816649362271325971400497417565913353579027547970721726981863564946040073556973477209270819470632880370515398543815715192987440290228783555482640144766616856101223648471464815528625185778849017578126304418802619108171642428470636935183261419575153843959883121866255898080321857855685401919697073559223052610550893310015476077125387558217735292412233765589042997789361198962033928983715609127861970409724340607117168766389408980659916899503661480402051527341425507927735910888857253358706099148070461566354903740127939320249360602082746304795058150223424549867033113806445384727752437664460400432510659300502737219325796033914238435506036319540687603146039309008440335748851485596063042116661116770992676636879182799891031019771923932522305827907401521946494354228755820379225235398421981711386747924370837329289479011963739241592254234933282823415778794461790292876229902007185617538780548657004909510147815809587106903953824059581587936321785922734218700426119136006958231399548939704128772171642160271045535225563096593706834759602685822782501269271718686254145898565363965793678648108873358257703327348096675055776130636108980825905708191986251385597229131111673689579469714756952786196705711861788875962953881202609165693988848262184879184541197453956523665807469631392226443409249359796280596854471969870359772344676944598674475482964697734004456020381763899371238547537095037556081238935087697717387695354688291306799784097457086167722022564562120959566107053251362935215736226019633379072652380072860506976849751080993916112830376130217262204351677032336988103892441088398166841484356012861730560071618846628533183886863600934737949879574327040351541489275212823661182167289099786408715278375355489426481884639747192092486185025465926030313154698421743824520649294533550822910306047835751565942587770673646163031092954509630303523442536360566603497679402951642028121935474466323153296697209683155758545100803072687095441751121767351376825395700450905672741599019668182598196257173180025719244903173168602711723181284616273933640046500999479722526152641997535202653161737364212515740076531204336025809482935978864680480759393782542751362604313243803006577472986910538706952844804059882881807002020908124561023046322911321251636770695476600300197555069809975785266408855276638289342638068121432457336515491372919133607320973597973360411879429648275736128602226948840395843507782196544905010731301576957598414905928870510815223363808678035791780258986602533600038258295092398280056728214558165261729308384858200506452905483591405212084849145843603038817587469986143840148050861154604173536037511411516421353200982704899356365178137868411207197068857523499499501160952738871345967852964130852713555143161781913436976293466498924331194365905388951553080284833879306905285184980705361646554493217760800995789701358669387455741738806529110903762154508713314122301050616082135962415575302607514813362275622104426126130284238902127520016791893093202894145633727563662531778009550028872986257821726220246438664156176102919674460433916877098094993004007031688816163991673810272452411129281327361360193611248462098605594865564331050037597551560549578146921027196253146685954278982038922385246015682070537947243309773987059842409561154894367285515839391574601282237759539668486943723680739517208924657059266698765921524923872202047605948078612197651070383545302242597524254354483718081160396227883370276477128474264150869911334911929885137699219873530750929961095138499204808231921829908510361344067338127450763910012222622800926855263167897892471057671020678534752520658098575625296240358240917846080694668499285796550044787397564769756311757559913774271884011718160148711246948458504498812459597437039257999822632469783878618212425981357154556103394562547393264023220009219758825696764352982305130206170505156133227974732225296268891911629930673100755527053648756662734820652943378728878365784328889961873314373366790473529756694799436664822385216024062840526849534202153305866026502100730975311313542505249096158450137050312161485750336477555397994224225440848488908134480845494469148348621091025132373505899443489315878440765349024579959779439612710003569668850891726987995066438848660369132826736224349633184912678559710749056725739318572733053977650848119002633474104134302201538326978252927557767252292859053698691197917342807941750893593240769401671018259984826872949096721735571046254166132076264572749810406686684955597085849270619879034843042746816126372317249727602921565017225056321802592198336208340355705311944125424171386444165825340798474787600653862182941224993209658412717517829519998066628576939235982798508630519657338648816094057500326383345050257182374687014860831835300386481861945137643326730061692881890921204263405401062568283115074506490244683704412166687272033113699468577176149676132354854627836443659587135164651668536015851160528035786049776989699176196742874309702386044296211182457275202100067516094341755202958739775577966882851825185295261263439441463417352406485821328350469687766352173132508002434727492107560990150953549741372151458481598320144155448007405705794917759585848627765757710757433742077760383771138586855189105924733152607287833354195707419218964741654399322887273790440687659586310282081965350730102869020501302188384424522451632340957842728586883945077085857190507439508121903337552513461804209403399381615156137534962693920399055324087505929347724857080655962941289546645527745162995922720237309286063582385684431116309157495067760022710561727361444200058142745535175888598324968756142330602164551705793192262909263019692739202866914641423462306640809645027695083797248215409431114555328538522546929695280941013559870070716297521240155807984608144634019971097089422884857386708419424788731802990666201298432872671523205389281189546882481944157355613424334012237565567263115742806581367744216078961827132928737312587785787544570123971524229518746362998721313780535576098649834383487614074399570972417054088183552972975189994917128634468332616694212607943882648608502012581393984138679564926274952738432887477612198650640975149503299617632347019450981887884190444881002102259320473033639383942323626239319035353108976179488002086251999024093506237332541554051076037974598879050612769581616577178459372293246129832087095322166906810648639058614396149275971888950145720635089093041179287077280922723289665150157550953785157904067036128090665903836211220775809539576683258977991688343471732731074877890464506464627600736996771201409631031976030525791809523263130916564332576828297692506116462953208970206186146475245886267806378950369818204112790502426260885249029093987794428000080265277762761355223229046469218063826928098420405863794186511268129889102178333325925362663602089249377418496727196918679337039635302384112355471190347214580848652949426800816858681812777774090793898579780548242898443351877762565955289784858848737231836401145936107677353142030477756328698367699183482726027719089317669515998341986396469623815057848940232640352752672548619094748800685575811581495426984165498504180918266341064586963372339759562092371034971263693673250214041825846598579643120713535798955464082746991080633338057087404973621608925139793461687496300774669639028484292004795066754969451453506216960294010221576354003213461101578436229875503879796223085681825956505476838701074814236782417943985086977467893237678678941516827804331611965965022281425492835878168173199544594480814650490054424900384443702405148658572235105052190784260222817211883819824024414015724068490324121732445582385403760799480041632210362373090058351282732163713114511325121017411852821994259193782049133030322984130240509593161743783941289499413363881025218879481524164665114707714255078227864747927268820099722660959068828041804535189690535817040985744227300416127223487942323369763938100126469360914068441422377525412838972756542384136762442801060249454780445863751960536384289588383455651204463564239487019947312760998356715081936774199300924010843823596325295858823707379499833527696210223773647839340244956907923676479429177623244334749425487346350874698822662888456751238167229317734873168614502120223252445730594992160674495977041442213421892624565913201474303727807014210064716222643663101860294133720276166626473644511406585598268433101529896292229711026827724271409099328796027852216203984823681009666687729702696843794258844811024332496999206703308011997995661520373835976845284017999194361006336971898893565225099092846874758086004209999020505093575353459676737272600601141081466284582164271814976248454829900898082069936877471049577372103996557725256605971114659219108744614289457006018356713399742834340971765035152374659122215561644092733714495035867034036086011474885257772678141682472575020021682007098242780982937460727497940444427366567647071662300053373817890015892032820448588642397990066012317995141399704464312930882740016501365052501392233154506505548157134758822685409314920736703668071420480855380077764664329187484127354931422972374234260284120715341632110097849531399456328061291916255292969717770156126449948309022162106511169759945207111920777062787951530651913132779765034569894428059907862127962917705565357689555743560083732787614982792719709759239901646655055876070624397016191471235126598526928698799717608569115588152006094439906786811016496827100644480525033231700206173809451380979332108099550315411773702150371340261121020102780985598341046347027602378838947502339257415744542171503124926016777838141124623491564374386771781605037475164741871613052527700435758870976524143271250155210147210276981416343245977598150927826738285580649540146085417485150241117733219749925307734124797804983523939220809445753701203688062533565798181380319865518851535459034310240994325569347161430417244027468994096167857979855564510972064613395169389877869453303260795854053751595874224292817435049436620492075092676239046082024196581544233110112662480678371642791903118346915872462860541371057899688279349056720223793467085199033484601169548124382435432800728495901702603269176257565793997861819731185556569410604173791998968063860197815783262430642075688201459716764487431776452265352155375456236068790969240814712477505749776066540043753294303151210803629141971267750212859035323889402516987408430722781366146507945081997124274157223137304892146418431281470537120595269589021462899834082075107571576064069682723088473930641595064292319792082436929893136964337928436427292911838133214055993109919362543654217867113134930503763821710396982757593650137153075804705995003741031522980985955281326807997521881616053110912826142365593636846022721210220153189122022309542349051665493356483981987339247273477433499328379337535039787180746284773090653869229210087234675025318647736897470349208877255424470348757768360288416011314374369541967608462593565180123875695987144793394187144297448152890772386140678325746390861246228842576129686070499749882086645410849832409817722215320956389774536820783228656248955392540692937904010409392710121811860044688829863907895556119087229555417683717619770234053973603391347368089875275244618301990098789635403479408349742430064715911872668303460485576404108051639577300653495032414026990835753559730034023612971576238492487075197563760845062053016190399670333895054352807106763000818829914096073503553211451991441465313719119636822717571284384407541899925509532011151839346650276143996224404508928472829642753487741271234119617901284620169427330802407740535906722237005573830752723315268830124095548762969839912321516452418461156667421288348596685173510801942295981720982159312326110529967448375260365263129561160578730467839810351415402022872960656083471856823043094893025326887987431796834462500317535692236603938955981740187396967255029935292253803126979115967497300923322477584260498860571290075117816244207011707422062600211090200144155504359868068203102270717369546660780204412165403793589391055235801872609642963161888057700979076855758528453182610489880151216825179347329977398708482366458683969871322216482771164180410131165712835899231232511703404705776871506750376856467814614043035657104502440894568863915704168295106086506288933091833472415343824727695792718786906362721845469192625541315514524989599180334233246555905818701662736464078999333427138686887075383592070864007230110166291683934937575947336661739603643978630752490720287102940732734047560391941588057933421389930171109080352483100173032909773502569102948921252423067615196460504289247644312827944823028488486880221000560199051934452341341055501506977784124945308917576158617724476082970117848148202520459443609428197761131551636289002124461838146284067583456094742271901187665899085175834893669398790437871579074462822709553728947354864742418736349831403410184022003232296275224911061089539713595999665273281097173004595875413195937786668648838988251363837736598299093235689580376471216069280262863669807627059797884346716727212227489492949234677644711149694027954774102753002277304551535940928019912000743070543420930368160189436196815376852131476902518912289425492935876114047738460412805973130879643622609156432911135309110340624903647746417559598354013319903950008420642018402522127145605805549873021318108011293080686298998712893396764047258188593403040039586460977013702966887519078677260520349663716431297738040190683423570488809750837031979734430947445228032109359631858596147075026575998802420485954164912692888499953104546653738803572106367442875581471417117397025268899929158927418282134799630119816179979639755413880467562700904977240143369279944235685385649063431316538790836908667117562281396500250500732205585479502934930554494902111294648965609788802691603333253937978171517633676765486846460576360245869762268979047201581163424030483688814138606595521649729052111897696852770412544348525763481634136616580867933242855703285535228994812608415059736721432723346509289361894353894201254089000129184604959838279865457139696175620558154803220390992780726359766670545777203684106046746072999995456724339406701307701271268592503433769617032879621079370643268043117638272760676061318286179344816647733293762792986274476271882408930728149819238230055097739204720370824693799190611182434186422644438915160894383534658962102794430525785365736521159302286772997562546043491419700161935776497816333568859613678435888625736649593887498151553698352497710287646770490942360380078035281853952748576892460388276471342075014209124259558829907184604201788369104306325489957583265875452767058291804232672070898532506204979978050522371332489773630192958330615838408917246478129029373269913962900907005432446466702237746733064412929341872745416754719997057365745643375906408082752045989739343332984943167882997857059688925561968565764455245909918163178001534000132914512839339075876411383076433906243343680058240504519455867535468116899813130801821680530248362617976107481318726140927353930162153472565954965477582232095322130584502830108834388151874019391173249414724551844941267324384942484926660268639672936036979095739531829860910097671411957745753872296873067396827531662695954819617162322255606318786970128970385273969352746160452907744403154307138323963639791560371843019743430185434697660834387364883916437359405344201203857448856826327996181230616615985804486970384384105983976638206519748948512038916707019923415297203886072872866133744011918442974248665011565262402129852186856134203929210137916404095750444244417327145194551147245694825101376597309677758534064979428926875381696620240488470239470592608877264980148688354867671018815941985144086146192030557947354686950795393389924551222589934262762989196366789662479790381746903657476826348221460942817662658856253801829049554840213613229484695522893174797740455468678732411550875046868743725636407239366340074158525878989631809205309036770475061288023863657689174101498141121902164216910513364234341513318345543416212027012260036879411358634516680658220543818551388262657135242741822782184753995462131855721012821100690285557313362924793993169563894565936799550783140784733934347401218138776249064458504556561140964039444236415882464467457867253082893320159597981800865366658536328230417835367303508086204198650274221705780431498431637964930133756201258682849801917810909810262287436912968693634524272927281789523583555853427556244542211881333208020320633680681312225713307952592115739558979335212246677028053085596535486223455649526845008648327432947842624050272754186850266087838384059344257868915746119397828801782513740148098832301958395397721729644237886583689162610794137176829621292651137367373217687968959323319415048749535721614381707435436492077240449629819782803619256755966229823418638454052659605490832903781600005081054344908713090268121296040823371431018827279165505910642988399665136330165050252078333704369698077675689038149354960069232425024326718950446824731175892352951030037304377666281790888712446281514681026134733060585856979487268922039811341169452578019386266971771963764457442531608860461786512072221034337147477152264785204623527470758053114111312398809761161886685510933722467727752132118427701481994018807180928370246190064036579700451406410847678249617061012788030085584689402300935093687793786467103058395217853370675150875888188286831139124029637359824080419127704031262064564283721411036061223151289058231677665005847485418094706837425689458742646338201846357720694392073287151839266610199800400721790822770230385525561644909218019017338683934661093319627510777109319827476902926901845401446308065356342968080948530575457522666302641454194182864061709731313494314336862320715225804134308593901155084844320313238972684521054234420633698063647726188569471587266545490114345069484137412779903164714366900656639064325823977206468147920671246869359297252321085383597953237629740262396645784975032587801235987720881829646405819245694521511801329554230539555522861416196566888426317531654833459536264503567981407647679256709549861057426905045866669781526551984453365483466254615685403126546721015673292958198954282048920457280612330525238815414836563855509425457437425504154450343356298587231007053507794314686051239313830106550957950359685363007505134305638607005497823739843310989797022993605706515838837222527939467539925577614585913497713996915307105067400695983300522833622485208072638680345974989764791906004021496345297803567882833712908315624823934864791172423544072974225050622485499460265158757687653584927571164551813390786795320075217382499336138019453311314925660025225320413103856593854427575580239550128701999430419538443766641688220097908614920539235270122374764461710349071680077434939756624303166545935562358047215869518140344606941245048458493931707572730837599248986319068827280947587499492766874013474013328395644520722377799843842179683754325538937055152236239679504680629636114011429439858131629311133367530545521613637113942011612738677284916912855133965263618369881221693943203774157636011570683880414787725348692771822872146774877717463328488315719759545080479765551655327673081036959499299835334093945581759531569431946407324254247455347324233088974817824384495244324374765394285484779473975145040012425563578437423298383360662359073911838489972736955329779549252940334512174837844148018130758314851071470945687591869886482346766281979836823144997494741498954911843758264357078364168606261369573646528847285796037755399147933606624711797312076719784931561000667361586019062388020439521757784677639251551570533378241571645187389072187267599209541915194431129293621198679158625734074664151980647076384232462733603849007381327005009229610173392639584496704573031912726016103277193890363324290978774688302987058817765544771409204219844942895876160338544799894236513330560623532869571278375657179154245508046085251160526688271404741123265917709234760017093270324711879226573854574701996672636074127007233285533720992343672818784688426723352740577384124566239448475240481020241524792862026650827784871686906129491968358612154138711101342752580646326390449744173869708248268011025707032721822989817454288347849825555463213553076157509324933938316283865016544019425552542718217699798991404709722457372043620332305909641778239167755063564085416915196640360837349578638194543539823447253428834001368625773068334312722498545540764896197259446647301397844468837175622648235130814849812404777005143734958010781515306385064210045805724997540787363517245825318137371190202709475567159552029557668875478002802898045652387523042819955774410186751796119539019457937656004482979766970854651081194613866972183915529224735778843378744080852781535328931627827446011103754883263117537702632722421699129757218186507473370820974650901901927677110678226696285636590284396421927046188004854860322518006418296543236524090917709575864928765928344138432133059581971748217304790572317780104134289831595457286931556547029727639426056318652708111842088491488779268878818276661140461046584552956774532716238506743654892963836428090041913065568298873352759913740849824636933556651227409163948365992376952051653782185297231925900058504001486131172162315236152680473443372326767379754896509448407545137188066880605257573523534691378518364050494174021775016403279136615829174913066791003060294100671300394976234526838833590061630878096074256383566121609363528442602813799622285942377370402942773767261675044275182272417886996364387781936876803965843796840739116336126817955443350215133531317090491675181730859130365348606769652304940973636439888018010515027008065299466215534505461872338144839340758628221938350831275167316785722212388021660984534076301646828829355252184366038130855127082412770918545276859772072210538973248201305616433140681239885537703667526392828824968637234642323932005753804694723956115400540253786206321219307063050461213379312239194004550199331231050740116185784049821334910546189957601918211605573339127425166710400111609479843207961716415069773081274174997350710030598583443338819139390623637093189904472603312237170133811050347909894453275167545916838927245945153996231487916831670299133675070319854707871316238544952435606248969794762137716368319248632996366360589445366789443212220569081905813256569699120997022650717228367065828621562165828048547953101350795646253328801656390321422262529349200580088725574541914389955350268382298046729702205762211199537283523655409908066697235586715156973218130621608251601107131233902917195960975545743896496146529045866585671346807221300814007910031033139355549402466997094623910092460583614911681618041371028425000734388554581327566017597794673123603430061885240703174569665724508796854390491377699842410758759394801531448375608231209338625196758296488389143040011928165608925940411289425819553036519685310893685777689296289232403475306022881326656918557936599970497087385801194578399737176194421024435829502000228274107684144923308799037462582316192605606069413102302649713123096890024639351039956640724034810766630032157334541076103383574703017885282341171668148001913841539703253047806025537652040228492414709134502547536106440677202939303534129816756676963764912884083052675912344983865658511045321448185567431696943178764073966647268018279909847192451987835825432810350276265657040637054834550154749388884175523110509559046526150064255655283441619678993408769781654419123245860126242394847846357115184288829634747283190744986902876996373925275618312737588383239716500375928355008701284105332274779554831177016600351659419755875318082557275576817287812566276048035433153642510099064815928183996495923159283585425709009364552008191046130253129783322666694009825986185392959034534384260808022769586402427055008353239402600650183046651042846273114152376137569967132373939559969690107582003353102614687996432634223598189868850853261171827061359846708982536947240225712328442966002269282390397991208107060406570506923606055966795283472438740541271274436480659318250030261693010451250535410575743657571921502724855932117720023879670859104050883192963145475367246301286029775377765503790743770151331738120893410321598501707388252285954617243458162771154278322686429197918159006527946968611889572446948579858310189346411619246828030986348835040546100637930122442040232302423451241539317527305377940260408643106595147769134835519695786054531039676558332279887337100934897600672321551899425846427380064207550336251718237054439872747171585952672500714298752913862747935331833660668182667868681259314581120559517582405203567165044400071118418328116614625030605247168887493398414000494586880380881872546749428439645483457600743788856900946908820137670564923994217719320272509418742934322117343222270268932285571962325699362638220556921303417967355927006692078412205466930044389378709913959053208146347969920581639147878748055772738171771948473953479718232899648372306188117992529616087973039364595002538206983708369415495429622510089235073910381625203585918091306973124590536495659990087908471511657184379583681917604847850375620967884587216485563753795911803633071126926878459676258862773300205924764731742717448730848808887811834500906132691071078120909080140323784150826714161914482817072446029549080630839709703852920395818599502997367023189463710180117509610544574445303861312276716235441592211857537925103064389181411964461845385756692044230253173178737303808021339234332011901489484359505326074402740653933888009181938565027989437043601245796272346142162078671503771764582981832317301708242301585162468578534241934156324740043734252464364615009608133995685779647670488523406657921349817280686415178323408622854088511717984590418377077992647555037393462911720886098933914925463920120685177749206008978070274355395375928060803331069118112988215450911592125078118040754100776406899571604887348820673851432319995967699203524176675036346183534357221333887675615276131354559224751802649060906604469616254423666450240104161254315378809430734151502582652135495759558735265186869627742522802459522084396188614136257475403656607928689051395742665322122539865493534571266165210621788287244860330458617906186201201299077681039023774310612363611588327648119835249412314517417456170357635721462200794941720453713899096910529326729771981608373086625282068113487363303584185959346094875069569219848597740715324486887884361568736360177086009286669570023591754929410203882884657661279204241642115241461100776658544066092754874957987150467578139511677195379277722416326999160163433505278060625185121671589665714511078111636671377418209281651222516934719266220310720106436415826628581824990276405386342848751629927549581375832906914369851923420956043233341603274277877182718926621295797956682662983222980197301811391580967996028899859704454037252964809150537843631444583117196664906567925317370619506694728103736401008940617627173474012780962699734315040721016977489442587900391265511228059442772202729358516445060986212287412077458204193352100844763761166769910607999733890608324833973608574875850474370534410204082449874670666351995621637028025540920450821104407537197194048829145190843041427162999402078468948390733981884572380697867076348108205152142310708963069501183014650581882800763294898869556477724250271326182636246865655655642183948265639799614729630597320170115789603774619895520846874569897687002392220548624316774770937802467689978847345538758135036897547741211407465941701792728452688559358466026883413388100874309178145619989961286457809807417090346178477593475294039822416621829350602751733005358616324518649874348855546321865769820654505699498489598601246851773620347965300905529228373786664950344921451244414582475020332341279643756928809993341425309699278768434835642975314326966769510961907824929763962163920811372878816136915524944882535548644070042088334871633751197781820184276858618715276418639728730515401280472645969019568144566775129574688223583922042002665295580432758309391688036159626991141654527689011981412592709251169206896078204426343268805592703063131763749384220803553364854945791643884219206426770713552347271902274262135453797259515814713346287591277703653727911228340963732599814542543877297515789826818961865840592704940173050891110609597825976237805346739518727981825303658183749505702969856649182949307929247530775447276560378830763213508690538997072924765454422208109814431977986414771774675715661731903928686475304095566003376794951844896104556108538173938194016880206678070984130369943221623255793118642631467395972594942433239336692297131413227748802922606151365009094683105385166685385406594918448985937765527096166863009632229793795886003559676664137697458235378965814385243084864279250887884033335647494882996419959857818137022296704336193391399486384747994672496311261634671114188289991958227156726094742106639503673695336048160942961193071751252583636274388090067316525959181867412193404833783053410484100372320723946070126649485330070910716065720244655625824850951805350810389081601321904269844746378988477124756333970570013100940134372581047840582024191871010458412200427102900151290733350848234173879405522057032854318606650083158139384680856997107600343902641190802388059812662041808096332838383804827211232509825259503141476509128381486315954129574201263135785486145171764169940149608580256612862776213414329873328943107065636600251913228375605508402359507343258226314863243024280368385987175525730988716334260343094368425248099397381556536933625095246860171985207954572926501418899795777699690713504956936703093942011026876149226595118888436166700380571514074538438429512737078503917848604624428485408555512868471507125719652886390252426916630201151323012865152300248410098693320640882653194365881370631815614495886153913598998538605746752626109150748423373809177101616295965533658218322112597951693008239278767353940954283190019996030808378131053079646043876693996707180118674206036215016259880151062798017253450083149367181891811914516328855043406568608948440145262522199853958497669457446397156860084528721428720947987427776091533326967813754774761001885515076386472288788746812423369764576567943222371430162585808514692590312508440455269564614592542177956856219201298066548097957877317889299345576727472232971401495114932072025868141758959862551943958917297375935995116537673476558324100344228847074735448772952071338544086813862962037984127815208118862958524984418951439877549528716680246372172164193547167633505805285696952780206247306740765740439869718162202495270620954948313984553331704246242576046898094634228337697558424188069870621141953401709919213181145693405451932648434817031333305354440087621187834520561150378980080703792830497402672829131566718530684341110745773539544065100039398555681367294638372786842758478926652008621692986983142920322509527940445530589887958720156987010866030075930148332963376567658161501876641096304514293981287653945056398005951334240547741229198259130973664234668477058797815499685402344921061003800450315919543437934201304475185919157118049746950083123722116977419791426770682124107400177140560565917296997311383738959420858753590175923952617027072462210179703717870300748660567007794823886773753988249437737677992402561721399559338510885999335110347122197688251105298336400659329618519136908509232359274888428043997630601411443037287665556348361343831396559850845075700360795657020582741171554969391387783875573661656771117952642306260802147863101224127643765260197618022174629040583460649883059566389430318443992884962744173217808192567542321047115427463605243651448850116581061279407293673436212035427469800519965881946449793811884881597252902494562383613096561125990689246949703340259425574533465913304940956765593797935844679045897079727056888216223908617283174269703114810220399171750908336224011228992778814225358517324599158763334544817533918785906391324008442351903626678349078492191511287309143110399521092070811343392238180936619376459877171834118401872709308859574406414399055187995857642950720933929636552177499451993422739291451221669169754948527402023802927473708870705334645091015428487622629809568161002531645790489820874509400221633423666106437273142516305004891296894175030985894614467843544963874069904897253421262359576354089658100006952400212719707225322346356776474729395681293056252627920718887268167887556562825282807614837972449062388032835773985528968544712089852240916651839816236469366505651067505580639399998938381452319191413364221454524911121858808618371753645600333324777831437434871010052728718107832186545667156772114783601117586396737954874162094373578448819882038095445033402939134434627679784196545033066923534310025609974450985343025100674076418176993162286386571569974449593220492507119253073673571976148403814924887816725038945673711414180009088042061374762766189001135051450550200103218152248366481261746669449455120256209611511360194748096573901738040087312787618334930683874824670183049045394289220403652058199897215934989029886180754894951981822325393261220963614601914080791538010654795958448830607788094025364664526518421568728291393343813419943745838953987897188033278938474800399450852861002465459463718082743023173877973442533788405801800620368854453339501418316289295565088113601241351281477493765769767425352805760420109181989289008692682562088752772346530169611110314027789313120916868249964986354913435305242227283778542739967643454342361904012351629690377187309734964594413246262784645337230547662313090834251547732326823073474405939180338162197020054564130489354132463142012323874719539701928092596189177145204652852618165498313953036207333770064979059571574884616899967819697005487275833270657739768359903067942767254163921398629248681866483801677765899215199081553288899180994618275918683537093450736340920282100488847192231270525443030585367348597088607878496010420877056258027698353040601429611542350714672220991551655272801452031432190890787291058641904509488855647566891224597407199935775331158747037094222840841217736736876601357359195424437726405107394723969343889027000549672896539931241514545799049680212440882645861189610539687837504107246364888006685856480923029495628829336196394613038090189289660142526405495441423495000990365249486623840724118694065233004403829261893525706805582343007970188477136003048989030914360161032462210230312552858235627604978924855704333619945215532823120511964061736235946479794165878151838387876897289158757742910018063263179330641363228200568444795629423754303910395688364867909460296175384933411942161067950852302110690255526356375277467468492535648970398570331420215453838848001425541395184367024771367713287754732234529629481725555112084760092057868164282355601273125106860586869253970850422951041129082771386995377125387208699704904615155980254442552700977156488813849809129848073944259678001682913019061549523575799702981976414161439633852289963188864792490974590430211041748825955057019829193683872053971380981037058004875448560290284880522249064140436597366320057167637864622631041719816082845160213424958455530335076359058776930746734797531551659429903177111926926950506763541174570421148088026482493141431031408868467339508789459041279420725714448939086336605174421801309367958372754024658854540745219510198146212981984736176162171083171052101248277964778651805101683790188897470790623786494993813346916048615492252175510693969922205275623679154309259171733822097169061655393697282509650364816724094295052763076706444842324187797526750622141159066250294288876173839794297883658550171724995547049301338650156783033122333008225488573014018169746086493964528096203664988394392397362146708492100850905911038152367705544861654570197024371036800508979216330520891716323694510651727996127175767821779932638667419425426282239054124161920945779169197559258930884462876124155524374668376983010235560004028569009775479599642680236366316826177194963072019671651955893421298821123492890713040933971136952212232358227398576635790559370079208929494159608312572496019653544307848815766000102766861083326636081090949280262306428206966022727023798109381754845424778331774818657501227851959408139571497217688104337934655105306097906157514326505902754335994734631474114191014599870988746747456995782703702441267834497786713558138140692535394374290295050385827204307065023584287303339385464826853950331829519731221315687539877657387223887072987604500592410487840291051636324862209711537025105486735981667836761019773127877917019937461135401558677726733824548481095182019384535017767747231197563740792119554379258633629759448675432521550163745706801989992913255679288346027159014759586782709307649879823675923206220702776747629670309117679637252519496074958663835756664878701286691428861179980994192234581583298173284891712252604766834041067303020867186728530763487057095078442136956317409835692013146910011375918085627057802328595190320128605875863371089809180645032192982660007172711279867665035653536328365412394970152752830725059385556818891415820591527694545973528536612280887715840516455048331668265966537375191103107392665571705757135346174016318662642998597487754519239015675948144756604480634249714782614415476574355631509708074646151912842244598803589486377710260660109241449010918385558578185222916328096368439133298084530536459863334307370794590020307656393671276413715967546374679145732821471350377226464852131992773496361331652471892138638235750821625642377241179458233547076195062554742424715372474483575582885891382312123228339963400122367262924809936818083695198820864910253861064164395443756127698083711693563598506886671691043680146312380150071336907395230741236309263449381749262628045470708787604264082553407300586733810793220184775484960303050475164074289440595976480975236545972333350660489954686048861581202820587238934877268122693603299969945164175240686857718369015188190476703489577594293862886695572802159606482319985239680415523764833724253669938514245764010409540989697152240721334101650561306241357985056880794485072731941048121445699337929941839488257028361288157331780224224637282033545616429211919770174632117733795109752839461055202435544440418133861559366203992699568678287910063478152631588423748117718503792183339129046384497643147274004218936297449890322036516982301490230572966760231328940116958432640176034589142451708916531971865785335276277963227459410380265709869067391223634445065729929395278453432143511627181548266143393352450253748889070070105407835833252770326298313964525605981100516302434392959505983060074184742222351203862643866337695869597257388787083373148284001851087379031761259657860533250748911535803737772065949051262664251001644854547343918085061744724184861540517086381987954696843273877596914521479457355740005313873714090403450534098503638232326310179823556972941457432052858331099527322594190066406166918797062216000278722058391859682437116649136206529500746585660965756730602002800420471581984740447380266671487953630245721895712806371608155536441284563954581769452537696183474908789988727340260122131014788211384370914497854333325186351820031302300901858932927795979299943758975334814370631610835910912772584990414667553021514351061741527517270584360097464319818889343638184047813398010583432365827957452406158410052370590770024317547840568995148399956264033521526433003019187398688759813491288100235934255229200620036165482398614051690123267523888657922423933792375975323731164927903591013684996692314905469287049004181329508750492771853250168993114036093712066042940791505963010958512497552543448608435222981793170812503916691241797275836015575977150918297617564214862336042551706219033565755258886213355919252614598028700067961895230034048310343942905604807607878006182089242808212277712265191917655535471670905660355890426437214818528337282964714201685801734732735522562056807831697375577699511575583196547082093378558818744620865125142078649182366433830831863759010770827189783571622654848417807743382962563866240688341078940155125876310770553193374512426828913542192698547333969793113141609949157605877891934509082894030775978775084626347873710868631471767621436480582868364324419498110460205287955582873764669526152582250060624967166839326472564236712366200932664539215629928891550113499011463575785179803673384188323021692152589589162878745731158379254025677608149369004539932777040727669620405409978898699357344910586281965531626022290494930464049698007135942260314072259509930246912587994202776695158865841546112987953676442466283283068554563954019773150646272002325687433494923515886261234822341125657487537257670222178941813099497971819323662129596339879286410167358875379648044828629495796572057799770577974976790760053705381194914014408435782961282445375414315877086250603462068597700093608265091584969031357316005128665762460940350178297017423746523887618942081797710121674925937560638546167917269448609297467708364193833155183553302347084529786660228632615748563707574878012058654808857416482844116250405542571040657706808371201116607145784943484624954422207988473337243585906937335308465179783034795879130545077386001676828375144348509082222762129153712430364637396464546269631716991365094194179832382561912300009163246014827990093693153648513315942851196640025972570671679344105133571918203210565970999327243980295489422055277197859679388084243226933051971925133262951103431907067327624706140558252118799742278200468600872914614746782004132835080751729004543052844719465147515921003926121341449392585656516656611751247378482153430944772711236466574538276507701726753399373464940011371239949816960867111712002959914559058425911118984055914586376113519880207923949569166447159339998264445790974304800579177461581927382340654301268417327649699955717823766995986106497879841859460273461649095960530928058511353529850375252581656861613236495386806592346263671683134224571721016622163470277396508087080623064219212133168037907534500856985335012204579844123001593322735802893900081758503752652926339518642080633694790319366033159651937159504090670569933341459886865858535863518923419384162242506102982080915810042788080563037152637167830624672914458373225905301290555006093182937726435751432637543490445273154348373509265136833075194397925402629406932217096531091582607670266189271943131243597747826200761915784798256722089502945794255047225479897158901411690550545294937750982808423504673083288107346775553906653317477607603869985024495239280793475567756369735293706688470155446353130496307680664095245077132080205453487581277885877798240066828370195378792442276217946186946509230124575410696361954888519075546329931383297190375285901493576988648587673263624602989277956955929161193930634572664447530700275548971397130118904863610884081630963894588831716417835348957300842509581713848099244137757818057769243822910333914980871003278842507733696843636388206873561163479272997562984753775912921613332350111813422123636723122633664721678711239820313188927269060903760785692954981142449080766725301490244968354086140293917603310932626663893795266219658964676017445144199140198064996558309248293124498361432391602804751961740412997624185328522000988366330593703615051519408813227977814631970751956449100482893690418414436268462066532538860014459128533733577132701305170513621314211484172234414258792364279504549734332253093452904664796612770708297651109152956026985158931649665045250614216900270324285405000866645034461796392381215276432883150235177399979871496899174060465169102797064307676080604031741763944870898070680061973540149839337989952455055323454527400029558963852927110459979224728358812138541274529763659860824655365068556882186110692470457325490345930380124322804776541460321772402373732776504976056311681015759801188044024798448991751144643714348733800454517216474450356578003170619824820667068964645503607228210884441767595346464026687731846960703373732347568733718511245504031194241524771425733803578729753410824756406674753148347968877855744351095213651521200751676045664479787051984336271060130272008159785423985366408019509089546380548101281318655889017372140670615127206250558934451384574382728511887934746479301837379584292604570572069888309534796529836482294646582416565911997079415561794648968687334590060061188294093680294863235799731035930404918735141117936547884731085355452264924746396714531445602835417277983005308724618366301085994277125283529428473983992428729387504308130022431522737680531955443514910599858391843724672962304048553870912739585416599308312257867505454342736724944758476481030384749316256626136138841096258810210805653827081989941945234527606414244695304555349402313889100688174587850062232390697965174729422844203053383995202519385560579110437823690006128918176679340507266415599310995582865658680614223199038191599567149457557723368456303873507795257358843783456580078642156795956789672797470998382377426637752112639967430748255057733709245337848675187068743533910080268356794046354564290454198836443944291821217043325261545771900294100739095677805531407748267672110529004468102053300584428120996329395018813701404863729213434998476697061425052273199105985448237688327398676574882721029011497560149311994628360379774012469446049403029713218778139392266292482263222593070228206319586197908597437016278999795168372922980470335667023901566120280903861616659561682190229041789587343692685876091406754651786415633888078722029167516493635047147274437351125607633569017778089075919642484277537187239820478766717664445448132905376856997192535140542653306435450893006882784788313837999683011986066205422633571606582012881908037891678265844333501515039908058097244369229097147479213181817848117782682072924853727289121489599541427532978227156460376128907538478512424690590795744700002064258698260639089390283722408030634117672411896634427460989652457268542786451441338432540181427223397299447061896405479264388952420987580597852227509743782389315923906043024007240848216348594674727797006713846759123550791808710543914113941217904078251740702299950970810237647836229362330715553915204223553841449394695573245824081411421562207451589739701436282243497728341155561298305098605263082558164393164107615788071595715977951759488164190155810406339820414200834024776996420338116979224452590300442386850915574042168555981029176935912624571651699966761762703365198205224439553271786031041033360200346955524743900832047467770286790974004175234877434077464497739097261008321016607357859469652108081464348679351026725219662952690451474086861688780519407147597521316767659628152753436889832007577279853385853299053310470169359432033333770560450912737362540673886208651579131886642365940117470572894746736794444819741778214759506909643762234214617584553405638223807609638838749112008967862356889033794608926458420484339113884129895608561134313841090294255038046908112893875467185170575912992206382876005745084282273326252638847552351301245496079033874680857249875414456044677095713699317149084299540918710243273359154299016615933478124264286928864244434873997363211886061216691473327693733140532944942014801452259641485988306297908336888687441993561289073134844499128753765677467193375677844734857815376147156463733750151885890852563722340149316597126965292912387560223903782187431621518974011228616820116514138341730824268361981000159507368677267652506387004946792798278602748682654245298411474694533987271963677920838620958682282089622960311042047304754333504807089233849283251040764417766726855641252648283918593876603122711790996489762159897653415800672885816438053018802361879016606277033230496484262172741390236672986705333265315828297395690456816050941672278553918409643340517692014512793366455695816946684184889751873584463710419409359098815972307150643227811871692883678697838525370743521861403293836526486816650972908871860373650495448911140926382093363131801720139405603764336006530009992627782178218893232915159703963980537442510268440024351144086900092896643487229168462568478239756163615703296484405035926386824556210397293717764037952241994838077482657323484794036165979438947635964163576829497879807909024198729853367119826884047514588670899880788395824355904432767602062864074032123216477753394754766259158894368575077851777934517710975243521241647109380111189696236054091258482243633532178253918589814449966511232964507264632002790446651292862643542942991845252406071716869068324750691861446134810148019919426745726251527942917902521068374639774676972898505550891324244509884742925378346483062836269102202845052571756661936674506965586983655190616687251334479137180872299401046114655862483758410302629619196293348009917371637751860306931068149161052123836966179688255110114983502404620956830209340743560543968820478578887357060824738346867040289078382392786052038791766452352656289066595724077258576474890020423216318861361680247888230206927087203698796360861961612683689903766968620895214363303097389243360858723796251797719394234843778235326813667172266104612526520264118275408036269100041077623636175576973857345687208961166294874460478175294123578374547347259111993784313294817115972361983569344282569817596613506411422582300565694960603479005885908020779361061407120515354598407637577295549465322447356173154754446030179974259456959636801765860818455042842289357550432154385745426389420799423101618165936678318283664141387250340083191046019405289292175118974244981786259350806949904096985219759537168423127136543568075026654245780612671232480802830456492520009683997058202057791504013847425242157948206601867450389383412996885832413479350554558040822045919958881110763878101123473920421840629849483063467966676372197518145517084667907721581507258790427216068783779271335697047619355621511173474088834726756709544146211935152917069968288011664486790963342712449490149312148178496734718192165870061678300494678025325412536891164001901055096787332028786824683484175808587416147663860958810334740197682109450165062701422691754941764781564185049487013452403534196229555154469041712053996901816948419972358397606461639058105904528235769710001066305350346740462814149196630994607743376493681496946232146942498604935066967605317739578580281551169146855315569741118182587604938158610927769281781807494612593414001178530188314797524419657245864389289679491943953912409538203632065712477639346838892394583348825010425320247720415656189180084862945261075029874622419250632573717794609858401792189169785262061417109145606261167689914665842887479565410238700937712362643166589305189224804667375155803969757363761734294498608710964630987581280380777685787291218414054172125782563275027726114823000853147001091948948125565987948410063864984977640751248532257983952126897638909693897875075264867252439170068995435841781459528708341951462099568032894681654153995047296689344424142925988882070265089499127836369430172186414699824559475419091075282691113660599780297146502236427392063091746339334688645846900372526925525872187269593677830200240710711416857998509458766030774150605587074533967990259176802691669997631416112108126843669772055520663141060928987129745296581932925034070124264196006589291251372419052196384651959121507680305876623976765839216443529888138904857539848241099637038398046827045407476036356319150836308988642366925431135482255646654218395511632991479847036466685916446124853344247350317846964616548114937106729601595010027588377130384406989958691232034205598773436328617935603485737885293589035892381581079979223208992311864885491154305733025086895072062803322401256299257782430191776897051358343347372101842733901052905748548422118354278037725676609045794985841248003348052864749154400559397726977845564160051430731653333177339795775905849464652450744841371649487202803411397687093106825323809317670367503605616455264665481435154866433840437195212523618023930437180953895047787111675166806115103434650010634365851397420601280029357713257801735367060152984047755746444968306416303511571224015960475369258435777701313215014598222430579254733446187045932911816761703871543931452351458495526178060302262547869199087638513924724060108759505834900101539096205199618740080009448649859737113718509008264315028700347579339974828138075258427499552119299538461777919943330916815092671730328192113417632904549230384393237201177428948051732428145932437505769542530269594558377408222675328711713558266623950256902901181157613376085920983607315109945009513979629991246169475321101069131860914293082817604586707865106293131288125879312225381722220071034119103698044695303874647473555230738220517129231331459759197056227690077628934544355059156622582385135515611571612998383757076170383047740620966753921867594470148314079686148198686288687145436936402611622196370304732342252335735807500679289331274602773009366368318870145059529702646712863430230200533657083366161138034652238435813658431061776452955035532658136105567166043605117681156676437314731781217331048695287333888101281514873937278819395519402173050494556685426571812939247742056370584621668907414179094938558920792618871531272490870755060390000557380891879706154049510424927951598364770207968729042672458820886091006412499862055705304140931545726918807082405544433433261322087952764535195216848790380947153649395001883976917499437422458486759143752029344094179850305192581458591484370380369610881125016407934424488388031258028229356776916456036055058278142837013828996711208586853695997835991718134885939361421591132581960394067257680774397117755563391763689231510246501356181608690633696134541312801058532493082822717330770086934955396811211592352731109170075071633036081372445597685691961514146091043268607185616044064748885534918100608539838046264792901681873833963129650832895848102578696591685389414790189997978231688573517528714766586031567728497846767978685181948211532831480756362553677783448686056084504253594084954795250467467141909702140808487648565140577023674886419359397087711277630795467866137521853649453707088278162163990282814912536079218451085714706866601414168712199678368769311636162485904214083943703732099759552418976729981004155453232984043555232940459659218307072775667888912412790223442555002018614774284111470148256183086793593795299902200587447869771667774736344763590756545130978187268990098919048093985438719341925070468932519435294024624863974939500681385100630053351845522891404990237674581448780098452655849289594318752109001170005278356478069438925740542487561640912776059982718370469905788006533696817897177302485837020694111443636662625186878656030068679014235020572789318624378584406456900635002299604217107426087491071846250075936992760835519200632159708084465649950841503665981481300275576269301274619848956951576938752700753975916573165867504189828155045327793357372748228952059856356243494767258713971610555729520046461171826994814088859903325975595368856068739184266090597567139798139645247566093707363213592378233451390905554972820961779938313998897164059847828267723092527566241294423364254687640497068739244940341570014058006801641383825329970584747365069363776934410338305486584426745250745176020005780756766244801671003226205643772094273523183270785517880078627518141151266874721664332896121690813894699949596750781341031622171565382703189173731649683578486967909166512770210939587358825923339414354636873406686277297332463453238403548228421243714639915880852407197193712871589361651779545453232400243429469981403187157920857498941169675499518541099249152036562094231000085629074075349592034064710043746391374733650522074521099068169945255597425524561242584946151890834105014361933240304388252206175476866128860456605735837030729146505355835694762399308686088946944443603061057310651720008733409590831774990406398779038059541497713463479155810687324584601545405987063353906869538437774192067338311282416781596911678759891266881294081420050908513421495201059977196993604121150333823630767474585534313261964869580249650875605209056982967882329395637101302473437484260933864414086580352836164643566836675663490225679606882861889997190506117394592218747301318281820750555552691165342017916900729101285351391290898408983439409740712203450093436285244833791088114681149191197821224314498345914266411131302196259838951463963779731462096682039637796027407189539840987078774440586993832268492664695991955587822736372231702246947749912564362582954454909718295371336171631105801977027893109980696602093247141432392357631648403084188341809391234422935799697488741271059324827660250370420039266142379157778269916309294484876448679024290082740451762722657320344498792243449933984594190462112663744636713776106857543821094963987724375530144754383973693399819558712175082362431679139838743237364674126303074859422091586601288035004880865992141174204872539180543910956013505157500630890364996039490210584211735630714899501386839166040159364617785642264535821504958109092054026168822433731156400112687313970425421066506676948596955105038066307779549667997700205847545491758726370361754154765667907551279875119762914261195666067870495631469708071597560812930603308231376343068231486694512091047794285175500635215192380619856189244317388678781196635937724097565370303590063398003040952210650840592574784854160619427467310953164066180139933103896745450523918882374642261967392876975493390933696670905496047255653529107877778854199591524207212924057445818217552913190553984222136657262864259972797264950956023833868750356919388412005146062857062836951950914423014461811637939238295967722508776426135058640667542429962687148951899277007457459462206088019617402911424183076789833935740822372350861960443521519740491812959480171507481067375920469899291552774361698310615354122464669157300596526149459099495553839548513856271702754102692038885819620215714331936629273461498281456987863414210224995070899657856325040889476184385855266826675385433411691388736249632650848052313377080657519459480637017873729474338714205265675860632815317597725605369749693377734052352300994793646559176285151583765414446969985686062823224487724816492299368496546130801151359824125849543556020792600441356388091617206558961004973751983372615879216817979725889520866305993929267651806406601737497088251149446542651142245143372422987345435400361836624500500439782662037866270709893957125561254966266506404424206764708258018546132295977719994771460790185685973117916512931266106676396208616710772473282683275207669317070750727833716683683877764976586517529371854198386081917247894273063441555896521077537351625399844012999545123954440717995379475193010589095954321769693564719490667021727613898996928059904630274341740664155401485853367016850261137960028423935799863508628790840448105317932865626524090910516624248753928792908868232447557251078666126720266331127526878360393544263817753952318880711974493780187055867828113295393516721587506359136318208662482081582980472064549900377831082314395868347483652539949183452409180001503501496886019960894376389171434223670455589215000835523772559496277395580593951936897369794357166707708731890085774507984607108959597927059990824537199091261356188745174171607956436606834030188376439203581386808024635350097654578910592045676599061471585026055478069893106408365660815680243865033887276829208333985535652629524334441992685155424936744985478884586989291680331236454155027019709202798570261240796548373440679292705178658154541199910480810288237143246869594300487026807432036283689306032596131662552744808350136263957087698524668070218279428946113000874886950507570595919450427825094360803304307188906520461263487401644105215996841298221230269035502190880249703349835063175983409346516405919183770225657923606917464822228270061252481124351181600281784979764111654365876851334925409785542921341077905689061255046010853446514775652152752396671248439396717328404578591711302187904666377512067529920123892566436244717915812723795626848583289552941855932102036594048389101868064351910479278694608836716554063788687926634877653616028105659912701836606189945798274441880168751848378200241886501162323520130537629036303873234469531006641863670597313237302882825170317684909485134981186174824225335158723097271076609344062255916316540242918693246278541823227862601335584774054119676029096037996004699118357528317156087807598681583711321345737823670856865036820886740537825369686513905217167829591801102162678856286095685952491791924742493707930794211972256842310965055851586822297816859736285093441998586315838964096847488622330715083798401219216072024343743929893830172062629593389700665815506200404601548595690977349646369074756394273993853156947089092886348679423623742481860379287049897346815578441270208509158251881388514198288751354516390501196534172035392016236592693993516077004893416684110175390073386330999552926325921701803100663889583860279308296965328118698222289951894941715120943347029261753054058296019193584539848127786262520426436214671656753670675705211145515087303646177284837262486457288740055826731682395426837962599556512109171425647551062704953338759105202993516743971260414192029197187125103426789664245843244628559616464301079973480333577534830332957091910198339328732794762628516998239471956392813161082387293685268296448760629594686328499368541505930262054861450826564086592858260304299752029189170663172001438537677444289044390178037314399642297646341733514297039654213977325055961136031623849571208196297095768348028385733084259435691860030733739607880908197209645967230125144173616874977716550387275648481495022627641800239489136814402384094973855436491837727719071798656068233493701784087358800369252506627762282228000807155226964861651042730650925853988947288384925864389335550502291520697080038663732352965477406856317022347826570324683446252070364034176777129076507924586856905620986769870135624517117480516345594801331720689575019788526644115341910068918453881919653322895149261571844839375762042921496418340214075837590843577007487529468432178337220078292289929653701344507935361435907688504610684715022437066730174270772432612586791812553088959605017617114683722611275789221584605605979678266632187796799728874798556670789590540868459930811227861490372807080345991081079634079095049910386539982595501458815825740380696533345373857798763740398307439471892162511959654825058811796592250440717329155907280397814831193762110900076062369321643513060537144874294228293052309189859148803843924799769370449719985425217201159570965962353893020397070689734431155929895222193423890025981911687883375618985618627739794940162537546734788802436332746547393174438847501639618630175148092305190744458243993233580624148969359479207197127476235692514042636724324216221397913243442671589504087636403918489821599536952745403295598241800210773218222444812168720643854228349662501722749608855035960411611890926712521450878728017474688831388800936623654245052765248431045996032295961185755143009424146586421321021474898476336578466367945418549044143547975924267475991580408451238072836340446055114168558889753539425995919932284726318811088161524381904748738807129494682280004085401929669162186006611896817750342863360593525227520502588002330229102018239378057255364763165984017986455798351304508773995579043552171536276391418527943060725614885768291365455141729420707385734594801326966153369582141144414057466666112561395164600583729064137146287940000745021860587163495222784183392142603988460146207126044734738329362318130118694280602585518641083393908194366676936628992707735201295312258219583112611112153161533214772356682256114311790675698407146868108077112225977334385876295165738990324910147830643503220909678827405445714847545666945308057958367190632055665171942602308924579932776731203655885259092078270019559516830905116455185543532016068535200828464973414397663526283436855708540094931814817435433724699547602858340926930769086794904741471673976471699110244519090405976202396766493776755669914823441129533019511180185543620703325309853511969622944091132560199549214218966500550704884837175777291455645342894904667655804515542938356030073915338622061425181734827349433847893919172124104493969854629814175702891275417510009359450919172501939509787378117767200663532327990106423624214482738730849527275058530245162969686923157541785755815480742847165796486718549294654038640182002592746680307879705744679642012401237697788391269397178375167625485194760480166334466972135498306263471100029111377730179220765899686373262432918732220592967207253345818170845294528923672156089722425978579272666734148843523171041288419068613522708849117388441424846099640801116329734599970027144344707618865497702470408209363002466285408801220770907545872628621810840594300984223326937355347204391955793210280756604854638967548294079372983611599947033734941743546175582266428479064575918088636397560243093340341275673290844259902898949645930312653910973069739232130513188800388647222454399776932066120441497225317453108553319453633165456505909113872002488654630505428739924541729776338386298551013192671845784858072739048773173034795650054100295964700337080665980778874579872002601394962035576961932229809668894456291509657991617966211230662412250023069593784521626828535694086876412969867492874930123333944762825386882930192420313858826795148466670074682378041773821878301395311181256390993165043346275362040806122175856688724905782410504715942946531863443980482239632245470970421660884939141295277728690937839916535987046700832385803336326155705502027403886721006070704822682105190393460712230379125352329985855044027254294425799807005917764197929965360782562778417649182316910111167768071698042217518830594600021948766909099930821010692204063121316968857194172093179551376244970705599995577496782290371720992306837430754594536407766919485106509378280339655131155574040201860321805642165505908764668095025611067952399919474217632572856949259145687595242193566351643958951389480465261612739217300702567482796876031776957491163315572398379486163305530169249877559707354169719057313441662461617663323250708825570055171568143311463127817332663418961181657768913706917198281339337253626205974912065807136346047255882150055638416779763506080644220628663564920744478941793625719437443532207839739300313478391444298400796650232686553500094159165571423569708202173704309698371799015681153189821544405450993192068790385629906570164545592127957108991600844856481783597017227835791256159558326876157094678930868352746966709017814516812069602104062565197291656378300051490972657496157271852490835918663833889283747739295199390633061061095970886425888233484607156544221547815345044480714450589500101549506085169113539489446710270536114325813082886893588565650859020438857222754089497408273595005862534538013350841713638952741671289796115008087292105974439576581299389123798909799713899339600873430865257215545564316869124920248419075201812874224307943725474968413091445337153657416147579854349776326562963330810950690715315781014811589075445545170189029052697731747263913744738860727675906245754559028511905123927153825001113861688004633652893995946786732737846257554490591360907528692988735503873132560416443206083832315330441848006993606162866899548938157544530806794973763983657006454849634085074646198261147645852431120942271194511997032452215112576301104017385581297701940784815876345751761891749116332377077152977066918587781471767713919864226793478985636904174570932668818692138278733736498013218254808137479134528852225299214399048084905758169604671537787846053664797591316373485085129560517956144181433933747301466404549343661300968905865566967197545333540099040589991380142831709863977718141799337344624206631432684405555759483326159003287245364238880122671080091112497242173010501208969759247584679594282262120604401325624298296125954819019285902267614083764566918393784112890845124077834369240576745903363213184938199905222445249470613593054392811826678189164358646482053708382272938395133765946998598896388581483683299727364008782598050371733868278742222525193388199897337317679548259041079743710993843893729681758967754061814073488533242305704287119454134511853570537284057120231749547258629478328655436515359133337710435213810133052490083324335645425642242264540847320389491067186681877954043094491045272396169576325844235852994684286372185708582136128272941352400071775067146416560890567587663637272350560167121761621593591299139270279751311972683141034968296797478394342438337664632989319430946368058877095379902035062937991625331959100782097423361261469336502189221373512051606767346320136518446151498292372121374307856745229931872567293447861750092030767755966728808706574671004188973434616756356695715123014283524930222950024019494068727890273730226169136791947162095847512534859203822856155213843254257325687995222954704360708540707543511148579444331131926699858358837674924859846854778608919161452530770339422616126720134229830811298584339865782238600102783038487913473711765152403087921376674300314295385684146762465307878637064470397668470472782537980400605970162253304201121787863773602684986336024952612157835190264211927639896024815262999368197847252895683996332389131666551837950231681505294009282343260076915441894207950802673862351057806209756515662775644901169771389481584964917699616938863405006020923802725845307066950034260223072522982500348345630093777740269237481653129265538380588578432961632856984199852530725855823829180970610371134327116210810699319481308271027730968905504710894543511728567617729568335046891311419025319505678700523138785728503509094022930596432728357299209073976200027033225165091151110950972098462657075628203769449056844785568880137904737906919990773434032172211120858390911383223021473638030427891007476740735226532856262804473613158746417450827336114534281492515456880847578075313919514968869988765202179988346811978376913402184157545868525690738310331089132297274307980875269097871588088476245455567929551838643958322813162677198469598213266937027702722584714098503784436351859613986757918936630843367555488881888056480999262722004801026064838204106680447163788523624528856691629249688443918073494366147906170900603584166834456554784730269334434034283938153185130330441142271328186347744785350328988747183326667834500090748197341599749341220750475732206896971601125742355007520438285132063367871814491046446467013132929306406939079630865994393075254409571651949741363848345400433638816124325089246940488663620632503808509600945330278355512816859314106712100115222700354233188854108157168153275919166923995644656878030448801438895627359002325707929059518368051252643866485316438263009571029797502074722543681999844947163015371448999194657672930189047303924705889742158414790518122808266134718945952953584155102472454980151806225599183826066174337817218032872610879357103761512674795050646355333319529128573930914311943793940799605138439239750108905406189194940039020008541546230973809995126787919243177868307529387832456802295684756467993842877336352587286816458537975736114162888033622747940838427576948101603566883723666861791150977114748124234718283171361126668329208299326057675907243743053521178741324695228458881874655823620166137781607811943902558765938477955058167044249403632074594564824689493080620113701941933029962273835966921834930057150411445077111538232187104528542613067585704501403817939010574748547705251381629072516223344373125274187304964077694947771950887224994971745407859902102561841458478132079661215690489305409876720105025556107519263239117871943285976199634614580246780914767697962701544643933990627989224927559059153320563459966320765782391295374167157317567027779302713886425047950382737111376673531114499119771780505150924893077291066982809029820475000798105559140467140963886823450509271780043903392965373301815974420507788486526265036652298894023947935468437323113455777505049924517800876783524921538703405783861053501464930006333777881124719985736803971843188358580255688447068189822344945864096183304559031516490906044157245542015231428759863143159247383694899369337327470391507767792104359810062588453703397984824973213504680258998380403282252858717650903690707591613957919917161926469201515540293221088407621540535306036965305915698840931658914393004730728483999673437596623477330716658701465625842370782064517661341892241642707296178901914411654208542329975890661902664731471770288676914740562743945128912290057044440071697125456561532988993278185049537448062709588312543525613154979735780997721787721731657378954794884009113415566222730342589325462597363590912537043057506680011697507605909574576931281380220705780894762365986917625624490149856316029115866375512542723698288143535249063341009993996031534071483116677587475956490038432058931709873527015684103652486799550489464351502547836939109287215467606448547597102989545720732120984010081752978614368104636587999021518839754957918303365025784449756348292116262003908846120606227333830603311322161807732096523663434508678684547685814366575245674800207226412946136159677325699877791467805431626235691454494961625058562215314726130115430340852958223930206999501890112200877347971418120002609980854409995935935597268563231203933566005978497569745940253008549038719885592301156408625882150860535786279596938327997013791370828019390311945118813737588545055395494933602648548881237937254224340096566932199962118310927920164165326858536258665424587090156230288617344543863943828158630157157618025080567379335226085024016735424238274499318198747190475118202486073690748310726454794887180532494416223976277018781722831749672906031137818497651413956005759622267960561185381444841291822417557450227368288074779204987703508361642841790873416501998784949152476179686622484817101571348913899590140314976238228193336816429713874792679104266262807532812139561273688301062000874277686033696773102574786548009450222592383743987243384927376439438992826767944580742160473583200069340649878593541178516823638671884930098395327574027275260858869373709390360416311629368998860186204875980473950090207050248324279659889368443344900650037761378882620652275640213083390790298009127536741671545030057716711031322222438123425488152060359656767191918066024554777867922477317217334551182763596667272734266161299343223332995086377026358992470176373106935122529561495281521982237422115272545731008104079147949048798703373136538911198941716978325043240990569778163289560844839516188234976811010763146527788602400098856801066708399397977313732849417434206272388270972734736423175485313307266888589399113704308330302655542771070929625148142690300475978118811118392210313217827266033618186254811961252248095912495092809707043384982364144554752806388705338540555390246900340296581142423077991806030577991342070303547846253930434206467296705437143746259579847533668753900960246927196705437132325399395172885747629743543031787705753571484988661643472185511438193742639781264797576507366154366145318623707290460093378191808323050595663796475185042573074155996905969166750246136138920024680232110273395864642268880340137193491703193879179241928539973431732334147616018896763488540764795444028320936839726770370498456095970364422317582315111193178362247481525051910026607200313501537438897638884443770765991547818006727314967533983273484387953266771069702322858592684943807752288831182751531916606237086008784485339090154646717669806561083827005753713268605819274120378653309790451234234313235498801554683627273090684238990874871994913043237069630753441160668970167047335799074272887519439424822043649779205503501477284503254638718863164392630263966529603047656706594558052729352490569956762498401109995128492193257819052691814010190446957936648873511024121095526751376990284449335637578487129197337702570335613909213362151755527124821516842236766485077258174709174922638025385498496249866997948702055871507228073570028666965488580728461482685231524436941403464348875619877894026242529308406091614259949634375267921544831889185976217754901830892184034371399239815555502372164688563629433295935274261021542083640631797752200359148373536430003814840108875703767434507319010366976083918632979423366886697118005031674667171613309114608231981089187984112816320435976835856226251775629354642359838689987302866540558199750782801305293864515029810101854303164141913527595620456918458971573743776138019669253656142844791694415757010272537167672419458660517268361865112615517260234723029679370079375886860402403359191680435901679106273351951333557576843097839594913349613308837535773504210463947648843493878644755002037543289576313968440019863365539443343442610802485191671891420852126019788143423548813509257736887152873933943422981635489181586157989674486935644951467127823095547562359911102264437038869833202236878604287028977057494027774776121658154263602013788979821363727005363631632881833949329329346480817885247521230296073883558566514115853667797310516117799063100288806340768326197349877720276493310179110048500332021646614980890718267087455064748695259138506822927880588828913387712717745343125487946328069070357717392370015511298388288617122886529860997042109359333529099755820555196317908074594551716781173471216466944555857927463803061969331809062245802643960041570072682122227999191222736342552966778022184702005130965351773872810672597099697288549630070715114100546112597123318992013127210967233902420180920481466095774183085378328532157106729916609672101237246208517830528821325022385676225251698961339260450154774968254662373037075416386793787734198623942314739470078364111040309302305494312866449309301532956111340500394801774234106284511508741492248828981330735159105782716142311729078935061485434563911046514709711737969156762894148353934080756408013069462131684053425762557879917675764599362435053268817760148476310771044293313125218481707520471948435020126501954024715014764236419314317170229750159943000486140162415806421542366545896914229514648424103268978468334828643211641246658594966167823452918589786783137445553545587210363206514173797038435725671344750976700878248048336675381583120372958057706674492221795401588518796298118989712377310971499950175692051200396512421960964753860886937388421501223272263176236588649482403302865635897993177350614638152931517769919247146707597566286347069215212429861089752861392161352375405487660246667704371953031729735298762631346927112863218715885302992781760412363028230191666404147911952071657270487640766437292884657266737734488310903795018010101077254574441201417094172825699582609594063567720879297490105041458017774686988762992590796922792585030089360707547280008810621197870669946790308343249101160051578169024949261661355887854535857956853321773403006754332569546390825737372058850497312059076217590289110053773965285586789787944328625911251163031793896530786526857856628942868667023681705436001445482713531579685929018235124737204229633397323143290819375085835944033610425724182084538148818987776904985074287581537008441867040454519973198444158464176460081113608695839639218637190800764980459951855861638921620873459662744536140026948041729636348310138952835697747581763430193146275545765802397601001848127450132056030833856617897857084944898412078072975484933302717474638577511909053870583237638852524581961142445983017784029721845792669186664958031545130604243899750411618075665334481566349836030263675217786593873817424793380683422610505372952912736907269367424618058358710772606006613722669938315122382416196506310094863268390391522242819392542118196702023265044029257026224480107024168844222893160361244562820480004095894080415483281336358775177758351977701310731096559477018101886922216234619287205632504444099424055798797431532106609046475551268412744240656635729715954199199025162245826069153051892988641869311174472191646201891003882656791416791423564924574681814516732998244736837855568279255787500695986381145466871568684856285443833141904557408795208936486764913330629910962393862416509236042982812535000004234678800775547235747203167518876089937007366613953538580319761486749790598780781908029456976190131734308278812267368143851559510317215348040082826220477511810380028068867010532737789756111114199076074594154091775364809788142549461475879060330187768635047014721402375822215559804915873458154418521239886009630933130336530162039655513126530622979293386592346925662952995803767084023464165531568101188789520348618116816238748357972665298392590988492865348643578684380424641024309873346429212153295771722494240816152936967420788658631978909715123342258338336415953539887775341280594578662109245231342106238833592309324825360551877143656482009819005486183847382224951026529584254747910721212697298071052414497353610570515670294593871851957603597206192718212336785810152842252422514421201756059502749840669104687596707312284387517638639097627023908963298759851605476761915188856101457335116447646657821387275216016204843342849071697800986130050917046665336671304572847580945681841405104128115639248537524402831481509717801516615759381357250382259887255937092770570988368973439699275348209293096503366019818143301740695052646742410317806028323347492143369148903201684884353894364965489204162425999848343412511246027466316295652503138282139924531845290584449594379745904519699704132424956982470298255678408290776221142567769842895274029053778730970205919262026143289252035794072891248121422339301779260335337745626373189090308750120819477716756620824199611323145452885312748280604443829227122732844060601112219459892521018049595904706458063353413761887208069016522732460914441417866409829218563489610510605273958332367389131154889383235767310580209323010639484492638159882200309968715485576364686460453379621838823776992229763206965303334368999568377716960999395866224930171421308853235129595293605787210065151565912640253633835023229199011240231237154105288948653590361994451725004091892427144129646988375145027328278958486388559086293110475996679382370373750618926735457439435445886270805786058777515348470283776614063305557236067102610022814731177945203790724490402360262277246782788749453458803589171469480418479023818990176129875612721419511523251460430217334749159131517448844540116336688971240526865171311205109161438962358173680747758019009089530796523063766356795321737707810713272068111486347564095940718657413639367889509418323021291947844719824948339272931123366448491240344890663402667613796457396683590731952621329723530385538637159688762229575268908773348643728229869658962651578558904065831125199496450059244715375861898331225988697988799612772176220294342188645066911838807871313777936629678099446559379760633633133239403880153984199644788813977333518229105943117178782751165363914060620743945319173188266530379774795459630291581609718021115072328282269670203861344796205119434125770519848824007644098250783748730559836315635195290252063152268639587771327471659158542485385616886694303093283664263032532917668484092948644757521550581584971900744659827727607900109902349323219457440698889068012574076317809724897582864245259200888694589380944083960562160087957889023335298681542875903275753808737411610140164955185731972239248058266267971501164284219803619258937223290683179406534369200932553240191053114142665085709228558098213705278124342900534588531944223664759718061738690603850530918787737835059692014884982937841116810515097566165332690691236784542006270227272760674791119727740111815368907940145130595268503598456153357474223061824279642342885658983573377431359121915206955911181249601331434087016713301122940372120562949245366785002114656050092265988109750018244965894621513009107350584772634938275448159959697034796110860219624722520063576102542005026684309418345851972079254946869546975231935222169029770236313766937328157549626158573703843848015209791070357251655496792082322413645207019284996390560136048740680743962246080690236726128296785466672081900118080739527341835553998810839386121006736161399723890687455154362473539672675866082395045900196149623497252888458529862070056466853223745170503997797009900167457784234567108360208696621945787249574149296443348452629050662833669465439636353664335781839550929095075107178274454157583263064839360123595244231875591240381874259584237237331800210449979566396025519880478852622370197706344217167564788719460276794588630394245611496375398841663390514029656794205502535652866465025134615238484439746052014873132299505200626382074541605381066807270212824540364053271271519553736186421087192470737494593817977381381097646555326918913899365640484144975845525107812791348327310434781614572521048672070861592115012137578400970404737377625620384147585126402868780483623238369009070041856522958231823822901946884719907350756937124628133978722281591724114833709947871721416059311786275592169140377202752246778142976663095136963848315325861679141726929278255925125313609553300950906685304722961256694971740117943287274623483898647942242521606384631525489199501537097616202173477211929462941748955077400932821206072290353631061361564541475812963115888547811281988204424052861485070736773976198055170744546796666698820636867313607194635956210109495405741016592174247973968188982444794015071954295885144967121872318796271449613725054088235325767975126596374199329595705790782639974370932103567032813685882733964852723774858632617933294010632428322334231904066702951338007751362218036482525280487704887450759190628748639285113598804155335263881013380657015897865915327963900018448388420334769888079760492151814990760819599923177641853663019340928584346082055333432695737760492356096045706316778858058540325586997237846281454432392017754389343491311132144441594662021843534602560772826080593218161905585678453484386259271633388822700344383977940911571796703351147784608423645232911313568882118777682931259557104800166184522210244757648643428037849527787777006023789953599173335673775881630356832002842659774570549960928196068047974466878222879256194068394046327263034818883884805408462392972086872295601785295022100978427274552068105441509000359506136497182906352169424505184826150956800208215956963570077024868725386160647604355291392289817575082684681614038981951797090924616596849482633112280254421454355988315197770500102751274872726057985357227201016540584854187820652552297552351978507264595629261009484260380446041463135193449156167390084609777520498782969572648379415517917531256310986425562225942413518050708455043428005626898475021055568400048025628210385860216545651524990409160499734226377182418621005644010620138675526345204314894710250305476049378447400896567005537834775542559808905038327807283268350275154911517729991756343814422051890937226825426974408792979779502422666333805364894360023684472561083426346447328866183255292091933814883308824365929118584983430191205425402497914474834830724841202700520049196108887988257571050767947108198021084152304436048695072395073759772400423630511066580233000238362349247805366770053865966835291139160987575001451682042580501340792229544275405834302572465342239971418064588240896410152035762665384988329344278478566911680704502744803127917328072538863923272647667761302895641505147671391269153838696410189453808138987893958922051961420185560860541611429914197465034755794021869053034732801488728474757727869033479547820442849662064188059718332003135004671319594305060668696702625997287660706478394169406075461568728646648705233479484645803951032232400624373641609098830755302404517267923993988477011306082890476705334176611280116933829567945507355805371889312865721826547797246837028305709387335274428168867879077456276257111278646965290213677812796471366696120740082578135743128385739841469338472120185682942896783904452736645574984829105736530489736680394197437223009817051222144769247015451909213477269380916732311717257162772910066340539736068972899790418108791123470539092999176220522664834885161916451770599834473734437215694372977549043533468568070752829605756472257693284183830345884999760433473311255443646105126604532190392832784366530908998981478048551606801303339978692356861910923287623362548951080120619738981269821176132494157597884533786772256851512066577058467533269869889371848533548849839443989131302956406791129029886365526834498918905818300123818403283141741157509014341367259225610133345420128799796332708218455537676277690095643725562443431269494959301172447923680453100048472358627725877638481292386659099883773799825884875294981938292779995129337216587948661984331305245353156005641909360961909629112327432653792619594987603010199368465017808411342900717624702704274051812138100785315111746720579980051139567343328147028760467045093312606316935628007654988308917402970457620702097410026713699637007704789773121777479431178775791408860252409330536626917942131725012646938572586613104214239083950301027088289219880025865534972158665564732490456194736293132318647217166436718552160491584664229052368880538266132764849266532715015150858416960732471780018884615950888235850889803780638166845800628695614582888106334732455963533160923989508643945179237100826858328932528401460308715212586836306507447115926586239202890035527861573002567848677031168207612677130393047926475257618640393843371520661791596886039195936198416996230895639645445463068236560906045421175734068888984423521739193019395971963616692247226847288734557464783374081689580165708188541196338463231134610556612084320752501404642599829738344576592810947601011426916660217839953920986023746703733277025948193183421440317654046405959857874323923385567174067186227092690774582175477669740737636433695307670265768783576029629211006104751685040505426153723271390369828941672232851857242139444730021896785278462840666393278757500923409402426251687804317429536362494651592235739782186090551607500257402975134708756012656415539716105168874070831933166093789402322433196585167869833922412261727715367658380344063235285251705437629789642319975053149024379343261829224825743434680539693759847843100761715392381290597442249013656212689046155435336457456970192276757042863468874657413365761034480523713625217014802543359976115015703614529396383718004766794453626454890603385170015892397036367531511519279294070357275479231606597019045271638534934946748212097480114498203315481305554959762397794123246533788649362629110090794317650777101517954240214097659772353713893619636629295599134033180505348133541304090322161884554553919285189024875172526741106706370205137796165350335381223178753931296192903955908249242687397105042664396104086536445909844125253416062858078619386062416178373823831922030517957444233379307164541031123617705396746441670575785565557212598651225439454075001685476172382527360968373674899258924981793093677349366355189796729276548604782519994562708152980664342733614421013121444886211554035086021413661929123864742281924607118188592617874091048723085924026523142241216545142325736670803809108402939373930110016410974318109702946035249242688690101077533938749568788589634133345784018648554991898317298986273627023392862533066135044190693623407306973678183894481789306206047591902036588379901940601686200717090078764558238523931201534463265374688944127447783097650145172154168287918500157909580318092444919742620638090868121431076273478336368922049369909098174480935363229254624954490390663325754468928325268943115205197362012462647279662822486379351929740905614909056791924692648544636408509120968895680853631603107748292156767881499916140983174870397324999008983614387408725236048148456746274499571294984402692900264558182473824456920747528467456689173677157021317689413632392681444473415003949294364693553652495143989302171698945623438122285587743866268941283667146626047491558577286344967849680230037900832010755037549220435311111158096996504889895595985773173903083362363368389389407946992565814535009457710844960414161571354519258443941687152306460354121207457243087424507435008254723891758418534958340301308605352581116685621072938370559404432831284188161536699439232046963711682212960080756166539491570611212246801568418969104895911319887109405722898615544023012797766403268129621521873790425170065436160963971688092957223033387589097826166279077344698356656633824552335254613671287740104783748050521358149857878985565841355409414236488224779074585408625599313725988487516114308496900472068925116908066319485814841417628512808308652229544565640131931958711476217055686024563747578411433892659732367088645699827981449877037731965748182191197658268575402483681485288169894530324073852027319961858821068958821040832771038923352296598536864430423474389596590269693558319352564040091516469106277824828980839987438649864254660344644940288901924651379669693405976559141013832218537621372071850827974659264219749660062104950975363155372225261352539659540100632176228828316135778860559408766690138098102973722242853310470644664729553242982250794094032525252523845218141930400175739427104283823541266270896651465314310557078325503308645866279015417545338511116150549630953172685897721717756660970556069737287850764542156405049551455177038474301651832835762433673556453896166011979021161701448720820676953963572976108876084591022420301475374759823354217677928970556401382883803364531369225125727232379647485817011934784200143901380919897870298451482050812116865773195601280681530483471959737918478071649785295115203603100729319993040697529490984424519536967406062292606329936743050139967073424634516997706533394170874126773081188200113811513223179360724498105982722003107873304050648928709169915289950905019599232463066579919923106293374360848643027282258554535943985936135878756240363169607808018475213093627863232895901786124792409053378611343938094241985429548159137629531980513842487242363977942720503458955453877227205498823768145325359529123378227471730223233613502788525749133227473330047585188200892189579895452957684853549641459245528430074162355605001354864102194895010987697408071680229613538723033419512319843791381139172273649113632934769531256685075865595983554893338979091672464936810601617253361320925388116185321194818197912986825583493947042144837135095904501167475513051998371457938023660061907551431206127607214089342610856639457079528345873187255405334719331235733257143099742462277520400645401684490920546278944885305222812307158136349659228511585291219211209224282731769649536556198987419983598604909670455022665197021805510186905921186171928339817959413607055353768920951956175198405205983625573808916460032344904083688163901582222298554559559536127571238020150520346522279019729397171397402192347917135104893756815138652911714581963984050883404849268567725154420744288606351410305483080330582469699078524755221809834405395052565588335276081431778580597850070619332772475319996331861050202361892924596522117584451995483126351663797205501921589502582433823409629495141701611448869548628195978926285417712392662845424735164068229654980396625661657369554460800127232812379317261845920177084916273529459333255556142824485341936102757848991617033761769726718883366648273538350219400143580902792474920879467362001105356360001142311393182744841705348856984059412099248825998935639042657823084621675800161023653960314595249908366142665790818018791634763136607061482992256518680402130546317064450223335340380715692333521944748308482462677397368103141183253090320433262195957631069280104965127713533345123935450212886320832234347341146997035745945284836277705859686960403923077940262551901584828475890032008087020066319977795387634005953597049633432802306207734985788909000136664814814155240130262543716668553698514239912786934628903501066184821240693175679668242987323516185419859733498832124316529304468844364391756169042578549476262984834734558301934301494120114116731437922760074210549308049399423109193992627311013304046197514582076819931679823306127090517730770482514105796482265621240397727491261350232031247440818065386078351874876420656208974207662283354622241943567426832624251895442843934803163296135906596697095565925437649762733256533151928528363063287347939723718650311958099108138002210662634974060153731028662609997933107733038568839813578110608654461931957223705811145048231534943654602628591784515441322028415953657580983184446344047961310980165864262632616170570477157723451574479496217584239157239984810655038442629541922349101337500323049551765971257391727389216414252435380676868991647590597615042561860252145775356187144261661824604945134282121865252267060526712459276616846024105251509212661550095907225951859356759307558871241897750224745528009527631735753025994692566927868237892664539201097363243674675519708671712265815357885481470994043530717044986094967128980158852532463533265293458402832125226687627737296673343395129177049936287095231048529603892215992909957706734821705132381308964555765878503142113158359386212948494724259836782712342378871975421745505986353659898108489901537573201415064684116306035159084319460087801132806629737646134790778901672836024320084514863344576535391977686321217835782883194278883288833710710124508068645513446937073335329632896777116024841656171157634103085385876060180041415524740049312492374763131709150910871376071319925224525889060274279335064703800772009309554092449105194838270208564765259636719347923360436583972222780441638692257930274631400733049370180376829651605545833144797453777699738168127980312902920353229282457296760713578529579007583267044159531276500743900048663202945280876848443763889509367935553157144069370516749614045998468586082107188655813146730432267522671442988852465690786869286227906723105588328839300931108844732621503270695602190426639020595738701507477750444552929330715635605681234820926088742110657671332250731532481263826853174853680622800544437773676412714819430958476238618076639271428296134410981147234755230717098008596600557845767151257239262161395681246696248832034597344528199800292065028818518099210880153515652785722371174501311093919668721922456141348552336342054132344986971920984423581614601163128918586152118746263551480834765820830471231360645531341025432622358482882639592798373524396461702005883808548208476036454654712661801128973927723569522460231188297660388902283462550947245837802131025061430912797365434830342485042094355402807240439228712846535496774026808451757937237336214842028689029293368430314873104576275707519413891158233846755694109464914966569020448685147851603051054461163179864365806937974455504462420805609633351590162525170887493452975762383749499922159117841659768419921341030016933606562769775023090405882287684039836590468371367301341897497888117628267188369926913496488497367083136052857161266232809202977782368885354701040562791469152284366501507954206082116058989262038079098446427842780574188220586182663432183889016163175732154324886634831944503032518988867157756150888516038555614741163331676090469029918867537291017525453909773262355902097047019703239100516191902342209410724144713506228163137856927110980573525733710553680190017395096650708869264426589835905686522508283277115777627661485389823203993515169706711212271001739026505499850144432106326303951637322789779236697322147955181367471764951477625445388983437377794389513780436380116170455534773718959014431320104910398379822158226136409085635726139896502277837040519263307649411132693210986600678188483991730035740531507838259488872854223221836352666884996380085670245753612773333989228438201487903174247555617523153181181986031493559202189259987742856464749775492546330833822168876697237257112912904376003554441266130434647587078739155460871044915463658585627931120542958185229740002017659650320068199624802162125249522184847340965764729635242499355677356210076765802938525752791064783418586117803696491704588645617007488728158554007821237804526837691999505331496583504467270454323038836314277155293158350482049730873134549875742770791878212329419506648051650106765248889945497720124896926423650137671844912460865401626932305520161130937173526597517820727927313578231053599007258350963725097400089364952455517551674056804337178889001395691588354521091398116344669215755664874437252797638419228716939696531995966655285501182670277468792416667279662083193151962091291222166697322116276341750167145868978076113938767833263053158655341141809241902870798636016841485730689756204022716119548840198815614681797688296169405078072409433570596888170874789539714018131983713485870687177967907735135514350713742853678455672745088264091047164191993520958738257048132159452072621391862048791957485554750112882493685997959263374284620128893946666161816153635357703764079080935438908159463546539537367141939400401162788358402774778781466272575011203141439903913611126053047536266597126284576713069692799285328220129527194657698010348156432233927186585631378665829659864130974833556059921421815612683654819517518216543379253464316696903149896790636669231689305698739999870450827631705619165742221219878542734898629371458688875184327424728591393682649693654688114103521553119389346799374879513342052733497550797965559781650967034002706197145035728742870141677033023636164396247140804565052663931503188800942016066710996463823642654191144000712736720961524226660094147046947771987075856873609865350388219592676418993509046500868037621415702450118117990335422347518664928930337413097294140259834895681594701041394902914561188543874999050740512095766932110559596781849043084506289440864770350447123032710092712855012847610525129719759391086209020585875796065817590907665396749073445475913806428724747421090676201233183401362892720167935279314183240719802662190446367539597333451844941175298772659875175873414997081827861389838609260078910913741697868855318825896339012311067490767878547630165660414567124536619679841805638242875609861163146996729610611245175723265959194905950988519673702883935082450036547130996940586164667525331891959515562436172481396505288365499866695362112477456307078010745651269340438194817944040015119265974140402069868643565970136094323307963258689261776854198274692900431403382755247711353272232654040229445043609111125800703445211163642132031410308514509163237621995165547954938263946295285545239167396959006772350685498847590839108174204413500935878928697632563764222105784078782011257421956881157394478524283648248095468917400539159815067342357709206576405097878798985404100781512513387475935852008203171126870621316017980550178674196651131340030534863302729248820757708662325716482224986909972910087126290332967526407915830340860708860723461026767743060647211465815124740776074277769574812786963881451782357652954667611393029573930178711036512235800051068306757901351198694472696257489771003062248925298402450425003329176507770851229174031338211393325944686310278318398166189562615096186786854984043039059333919061696666291710100102684908622542521083420226272056020900680047166066299274352499365360415924843982665455638471774553715982178858602586973407835445173802900958323947573081868836820695767347761898337013893084268313860902828577330532374104187095107164528378676421205456500469661941718308671904204601445315994874270089073932285998459451093988811580949406102301295504863933218690015210702499985666483514053093829743582416133259223569004436801690859386354624372670041904292044737181107043091572772067364874550703288339671746650595622241366261723694085866494495201453546016151201497724380764623740787819111287520606712358527696860212082196526277799130990317313582891343745093910573087938288127374408537399361922603036803291202334882827578413104406047981321363332386277929487755705792557862002861553347530325268320648269886432832108140442451093012572007097728420026359032696396931561942238088248762180515575733831659636362359685849805031923280351897980488489259058443969772893005360978543580302043695706645434891386465585172320663660050244054640895017890913026382406562742777123136195300101324532798928817683209332327509420772860848946038984007059953085961193861983723216674704151860560170284633626014283493546019786137698541668652942501964053744080988667383663208381280723406389443867147253630775269845877775413322165150062952439219970998834813948521727170876719564826748309075252785800834846531024570239829154380046399095523510937521858486102473152880814518396025886287969553132573758682239006732490585352555926258578306822311185526902312167349809461480285633706997916097013890395785170433742224773948574210137413616375194324017979053198432810901847990630485493856757293929075547187928452829956952495139231985042784829472355533140401795250323714052027873326352308674440853259232164053959546372886440009687355042004286714762394447277312574396439678431996329212861663056446026477626603587834088421675805610873280021480392935380356672612580065364796873815071443306799553116849874925504824843553672788606746642994016424912658298105303258763408627363564962478388367847132950404721214811559423444350171242574681852272438559885931949847112637689398523095508443005579595080270253295516577080578471376946376092593041825074955813508935334993176173256993276469109389896064739215489369896660520839357894175261309378887282475593935176320906847954642815345621209864714025751539102381644681447685712939486019668198425127432228618714946030187828884079032775896972706742305865310361376231319611370352972555934698718962269985421264364516042683285908866695364741064384394578272972205893625805057052940148795356756673247340190717364804018896271221443285774104961308130304785007686856161777361640349939766837325374672375463362738117270056643963758783640872492793082777361624955324990012114155680809618484952134786675493544058603235174259321429548538892842791129101053178671528296813368431133862055086615182241345920743796064223126039534285095482767406073903188239621388479425565558733397567796587018252947644284558834563802635083715928923902873837546977544531851225124906008338335530293364785741181388194555976070465754136579229061579479060351316148553244168800640331945178582864649469909048620019666160310695249224205921682844430776084029060222795373467160840338773640152080579302001692535430657592942144667296614238756546300199560400122083996043284650291317895603778712122752382018019915065188668360618176309701329211655388681830789729094732998076780486187335180013317489659480865414050969079735972429178803622706210908101364488270310169161189958756978587605616543602506478648322269008847964933422096854484052297813142600602013238725753018648543339685794117917626495303389721774033320246730039888237240783455161676126908248727794068267739835227825162344527124513459165416651866564735963574735452700525324223708731167511308877720472448598904880215215156968617895552149686059618584932076898565589611893618166078253746927019091187354039440314215001982879400579730704359743421931031290160408983238549298876690149371801269046863157942245824022385680000409693428312992827084831562884575609611536364535227854835719306319511390794260059169763120443742428795871822715508758796661186707640089578156993634428669587653510283129821038582558056535413163381355333749628105481366969176399240733977034705103874723911286274147407347679310385985149186772263065691656588319805624377198467975596035585628527362539778152986504336566149000748711953972208543855638788069568893066996164142656234610196018408388159762546370823579450522212228467457585082655280952808316037774386539460318304008655853999171932695935351988433475656818293329738293831216022218369505328789609448394600411633410294660815881699810361852307772109179369537448442581811134019946902121537591039255491341381889199474840784728966457886831451632381424079732448372568828321129467025645457086225052321984596458515436463095073737871295342255705856147406984891485280661831961625014039534637362282183990757326418128384003250320941763296585554258337026071852936044866351586900912731024193559180076280032061093014583208592513161376122355487650339068009254296197274635638541655764308271763606393520137273125649668960838809017031413394588274406633650456931197641253426715862445100244014638735445210635107213641293082149428305042394103921598216350889584654808295334180355915225900789961730828737300326590617410348415255494301715208222093064272096642725189355107288704460026936894140609388280627253864699116049311843887549555219847002035171965024569113424645018589498308431150925631459579189856593628983614242388525002712982202319576200491751768090636631400704506111218751386926218081921752955573426499905507285889232048813891955429895110338449888613494558628410352259851459825352216173073437518435155350919140409174988405486122112793682793989557559672775530732198389627783340335520095632983677098604506307614856318197182875123057443354876577425387120350292603679231831760732244720497162135647642989154026758519931141109905750790964709816935897744375920563709380805996627369332676431876707111557780291982035063658718304033776254088402417312883009662933765316095827094042244076923051550814490362881632696572231067282782726156162464835948768648892898501083296560645774052635342458064202189037800586114455448682199401865528792530974381273679604571787504702722959482102926792389851030229189238556660350876456319928940399834513443039013047735888291180596414242645761160545888651143134550172211293272821979090133245924502724471972171518215023114769493858061394049280361890902285661456970986576891263970618171063487424166254398539137501404607953630982796252234632342104086068187989101336655140923225339722540134406039082159249594211213725844288593635957093236672970312873918759307057858776907331294834721093534471330100811461028708136505482281503285841422971184877094496440973293377981466273987368830099661962647841162499607660054153715393907944551514537143478088621724536881931323552390681809205411900526589506254675797410132045379640802744006140303769779705412293736656558830658480849920886809893313574876565530530521481356252131421330769239962974997275700765844160977296783636985812797780619273474763086714004458951339545073221825933744400970366479211899274079636234038574810591593979820751494189333965997776298728617657267000845597516258007759840959083736567643418757333768302356271140057993910257273528968204677921721733594492534678942928388490313341463621329572040435321297196990365797698435626868598672846506491551067217287540378239919520511820750631913030257129461495346029298081258314930961226466694519341742213807817739127255552062733699473278716145004732710396934854778692233785585196549135508794097661328612143930367589224344252881923378454212533179300763567799422152145774466168073383867999383751518786199976991168747984666853072643977601776105262567369645923492948258821798191491102981856832820812209630107644075555064533023133040907554261674287736107817626559525646460165772933498910856183793453787725686553155513122461682691522306761992286242463814641506575234333705681987902859867876880330301185914414650519073981473395135789104192698717020979732613078732939728183195124901713574696046834768760090264416796956242107940612144912561333831464122100568298337013915278544166234082490407039253262224202386775880298274671372815669786963463019910905468240812915188855288238539101735311028775047497953527183766180891318220193533831486134264001435207245309063286683995077882625792405476460832523064329046857897126552976596274508991564554883606739783271995437445380813005865178648486088225872178592245622665565174248235361859044154447913907604701600074829487649735635404735004038031426424255036423451460095415795995849478166200286212631722650475457297129703367124187565160133127135344053360983178701578194345936601128391868160765271611371017902351636287534422509146885906387229770702045069547586209814058565237490474610528014127779886414885078507951418660908860133483735447274066167749851581782139063158740648883241522575547525889043769652910466152216898663248900914777526729042399911657162293939376615800737444825465119836592962239097796482075590213504445878782728162929962982307018124593265924874769079118682443242494637829046833545010864868812443246359745597258744578748461749493853780785114923044501426340120926902297099900268420825048368474554117335756140747316420907898817362688193809935345030033656948884139053365643240289010355654860571728760460743886847015384131571138441668478600832920303447880613965729447391807473784038402269367890431425237958629688619986882149644781716981786862557391057624072873145077630920903569992428831096244813807151598733025553941061554013696270856365518686241208089675439473474302026788446095761502161982196622941562906920825674019843155249512395972431693559657506395596634754498171725892427874363630600810595959770955117068227691318097647819833583313236553573998091322642648519653443251390562950315720724430464182631112753820207059280267222081696040679146076882459674183357523188728462664254612519670816525666791250663867798666514898254658406418991674761665115351549713141943261061938539232812303859318621826992017977714412368416640613870849966378226472238284135177420927394424213796447428815630130445702579587770492106124175237211640047295146815030962934256200145979780485438459640384749001819601372866166106742584025719180639350830927105494577405780134934360798702409645036261129203489689371793305085629319054704364420034350096595395338195272398645426496104287520954208688759377731176408002936119791361261015370494999938945223398013799414719048439345518482581543946415840116914438959797204764136316708379904003317378568530905688414280488945148945490139010402388800853302459515427393417601862967770174136535611997725574400767077728547906262631223590422920697138920124303820390891945652233147810503196498233658389278414939103910613283427342720813903855426290857852498443524946632728816319343515109145224711370781864038613049428685272761122791457973049779062142329723834572137758648117758175508269299233973280128673979885797206643516812998442207547484304128123079906368246612398922864637026259611725614544515121073783281357080946188590477080432479509409083552522677004456604411645455375705363814303730049066058220265261961884843876444213224614020378137611404218424636272543731035067786043234362341606529295957266258762885074496126486661311519994711554779016662686465539487532783919446703035697087834253679344109572706910298829808607343492389754201518793203994907746625011513370975077925309728861485175214624221308522786196241804997609130965727733705853094177615797011654563443990832098845332521182564343745749957512696805675668539733240617553534074221202813665969170096928764152548024226350826154759668864166422135027415397438596702423061602056769494621509772586010844112584578659294126243978859460364743205858811172357012542169444052978779526227793464162080290026261996605994081801584498336971519511140338360859658221512612126455010240155562931352707037362270412372011785018434978157057653618677952864292542551544231478612568169527191430491254311134102025697796152599724655332288757973842677134525403964044139033706253232435503261578602346016770962804876209510001118983243339655098716078067088923802016052194623432414637041928100922816567349752674719193746206353138682438194225994885446879691666422444983832932117262763121156917812306497861238131415704032596140796828291454312238895324913374110018340340670738521761248739024101323866677830517696115028969323828539325856797167885383141648820965579356955979212166814718840799774825433041685916250306456795289274715282055542188490710243561326558377958014936415500204049834301225825449073401624455904892449708340640916213174723967092833310860036637510312443280301105146899470400072828380825705571919837669863558374219340290248344768587499248890866451053081543963349954513039772996228598309877168871891350369164477172532130773637090089286253417511362663483575093220317703861789056963525503814783222804135236061416679630025821760770318610425450764660541589119734963674105271374595361816997020642328481067339915774591939390717852117983509301606773382596101208609310544803668405424303913533253811908019517916122448006548258862085859019106599635295212065591614293301668642376957358574067774360833337701262773707570148859784579694893518046819362425447940336484809581658452880022968698865443468152385679835314602688455278801976167061706610569902760138671497243611137450424107036983373785543721017497287116122998007136749461898022846827408658221733883334580797535733255740311185942648009055112761437013773499125911218724415486670944957836983162732457347069325912833980518655794419644135555705249852163793168622866575953995319619325592615507764189892190911460873241340305837635751479334230080750624447957259271738430262641902066470670754742668872561903250183216016713624646234267575128618965968134752620923434067029013745616548323862525833287500990425672613085999811942892637059298747021223276161560908959308569017927229704615479868080721932555975368417764759407251524021771228668129608479843770460539200312655685892987537961161900371092786793639017346458605121848451624425471956351346242557641266991491107653251216937399106879388047282044500827146560967651412961040623006347820702852899623554315370448073888519409644368987301861471207195618646328500145298403828451887280140247313755439935998182794633013286482252579516782181744718442038532411371434942678463339249841151672842932607172112129377842812517866591166031223652636348104214418407467824184173305718852806053612670905928494647781873214442073617748555225960568225616201587180083755753510025331636701387415990899882368071562863239536088264820363111179085327073804068714352475167055376246082593568084624112217474974907536830114867923113022567482765962540220591628209543044015785993859763141905615017525989802313081498130508790798754429867442767629094447680367864959820809070691032318008689168392895139748165809358288421503543467991168369570609479950926706519028070492248590755530042423013072315028753990147088946613392570508731944041638215716963833459808620199167649524952072104134045663631878073946732908202945724778818294582377178455754371565310430200316376790708774599244150027738893060378988800072113230150945755833185260600183613464185048472602495940292530510785612441210306716889137569213625516127991662074865277727434475029196917100629852685828715009878449363523411246971182739014052820983515414223881365328826522736674993652423759986468648419745367220512811378159949842286758289347430577532090681004128206027559297011277262417712962215874576814580033999805724897078480589087922105604668300972375433323665616758000507041956192033666341273008975794466366675914190439556047128295225514154923585537754866770796800383448728208983399424026136261065196096419411548987590503709863292141168980435482231215268570384779417560753743941797524428388971579241619032983917349204104895177142224632246069586743258443262886424342267060461878956287239524959080816038456352615857907280727326962617704110898553633527145323747510572078089329600524425078731280551651366608918439057914622696206382066947838130184013032863130410835842643654679886864159379598618018952688391701304367582785333146188150004729791153930023188298661264884722931743187157798231478350787399273069367993518558995286061550980346124309579791177628882285074144676037763480652749988604517000601174520292702440070975774177154943192287952891078688046513497323216829177051133960314499145684889907147352720281303317435170905668603441255379793244548106577202300622626750713692714995574943245858277077705027278683162920679810492661843840176623738708563869034815948907091018323725723020090071668170307195514948841475104767734355646478829612775377961017915382568563042597274034978778336898536466041666698963694576112890528633669453499345420217069351152140748000759940906600035574778278900710995903806035104366815216880309545500875926014598413259136142808437002780061161791642898060398363951843610034916331995045287654616174333221480842009751077635164255575178311632885686358195038598236844873495880680160838081262883147269139647762225899308612267844542639293985661045623775699051627058278293458534280434295277064401117061917403864062772386428168853791247925762407345532610905285340004380437650218544863964200654406972768034263931634893295008548976525665899258591124948513949788685228529458918608068060894174637659043836900406872248226455330671306427467040371890195725445115108199827063259601590576801994302524308315125430781359890601707647143475129788125402297853223259693499888011685410123013840545898394538340596231467665610954525550669089794414323757994933402962838614435220351493889473845446662291019133508191846485321281013688019587289362528902837941771212799561554463840584632063593410038421321082651054105325119224237077699276956501809455483771509686751645137940875846403383849096707993220151278231119311913085757214487684872615028239522371045552333014011577043700276720717776975850725580547436766717380075107319250128611088478351370876300363953308007356913759549706839746052811973017624014567022152933141783039968568017627104291225352311469136036498374010825025543070590058423151590794325808194541593456291315637204541774930296763124461145051080346354720827763929839152034404411788466267881720615113462266578160755319324177024944796047116386951990322825159241132961332022490156705806234657530324305575371628470090021586321441845371508546911267482187770362926772527026720245106538303594802588467326315249427420766643951021843356449505703454866979774458798725167453655027057102619941766482398913752697787288230331049417734711583281973494274008134893285730526103485948491345411511942373172254877511117045485013702442147143586639250114921147754974647645682337342396090532874262580584249284972750354280373097308179668448394884751947171805601015973556295990919750650204615535040945288622833719487052827504606181624338046626674628374631544629720979174205505842939764273756934367799763039141975586936265891261930877669197304358764502950721020975443183677369858464566818179616984213149602577702240789077009184244361958466789938282011029701515116777724569607861407514680144210720176232625874146316065186409045893376155495553089555392010439820717864736443171155695209996767983480699650047616885208451936916759207218563355442960233754666244987814119452208701195345135919852297450633153667272977995397267401299668059998252932321528942846547533706034442744056592493731003874633908455253851234198914645077568144616817261754156099417827515569554833748836624266944813073312418443666461367550337866527452643838031955703801076468803560769756099218909270313301349181679079997413119988440916308630962809046576776770348072179994173434297340395472799923790596700268074726209973552641970918173721042523422889412718134544662583696958375945966695385069464958074379482994521966787024956802508723337017709516788947897737534125000102477976501265800320388708222237190576546507597136261243948018548235601977266781650472975527536985430527875229377081689401322608737963137189525277475831957897714446472257440405954357668559673121008318619186878655484758342125621232157852939404791144047351679981124813267181162506322163492746231214680513490369746107307355979335079369249860631968120947174290918978645278729919244063417059272021594618601716054742033431225329536774924311556921991287772389639823196652291283022603714854850335983978222045166453507227758832131240203591265725491053543369401220807748339599750303511898485530945129635269059191339722769104587247925299747365148992479373451156789035181185985797825172140915423295869448013908124224139306678014847620089878144366015872593288964891799418535028898035710654708091725904670575306011583932135454148622007413005816711964809896059060764789359869737621390751207899703717260502436891509043768268638119723135567249883745424346978805597457045812436415793440510399124763838455800582192884064652608899828630753762215319476229958473106204570278362407813537238515820693367777883611449600819587266509255612233068105649802289609345183650075422357868958383716117359244526536769131981873464216059214171323102405134734245434100663245451275719290639254682205750328484907642764191968905455918919951132848302830267060430391023574978198734091165582917798906239508464857312895345550240147776105998271122460587450513137631298121173682553746626273500030610124996167730164532142665879856724302940295648713155617074474202582576267602256607916571085013464032390746567811961668689346725244197548508946204087363117529982953464101467705159407725413556842633763265459883677543605558048719895567788354616304563073571760714972166703558402912904531026346059520013130719081139854234271588068830219344413472462414131703031400686364248104997581412850945215838686000159771230899094090500039970290891258348712882138454024115675120445077722787445870318682821578599455354668386329614679755760980824521294065201760297267393366666382732984924814767683811847100546825622375068601338196026767109966177895585672086330136968908140784980451325663421557586209909276444640460602675200616545167694497905462482380491769498775459587634043746595504046245718336740269941267225646415236411762126272422064757899755533581517553361939948978643079430825789951709916972354452650256986541481109480954230086570018284736887784116932040944747134200540414155675763275356774437037867370129154573349854841073389515451936392901306452944361048215676851171917982147648401434811227392831918227265012962831290870902564447764336778708210315869634200946201023149391109059372568118964836554837128179258024604247067567616777644307596343296996169039447957446685872401296189059439546741249420526115879080094187968901597374045340590442769483343672492357880790695001029308614316398797162609719005807414600155245774976087064118931641507865380988737354977339984304704353477649073795526199776866186610017363882032980897679702570257754970001967515667016548059824757843641792832605128097840193872501652042982672754839547521831780012227791081713940371481776921546671044299647960724508301301462658100991870437521656325046459570532831745626137078570910083588625608734071026360724822958530323030054829755177031740308874250571663601127007613912282349933339895194499340930814869626840463106666859094088243569294027960861438981512665288561818579825603507636950540603859768211846760679909308563808259561874746328697080228803753268223806389950127782577289816481591845216456223810735850820266035161744547343613776244968596581373413206843768461542354559107115565908333437529426882288910224942725398653155625987824947608927189782616056494877007524124377175842061952570051714481634978576150530069629655359386664756831484794197015413893340347413745914450606626958800622478044597636275599101022258944222883112314989965236782199293135929406459431537982530154495353577668346791044530509648730904865019168126612224939654473701790150555295377856821060635136842649198147217232791249118093208549338171399634348773756846943115402877036724655589798062898280257269814763312325754824924478477629362491353388110259016009468309242641131248286667123097362910165744968455662012214741150706140730029968629613569409885035758375964899713890641411052396487230654746767909797603318649363989936961635218527581045124984941478999125067957852234885542687015323416146248844717149928525102899364837371492862839685485249751826453728986067234163598184625462152672111284211517424864126899157369968194401134125835422094207632323279793865163245976375230984302426307375441003559931520365567686708685292479143117819392872267749255897476443550370754120118480391436301527248080990536439321529608400065401658367165800537586341127095697610361477009291682716657852375518858581039851222514806037301587705361745694617507651922170618999245446116835405368631571641529383933860735484829353461469658310390439378511966060558556642919222825280428761576848154923182872250352209918168664528364187003855324814629295350305844447017779142209438886286478009025342132838721433356805205827963274044738436772370107024359589101564789461553088364888138919226438560123634565925118575367144433053314668711904143094305303934978703499228776185478282395827250410025802457333497158742126687604201286863901467743818968531795707580493121982279306961489071950604967648548770960054949498494071288024396416948412066273786265998533117834574547929954432652265892317155883571911092585438097849992224188559478969872254699363631722431082085053511073827546383680867486082264104609069916554153971093790580657567507764621561878375699429611662172631473196408635163169588036483663757247264537809005560592120012454944532234584963743431043377128023353488732069567441614801858866306875143330874087148193388871989254509351745217189762603691148395179147231840397215838698654586589263287198261960031761340744193294039227382651136968000167429820237727986143081197776389289793887289165014832456693998710088515935931732380897377939238060444398680522751131098510896798961614288035401445835694700410523071436993144934378439196690084341188735910305181747662057467789002747653141825777151793971588220069390387567954315426383454593561407887921241329723124699700412193200976424148356056161163635923699026433637652751740384338288711543983986882898862636774289394486253198346912587491745820349040954305826030883247335744472611972436651209761715213269435585816355597190425822035868377211229072265472489216789635971394567966895142687909716469002097856681715692386587152550604271281653922940177152628319818234623479296248262981678778533366960731184364906972894337477886089209766142217776991165003473435388860603676403646605860414311539627152638217371999774720411789995498084735079953673498123215161377134834265052568892854548681305829549614605903026970612653987243703044022792410496793953881106771849225546292044493512164250748047938667801008337226228440773936982800721397264087861305681357122222213099034919069880781596826689625217116190888667453638632151510868769099639066763889592864650186632814528037217785299664377102939875200277536464198980940958792891780892848729034350434717973694832221919993875171031139624237119285565728801256120921272760561545916181075879549881387534236482171144638467988463238578739698484402883291970749970613742051459038764494552225409940687654020835299542190819933428213221969462531132812442643930389114867658204178374289342366212507396230143622395760905109425308937317071361538738303921817107750361595192062185726930423963039076523576306727604596735353260408027186049337807420266492581754869535381795969080142197420631045142140533246038057909856220356669582512473881077319190222096203631773636343833376466771753651194257017449900640905113651084497023511985452451098748638052941739393373492520990250282558523315998242930324069824734259448672204597343732797222363921802754098207164715565899044588223747337787588486588200608787373924019803657008529514421201770357325230871532159379394550605390583225541694388112127600209779434389575224913974119786085989175175785492024602142957199195690800565034970092133017685109142802358256982449778489186095713107778135288804608965596088852503728253039342626987405298021937313337952419565960646117797261273203785515241986176518910210143746574977242594841518180667848715457913074670552253856310343089811486905221867713918994624388185938362781188064265773604428705364651838281536830683402035322323421271691187271715994529932124410451225171422773406066743559006771820614212806143251996118396767884832256753545768316430748390600303608000789748434975960366043206729732086651529735199013235958828144039836345472449544746640731088582334254530564645449155687334240883328344865509717214891713225120522594098864162256173034099332018781654494311219433630436282286887839917271607288966165776011597979978634979606058959226178942522363829442756354566375009823781448977041920605506241142943995935020250931667123322173712047770932688133935092111861811468357764203108793810862112868753164359866090631401301892225624069324035479238124314290549987216020070315442317478126962231552808672846522475720605919490457580571621450536851616075816429562758369554690593455637965211936635415123199293429986706040468648838335093291529010092282607326239861171875878276654777026785859750450534511485765801946504698182081894487647867492255912892147551844766161499494098744438734927235248588540421853609021806815343203000912609438440706142475968884356321716894608637061026569742695515883592979919013461234448897805775218226272841329536136234324278434821461088574122580195261580923533931458208127964778185535313870958105031882367573223248317862275471040583468121026725706043492026322314948786487393715899831743631789999999231938824095503350158744818980346444593750787534905517827218906288352994290545570729084489092164836649976245041937994557768433044902461444198141873895909667136760658599458141085040420129438960532005413796762653743269040264714216000382993042559530615982494947354298910230858636962620279668631337947631181642231440348254250702501393740050388837789825003999272364992968131373555871854092011262807515811529252325765625628646876071655329707460198635362761492565584706549677311527302647253492068808586823741436232915748779859016981512891569578304537501745090944200192231317460153868619935346717858634142094973190637846294500348591086868360304139397699033196791096280030311635367114285745488545236256540867229216618901595181498044010914975034734254042197778554796599231747630739263420107836934897364802628969849093740924989882515348072306785525120531224550051223296331951942917453227609140055999189483289549002648617441337212608590057790493861887140539716721702868515932668144407367905983140788783118594118114167937246790236876517806186435587413007530162797252668096786950647474946360716795173748980229597577835406724629616837281241971605850332648659228247982769836329268959778440859132085312605332716248656398890863391657417145794901110624101759486786550613288107681272443696503494306876214361469209536540517357408821980210719553524792071511062345132365640521590058356854330279602768861163908692314836392001618026708832863221282136486701725475588672843703188289851667086260964162064434018117044483878028948044489509121893340562648549229051234336133786980237386142803358940702295329478538428944281741652390306581183360916279474031348691496265586280900461000482266952488472977312119738120263319878064409769796564826068784160669731345325619779508140455126962713365198005212587741965356846822888985349197109319319455279892989120118196445428260787636316752536520072626002424810514885718436470911083755258490425417320004838779042797859920813756839658727101966377304696846610341973377247086797872888449915437022021290967338238635054879653418699221374439004915594155378448256003194366734808074488444721209290489762229700084695196773254452884916976360281519479033072880158152747259556443911219164103012381963426288826619500046155305111381820384159744026373313661113002687695595012416858718290173510493451447924876136336185305983732011852992432079018783147856050052324077112347604580120036805744699320279956525582816861671294440771118191672801689354364515149490350600995284203667096125331268448480428375012254351882505719890173026797828944826096279115675920528623694445037683491354970000891229941058233317939607422482847283844166604396027438108758381756933346038086750995530833314913682604359929477714258105006848611260089440805211005551776110516390054008603209484500964090368724439368058904002526476949928489446604063953513255013977811459684479892636941862777810775561410268949202946063290948323588460061982463378479325621938649618728727097777712682264267866046050352080581030480686364460808949963602309073742792604271601510704967430620208333521682097998036180148415313505064496459993377034424464280337080187820364486276765589691194488362398783349228060751049520857445768251524732704361527089558909539704150352426461228929440433718355327749548771999002296701146658136606583246662187559300380349956548828024006059690110941150786288936168833532693746803152174125943047810976277635783022295414163542321615558515731098222328048296754061419925297418710682404432898707374459151550056552876438647827894020740481119309434643236444648563152430676718852838865330040542691690454599870529090350000283820979762361458248480651415198720847649063821586011316119112529669556950157380211581756424991359567130811161999705873618468464143898141858519062793347579422855292910062055577365707390995018843476304423696601229167934855714020997506443538413403316549840813341230772511700918244579597568164656168906558702806853520939518333248399540117714918209567857193380292895014207195370393305480666181185997249999176379169061154382476212735884590364906265048863591959532258454730960510560269800319792960740875212571055684105306592504271430608317166169128329610705786749362833315327460428687167387946011414839067119745847843350710592410893234371659178774964633274089350850191845882288386714735052750211354189954304060772252355343216803681638470129618851657138250489942603239530141238131566157489004587383014984234488194587455513742376913010310682429986916783909123007556426564210336485815355777659520433710641349798899048525138738984105168820576667686606323046525928839936357578070145614194341014476001868812890213821271495858478733232089575348253926782086373229984353440503205697151355795429550991579054971527145341494602694635507389151481669239920916429481564313339485372693834413685508062601200515752817947781336880732455846766981761372074275638758936842087356457073145163421139324652353497667994834233011237223817239274578103359187871995490379976615201499173589520167876143782476074246209023427102716908822378506417656972208137842769957491434445234718606385525125446967461202004199682428693781708517046033697393721418790589459126371906417395618418459097409870423617266380209330751071008555497379894440303718908984957096546879486700589155188229172687654411213782106335777273004818869398762317194057034034832767956732694219921923244080450598231082361911443239857633967028085771388017379872753167703453359076399460810834201195514566111782643977838403414038098638995293303592209778348068672110377332452873680413121000954342730879713066407184725142055700976500280244451594619782997059520711163050987755296365293425900431014202992011231680751122035652847104740863442714902206165014640741693813107476529110491566219988034782963068986242602084170789826783856419050645933301322501525925654138644801727088868873169961785678848501432021867673103970999828656622463830613931736480251545456582820030222040359359366481593155440291885811290413823887643914015356390087153570240871653224716747162657740008422837111524540227462525469736481597283225573565945268642914382464238716641392117253031213192518211147268319522279845531308214523058319291805027468557628677528266624509254503580888896327929381441189026919749810544382738949956534654341828972720722048087543187506953877193073817241187778824261070002791044815919024949499702178298337660005557810979394481652817654417192657736275749118427878120043076163105007497915096904674516082123456862687263641126704296969220493544089155383452952885656515666847525278438687797980165529903713571782554393330562819288740494250136156590306769349335590863149061327492275409490453274190643024205852576121032035672813488312298849809615041389512832410920603563128544464838124289823942916726365597491780377284343237063382061645213133205614807068969126494681281578403112479658756385810882740907266377782640342824224534576689074879781369446918063603972963195045539198844925672621985700116027093214751224530003158873574150833125043562458569967349610288598552202868642921833503990136425483515179500375729737446844667957158101968879782861201248389107217343575063618768535997062908038229355947530943352739511176230480134741228628309709961331542207680348031959739249712767550505595131930615117190188205969109044055954415950791625524343878743223793023461994369931085603845253897310006614412551357787437397561525680128530165315748238620763837743375081072518340388028868218229552832966263243662598850347779803236387240736468140240057174564905337972575767517310014145002913342264835620254655751627189710758128734590252018827034777444676060044260926215482370114562033216016058637689839227869263368663581417460385339327327842296050359774224195358253904556100453686453282886838284320815340067515156399063910747681046844048364536545592940309246838060319459973065280981522488526051187728627938926671062375199882682513229965519211277268129751757700321805858830819794596993401324167429416730816481292191303936286764280102963209194660776204773523836165047759948291642163668662683375963221559302692250462792958446574374184954282422217553005942827828811638830166223501871052491109024101353978372021035053380274909408496945262617867506355221866726830756012708269530685323293249431329247670409483585233793312572101458626448015199350787975230166048307226174270996427014186830802808819302122453883600505357100713788912610706797084223663299311045125617721779629682626361411907518932267958834552317012554243894671348949672510045573321079908126051856050885458522390194461092451895011516585071152178807393069051026868982502806275580378559390934676847889046025285932178532883619217844981618339626889887175654862482592391920772214079093492437430364294311601559076570368745220062124775317504316057978981029243310487387456018082766530175747510060914655258403817108675185243085651037977951720152350596256716737430017102812628151403122995089986207776964486723263656000975133354306835094741753776717334461956128190157160188058076315371525215760364224293005339002292151583993164188725181377689595117255827200822079894659431850002367595099057560554359475869131681274858499509029020454033656508937046199335712986433858697447214328291979362162309673585279216226693993539887894507682214695278646273759189767174777647599582922876591275698829386168168966095475378150347393487254337912668733983990768645927454895317490110578811226312511822278972273315745295638803335391681348012170355584204798554453762396190115037519020942703099588080543914712946943094882828244262204577525735608183489190172562691537886940879299129127717310656576348868024594192473898289064415528186599557844192167252089752205687961708055547334133896182470749928674693996922905471478836680065608363621947986058050694959368723826753857600014433346764743855819564014894147547382222912378292570787628844840428752991296878266344370188017925367076006161409307515805174941447724032237034667270773645141608764195399111182589206084966873502296018316210129094893212744844986248006312504052266909940667814024469155792989429238026603362639567214752311793743779693927019973866137360337049903521265731113194936337643242651528168083219899291284186517227752334097790277232003667057260225088930165464926276699208377567163281843426865601010178427447315769117000411105885411366465668582856771949502530393041327511043744196622596309148953428811771294031874443578336342581102213923796157106084082533311773998002123823569347974892415744736224556494718131522258724574912358751023957193294569543310717280276523637586026251817459612882783431501612403235877287735025919801516764917138204732373711948513352561304449345577107056394129817502484519740102506341134042845714900279299763045963216295514924635313998977615499120270986247222370813448412211800921525767160225369916990728317904787699823974883511002900919230088591211005916322126910588781527821240129954819449624126677112771378760273073436938818952634822201388542004430163232497634046783256619059991626505018046425023340644812597317890755641360063699816914219574582617712149725893613191599376167570485796797889885876555842897523028709201129755235615674385768440709371578937190651500727013398902176261743679773451110863216471682030115496959439562276622410027595882021804452629685108980549824857471022689677201530558959043565584415682310918848858611087608859882250237960339800565433900719313847428181629360140395576554123430409271827762856718012909566232133294494361348032082070133762409688533038515670759831841525187977598533824389450072352600573271254583474728446439073358774347771864881835052776455504421586028008214259719681896314347498580894874059640674455003106437905153865063660751784008266028586022678509103750811086078426900088738617217202622545426432185579294565451621377494446185087686573697609627401946342371809251340548105706603404382698830259210255428546950227288050871384559823701659302285566746221518947228213123311356598004794161235878000247020525717083490325235952175720148708761998335036055377013378979177326574788716011346441000097076454560696123561431046280149857101475629940298200650599100820466828470386378128317517002450367995805591491138569769731640337614818543743228521251879496336791540200946168244478638770310832193069845154079592213835370174709971526144526569773073239122876143556138211898499981873406483943065866256900179296884334387198903524585149641732433655374335984442173324321062566622499752289693997004921787840869949013399226904819293258185020072540275301163029894726971567218025382161697056379316679598794044866810680681661872618126569113739094456886995511195995041935980794143415118472023666277263202272957073249304405404428527035401013303751995664488286669831501735097401179191916317419730813709172577547504854033473314012163607537689728330758079324151309340337463473288391262274400655309656219589597260168623484420350319049154335255918203650744863423931848603038406701359221006081933585212145332368048035028945458269542851080879732263246139587896742825175920120194180987826542008238879190457728279518104188053699140829537845404979321710459895122198314238080844765159597339991540465520939363891965132643466135572551857379606387279973788723403498914839972271268748941091405660832397776836580861177988129526119206399286600158192901934310143158989629199329028050916490239755218164622383763635507983708520040196626760587084533267906588554773367021729510331850623773779493203282556460160994355382564541579278807172041212699050839775733955715901422722743907591490767338224712594382993241405838608994965839746805492842628286471269734331695799331886847138643151617049383880673931918247905422817700529234920034826227413224069231486406194289531952047883684446302167441677329268544063128496527264253644361369093536825752815909940054328384036483199480452969777021962578211595721758921442178089499612233561162159772418158768250820324518629266613347823780960113249010508889390254653348792652087465166978522477576721339058351283891420173676720722827837122916250940121530673891112419170416884535841740921781562834166797345122024541139428342662016185765557761311569667305006655911898884139720258913933837957727644766709075909412931291755723212778460961190585003130089382645695749079783718199336270492508466395023263299397498349701059919227131185069406633156487828877191616695920222298670304744150228282345087044214780379435762797635451026309360128506627530451312852000956737485046489029302730606888708732204032567664971699285229196069191953284630019182752628253055753116110846031719205122125251439438691940832445946391108407958779445477372123533496654215432281677942621579664152831584190299630750510795456673050891839085140723199011166733296137584190480787023809931700203580704861860622784443741566760825097038608084857987257597083995605672503690079289823268242636827863559925582732616445955992616424093338588411257744132151242127230262709045030104761723903240581537424580369418994811425570453065031498023529084348059417446501506551340966559735899896708185689198812748784668207261364183447022103829876610837998115962779831664138683844660051783516320782452572864222188079360222354411997338133559483738747332770840952763998730528000114557979308173824507179734495147702156321074307245948826029129858814163712338245565460059955431638325606611389832721449337891284103355736083278892230446807372772265086488053979383203956666486551315888312642896180346937381861377202839155252856255745323130942392405663674787820355502820329745650617057701349926601103438195643112743549835294918719238188397517239102557864024649899299549405647875147609823130080059648103647878814639681797649762089438515059214074563809774218596434585685753828564327727608589482459547095290795081481670906728889671356192510107416327634859094378409611064190042683211301340183682902596116043323476378968969686474466140486327610244241030852671605998827245951879560057013629768262522523051241616960433468994598487440767368329169679733975979790481500170536434392299252219925640964760166500103965681913834580312102337880788226619580618662630743615114234332653902394979915200284334750382779898044914623244556405914191972010528109312466072275310434469284867704033516460045370313510887393901275872510387848844600584714798857390631626928274379450628575315793299451945993387456015699208694646450369448417302743463354889283486102359613088122081612975400625949835871848693851794639874598967948927126568048586194959765268540436433027116621038510095874147736781246252681521755748616160517769954016115701197828055029513310379849608348673128155762444425526431968327446052142943914900521458885022657689974759000789988723710873129806247488689009684208725128561032801007273321357717747501187196448754452127190688144605832130209487118934735894452202661732409513063526430392987151695517684885674201528207641208886721770054229540893478628494067313020188881302361470587011194028174474402381353578980353528684296833533545661559929365560763996359965958045803890909908474950071952780471389764016865896469830961586614904595889206958864173608565625370581830042682162901621349859887128422911291646084238467059235012835824362744906963048541059571835570752871764297474626003713653423742861951853875212952242910817043582019129792222481394255232243570078177546473432232431482973908046225443561434235121431254768171312069460757400148324811661078810564784297719746096282954781782254318004021434983670934462340551845150245626034761431442982175535741698566103784354526889984711917058288793209689148001963100349451383072423654290911594510951801504839663597016036290521331106883437250976504453680542815817304344608370862747521858282361794991044345289833221038091124325502388902865936569704716628029275776571873308312305562765817288264379823072675158030943445239973054545595544737714628536771993245602111572568874947511227379613216432033872961972029978830945125421969998561165949597751214027830844250187821106056343066745184122037386360171448988367003612273687759522465377363054979156220606519623151438122421333479952478541719390126647970005616207793164189063290749332318487227235894952398907752660999118406406332475660852581417986544016695027724585544947045386303272728745835777120485077523844179916002051993571479193475041259995794137946392206103992449885412877469666069383890575493086069305460046432084957930318886735370129618793571186787880505651446761731771492619233013023985314188495640612571636817982425224057786892160599561804256772023435191938891341926321179597189283678907479115637405637059243092534939126385057295906085633818596650789413526670194142942694743816946458322997743030289654835039596341129427481080350299448132740754853156705977921203916550611904240588214471952794613732826007815541238811323028276361364004563563738094043529791620289145661661471127134266502647751990503465111347437573874822168144143482615919065655784952206856483959890656947212338773728659613669468031663059536138003613413255177346416291602339540421046984391330681674135385050496259251150111186105205518198505325300101413863662394955394740805259658990726986714064112192625847013592391084121997362819044311932891425463817524734794182518703101006084442735994353131888133924721035036719007417642143412899266329973966756617637455999525432123449804949897425550116679074049765293813213795521638690299920108109668780332680744022077042582931031260040794100597696036412535055433402787142368273396948533921111921681614996599934887590742615476649985072823278566527971333004744392630089610539944498540562934919464326453416111702187457527556781465319668122494546749681304789292066428268969809247381372301179583470551677796994754894490128096234194194164298538648901563388940371728160546428200334052841643453950405742923913425401510854303943163401596509961309215672912718243008148755790690835877523145983936585400352495296025552821965487507313303860679110612511064180205671494838767184704167280167767196598475267580186654326130814402371684082220325944843661296724225362950717769013022553839504350017558839445947776734023056614405282336873222797753436640040720011594234040333015047137751260533016794415238416542139988952332316133222359235228810419367174542043208486835377702170607000556428404435722781456296748690516564187008015812470039405340169662516298642758998008960830120464337977641763769108691118846656925764130836782576261710934680510111285596217712197596863126460007503358358583367633884487429498537738380207446562823010273145257868904593576440556672023777323740750067312709699875930539432599800394607062134367812684216534276976428977929871790884815717250278472991603392089547381987034280720331821434852659424874687283057934888706741288179569105648409045899958090295946529643515212554370949268671396853482805590553152499698887478893331171528670951442736593968249807487710353385471898898688539777902716222500623044079632021196886474441872317613800595586319213619030582887767486265748214879242510236827937563786160769334697774599497792633705238966591333236372038199312887977130770125250462240431289320126349557599669701393376355355115461914272780602360169214526569155872834700746437413019122982346641336515709368776397970743377189779084134915239586073344911202766784133930981269472718919466030736193807515518414990461284659055439825566286250026713388743290154924808456232985122379413761754334525676490799783654180895286277533178041616074460087190373162124001709636606242654363095335722925912212903840330308734165726401571215083108873722908182838457786098584485249916261760566704274846773930276705763105696114696792549675123332224840416612776005750915797923068696510473417184180917515891702783355010351773258172776246341089021078817917601759229434711822802953470285603776691491019716893996783377818469362673623806900204044929758367614084017724501609589076849331779465664462521534727309868510494279816685698967634653585984268362323479669376064057013081587081211514920991974275674017311783039813620877554586313426017943522160396393512277253721852870890747052273703612666922967917703265184834476924544259475186748531093006631363983059711444671062588530233152342742743048012450900342379033130881252728205145999118376936633140733646059028806538949394338652472797041371441617936146906675153091621244781011183713224890472307727521787131698416150562994305083766252759078186865273716181970422110463432728120950351929747201587453289449161746862581036009663985908617391573744536775307083443912187340597511213700317722400544769943300121318340061934960307816653274569702142954469291351807273796571728478224855947519525514957128056250030849796730517352978234477598645777881399314562585977039528922287400569685830339234201754272635588532737111814959544067542731498664057573033802668556227557480348413134265666596635020753967628303630923812583913018991552481424396791857274008496260585952839567532724276737903236343745654890436521573763511766717121673345495772271160559400100630905588289153972258518237477582016393627490571046310129189072442411900798395739402480387932969691968565914162371253366155922407420877637285525741811686327438378373708402040681341450113808481463325194017281535738001330949833172324718749574573079326737781475646939207774084406365550941784052356977067286821326995841984664192162322153819014399446566657715047982103300063709908644557174833983676500837663850570150828744558067388431790431144120386027029793077449440488858441048867067901395590401336603468016139828370138735118878067521948373366176313659883459620342203989083607930083976747204645544609367734366648843545983079551635480663413737710619874418079000383558797287319234188797577767081398371783894298015559823070140164488484995505125407781511168027332925967513726858202155002655503234657759798353271739250253714920142560534623377825050996441481595222770799177476348731380954207258624838014532928244830262824802226446413609462708836654718683588146858087187028430254372369355974788598682197155912266112618991059499601688094636249145566453354925079188551390152141145450920433136792151059858184753841008189262600240766894446753682311319673010267159672860219536233386124184550356580942190168892703381715202503038841419938938084946971299371805372446302706518844137042655870785914730502020615505074717380537292019283844127322537586210826756874433125250198955319387973460758570199823944318751685631531963861362824141143459008800911936384326257745573551436576608226630770991218286967963611054384905198406336877099588797505565927325488971103830874805310744549486090176574420392575149137555144260381871908148596183183640542199897709999584203852350640495999933477635545665166156584550210898994192584182584529602184037784545060597516001630078532260301566850137278286062567562388161811413538557571324580723415589748607265972563018987114268931533594014761331301455929697332784318390243241854707587975779035758110912839306012788296391546840239967992918053915028562102107272268048127092997876239257291756736072192978713861779808433556098489998038292470937933194155948725629604119645605334273101872357575818511382967118967137940081122593725195488037700038443179976015288143624353464840890554380946183746054770877492526427808099350069434459913319892588085560177056129565863836272712811466444630464030642616746595345129269284540667963751926435820858919421713725967595656220406527489353833281459067367975313386871059266439563073512796745723123612403702121625981335544095490440243498456170049355502811800118464656136578832082794227859295180443538980729462421430250300104075914235597644383432332714254945326187752488494319109935582968562129899527663501076824674418520669526536321813666612794896639734933463419697992620488401692222680688481562698113487705871102738854933748037074748659472693931230503723372920562405747105372893852550397237060249452376376160097761634338462450764530991120901129906705308923703529237164876549116679774490900905125999531813402569337277260941903024351746094636905020750791257333481527569928528801705039607075823291510191802030179669867108036463571894060033144594095803969415120997963070489165166609602414839958902146219187686732958746887778792527353004975765643077587558936530000980446798255461640999388876075999593323513161446410697657244740895413967990885629613602878924645069094418756939240494056581870137626049823321868334577729191560622186156268653691424963911143311777587571206750485280650097931781273683445477764008045589402539857044275197031208411569716994669756434859143986103082976456001960537691979206848504774715802083412649555756553252545343288637390037138410621215466820981447008969021543828797863502186166849861404412138332680521629468076035567927442490983976323008751231699886895668918206957215651347634206359161183658865613489423764988249518701918203944543780146713330552482249185575031279680676999847321384297763792845223608972439125772619281803588200824729602932222231513711197321777623233278707989630512687273371923901559387254589306853470793872612782745615769302132948551860359797639198869753766804727917259574537054598534000736935055484395190372410196272555286883201188533019781329884593642405927492315753803088318565247691763228517160003154718748828817568506284926137379151014676693081257212867737094954362593607390816995266021624406765340426455778665842817104295110383008990357524879170833544336877895403306397963756734833597029581671024385548004672334644732824573190686685211078216064206814711602136301256203755110700469436954314459898917807873481316785793077362641393736593038348528464687250903853036924797550373755287857251552454610113316357299843151307423849467461402256313856970957576264305714677346967587633918742683704542388437430363851647510219146664691535772500206118381322844280131860236749225861735690456390188099464970462832000311541334082188005416318329059706520861220991134800421479146326827475630556155128245182265986555573190889742853548398431193803627230422458390638771646635908901536881843068565766830546928252499709298358121205814792081487796248895457041878754179141817101921604933098800863606007574410274353511347848701937466331950100624904453404015261706446501299949516122373667160897567527679584551523079474796839991363746199811298026135610170258115425960418776826186189120481025121362220593684612115829101174774372441981960876423450397822687385047468846858738498120478676306901500946832652184647999421236105685917738065807268713673462253591322376163643140820325866520384179928907129555864947804999684036548014189522981211934181091403220466579706742745397160958937880646335638401639451453437115588596670972366368032334039320194386522061863405333267280699734911956375834274284173229326394843094828784172588034115543344728288663766580745353684849135285465081044175974503569275020208311168964537664994816431264267644481698127610378064288763932051137873800352771881640371162396122776479252205840924410286968247660455764956487666534655512012353684307900261299608372471668679374526298517535269164692601840059471306636957244955883746456067577987135287768067054832809661604211208453737866943309395801662556328759699700859023213615928667713032970822622220925480651056604780033461301856218635837354627197467259272334892675481611036338340528816473880270415124683921827069608360174186445722788110786046786739165897466390913573832671451602130025225466678967293977074745060920480214115525351497099308030342749094606842691132495989966357029766272911977830618848032287910572106472858461058960977803559452323636855110310540929707368899081189265766770574105903124588517474782124455410529387906054463461545115683370731236418918216894508669329086100041886789659554128319906755119681059007107345529721527788683801529739742731185866333574563170865823465588348999036990344790262572938543343466177468244869844769929378600044711059639984232617868825707023955853907400654309514769498250449729786136482337236166549083997786513519397244233945753692307021776634395042081070982510298528608519022160180278767649902080072560663643814358225842098771698052763831104258360878361674411241975527067752681502638448993631890622401216491237325895279984622915959319215009270354256332782934961846939317341491858864027739519686082200641379725185117144187887788053433317395421819324359533882354435215265791543849685781191833551104236067723036763496876118024144476635130481554902541373005986913716838300909863094250349378165578221013442020220513505422774374957481695225747231185641484311698210347209273944329523793544286387853693118970131162747387298595929072360672594305906447893158845196159319440799896890334089423819210768542118686598319728541661705562510919841529246330528088611058280023487763043324713172080871802175764715485194533142476548139829208706698990340533494982111505764375935279495738038122333779202613081994942955732778213478943861796714326985305975515085038824173089047306075834961499229928834933119285283804649190173223153891343275024868444230188273931235412335259430170063449625230894706622214989916931690236517216919959147317426208890272485985847350342492323805185587847812951184857960711648306024913453554356110835046697442665880542894520438467046059325958062720871979348476709840927508350703881574521279035707303176243415549558326319884305703306156501811594258942055773483436903441301494026229415321422113415524378190798930311636582373622149280356850134501912992203960784479775480194625387732475545846979908998268102066234469116032715678869534468751264879567459586483073850810701851193626058000272749597315464398054574347461565586526071958127652434466071619262151880747335889330632957634960118301980686275728434231955571626169686427935016755229314993883611840169386836404381153051955974222221798642113298570896851731984191190922003530770413611334815216954707584095910432319062500590234189845093766217658823028459325017893208161647858269168129957832295100448350987312125038674807450818144911480253595694404674093926407509768243085402882139394604901200271262422278104214115938890867825118490285038471955224981146105163047007092039688289040364242079145954355705152567913011496853383722542082738693258565649288403873975173379967280591517199401577382189366198308445950909825813448812162205644360935602678346037443253398380979575801804642853024662383980702368259740047262321489366096899317479454674812091622737928883710368447347185159058810441662287386547660374239660064301316760179922042607022436601480221221133795486278821899062899253529813625558401541602362398903358188498378957187231158002463053672358532461157883231930309040399847704081696260989858604172592683985781440259743764800319055369973491907065609448198887931107705797763142451360998019529484397199672232819537642916259001716844637585309239784960532938035310068077080874537628840970725518775649490771214457618663576972098847617532641706552604227622791505100563839166245341735325348018865393903169089531114077130780006804540613631997076546923117642876382748594817846380301478222270191910329770069665033250934726022169544764981278440848866148425531665257741620223660152360990057415879448274201510742491969950568493066897474691537140974504553684826200042728609466440447763341997162842803704146940329357269554267707727955779317324838135767319100295153836116495740289808245811827195302509525257427405186252061113403638622893875734817004554822079985082715406610058964046009814703582205062225251988282076887153789637954611417696824810076383015261324313647607011450558219217012668243244687021311826055426764816019946860314200273700988265316466696421928434915892048933589285937386923649602356299036394896997952089338946269377821814107509503150201027910291400218747304313186999672870703382398190758459155733786636182362737861977222797063365228162434905366700275787046101781930233771304959689636311029909599574362443113834467889689669494640342796734918432019587517828979830185187226958474094026567892093050591648810470802937737229333772762255034498348224828944334507446629376756186782938832588780361655253513697725277034312011504058874423120730492358859428356294602734290280681383792617628133109281521573142535317351408449277817925382102777488722153515596815750603866823842591471477059670354713946857023685159704647875360092643059703240727661459411150181732581591963525633461508965839114919418337454501171407004878601174815059090197592777920128736182838883747792040969321495454520834198351083666546506858720230024062969711119755048691327753276412748255366785088287082090401689279497608807451566187374726761430024744652093850403240168273674965784206569992917565300962553744087062391219896421818263234945167577297041077752791943708286019157224564169932263389756745584087261343240572991113402219201512371402174094759615818296169192509718365917299662253682418956949955194640141716872537040403919938181008132350579810323041179474463460612701051976738302572503673042276796412348801348609659126319044106179911556812489560318732814616931950462751402425582687314147269619301617694465199489267310927950821253182600958676118768147107131724814630888531612240395408662043564106565475350436536040358764536107697921930726645780060002161476117149474905284283686425816228010423227918698432504977480713696003980518529498711276174489509449110249177559889112850210535296472297423506973894232983205064250249650741266071883206096449712208354625235811226139754267908689208326757739119714237406513140970467432239125324954255582612974369551769208374330584180695831247161576806336005422321062304754815882089043003529255931865306086178869187653881364243771662401824126291865656033367860733153506887290113154521060499348794551076853314625011493155666555974349623911151958746446718772188081796493370793408583611557925617857333202345842128663410932642202407490969112041952218602826519320652617440230629256342091672977500073779561615128275756612559570112794258779698568992570281122980223045939982686530926574587267336275793576049493772624619149699029039111834732535703244813138953385930780123525848391051084826893039631399024344607915772297192512558361925036547177113353145672502213559998252099009080187229879650690244786469848174245672232529340046551223078508608431687743295104375611518529236738850911992885254856279837067441463348329546652924922624224926728231680997455462544881540917214197367061287858168361384934398419757843006881374182933717529544860132549698559311211517163019753232382727839519795810660979502991972066501947764838156868290283109486631425263976477841487560402448762684620228690777625308283665784243963791162681039944143190007431994709203368774528984120365803523573897391835361145919019509474247052862055000987506972500515966439987468510045846755709993776198629432278850406150708420661182646166743680251591339269147512931454656313592884115157356171643841468780785945237490734378907080554277647758189425814616482502922441424396193442963248575658873721221779907166612653026653507252644789048917161213497613786477964663431484959498556509348352743616954993002964265236717362648921466875240077360851319079610352586979438931600963163967599310069433039284124938813035747352173272010210738150474038107621729534523377158507875405103802243613211841869891046703651017403554594643373423108271216619270383797014423085438428422624245342049348992113318191346823125105358609420492324999642880386765526401202692808840338727759851001844586452693321876387737717773466823062127945751111714371310358404491846638041680689042177260371653414984823436471341823263296400551651940690452875108133262316661717987262281165969131425730229158360690051042953323986316172912418538336987307118104124884938362495680292829542737075756942296260658093254832888307259916430229819699307025783197208247451639106041045456017400992883752193997358848318855944422082343316888058320308774089286244876166779216853368009844456914246194332902963767611286544221938499175172408419197671470445933159099871315342044627971455270172708155906241270218576292599196654934374089936942674102212838975876077360014122101248353268945793513247205350460950812129391503683439723220225436755770790098169388972677743854488123110789835453486379931396141139029036087777378107014197898455337453172466349459020627086058540037216478471513675951205169374837457198917081233706506840275648675385280664940184217087343808880297522425871935218727088001777874935424083476943509926835533192477894668048686804720043319561497907601739572132913759847698909688937092217479474123925287403730073404727934967979189547882051108305604752131690165035876293036040851074173848195654767764590361073739726453481547249117915763551297396842222685086165819711080123250883492242330385926940570123482353318383049102252915051969261243755154676997285810168884039786959701630331729758973916659251802111921872949128929984293330847994009212956030680496503231845099582971476462426217300793507625992828320377326648724887462235953287068961291705188044989088782511324663675882989025258911479513251438657495380773729746352709017746743839966468044788946691694140503966537331415588630649157756968548730333378969788334444379273726613634850555439165772926987208795121600882760548023374835189605959798087831815757865395738276584347401611827835878364854411110774008874019232643899255308254327314633298755437609853678361083879632604279350770375307897559094543843105036261374499224935645902980524606134489663311703425043252345295422287885498506283255471917363102748598159261504907804002986127714815424884863304065973722893345649502648127152554905060073571913500202794345294942706469797546457907313610151046113286179095170979698297002861040245756934841893346193635649121245669025985470964837690886065072814838360876649804153689781972601078652235873169515311011606971058329226907666793039563164209521695588149453220672935584763248172094525739831134898944055360767414609651791227346351268881194074588051829211723341331177381120009678606404891468135008201344257846689424038075478627773294423477758593889668884367142630805537668167850652927124001705714414971224486971761712785529063925555312476620798503139281386701248399058907527486075479758815169463707207488568568620526233207474269978300116519535076267583508932775935695467306619772689586702915592389678863564557953295432399436371086929110707363795632672794658043640069057316793377173536845445657805680392844197208677098482289584629163164550317395661642549034353096478677527249532810365319225611363629174369888019246814743176195829213687070717746751561428705367807779089960711455134734284641471998959119788908747805967781579616306425222055038039651196649795743105852484687577104879920148298684745554115222925772810474654026082603323594594877394234076286643388307166788901265529050632072014198500450337145777088683112450369664922239338435959210661457484951237956449382241837834434421311955282558752178338392069845991545562613295695803875704241347783583878002537555877338620031091811612809381691066038042136882251399429045370406373726642370939392830699776578607789425207550212118119203155012798466304379858067212003421587905329461367230324671399859139147434405453274341439247818662283242181464364846984050470240912283354416734103541496368594184598985018472880912023655797373860478443940271857229816008429971785792592273703563753831504941018640514296915216458044910286532452237746925741581881995630108924437142700623142091317628914551670312481600061884830468782578655198007323200094808436904052849715147181109449194782094691887328598131089123480292809721608975240425008549311705785067293388324650792736138513110949876281255002295203791997311229486678218114575739569205023238957908264784702391300099155104989528345584718245267844344373127235903717998887879974634654801610467876395519792322320894354620436043745934782887892821404079719938164077974755186968138824990775651698689610919929721447575820848515178358836999989359403691586733360597820051277266903711094262067749526069456657749904501857061557457300994066129876772987798849598218844870451356336704949324129553289384629245754089670290495075933185836741555109536529114680685015286371174634450576931703973471545708911692598941500053697636807303973287674886217132396600418874045271232615831186311036131750203684210519711158890374212194293835828921045143272525076774056461142129444506977221920871487490806296721486463959913394527432245152981239771855146064528747353886159457649021637889658799121693539652459520534291905097252436029116209223694179348209150446602081963442090562047982933387690219691727107183703092112509653043973443295247988756307203164420871585819311358495808484863885543135682149613202584057896524535282581320636380941344068095037479670498965939018964060462069875507741602710094110989121197416634149755044838282934456271003514776818901474079971640765404849650145606355183875948017520647858488228259544358231556274448270711409047221101160769052671600100517113116454878685497020945900312837241645335045467814325053620685629011932176231117790194773560837642921679762929726839252708937061094445821507696559055326708184447928429912670289203363043797817370741396333345344220146366872292130117111973217267173044511897740105276338446394241435688021286397109680076714650564471798745959709602161874745856298055272646768398131966033625568755647412810424273575768639033483970094799982654504630035216750588058341790175375645023253548245667939963455402439966242336869756527155780556278177850269692005825366276555495313417844800785148060734512063767079804186627331457729453719320301017717059295895642650841922719330801350053853752566464703993751002978773014121900137103688016881296996402771190155132440765841821659493123043802324473761538420748248006050133112272525510804095890621656902883349981865330559563157091379795050917163843353998533891292791817328262619458195179142536334815183519764734605743637398361300861381373499139672092635142677023048768491456433555199303670227884708165960086345922440420314322298467985631558867439458995046185194506729984776746257399799817328510841285345385790027529567330502072702898728917514096500328168758299344123418078478665466538992714613207463162296201190777892486836195167793393333997462646959625128423738546457871941131874288742277936070294088508202190759306027676887051784298103560311298942598844571183158613131170966976086855141211009522168492433808621952127164122584249871598707278701750725911004287998408121394923990634589859884428521249260369932417364743786436655876684499247194614682567966743235167230409438086227761500242766541014862410017557264379568303469854405013283223628103463473740935178019622866604839735005997165677411935747478070927879836609606437693712320145265903703051623782247783412307200645680095771915853218515290402510980454121493928396942239737362878431284525354927241884634521635559524393532298220462612185213654669786674631379460436503675814447604545420078129350100941084677344194732910854438165292229246300767225972735536514563624081313574157042017033748336186041764786795597488427428937103837126195414951175739975630813787985674457223189238680908100294936445265763116375794790839215600741077232262470124684510678578123526789937666108916484308761937785758707460444219977502325216298901847416709155908046677669196510367688877833798844180655671545205585511189633497929734725822516350218644396713172218858267914258417201789314471571330219898413894573705745338552783521690025492591000181528793137785312916426832972007151403591366501624124679064694711907914765323592852693521380979887748260181875854752852388578379681111748886647230638565481095125667156659485230198600461893712164257637255369820115098894757012613126075792987142850824181053338869161050195565374069779139277799512906645846509385993568420342415355640039952252142254790995141882713519829787047354938480428980376859243576949554010259022921757084700877145935559362954142594246127881032994621422396832422700258782528491051837908767357755900736343054251020096654628723783005677681358004898397534698406889643328409291412813772511858050596097707242355905808898183208729825946105550913881172348438926526885888000528281255358368437774952790311665875408493447934112042037303883252759233879096157260712680554317780969828084232958964966516343784623405874794290475655061826242750530308815236073051414404045586953390801642819943224590958659635310431334711933840385988207986132390826579303823574213496945458777557080314508780389710481622893824599188791031771539071730595063322557769685639051665537625330159155888014514001925984802374195040787441697664347591707797151362528781169464130633671295836740874542126515286875348277843247164017879191234162623113770229956192550499757644508640623331501237769535240060885732423047508425085244268618600331118294127082803250609306332185126202904267417024204724003885296601190374053536408552920648683191278438723303442568849576579160589469945765665022368981524343087159902078819398926096514349467323394446558199761826638757426383892023062742582713839742770789130267673302332817869641233189221640769733468090531891098889610803037891096425632668781117144190828475938500857367658761572134739712589806407316247287329411896060949138025169165342537066040421189777477278561974965424768323086811074801366569241448015454254761698322384591414943169960413742957994958496019226973762044587600990120984457509225489183051046322554025212108545377279672857291213328498968250224248820068991705377920699310885181111998643849847422223227673943325593777844059144277966543225094279941429041711742605790330728829459195296269004523535065493920169498175949134797974580397643656649416873610706667076777154976706779648897091781194401602612051647023854644469282589449038226850118123484668498949766344109983927193855301883767098884957207908455144518003401821330272869213140483154349310209602001440819475711630031421004674627700792759271327375288971437136958410224381552832916224025600521284190200110731393033781280455334077169521822879536697619095108727190116001616698504881034686254475533718039962413008206233788595095557751523063962173476156194004158084965871361767062957954036869948161822147738292781490370001820243346249733609276421059547710187574781468084652543844161870545559087408958423445341254104231622268897020307175411280515753430998995774640104768938455708149955835524212287775195935811028675090005086099186674049264070925340361076736441705451885663525480102619329316110412919637581245695597712530144345128397089958629066587191897614461322977798739905385991241704239168068611927508826520133967645113752620884854096171666179785249686511882394258643719418753322089439230137202252164813643268284481895693728513162588562543939450085915234471701705149795541100909707017026654170468032479558398916036547924520982614827838968827108211498557095796836530403115069800087281879940933602247790531651488307029099747358178703679734302856635340121464613402674968328043806377574129603128084772840061740439450521176291184913341705134986196446071432215657582200222592412666781018707830208368210644173692292544710175013619021197218805426124971984564224768483015707755172309414774733016734254748919059430686086639716441883474388258467826750328125616655768559003611304151094573697768241304615376650273379221190530504260086610674570999341941215694632220769240964140685173671561160159953336330915388947687947224123924038929039715161826358736101165321508029898093016571113801070324912163977757970051914132468552091906259856227044331422909500564826254040959662243057958271169057282522046287166706224678612850322538674179110787893899870838018478606841378980981653816847701037135618114036225057314869160774840930101615192408989211469461852892975821596590908359363990645151409874200592045852096534803424599599314793518708824190688334896018607099858909132262106733085196331488658510253909352175625850301164465977999829336106832165620891263148391506244765471149747831341436382119487621778023858832960214228784163686586170741040903767211311995801156283006241926543661314542448809265252875512143998038396263111164355428638629796771115853270049005254410028063123276336646158507490121886168579907439524843846851636355077602849712769149958277038769855591375175804893854374912716596275380567047206002937669946571088373534186825647503048647352201913860015352476289967447947574130414795257222593505973009826601246953379397326932302656598749008417472894627279714674994761638802011098599996977869371618323455978029930764648760177520204232598412195617462986949591608942082722391518159285300566419646770593138013268313606893717210815769968985220820855334905626722080367323746733776143070508820121744231779569382022073482415144004529537803724600355574768795427657885789617175514732031414954461319969769543176051561884884359246815562297062408812398570112211437396341944568989732255118185876599631701918232645616642558790600577471315840002636627161784215564913897539058204828082850859454348632307232504060792786915187044400659101403206069090769168391248874112173337191532416342540634520338116470266872868597083391760898202672282469725926311131603360018967692957468792607388806886014866974736013560987848588865786316914773438754198055253617439473421620789418748108337082264989823639567614024788058650543917236418599552316263708365006384606177580621661984314044556425143494213041612766923557807416937237095911676615420606158620164463457714137434397266312923307517965605731035118953563594604083892283525229519753937647249602406738699419241657367826055232997868925554775373844331087503916479976205134223657575799093353141276677317619501854692407024687239165997988083291662830207334343764445588841847446658578603877852446199020430908166833476737347727948759945934388907946607484218362717460506653145867466651812508205883626697654392509637111527185573266811612953003504231958384282209285323156882722397998030801098016762929041316076695578106242284438654477969790002971973887272885492367775996506898934511826523185719133205182722054254367310931477380103118536075031543079601703502915982251104271309365640948809679434569224393270468102933300287922300136259756608619815019981499854687585998773471605670853639194357792042905132643037295850934786466531924420320095133846395202059262442400089973001822692274315624152127295226374539936467583248466352149845461929717622577856767473716832743771571291767837631293900585489951367789502018756949227693958138269947109206615325706043905231444162082996847118079202920444574887055890440238441366469247617287525393707679379253678670341433586050481052836278580926480698878380081067322967157305226526422190467373317040484094084369374347870428748799692817723470349461266480453243627257778424770344197471843721535405155678662669552881592494070476803789160097213431430669567403205389081673463714096712927242482787633596373523133176221085553131867434936670085386391351013048418151536469571295771501016514263552569959573178183892988025105857081109312659244742972645410883719034944136240068926636081174047875565139423681073080837225628240123979683914262425000605171406920306748114210015197828451318071522291609776337637360612540075052912488359236329177466918559264399391753677024942292040121790610964042703705342005463763243804797828402367571332711017380965309281169397374688093075759753059353598785256080301920402807421457526219487344212269946444596361117275201397810313220643625343983809057177100835455292918471907722955027980243929241194300165507893004021057810148352106610253713128733700970112065871360421401129966986929780702640150063641540515630880087182652179140495930194572423504851938599744169117883747068319370139369006609165837861265319995925178129561122688244071687412783163036946851041311251896495519528988971462179572080637030845257779355600397099025346302771545405659635280039651878135306084067237015703952979332160821609800413885945398466813048640752969152478989325744816815130286793932138443417841133256019017608487127144131932929448552643873048316316447507001005894333982374249341323887657565232825762583046591920827282416774848004425053857981834237674088427667636595009577212261849963653382985014406540909314576689591970986584111986549406497882868220989111690341964619929735951999604693756622119076868407549281110646482720288885347551666144528471660497557491690132642747752779811490304935121961810067458885860031704734753054206600927726294081415954156324448632220243958524829549633951801423030204239297353174715850645538510411228707228252075487437976714844984396696782610855535040936833640554734960513158546201097072139582540654999412710587048592168242747726559379227956166873479009707953016574513909816356366908989485992133416664264256974786832547991499431562804153109336601399526370349058567928091286238983463955163604889772170104034915189140687096503739407327115127970609211573041345140681614606279762776201704726212555646026998314711189651756941271898761888299477951022052067065085495527052719141959657061819249080953801747482116615333223625391059043925417689374207106621890013043204718566206250133616947222295481700344569945902508217912891755810415690577760288210290433447574898244173962793510145258132712844317117505399601315999146903377987651003073041541744067797338830055382882055205626578481361913225763164875419202966836495600768052517707261828796516627780427926524252641006079418612102652658554539015828532819744464709256306007711627058988440165301651118802851081938144807251814425885097255311872094094239122955065028896541258476756864896498725107276555248705754519065498102327513579088211689760255931217964154129533616022481976332361531943678199232422096339767742995318528688258561070945989462450219379852811566377213157788515485731127143404956327613182092442949811789698646880646714154334747060701327932327124378124455405301835369727288405941977502094770511708306613349598857380000417434297507414711001856769635989483834192393066828573837436309466243095312216851964842836866208111381247942583428052574907308874278857486707084659952411355923207041459152895101288660976944520696749271032025376017865017217961716570725856818638655386805287437254692049871838279789444324589798885433657301866579100634238738802454464639639262264692580667969183197819984736923332302092053512068801703298825301021944710233971425139762271380770287957016975747341340353054604055879406853394765321439836247287277579746694247152471887929308709994796696310929031909669310538876103178358020285327600706316175699139673515737191714218142615261551220472316036561287293319484063732172655288918931857833766534004068700124358869267150764493385809913957150140712338849944716492665543226502931184185697997374338896582112427074337563545116873746848327404698761220019250049548438979127973721615373796414763292404276828141308097967443641098110099550740959556791585470594929975737074933119781818399535592359619897936791698600218439468361277393575743479352971862874533451658287689008741574927038304482728778645754573846104383411386801172778122831311092626888958259465418795053066957746382670549305582286358209815906987266911956160608335338094787793268909752139853378978081672669102625237313291504304181166693348945579925716318776271209397166117972615399674713672653785052322241199041336296198515490325242724329161939905215128377530125559215343152507776531915831037130919961120955464092428012049473755007862069430965321233427186553583638046038117722994418379492186917850213157748005004523140597795453367592953444367146394243736061094219388037857250656627969306146970409272498223337395854664035663864592106994421952138412637719822238260174283642769384086064276129156815853494787739642294008895665829869907482657256181608499061291833423321517888412280939971915523292092043299093992809372569801068292338678499213699846154019056346541473052788311381396898531577147321889055018212121104490629689706638331306561459933754120518543049051577638014970419682831959727524214079131960992062996143124356205744691747602548419327954878117850573640478097489195628404611076971528418233360182671802570593749826822695576392434326754526800131237305973084522185748862933954860703151320061551126884812554381856470521385830886670036569690889532300052273640182155396900836626301910946574865311592353358416687174344766798166989214154253050127972838947409704685040525838737873182176033736571937247740739738063061223982554668352333925571881399780095696907308564215365464638825534080595321691550301122460929796138858480335542999756410630676241802182218472680990230827342437122792800985352883185747737434645662181545697471263117170708701270457951263885506033988650055003986450530432644282138665265187316552261230418753381376566834005229797315007393651072981529319820602765269251465778356820516498030818538581328363835510482943338826540835372668009306121240295842087915797124354533438014166476375299219475636618989370614862664446675052039604621262493845039791497333893798555001546579068738643245381031262778619677734464586982337119049874548921998548942273540556439778943946317732439238615229619160403891305819157723647680229107011056873442826264856596276576732146150339038073647767384602414153808688685041530787323702425808848395454568770430351523747088501195355382401437113871113132560108008619129429781617775392735246106868850356607916526623606434518600760093149020767348362878877448698698302163979535340658333297502191535523057250741106956112983147442572761445173588870823742969089303811404723973207353032843931703306288678183805632117913990666653293126203577960522503345739820304790702173555383820408473203959615790999947410903972033881048729823371852352890697891804899064432635232308876593934655895986863940996483503077143374411294540792542333742115151337960914333333295739712681089075792536021881892289507191998153335831920633895985242686408317678497310683837508392060995985646887326808748039023941968040772803154995976233371804310243023845675029547499219795245413628322399338802087003298323631207332457336415404485618304879383516451187820311966870398345449903259211310984054252719459796829410478909746417967036671397409122319028213868186309492518872986536646273470437883831192259128252745990358734060426597776782245891696085747426265418453239921087065742772374971788556222687446151870674913178705579247878766724920494386334397472014847590911154894886008609549834703882670872510741206661332177504279585898108650013368668990247988530929275308602361515780203621279732913829393895101416081578213941523980233513975760013415056504886253602140709175109169064403362066102670858047027843327758587068663474720632647454006359710945092981649790107863720063153696583931309534022222570495351673331128792445993816563642942608571588256611537667214983090494964472473421348535704163103427375762143405532331115466041881511197342292718081518174554685717224252638161836023048238861546790226135751002699903666192109132622169924482361031034674908286030418228250445358183944563305687979605317040272311987068026619246876013137886034396903097122039366041412582717306473662197339098481353845369574699213438668049359688123112592451045760428046152835992591103807332299480337715500034104953940720455636184819883839870612367687535740451307516955199299751222040272873515302046415037988933234293731484224099646496198512804445869780878980882194404994177020354295110200512643513758221063579701948947393516339871088160887837719295747944270665901745886388391337279796103810514258583736214476315418042555406984606120183451697935976894265939355544538833729169810671163777560076736094429742098986219859794098537225257738516515463672667137830685578906184278252574130223715215689906671629435481489330272737084925061393816340192066979085199425998507128314535460205026737144289980758908060612588392650167329968686391266803592632467961741921205404447606749766494093063614784511087544719465274796813285186485174759543462617134263283569763366542887592377694992393372848358684325747938924965979737474657253465608452587586106476298236571781825612802429270122768677413787367505212489796080129581541693404878804013068136779876796798616260891762537107280730860119654305382929032971531326351784216036323475516472959079504199254539087904506616804970329496260910679722869402452065234190625776030824222882084019671905144469712768564042232063016256832038408811822249530017314587273974452850520280858260608380294020987003355648795469498206537363489633520442436400459522543127042579549168024969447448056220283817741465385628256813190653037688539753439158425254588920641392748804701907931143918686935920655160222039597146090039089960609131683890587494609168195194051224771500521455348364790910456503733074746600799889814287270153252711430179872389464149759853284663206124136702881850992368332287876568899784505227066493736877690942817033596541474173257444040115655411866967884450337505488371168682454477573779532503823071810291408838578378077450564318986443125389603258733913670188280219831926695510825606456070982640878471665076451128881997819107526013920140518754324004286772562907239186294500774757400538862652205367965253797081200087736281650369449428757378692911626270583957401565368248968245691610938199914993487683241458026923523521061763031926969794299556781311496999812264395732748423934135673355762914198176434192722308522999222699702216031040840072294211637361468915690834784372416405556066353369599405282880202217255211310506347255308377971587455750048331736399139799154886440054296837840274183506819602306989168995411939671035138541557659013880026776551176860110834341554611486094093220136192918819669963496706015609675184435358151103979341928918003092466385741020682660626140026336619871983901357806183250576713675506153199471737690601481464628924238304579189406951862495210936250596034766765591287507224955267747130298539790137472850263328928450617990802652126498377509327463472790594800612606115976993906931105341945810763021183841364375512809548122027587020443879974467877822099191184943738452442645541784053849786528365109342088556231346367073430247221338293206554331621405963896456324181553591211884488425234687858549963996980199274606016179611285157173698711110111548865640892386005680262668262445812914912810777711717412031398101632957312278449635140674594502668480240044472938506769762781475251188846587860795241688596183371452342786462480961773170940314464696262561802870606889898435612810038292492384116364588026162002334763722002505097667232192732535686363991585140074504191511088200708281880951907364934576038415549204061224991766502794028559770015395550788863599342843764817637713764417323129839655946950025312129349977217166621158905098636136404219305196663237220352305246450268142952449807610556858891763138571910237468451233513835308331961802404664585393368755599234604737265399855960866747243114292064694913130334330323026995425922998287636219513140121951967967433358835239400467384557306179728426876559438816523163789920529102360357659834577158519206660678851850992755165825615059450095430786325257412383839142467340186500091681516679255625378298007228124196701329498069607388388880661611754190430941484359848241727796042531757436070424905146780199950405224905911620230216378022953702816414838226672782882654385538886935113922561050658763857841534218809278728782695368252729820399492549309011878821427152354439371557612853630782178090897722709615832664731165449217592333303224945864053061993241996028038344038086954485756261767906947366488674002912358159860482974938702761598307275889165827286881931339492485305236932215090901994968509733627087809730948218164086326418223085289727998332411270495835451859700154640160038574576047965191434396149006409996380963265315509152808019373385221352073640469867062198338521944375783653963197850617539959357909369075424977722998564434194123800840635010135612035668244508819972412982034397353831610473220379361932481400766771343154040315631982302339579438770367859949162190092016436251998402440315029307265919171576383810045278761774922206525838629363974620032496988688080054347407378237193814837320111933423467177419076761438918215984357102481108664774301996416462984984097838136132795434485061504703306371809865189230349700490464627301675154909780767877658455130623322131503314800015370319928169948860541406043806094417868385700770608201902568228373167769873992018744825367807341593495600309462575294539340811208807627303181018510954818109932849317291114086347579463363396060043052864570482762101515844120650892824472397135414140289118306249097020779062025439836255970730725373633907918558132567738097699180329302329824324011741659964497825373351716121257184969317019788090176415263638660022875471174706356590933826788230050757813855906707978847635805251954420160731600723991741841769388500829509100440295660540574649458221626226039850083512797766394367011249891097123982185837531696528674997179991446412067784197781969306020137596230681963016087093250317211656664233959507452378130851816751420125185574100057448173626661290233877601309032728830646261605717309008619432770935284133947739024263374946684014056009707754487254404394814870090572305283628791700922045903166994974967219733446511637777739433034630913459892227135573791651668088010820089458050677544357038616524685972805038536068416754743838143960459317609556913997669073734576196906859889236688118315224606408127805620733516758265633498817353777806339370045383961653118750230579792584328882382502424416601605339844090903353147396666094082352528706365002497397583823011202020448947153493708937534199554728581351856402583695905353471821365921121835371981060381521337137025344555012806690814896579469079164825650227313328832476956166722466770118222906550722363750866027089762476674019260921808856862016046102552748456068032695265023581282593742693493380427615565850622262306115981495812183368056729854980624807636579262913447447776553899093143785175569499786400352279819172547921942095738264108066420020446245100178392072600016411570775872253707709998071001793272099368385478922172122341020505268461723234641904713562536553703388473717821008816252529209263492914317065010499242945071480640222873887736692069149308980174916667639482675218593345928579941244474249283031110205793167007960540591262291289881471617713991762731303822363498857130645628300349785959966506264325062631388351121591182331345951128114870288679620045824224524352084417838369015193015142450254423001337473488337074223623840331378514891606808733024509793303493651074515768824878383915378875751460981416644905623325177342149410221089495735539811003303518749353021367937467883544039469017113098649913205264274298756669631474812308413402390606371001829088568994575757861094203834542397919104952627129288397895330568268276282705329528104271785870877139454520039004678553659887164685930091389023323310278184672169248457306016903144204529902485783312861377213952990485130357018542280360019276727593570697896277217169084447658456115431765313298548543100853971100254616794475625709124325521966440250933349009121693437440089409409821943679526146382106306636014487435949229639591954394789900218642910600423837269526173574496126273104572973112501478725989169948271425332084255313922073860003601793987307154299872711472152971212972092099465048409839512909205513280390503975688526548493017164325409495267832650266738126459812206809596967039984271552276009246479231185284413562214479256626214901052091377854653550719257615093639175949472114709088917397641524739097172070097390258364511260159629873751633561905291193982431246633583071580206102947492698238560590513584280028855667345913198651222155774034794923289307893951115301148765215017768321976847749350416950839523626088964947810089345167852706330469982006237702023439805094255695518656143356273703959984822687662582843802286965139583346985214154386582476875373878176551465522193939158215400961286462837283023410366587362285727752226165694771220053786624020638536735895079386297564293881387418558449760417404419758817476602791445966940418860205925910201879957585801793922992110682412055512834929268075167604790117189899126355987264515484721465263842564799712416381485356494624250760472515415819724352726810849812347507490905672196789357521777208860293989601859515999558807098632314747935486190181553917922425120923549151545748009832430155164513182727996485300897814080965123625612968956087217213698100524592216043209071016978093411664131932500983847811740442314339539874388688714030504025122434788503578063968340091723025779498910627835281346512576303214004715162393628368745619492647256526120652317954458516317001412825137396316752592278515323378777471028198379789989936061198043163876051143470983148750907648968861505607713225683679451341933430523960925877127931950283927626288508963745785143980922249037315939591233184208020188922649434706202603985832846548574620778037899437938416066992079124434893292219955952596951510530737441146489697735248658740430969069334672550980381260520332248958372094377962628488362128574312023177915797118299354277671896977898351606106866445423631428927515114585489717731851892860955176136503781935987084309704785055583806890812294158800591060452754459040982136867678785581231396104321454351746818464629105647412472691772219993414251697002722120067031461463813802149130472393784777641455865412824352550566640386428528405432138124272412672530442817615582829011037692083728529112384530541700507746504620109512792770949348083258814792370751057116234080407151309872214392933144936637399494475937790311631699773181810191879785092556535391704532367945623448480554293978110152622839494546414093720813353944260420504580626298833745965769188071768024662407743757153330513721812690303833677385357862486809957643190171729462224868548907682600642104259084286652069212840632141164114943155706237754611210531278117754303479141692782935161909272648914295167457189213364576230367372711078548683381291906792577749919764027997433626645623179926155102923628375382453529949388368904415394701529501496087229655506854895681078480087561570845270276938464712485928040600685473070013467723131641686023962636593407236047074254367725931354248491645414363613460933723500590457120474017736787730616442473010736254093783983665063822910349831199738463283879714550904577047105312090085157455970042580088340591405058851829065228560799888044872533695337292964965132093473417658483310027440704797678335162031921129900376883149632327165122475837141339884731268557825181645112718283048112654371686924853134295997695605046471360793991998501267769898731641606001826149164963184949721024653802439753902069381121378340781216976042120640650823806761588972690811039212662946899754472882051954303058213367079019864264527581978782381532304367482723709752340550710984318750713460233625341271407655843549185627342398501388801362348577686686144384956416430228407294493635659873154459227242205494361603473668603769645556912869844870418532150603431761728868302595614500325946909038085323475967406732984292707636057864136345411835936305860562968283608490258846338355071195016155736836480827785250352782258800890610290630555529401902371420106318383452137001204435432456408305416637707695980669583325650861911854814430670763653231958576923788108488667362490814412138831790253777047885298983938668173582194229405578659535151475069198620084531768462385564080619967443682368353430025858083909454070597024268755634899533019863565303039506026167990242001342835979718167880761071411276063426503272782281273538072947309720471559572497570327502917127773301655457151006734546111581635484252423942088439582899634298369092616953183606703115261883578925948720842244209088540838938370263409592140390241051289287414281463453914759920541032135399277972078801897462697930404133300200722905708655058471351085669875433186929784903223718830593356961661106543010979229947963468291053378215355322990923356469275782976120898059476832995214801979518450952097828291638679495338170258054825067096482551691880824160325137776904959519746512335366883984704325107815780001191194677573113342073553173516673626422771603788406424459741792164296587163969177315888482973715461931610847009199081205477480076719393858004656686569146059125474756019297366553734015913683409785110243951638094009604603458036110930804482033903350804896192677777391294991544677435222519803919794043626329365321828838643271787822308157733251656637434048883546545660160316805517528058605239317171844489686573846905830943898939482769337290700481864034135392995473267354758025875147437478610510287125015740676556968684508570332548205206786635686420633698384623773659510562382796099779223364598804163057667670173859176589611664798585905767172192649511571640584076786039209263062756704570249202932849963003533264712425273146542407433979606745267405652237972491593499856109168422311548147605506713293900730768086397371064717494275785691508367203017166769468595928033891742212481019160012405946699819447862117845065335661879071639233786885032040025473499412779152484998478366931502315532390860945466498249479107229168508737566297293060925143994577274740745526444769097137160776833402138737580474947201596163468659205689853316930469806731776069336039678412771188584494667719206480526474233860213240542035072835628617131049923913649041538908897425558237060485422862196142126869536845063110995878313101280780108365754228259204363946727719139959418661638389816228281655225902154457509027252498064731723491268432734188831159777483947060001514869189619868750405198649371748262934867547943830486660909609857481583949439664175706465978477127147923941005463261096123637325956505401668667240849655203339403676824611256986299950474176808178682745120512999156389671177818612451528424340847300082323827495103885086320950595416243397422588560181488146927626469537365575616643040380020351778813389554545240745437177562221062714072425766776092682219789050329337482089013146773022561256777094447740916192735540376820995924533315821822018178495474774732250476583723870584909378881032812161350837039591009491216356565784549891036746000996650042033541587486053819294638592839458334371395063539139170269636021721493575294961502451130689789780288658900337222308530079514285611606297013533892230437516114316696667967344007190210733269481500555969537877739848191648059915767662073507229922939820774291454985142266734350073181928808429557050261991080975317452218300142114366442397774369444927466681971245058446130575441023303372340357972077320395230523286174818157621161796623330601071573455682456042836440125126933802843845736110482904125607881985205431301635371436228413474519570240740233695373478205229575162916304979982114920371520267569722771422849826897626741086345893736274754339674037341793852880222945961560219644646102926604988155025505308932362300516057885096575295980288687194818760060634363162097476745799257005639489260388432835217596366803023432767353399216856088280273942954962828140153868355796017101783147129551682608032391127087827259916380051381225061891929384281483771168618291673458236601212971357929388281254331344464368779749991715445977797935359625759697434487466035707573114969406195864502529877228475115413343549218946535267772522213113170009961031593714234076664556065167891597150566300951937793707493900033589208502352710223598505225421788242962917699123132658867182141936290317958510466231693214129389292511965547561258089704190854341437241376473943129484714761182804021045981901953391230941838952818227095561808937487936922564980784821501753060373166826455158038187776401579067842651823972635249823661860168258740564458730641841690331978739937656096173443013603523086740537242304499436989957327857399988294718470218893820830594254756277553323507109753114758482571673975665872521771654584399549197678359886232485779820490586662356632730358122406167983701414642521263452811946424559035178738895396472196677407422566206479462460138294027990837690788579595761108218001756326625171303018863561847954989085577960385470933593881654752475355606476166604098084631289758167292277364091228231542553864780323373177840207074533334292059268829497036919116171451044855548117249340829020865569802990086933896397951364433344671328525626531526911108317427806588204100301892763555941938538646732763921562425822908721369207570105419429031235844247564711038065852217064408283980233562076602575273911283304498484027273369818596501343807913023827173313269386023213515333218709216323895493318994766056042745312210598085965187274811425003357432998689062451022117590567373587663397472792337595443720884171999271304219359891103200643263178656207289812258749945082880765557783272016147622021409455644210612591763919275795672214819497657979517558324060824194160258833428376318631417448811046697719009674483353217467004841057144288475930998276689782642135169976610292504768417814774411671969372272385382585729633043178508074553109402987461322806208597203615772680756118157845806816551255955267439568303895057525874771462635571643169869714150063168004212874987712549302380677472423413905966263215025819194415297460812234141085367743605645491226161111340028606848451215237449335626352490266425642969212420358343543768503099455024334112340068555979365728432519802059306296731030107244202372952947236050701182668963071321591527150721848614940639051132794536209014024884860731880962125463368710248175994125424174630552136517821667319640423912140287037990166768585907004660108348684626189411628499088601878125597416463389254377389491719733289943485875207035400405326323671310493939044022910807205912722175297871508631400839817300039596570854119278637529004530053770778233037190931918377770567257334377120070424982571587749112061088186307556593230774987332412688560533810332003056710021850762974819380856137258592709543043307265216980809567622858807714705755568397821393669410386641650405133935543617523723740178761371707220051851569385676137760933293048262399477103974979020684803267272185533859298151787694671237644836733735865118682452371306435296580564416843991199663917564976175720327938420034783473059854813972369597712661830298944633062115466108687842065958351714528552750623319201879628100565140347122668958867334851722296742039001367923022951164396294526348068351221409116271781232629341538620051795289414921882214707614833589884923719659383619739888943313060038426357419663273029941761036782822624088872497920317629806787760798189405741881066790385455691922348759902989366384637430436920336549551557805639450339483460250912959630539508364408300699390894930808347838084133338822403228852616804095508233400178593012306748055186532991673724052137453518940199848084980983262310994166158196620130237971097947863409995780152505363753215719443534073786681068455392071343014356582523693751875363441060092957113833633006187734465805688915554691544782023919086933899011313520323504041488902622589369986714250780920638085915559971507363211778551063920151451681497413413880208640217441545209859837907966223967579477003223541577593232259380904158300303719085287177406991712542123711623027265310247920737465186359933940278115743243091712945640090919989876820933197459188522224457680377145676248807367905374403564571217314688551686937436358506626474799962242325945915972602322620897283314537110167400775713383896563931111238973181540960832885368769648532414720368702351545070055826254491377977362153268998696229133313937915538585596201593375384228648883300881629047755937851801659018415110817008451629696751410442696354892396277068529578115833469645323843180191623479101848646245169359214620603708625892570085112873185594447119992168331447898093117347967987594921800411097121222691396776855783772281387936930616175557059349112200091057842286000657494553399535525978327360133205031804298637731861611767296254362315459721866231573904093341249237804979420259955456704917354766120289332219505284052857273175391921194817458989522768548902665056007409889553172172956796224622002263542679094239289153094334554665409190834915183573065318689274353805199226748303688080064475915663732685968453493832256146995475222964607554475850056681327367296512033048944476330039630711736019170477750519459334112501042970376430502072171633481562591439288525508212971075712841064873158171132515645349992449650132939314092366714422887857646664654282305532127712844423379426898683787453488112842967877086602589720483630907426693192326415076163788385122299161698598897277605662441940845173098312523575201415816101860232596372866022567012820547841902099044578133777753784706427012935192694961872016398902186860519407464671992739027074493692400505674137249237318915103503732133569764819363371615447138792884959107027375130582565876156996683211377823441469116341439758702721146913098742246483363046051833913804255914851925529146726795771320213257217627752006320990018879494360550528538463972954793964670034408896466174282597478452487444438473757166291936428738085955964980478062238172857877593021050191227128506555285791094229670984952346548541367474702233576960258801695799566637690094665952771690426475851071761666461084377045755693888571558814312713480388060164982492280065105714208954717890783826382271929409041770828363949385685666308294893557556970698102080534029601291946997016247091118233807358294089703541493725233436736894773864741269797387697915484132418441911284581976288795036933067218154860353818735634007058921017605783820417492695500674091995697899702575778888055534450423467850168711024551192734381969553746954708095256949288397730135566082714726201983568349240011606526649990119990435514519841746791203163902253565266972397897955848810244902209269064147199827875048175452186795550592519054623077294601804311252561649106968839058855530121158347243846230906633674107305171498089258706712656968466455584764091269244744949970484810937875453554933762823823580386623797238914078728796134712261477132519402643712636550352409070215053683640700280348055785477964976032589895394618361169092595038059244908554177230716260484522425308762869832834919647951260658170298847520966997875602519064155297416668811174512863199523939693864244636446170671787504234152036002210321923387226327091899042940256320834636899797147606437843190087153740514743406059853791542948530039298164360993035823156482334759103188438590297895421358101999902034788537760739273106404774596189541577634508300950232527944461285222384697999123455661960261385523989075667795117127880479588707078312119983852020295618930516555235224495586461007423099339327389194664562124009005542055807520781558311644478894512494987527046244995112188474735767866339190126940619260110354083603429249126716185706099519890522807510462550139181818559834783859128916652827610913827105388956993417558142614292981355359712811923808063351699283347212580644663977860111001519776742621355903872056944074525332210491614177868947490129689060373424246991676757381813821144701526147543364812117260711708022502717004069767547597909994605593395641856641713547225301255295125758172987172223703152048655291216810829111844125281713248508911909360830348452774235098427390268909225141599802154170596695610403768800045791689249121683150822101271916681584105100921063372229209418367936061242410452687050090451820706723557434441162619854500112030609092229747557546332969985767146082940832349237960611686708709695337664494271040095499980472293436800894602307722853385999526186719865080870553325238741364197863845061452901299383068282372915186091475915855112715634886048150973520114213001892560005903788733764894428748323407188142843549330124622086660102565942469293939960126610496041625849474952711641801737445709725046885468304639483213964204815514840246756192104433127531758559189242707089812561271524728063082406559658142473986999065126283410056675052026799901777827828593462258791323836854783664698870466030490681666246009631431057456588263930418031038914387962823681324500572394728346513778016645486256683875996337626071410673386512699077199890754132591353256401310906889128646325451713354760698126479464034988731632296248668748845374320164685571493966122525447990540282946267167881691585334858912308768579657558854947043847000835694397966689102800899477414160333313247238823928631716448217387860181804188979509286015884009296084222126051190227519471901387762644815345913000295121369510993760606263377651371030763599157227124150107053913820282760642218422055200653927297322276085194713490099758696915960263088951590911954972791936041669446151556549720836278772385569620964456055509653801965377829482207725410604201079804099847010579683637437912474135901966661197851666762026342870793853131452691451320292981545581050989455875447581542025732745024803326469715580848976450591197874832007732810759361110436372647008320723517690576346695020339514565860307742705262946279041751204069241967158798913077092972571369668054666362268212808540903415948695468416019558067844408432934234057221731374773812791646934223819941863760606729567148163277293689576320584575525918963938826342347983672458776184983996784538322800227282143127101539317124145351242199169211531151581859980529838146671550923271012794610377244526181171703683873623518389730905089593043484475552608674704192320330900372391455255766264013634826670619980264160843361016629020153466668572666409597269816712344668920743343738459280321878245224478302009635949485944740633518727761722430449316592682459326293396513348799971098984223664750822330377903183279904585049560733712623757489336056230672759744989775282529621621579324026124351266111990627093362170319427218354216594296560000548129864616920750781450216262208755592931724703414621158730334693291957482391286603117727763948795079103453515658951029185870509040872079400775647748153406462430777013775364238083626595616387989721519897255587375350801054263368816009315968049708990973978520111875290651325117509022687433092501917309986893967243944594740078754212662638584750951407811022848599911381295829585947167076627218427294160076427027136100318928468775766921304811212007614122859968227529282883229320939008032143659826319121157589227580741405552578959772421231361271332367808569081212801489526745591848751086691299067071439945266708937432067520175657213966404138466964270667686738471670026822727933949952909059542972556935199255761204737618502434833399725442306456822774892285148358039658334269985629483641959519292205640064394251972199769539170940126304308645940696522449868678060435806228485433988514666681250391054187520310604925436814939444237397386747364207872841723451897110999086443386060205819002915552300304567125393682680146097089772525514360376829111012870838955750944620335738978564691362108858915963684124069299032453679137173750257566905089590208601784890197496426557613691203724950233899913786605000354744018530340447921957618502450575623800097745844330694990144016248618143277321490034201585660403022878896062150452021677429495836052665766486204277400416099302564021173390847506487031566187019885147659164419429939590138832253841358007973966690915146604125489490669499928448294944092607932816576840030130116157638538426867571698686685276627306198101606528154387200412899539316108269639886194598914711525517204742661293451948850022325814007302548966020401038476607569111783958746318555985934119547706941899377240828938186357134628087703413141246168108366909643612532773096583618075435650274753467087765212193266350609596277444898937687513662131886649800137020676881868868750451723495131047873479704933785933654708988265553176135172312439920489909140390074252165920166825950705690053265579478917857113778820266128600325174158926306904688038601490771309264993245251755111175397056535794723509019371444355984689243482592513413457676847405080224410652665775693785861305626903174605343235833678672075526156426593007870439636916702636487051306563674378104145870917484498377460727816957029698216238411605258215919188261632743167857355829628255207902934035851153444728096406139237865733686466350132133195405789383425559148878908295484208827541768607168862774985977668012081453070222129196033717346193094548074524479719238828127098577812072092771061850982635525995479422588101319586233950149385205510762107637066492037714520704176658101492513442163183263876456807101532002012130161290225254474941752355606956977735477212010381166912190307788858921847339204598937162533044941980611845133649439689979901977868912285737899635956384364117408299664600247122116657727966474529656277311513986628314501101416151069108433764135247195474565585680896276187044325263296431511530553911939677171612185472739751548613918875859553407102292441515168467329511015618077332949587422184380304385726405836148319036935110783027885421214676609337556942670976539596824411130833004061429251836296137918380733536229927792434334714579987878979031427605840687202998658985875136841434501614208886496075952621491477840931055282078009840648899185082274396198216173916038843948042646501533944721412683909350766111680472219202286663251749138564643883570456831701217986765910959976084459323810798163429409190570577516816663072717085407738474747274953740387666386996036482639530177259873131268325370964373563997946201739372486832031677417830151769002858076044658316946812949389552146976136317009829769995981355409711333239647804171436782704467142450005795334138068346636029385482402727396939246402921722606533179765005022192741409554821783329083027169530497586568002481014107813680454389038552687672135375528441473449831096801248495548664359015909242170333812072519537263895722880701825484344804622710911356826743566577205708393389813794847134404936102574810457732393307251923799003335034950909003659243365919178237918978265484055370431036067181517612704017655382010794883165997674275920233417046591819415333474725997333321250849933099041701514202251859881819686889726186004741262274163352019752971090665597303680366312708477051815478608728539271515444980623187707519843440480870486082247147848622300758299104494535773020070892459812268411915623939796688340665049806049888420722007769135478690439813875798507668485955327710792979781545269918237503499501123795503168178892783272828266749799623965312933820904142352961775999326785502888505923777412539089313299696595102857342355214148263368584771181264079962367197854614938830301225417917488591964727809344890562480821482766859144297622257483112857683343166529709994973014486087187349956113276143580878064774516228091638721672831073587778804346681013121024819155778026713959152330244060642353842514727995869013208920553786420739253298235141755596201598781799106710321828618551175299070838361498557271842197957855699442437846558888316568631097073969171385780960466963307402487923432074697807990912863097177073735079614178620198646793546076954947640050948732091655026222644391357440497030996758538914133643497882817185770585586341594441162849542093232970957582100122490261966605805955895671083473666561792760226522084199581072937808066623229768563921284455461710458636188319588418597671586799631280236298753678047895428351630484715893477121065650668892407591090632073639285839977497426770193540487181238881555612314267622018917439141301886359011317241579269590625858771887796859091298768856755730516487676012688833013500189442907248701458613122621289170316531232346057124242419536815530489483255006733738741589020575917379951331517598971047184511249218574826473531226912597337861637506143918553893034955451488118126452287670380943903506481246793416586836136905879275713717255790528107573177248331873200274041527930630846561384669575456762349641985212595777758377083931528203433980894197614592312760890545561411104519954817943854772744846106416840036375713421054963549715864757043885644523550084373462226702750242133071268957427313341695561699910763190138412692861799352345821345832272969379011945912548531780323422513939635584311232104342140540736242068488375093607309669889914614756988045073998039967493372654506087680267673965611606550211841364850299586074675600449500037238326404830289379098830040265741159828045480915892781587827263823631240789611281542363247748123819357306013669934237769668363982797124892273175472819737866137055141967210854585179680240261590839114884906944963464173828975840367765103771404276880929291081021040293899469160111523958021866017110563580769012974771813630231573614856196527136346540037499106909991735820958515502292049449807341155633715372085567781917780468467046442331549359364954018325911326237581240663035811429177656299972219006045028810250618127048377115216961257343902040573470700637972722193593567958925450591090305613110103886791257260697128792665999891345054613335509817620857843834757100001615114070252724242298905660773441219430127950133077933529329456483611205707984202412645714873860080042647660068840967874924448995907809715672613250770450656496215583765597570704241251304416232459032414212096751928942418829768660478441988605121925106507613893525578299290773374923142393338534133796454605987313503873956575976693794477071362389025542468099453823567282940796069525345581086354045581997246748676849038736776567164181676301874396377730402053216019751383068942887102636119208408568628720340392253866116375041120444005733884784078044247542850739919635655472990056836211427301183809352813882522465432658208098238880317599502131225915243064463667788723499460397498508862582094231901134680541176412800885422795444908647258696038275735214396026317531412987896750248019861310858296861111792875405639940653576248450295831761918904759081426080040691815343741419470598537555534954790314062748220063066186246425692596300366862220731226697957709757205035093272183807072613709619362398051584428624046601911212541706485994205255655367351198986403550402683664873016675543764263691458731479508774277177893905481882173947534200980853887502057612367867553771085582844143286179888806441514229368011530129703802623970229848748954153622922422526604404768481600627560266714716106853406761633343984833536665871782047368695280851077376931882711672912579100667950117286083301496315582748104222448635782404719703095492693110860076100590999009496532774950740925714474871018135319344760629135452879622078830864664600772792381295505085714389630148970178038898749731506131719471603143247688193780953566380554651206154759026690840200554962753982327557007420429444861679602623056059037735613288357539315350829565956977214830745895808832303285243135618212038364824729295508893502878976120386890026315527780405567938670900565596266525799949380508335759013350812775005573347745977885130720785672896389735093445578906832079407210991023404911285969726205562921170504209803858292809576160134155043406833941455775592568024341794422241321911841289856744997691276053138816528230599971257988517644417715064991411358843668387048797283772256902019466754014431457520841309715702471689158835211552259799510497017101019537930094981683921361873621306948578748665039002377677562395083509511953239428167058213406484664097682583083670157530593130535764269960750114638539556586924897611732948048692982639181622760253362278872722634536758337729862937526756212866232478974687780647998872733106039159567473943328280983072373965887602191558097094017419693602876559850832431934614850338728719084716514959151093373714100455855305355836112032373724673724657743080236432587111290356053411793568522322873129994836161397395212622156149785206884656431415758696290871098293744711784399607819132561015065167296589032889964188917047345143027727376741659617926952297953349052611142214438129128083353652300690330172670217663297261082949393679352219131583641185219865798993078419538876579626248200882097524468629915633399609539654519241004712433464944696136704275878500023885388071010160464395504897254231056190634837178398445402440328050834868367754253190949588459871246034197752477984744885809499072294002968656549201003953840909956977748141606578160102576577745226344615808216869751328981447184717012111634953980583279271303401569975546083818714920360300561310851059326584790668198607541432341591370988245692891530915246031604563345702195912875106185141655264689874329368212364647071734163365408879254635232531734285409523364680492873627612298140856855250152460204839355104806212331978084528473499033480152242858609525878509271030015795292948440595383628227922630548434843821394984656076508825137239608586882965762526621426743864140087193916426070011179600154787771234865375394289655871536653695672511242115990541246352277933372336883816917319641032895550803901750173955826861152131819369100696050629251987351419778491332884271622740500044058070847939901320133482300651127686850148899246230146139075393383156522792618148956597717842065235517400491666633835891251490953494398359631520463151971946795396840182122735257526504709730695626842567282391487025211612858926750203036882258110399828760339228026127726130844106395867216001619833132621051111030712277318612048950795726128278697227385889571967047505257373458831114037660018829721733696407125636870590812675779564258681345821293908947900548330168394224655227344902816903270476134192062732193008145286833769774339263217958655643744493578095227335490989279041352777654675437280277624773999839567361560505391178756959861742479944046001579170049230055359497576867828103159461567482593773481820436700401892417241193241717002898700530659577394541454811157611322156572115649857540624386190330149500513355636054217383485795421529977390045973838430760085298453685107077666366391635309989281777148256109984588453480145348413541549817404457498892209971764973054573450236769026900162773686305838522259141317877821135306163046395007157183978095339345765960449189517916137162429088396450853964785885702722869488518764435205897155285399082011299499169275874398322863920918024087490162497189918622221104402380638069979204762106526392802901140837974099116411630418287889613075278929393918949477174338917651963334373067425176950256307134841202110556453596415847355602994519039408687009260668400727897193192388960376228972869798837167115841398668626830467416043332605512835871629638520652484932825419102575990170469817440070344646999180619473963379059471370202824622741572224983225671693897146763279566203280266807639706619293146518824552745569961857539169443986566623203134092390759479989686444748993114627116718438768942720181151526015261509059825961804614985317754103450429763876641709197178782932595716214383802631443789955941808229705564830450429880351507109737559789866388842170069012144613683421205049835477755899021821220210587222570477344179104211284019835281795675266304813406222874220406745623060657334183217431167866418213045281230801137081148479673952273461668346970200038874054498234817615068110115945249057197044329243106938460821540552843955240457305124225516930763290451309615277552497901076495639122875597370989277372896915648304008989579668796764357255830469234405044524631916079761048484954451249354165625027921475878101567819356782857949547826795875236966422896844210244465574654618946694676508124636735386423609622698982840211568445419997067000697640718302962870348342586958483661513676872266204728363090682401994645699743293785379265208747258259983678248897010416334445803942035768765328052944869286760422055606961798772871329695137879074505785868473495619339586342018166730421502775599999522604165272631628929315025307842180012181336276704803669543534009582387517557628180776198566932489846227993665284349569809281776952733824693386622760708552217405871749160606989522673429289323227960916791346887371719094576759932729462206124364259568847863486253049776820088440518120731304962054482987732845496987435767813253626199817076466476988267651182162239561493159426735494895308808764215537005134395529595514671683978283716103520289913703878006251796167152471976369673611494586210778898799971481842462237449233676287669745232818128592852557874498766200783316988547374868292140508178460076942544219168751630588973023047622012443547173814470680224627527305822897005358904405765722055486818264592983780747798228301950467820137227519378993974720106009098649239486852194385277297338394177770851189181088402625329395502817684890020707908369362262721244949611608929057537376762199737133025307428662669863078026734355401317368483224790053923418072456388729840830501153535860691306966277994208493281580263281968157353297770566832116510324424489814770993527912725466425149704696559025454651929144044607282404891075749378336194203639544616422233721627801556107717420991033902708187139602977930342806343188834538969504378978048246336895191156955737229538032448439186041277462150159058072979257653476894199952617071930999354763893540224234237366309265729532751236319969027870753005618099592916758871248368556276177678788451020077139770235543663707628535059868584770070232104751664794672443597813982818290731060625437416795936994320130244759979496278175375565458887431503491070303460696333489952659203964070894026878468047117843639099487331334954013153740502312408633735807626061636561023583292059488250035070368142438327057917016351081155768136229178377189814477951327777694300052388062337822680952969762637104868986489297114795591761535957130698948750558904222833377709670333758099054522715419209823822389843176918372394360848236342609947566073330194854399457538086627147962017065548214885348736996239752991087342851741616633339106416703533398645451787221880678942355652526270901438754781963061859975578849283599154435573703532604585019619454083405963100481355290155961870244379580710416458048055940153351293815717171426851674525456168476148323258318119398382767395951310787795647139194588657284573253676842136773985837616312527261208920855088326820832808857865713970430884953850027253672519176430306623959492803148027055405824860637599596999290172697558250860824197433571657601890812880191837168173170293878440340286487465350648136132165808027709799446086476022279014719356368080558158628055104325480795285103791963066613834701435362124234652310326264206049107386255449239961751252181807873427642687468353491330914726193985713054127531944343210739492447731680827360849608505637125942402331711543397254554746157790183944237838075636371019709850273166949849997157738391102977552437941805456912016613742854078886421540228976692475857349219702262956639371026910240631679992614530423818216564513465153724529922347941006811931517427855263564683875810807182959225348627896619850733442216763265571403057116155600027369125337460114588858868606409420911743141190704343107987850346026649539896304492782182958974744816237212333286535135631939152118946580329936255423902227255802979385204785149871230066601042395800528864549263492909673612774984699877935372769964558555312931995121081884490455195780339831143615796174927394828572692346422681031909195297453187982202038953744662330707816492313607624689471939668937995428302893359305694395477099971134460573568885912041955371721409950460291825776992594809017189646663759652772929408013741386085656457542111435220829655167089070205465672224330827076698506004067113164557311732591073511003038980596731948528108096546609089463833083906123141392039355508102300880492402448331024196943475661031718469964440926592300396938195387120113176990529855880677058896797515246936684519362905501855609894132106435852688173742429181216524527724004238274104227833643188200917506352719944501278015393682071762823830995448350407646350538992925477363126336887731126300499085100920194673912675506123508082712356788132490897746186741115923662172940536609851308303479776435137210762481904089838616747684469663092779432434879283862231717116671357061817471261982753613437764468219402530252994022739765996570125506133347980360630361430737801627036165385911889924542570323122802531286664778957099500506508954346910444117405922621064121483934796978908039812439072076866391194903096959028398723267101125036623348047851686512326937860856061369402368888400680600424252156846410679986355753565631018344530919131668524931094984072717817070399560192073197818948055237403618083307600540631383084747115872602840164229521698379976179261873423706485945248879915008833410980945748529440709194509861217000317706278172219879080979502462519410042024411701149985074913939527182987907523051848745683552762684838890424820562164737838346166896102726385757587425264345929718269379977107695512121527739417915964886954140991077607422926147703585605402319565739152366720557037209692368589110153411547661828440904961170637283212793313648474620832961772162771965368481741245086239555732455570912267089122204041512023751594947538113276784692369735288417063900114656966922184217518363370494712945772583739713968309373353346511423993998056086335643512098668535087675347637036474092237656606605337516655768480891421385361960506397394724583879157015092545167868963892343563610269958065676080223916399056440533137830694505185613151014248297916229700054489514974059196525399460529582397822953649502046760156701319552140652431704223072312988845418770934358514562380176594463875233607195612420446226334350197742113273681068016193376779787620415564037785066352684207458067106023632376541961152863374023185849654341185642589948736213271213850827934777602209855219020027891381201758509936483322186384401179184108432427433885912098349628380951840011087129055538561657422903750541955743202922904575875184211617254702322741387609131620188774769285070112481499051008849220062107681253430195424221466780024036699561973164937682734997827506338095875548491102678976712814509676955918959412424144081414637098907657040031948433481668724505634645436499403239958439492846040510317852504077994757884512938405356440841493838258885229729937086989074095505833472374790241645420554240857528511245105466778774463440581462273829260274129574949703461420650698007399833090937947241036226801221643781326576087059081949437975115393445666552470422820134921543319167199624271009179690333830348486787519730663620621545642001627550485946990090862747984379956702900525251363279998035151814167116268809099752995136019343354022217911643543293517322132754416238772152340820358260874633308416757630481115336232631074411763553398930193341412006054334337306068328522228309817451147231174445884841229504005312831464119937177402665983616637210170905868620238174165714535409794532817323437970356153026045176332532666886666790758217650469008722309842369935763619267373237401386746584432721031528188942492725107044623890889177624489493315612828887012665176790941952139032277096277384667519636568602668479086205536156918590856312717385127966020327969445683815071347608129295186260020789362725140236477676674008971147789967720498311253685765503235034736764144516071474136202031726928836802625858870977567231043140659778804874364047584035307801938343520692264034844159574313405247492106531024944874720611220425988657953398045280930905496990642650853971048918553952709645512736627671874981996160721133510573243832371607126777875719382841966820468061003333804341741068697275040905572962541013065481810609585577916687961946503375208365921669356733212671758589341825038506571133902462520707748707779452908508220359921229495525008030719650381184552917641259403868040613432288512304669878863929072947238586356849633775897898094447212741566958687736555822117876863899849821682966558994066269899887310992453663307834802856308033964056909595940391239731065828902196406071277924987801879933714314015806667171059344155572168208460730788192940509977150100313327326989263323298413825118214851145655213134925620061334532401129188593175997315936806857002300546064117447765528191501829498373166010962610922980037335297830644396060790657003397434301246864142244587604231369800526484178854968040799809761310769431497180808523157197162851471222207273054585608549882835155551363620198573284894781358991866728574756396308099607929164444664293468786847206799157799066267007995463136872554254408674703219982804783735594773827147761678016114346371469484610729637934822593712718744159965278828531485854013765079315528057432536309947550554386006820238456363321496725621682270361753490349688263449497806699713195311564675509048978967720440321623794135992122796062945746101218761661496854238795394171222360233001886002805982705876519339431523652338811363706613579895031831954855617190212611968208178068205380167270082711748186065546659084316626858925510965953020584684496195804055324329405326768642400185644251746769814321917384270998540013778207929173059820151145246915974603391501706534470377515956459325377633629406145823347938860622768839691436297834578777922308094406323045231646517310121327183070392391065828243673886935721346436793990646297462314043817314999317973962506667808096816883931564124635143242288550417191439594293292820639016629995065888626210147628414557738449777415540752900141072025236558628935345198093508609684844940035642887772956690025373327721423912830628780700310026640927047314979456577299597782639734962636536662359050667368071406715043143138232694025653548468127364374078845098570196115063398337774656589494696948557033107152786648192210524062861836797170478889110681152233281113698172371601405899375885461243355081550138422996772438975594867287046555643645416797189678085617501218222317135163853567272506037483162810322094965505066285468594425455332294460240947198244592782178056901788530583830848747384502138432533755591681553582432600819192868748069021290025849450529869388401140149182623745622976613650449225167905311017559832917275913868831147425656327672869101569735319231099528402149388408591216644912726775101780153553538758248651932233036363048475575056984220836112954766882651100330833032698799437538249574335746020257087933783595872286220461775240540933718715412089241961679799035730479025463179031746112261211449579520302872159773428090310796818004811769731606760421442378972539952309262797421426461373934871116501536919492527601439344491014995593177253935181501967680883383162847094180875335839800674891539008488580627899457928878334628817842504689396153549108235816146587731690708994005879935606849360724564498362767993205777928219156848350314961854160778730471647501917548361428307510671349289107488652380816901407859393475816453720537964133786890835040368428338491197718321245199390784433285247447864665329963657771906166380011179611218225153498467072467071284129057611209915376750940975595211088531839036663735081241160525837048595842803934328857105517839307926987163550851591244991707058399293172306512860801626972420389320455357349162679344955287712053705695620133539215458252564004951464353122661331996228267550808773926018592242372524669964493248068603156625495119181917894071154995626627623847679315697386077929848255923400232465858747823271176168511103508266945338863836604743338083473190181904426049339324574163742729713976150563514980090276230084268522698092478604815927125210274304639307713572528991115328857886323598675884307936513143740501518312842385004841091083619205549615055935861386958812120823112879967416793802990372522686920989429775977460908298236703209738774526896403064374737748738330077495306079479057109286411634164245221245352434323086887924206913136669205378378047284333853464222411624444438206270787450427383769454140265875741232079107227492245873365468930280724095662317780345684434359999047898010647340054292065783866822482501535029098395351733431082757007196318137795504844834366155526732703175747227725815100701349445185016857599789235789345829195061233358873302192587651023752580185877986630551160281182986366707775231612693989968291457551990471139364442446255751026716545555135739626525353567071624360028601583944998230593016489069667609460515296411631437099981663774166047257478417009816879884418462608198259433066857560757057962245318677044576859494735633331686664244522203920276605845375632860821720917373152022441787876914937196785041240256344342893595143584467690155348396047818855150989561796601045234949422340088454849240679477684858250971478169633812357096331572061458566653334104240980439108305022134302965432900986434882619383180270842252574416603697602989512875091105071423056674731791534638440087058729125369388010791873767898402054715408157586396228886462576667860708382662607521262915466132337785357576368274641453175837649034795109507422954059302609986511520930549822502007507238351319865120029287070617127532158105687374176626755005151504108065334848038884052584084468125062784134340883344322867662877872757706820782066304059591298819762277861717705693875945369649548132215526461396524264173490600084570628404994362989679115610920122634332480439049724812168591757600265631258005908463636149242370930197484935277324128137167361634929958931464442934237312089656383682538883827558692071843718525601108499893680630680886904671461084299571535368253732774265985254225607945478788058499663311885710193615946619863655671875052495685442311960685491228291909802431206123832073930534090729069345997141791525078050491814955433541593944795866471622260064409660593745777712557183367579694890578384330074753893778832813391669838595979440234802918475668796893671773107595308248196537174324674390137854840995501791926769838940919162554153505802335337247713776910268931057899835448361410962178716619260960666961308458248593383755242632394810035610750293547846790869481378053264019074734640417076487020764790661941213981501019252445926185374659043185588704813744846539974538272616270925567909141464744525948347683862087051237580835544550939712563376895911804301000112412770601860242761001737894676472228677082560966716176546613143490434917608520752865703980664912761649490305273287542819916144646106148944453802018109501394059207994605427271989588019448993136224416203851727840178555323408284550656326547361941765351000342466260807450423249548580896739365482852853578191937891247465159944799492272435261809627578727894319306675535307666327640595322506915091837968773753808158750470560880017947645178126642651148500650096329187674679643397318417656708885656786955451488827714253358244246507764706377186161701398782721093843610029185869338709198598279871300445467854505215377934477729182531214611767795758165293925657586235285669191252356515612764773329231441150451958630136431703440605583754446366680269513911315416014297427299191620093590254412982623936836503679023703810312267952022386175529861755576480482985020069342276129157593775024562061743369298187985514776921596990765478216408306060816773428064758986600455690526900733863791686508069557489387663614826860136175672439872778777894637787208043979491519909975193066058447117385753482033234217539633371651941864274671637808742380907252974924723175823584403376505694315093150753517306593120371110841633617940126097105419610164706619856040113631966325589922111559083323970490114995442881079933374321828569166496566633654261699514523891281043801876667408354036706929902592478506864124094299644700098405720132877320257507340465145177734384698670805754728070794611658589050021606309652280224647497238759860058171069331841424779492194725968206154466091308037668013414667038298213910575221708987052681313962740924710472701520477504288143390238252987069766733421075121456868057577741354263104984675248943201374175254647410300328732209782778081878956299015994927515769600412320557396483402095597642475609719984601577753294269793414944405568102449241796058404727193134093982893354290773506044941155972175326563718551547139972459447150915730393908902238153001760534595658117688931194545758055688763695390463978833733448650623464730809660817688910818092849402134846713739133496746187863643456425237188388464914137159795850878735842646788465432593843802188181205053872801865494177295197929155103206327661552429782782241679273839310053795109151845297416681070726030702747643759490686620961227344542514660570221430448705109329244383248787439326924945187785233117498276889365730963901062246320734850575128429867689630309360121196601292718034169422355527516262876134855137637796529903558553502043164366658612855021421239079703996670002764413795992584054787859548885108318780328293416037356411409268260853922333908573166341548341851245240611994146600797301442641839614133681053487131687714211758132939680679832154707172755477569458872681310749550770055190833492474573063911790342005567737422019227825544996637793345219203990411667516369818804928598901771519074858397989398635887728865711390422416432199555266399457686223793003660709551371464570306368751912484221410863239960793728906162243535566138509325051857892541664226483015734514550116517697550778517159959509841030132500499694269014322838306448773737029802915783829155100364554785408881651188531653292427741647671289802458586397261507716672905735776928301663730288438857092255343654712120689386921321726516645146313667460215173768985934248210846937852309845616210920465771551220568791285586449945169211002517482976493457730909459740581118999696848398793567012329578831950804431975690661171102158792350709851374323393733085966177102883741396361896095887182293767188020226337159838143279348249661743121342260285355624946706499800122409643969150272201202995242749834411312883255653558360026416913488889416065248886293640372124600239404341589002398187084855346035315041308543158993981353986452485495143378431395974732749785167767573455900939105948296053252647911089000135665961490779623290195182029406263439926362290135704987612608795810342169380323492015475895877679078478485581171709015313201992799535241129050120167409514483161785642324590653061081756656205050159932326343700423636480338951377871944297465403798456044608591025808041705400943111606335797983820131137883683046047359723519034300327232919449897239111516543095575802279047139070076075139668903213694865895212836986836986669653467063163653966703004133655776074909892492353475629700838064768271222165037156338431248043051227774121605132769449691067889756781404112204782562152833526156384677191525911553957397086198141187503622985865294805756277096850404285205146680208210236270280369230588634559906409267672023596667711920768417885136640824909170224360818406813465588606865689800863217522927574533678096652956747252538034963186826200166918368655782759526459923304025314606523218891395325059379487545830812836387044862671858509662668009676139438838738772879228596296614477840244541711331293084272788085021902629353965048787039813698302810290982245286121723323275985958539843025115075451235438226729729959547746181629721064016861307659081969714280759399535165348365366064495870986735361739338975859931601010763002733044351439846906937724383736491633090434380991152662264794581780444814464286643730203511809779985233582572482429498693644098822166074146197669189372875285766306126510602218235835520588294901267192877269485222831724734373718329212428058671454224998729782528746530549845234058306422335578420693092010752911376175454309725311086809196121554600434025852240055285489948795443788267364069710867530220921608639096931892495698662963476844205511917713316052797159154037125321788944232942743430362914903191668677558715688998983021318410901084348681205782416326150616549477908713983138804052054404701362580012390750968779106919280141386651363959086628940458172652685006448645960139681204333400715824887505308489377959897194546438912103038439928930339304025783562889074485987107156095737932283771912097826011282694380861627620651160044708649124849581180424289272686392577336467949115269235238045575008073469531877883395598498295039248559070748927132935977257514809559586655484733112408785260832475747242113228156493979229307379769281298970928993928222908174344788357756565551421087852815725541473116682696526903750822017913139533345273391219912181060185830217496047433342407309776857460053703294629662877091379747409382505731184062399495801818512816338193992298134229197780961623930193811368095785344910265898701534014225652631860733873276241998947834139389242800927845492245998379477105784561455644854193160347663759084140897644960561551828039994171819783890852312150773185294942918948892515958647698041879982169227119269243557924634177243115682695909050840976443865920030994435489703577205413314168113814313720959855291718720139023842545226264667569163252123168271081819429969980526136256617936922635295864577735103100617526292021157037310237239045476734588541579049366988035364506122230452752431816252545292729279173818512632840106275626527702536402575982527087145805087669946722075772358238598952917016355069806859288249555449514524767274690534967396754430297193382431441009707495595464896820697510256539492924127057000284933348571531670867614727703681220451396376916815100356951831518948646410287196846770614490190744452975096966768790207913210795403617903833726242170131576079804261424643506804138138872067874404469291853843633059998290372371311515402943308040727695519419053394445666781434413222626677463419268421357627236310578832746218516974334648320683417391773226430123477435340419263624499407002789050749325028565697888171105018659887650687102102755119196078892610600625237139898119802997795002574228374390410717265703591577425421578384031341676630535067916184721412412379444942834617962230908417150038181623638592798790842130385333174334297904373695970987275978754277082915974302264816939177623492969308720593385392579020687324228322496952033012713760501120876235935171222510179002336034595048818963550159395386829999316163939502149535512367383647668053918643378856609213558327717987141677402519067784674316775564988656476916929455507176587340814716654764647725868215543595921278694314066680269451307247410705811188274158466132230542430372372615361507665373245013907296671549548301163848878366179263727714163951334840886852134809663161078335957692270542041343644824834837258241203546248120458783604640467461073861907129241960559237940389161274638120233389385968182989200804920168276544369896002898232639533411622887056552356127267798638205408589852940682095554408407636034929012433267011283726713819498410661794054530691142203676646311006679542164755400514439675157239144903420525941439819637620451978428036077389856840751691013707200740964700434983356606496202396534091151127429181086344699335649561464757975847642706739242991611694955068905006222470263465549473964799095782950477305111998661916702671097098771955142988254211744446424057974467398171367788624150525986589808080883610097880870020869907466164823142626454176479352049460047854801253693495482342878139813290193768445391132204466736508147125017314977935194544137689128827750066455488335881218890388840013728515010848160319595794815847750850615865292810747187024516517616420820045798755885466464634953869852502060550582705557807938549235382535217101310066651764178492629145006494305947119560977660805519339758019718517465060916337330146872414427419874139608724736548774667643913141535542781550063934926364593842425932313469004770429976495704964467734770977132622189715573348855236009012536029634816843776084412627098910573040025118377253217707825654071173833234380667322465597851225445260911781849702675826242021479412396443295573215766034742156874919930147452652427290187122764478659148402610651886242047303762129144999102826400405483282069774811412807514944651317944414874134090940088314033503089689958995978748803148424367152998860726203526366390376320477574479329222161978449874528527457899966877744946607221063571953956312039219017056528824501397379300235627695084928369795887823255480375488434007139117490088536270675197929465370798678419025783147654557616723319976055225651361286074200793467197310560953184646375290814017715036466524963198227782759337896775257976071704803725112925038244757866951108453514282169830241756357893103909586164522555940890565490987434916484895768901393300967524595610786381868175990791874607269703888329381699466413848198742724556319369225894881912561238244699649443788920183604667182096918067390012616491407418226374052387132832260390587945595297305589736454757081923952868950336646845016173772112622600649835895303050870586754723280164127880174641850437321763517501953533320180810725672265970081587645779998989397366482160732999728896682281513645255868735844901998800583768380508372977783578910677572737539096268438750409992962110779665510669817801498580850366102431472304538034053216845981399085913663327919295180652148736109707809099361655121927934773155445986371888791412959279483889482421423686370894505214538313977188630925331507649894223633945010621342139482717275665281592242884778060995197108108882568302069266204355260355143995634741452464594385224004924557120140804007710113030205028750583212843402103210422778804945985568203604083032042775770561577932543935889723464943007454385146886813689850713681925181103032021746802829754978373050753568424699298600184375930669452128965506150450937778074492890077878762341184161808667185781558664099267035373924177829545657599494355802165877510596765723677715443592758692513873547934477010177106955829471909957993385393150686770067850215098835347182321862145720830972619204834682464538654476254580398959443160731999385626175492424360441320212961250531857144495581602777151408849318028288289088671302585471225859997311466796060659616374332879600989095420612548862734627233189844324830563663582983323352515439561646302957138584118987527077892209311039079771795945589355119129195340098220137579973046169367037793709571088376991020346237881219646412978088077172679532065156117558245619016493711351095728726851392856552527075928658096154561533496162221138238462785076080824256948046398760853065464729724530617521422656699830519760003445581355145970766112466446546417965377758139911447310728751760265177535560416962857120820705362921570645859259035388140698010650532611546504156873600648348629361201720713452209214162213092171782855390346135362763698949787869086782685797946205164482133334186993985335767051993216708178061746533487542584455508865478898943614562255726573033272763655906153185849027823425592138964460146793612152618966214322885828635667149632516137776132055301719561392361677250599751741425633575808427275127810008106857711930626671285684177012690317438719097909404859957584083938072055837487478607462682097511049520459595041901591049755568012231215572626256539773110690125875783207191791659207048059203561922646970846240947311192306203365111366118212276660956749563549942210618566588793286268877482384945820121096115593129700660447080568909055197479503963285561311332902954668242429607551887429799697352522268290075960808131847682501571576356246449977857404197059707808163434025870768108676196905272722917257590237512099681708564473080834922718560294307066287601185070907618379518789109530479099107194558204460578557100478218203676121699108576475791067207232176935916251518731150442085425857718990689867091889497630987541626198369334928693546772015626253501207243103129411298970951244124590790389471049786754016556205742876076250056084380991187232793629577408273598945046887576317335741350934435822401725445868277414516716308419933894962250620583133596754111615985310504729639862473214407916365856942443521485728148639189836023580643225303386788276208079049112990243336997911290348732431412217412514762962440514991177865959009879243254463197060396652795724680757618204510973307912698203561030371144698584599343863957691720897260439959457734154125185924514963570997360868858409255030379699289779807325749320962057186810846625682736359475199523920887942711390284926835442560680858070720797575112760877543130269663289285533535678778795988339115321581067146720119127817625769588839286157517177344408953851758228166739539979410913512514111865930548496395923879600793952087561971303623633067357162068515189390360785143389230452431137430379650553920715400846257512872346112247348087588730772639086676624679865432584744819391348065107170650475698298973220702054576787808087678960725468686240529899836589995024035911663637761401913086347569311963618285357526043261915241021265583632953487373416914771233124293454236656736030033184565885496070985937473491286008621340849573427368927881788834474985635852865914150442813911125502908386163789110891218721905380390450271338947402318862117078129322592119365789602763556636347240750774514017070625070642426239266523913961472938750927201294435717008203414406947439889585320270366668483011242161806465182888086604610639379804030196459946024418049568167385571088699067863465284997204598137693781741818393762307382684426395901568039537217050237978262304328958055461638305193486272884321751224087554392659631187176130191006746427619926338352885935295982480292725707546817516536039924950746505244275755467011687351945088406699275672943132710653622560842084718760004755082526890542140104871552284634895508946430005130447201415231572127396842960336728000250469517161669522798787078445893415641949886975557329554078471125204199714245204336626319981165162415142375737940945272758797681693132947709405107471831169087734618955407822996334483471882584476380971857883235158926524999634414772495464099853495783320208604757345782940630690111101384959428216890777431575408430090491102448604173834689082284146723731782160947946795162350255425302314912036786934286748332450733677282668432533251259372383021395719756335395328485223164280165523822179531400641772789365811389653617049600061911862499633087588677850542875309021869804491303351595404306104993268450095141369070388664955973977264469505080273277488124793303445560172278867904968569022179711067248509774835829767618839841743044966699427126401367776016053288780292419451698289255466086845831862147517131481622330427035331416261457734900132874072631777240896431210004143577212826109830144795459914569223169766899546597493253419529521600830742883910642775618326397504734890803609249535800743683778017716806692413498028703935020636452870253172968725142613259773419733796721790027755732139435838072005937554734121652837147150753005517170706732316212906703601008584157394660439395088722541283206329591841801184182077075205853999435836728221948513851838699266590699926339807654038566288715317757292479152285068028679225636555108206215742178739602772933119100765906637704367252300975281024631887806336327908276286323856012576847283070981300859922570256165931185215936160524080744012405116786323815856971872646724374751849368590648287710836948261111003724020359670736857186813099180573088256600932608197598801539372431601030201700995696521296721584797063297778664602306248187087958328164651752027866682721997691040438494483393370699441215510535877221798166368075754081961371473020324929409858874054172202891375287557615200286951159915927559771827978047573719255850527551014954996959530159847231381456217603908354112241321999826693158412822904670123368247519445899303706731033827322129916760906945396044489447984640947789395937645106667732467726060304693330561956992841551683738906744660425060952780950924795392530462422212215110415298956912840372701497508202550717709231240385170291789196074720538796066862447897361538272900827594772201938386826013162226063416657623242283019170855829361106453133684513436318611995034395894908671890552966527923485611592723508669775488004973309262408772840001443983132077725318813330743528883337150922867495326928403296716605581689317319705965864160079780042778262695332543176949047157119443666265273732389348867063069517282505122365917782591981051019890028845263435881606488471177460457241133722715691971834461387364060802073840683658593230463351727475516789493513059763329273808235303475098225639852689483053924905389768993530430962379480544680905384715777957846683981388647156467821828096202104930356584104812682842789993940537170307031268451564689970782105272279415768829887348554629823327957962608744286267727888199832230653180780649846775850572865548766320901679735737590324965918214268745765169538795222295005933140902508827609986791259360666286882448356776246461737702833150199541872832704228961093649633030603406122164801488128013303572833967576104464968999860699279868048159873463418444299170703575604466588888507700697816788671090501935556604385341898822091994805722163425604307992685303030204399723964565924337904329306292744932188178020901225608892009786147816205791189630020937925441640675167126237430403693621240435711697477884408851771323339074216432648184386953118243306247542839366923467630283061775532321919722481153280757356535087888164068344285093211067068021334032472449035087469331845710674954823768688512220190082916609964657263313380835563105057932091239360241995037819608475900025844380981086777169719688123359885970016029743078397374590586930463426428774501004527431518735747311887181165741917871785277485215880846600054204792434328808591396277888620738162668429492202808509216206883889184047129704559204263858888251737173800889724162205146033380871629428552658120771997381104901665784935927132595875555261355601422182917975557881555254227149824651719610573902155637356826679059165534130362502307813810929149683691921671136782650872729830742328936700343281766750353785500096988607954157372838544982680850594932277967259625430358278210796881529898357713869869232116528391761489204685487083517629996505639388039557760454105364739616620281542197894537691510704310311872743775243454691253304753058348263329190230547113504807972010464774793412838684378825284364252704074751979894698041088094699522296727614171686669340017404254153939333073504180000285344459826291936583477903850003501221048202042877470340837016450830819666110119501968733131947146865756382325965285967934625549052920855875287144730908681231734137741756936202137857757061086520856267789164987662069700621287623959986830234303995451187292957100346975085076794597315212418421200191378293937030539296633198183836505970928233139929198342879784798658031553227016618236384211852688565186373126000871468972560274448082979356786149331743981169607128712614845081057491646918126661382471391645657455405119709430448499533997968406134029858365024153420312923438440103582047796169055643037095606136361007070010406585034324763225420366052085345259471256225272130775016423066964728068382966347184454790217114152297365233754937942983614983852899537835052685227037400561644191618136686265760374555721525558534489762965843757209485287837209841953188222154165673846247028405263982664357137364990923683602091196322175031628810418573371804036666978092074478741182391365740144458651848904343133510399594271202697595354538629476685709218473225033892472807138116889219520316046318766754821233345832217270046794693430511365839194427560828154158694976373438610869240203379325894525792524111891054068376961584441004238780101567469752948961739043124784965491057641163719179330051617618183546916956232461310685117674792205139675473520282364985304903185969574228301529198450343178077716774364885662775005379824280281608628366782400871978845347755293005237467951453571681901038390264096750150302815484298368002488952436290044662770547977355890534605710533484775962005649819021654437753103979344163454258138388933729865814130997785383805455241828199366955050474537762252141738081628164851125809390477949325125882068569424791077931819037838745642236358308212713872300351234670788833779706360063530396011030477344480549569040150922623127872545903440907475822657334683478101879700235176405816934243564799576463189585373510563785661566745950413267883433655747215613632940349177448333368245888601064174553940552223610619290286791154874037514915810841235175671153751957882985999754683754917678270004688205966449646604872080871426463354108862887995611156903397250340562089416915405576339465086021430917444285945168292382242901930596760244314166448253510325936658644220117795856412519742989432894215775850274241672170403884059356905316595277631972737554086143995680695666805297997883543106152447426462210688873549302882346531976444156448820573622364592666268446194445129347699963568454149754436996040587616131747635469429433369551616948168489876208020636709749394133546802825562266864920836403487548810852854496488108078269931977579230377123059016044563258995816746748488936654053746888118816251239313580390228660601520529695940760471989974812293975423818476785791900496274307988702232091690287067746388716443440509740058414785926825101600197903630591487362117487234202035872267549203593622255489022641699114604632546688272691650404547473358644691880591759987491422641931080021696307762917125974029253824851175816147518006395882198640928385982262310175643101855013891020630616375363880106508819324173519100929282998030897657194168679542342195620884267338645402489892374979606440795038398049000735855209512996160997864511411248482884189631674476889765344708749518793717977377248154702592871069380747654287823044142724311002796037333268638358813341696968634170883983524863134161953078656538955919412534669163828473202618051272262229412148779556913440928840688566499488742724737088255912999786218580588921833264015506560919527448500990837929290637012378970170434256619190397379105981142243360623139103653983022581437750797769990948627015915873162117840958266412522086401226417912643114053280796404889674529778941155077916805577273927540536383298245215834082787400103923556629273712638817206583450858564494795405983786043842796804484323750262363000850066649781866725082577494714150863545464482125011225540918806548023266685352575980847759607840592213481457132294261789001774338927455641582280368560620601766992715012312322459726761214388407996579203357091100112507202385103342723547987009179203752761187424145045695910392901314271108078741077754761862965913897445054031475487121492966960455760472673446596750921724228429219426156685915962754370025727654267873487745621368510652612418937242585043704406206735098243861165141864162011535957547290203128398448612849754338776410577254764582160355367161901292919144601677786682396116969615786368512376460016007320820094745013243798552731714003991163168871307597730845836656667397768191232780976208435777707827981677410546604416310397239339636974578850632171581755924739411007601784973551393842224799333075824959449054131022966129927818797750218891861274895184710556920826596311687301874319637136330926500662821497371791730118498536776074755725088119369700973711460560103021291492349428502337889630839897439610362046016941853387791608296911845688812164234007622076944546484199797167763229554283246534805677931760567556874700480984095879069845854908422395117770324593922527478207141080141392277137418442876677942913982379204735996926174535051543697935583522417913307452512451756728710743732913085887688786623834422285317063793437658664918820125414021452422605437298813177959024613951678277614225074854991148583174465912649731733436415959106740984730386853027242559926520461860035364401545852919187594849958216361392156021723696008383833749121090844416481015995783201163534446254025002199621487413471051405463996658047525635633699001272013976999419795714360472043739737587765429539315344672696092377451312128238491859715513907952842032890708897925248191518279331406670947522394634857844268901497435396034065013621397997189508524721221177556414865240061442356417697166652692736190958295309570022912391054824643068439716016764414329242652857784247387169290141147486655420275305422520101325988630339773465966270141816057007524944735236087369729237107260104117666697490941315741730630585647924884524848163721712819970327306229880142361172688918071945911464754355650400297377573873496506818402597055185840842058897208321273556274210963354694068447730169341315387763283167182539129591137817377857588994301267449353726612978385527981871163877653226257614808710321550273904815501881508175944982315691317271400290485622960494758215022852625130203504207019753236417016586662782747743330727230041761845828430844189459061261246951891256393796997503156082272675607952854066426986745091883845186385037428536426438403779852996676176610736273093305033956443753286445869962216907808697100985448352180894774609591084486333999393642310350703479222669359028004970235730021308742096891566169975667551785934602321773142952160702101459902468949885518153569534137081048834372733918076533007445467057776484474610424892771149609249578852173064652713321084197394523696690561218072920647613933166741804246353263151377964394342405216201395835769313482303204105721399318441322410797617924384637709495028847914864897409545935869985387906657809768290331967484817339025040676457957710627168143873093223165871524364884347898864677742839190979297787887915164558206094666088816311409025211228756164730979678471607356567068507028797968044254054498432523120491541329467378526780568574594629206460255633925499800318782147096308747373915764472851535142144018371971976660460705448107555996454340812184377340486432226975484676471034702892274170437178424784343010771670967588726441928400516974175545606298157755413209428570434672238138668510841370273043974308484286855112256615461319677155760407298181011009265225642090728818996206586497134780341065622910011240054192416579163247955853334058909416785580569802242483014563148177365947077252288331941170286133002884034931548987491569986441697426543447801316420779553337295677913811562705249262854577167806834768212431608141521192027844906029428488707484299958301634707155095767976627863758961734399096810461044985403360455324035484594804317846095418242178281814890164904766163952062708721144947923564479575056186324095372823752236990520944385507597307381709142402256702841739806618714458196883984904314126958721169434874378129334849426893258098063698995375377107730127668932743653588680863393548766727882683101217027703231908718586781054042830717868805992740323846615366007953467373638785060859305949140620820793364832337813382247275750693314088199382545872379577321011273373487029831737527415924260858531727932265309340355303025429865931596769063967753966635095985322798033769248805591874245446023077698125166375931272381203081271987567339793765685212877375635599987596371654165507665027509016414672803278367029330719672693198976229634746842371145986822914104915568373806264423741375710741459177686905369069748244405856970317560489072636771410032171401578305402139816530224366019667869691953901669482088325833504424500828781909682533974038195424870590100496522477912732319826091656278358026812838336467083612243280631788840674863299214586358834356772074472723427676717262623284950297170939583947381580365607366102036993552635487345679086196561560007206303209405744939208927230714524220972797515874455026056630866328346176025501003068614671895672446314662065924379321231032534827378079729531841522090246924825632919824034549776221894667810774771264525228276321766873713413472167699851367902568936985179489617256091685831058037975851996102400131365468564762727446131092661881895979889209528040980413978586619922170283474794094387809152364319843478506957841716105380496146159951882935335218545121204731824415813283185766601922062455124232696724343259068266295011748260273119690383097856006823514967558530909638817253174823695508567714894129184304695110471813480704034994776987721009926197579000823935650769443135111578177393293119164682601818546311469271766458353719672043405546288892099131720321353080003298189543841742071344753660364821254566468851928529400398772086858883355644370510892641794399190997399758341394747536663064968839212319434791287852028656670661808677853224369986190437729023729880998725697162992830000840480265103075582269033384038600816415812320859188412631082000018838184162389923851625229123989132513919974296641314071768725129847080401100772866284201537277044148484080945165578819406015255457467587159028732441775821602632824607161753421809272411631436184520873627143458093192346231806024520035505514904227965690163288006849710287417160592595332485073237806534634458697851018297081223963700779435157471649389565695820501383986414022704280812707755694924364197261465844013368054528214236170512267273215991185303683855782392449621476923605027224158819379520619276423209774156268239667835771756963151809586750245523643195156928898209349154452827700954914015903599072240968717564453964564099766267183059684581665106307597448410373328644834089061962812619178458113200816609895924761371784471832591943471987183948036060808303991279471705770222186863031948427466918582711940276805007688237081010980867544015804792214132490145223880366651761743742225893456178158547910502755722523855930319107180906278120523136826477589641766822836984189195364563937581354341327589395853064616975358286874633917912232579619892528498768748957746119673564622892766220611283656358230101436155087515968962314658072573261246958736757015421437312756470853347892580750578367958530234511178866525267719241033302344377864283762685374750270163751077969987265123801327324640967404964207972060527677368498927085735817552672359293834402330444521917931776087866062919443575914250932935313234420156323912133913038466953922649615957563265745948855535037779762314321274566220047976066363863895473309075245520897899324436131665680971045037173904659687233936072286897394595650291191672822548791256450667383812348964313335427572456825816368581964100510470810107246023023249319021529244355726200679875904600573316830549815846657423451152755430069046332856313839629966682743117665808167671662574034007063695179772507859490299432789792423409688793857044568737033429709747942027472885210685961090583618355352939164190447668661713386672808498029585708244641971726475430621440441729703244352758644395655098996904506023052147028827156099145169792270062875159716255609443836813303386683155560460295923175480761138916726455616774100339519740310605386592483305946572616781478952902505869111381752028887080174063597865787296760429441379059572182291155665297301445995785192731441488229434054313113335371258940910304727489239272973368186731198752733682728674599417207806580117631551626915040983312140339397892616166715986263562022418595919959736519314597834584289852140772163425101861476734598054073345511664573990402646557475302898134276365557193962342777609636605988238181735031918134357117475685411659002236560382982818571486638833674054309014025174223680340593926129541647450675793079844655346992890680284584918824113781131664907121470583628952484325101157075551733462515185886673387237035790899564778833740433149737716138446756127488433481998061856351787559014256185046234276211011247550953723060224601121330235864240340661172591450273206986782920321538712537203700620506463210551070715937517207369993100029123729350716892071595185853712313328551349056463420888113834249106217672273228838385524601546554162730875758907089449206024155186694261127195923262650254150657359816894468025383677207451272300736104800269676375417875716223951592239895892237970944699891168743694040320965700499594135726974083156743036053011780511917451285448782601388872041553502573215901415466778787948878526076096853562145958297393979666217960266097803147098999530742907548623823757654336483344161332478229422397643388181305427540155399509967033594286292291790989141859111620200285506678867467021097468940211081511542866091926660941477757911910552669571049849923577307307119949959746452821559074326724583656574574263338852790526768106632275657954202991629833147833341271116271858303698092340235442364501710450655034486466073491273135721689568457523098739246109160161757160068635547679145118127428903168924604188941648424676019342177693274655850232557579195714110373482255230204277962729514342819199151855417939505147519508523618716068504273615747668383162331399952922429854036541247079523115792660725219022722597262459974898870650848226380553897385861301553225640492065528244439751760397161316425063473757731770421655415704991784815963422690592061902997317721224657637315837360271266029461723597657742889127669103998885656940370063197717687303713525613349877658333179574021534252120991532512054826261896152037194615813964703631669791760542209257880748705275084381892138340319948000501932932140878139606404928250372273094205753847744644948274638262952054784024646842769993860535188527852751790923555688595227940091003732949599494632426807408095464818821215392153676317640634666085350441586839236229850161168797555618161381187986964036856848054409723043751821755788896466831056520070497558002227487684168480536406576836796901959902320356734633970782996528344410301809952123258206635702668176583806600387912540999439704590770859850778205498010213951010593044100535512388263861400162832874616990517817580803645582321321718107009478723711050311876562836244185484445206863350096474405170945738870862509178157925493859006616175726611117363372498318619160021171696808724665823987765775098682784016339460343160575665933470261678897581513348970117552217915241782251744726263882935262758833707111879310817791565368895716208154332175544401232807807132735652928426408856309468051552092132142071779004747043473636508922545599263600786050997160260465025742056238945714983624075910767157481507281063181489214728386923503336590949662235973765672762357157846229141219175175244570297480196173858733015707632825105205354702011240120586726073915161107345743322284201485553472933805909326356072043891139810948648079343559121917990041362655151991240380794566187607046286783616073857066673573808322988337820411613475714843948014097121751526213679398432817317463958569386485290728867314902401275725851341195169799848071669423705032682456375198905569656102054054500722044374719569066650903424130919465104080376982588266863871848775867741042459558811537554129211394391078695072561207196414324317502440606915121594636521154638949427144861824022885507770886661927000700817053232155115015694703370003232934920177376907168491214961538023925625786831891418517545798869667902065703804392675225513489577326901945527454313503264038136431081472101440232805684996407596604864491052796880609437906850719481869551575992813788777127391109015001711039191001943997861549133122612752911142036599357365462677622352922791873087901762607816825928368657250937858631047100846277871843859050403524450306254518102417229893800662738415661165286578468201197300686168127467355081980692762878914046472169868117672275956688178928262277339713817077231398552179778615588631561413310234338751036992526349019251544636044991568565756271602864951875443430635638885143366875618163957254681586268408741116325210019684812290082602053083272146708409431926959439329973068682775047153267872676476001166399303147723233639239180465410729563549944383675072374849265097725574730509524074234225548928656003356500738225649089241469855242709999563072480041046019312267896097932363155611758145162031582505532314820618307415470451889672181252160603207287491023953975889892446625463945644102238236517691152697538484410461597834974920584648334626391246025804202533144121134026983202947240188667305210756164596060878383142971678145125777185400953342034060302038112138696906075258959108678110036779901494863961250153830538403940076448630369520931455753080218563758645634338402491165255607152640987710333019306814368663542051541929660199462490282490294282165025775594113367101778123849359028567906870067063537018001549743207540671333211553017372084818869243382371446825682801934394436411731719964123011400034894372329665533844534700165802679729255222832017782070965972882168892659584396601150747874181930991645001744905977889577735937259792442324801132269713807017827296002562732859437208684793046768445824960493200393682358176187287697127678596908397769414700281940287235989933869260548846442872393454786023915312422285185541477263261950120793442001658361905396549198402880616289665435724277466670692625310615900449280900604580351741060320284024598729094389299104135823294013712085677031148457335797245969274083816174205592503569285690926680330065081132080714559551093382374883191342835694059963681286041346449675021596556361702976816908851812876149886080627389610535053714363891590727152601989646439885291504977262210926076258329254602120738616652202030369713733371227331629716716248754808810049433998983447472362755537923950156884773855469235125470401293878640123819275980858828707631488854322441485453483254854735478443204821705715268182066129331567162024114891716943515350239375286622503136721692429737008142700183248867068151331118804899680461491460952439285967201281219304694445162374548417003715103844627955153610841319263119645351109165109113952474832700428133023922164658002100676730260251200148645032312306291655500521325572013770591235575532802945794554596302183253606423937441195029429854298962037068368695549582561290530521664519852349872182800671824118538947377042431982107596570851551777249496947509665076105230849461467010243216424842817322709214399902180548847324907868133383308763794383232565928384745849589988969935189967246639229130183574467830294346075757145989316678495609971933143884287258874100887768079370968743058783370786536357961626322715004371755076285197251810841536825510596380918729132287450568647101788703829506748176597295476929267310223583522393079794748612380550227583036887177736523543544645103574288402815659825356198138906908018413985787716193776666244452339855811981004640449313110016729353940916754112090155722858640307422134053567861651673661774878961427946777017245836252647355582757431236060065995468625412574378601470831119193838110829655174771224295396359998430558616205679168770394641684124654394644495833630103023733159601364340974773867555685066999376577077399003483309507589192737628605695080718761993701532815226940686949886957888479235450104701227262482600281019092903254249379727544208045853069085915130243803543178400070556225544388857199174001200100905022611977189667067549620192942749843439746497839341524528874311179119738098396069181172664380304558950109090691755112999672478337577607374198108591050685602761483105402687241152136385450282833210480016116953868053330054253013577749171384380594564924042144441238525047487435900240043025995626525643968927145619414491076265532916398969618810038729809772731680775050582260990683437287742225622861585816271228462047692106240742527390377528363781624609767513309569222351497187590623488157547204342907962790404203738604868937570656828429219477746311171856008638001575523490981623934805680902622437904487235287565509287998430609002320354554332188661027330499255200181480141334744919240430733719507185851809116972676277646776608591051219382527037267844067826877478536025317873316718896109770689460405241813982174852290572850344990216437955142769456502614988988684656110221462129710262391018807961055397734470224965624257055584175909457828449165876916969264152262136758798808487085350096221524484492569230391015133201348976707179524094050006003670944163233148259529894128196917007180189229392918795640187616772622988308386516070889805425381195233720436762550753701341189835558645286891978835196458169920153849472136371911891730642562525887777285831303594744321529806653501357588166670625670328600699990374419440053801977428302429940001428091149632376196145290188374077529605321637935855599488134402207670603972912457601814085976819199486634127757979137353187261419832264536643725801366357815451319424174551333477162988575292600844124456569271857149078231808919548574802567240164594223667603462185383594132927651886457519187135081686122256319367338685689470053467179386222160256007222055396223909541815281176024176705230737445533895494980079928613676346216482684827930354630757140201073352243215369643948278381839905083424147128853325553618534745545504272681865508572851326280255826707106981066932719888319717207682892289091250798685725349826585992189522591346896321011310499507458032903635150366135945109039483445381540128946748695148293067992381342256133852596601337777818495588982909058943517731290903069887121717648110707636835658318197939434428449263309854735835005092953285352009162288153336651720339165829813130676518570523399630632569375566028538288759329019048850297569737347607519143972990300886499706395101122130247918851862305597547863085939139513497800340195581849085799363944967894574000124187618379428991522340626243484900891668887545310994955193086218242964308382445207787353173321787721385113327005332240609223898901184507478405313826951885628033431248028654999741387244864098720938382515199367496093854084769302482381868051835634451916768873345563618671924558232551020117154280031767881671721463476096362515481749927483150846737527668880605852835146904195850163143994415548243824245441181269128386056884219205101909858622926039628767165897351744994427511058254368270914406178312730673076077228656727322823537607506228789295978261062294281205066709703202439734876359251033417852476929928595293770651982441780833153132610962202909345963521444743725431052296661216145799909306916723193279288418500624124547352898239172583150692069988047427712675926443731566281975826053803229417697403653438775545775318827673020983929790380332646095007541464250070371561290252764359672478237804211396079920722815368354258587738038222887973762286738141414036384443019124212411350989564560617631373971849877201311289106160897296628848893306659051007493482151163231302512618357951261625150599485604912878215965325327450865302153614912152332012947620414022452669805233794752964136563608387978376486501215162465028737560157786726303223422207622968912322433337992121346413240363895854501006213636116472599174569190660516658378994475019334130850232147399572040572585880518790430619123437088530485472793830641301327953693988347172560046617868526950296972813909164164593605997353530845809023797209004731973369199091724146290758521502477024832222283180663037367467488761518872640874107422832477069469686485290106432818002724497876466285183577997704864901247627208360980090573441978490644997134705741731812677894580065610892826067368678042854727306230425230914397602252462794149778730864813791287788938419602725727010479062188934088054402723662864030866574656390542772984167162039516706012764708875676028256394328481046434144850108689694304637625712144174573895182979365496691270433279072140762173197625039255851390912624624829616160754084694195444792998429920898294843257255350234829131806968400221323376161727741042313364361480529066788746807157250038371536137956181988610342146936920267591729352207211434117428752994400884282932567103794974410400143305375236290581553528251095375529650541931245439951989989096917169455891599904627954717556772531904118448116118220350748601225148125591442362226690049098947361029047346296369176135829638268849140053040822040769395621777103695183005581795199863258907169933089250977674758723315303358440562319491638215018207677858169037370814418739461393599278773332809941354749968541494754205574636130193448013433374583115136359604473731935285557957059730336230862329026986332278894515292261272158685898026651858843075108795907494901973070400935088184303380410259688436669163503599170782557289334935395675619212254991494381334724832088126048492067295723236727243160507531102254018699865573985681272425604156877135431440517815862060801517449305353264058957272252362012459540140613741700688113615344086055423177295008683599742238942970714720453991966318764799567627219953927512074182677803843446685605739691771480619645605141325172119267422656460874331560626512365249028709553619893635926842364599777553848871935492244472125214573783288596933683877448461648088620458486203228687734395510498047699598750842683859634741260429387557070272330242603871153528562898094094545034377287544628674145791220344510845699139160864019185436718785325075758389027007039968970305755002839093259414428963751869303955558844632635605558068889976851652972535741754438708621223861922113959446767055468478792673534796595943119229729759192788197420129195494340475649802989323965887729374126174518560188386704484397005667048659920918610705589729750835823486472943612537709713740009919319107615340004542629436618332118435526094983731446485410824842782473515116246728081101798051045906566848962669022484835099434369430668284006085716808345633484649452541238420740242270001059051044501244686087977244076250830831145953639406956884983096772859537875337921375402802485819591607032157408750610223651662210732880090651146135113133898367908494109326763664976770181841680174873275242861107624401672244182351127475048449696128969581958975695823808890653388523613108896862823446534224256899059017301079765508176742070450121023341252467702100332766136089201897399856473193552223771307466453394381973383556138476289117856824531020899087169397490442940312284043333171915533806114803512023496399771220275016532477736887633681487391983109375296486047689734943241425792048915150984955550608449836972724968764134174106088931486347629852340644042507249600566817899177595045547136673297900901309922252406488700939826687141271559345135441008120897267516755723162411000288558536235543612264820808985856866942940873501798876258419766954993722431006569469001922005279787049829083027439389596405053104965096031777440989380801438752520477199585921534320816508770521838371667044649193169756722361978589162213377130907282061453439034199584748428411581368821447408406913568701866988987648236722828032602827623134714414873419776700570696158983239257145597596809467194580003975278640437589917505359353279372755094963511111781977840054224468240814709244683911443223367321699799098713847184165647383840108733670875011268954488838517364933231052537588298376654317874289293943418959532809174063965474877999566862790920335271039549043978615938851162629128231573649131867520092585512895324092113516304467935483300312026270430984708920344701183147713800154373682879830079962580125711322233643841254575196361439671404053661742975515886498486188660025450686488776141794068603094560359432020406800361076188905782993989158626579372873890953326442209458304661165316710093702159234718372984009609316045259733615292918095214982092640907209516411896610960607300766272985782495142034423084677057388612873420081633343275750010365790223573788391743906598347119354140053548696617333601990738907508380881017405034656684064622283053603898894851876415349721141033640229568257465921297405625662111590331689947961867197962942665718586615505763852957989569082438061926001000953553803752064717353922424739364442725905039076287517448861350900164405237580977467794976983643017412835365843421650018687609975896062924082626642058096805064102765886170137636375237822088592616434570773376942757979560714960242954046723195934777272983460620602295461360844787791153279115491462521120150370608258432790067366562352360829320697383541720486054317011276479084260634899086089015056597893820860954714471708578417539814056339003973248781120434675580967972935731789681949863027354757420841471599649395678183022843410926811100955411419007896495428976146738970238658854809063268665954518626868913609501160033302035184380497516164112879134118851359950180767164320582780389666228939193302454859630728839811677272338841557368187767111593114625907150581149844313078457081244570229821173176583043919195471941059665388127522002620061524648509574645713688598304421208836782904372327639311954260326680162021982630527147852639241685006932279667013056416660836778358784937090299087625105448555691010428633698959957997009917458712605946142108444885755436694672629803043563819600158894518388994729580482803917551233643151003847594515613172419848398008445721927783262303434632623136517848939324480346033471104534134257397225609448046576808960030090829932298496976927722275459247120997497015943790294053468782583734141812042435594092997113577951490909545373621187077799267979976826672468409467179116218345946924900916299615383669513844894895060819343087131802472340488973419338871263562116411644242034188600406092817382811366657760498147910988901405172451493365590704213378520603595103310042835753381453184312921227031201398296536848762057747136255811321825379308499353559496686618699441403563487700248170346493536201867703564087211861194771942488618493730585898704998654348912432727470517055693127891161051189254164858233324761764593327406963110407578969907870221973272886259875729647226155902217546650645338918247584990757582530820308302481456907447865795969835885179178749999822285951531830658427054279247233758553143926056124658624393185790139799231931655792157901557645239674775424598539461490136339189471857110609896285673707329760348072506341157707660605803262004907096413230735547283187255669737749806070276433182079087137017470081026138176153675177097769164279381042126391103301476331868681410191937648374902046060823400357192413241150658795718628736897401505829533822780213376041949928588005070379251484175116830336368989910702959007497167151713243643292130542293644046742590925125864323638860389126424760516698149842316674071791412081688444977723193704376880102511654989387702393930509796108342992684065181336944434834764755118676002297428475431421470756012079146566749843512609111339875711773386676605509882988363761279720936114039721476408348133609487988129674795918422447660558685510204601052179543147507385525850433810191447924548084445381376176198372241743136981434635670587180491823113087027824840400029624855174647019638562341553537319077147381345668316750664428898445143796708348179759633104345339838976747866122256367180920344203940747616004975114391548035287078900591148794339003016731019749147122004665137778034428072903044011385445644645215932235851690536016552181607050633035520500829726158686958834449775370194200413157170535409626433564678070336837452839877286104420595355445345307404930790367634262504175956031884474447046885561734784561849555485243096633403254770880381463743725458380423133610751896354866939867993959971952030942150566780977546120350531237757572624786168984577291496001079856105980876274767858392025777125564916575729310236418073011400793432188550715549146181155579619543389634968377963391590809380306750988088931915530894192684562439182115119076795176786316619722962995247485386283886210492258947831967222729990419620585625196054247010958745279941692474286815415840573356003730179374008031167709516106007701614609726928659682446556775297521729452447604013099324951246267299686601465872851689182634516606295812357560223551193312311485660145137584284400755677923279878064532577066551228515569405709460770147212180164520699733924662580197421094119062149638588464313886235654680746606641495745831302486973142745454683169951626317215060846906933136674398852829360663941654816233016313897128960311239462826722570466593534346491582945857695119830592872378828579941071123768459246227624498920482277582111844055148344854236862949101107248903883868659718729933617840669606243055585191031942304512313850698914491844332293652681026113433680019218716992352705769551466892436220626360136495515761529191874061767884615287685555724741948129720642838304905084572845583922171274454967268546785747459766538952693437154767047067329503087073247081084793841071195868355752021284835148062835049334801691026519365708716935174643551016337408032588402904890054966536453534291395015634456156552420605448814677540179111887514795230755597375369353006555626687277328919767469208082780311156914065763144535516972251040016657842644601960579790490249951907837958121739437636353347480293541611640471849304453258523387436403899393164565767074075227077866550578365046932393661984579588607586599455833678658233893044747843832838962637732739607963680489678718294770119493172484009752207149793499863362063162889024927888972198863083252349582090383141218053044135897065780308696720379218433469214961247593977074009070784260606512597429593033963234828867089371772099220400393295299778083183526912213889703873627180629489241342164690688819182869461777123973686733810889206381463826429658270850082273278721811226661928849886922211570841274030046169095524881950116495997764513139559529266680170379441877969365855743141315917237500370227035515158960604937915870833066138506548858534420760217726961984722397129607111371667542222635269476838173802547657166852755271436714504330538774292111680398975164231083288404850408761180491023460544148204735228856900849418473486193649024427562004322483612077913579470254681446228709758459785685111678030858287320606003103844941352995490534104192266989297480668401053963147745182683867497055735859991666936415386604223456007471202605800189455506049182499932201671553396609472626020692817262664233887226534916851639916652914714080645783940124421735502436589320128189204913619934428312029902973583974883463736262777995104325626156710380220041415464078995801057288628846345250190182254400933634274139571713228939212768094473180649614740652824981102445607689444699611557118167416225956616129158139220938802191706492499895478227861834280043188971762775442899698635517187668080199660358264396616347857439894003584866405994065529207183761655916787033391428569610981908435699067401115089921236335684808059715232193665889698138270917720713724522266202716521023628210302870167584428533080769546495229718558791081024693381465177786772945648594546152419837489472423323979741683875017930985740246276896385882093823199712735769905633743043853335220613108785205157719052815753391134177181542143493496408887839828944503431920135297888083713765975191224574094647569392401923152140443132196804630703252195292044600620117714628862831958186405951356839352738853925519812633393204006561979011231564142640785101372508080904487702427036405467584084772247041119714971305821052173552818394870364305383957325297597998874928997120191669932556925884753532530369933162344141547644667886830815165316056226824178019806819343619923960240104658331958421761356847491122668969008435921521624554521701026866238812390819852180455332818181150610801628359607273057653506501391035234238759792554887266825869538488942112233866821986088063486925568758726563945590771092982140938599341905147761270245108634212625993317079147982078100807614954441729955094075226089755681393009754417784892379774839826281466434927221955825955002659428027308164842706072096971357187353465740759496086492643601909023459864558228206888494016142526632370344971557838002851578045005581410412254773506572904678604318937478230779386608871662749204713451948349965503949703878821025427329665627946634363409961610681690785297723174074914836201633269831484206071573290085415382974007360619248040728320967880391201637763761987844796280050930792147432630553433932213672893448200857956526825632670035471884029047428396718409017979182266840452175001065811203157238965204457633395852276569317130566031647559934544087774787941936827351043390388722770833671076688138382425675371768394179359087780645836304121613264897377861610268800122377407213772405591417786147832143430818635773996920348018126731846825447267981171593368217041300627197172297308322607995318777861567866256540485177890134601534265996604063946604807348247359083305068143981203625655235921777658350187888773490853692026328326466841970483520497968365483858207561115942298057385739489882034810608036798172716859029440199855631529962344276437745118053963178405241884518938252790698237501315799465572320426145557680224664980478355581332563291901883722400479857489772165384464782723671674012592552423752142642508499564312391265869146553780206567017440705732314590114062288145377233583129159275304295763850410699027615567159466564827903735819125151585028666431737645955646614104540375663839494931080746180570734903277874936794196232699884605183601231354048812251361256605418102694711934564076220343185579831223408665068359153836089018105338363690188887647128820904512382940304255743881687620384068048581096537450232692258730768016439678560705062957934690649065121519501665925275996910977824915960043996878192676938586476897839538656526420820088042258387090899003237849164323002110368898892880463821848479647465591021525670925136571121924914813851637916835522724900030846099297023009904203378207909344609083414352335546334238963712396771162111974868658543787965507352077811530872567043300654971046012087554229220447589862239248325327320007495268748702710575763423396506264059769267323122932242199387164339200382778127587472185685269688673080489064141568194741817272670641824045848539858974777157435433121503161336272997965376845061454462706320311994787271364036567649628542523286491792050712746111692069508121944884541944477120740034830436452297968344016775603189848686448990179657564817752541437885298466174323989816380061235333345582454711875620704331729064774631314987204560269010470076404487917276680443330221711602608028246829381771589817845981359941359535028837809729787478319267442131414252273832045272689348866136774216171673099870086936439410222809735663594170195153691743281281150266253718551242815499467240783714395231293157653560151025064019184634363577230098261390734312727868353830523046919866846392612445744673495019530085540025151597911182560772446369547156278576792518614524505322494580865115351440653250474807854524590515911953319419700025503764219229430309777595065720750872589945634711171446431347101062404822697044369138952293340022121833809023341700792057878326972743686304352921418299792257133974838392783088201697727323765182300343356664026397125532462683065559452252266676273614406362761962967608875785993885617428117765426362647751266861866880637680900976805748840350502801035119720805147812042278541497971161667335221864835608997384509945377820488483453444622514265738478575949573330475150685540978491950486118082532880906047357250827550958081382074339202564806446177473311923214241752711279550931037388195430525842758267164712646213712029773887413207434044568533342325779056109402114348689817859703502799476433517541909227820650256550328162514559876948009945978283004710694107145889898522612253081976402941264985144012622136230498988328587113947930639675736422216119488717072356069588448035212503966394960642394214601740244708377058038893266824537430229013459780546407928610034407373436501750999378797695322250115970489275561468114841440815254277021537583932472541012231016373537948626853286601115143930321512895329174859980949574283089566013376255197644938636720601361934598986889239067860431066756582151242605231709048802011598991797793163138803104789201543878459539648353446522628499923073238767297894568371990968066140320281720598060849003959733252673534761389018683118230389936677681304492136624837459984141355354228718543687523238507530728551051028302045312524572454269000670287471724052524493721803437908035590397271749410571386458305180242108990114367915998634766582089119189494316843953141214309375649614378610620755695361678035822239151875832307191625711214222557410673939337126772802465504471347346127362809272897390959712542125369754695857513784988786590301338528121227149436748197541587224085057014049186132736534517281938757236328355967938497935631989016798887490592980643095051621167044987991687907551417057071487228304598972883530968625861428574495661427050104579261807398249664789847245807599442988391785156522441660261473329615156051669580821862718518859090633800309333782967314727992356394584080584801809747727577436275821335775679980432058146938202576085941213369580106900830890531664962866905977793803855405837789215270770859620426018847362928315322447145751534404792433965500638240016181079999726133921813308852687314102214254723437136940009431375889668417041913830515606497772902405418635839060820550031827254708230718649189565232269785899333654698709722049296750106735308091561991236861162181022753258574194393444418145186689025728878517841463268437506200475767224379061010816637479640743105931431045408014033033373945844317932245949739444172348219795358942945926657594573790004361540266643173343312594437228136440827706110412181791685301991195505683838339483633009852137059094612306567270390096070117449832580947156860338979329702610227363179287806866891037408682280811187465137214855115092983487893096283717460799302567670771481943161054131140784634233501924644699840767227120542627820919570683444886138517675845673152630828712566106129053588444441126764775023961236703615624593698756351457442924104625650803085366300426881070057034051456907842658210837210510363591000327623244956339497448848320476815181740176738808489383200970336884686147905425486965757440443365804904156804810534355734631052658842340610928789460532364114948568191736981428852949885873866267140152446756334916989909926243307152894899198924869081309983921375984221674196582243840180389265373006718272231622959114580127838493497500152110433126536791630894110207396689913880956501461079411126391898101672493829451451811679819192091078846203707408191139993588382779209924491003338274062134173128911196767154971634327240858371435572770984897358115357068484988600936814774377345793367276923639349474169694891794468491109000373958590819084471574545849319901125709213281278545789327214805887408179909347270841841815965503816123508585873547872208717566568273671422926749398955746040375086353169603843738593393714853874169573972340858016015904956257370523159270501713855854297406887471469561351822198951542899293827707930620206663407180312152725807313527178910984443996457893776883021069637314856316350040473220109605216518063538777466287036598476955114195093898355817020555800659226593484473289508823564875718229487210559836791266371646266089902382190295757172347738454339591477687820910154371236638404528832495879189029318754811755090447971755729602218201183115331484889087161308942970593237581443442323475558955003693717547628846401056851134809625417605741093553622284210921621325851093359829630158378516910066621703314208662227156531910437563936350523933513784508460081900577500306785797285928380749575694351235564158250416465073183290012010437312133310129614585945652149458799774173954987970135382438479239563225546274655964404886237888088725109532029018797167609340629082662282174141560987394133067972741139846178092151410655831255806727078437043175224860496860868846628643198431854540358488792809948879379974560474665863642013842282512322239276211952452842561432660085588924295146649965161769167029220160880734119794060443161885256110500191127105164342435773126920872676016118295240100129489210276374940689326587418362924196509586635814039577362581761471192027058155855788886735122857848321484476456750046084169341444600297349641470706102228751540335657896820870268190208815373794877337945811391604096885248370744848450853599486754274348108319663492285862103741787728717184129380028557479305258434025613086351870007895795658200942679573135391704688697435263101221303933821867604442919413251098331159796375260085650380598824170564076214681324807458444941609589940324546392633564014317594215277264518518410687362414015565016500793829872084281999263242407694192797221998974447083021129938782135007472562250476846002675341059147379004207807379024746923769454969494435615556506191059060844652370238826346448245572528414239545536487429070906832439472785742314758030801495153672624800431932658229978928845668463248843195171603296577864338862362215224918564110615931434457374580202969848630194203169007707694454397689416219466816140947649679190627474755663890576951167363976476700448361885864444461126984298468556477367325166611723268286088006085290255501360332221045604420897606641732463658788687364534710491701512659490740343654398863188066545710787508332527859590987670845966694152794334670944789969825240968330919395722286543998504325461702167555343153790851053558876085261461191938415070470120720676839983922816721984227954405601709636930007757559571733283736759268197212811508771644059743988560308210299650036690601582412107916276874065776750626919927964556788705878828534051346877425404235868029767445716767430974401684904622776214917961115944759523030337016895170247420331365433556950435638427678880711069783378420653141794627246427806634266069441151284325701186989377064012827446160001739196752316213540144621824494658760539463269504667905481729991730970507882505587846241420877306324708885894933917231182204960404905167795306225707715224073761897601046117635441525165552119140183968644901619607327208926140043954764672192245493110485414237785631809735670714745784936776776502813284957736058957292308097428445020814806690762351938458720472142442798321847669571358835225498482179442961990918320805085475469295930068659568532085686607851908541493386222988711428741445844500096171622356576966579035878661292523898218697749427515683832685376802059198392449396871465008873675762616128175575853680395329702542694287230441679596232160813422781563997847069852509863460203376931726357055892921651735694823871777537915639570370520829089358863012799181329188712768989271847367145704405710718587042061176119272239660118408879367071393991440855646918107899342344666976156869568218442626438770803286980072936875561668569708903833084988968028306461304372881116229359339225450753892924921545406011277500989489114974994292401212406707608105986400177375749950245902472824754509960803803249333211593884738524709186758630104180215519975838690079659228747319834730521605287303663780370977110655216661358108566979034538730621014545434461954994437679667449088899499375659928898298021227366329372909524850828819749286735305336912971844271638250071075693064481608111852770858887923436173202408123104030487928690057128270857517562809708754746009365856122077976729403761348888832890392018081572820052245252239681030294380131514386424398219509375288819202374165278010935217460563295800041186999073650842793061124682299088391939682731335613756019994380289586851383421096771866445233940061534284706898774708307446327209893749439404690340808171505953427602464712825075662221513290680170976329495936361848384069905975494730193090317238492171443310242950408258894511031370112689308576083526084455397755797557043755471649254632120443895679565923759213329763707067590225578873171362406723956244344894121247986578309186907759143657178544720521699718769734136402312538332414804497599077541631953564795328863567552834460096670097945366753438655756597463023375858091919822737111599228945551745087201722361527845903929020377781766621765817673492446064122917347708594831337257012828136472575705567226909305987156423348633713095501003577724843178732949409412375600398399281402314292196681997653577207795423196238064447578406988633725844397500977305857849043904574502393147297171350719822368248876806193899776792845152949623795035548160452316186326341812945846547468006554297635987700875456666185250818567837519630829364366663271778986498888593754966737107095916507849387562768407477138636057907413463097971271889580126859497001450042541176580413200051503475090386216227684522271442473809596605539744409179717142159219942245476387020797353392855038126890276189018543419292669742709591339658966546321227385843647069116884616971087204326219054515564097995534850228152280473756449221852014383949990562264896548186938458721316824291793359438906418050029560240437409575487825925163967075659846719333653258735225386210496005921260505884129932301065892908471154447298368382578191183727553772290310728341742153454717338660182697047805229381533025282501822860852068922964989636925812984334743842381729528033081904014037984768555478677446018273739632226973622195889125513644704746871496117879219271775122745930708984643557871151306446349812687748442961555452477366132157640234625621520667498618732643390708427659207145243991677026222305644008828466542777902032028876831799104089203768394826214814901518655360923138069027661152133408503521835416079794428715887972009205353031040658057626855914271673940558027573779373406588810163151708382318338152477560571861918843644899991879757577420946091204492159184136490604876892019869477268140420342499951066055678710539885570281298138488296557387414004608853954530697032706677033763365870317890236794733709737505527138341947679985474851962762839022846040145711142041360995245780072911024580809541253607300904431313889551960601576975316974522156563239254654093893958845222180289187942716324186130994864148010630343484187249255890684677736346942913816499023323446874100273438174467543100065043853393189416193290390428868871998888063927661937830227505772810677595708719322421345829733632080014487568090518066240475852663274816503742965049914920405830872623612551777183942610973586945742419888850863748121575410580762919606790599767556246627856939507947838602748169143723136791798890489621455796840151352812898869141851221181608085274688654037521517987588974602121863262082980026070879759806897731766589058754704901069190852064498954988316230063659422969797574123412369567993072781441980217392076935437125021766917358349076777458675224104713710164074632565548187910345662924957692832214284806539840612600013642060488394463512653663835103700240515707403438021749378276046964322944435618738542414246545624591135769298061318301672549604102033059884905218024119737802762643845152945413833312208669456104372324875565621842281637350545657951624875465499434935984707534646114587281107030448968494602344865108209661698125594696193444102256471648899669372586327785719227002188866176901805430272852114870566139434980840241142421029057869862736626927709867030810284701662448524471652842258525652209774921938105539440529109906549739376076985346654698790841699333274015359049395133925511560293211281098112701691793883129373760915052048447499056104233855450395097436781248695053941503826586740530567092008439188218739863713398769267005630205052009805246160134644033113251115854099940266449263910388019164115439686074346629262581939186570990287201552334026835936916435930070387654656764036144713661562005036608764087021565263872651766028750213223650033333043674161731147305803866842909654856622689081633235417922106425223036428740067127511981510469922661339380598101932754980004092524039572430773044720722449694585769063072313420644000538551719824448724874673956576485584700435491758040328175509378194984372017759964010220015702423577534393305956870167215190904874163799516778984166552753620090524202838808845828086845109250162648884735889356392729002563915586423451068323690324394840565747843386653564493723305830724284095499974705193411218428593264781992192115685329577115368730127559177346423342103527560049156730110452081962084128844830275476555376889295807045965701178122347453795168821260431194219450497433802108083887982644929641539558463532964283002369176053415125482989306789094667401175619415703552304420918847861006054297511025001568866268383382133104255694726401154228259812845807778570457116718760767646235457951417522208359691081253084587589540841364862200162120686377577926839123589642123374379014266193409623846112634164856530401175689769920626837620949713983027938842251406134320090233377640988876228114480797239080609415618213069109248395705731031114274698660805900033387792092599549525069837111761130806417303992875375805505369039188540785273331894191810903522573294196404624891339813665113138218053926403586313335783233611291726436984673731204737347132639967175280886168731857586872191908534444587205052729762485033726645369739823778340092034044843602368565915075612369087525360350203207406449788475729309269889299281555585249871546691014131002991383571117212912382721758819330814823861210214259234541002905063852995573531020148039294882765826307594495254676474484111737692404001807508162374287858002309717943408964790972504254892933272308395964185415796500852149036383363256642588611829714646502674295273635893101624539706672610426143844513055799967716229498213814423780909489343895433377748628155596044788602446980712576668762365120940029124251348432078320910409193222981657450749041722889840344057347398165465019671490549755929044388528163384154620819604291231005897631615944187918760309542017583383825653374164192135767956281694772939785503666619343327093468130500467595067536398349286307668326049431806684180219755485746675392239571908531757013033129844613157100843232905952380475467064074480789099625643015017830616191794123463118663260013888348881585515879850418564272985569886805468312920593232112669047191792154413109362294644306130711440176456020254387972377979315573548661970701289544546108170205504723729081199885110747753308133869205284909425309412933607831828460698497799866876136797082445658105809801123128270690401743781753167704341505951340534227437009492597272244931756882262808738365235397374235420735670423581229244844643225842313357926359049794023003333684562167543760135296342421127128604155240380794462902037629217786853176945670339687542771433840320320129661338349250403388946000788332327943655936588433566288428224310120674007396832211757402710729269954467939126783086045420682995184408429168897030507321868503802882460351502617624336864986046036680813471024862315102952885246122892964729785782285116354357157921594455961036098404397745378067887493941324470211199995200665893454466429739230245135362086233096813658681024191250655683550513354234776700246934884862891725534867751450719544954422041855217387981040402770127729893324394575102082524047990141740276128333107811621073615738806715380027825021461606690173718610137080259168827160211319593531515487332497476871930038525502229981539672549914140824965852066896344757886269588724813610985154843013424549426212824836492406907135062639862437753900001855335046007268768621598011804431682168985583557477508404011856182239093599805298964798649713849107312975560496810364614420734192520430687058089392752031640729041315464107613273291203711575356404358805211120585340329659029440297779889603708135488471141197062755493085225135606964989729792371348623549147329344033259291401054250278919076468865325903695521561848970989141609208379464716549766628474348940086353241247760833955357187710644112976255096145370723502180376552086028508081057983830567604200089248916101299540650283430951258497670901812070084902556390326349499787700750159555600840059102514205330012635887902969538589444250838478924320510792060640718104801010765661312682375711010970165598392967646496746586105264805053680656145744439492000091790573552893025889796411191011475633160500517002396289595969165390753639956831463482314775686634475546296042842473754049210714859747088541348306969029121382612419809039696190792084219181308002560226084385629174023256510084052456430216362658741597558415303837987327729038118868225668251843401542170394103516375761849950685350860812034551251159409012121495289220583779382178200720755804717130827837985033748450352760669551281071687731981683425812604897195784297940390700695810196506816864450449997749724841453791882572813236657887358750726335944772094787261079240848391214195353349366569785376790144871619409620967786496597114352868224734840492859108693302606701923433819134843421866124655902273391541001311119340685415342443146162763917042078315739919298856210898748056812171611476865278740732646563911797604405913751609203376342060482001176655925345633439602776672226662343254108673002883798618136487612218455540697864641603269564129702464649370672972430481526340351464099080353816886544992967231134111540267428376797293986401208153792060342729610367062884391044339643980281901364924370690230391063424287460959510762207872228197242865838254040401817949815693608612403939624777688061585098005099278196998503060205923400683123233348182540222213294938385447927581134236249323470019930997224886934042069481416798752581966084829190623167534387030934879455736120840886132639659896973409801924436282233823757550749384042461814977607662986985477440138416536204935511332984712152989910218878806091995472569350379791416050353711238066675469561292477402818856571230100160863608647988166231238887524848364344715569178750330166014852960215902136895890694355389568770098085291926271670734584922458039888689448893109632713914911361732277779549370241839807398556399256161377536299829881173630895603841376807393138714778956856787979065204016008809523482970532285341637421714116666430426407631147223088725314217944060829884186786603121558611977095043659742037420978926335181903746598019059478836030718537360113593903130507874965253722506294014687823379009846063161712386684604436271880421762286510246513366331459368857444060452996021005081684539135048037027721806545029104020076028173127521463617770005949777846491662904117994623392910943331006546028876330828977951284558801958820520732435729105230278486016960613162209470922059127497315481202728356145952499967001774110639484259602974060927162661620240793311220748070543985394135562709353447540366953141214884718115266294525917178815554647156826488594561961509379455661048412620421162166588566120469990806884522269345307347522767778766665655681497330179000011207000033087295264867275921302704250229605246168776916725073838455457717357955990620309423935016406372047449207158660623745382952371852962406864858687463312682232544680262169322988627629990933508501673669586570034045469235975441218249431440369658805460494756612309280125268164249939488715898133746360849558495624528984058572182827715075098035330665866129286396964405052359006270774808827843284460258334674287445559809228762163709658563256652599346654640664395591950626727764995766799607142676942245997397917020850449558953982820270217570071420071812931296512463996616955345810863926461795393986643033470225058511872725662376889375557429549317835189562446490400254663190343890779738306327578574436497123885614464168040045814967280623241157105798463120123520208902935070808250734694635502545246834196675139994805449058189802822914766208018189910345524248780889422926551452442481657622427510700358052615870846051169333720915896753139871102294712971806241150498680300445102591688111274368233933466536435894403013914866677692388100062305291429789943728677328393895756648176677328775416943581755725381566948587653111951518743856020834037357833051500528466928024805856730098447401142029730532644750191774114214022745040240070651704340003523886273435385535878214959085340893298377714913918935499851403920478935684797871569935219483057114831783675586954879135924089026190400450455258773998696405241990580233994388685770035079043795081901113840549116344040946520755167982235251601495913767453722827954356512219793346936321015117245756171134362820187679400081145050481667785367494952900253889842233548001434367350359696358749795110856478281153289364532990719813469230176415716701063574906684521643061203582051466059158181957594431931231673868543823551281170924238170575089416162679489590089199485140653779949288992653706529976862777151501694424659333135251766388967460260070379892966656051104948899253239689744663063699883072242920169409945596022166042859858884589450798862831042247570291501608220565522855479813963884139704880715405395389877705407415873540800149877658735606431866598620871571128662361229756929899421359442191984490632471161062968189584470655961959613683960652475885695726781172031496105212111094424794007004474485709510662824320862428913335754720316972259681128791108596375500012432510359257494185238611105598421606131644312115842144028527098924293873972021971902818403930184177263033024910878021156864535967685843837620578486124511681042288355044142929696351312542952207799408750626327054168891477192878979918390227294991944548915563011239654825424909281724344647176936874494304212214244286062783217853411572143800853778304169598865797173377075173892571650708158962506316982747715800550942849552236194689225647965125788895546145988398171285063909232367387473635586089281203001871626480592483813212876850563397029623867800623307771103317595329008303241219166243025070306354144497662355465072371727228661892644364541025145621029424868642363287807671617950719691296981713016238368229583068666607382675378111879317191330831723367951422526533327277466969864850591254325485815111020939539272864209746989706507567152561350749292768705035250795329941236570353263599719931889471364566408561619641387654371990125086972467691942043318127493521577671790354440916051110729803070407603508796101139844403943179481379722193398762798407143249985898432856008183735910744176257661726432725609834086415468717252131137079141250875547119702394534908887210939842305878622491695188816187965271580217163520458831211150340644081415767477193751147600254084785737676470527125814237927830727279451148945280521370218031052049166002409686372800614126827199049561250023073258201252145212530593329160913043601565338591720906076494523687522817101609170973449875941706892377688264068329511289215164533691195671850994710502243886367869797475694004656115782857116109586315786142176336107112860941556479997980326828586827304901916023791038565544659388169189664170917255172383117926404152730571417175885560040148968407691079393228156679978645647102052109897228859199287528164439801271773631761458860581793801655417407174232204567133877314238010361464071921821492071231691872003242080414521339719031294729686954047392576549646618698960703764041971263404201480579750159785333467107340884442825852682804577908587910120006048006036572485299969907063263484518679989934983862857890071812891837258716927206069772944016171538680425019278815344377455741649785964376680862607257115137678858631980010263768189010400398461526921491100619988368781519519910214471876556846908068314264891946422268359662557446801590759396303926128033105318955508739652692657133040970133153579441017165020193334105130562755798819635023294830567268393286971328725923036933073091292446746424751253427645166730912073738633875499066004077648413710123578625837019839894556288409270300986503239539572391303163223051753690068464494386321787915110581786831117932731627423358775418089264877295141426778952503305076144847146399694313657941883650612342986557304674088581599611358354724303856976335284513183932820443512128657230979383460573865659700797111479376487344036471687858759272543817598700502678980982841606853385253648546273430166684590575168067016681197225688221848116939597380328682896798479902646307760261771981602134527130964699137567887873503757987011015954367314208428050197562787971418435060014393795795387839578896618876620858724241156457135316105571756492070165899921897880738775405869119606838414558456932636643853396767130354778832451088684793858200576262859897590420918900033175484400227726274458640790253772856562698723984011009430094779257245544531836451145194250956909812680979883470905361583175511536999230769355256759659627636791706165148059038541437069359702081802221483458022693292615375783640590122973380965431540827972735323754103545070490673275260684076107720532298216151185415459763946526053464678838085410193762529593473392435003523251363544504376142026860971996649406795076716964254355382039810489705788838842357633122711249041924017000052634796296840253583422658867652890704243052883127834871188977438977316360666247305486454412666358826473480435137787758615871672593535536099313453352634096455089383155335620854257808141708118920292351159212984515221957576622587309478708116148597842139545459178109833619116043134362359674784024425193128688893124852284214011700224192481148216149803483073926618965404390215143298471270000865045524230108473690300931395312913616474414498606677449657266567883318784544670472244081991082905743876056565184202873452892929278738043079507872361096883672703159178809797846422674260887136544191392008088087035903540694378257791817880906583985544165554808888481067456772929318755071822204530571452624261174940739125944388117063845400617578349817313304740783973961980386041115737771840744215438733685691682641569331643102965551527300506732733788841096231839802689874743896275857731350163432947857976432718672409133790438721895954472557570396066843175977909233792733813383243818283350807216264113293358254278110643495602622744574278626215303386720565151793682123151315106663621246614942512380127482146876205473918316006339848303568839871930108927832306407219393599457050908694948279793395657636672343977909644314062106507761937226196521268471192909060369779819945877887325810161028999878956270566139644103322696114494721539989114516455122903467834030450783324564469939475445882876841213698282759152550733475499157002920781306743209396377609855745662758446187193794073463370988894360051685650541164806012045522209594565385634241092585901993224006792159334934255149939051607795993846822403929594063542545082174457809466939553092338224109867478240155258892738908231116967066786099981979895605116680488323343850256640299113529417620650427769728541565058244240575843095910286416822952752875616924412723742659765007342406111299910161442267284878833032354476488756739602731998347210631894057821787273275918624599876630402348973696304591931648545353443920832763828650071319148766440260123165577201632732444096917009220572837889865607227436486313065940944669504355932391003314115782252256193644118346325479076250978877813699383953877167174040888857936766135290959578167353423409742993329239064015557045221592987788688108092792049196374963390268562134553639021804154001116501653419580725169933898481650567279401194937609072253439030148580331163302116694659065548826484182972409074853307867786044713847516937654249116083597607829720437676799069842871160257199417334701176563308849339117022509187792100230108195464763124642701692853415872733778635418385594018576125419669337328849694063170416654502580185798965354689347835233947268909756263531882986795256590239567161978154175932177037122388179577667977331171256990927461811593530775495388157991980251164756666361115258974013294705798415877115215924467793998682536102578770316266753918545110752839443220608990054569434377228435975881608096562778020101767562511747777382724055748252358772064765882962326754069371670234339883523527249874496534113334941601824723855670779901887794715538513644392896334342590414811590702208040513448892597725019818687056802171250583766152745640927633192919873959107436338107313941792827181230827475334555754496688886028162384074840405594979348903241793830705197968963886240878834852218170517927136683702045367571865851155867865930991002601978669184293054367884829402588023758650036298815449955679696933361843950925147300687053313735970920670165896893479511427902424278877437435182353078714269706574816907764946543670126429508948901177693526686505814536396009976256400667616354795022193908520530852774859110959047589903786809995561540699797338041735374741726023991365309992559848014323250894159866454540461985116325222932774112834791918093084264809659156566880229113492915226182955901443339852971950357541082108658706355885831102205329064497452942666002488807209716393929148123458995928066961612942257561399412485742512829748746709285931115035233255280634326149497754106189366540512099798634430085075744798188620543448691910657809681995519193402087243979614375622649921699810977770184947421509656751901863550150309933870099622692305711813727222855391196723661283165480041421880098294815289774748102955019902635617734591990123497241585365305681912055346613808799932615572536468810054494946568423755065644222960243214966281073723951681905656739127328864905716446693308652683168869900266040899230775003544253681218746529174171412954410895901684064292233685140055903479741445431515349529782205272176829258564196702955852895955443681244023444922892978428819936396591283953551968253867183890616349946654588556156774243534270277970154114184970866286466507761343486934755929299391814293737331040195542921013684807796777146093941309661903492868670794276206601133435147817270570059182423860873614003647814260500561870463026517054412819352027568727353808043738412039752134697673906765462349428545857195434507000056314681441203136418674100256118002792029253396787471994072515012360870248005422508625881093627701483238199932371463466781397329263106398023875431189396718522181846483996370740200698624822935857309010896014708001687555992012373766043539223378752240507145434880616352073531867997835022239901402607644017857553228387923423036160813874665225228745908307288277120141697790945787524916767113716948932244957939680987145436011909292686597912100754204565541374572242066888109117212939702602769321777934759955429606060157717751769987261039106263083101970504407315183216606641766461240666293837593881790908711703518223100707641394951609848710317456085037728312158208875277445664157413999123616504014112595057527951651098050834788847349753856873176637029475314410884171089003550492971370009634598518621923381668314146159864477444989216553021271478016149727332183843671251153850651459138628163351478243342699859946734292695032766449128797526019079358918345569003873934379610019846309154285358791631347701353605282465661105379557773636725596761230494361958505607922369997700262644964742824781823265284455273096240952814743244733985162493037988092758560906502205964294410720191119033572119227955865843055626140839095035279474130456450026016737514629915559292010714741367032113052120014797825839967752883691981374050094133593056459891285282189219340108849764414327904889945992288183810723235755228523663378135526249443179961931113588498264361244395562568758376570331276853393335599317297399831374329911589321232545938520807940537737814737579020420998001491015873896479729702353198841805452393187085748706077507038363407701413708987022640603271601063711814456458072448542372115966599994901568550970658108767309045024608168490139559113845564227465674320036167450328472188946479642905668579682058663960151568180752146695089248249354323965450073048132640599265521403694692314587246692842558747596804040385180127520316740432776081701565013146222536146757612528301144411096671957818597063590008011048255401797351364700315976627288912951346414094176739048587575945207582525956241690856130789526961219072591538472882334850739925631052899293641414419697986284960122200841682820807754688440092707056298040953449288382615741198717086063213043683830190770399496799441809720381253435135487298249514035597679889600270441637491530000269108954591109672282478508414482511165789699649743379948432459544398849453328793142042461434597030881263765678237889247366781669053125348272832632010175912990315467177107833266612462798786060113483797026027473411478290766235459577913950988474114677152470250429287392838804613972009752704425026344720798385445317767459071642542702994392598695308372694022227223285160409996818877721321790900580796764699745242691682217020087501588391058561712474450415493825961566708360345396825501735069242865161586977814793613331858920196502582571579364221370772225510236448790240627346685705296904252904818341781087288383103301124672852189763230363023450037131385988367024660890510498930231169051041276036392738151431349249915064803660420285548875119571040058340908007057702366035781258060861037034632755071941100928653410541518449153863867353121760425985275074725742050145421970834321623569017550927063557720697688611382084028802867113216467148626890214926972486104631373394199027161034218667694740908263195112787117076887482727636138528601458667855167303487987471122227524545773513798260280124631046164013566805776075303442456041067312444677469937997011203012597807374223987385031624735473782893572761132147181287857603893657638313715588756567166067303397987792859847959239131712769342558712059255584548835774570405963034693788698090602689663098726371278507460938347664202459721121518085182403415732122828768775312803947350913533892154021547475803908995228385278420393094682058073410889762405856888043238340602562461337033362014882487544436103298346591473505976201095051108300453079739499988783301177851300572722455501255293221586829659729633758337743787012812172795378123430041736985856723314773963892955463149458360341746413255513772957316926736762338226508975851020738631085747027479426730017742242754545953361557904686588298700417213039154617210031392911578952659734422399825575826544969454103256326322464270786890215370312280442346927931832858849735016796873591300317756860465276531175432460659932100055997490999286491139270797676511767543656669624853103282477683942783311944124145911098070449821018554900377226007470920967346282516138634102143615587065748585377201351464560601541815183729902196740412214295265876766973126452014317315037443790694427933315704041979924650840065460172627255929448261986108281322378157913066314899724872725377221896278194790558034811042049034599948643900149611959076313779593790266210583949063891890798786991080276305235578366063442215244705400635980563472249344318745896910036556062951675091265773026123682139456376882293744046032298247336558829501049711979687812060443461913986516838360426991683022813062242990276471688269033477821216310763092670443613805396364466780214247308652276130901106087060169895013959975673331005177667192451152518638331892367788974728306928652639546099534084919640822712302098043132055685077158137395389542732756847437098618475473263915083740524598182809983302184235567849690369984817996162438657144921734819366985604364887206627516688875908627432206889850641975277931822784498234881749035143150653776661190311767309947095243639349195183005859923605244707518735539192695785252085696867896096056316632667718229101380103100132048177358855434970717204864056497829700058889705897773332294852914251632081458785735622612477175048336495519629567950615562449269556741608326740106838786901758420575330691643138525071280562386231766972956663429776320667913347107717834626191742527038427685642943250578871454659564590740583477811959931496182862762779914776270227157680685395715846440248502686405175117797280403651987272441897121914385070219037111745725782910696442772714852220295441896028810132051289871496203959524427279940748461175068331545827073466408121199104143848993301100218160416506101942685309734040890496766187304308698192046548479187234449548623526559603813918966733871897869974881707376037385837253946661092637335811581988145614287174195730883914637700609472983706351139453941951290033120967015891891171309884082648847937271675153108770430998438813251041422655267627703150206808728430882822335410228317843909349929685046960065435356580451990795658276432512623580508636981126738376679380679643198956365238876572038564293988693636509205150165015150247237685184630208303778433744344101721001373463697196285514727381171329120637517391708067575772057612793052636583151496249643148242295561282411102188410434422769361443121386829434375937511105686763028935878524804433428117818533836219533852241199131430889032052657860967388822911812839650971604148192688494921648443550530905600829483956577658366749570644935049809038682759131646312559569935651871238656164293398712335202522507551066533750439485747018658275811468004009069147584649761391891832214172729230854324953903508624948321858066425695539766747113548194100119303470735582597312315347413705206845427834176585934191941203786142792011401600135292925564964870325280487811536815118288338098133859495111256230891469596912399126728960472800189949511530712945715060379807147408604005666018490015502284073726363920822402477035271354655098924435168645232040644084399198943791083984681989963165507834750000570781113084708592640662825080675459533472634497959947800286086286224715599299980352840660685937520592031082086051295968975875223583182422093124464150367225536989706281462908977547547157173877929803941716794584479244266222192009901849191314714012367336133022967110890826258611944685260302631538093530772996047590729461941252231038057931766726689646414719636149500209944450517100063134193184977135990617287262047518777496693858810307756588670006123734456516205233792203372052554156822676259233591063589495643622220179171878257784597650934117770603394816139128554292396110625930513861276878345733736697417967700063509596180603205291405682282100925023675815132480130905841251738376088658972728295865037836669190440111468758389639568938258843483925845390970485122406816480381352728992431429781671441219938578033481712412300818255602606671000896718898160004447066371320763585304977788956203054202375092318543533280203541199732720524410621598225115582908350883916440067657786542877479168793410379200958786101880328268352044883584805207360867714047344231900379411097026476169853579914215285279704988404805717495803896330782802581850978845743246335384840268627761128248944080586268497616062478865733031684627410501261915125979622750896273964932293504813995654047528112691432183315641843929343041161247600572318872620400849016269207355601605071942940879548685151875908182884103891020645856806659386024304464242507964858639022940373878366203798142571164264627616999139856555959098916890966403092946890620943401743521233049844005982832758781381553703996578450206439527173776929329014504600034224011217255577340819192031713362224430830036269901066914297706151140046887650353102784252314047497582222316487475066187660313693653803734072275640114168855686872924807631717783774396371176161697918013539067949205957493529431410426010294602073016340331324183959273726507609008791458040127808334490383219115167437681285440082243984185308601421746598741642123508561232776702798355039871832960532094302140032866178573864727520010278100230795336313021314973248205885815326109013496807408050859640965851915761209045487899611559058679818359338361003533880115871030126108857539061675857531614218459249462773269717548993320726130214573381275398983522733502276992494067392215064637758859146466066462333767280369679242148642899161989759454130020183820110463980473415348678447335231333672612859579485400341625049226784974879076603734076434394233294388756093377118120600471723037943254644935952822856113137768471445948531743647613197590614533557075298523681938036895369665963090612218217719725871898458876352040370529400664534604058263422564582442173500211946663826038793687328434238750599011192118597593199006219613745230742713400324603754132154823783487663765295642720263576438294100041961073083129796334176808443947677600605046434348964450700470952280786061914701218291901088032351675918546988463651615463134074267621688814211602482627528819795663707722441822420831203252406385765031886083146907709203254705803058134640149299482406932812871376116213387417928948358471051085101008335367365266435884672951635241826996599187604374280251003874467761608635563708261040064839003299343359850622879082211984756562633170585707127826994959368744932391707995718465725396884864248695433778799190862095188695879204848523415850841739010288548425552916277407992723200122652331516099549936753790975677004000022966158920257619435633388131164330415585104592909110938674190904437401903433268685792371459506148589471173949315624602403234153360371067646925972216137058301555048022397544241477528539992922760772612104684757071523642524336637535906367984955745850066049645778659192793178688085450538844786926322949787637908263856354829761076222215595472206764007759910032632531692063774924356560242089712896764867334321000159892926003923408765139293741261288951425918305134349967851887373471518917034320964031681988698567663316845664169282753051261439160035591671959332153078740748601834848965811737395697042838861130818802040145242813380164515613346439698969955544413999229797618958623838384544810041462556341377655965408052791167592597327103315892290892979927099644288370994973867766698081163062153358266870386350478203922101939690453070370418401900941317187967740989594559046342920430135761323330955120526335114050586935234660352354982579899898422757882376511848494121098822254658007258068306732001381967732391578493169102620067981891518692121436046096836373328890439213214163421098265436995292901038113892704544591574901025036307906375676665046190689884184666347644381331732994141661510126404420209003518024003247055894428822955139237718465138580561707251677122403054673213451137330394075743933248722512110093586163764123436631704130104571907901156957359605325244872318007180704731546191441627596757779222702608529425977966462318764030611576250921811848651341278422961653069062364111402354632000432611466537789624962040556215994659196617403233887706210709736590038385647743735500933158912510837698848628979622917174331931463062466645080052804768823170543222055781024216422142356639589513867077560489296673154930116925510897714217736920283473293646046123965337431555077231881473988155867809419386960073846380921154665212489756254538402370339804224426480677413140900739432395604204300771925437184489614951934055634455452147144600216314931118819458999764945588491192743139363645976586807309773640708803530389130009926549132965658683159829053627131875603731590680172898122614061240155077749733270055712874013219294632002262218058873557400942602118540734536055170209571531712693201071180389896972180459393454405916882472138218370755019694551554422734935341677068585403988345422078495363869061913377363401844964879117011226090473983022810996915237167866480847328826027202253593285074180685575272805200334823341895780794830421977038676859311301858295762795395369933139221800487164785331259050450521289373219270256424046892622710813514891860712535589609300031594935030420359241344358870179408330307679649153390178623838158226024699332463498233897022581643254312883923897029579725901201873655643571246397259365994774225471765971305924979870415815809871405398223735907986659263999440148253365169464965544244546054575252302392566109158196862452906471895450879142745112573021842662698640289758029299374519286412601207250137460088485072616101547168780981956029331019616210950424343660251944604074831234537051693774041233378027896880281561929514416286736757858274004502092930204161325358469965078964536346680988993076921801420547070917550943560246926121336862955525681451653305636941234632588559168237760779549644300499236046063435936039722887541765680912409495754151140450000944297224974729757374960899104030135273421925403040538572967532578225724411536830094447556605282831503648079155797866945375840952632777837492239293950220004757411230200227564207826754261199779277291509198371872059217514026954937006409067886213978164023672818953442892113115572962579587054426314395542889620429140240870369630758356432245892704810041032845329793238599841724573403294534639621506411140054737808704621853340922894116097488709936682967517451839739126604069020315689313891537961601565220164391942310532018802540073052471254346281429342917975591903480459431392380085938453138511374531993957899229663250811856771774989267804324108296683215617787929468712843020812427269944377249691379186169761329079738582395862680162218246711824224008271594436404888340958951655291557695617285001586251221400876948881289568264300556119473009621449070283638001088880749815789732077808192292483729426626564184148044511644989784840013433225163409487050454315243348534552314335755503375843891626989132721051140610455071366808812259855404370421399531719882166752103054765960981156597930325355544774348402960323830773739195997909472612872747450920767376753159535220989221599154134073133111257050549463715959110949188532151834068860019376881971740313962762932905312485316535333176877722334451304295093398168828669053785405498339870361082125753949414477860217038973732146449929545284006482098083023747981938205301316173327874124466715645486089902998903437277563189125120680412327049494857327464535403439295439504822712819041200162999060826262600807377850516489667186666099917032115176148064486038529623319523119061835841006118692425585304991073721677490477725300402196644197807230165910804178730952040275217240041616443856079051102140593782446454562830343992982348250070152890956429714019619371893069254290117525186870640922626288075248374367151322630009741714871342296334226545818544649817892733704932751652662368919341059575480290380731126071693728573058509948955433722281818988989654552646949280266654028035170878107688467967347616117056337812842420693452805718997518361072942083361420042052308472142548445284350314336878737557814231256179352875927946266913114243224999385043414753143922638270688754036454624292253465055502941467885897733333445653874598438873116369065516033147199068631139610122684584946150009823014846628042397855937941475903700188171438835659419296431996397223650560168488774838159002920761630217072195520511146796543238441516159236491925054406983077418558645243466690031431624817770751093599113248799834251676750080393621305667313196095604739663587892886883253216766874109362905395973310053629287337356021025923753016173407428220373588065984757125643947526485559018118290747330774169768736254857501865520751600998261924825297537551298048538194086206566380751782211624341710789905295204747040920926064352228266994839004375494419544829781697746612305671879402065706643624105727587503296443486807104826768393024710735866018827668279497026997284943309294689125560249664693680947596123600567627387008348288286619029127385902670094766536264464185278787733290409299288029151977406822090832307353701156245603424914987046740097004063806222560247538569055954307603059415404786230136970812948950530213083821041173390213038649770349462292469333332431814114681166712465696936421019915525055162069513288501926823097355522512711594656913928860381902771097694809654268279389097662843855928045931267020101691500787756721422648110745306224909679908906235886251404053633463252427136522624390209542454699670859024192626287145445703606602004466734906175515024006957867832900364058304883211534395838369822751350476547883648466689806213192709485556738383417052882167860772700401448934059675335546201862971785198845425732261066602624617448419649912138406552581983193054573887560654940836943167375956812642560861511986312011058847222484341688269582107036295224919266446754637738738686536425699658795533711401093458735825494721616169236088136670457709489626097677774516503091886763119637567225347629690090108418610174464827714026291624187954900622474343494942481656900291430298886858956014416476482547920309466039497771923786698233537987972545713490483305075516353157786087072851742612862806348574605962491164438381929194251975017618183369900458878800632682486053303740320634151957818503398667115997240691901704775058317472664659474493998503826609712055215381785287418701531506381070057612268876613277367813070302106480119447453149926335862711040003559539668234604777477175651093441100296824806288266653727790229571145627817826006703316113945967767303331464150548624727206692780912882241595680655085499366122390041931499681193174333451432279642534460186660981675200112795336900466937418412729942126047349009141208678145280589274071655469117667066157582201429921852101413982838725326792246659485016937668798760002456057749002471359205180098312037221625681645024827531119803935219100863973699169268569411814599449932870514290151463616574017649293060126506139061464584071004078013144411409206603056103113717832124957279984313972646218639687674743126657886088680211767176145392824174054411770964378488081228901162421534219106785247655810753247296366146380634365745872772845558241336513744928467092657830294541022136444125247233061907715076129336638087246627721557247365646534879384736758482880533745322380366669799714711397124938360401466118865162980889173229185197102869412103549356021811886682398525373641753055956465165015157176435839417508053589108011917829851501580247679717721607012167313688387937585507707763496838738096966065973698826187202634969388264653988216624444898720451838405357050180397161413365983974348390491913224043668876406558861972899344413663597601407631982668996213533325076468705757069624924419497140133461337497496322563744171751926077183752888259294271470692343334035628988156899682512171957249426490935105752943806998471407695542974024125812809553527979114766594976261605761923378212751757309015548317578914385635665041238290361782709919701114216824073386739182063023354877135000255800254401011311158438381959725704927863083081836065831518721911749726985970245491642011371307744954640829177187623705876290056744007008640179309393206630926265325510967057003898175532675056017734476065090719552684134968121204673036691668391271700180804170556154761406319542185967394377464178582619656381453375913315988032440290029947752117163677317811922913335067021353387016444234707200348137621645064156302010033669548866879711992567388672092998442597223111357001847076465849962236585986367539895435299160004674344083952925785973135174592414149395438815926087827540088876567139033757634962560976958394630671943937829327230323392721362129518998429266970767606341987062078235487811092914095126318276535258827010215393311963707559418753468090901855793829289787188804208602171229372106394937651342417512510545722863144934464397883639235245647607604259953437224994452742422277392301204379531633238587420452175727774869803096137997891442534245076000639827078372217296862300061419475216837585780360926798054943740799845620756302507745902569647428959596109191682288472451266190311278207794759803450829925661366678428021119719448245342876981134803333240195478996675088694128620748306026956913932295599712017114342317803182101804715263697952167106778199321572163652254404694296855544403323181039743397277196188069760529129638228789355812477131997443169940413751612905240706431669930068299118635631553844046089382880939674366856321175904076010736682105335369102918505160608069601475052299909651841160342549349137792308877314066100342819061341690518096104385795376703572325532590394280926983005775856801936371880436947494896993307539468369690044705390695068579820325750433154598347642256457061027611196110576790675093133021557679946585219708570421087146132934392096723310745119065879513622866147804498305453935179956006385376051302001312714744838763320513498425400901946805022515517387145753321992072031035321912519223656066055503323194898718770748577009616163648330307381788905427398245164551148886128819398956352197516354734407477338379274915075251089792893740381190973931830361558118529214728476711006863514584096954231249013516632476663239108862267253358194433806272445068334438718296286576655611424401817434806522134115432827139834830840437685921583073716465220435727927625574786961095295169975190076299467681684384825713280699652760566710694974090996284804405020750613482230621879901996744382509864668564690675127369915136959495544501350589547734045393879947304914863110696571192257692012466171339479394876638922093284415796700338934570892712613120599607334060917956299513890270787276050130084377869589035135835962557302379052742012380278223296064428397201812156050418782914939449359096275158687645505620302454608293197178646090247462136312253861453650357235918327196833297398710405403198985870070794752147738379906795010241774199904408325693229482492796877328178260197979548421957076544281537010289060595645396506835082130302328137888815733534258413217352339692039825380725847874487144173998402095160361847136180273488687560650773953933579460516645825965795990179575654866338553262032528680885408379933846477730594751616902049200431950304012352662673676299323296441852377429512657292379197762986253662857646577702817235853404348217051819150797765677962117371352374641737587656369562392816305155659861486239620618155842556737648464752557634535097101009567753956565041802330590924317701828876308710078170629262385589250648313237790107691151033396153393011964152199478412534013137038324560965822025588677052936564789027366794119606950870821923575468417647106750794698130455761531620707512544123901380647314402004977506700729341211888885527474740633993721046467720244672569733351128973261028129026461333177378812771420510463547310312256262314307081237076290273617426967934591262941554132398286096075262122624895401588859723416878139105584651603613233524435415983422605740190459457145200094513517027832917307967097428835268379799806920485279199037165539390159347850042038247809790771226017870464866025094891841545698704224449847787432958979154871112936323499865235167031673043086367642272230536842146661657734196821691735166393290036997099137674293012067485166430255304413742876546067147903262226698309429656837055277712065606950675653765447813197922323213012184734485414362581405320268420005988264664359937831779548190408501440608068430830357551320615848243586601609081025958067766816524297909089619273980246388746686753277223810435479217247774377006186164327632172360598206717472377827266683038052628870343807279711836169542879474991874774901108642077227634585907008126497199479707389942444112401281272205988277106593252734838048645954221150645090115603264472931860822043199511093603340793466010284339823494418027913198335096905823395674701321150384991451025210140077449992878824114789408830149979336267742384896163900090244607080209718952333710245691834079075502367986963585377703688391748636694296507964831354911230907577394119255361332374931703906361940096193139370283843716438253675272731386027950860228405009693591780934142325626149575891450580131933470872014328853439299800602025713430721420702409347874449251955523319670667741246698468168751852918767988632623028062890987922301900363960379192258759977580575822603700361010351295618730507709470072602297322391939351970759811205249459861414060749673507146694975874228907896487223626996921672249284024232968932480143011074440463825703926112532534768274275422969599340687119357863014385151230156872070885950305347945378191233472472942636039821419791050569277575030987563688938380670031187844227722414777283700673955763129369950125337005748958082048205817434611393569460549311033809704827870820968938142124131556882946932240736007678464668951172345849135827455512194125819796497930137199774886327728078068313226663926811281782779244093976496139763270650219525595431613557253718205273603452265682316988026818265364311690109057274694233752180515014868520827878504208657788135527159380871779273992030634016352662038504663448721603028764808283221294742698453321380339099605490072488345203849996303036858736010443050339557352819384157983517255400676169248879690424134131230980981741460995903256041714671360755921757917028423015114036337724354036001436088390382674942314029792966451946447486466489056597239727558230091750855158744828847454248758522743212432564668079495362149625738776816453015160889822691741276543602490334275025641952530597348736581191127530466462850844518713104973066680143207610171538234160784714143554914533618148884661911098733818134033841214124022676981860647605678224393832167802378408345624926806245309042793011151475360131600218314771024630155052587506792865650103389368318252838538451101504209374282619899550968580797288211869167251504403485251434702295700357970348626061616446087392678043589878191644231708698738767014034917317587348208666001631549562234693739191427080217222983472169219303476036016393747188916198602654654434498739251941824790232033796302460598219256839360910328548178805037868244608839842645121644740328288803871932755931707268308101743911684325986195070588677464677220537522358360939854454857892151109425046012431615177566934668185529561703014824278010911900589205098411978747109529324198416318155485181090892816620457234211169511449358032645266190101991384401623867217631176965804868709184496359598938002848250954210797441868276485868198992944596119457132382905963666879523654261595138912614740298145656925358853675616084274638189634219036046170618596691098979099614335149730603470749692215466357323740295518498168724603243133908700108710793126308934135941165581817509880921330585128193486383426547947696770518458666191729452759214275125848889040004870259419339456462710350265485823368626296704424572685287169448279915763341079021310146015544538601694019853018392073805070643366750790611204194366600247382469627637652061082263484558329386141270264782461388977012244213038394335800416700951204176174390971234925459977589903990066340361689841173458073678281208893218602297724534325841839084275990778051782507084507567081626105745810818943990750351680800543322823902274888547391915525580987130827979827205738659660598758775865315231946281255577122280812029190777828652203918316794429006954281826908673099371270094253308480780215713430304693749877064273503990449285137333551161930973452438056384721471276939655832143250139337219327124971731305611915844439461359302655781236469929274793313245009280597257322782747688633894460271925922798606029146818353347494189069069804409679576604529412038021735435886365192791956907905366570905769279162278874480499369854706478769157560528232603653025225723262628297264052745266085134175821570188943527640822016631039432253573333287297617406565655243563972181885091864174965674284385585833619415807328621724093546582065888280861947448662935798329864416089007800123645310901205762557779343529028512642290281875234866567535754782574128533129714720818964401098787737871750316182817801262134599172442818680423791719144299416739656319022664112464904352411200971396638140505995375490115799113667537210418421328940496860324971866517115865505328269664163396158619700034024119471286618406048083907740699831511964299842887204996107839789185243108973523185474149192110179459668953408564717077223154133167231489988552092177118771812817606618981341321563235913661982302736191730073526326170091519585952104316163000530750852837080997083538244414372686132870962947899365043863479265363784637629244850903381748916956406713357640988981314046349937211822774653819267969110817111091077898535724507735925161115565011173048940799310539375168651008840429101114694397790178598575672334464082153427377261890691957427855113166338387421279569643721608124939217638901343236566565846311908622988661536023548741752560746852238066232842747580138427514471456853146448904074482631079569950558591695445086777105002668772541757279281058434790419081582316778844964989455547430178654477427173688701015151595117021278199221312932591069117849392317940341498363694432131219693620132726335681843853152673100252589325014547160179852160112181212898767391205028155764919936497191355400212624149144701935266979120900923483425971001049394801126211033290712460891309242503732048253890756229730481029545769618027154985125676850368202140522955561667346841443830896326431874914768463546423769298090715318804206321962342488528483967703763495404028676209368049079281472553492939989645836024865830609307346727143359623762850310394551155475103290231193759121364328731462878136380048664937454717030545734925164880099027723464447456387808798047806495787992300125813239340524234212340429958316294801984624875067538839140964867807136314566679900714927756620708707823301806175245354325338122631088832441978780861500921994686289008159842597157037607170290726002127523280175004432090738337988400409394262941423896288765857225418444361703130848622206787610787215030445920628360623713245454901104910172407690252805421572138716868349042900992428497953560511615273094364210422496311321951936026324554594370964824748195456732543746624076440987449661961417304535799564987613749151079062503277461347886530692581143677523464819516817080072833217556603572163736868678805471529516944363808937396287509471964806240720134414113488972636767052651732120971284768664044636729003654209103067127962131995729510590011416112312663889010268513824596513990515662167104434026772089378841191065338824400029022894801503012014892748593765113549826094239732938733438856447515180383123950068007802216153177494817557618422730380534273111322627948747688294257333722731050238789032780197204360105373774320542355364903409812113032365190476528245333197314430814947435799685483278585037263109178362690074261326676224063004489908183966894960855560022433553437505945540888919382122419155049662751294390332216879941888274768794504064168409185594235664741424624203552051483128970977514909920977325096031738430925998352062541888838111800679192701026032430573535564478531338816694212735351303552432376933854190628598924126591622415862128161263212490966504074637430985229627247639754864923934253297747364776859958808856597095120612931865681177786126650899508553234218688811987929324834787840722058872787779189739080727749715315084364042092292945799729419684884066873342214634445632702190341106173613369669986196439908217598760798482107759212189761647573669629744181327704873582386190762056341939401294779554674394768639356295606716446770469762188736460504975276674788547212940937050091038892714653336015583003949672461138174732915743802942654180720399377861862040318669341870698995926813355384285711428138837139242658864567158464755217032955872436734508604931067962305008253208274147400483481747089651470445320349106312016523421477523808768091358755165632557794329912390682100044109000530552230547991533527914246299493402937785307238027024264175728656966106482987430673496345587261480544512079500468067776808410745406433733973946221769680157267047737891490226137986791532445951582277815768615758534416027361350028083610779625497696095803516085574827206124274505707921581214962062810159311438217797837174813101715550248996991344137619670430556750303084718531373628085213519289199620698405013846184905932021838001793581547298363911461988470588806213193784929320775844642142536589851119186611868457196341942254936841990078023351819131078491056710911968075504025434409436503808434764673053449640692137555121100512164173487067968040392088471686997012335823751878492348809545099661953289901253382012623472172788553547775634722310344323918655828679485046618459948151213579462500791532275437419809259448172401153363504936647320134568242707184219192431443028300296055147640066951161752324988049461998005683361408387403185604251792759679075430806882552632791478516998214653185821751458194151953909898055747446656247823260600415132768510856403724564985414484460456585761418970531383807227058067879735026373982679627043464311716596940453683020176076401939751135538575713303284725492553443556337344600645389562191215915960342850548615867416385717066295477014787963420300748941354882010708516844763372923795324585037401066080251087732898674957168492499928005456467286422120514508484121879872438034120445892073709153033135558698606111450732585076817367000829169288311878602918529463062548797993795903229928674241492884020080180808053186705916612159394405341748989723529139754160412592060101513544241833342184117678994832958680312801598102935766740404442715417138744141588603915818249260456993559866819039373184825856334020502293752050002392642109707952180739563601958151541137346838493172753924414742313857496362478899375079242472189293952524329925083371924023947768682295014232382125224713358861161125490462838944777347666456238435376058207559703970309401950068109719385215741342438642740122441776789868278734450556312962969503189671479433889727398663665286697901524404185047492783767056937190817159624322157794650470780887402900195748977431345609420257558506787102422304999365083243195264232841617081267971073649176441769486646250960778912426383415049070905429973091536121983506632320305927674873131683895255593960039092009777161400977497032639676615359879189586607711242877290424043671921503240062674675097977423384269780199971901741351656024116528496557221000716438592549376272416766639541302510384111512420707652628981506498776943738908845098161910553280100905522939438585986682338314910949047757167184987483990728566566355766690194179870371308224105447939357016435137921396727394912665891330162575670152143455626074692968264137079918351121537630917120605936805625200925157573317905368554586290069343843865492213343457412410555573258540441481663053691228893840282593081987192806460256971869654534873935852248202679968034101233631515223346548412516499014992751225113267994908648663528648865023728086922273853188666546449441562591099511407541024109621529855015918407037194060511523793784367950800078690174284249561278502000430257788935552881324029368775612583560327941508970661334041978835508295000075036458431771238737346641750087707369374525840102921111478110621812588357380587570758491604570492174842316547751113429755183491962645899288945467224922837608354195170717167840028138429290600437130387692809810963873563753171057849705773729937720856343480407025341437081445039050595036609974483154964106330751774884445648104904535921139581327344463783583487738605316834125588647749433893626036594349324457442403630039784115362184917198231101586633050378057896416260015878415578147473675627433039630102605721788670871300823454747892824148193369325410683102189080219925540319850471772533667429344033420066100204742470043146723266953321781068116491094968230279534873988829832497158927020805196640578502537087460579342724966247140889145206337191751502458765988956649985976302791353387799405068879987025531127311541746331703967656256491624342584351107435225947823655618033512043091725744773718711598778956463443766611905334762336551244920218031305704856919135570774616979563223294806322901997117788880855478629820660420129510012119382388667432332524791064810064604606310692496087848506858602934405587669022537561606633089116072504547775798554039680868362051841821514654651903124230043389041690946334663244014005853825310100838742951697524744384644708171818640443857602967555037087378448992076010463480137982293650292514199195765218685172570534176384193542905965460777377661363995607114777494646326292021301891628654847828926996915264275535602468921147776748086617826612834143852340014830121387292820650233964150959639546581804018714254543024922485705265744724889554011187453434387042345319843521692223453568485095145200774590157812396166258776718527973299115290773509112949798829942313043602520624714159605939409884924029878490106585925768692542822931990320024729406638123098979919386302297479427198312059407893014211667125809941156154370561646065444219440212255210977235186357719924567247503623068247618966607609605579102404537660782577802955162974223885197385768479572133151578387734610973704863878827292642419288194293626811637620704482155580866428820259570818060081225519653491518551999155685381420406176933589661185072148239846988444007994631079636331388028880414171804185315948342681706970876734567824363283792555849506591241906838378559298817981976439760342293741040838020623276389909913769064002003483383344816545779029591131118037911671725310690929311300480110751657096945536851810060708163513116153923912501149780992861780666178689987552792458993200782313220773075495032489867120498708293994236331547440358926056988910012644422212770302894287578338934326786638250903673440658164689247255637583581604315397431633224694111593313490181712345695179078192461623155484843314667043811355905136229267171061642378362249277730015247760787821834535078568354982091532915467535727185756976631567095637014953284522224783935012532675872989452279835540086602014656162737188592398945416315690400085811769286111593191283407627723303118738677978631533008568029038865063695596784351766670169465779643778066199303015236163447263625967846892421213097243985167438604392865996429701025159914505842655570294903478639468790750639593084710716691174205684879803328198323090313489627630376534050652488287653201391183992241251189275512230625174931774310427494126454908720985614874121252756040692339041035727702557599493178750406807912037877234950568397222981334957303397934436673332088982500170913149252088655601091324790040265018061351631076281740140432275909500518639752394599680891911621849862404957773583091951687709959184218449275522425880494652260238608142569217642166645914587173704337372186903711635771358474858652565478817906266519352444957163958169433623087791803622603078846094797456244792904454186369413069978490383189998071715568604008029503186388126436506294090730105746504420313618851190840800334126067452616172582775515817023764215967639189001993392375175883430169144538312424271423779381636073953760703873939170375973447900690758227756762324344721306182583869354116089943281076334100533874281182316527278390399114477061202047185097475221775997683036295211305990220748303869570355057398067742142072663725792329832497426281995385842214341322217934405674733923583698010311792720095722171391666232065458098951818537633209430390836502857620674508499466559819810394643870357256688312125107092008720875432715474651463951648589913832975782997741024980284904209973289027762094186116887669282448544834139991628115067833954789084813918910152651836069193608755332749708656125475114769759985671123181256518000668133818307054510833087392938909021866223770817951297314397106492672381331795903692463465070156142860201979734012624191394684098894469395239787852168809853666372513845681624450173474580601643447263475073028623882093061254132080981839172885569065986828712928566190695674681203910309579718588671116406500024618262462876570145406214709756172313684176366007762718634050687416782587877149889907762262596506565334288448431813269336293745334154550624158905878906060743193424362791232030828551417800318850737869515444336376756774114316641676374426077172922338868155465075670961248524741884085319483496772540842199666653588043451939802238128196997469615604634158570458491534484893068756489104234115947922749214056518623141296565704038040132467993425167323502242910982494786303645680068578861567968359890947246296929425939176656382652564440542061058406993885868188332214947946569770717351632915245654040349237135496285472004277527038775817974123723671056926563754184244802421875720385461990578415788376664161708107442852874877049385157530819596845698783292318611228558445001737046046181425071136866441271260737677331366792818473057998130954137240657241350091677164980329422586509475757959054353851775063806281906121041257588066556891773481814944324661484385776634620849266445852414156620148846126380930931539967097388101949813228009934488862653554266181190870595375445204379882022028639210649009542253295654967592313946972246765352697174749342220606867885284637750166862740351155002885045599563631763036437745451930641880591076483849224593850227612586337213289356865800716548457757400528160603978362523508876697335520190187559931516359094666231776831919205187069048642254683159423766953286501792202368557615748260857632601285534166714045663076119778777825386178424014901160265712153062421297988374978686260890668925526984874739847190537486348643214581475491242475637535030572592177780755976459482264809811521306651836219680994085729075608295918142694776958865738625687341913530112915660189777836831322077102413698488302877820240377592647462046297131684606205506871842134362814873226429500316113471754642605460590532586149276008402755613131546405367197901225549843526002939689586602504267156843711787919359157311740125117396787363020975000937863782710442907182195115831765048224789510275913106720933299626096898862772841690113489199998342236988538743501167431724358806999310021798001271094171079647648715422905602300771135994642589936871787729193271471922401636966995814340027810558552708728760605699937338939823574176059295861046497451269519612861839030892429273751607319547238527237079600679417279552808649603895470184502901028229362291229311443205877384510336002460037232264388504365478623678072764357112251140716254671817790273848413179120493570932916933199010175351760232579643572463799260472518821499594533974841734822591185952553347272219425795826148045863902808063112448576348199950806990325060081258864646269497829115678972207866195662706985152071634683350310198400046090438274755474065583795284671224803895139576000564501145107457833135051453093144723566239405708000370200526445937468455929671386276683176283447405934592900666858611367506036392178978934866613437426645119224736791769362450865680871802224999664931522722262619540854186929197168133984632872592431235547242828407521198388216302706990857926065469246180645461246473242085650304376518857533277813566523928532090746839537628080235400459344316269050302396128017787386446544579553486182714086969399135500250222641192294092305700521821195468055546846136962418825099739653436653073651807499978620106622605021378220887364389465377113104749274046237825970708495776460612610343119613179155147639998727548382982921961651740597779529620279047849731700941681016470479083207296170054100656615171173022045961321555878562434313165218998228056365339640363667385281739413020406135836549015185717175143932311502583603488150518448719173705759617657888003299374470741370299130763031773620935522902586888187014854158943790665799639911080525741960500761094691400762475697454829339275432030406383942382612996617622230596045368053354729578878704067994222780820736322292500293743130009871842665470896143133659041905528885610833798220410183087490699262268720479899401121775059610894928255802603101111969370922218222076960082773430007905056602150915518448200172908138008947944669650294327008307638757935458782641312175686002147248153345618408055344483296088912942388820653366048094071001045804473740788092158037044532136762228191019701477550166476897331995926395540578159522770252154507798287504979990499387263788444533889959973709275483844469811824910299375015452639000586550498546912160246018291218289915399193025301273879393741741074210317396189936251570891589873327783982036204023111490995733027317266704757756971284258646558217607494319900956204752244505043985908430326353812740829424009056498732460580970470436416970771431756496918512420501032536088010823955160262045784746228095688733824601990273774774501173074458893333062737386406355505482993945739596521141811452443881590309129928437771630631513686937882118815170339902322577522252032156736256819487121250017788688935621884389420578274964989559738481850578683644667849673927704499595968062144911259371142063786977469461667637957490790562306149958466648931418920734569105605375137829023765026332016457158445810388628170827636031889464613910172184006643461291793271743160367169582638721926864349000772039869051118829085256774848486100296882781798437602663736179877097503806303145454320715842826067730972703413024183227550204400084387878605089868049436684529651572987398193649474894010446838901880698505747497205117012978794582226637015505430433549359398668737757483394131879412695280523050178514406252086200679054733912301332694843453141339386887185335525751364532244121716070304428193583385075260371425361740616534941574869321687748992878362676517296304530412137880575713862018593816618133811524299431787309762392281495779897461657270368714366294377139262057047539352755091265147171134333579843943341612647137251003434132145155168508583164030822769717613411278440669393817727241509426263644255461809609718878805934310962871031026142023528942062079863560334336670725148915252933915600889326471436203497991225978464679140257240223368559037885387514258432920506223716951354804274735070006227991181662723229451249403111585080627589079918023767077210771223721734245638431642475322900968450474200694351612399560559295492262189394908348490079444281561776023482931391406091837566358859670446540856217804260975861946493189858031182929467398512502049761581694823961018575781462999601406949425659785880542171358815256508338577286379307193918246126565308954747439811388050406842329742432977741896747749486732845457335835834307313858255174168359913833867163654831181724981871531488015839457071342033713201903142691652621723459697719785156483937024638347157618675044473102115666011078214066328236225229216721134213990321775020913506456033471492103598469873574522157239136449212142672381499081784971177504044661354921061833975901007747021850717791470397037707998681136328579888753579115890980280569858508888882756559566514197275931513072751989468419116557863143073924138691001165373579556620461173544506884614320491905012254785614280307552830601423615894349565857931032170796968957973885193594117561692485414516326251519537807777345531011288234036737732464788390247528144013045955766791625922511137027786761710176078988473918386289690739403642852104495283309051330276281743973795205671005955181450368381020374911863285114181843071580825649159003418720464603463432479562696479127798878190993188123184428173138083962149705886246129931035432997928413322749159078882481838203964374894152714350587483107003380451988492252420769701753210093474857074768976476623069794569263363848223590257820338014000772056204009943782719791373926345075824155108713377824558898448878028020023044627631520301256311557847262126280614155008518218451428305958261311919452941863572111523324128036599573260534576797920524548610872868258265694957521675809897090677974508134826548016859617699544571647768753872044564303492872610253566969313075458942097379067161660254628428001624626029423961868409799364440381657232777361733792663828007128559483014764411650351146040776286240427166723351390139543549918663754791098778437409852537636901716200893946535023648064714693649715056669212078126998750096990288339411840217442242822899035283340943823786382870231070380842469699596196738641845231724606097092399431072774186059455363592766654214615631978450672877659036824877227312709534447625393140624811062055876080820354695065931013091896296189071222309774912672919553484050424221899558372603352218369829072896700909655262010140367102147991933057526358650127679199946273117408021797712982609276091948754981272109228344116553724300873276596050155556943234808804050136509500641137336840403429960674133608227844362569014558652103094183264763085616175371577413992586264550463391967393473151149862833651694502783850466124489568245525944137158447267292945669330692399401923221868355377001848337960260375320451756104890830249877281627883468429774383070878420859461493782348263652457294259851804726959001580687520992950535987212835120556211607684956533016152859840350925872989426593596154947359175504787384773938856092003377002316804426490374748339272925960900345980912216462702766528720240788201704568493209411243959358748546158134520633437948591244324879710996064764063465148760676111345899993050407108147662266909218671739309577992641802782351519918974664271704451407749409579093095188156817157182405309558677429015695729864880145531983799028421743418887613006853330170148991539217628707129733479896279417019153240087511266124218710872807200724614188120458681220094653706944572564201106032286468088781775597371262055904378751028157982415773382027386982377695754562472299837823614074888477484821213620839626720603248505721716407323080457201730288266983527377695022646401929398402882149102409948709713279930830571145595265393018264720823166230808891225486214342804460006386755925344320832707708899153481033469723860350894899802000231364895062179915157839052181018510676216308716132584728709385544309077361885517055873402776943298014394166574052166311325007536712360945008824796697969108069361932591435645797624628486021024262140151172174213913651023298238954329878981451050227154128519391341533787274818131103642666265742438270629888427222714620357823868026820924446437469070463548054429483458745504501265926081965190120475425581991316060634907547184611369144944479928895786524398894168705521924886217096846473589132551075604726206620925936585099826762418567300832029460574507882034567557324912722188125310033304155551663077247132307382238854383179346732195957876994672377162574770516888253183788521963743715770176494531063911179861758340479475888402070688834506915124968108843394651991647299130441634845256646511546612000836452199950474476745086587613802176044913879168667783486790144296522681451944406184141163727880625357363771244988235569593275132130634411979890321677647340710523717954196931567385448206527568997414429514405686770033495821600730985569599215894775857917071619332944773059536309914247265254344525044754191256233548660309753399473800686628757106929361101038059880173240846771318771513778615881520595899778301878551663978139625708399425855149000656180762242991369082148520284819221118426371884811037014298743377980713372598866371994167927514024281099155228035003826223144362813001274557831801223675118518166284281184457364839018457789549624569429722817729786101557772157004222513493743126251329225995314493878885643100761883715986972542563363777709165614481635463820148322355713865566966956362291395824548639480648784699182227971142833764006344646264926503837360215384555575287380501129176513375248963285457495179777962925140474282517667961290895300301770345240215105114129194760744661378122556833086432120064257952633916191184281350663161434070984101672998258970550730916200603956175466675752055536634433330724343507961706594703297112153002757465633193218630000902829724944378664698967252334096794105946568669956457819618944219694292904624819650411637458895325833463538017829127408373340364469239284033091725280869379459834684636927874788494327351209474785343922844987905508731908232351821183858901501908111173671712058103731108343463456274363871570573879188911696208436514119470555537286491109787716746388994217848736105192554080128263602928430320668105435708493016235716322663267998903227187865596438602946182646328897930697613701600810517016266783879334047769682742061941289006657708369638780665224432457332719295760619160657722119697021498770302995540296709291118784919808586536157311926817359875375226988804957632973153421380926529843617974322301841392470592813129349990981143575277207763908171306651681775516788439920622434967900734714594680585197049194598736814244512300198283058199784254703100205920430567335757113603668594435957675489180315608782540576682959667318127134425425654714394850264177780974582337287868725458007454783956956153577071494862545648639955440278756300183713595786576112179909105709424545971587198088775656629745741067186875919885691353369627260080625476050330573380839300209402021227233699224507999346617735950213657610472346983402441464463769596820270281062004322598035459694602419204382816566606120884375985440702481111199323390536422571085359541215426525554677807004809502042198260283766068148364402732563991540109404915492041366808966400654361481131181029173292110152386674278688562319129756001455870865822241620702615494315416112461751660911736196888700501415867289592721681748104255413150537045049715781316290602168105906933525298571320574216320382141770140316396557403127955954071540139508654212056315261187621217523306747606305616237165877408948177603287224507500954510799290379587947167082047047824727149216349031792149759746163979914506016735185210322839210529077828779459573147235010174424753221458059340746762045415999575534498603811260987895759684446978457997773327321912588138614063463520026365874072709118795913505686910072779858597173921999699268154513154594239423836518159252564486032810019698262625531452228620832262783083755958424549549290516899239473781626715484052769053699732003073487788199025571897686732850440720234566071817975928292538290381427213221620797421598976621690191751365296272312002340310821661044363059130132574679892465693696905419888642032335542672756105142903911798351419444792913294396462536149045622448297649967979734357482647600943543994704698918811335458773989097121377378176382521920415776701957224012440171957559316458640918101119039332916007818756227264141394462619385539610202856016162165879760663332177214295808470119618211120571922864178150459231774955796204027020212630858610963797296652887052957849204367966435043126785393410685925864316455591020191316931482006408867839643579161376109334972947424277257236719605347781151986414609979007206445227459541480579704503498123197358268794410512285474739234334489302952089293447499841092944486651051694049542865826771739733950915804464938487277234436091030053115224314129488323937046779495492897092307529578331482159517710071039759265448993417407223008720868337798122736846184965865035082364671388199541590076686519117196039356188737633024842636020648871496837153855173529594588368057010290771895976103691845920939929504800115222244130812692136460080155010515985260578531684423246917771089771596228796206212652345807772159887771174428754142845341681974057614705817519505363119618455236753033827768868389937045599095085723574574635377634575554234654653549649808478295283400457333977153843226970480144362115436552302479256453635393991589916301401682439092264048163056375068453987947995867863466571904856454558126149589541163637247631572107242328410542469715892967941748961964362951757982324885239536818671125375441478168621359790048995541873210315409998261844364606946958037646080944135859241044081927854270355490451473170483741618053486392652480119638413303288019528889628439621350986519100311301753426734776663122761172514977029474868076100943998155642239961910005138751118625938323021436247245238867320874262576617510855543970173927444620435739858805999678777295744290359994576046617830431059784538657730305074342218441392577479646127683287836385270551547363308311785451163348641568949949337457804705770441110864434317051068934630620566878992029412544362390346935195531750035484214830856475104188666385587281493481290138568850378441279345489050379949524106481828218359510114831838520638314384331997920810961197713463118826711060088676845343681895387135093810103992810189931062858580910783402140567576331575441438871804351652729644279429269106595171591574988673301721096964175433335729115807177008393156247133744194419994695237727236392642013836374340729787055090798636309969031064514911667461620214569210325464614873099167985256969280297735608685440019429665263902470602300519715783441907455284782629858887024217172015225763336440857912329670574361320883692928417323165026710323272565454614876221062299300691781738217852012392619191065624594068251015122322508584756842722701835595920081933004514386258757540329474425603251927851329007950892142009754703176242108550068598756149353075067124986648661538573992697414988396400363111116251925086771806789185357536352119243673182792113023609086847558669034882693459006560147523791810691387077780985407128813783601819736615034679607792263024145754681132166097631716472336379299677653914008954971777447988097583246867268733795455338387641525663318386337329117853391620095777436725163014293339189681922624563167364474610127495408264388336111379452371236883810394371843309586911558580928498829802775047328342069919074226299364874248208487380454871718020384481390547656660526056389049581251353636602491731767310006513946321492180150945902287662548483414843259075907727171843869636360496293973896118449355640186735203399951553711406143987009024221053520881096453906066745277713819478428653505332576982434143909247419939567715098306981737574165965556789833450051704482895586440873527452634044537663720132268525671766379795613859294387379766833881732284621403262436234610709090198216459345042561199320443646172116956997262494509730355155323333565889730952923041191357776993018293935571573165713602278908328325794063408436835372951399299500311311965260823270986966353823299282553634572918895824715490544193245797824916804787963913522543121438263465036741209087239285070719725435806591638049848577998876855143793862269607223363119285018299427871899314105193600083039834264093264301312158612784929388344037618432472317615061644819158990621942700142359337406686866809170091478255881821581172612934749092508637306939612235585069749017255540362680034413578402770068298970076104514353739660692934018633619150654880582749193487019319515125137461107532817688633201001616969108868343932633278780080525099635858995740050545614746925975210927874640253427019419082270447210568321306286753711685494870985358143364139290757283606361773999413830326485739233352737045831870964704502245425053301163941038548882562973877397011702157128484974433367717275036908323096351009597505815631726989767015928012751946447393050319570931586966371202042136706895484475900852360347501190102447148391022090066227764549975441031661405757332864917230174121559776609459526164496864211093493418191657215686353322632708213132053611136072937606851889563825055840408454555322976576070103856240065252081014846719484405360216225953122068864191903404940204358154559015646345439922227379401406881677728203127660713539750804100570474180218620959282795883931534352691779707936019710509268341268430360335485165754354394376898834309073704046867296119369143832139963892056107970934027741298585695560898648787355321182314318259457611920957600803187256938243144990839982905375997789321069542617226696872629399937358449267953524921506031131937036072842188768554618444610527223951766193107650032263177267503909972784582654949189568034637607632794978841483265076775311742477891838650591984496180538133831016467368373297594583032308739378489778836960893484367541168773372796520205161148404062841719358780600465336069599632736983695047288045259680097517827087680945375328451514675727076005393082511846693523179023122741352429882704393350854603400763735464163979043012240495240775944588571586683386406323826515866162795061457314494224901558153318124064748856786396310516612745374007484377619771509371186800566889446886309263294336928287937635685579975304251353133795790104836154384018296717522136452922350838679763353389672351450059637503929748656274386499074334962065163606783929950529247196931249205952251348648914602462263127195410510777533875504989462029867647365445611950784302126000629483259148022559177201076231494247037573644197037626967704395540416561848850098188523723990233160592948417880489600362071122457133182864845856254461383271159430105347626151880492501176150894314408498529039232269025949357336890952725072245685965761888289916951190836135033775706673297461809224457121049552474464882796131318433363046742249662444762394097962416403247235357489603673465142603351973462774027337950256947154112203957343113362504380296726445498387511749144608933941512350970097336195449948677686322086931153121203211217516272354878662426906271248432622284814808032387063413056068659946531841976779811654677618862175970105601916526895632480414063934072935688644743560630086686883459924852351570214717968363767008848784048132495025894953459814939247969536093765728593554411060190435516756704595883808361689779020458682502575737840168921443850839801222728432650287827095577591431895533219652508611059083273169043393046444215729489946084388767605324705854043921031823163717439544956823516407364542819304596203554223377308875980573708353397201596889579890713805541428836464012172035019582994232204057690137119710282453967028529646506965154676666126431670688672998368370251555178649322611319310684696878106715914755653419709605442052301665749554585824633318819106341445599022240060160831098112872923786998998514476600157033305492129427127792899482770075090637799124647316676915576444973788423135118604586631671584670884430410901919937516839941570661007139212912868847033512174484216803206700217836242992674028685115681798880723774482292290360907177529837337292513102755371716326143355929692986215176138152116600891314757069122602685797341037338893016518592872617711787199175418181750004772228508358902995690612228654046699829045062398035837407539391854797321553144452402577616667092714129681195967894073599261539711592075278581392488837939242111611888761634694305013806684920348871502115362304286531351009376880809776773765116352669192434529280237341985414386841331435459495731695881746759499278123557044091932149116811021034513311806203689326368367358758941216517298339330606089783072328899600490892155095770797503566115270434403797576113500889918403346259145549829654189784637674826038692646073774559405611024400620992626654613180050445086734346574351634908151925272360741743523789113972206147774582725725766515586229891429365498199843720283322580465955913208899328768365123025365222101246672161227429221085095126899590629230787812292809382844203869724193331025455662160397132885935296386956100922502984202954883717899889176834886348537661290269201499429953605954190760280979765490872006655794680341766707770807198941173045783520302504520501229231006190215258226876599051564547000766458692511630587906103351184104144657118199908210918964839637894133886712105357223481546101090690700586719573966517361983684222225066603196806868707235148813109665819410070335522696616778078890392153471928617650150091497843173087888514136457568071990789273372548316780394503836332192999660417285342521996016936410996690358269274788298042796115306668280432500599901047238525521567909337515433753128990405571736062852711943541735343553779411280480293601822163091483121007056009752404456768939632354038887207586919666309285344529540996942371687360795642179770835617957383792230032032745068155331914639135964636500549005735511637531940958294350009572437041444636275096360727212651568180745747860755605298655836773933489609362718573464627937334747908113880925131997372540023235473488007788839151155933426659800258222800697837679156240499320011224334575972861240698390131287667256901221651140674983444071935762962838795954999960727241091957318411250827102524134938050425265986510932475468964639714910213051767115665062165713333276804861391424180633819986562086682007457679158677568060993937469644429771440603047724433833802538250006360808925730822305809802176971096140125655258200443370748768542190515635444762831003291836593403261589499375769847742700150140743168205211119819867195241677563540101010556996657932423343771446020927031479358537477613970496281494258041382217267699395002106039706745703774285447648219943611167206933077473554027359321686672478083195998567863329846760810333742479529216584118374009956254806487479179444856915801644767223434900427572907440395935970684221887677306900089789548325040135324209695662616372558067691477894359001852657796933509370646493243528438696402171771488052363498462896096690928927221530679573115314419101934256847343379708897584039334637839621818777387364069764225877224249241371719336262656828564988931133976470495610002111670261802168308557300114553223909642949236582574853734994049285817906134897137551041717305128060863239471376858675528429074991439508315242956396229052167214916471800567754940917192195140627112252603235926890187298149293943622923816754815715836633590895095265940727663906692504321251506295927503055911711115841337472755378829509200699642755166161024061641520271695323871998856150414599920253901929284376789556979583429716896540182198004871846070377317425099821235837540648937740337470736648482051702066925053504677553714136679497603386348717135780143536294729191323492769609633573712072744277695238956951747042938070504381708652427705326763310472418364607887176894959419468510157702128771185666521396007074143070285713913314168854084912531637906391913841219969165361195455361466949655029137708601307756711614181859002341996902786184252324532149210326979503475264310898400294968892013950988059155917106131527764569964443154405997435314012190394111737764379262306929902701748347576587894434922345403689262534956830908362711798494885498068086729854064241982659955545370750177772758195571567992782842208696812486247385262145833416895211361494940309389363527776215453037735291651481259857979546127859153026502886649664068294583795480599176251863440487038036558519203371624761417023979327690942134375918286387695545368280886704948996231985197037590635819283754756170350378679805926294417962048555008750035897168327402944432721886843870025708373330071164641342894229619132092370990188404796885082634385196753362140129856731930963305928989245548974530357754263082280487599802219584874595606962350779705411466003128540282842148622269174648107382077444601269046740386868096964922863936585760756504705226393741683699672544473538343675302367403419191501773626585040834265797797075470063340160179374785208229934216606380645206206449279875363105671185889959537638748320874180662569111588584849940633129759938184680831860370574590815064395435735542184346787553329781570973609669581533784719818373250289832073725619607960693698658806870304314672342908161153476886262667339054960676971613066851309086392488247583730766879262529178519656652193724788106340232715037183777473986378734812982460448520666636513665328716271574217825244566545126991409259600786904172113705072579467469322155249458295121128269527283622281187051167988616799998321561154698367615438102678961265514915623141325759880227748384129826444854433240213848903026091453520993732400913082031616062963779686792508305102792535927949071708528692109132250432069408549162259734568259311026396939073716333837514015777096411431842764927721471490892195466238850741370539693175734665344109766319970731264732654811482890558673881594926774305989183916193521769828445798509979854153970531086880216424428734879981528569784747185298529239541099502248006445971947170496090011067824091246865835274218654215474910674818669388342742588371052721516064149859460199470548657880674682238286755323841198819536671315205768898519009426247375835704086394419109570605527058414242318637754182536110248063215859911374737721534354963773152350233728383692438488211440518302306051784233751709013226333135054445772975437699063451084014423052596381190721056742850636803606159060032147289691064628106228793789277390141190414662910729127138578345958465512084263461598720380456485676364852007765448939193229866090444189141397148314058769403936960393996824537046145251043981937565247652035182619028023954520357994172756915263130625785028874958921230652542644672737145699639461029944874445439420245767756383742487531520226744043530239513194384329072062381155117491834977805343904136566971178202161849490426606266202635937985688209184227731201967860414617716120338300175756607012932244207705066354315268320496461992254839262990314271969965062220711720522930388338358882198402853341826717308767823139900129332715123495111395343518760318705921595144876978001613687162033697983474500651683387707624160190569875951397083374967576148988772737945947763631255515524526156957131283622894012369765896325796264872283360478006371432367443090460621366015397810284507707484670457646950882194996202893981469395320659083523110825347753403053234153324529272261658869954350236242548585301944324838181192446131679846809288607918475231412693360684370698989240406398106428627666608697910042903016617612467852902332468918307017898439296500874047383974522143924204814090481992171487510958688130722189277263239678010748825513322644933387462179286317859005083221249862755555449412743720852057727148250788880504747744855338096812116489177436728120110208121725815344101330444183690348524317892590817431055428798282673175132223650994361441902180784194592567573598883009249091295401785299994509078693687305985651340992078105970292389956636287996619698720063335438862456287296031358256594179041370884316346974716589909288441572532074817549715110753760324891117149916672307234359346870261823414546244007066107918951658897916197785390816902945753330541558854646732047602514128885962040449812266242223542542580817758152163606062804982193973785268862835931588224493876520061642632372669874341505565987679131036526544874816492811542171701131589107023948610490286525685989624696018949835049488711106066894052515759484663044695288065283165428463336817956430845701721235002641356208777852811957954157019950895584271254528962314616239012797101467179545751897906929798428824750944270489515904463753076918676047579765078647445522544575549247020645125723621737910695009584670307973873708231282167190817960040945009512649360394237906624407934554363254428823081940852998871529345246439141275488383590624254233010696624894269794432049514854058352201448624266393402072558057387605246428399081706001594884759912721494930912220643068381681969864593004172365796635013119270236362180536078256546179176883451652144425910910480508883276329393178091015714213435279467297332224318918853884801648903091212626730311500901743356386559898444582701509527127966783184553802073718236171663950200988846102050629525731426563151950849576657940650086894998834245485835850547871311879632372067477417823323271264495951820173537398708202750850300303744485376104794441445009873700830731917671456131447230513155568380778539565818213110205322932261768216663064043591920044804554880809983342265410541905587727162859235902520244779844234756941918871231505915164615517727639257897105855243318593032889947898282709159566125499306619559177845809725689928074835796999348878358205549898191493857460963235777760916323779917776220717155887748706708776037536174922711657903526785578438742717989226937012546481087664285757940679359797644410868021633772933415794457015364356676221658794124232585622349918692695545991610959080964150148173486245064764418219232683045310104700565341660783528768037962636847722112825735101388289180145069646008578965304416297088192693292009735844470825878582914755601532460053090052010413730206115675634109178958788297326095977531675202120642914530200272633808765262061549497178254407242428608311841864854546410069133670304863478499387580942485642427721923258263628285383727636193065578700407243244171013268497654815250221073334450867197318475038473518097694680820913851485452285884254739105218216612210732141863411736867704431610155153702990075672605408130630160533215450935611361336916782992253731246751942404410664049479156130300007866215919215235647661283710883871465780944484611387485425539640099800890796070134742586029242460112213795770213841884919046387755018342201788378270198115641060014595693540635125910071771804351815189710292886572548527615421109155574079810172450031605495864562474090257788689930831859211786812079920396202581420344779675618903255915676550215866512521147863532020877405211862109104311389670814123231708476654132800062139004952860299506620685932137528533905136370664390543643386685894785366279855620067213132504201052698850912482383987565644834908134637169378845049625367036060246109749021806589036939706223055696920403212629751338098531777577990279623607704117024372407086615956431888852921122428604342400695030045854339903734917051952630707418367490335380840757648265456467545264368346371348293304637104502619024853814095341054610133837156543011728653869123589030217820977054979552269084435224197617098863904347560921311578229270787638162523415704655736905416759949347498581695816639722781135712757950027761238101496582287131213258689020239144245042499492471384548083663715352911652993617785289200580326021163193101312355919592554614182476935573149899679387879409859970109339741049792203019652149250197617377247966220675252208879507141322582441242813525014587404447217916314698648496173162053815042823391534622878537865913207206028341703381730464757084195086857518991732896658719384382408863535618217950673099153418228994899409950651703943993328726053760539733739785056787525498283894610280228519327201005878177967821223268873566723547504738698160260996646400472332326554734801328682291715248893032623145542236566678419911395770807410720452695780617299908480968317371990482400503302923765428678778085778477205292143317902633414049916071785433259042497562490650028424771682477113247075105234016800108883704466134303350921406801916142383247009070204675150368855381259014597046458474554799098738508182355604321124633081712557638896081329886911498803464404805326925840416030891846859390255866287054082664784143500992457740333625625052219529988566980634203737042729919098831024285967956077218458397472807266208024321070886999709603257161092690168429146309298062227534775766432985485176153385676669514558033319883933840235291621017236231295710379967398997220400279264414573629918209255146905188044195947874449698225334760015263055656741282111656564466559778157767437842688768318187898668844238809364741200557815335114378989924827319659589373116295051741359240024700563456585075496463170199574946683953528611792156477618039031652312715753259726883602406482569330354687247067603533158810032448848990115866035293811545022074675156313828395271415348135151556443430620543319442969247149348398333898636844771409063177303792013544356950688257622418485163854607784757696146742630225644126352822667299755811131591105189077577935303448131934809502027152076478059520818226917401159759256955233709390841575905679236410525535240091360260805636250485645782440009043758674699430267720304767049935394733091556531620839088129912250567751159338483323735227030682215647504078392433403750564462869045167473437256734282876747710677111397883136096778789238811009158616063002881062307498921833208810059091951099511488556837281360081893519105752246534025226326484245949758521343747336530233883802596972417711348239326170577618220033229194751263642537033520475669607986329316995690391096224446609816513654592246295620682983198577920234111557448970317859778275986937450052037698486409750134333929495865171112497564831489194495107985744422110380156369703641912771952070919583384093316989863500492323641944648288545371455403707884811539855161016671940412686693924229822395210260156027668205526743910851486263702357307285085708952224682460458941485102333288568792674266241440970951426711539999064345242260934023477183252538512626793120014447715159598485160078305797483254029067469617008628316555060452310191620330732100982530681868931491841053495987415740945415451464818062284304407453037913023706851984462210267456575825852049580094559240451772964923405449970703042302925281096337591397674949045494878294351294406920979949021140149982638349810119958835251687819589867506943134240378391849742103945165559832457690714607130060933537501185477415804399884354172817945178449461951926283862290250711465188347275564212164916527843529784983108531973218118878087811953164021154286086959949662341702041225988251637495572194281617000118200492458254400387419884418098360001595567492959410888662853225748516400476910362954112783588189667099480420097312141285920217144885221188311982140796316285298350697590972556472401585483384313010325318111415610192088792308763582910416605818564304128297480042654542976496669906745501368240427719547546575304096538534386343600628740388087809857008038177547467848222751721483031885149964929702279391295068947809348674890483729226647279321369448163832677471251692944945397415957617541049817688889310385232533789736704232592181749057137624120746612591503475150464979820902340489685814520550429656854823038748061267313692468969835728285064129135853418376522683111779747628722176312328306778247045878132669245399415656350194351883492876714057752679433965387959932130278647419939671046991611016428724690451781834880431772036471703597790581036521204825606334149306665100140988459934765371787186939669518427313264421298690441628071154449080639348791887073785789798952719647441811954988480975787167929181387758239549654721188765789851678836081996553430698701330885291700445709859698596690447318939024960326327811280424320230973487704522541187989004907566444351275429494530962625364431849752391025938299050527277191689039826729960940551247011334972848399486697642144350563933917319383933778233960143327047234171785143797554470700387118836673568885609184919132321718697612957595874903662751356200908112263345650161339690312205911112482336858262132587142970827172148494190745887913794860965568815414608066710875278057788759376778408682050510013589384716174571259781750020201049730759779816544615513095129254596628346409587210829926655083942652416883766530945478072341358730628486351931731482209002914019080254546673432287982939800480265949069046596841597200733094294661216101950084969382272770042297764095971618918327725993434934874398081235338390393427112258576276428114566173883026952056698898366923460511519505063513829195997685140618423644109510490262291650773330540458394943058847709583963868975127712222499428898906881500384429124341123652506812486995093638113316026382625100328992682216876361079672274212775560141461519870423737222159206067121398435009790843878376879497172198360609942736266277827836854933270234916843001476036114981509311605059613388384901315318201789767261305782804719826538356089378775003352392809993636099338360045885388920821353281858513918505692933409273882196149714076110146071429769920871944214209720857450313522204881879070944474046189130248728131170214681811974611095281783886844987031921655580649457787030725124644354775485094137303209768249421617910113191120455317682120274877366849205252572070044447183806568038545799802791283136583716289653198849545288772612645727661065494149437900671556257667558715350731910784268731332991126706156139946288436743960141712327768990723162663305590333968520151722769423147020764402221345694273064233681852256975378516716900511131958963432896528583704997016507185594696158521350940223453592688961265197128975716838701730923047743624342799279923220534087734766512196213185903803659300960022121353100079576960286157994925476701156222240193923864750764260939358660135773172670227763705470120001118786909004723787969819696918429266996984036871309876449716696313995377335228035954176706383824306051157524752736458405500071191055673913780922826402392225905416091713080895748804023633594701215900962076973106521510385581204658033415929648299722897729213716187143817032230199095530153672237942539638756450344312187293375182279982372047801490024362434746747025802844042298165437644465674891299502111230581928692612040124360453767969341077920215452411543960352144186697222465024351094352545575336679615553868746176100686832601527021472565763079237927795286143631605869100275774111898332815263910879777601665676099864871211438310123222124230396667741903122136062752550510139744622255869744648835024498904319480945061094597675418714767372154816930050402361357099639524737707723148092329403369715024620876156429054570829338063080133886598335921724995951891612759338232048262546837990315265217992646569236715818305845498604364803640711376967733533294167698416374658136262519837009796712236135721217341319771853585059279268532862216351856673195671096068464576550816500544635429767556408666027160786395733767503084039633855872397868269210545095774701061836048515301931954249618126464509974864161774978123625288237923244569879245014357666564685724124712875609015008001547283835619054609740606061637466448593669287277936001679139329346457165734281207420985830486334433419973526935977221855172919508120973837163274598129847573508577644523150548192328932469792074197082410481619546166328713867526994645853374379178142978223269571171888069640821992983582858772957612062027329044444938808192552249075687009655606231757674035687530250062896777496275590287943919482192674111408528496602677405797025948758530770648109816646349024562310243617094016690084297356585414084862075154985447837061773816568250161094322640554672210850225842473928530859558605663865043437064031170743796012953199994486591385216382080038842755360533206690918866311551495907166481119585654284303237297712448160250697833362822481703906997371300529923809291397487945095322128958238509839133944541105607258948186877931116408173170810419780932591717853945792967627771308041368594587859200119086741199090406284204735917293827715052758341303738895853901661434831778933420384994833308205337751662188051623900275813367137416078341340924059341844682474386157233848934329454827907001654986145655659013220415921040610620037494566639063757155108941569013166259092527342611987771972072165273014442537406805888119292198480538640236870172903440386469511278962131557064987270304985131580304210871581102635953711446978887905454305174018137880842225266463358401093353522930376775226836317051460840278428513630336095402963924289470804132085516899269949731066061565038223392843014470820866689301621892769801712589174236498630132344254629122446227553510206104680308230819864477885049146786120996241320367139692089493761871018100619087430373668082348969641937814191564651838706898151884191534357245682440714386193310007979867863367119889190132349780946420226392816177976294920322781028450099526292966117904513760817594048365116905212602689092442087455618400827324741298380122545916588300604332977424665247763790225995056410573366616223265715096505111825865418185739106766209438524933978676932669994575979483809704270456232941824414272234357546304615725418110298884512150649850773381934378441279819838318388413597086393980138518355969852644374126155873832247808865399708381348611200870208150195170515269800531781481869830489966717039361743754719258459457777349182437535962683391525306899220175681656983189068587864992281887484327393797427783311715960030159723825532455199757662787140781567184514089613527055838130058536925010734620067689550033114003943450204754346317400433341589079636389761772773764396208365783656935590360417274829459681625731726393551010242057559750498830737621593393917443201740852826585588649567712862404083760540230869089360020536552340347904354715148719910018403075213388203945398878113857917035853488807738429789201888446228860682744018686649570073763860311692762685361195483045114785964035565645229527276361220167883830552907022261946537095450268705230498986334805086610443130700153851601507818472276252921302427785487254559745335676878911507573694092518648941135773444033879487702033772688929574872825588651508782571360410028803998864943097440206396185980478344411535050807579943620873103820501212858764412711264391009885474356563458771720850350701060179824298543334430193628800990690837611954185666351518131397313793915900127574528292201401011516321991160560993479092611006270761334337110892644415953876192901080530429877419763217257095842975312553327755933779839475388804320453136324760221651738418480047336502248136261993602028826114948077334049226050085125850628076869260399441721198522320777364057299448741452633673471642444814221203827139434400877155951056243753609154414999294515808263181346815310583576066337498379485231213964305575911958809979172039619900611206560036460318397703566982792876587219822694630542990816655801452563073511993587961955443038480916492672181350608822532920854742211597674783357311993349289826614072404155779431579945449386039704962510342633204729034113167835955239830680348349842181897949931206201147136173755746764316546098106877202812368861757018180277023605352263443514444147821009813208697937810576158653924497179786615322125262381659865813743882449454706331256128696425672353393214752961864220587484403183105250323012747782475306363673511703357802374513961024903729289681982747469193236859130260206641266547793519386057854957158328222184064115195092179508531132553964948883089112591489869102198423083340782357506711696138304878837105240561506949431495474415647253015174575138226205984034430057514107691990841862303003380037066818300368491988101848425887620467761960418442197457813829387768970193107285398729120228609195540758868372696842198138334876311077812581292894655306583021476910271126906739638264629076609760863901854802995939145933729855628224497058404522209521840563297889155770443440268667266370677359930747820422074827982755387824296502020965713861027126390192576161826231105847639248208318624031411578031204442579724838096252195335945632048201631525816558141932946977992661525543097817017038590795856269510258632000645906351358677464203966799972320903817600461794691491172231871685260121799735903874126714423001595762912875579440359609400689764855416742458934630868041455208986025632785339287177894740477012225258538596476622955020349149212633769107807525066792824249239544621345704986289414507485586674060423417591589382981783773876868184995995348541976366730784519923100880208455806683999451796040193750747487962024191205871738953925708047274885432783772813970380401019639966665423164514336740314719050636879369610430121735103237873187321030593201311768916745400173060239324155864611070923478619095342406731919827828047086845332962621497986497273391301142235737880894329872625539200816212976280903777557619109999483626634899619376068350812710845755827978440525996848206476882034044563233560534911490168568745954139527884628431435420306945385946208997153129861534575451665785171451881255499336062896184276746665368610028837648675102340735821385275648349164207672376034340056667425446560546587988055905353446845108304106756530576381212560103499275713297754922219254737293132390498998499426379715057160317088226099822499009331835157674652482512341506393870586726443566049372601417671251985624072308641127595361427582281825832925774411120256163586060726818447411374221463806905585463126630433350219685726892133503384619969145952484183289992249106004642896036377631837707120088143225531756770158437832109875832299945942009271967978159482204762280679759800036476614674782235345957346417398641004434296250370667888751320990165448947448494089323296604894619678445947275678265343345076753801520515849216878211008996090671963505995402195615477424527597868870591266415093161097491370021978517322179522984693282999436527243484800570920732718050283226571461544446499219524561887138567496676201244062792026124767936047201242002037086319124888602617780389104561419146661037491147602563915951763423925205037575477032823770221281426442208426893656726482288938788935712649282081874742168744247346614047901126994619372144556622973124919254392311879097837851238522096148379737110761040266598038261401360248977843996527275721561498205619640113346343687582867481829955035240960738399314596961535619290879737066502769178548119455756071174135320054819743416456800804447713259888732158872449792812335150856985224365632241638692931739930082129381019119046118589124487192498048068920252648498278968999414428250032302999116637582544334447152023676027470981077700133906356670247866714423558081045811506997493295997152444340060764045151755321461774981631519934270098909132247703666993924664120338084799880199774027343537146385517171937738232723947575923579194305877976566758275207398895173392669366035388063544572677462366471744932723275902708271133695739312668633754816684352931869872611586427034814237077942299992556267831272388237982671369875435033696299939997948598919778741658841045746037839521327172194753401506818085052425620787076830715675470209689266341227693165719501126940587588871076431101966888153768251603752188354416575333230861543140724449113907991964408619772192457483189082895405184191742247660323763729666537232606569482973192697555058145436656825526712089270180028763170611733730308786385150171050696647706251846006198876527265200363583914793857847286704236529766564083516223345867042619219045829199530259580838680423005154858493096468488501942803605147975374957872565226263215513325293723085978860107657937851686167072777216821508885359900829987442104812323761315973537988133204654290784756546167048904658114543747928254645506129233136002417452671150372451235109641021591239113297477974685216274036930859995421855554666801877358446770125813059824469486996494942091991045289000714106233696813046793706772747470127282785126230019852812404240406631292443863669302954064121761562386649095283758896274664034027925422226278304998933943196425094514087794669177546077958383758037605575737836711379847162993359129957391167855258011921758983712487298943643510869067352839374510897399889824925948814499427318288558263200975173691755573523876717333212637690801870394932232084862605548196113486884983301404310566805432328931286191559101839312173500767522782304883816011757696410228268440603211299942116976062495730596655088446869314309676196892026664552398863852742347671007705471014798499678313373954011644277829123098013027274610857683735922982634247776486892673676056306702735756772838008522500983882921150660042464597702260715385067161402408287210128069066646091136586413847863543902358882572569167939850100088526101716883970977891550543707788874240547325715676555496445200455998834597186808572502818704374485786321149865606658224082916506313206296439151138876953300524151231491043313175555956366956999273482835277632291635920261597031921582023376070594111885454107581264427500267515210452462041773190322703513579313957261918822839859221917187779598462832081778770776825987868385223107216614344127612060029353576023800235183061197102927017987814900437655228574382002760910390512540222570594315134366380358386945239893478987956348802564150848416986935308656317307168697525765283107358127903829912040371140279361938100638047909963138137410033060636876190554961927079070773639362530249306398416509773258960261000266245507187139954210517429363099731990111157063108676184189948625362166799002799199870240049005026256964113777639581685257710709691782524224607900774686762529636961312078608120015220869861539263347229265842038336868516179548105343408728319076655275496714188962425393335609976198537257437577644777028125945660367276495584879896375663459574927290756297620987128768340017063687543016550696385440532054662019860454001161328553730145101279059929532699503529004125414871084809691058821177805451187265165164346106563225071483140457277838503547466874924025576693543964558550316229418564291385666695458524224135515854903193481460967485730493309829811564638397133248196987063662582627824793846259038997396651680698197171732145529502151455422774864386391589351333833639912339882173441024814862713872048121425864599681015927117675226829959081217376564615184064444329079701724768074847598276788432710386058559219248799891861763730464055396619671247044929837232511513441391284884692358022269794380664274695685551015923509102762662491448186840189832930936558157588191687989843771674602880753198981502894268990763189365867330040114735378596102407489628082382092803369955622923604117378491812404342062952248497581873487237683337346178556453747546774280551450303689685050853142039152392707365911878280054976916272074502811863654871366739886268416604155883438223841497234386029377303788216916411985155021270282984070002311446657037353668215942960127636732482746149050956534967770308304049602427581312494240461222801780164282872322507125387220083860562239196730877734018029922447331373952543448901320208274117338733778804941843030838499045287522291217215791596536058405987522449088928860187808353654507976965711823196792261250310819052468264180418402864118212706458149780951297732317159488108428733974599353332015661923599485961708635294559495771673924491987847228374027940327202108865937620889846260514103160168912987685484044699123609440850599298904146094634381857886632784425817322614020730627449876131810306637799036008822319870666789701844239605655235937962689842978588089835871972329634522951334905254295884330274990139919010539355344160755713258140719814463999441641966082478217589604613764140295017612059164467202133156507970414887887708831650017794119847872070170090686353595387399312170846584872633068641158166352743821392964773756102222945641780571777920545652441568150274982092666733766628877940916355152174401895405794895049356020104482954555258877234295452712722599039910475486997796377888736054246595932633423081439536397107894543326122942393211803773416070902171815605930604251433726319265188160319731069562059929731693107218495806715043588088249143095318916402111571491235661830326189517623829677156454876825144125555722940165127345485058458444481013532821758447140008202258917200968416707363955117577208464090519588394360218740245677180144895171052267762645270476051230369116170350928999168229841905278707781355223428647737934051792595237355159348243368010204257046857853269416198756568822009073482858500314121799725460076258080109463228225949627121886484764738345104015921261657043105493017686221045259010001892080672525921771148797066006321320598829127968855164334629462401000916435948420967283748972570690334832784833846531003064435070011296977340927141932485036991384755751381415935006439233135130444372143191955894224448715128298638370678767645390545848871230824232271628664495504434933868832929180265638383173738366781926293051749741233851878597077063987074083083113739140811868516926458204407826354481112896042580124458995622279365830582435937252943094617694404448140599080872251370079433623173329192644755250929019888231715804348880828133425582619106625853564567817657951698432522215924772441310206631998444293604097035986661200686255250598692007861561567188439349025812640392066828267959770386491312256698981573735974344760355116738948475132682444248699889107141246778031766190464343243620728015468879282415207462862726318561582374753064154899700926869651137936855198845385741190438888885599761363218408743338340665128064967131236503974488261195348206523625081886820150282006254014745025613595607315091320187881650914204892823250643578744373175555832718149750884040244726568190910956839108951563339903051686801794653436326380299692019662661453805623466852712706329302758269615215976412276634962573347719275930757955261924321845657053179556096942718290873145695097536854467882222994456054508597046796832742398622723586085245245238811317911272930842588705760156709965080209047205947093100417455522415054798657542458936775372120628989818056573446540110408004224579698662643999309945275108571689384148186986363205753891084318352241740518989308400843749251114957125413537888432993472088608354863290820417342106990967310918233925298822391444602010413096689549779006112642792160988576631853949648878515283066835674260783091928443121311129681298535115879436834678604064238326426298836730971039585683728264334050325389431199403302005201281668644118326849995559674969153372278475388472708851262420095475416361936805082711593319039555369604667316463559807760112033200836848000603250567845256880035863327670766737494625335241879342774004540379678804829202438891452252995380046780063969637657096255034091941576958328406125977398976901594292194473784799486694715036926047459579283303031022624477226661459478970269799426189909311997752904167096832000627782660707775207979540784107886008298571912571226812479342747638258056983139549469916652532530004949183200388500809570132207317796173856513784202639333263564885721727646222656375314234463729258835216905628500600718185187583413175033763759217297751012959545899148539267136304454944708845057256026060154386320040973121125571022093811946172811121682507176150799767224445336473026412502444967035227640219194976536727653206558888443209866786568883284356614643647544901147057348952613022272677507685481643396334216918575829624659102220613557348518285386933923832018478675651212682177504186826557395699897758401296865456124460181468455695388569231066294155984611605275958153667474553006307547214760771108980887421667255464546500477274674751203540211637150436666241944553522093612768776971962626980598086654101112841913342947128794602728038383842254412086028125247890166257259268058164952137971086831873940368746010425820864277734882726385771028255477114782587876597627385615933982964674021938658247973770936737329921911863048894661595616231590264333201291726375669818782865324703394747191776738489101694180184821529099273194267985371540492641852698235067246843824659449005226787067885905827960854828470901054667570988222757575802530834237637559569102227999897527408709448573750196525569396527248708249645347263397006240913728540400885496948953305592683882837149366396139879359587343610742080241205859936312196600558599973479582355271178851837826160490483923829946736642159259559212076418554474197279013290745439881631189611125480738108372486521208682908537562010521006522446523513482702880300249585389077869406256915893369226668479761741050299039086447629490134581715842115368476723743803919371718005833874643345281789659363919462302152270924884450689729502751188361068878696618859916568184107942561872571659670300212903099464393928621775703703257526467962092605367463037743513595890975481118433127686938334812084567011955708903935630576253014483628651881680376394288298770395277035656783489929342167021971321762811505225760703196354567030623629392267286720359388141938802414707081986830725312459854039404963394800252885419468266271313829754255820865632943788578903052545847957130201533250728139325553671580678250371840834816359202052467907750009539313454311777582015320329826027469890633840160265832782730978583263053724853599999140693862398400207123139255320455265235933049836035588583066688977715601790234941294947710870871687313434517826364687751241793483042982278910360414820044221373745385766915707100909568327094788253909409724039453552922995459467857267783745597976903898242540364409468458922299723334259694777264383928401952201306806952748226965712872269566619835358494368464938630749648569833778171528916795029650077491861162002505503958183265591336987633441746044034282676848027382687409892558228137712823422025942892414687574561368255728159654939577975182369272469141276710657626638455374888505468655503555685444550775856492718794989979838201611766847978212328959966828696556242727447958310323504285052382819123778167260849323386277529645859414441711731050431419270739484827849978329285838547727317658229538264071171840422186456704251335070092703369362474235025230697031757363135009575737059638433959783665618085942607148937616948525323172825371494031022053121558416987045077745310288079979655319787578410024144620988932181403477121522948525546376673914103393413561790059220398709715004360025932739356854320566927423889089217875087019606761307655654589615259153267828928360081899034921569781100361805825854486837566994822598603163250072323364697123187213874519553623390002909902078637604729952444159998572908980736492119956639041579555281149397558768326380458229124798330994747870851098813798730920052881491899180064035308373037594200990117019723479301834196108056206558117435275331315662460933844624299742616248030823884149364941208472121295586467025436028659984358699194450863896802912538956588115798556419370210746884057950353615818697869006021577796957706535358529875966792369770293354723081486823006513934752511502840317867286880054593299665691939052246969652144643419189583162817768511656804606534750122264257396619224734853694106489579896618408762811696839984683108881414153789549567617600835907128670575643078865356145255339121520144984915646189690363160688715586704411106207956858656738526929404330172579804524073601699059732019557248305587359456801718045058630082717629294620097402693154962687366891460588834971865305950141916560668080374511101913482812612224585759011989077786082196353795871424355821720789887818749821589995827706806402107532758425888138185448085369936950276326287389787423696061368809208496123979950938598301676750852315682357014203037472651401467831704292359207440810300700178828808825438220842966071721679361961073867733314239696046028926260729077060699142053636179744667409878431141394370402313007076559884294548434338961226572891328911477062860438375014529346002811036584506792932814193754942689627535397084108585388885047772855516216192703561569597892338298734260953920831090410592925917532299789488129598517524296850359731106987743203651618920705330114813240895815341502991425382796604282416127323457278624796618611094125153107643812416812171146534740022829514194553651073030337019124343199267032585121289429509651400354260444973773349099896084270543343856733473092009479309155556406987065775795130339362850934387567130926770249667035637678342959917845204785844521452618921373701686142554283981831080029601384195694765402399162869943060937100653019892820439949124155746702276134315797499263384198392226643589224464435732561935282698454511755002520200483324729876958735091508909919761173735238355831324392527797576681692866961389966418484924605775187895163164437891213135357670497650085360499745432793722222586026095682704127354017091470039539294029530168370344930539516440143447469338844515755037821858131031083894069255133779827907582111828858388327569953429618871227320148999162404729499914523294319152814473986808398130564611836266454144942280735945791392376160007572199810746057510467341912557946079774077565078049733303676577952372210166632893548724496212012323483724105765204816643143372053833568696416919190398457936956572292187084465282129199526258367351200286021428545022529635421757097422156256160526926504676372005039257006808163531008911281236320488819199592500057241148120273808466911355841919718288556187698265870207853556112729069636738781813367366451226718694574408184062071797645621504549475083313627986305443109083001982688591824717157504591255587617040885899306408827688086231411993791168157498653345260566663240089268904263473204453444578614833814240163548087234650583490759589771346993210354554825142917830072633554523258891892882078681457766938817012171275539325153318769963006298412528877692573249137987496487881887108711743100042989146605070127571372526738102948159804730394394897775919680782662874876893752196658388997809904802947504871483466408800608262201745337667026398339543654878441083354260800744811384956055746046969659989523960119769017137774249092870595536093366258249158507780051107022779282822351404797062199982287352083419601485775593239005351583190576362783387898667231825316127317282579229908095993723044285865345071696749365226814302420201546223224383258774040080427406981630971668523111586508537605297865782492783340799786666800894903625235732553739422262292195121596188864609628822902447232290553301442013796562597070070439730763660905940294136778319685272815661165613136962447282560389841711999418619098608885507765337842777334527151565530146019991222061526252863767443729957537843683821299865159099656182347022145011106310805272332273794117994232301274005566464982327056549247730023667026552821952063066077488699080250222422521160362272989825089075727767706605492521388100787659383877945800284741828560451870495435067994137030920488604925428952811932964433819261586132722588839435301853237969777609459304702270232242418484257467196796086867615369357993913820296461146476716556207729486164967204408513226415980543260556502350238662325897036162074924611895224866471287228761929820428615064250414025681336625421184959052469126484752386349042214702711430396302968676512827457570582517135591705444906072187795770860101350430656108694220405500475093924647951686543840660095956209309978827224593197692293949969309983642684812879318678534209256733366871049946568848788848960878521575355940072801656078743835282602451124095708576551804061677824953613825765041205557546760029792134215365661594507288399568096988410188766142263908133914550853531666767064722551907311549761880949907354947600285464309631838956826452082682731450500916689060190812421818101150550867265095151104402066324558092785455838451478252912603923002095805027673351801336621121009341829709201481477246713100829494977106716999561727911415203385137756516621702986979140852185654327422039300535555173948777948943195120201155990755689980014879220017593458914069858981836355768738376510371827131250682722480173529731238928981680792867951620606614661102487008531131488079218591707022053357826425360924212060907415679503886506140321257381678865407363784525191356331230199756372946306834732735668986616785095048388126946188623708465083946529146074956005724191016469448406689703470697646950208621691032976490956715439308566825561185830729078002896737230586324468627112268045884389049886620429951482247058967531805712238899467925075180864793196972339206929366737727485448760963613681507342593290694887021877515166432253162017439278061651524814496113876934429811518256769143897265628905359146285350471152775794318660984824015921380340439084558710223689763592673915288480841809069248018560498879778310722272863947953333316037896257914435613316012400818767514973417489919279612421265273464334453671549205269573583967678958960748887620321240680783678479545130080470052035210372854185176940260165058432206284000345187856455016675301150373948438560986300922636364198858964311925019899768657420755962478039682580424479836469614514924038018077079469988657778183465159287554446155300194404587298898522707595308858424544672822265207248310274734380357066864680741198947529591215911478211086992397709643973925244105684238400381583038731331492135532291687431057871127262415208881193988107184610557219406910671241763938804119212705431808062643800156105051314472487807879538896709886080952442167251113123357253168225157579013205929589206706659326781268730162284552321561279538487105308707508710621981588023499446227385534837838241441156080717115663699350421260378498145455476442453359992375278949041493366743748159916539749617034010710369508562183924570450891391658777429386545491513585024776132721703559144087442604412943327031367699848756065200942172537992187367518810571581107903452121283423239423042099089843884072316996974046226781979402210186369944942735706928251590513212429554233251398537093585448090615033018332807572356778486365245018484353856773532032446016425947508593530397220916478756624031404729483549552986418117332526642984650837128357371793747292549431528906613717924956164524450507875803950386972273409022142020480519342050690029745472638848071509177597171281222057501842454657635788969046943891486802179048825731356649687043855890624976520203014664968097882298140833605242133030076534634353612800661283969388140274878426279865221161998193230108386274463600142723173498251152757146695466512027497484989969121630512973014185551339098375051008095418229844590886389297359788478754375605413976722413900141858362913548390846219736304170227205274033414112032660394927359608826393829802514489591341616810611402245160193252549448726788785036881305759105690225251952942023733391401199426619691526464466329790526624844085409427076166806496185464705225879334272733001960146337113553885227562210148833754694773988367872542153488615210625141055420660639061321019153771136406177865354636343698288987480886306047693569837799509476917817417545890548305903544400730986260436973017861811553552841607863230779229641434829013023260361710094979364046634277919012767346147287906033629096467504498086267367912639641869394766131293340623163337773647810339093163135734360117919710897867331901828969866259154176221474737705110743487271962476237017386763219474053470873781436946072198913820211657677727518168656047944260363688848251197009940801320689216653119841983132938620949181877174329319080055678815222107699842905166425518350451487473282358026621127565210776120254238002539241519224298783198760394434083939075248001757463689006090672939136703101413922026016079797953788447813800308177866244436124126744564524567677434748759021285573984484588592088162363002933164344533719600477041717440217885505437687364369247252999464468868587926951565609396376923584401941485080436203496662843229459532533114628268698307487749671710038745151633809918810438332230426649070367690368912486604607732599230497148961595704960713562684730655267424950664179350435414401180452123965214704816082303110101611511432697486913367477543276506153293891230917049367508268669907273519631695230386897732642070726037881020118294514390379246140200071651412497619064780659615118768975434461227419429544678363736552146674497995693802949025274779020352879853084929523060766846673400765352607832952658932903184704107791051147100935538028590294196326623287580104436013875715061259338685646415939465296957557371107442337266140588617764865909021672745395667818392382737405327157420578074248359803773072616694666699598772100727036814045693269881014159391928235921255512503921358695445563703718344994211693700111309413292599227964435960091775445002351748663180447588500298772455618355765057843872494158639870846276007159639064772902506254201340739899880945520621960069731476072411902775600948973758890301895494074897713452573551716926533658929013554029113299417166370493715501260651053328313266844773410292087314215320216306542720146652685390902947615618592195693319186644889461214010149669761714614681711592336886373860860048875362395304064899745134957215717150956828819088663063335982883494358777813252291234291763809481498254963155422301082476337313633223739471924317285972007480239643859917110638717651142586340607543117555458946480680722574918444960690009000748754497011441216380722871055463077161039674732693319356148381819773340190460045418309613058711283143560512372841196295662991418388857314840204002595637621814379192945715723417716313680721997116702247591962663306683466787819852185784915478597354644379633797006631126924317107577349433480534332988976441578480937985638314926352530483001020543808426364390905506748462168555554231149008368731481198174348940083146671551669974988293101581653424611865610565273538716805193708162291006672232322570681652604345156963504936380862524783856414143905903509793103555854387361498427533524546839026117067218339899209377151147873107296653426256156443874008908203020825433921617280829200758522544857974606426553560291748439168430583595022856889319837129806461913371761286624116850805634114109707461062722207753827153721679819447103312658711649200651414013808937649866208459537695070699007664469948457976758599346527523188396935149273604186774214161656211309577839490515105923148809387744662244486121857593270526217332884311884641771021741464809050815474664475089067207667997614541994209672052109367198897156455104907404715779771255113651637779096024421639463421852912427670320958586895401613421195628635396686090122919024705032835514050403772675950108083364746447683252151283219736800386738367732560462363151297869232858771698226204732879485189945629307603461386175800896661265647122425144398077797996803822380474473129474321679364681817280716187433357938552502202024610975492187596713734015023670282509430921255089015496775668182818564705174084858449462375197641259857496246275783785926510937328884432804238300479135485182381873257589404377021597166058295760870316767521311677002170517005661976121393752158820714205007012560566255338587761990493675947944458329003433870863330888828419544026462774086576864396108589075317910417006165039912367198404808760248017515710491151224440169819452711111269936254192482996730259369419523394179647272661862615029789844499165484377261542513375811204013998674401202348064545096680391865040855497751861663230756368009274118255164998456047776755527624126541376974586391199511560207807819424838946767241756387322054110954734574199686989885576889394082105217891936266791503101029287087634157738152038612451888416267183215712646751529157143752246299694745333160161509865329622398687536354513513206794055401590877004498654031038474472083695139586117205665453595341360290534947006818327003521482291779675580506900157871537332895123412057840543927123161838261067948632184787819055188053217541748351456960478240055468013129572419147690748735318315416938930544964731849170164562510391985269621842565288131701191808707289241536434030376624782797367197698176254347827208936190589548307554319534128832933683971077932949748851778055312048434759693589057743966318547469984249953240915968628721154788553957595242902995378782524628092301297841519925501191639230433190626024879638146271347715157094451803380796287721296013507607200304780218015036107145670767792161972183105956228505096989920621205648686599599523919059448961393358884350376436501296139427456295523572381677707012605714071677157837788182491386498637397113302379103926590182423067992668806692082115583813625250268304623697718756222212903051621902869713689198798734908169258777354173103114386541157152934158854192819340792485769547290578204760116407167268454780212717490072311897328072448079799798775548591147852813761675598182354076281004810421966914344576556165609682766054053964966108623714412680184342587680898431392835013453598107456490838822762991483247597005093016366984777360342724100188077361047818735537061440750186794728534673203638386183099347359162012085176235841675768711281575077788654139389305968582836339770397954536589018662003745657898686978188657941623012195493921844349508092874429477712358349566117262215054929799564217171586716202392630875147623317015143780210002591913703422899370366936164320964082482040827202710527934781966460051915855045489148643230262602555410971965619434768330952307880552692051365547917760219533563168354634182842296211535959606364538789031798145046253995090333845398984371979908445476198433461452399147340905178083572267385264142988483114932651569345991497800746874185614027460808483591828374655953810774816969760504629877621273492413507966729249816910442627075713581262604829893084546779884203442064434419375669416661152476091131309009908283793572453945107806558997466587073739983440767927089009079654832439586020347308333748256392343737683658288311389167791386528318882740287205611694869505871356058091274663772520430280080318747035310260056253259863990989369127754777886451184844559224342737851521365061261890384362437929924220201942610792115567937618581833223429657586617669998705071954678458033231190926571581022647697151201117743107365515173769554493927290428375020228435914601380307159809160391388403901132457415954031561413699985157159413524656792350883436963321061284686569136495138006061012796261849489397440986361345980439141820988868489657019665495248373204626032008920736596574540369365455491546752080956902329462831466587876959423782989621726153452393279596403634475714387310463474019930382534265434585641620147223800143615183477026636183856840823073406414504349167784537417729005682276749627648740255125440789225495244836060951496000150404404100049911099736001854802861165752240308290385489919780141515171831797940343883772543868827128080910191392101317334029351094451245456660670397432543959303987749224778993800850612098130619882443813130958356930071606627081934142865697511545960523376420632602739387516503542398503204404003242070516764736433959589793866119255837020469815003398428387232404231655624853972410423387568194156445658323268952723928027834083331172756256572827168176064951372935360662627224592359912046481853935307844130130713318101812913276678048835915311241370565139125474362087477665013340751391595416653782630240237319290336601022960246117569598685059084490348671752503276233706866223441167437752296159667579838847977325467800434308339055214224918634909824215690545028305526160397374946063812166432192186222745353043558841915119466293973367308048254297344914319865376954975498278528128810652758260863374360731657552773234433099088937660550485552510029354593536328845198310696293907729984298188103025988402552420601913009385901706827845586060924661693704441889615468543824311712956948440364166177134032065274386233141284051200550121886834957121714445250104840449481805335583438731881025072653791147913800756156392843895341035989400185207784825322786712171680796119626664388222345366159385899959701091017075229872827954325888579609241445981291407962811577044536870898921723768170548843386500446565672202154253978318757017881634535340548709759062104142442368023533522281930075103511532121746606029973694579896963114435241491636594195873130967304306636752040812172994945788823335302246024934126803595476575042499490023131542529543500280842412880452873687697214831533988891710198413143887804430868578068696732951473175831980301407523176013952300149112944848890780314895709123589894284719115215884553914474720164288136139592518056162951931205061264366777015236990259564768489124369879543984103387549346888673220456259112044880317843085968429654943592150278071642823817765918931050702442032821653883264479359375934984498262548507134671863521211377168412329747774517526383002682060429726038378137380452040799837051138584786670750224059382342538614003953074269853696301018064090018605967982945041150933253602158207444339263270291630983744786848507950173734707703112163838503713880349437885916202737599829271272632781909086423464925952606234066708038676519660446993820259905337487090997850270169501952031335745888790059743423198600539637678110880818467620731593125919751615568184782629423172431647066632764301250238843675476564885496870915941270504482846012324921712165868163570821879225936046019830476763586799627890531798160539004744541979979361564233403704106155821343002696129195950840361618153426710791511809499009048312339464941719312755473078042822393658227033832058368863237435934153481957455326462092933987201091411995041107929091475285397223810235518528089722933518444057173694148802945140004190889814530881508051469547956810387665149158131958927931969233338671487530029734880461898606801726599011178111505035698963038538265006620299693444959960783959251777324163060704922971187447767776149609149467355209861594104542886072615078031391611099983463874846199087288855055824549730136227147132151206613272898394373793699764515928407938098071309934627320290078888320351095771985090704981889372022888106056293210324426588948117454448052453107091834958709279486810359549762439012357092577154131928188137158168771997428923111670455472192757740384723787559449513049822686968189806670324612540548800324811480635285362442119004241210211631718705580042972362162993099962646730443460428345004791577790449066114549173178405680859547723332954692390855995064933071941932267175166798518538601025842443345231358769802533622109742346435630662796138558236742785159722413925307684321468964492405408208145840403996501967044386279334479983139918249075407911615246025095997132742458201063396801871014256346362472915318829120240591778738516639858003460189355161537641498018237129863337042019113023885778549917944941399850157199048126549827935383934674581073742479920630864607279474408391876165400414628781273231137040873553441244296131624343355591105520228402358808526685817199684405362469139363896676462077747056387642409807075319267644936266735773676707505042686252202327538033360212146998434490038227877571439278790396316726494151855639459182858652942283563163453819193970199988218343327432443352370174586615151089359387490810642979867896521932235191885505827638901668936118962893277701042741216987443320703189255446237941694724712867365822945898399750142032852057587737536519323641379429644035968576186134188921908316919639333077017010925357246193624570331575280924375327135289446466901027842941014320745556388769718908839392436286352239063133125564966613879875690886246021353932190203308231861953969589640795673878586823745389483550044456954664531943738656529395852021200665155611659158963366772992673745547861380985798338574633513960168842440601771776658129352376769795346894017113834245784379392787418539325845845138837813057981251343264756863166380964668881911526678094777828791019013261636126031502974959270231350128138715426964454987402536997728893864680156826075344359833588652037284802673312286470729073683124360023838475221648950033776581766251175865543429644737651427922347231253517334897798875896754528531915474061753382464033952370794397987868248204708053106722559799765121349682549330705503705032212388894980863954294238202654941565382727257381639786766553701316904237372325133606590778822696874419371972102036513810970651998846370708459707823849039252697475171589221175962468300057860116571558721200916254460108648897868137485521770535654956047117161629547557865201868961671283361142065449478936433751573296889342331098153922663375544138372643321629097299417880618399278174197293530055022070911081702695814104055847775352133068819730921705230401389197336247045962094610814173380094657449268773184871288264945616508483711123971915179341552665915159320827908742278395791676293444976132455680380646803229720060885310609721195422951440015972262185800457384588440053405619158559527221485863156829233687246620732025595559195509226710111648639892440947752816197370652794953336007206381257123755751633386287564200520523450526118919130356150450748435852762570867685301412609123109987315472061592593086529559421286301189474551921831145331882069622451590378103315854929857322366749817657112889181226816731955334095088345901366591334037597722789735887868814847855367407693382419906567428448739364067958317456089499785434149301854993303617487818020482713168941701768238662008088207700172853563341861715655038488813894956502517673929088591623302882555980708569115109381800788030815636713088478086337103198885192022774292174178252223962628425333538795799643406679088170254319465743688851210424462794611901805156133436681813794586481113592040824077909203664808418168703175359106901613493903249658001252869170087530210374743824910429281134197856076333267956981491035254158067348653070843160074868027156063652997232573836058383922022529954834210155217735489907510505897703261873225880200970958041585941968389502106429600544584725371450997725371352636405598500556381463058922921061283128406414057125693387710435193424615295103306625260391206231319328260643289532919209586427329172507932695677304789234282294880796648341852367803845183919106193601218739201126913070001435009772467792482254957311268397968423525852805159360137326584889721492298539314330558051019737185763881729332275140910746707076478577092532122065958636853366103755873728264095879297819570755636217435023578221782652090583168667024612992752995832960297615913003471495200192887587652785195035404511027208234346412920148641553138971995242568849712524482155117660755160813972493585367520539896555938052727444551133642526515446851852176909172922743903031968022158325338647342836855261310893535040766158119481118835558281486406831744117518975083128424823199760789410076066243976576350237251926081567915535818293011295835016172332599832692376351986167083760035077633109536388961925208926861918646361109991024689847667063407882183617251213535475205059929598516622058963942459824152899407924918839721065625081283516828992893418905264041696681504348969440332299081819697576764721231504303054637281361264195748346222971256915899369244068862681537066597057951552068272812993617601853423485779165814331058677036438820329642112836285441439323527509937845855871118413147387915066211708830946788260882194916735449454158002017318446617749360166717628791872391562899367892386907623142662297222586596083944006319939501650127060019786776973643911669551029283448497620404492389407423536649381119633979841698804667723923749064399990466932851878208989085380318049212102388028651794090885494117232578593408622151536694362931110239110028111430079849369580328736368260376210042724154095145051249502346432042656774786592545325890332795872514421700485545600543919681672835564585747869344931471925936501885424735320188823469881429204944592304818923660360125881442113485453437826565923690168029219949331928294539475160309827204375800560540189956501047401031325882390280240621501076409484099985023534600671138285378575447858978220550448658554434561133350703058860469783987405823877207293753007972110961451392535901461069812108502357592655782972880793881113095357188698774508575595548908877726974037705316473485868187519549241427303582121208382709357528721469489846666415330951270465481934541615858335197765689343598206525336920438622354474829181205475014566330560178564666861340466429187387380003873291402967899019580856285719989920422158976724247724789266120628219102500976818839653840781598270946369793197149055611574223219747271358947991767421794925660752307678202362212895720848690936055129357674408011856939149880329185599558091994394502578708524446304859920612097932930913972053693447052941574954242858610400292867752480830154093653849440999660380410017991093035213790667907111757398948694675895629569082738823542594531647413407810258365483534772620752178740160881869140736560257381170767358958898994033706021539718993167140230838945403606322945429473614533849421783516832559064404077337932996174767316271733419011101998700104808831466235442794447464804776152737473368892935683923067566384468004292333850666896986222652774367114060736032208894579948196148865986481135028356747055387548171695736827729702514450850443170777970718034322327401222522723380924291485536310767268907224557198039376457862998228789063984947870626984846223420690401379448270697085171136976741452442584846257279007696794760751351451914947405325217930686984313249962301035255230077867864645007559316546530998590642138106480772342873486803994979908699951657254586415772948621974946286473648849717322690704411430032263928127610592717094421385516854574356392750266626437650477398323647198189213751257494345614771712399763916625319100974358011717082428923457216377750690182070243217419672334109921702659486779061884776061707229300451604207405603246918510346396283854140461935916370206200225235684986808960054634651782344966244539083661338809845169745024369858610650654901087278515792659207392771122267351647469602468015398655994379649578652616108395770371396042271709202572179030587295898270450499730077743947168731788217660737611177727645976211963622772267045536280050756839432016975965351448496656405667980302640710655249269624732261476298695089864807828619921935827124048057798649304540538690907670095447877505110165132243282540834755636289325271694004901424584583028541832423075607615474587611556058161141881586975458050140184243688781753377790333776848570982631686141954129570746283166149779375177456151769947892723426188075542933999803227678166986366081919646555472135835331087534527316665558727183471767380530051012349537378857455352495293184774212260963686182521139433275997639032940129680733655523646928133017939395031997603599137474815896918371233622654791214060598728571697547162666760303190396705166160978422583810144242592413608955480956989032522665578688836140386886556340617125081629355885266340043627900575626016277460587544054729116943658365607810315521521225047973276064673557021363373212403589957028811104897298009481845345578780384895988825861460310493294403493819511038517369927561047621727240816750319742566195887686084400757216102091719404505443427607909621087840875512721925013316290162358885292340709889622755246285980870348877423537719734391910943548599828503652910452425539638246545428339158720108217569948913530145995739942921126212782304984976276858844479103490844769770393679347238612112709359466947318292925129804397075983973204653426208454221928395442161137610059221637006792299076337531207877583455520771794443827432691040340975875077158024514782817210106675444786220950422740069236693772948553750620354210936975527166630301792386787027723455785481945331887683244245577313899613678262283580427202477652295585939632243710257296895774799530199863883751680073595930501643822631342153316791011097734997326938408436658763931531705200935399194662476908909284976268020616958629787183819637940621922909170885081418112299627501529227159132424161982844176387527398535385615205802134113536931928800912995715407603082583708352828300495742027914255278624595300640257763741575253046026865758353027203149882369175522437981935333158431889001968266435681216770298279206789897044339422540221981536092991212922617030638509012394009856761958168701823129933107921331766939060852622405775134537412445591388755644398469586137338179628975984657096331169657242197363702964254579422259935576209940532292234095081938862314486106991931059141960477395313264022396811097017663988255364044266206071499105837337367044557105362540129701087720415255942792362046229060559432463326074029760769866253428606738079197953506313669013328087757108435778573311081261665810457196232731517257890265340711453517925811527197768133328862528157846328360193321246822012324896190187948675837948231391957387682157273191914133119202131864356574004596983086624114700619821989686646984317488591609522211863641968157019605728083883246900912561532404815298979991582471028965659234002820939978486891073210956815836646638019886690731111494071461611068337254893050271197619343002567820772481237070077916276756970625110797374128090843391315448359553513536792233235474269781404464221900446769599177535210752741162343316996029962120429159373588013043524817103493234034149881666304179088380497041638301841265909356412864441439669430119928526556518005304974791644242210210197090316311355798756816906138954388679160050660603503330691516151496106841448395373582918414094759843795183072751352430541467706231968537659202502901040761575543901737050205436689900000693487929432745022354101198810205740846122634197728811770460748133779800365372959995362999138588612972846945409518864862314047558199130079809500141159370692013172355896183154513385242301132104589588028989172134525957208412013414286345644530963323500419733679142655516252789234636524820076335666851825913193565677988964325326523232056195065112837845523912160253612102098050784433703228506222409701350283122295918881202071834132522508486881537902955289934281370760192566545379890777914283430493694771194196966938433606966683188122910978127593556211170378672361872314229767246174624561722634435877739076208828503262842964218798717068339779199010669497174762079088304270714618980703820711630126599089172845080340955289232949138887616820409160305347167867747558683833297669414049175985641076921626411958551299599228793220410453133441830467557032752364836467274526563029635083192579412115753700761539520872150048114458190468738175987905076528185956115636844387869063834072720016207528746604623781049776433590892276350959702539958672856372723807074856829945395782583278466429116797471143354066710210876299032198442034326831263256556106681830553393630921676010111696441921990982997007291151732815918291654643760736950099539893813292619285466015556667557893448301313381752423520304267775474886615153364470405676532826657999423795583378576008832496760500628928609408298751027310261384983325425609619653978520977254329925480759284606003968500769026345702503412208488350133311500692079043741281246811619568579118174032743116802494924514390511893428449212084667975220519432724762196011708048084638821570686198986239670196691560823218185828696801264021227540363063742995486401319816690989213671812353444269396222919913918073851190503617358453075785891409610857970489136936468428211231654221045190084502612227108064372641757230911811741470504939763580580817587506626097693620529767613502382629120303470083765507105623090440712864299923670571938366144656985933281735746102794070110235651203694645162342195825941076746818740941906074646073293833943944555851226516906625034473031332280318020001388540865055925566831700341132758545159112859198424213948667897602477585994413796398243445909430705891028218793935296763510405072663047307640673078007062922224960398390954127488557526149161510004999644014426263058670685353320886693770578708711992296106793474532890033355698906941599150595438965731772468097099283017807847628603657039167249871713932481912434275212389843043327056313472222225686286862488713606768106233884029945321904223181424101477843695412259099796785646989856405103730942593234255740790477353651554801937411909692148402555112391370896844476200045192048678315407324205845832281142778556993519117466166220839859778762083779933068900914231518844569832663148182684984321771250049700737379504627197156529177200137850928213819930789617594537300034491408876388241537298079415493028228564518115711575787480533825256744380439902772088437000123681412744868550448338863072373397528668156675178345345269050871511708792603084724429832376202324705588791615796899374019631345626991539592981096834453473764858617105690901965038375211600147730222845693835915474329047269858776191177082904408311115163854307969559591539790740030589978664223222198377943851479391112510143968833054725657940372113797572336162651575261078455215429366928703932759821890479412921591383225357426748841709693376350315727005206222360183606137807976245703528439798922214926369363652518772382902729391138120635841666802404607168883988886229768995793026174426566263495577715781679887595884842350194326850260124110159880787857771150122973968545780321050708378058798879204454735239006696244975388012105227912636958958400380131356871092560259799118757319330207855033430091134340286892189799842975216102658637659018108838139329427191050187932175821428158601858676437577328639373993355381728205628247116139256401313677178421216451875467109730445775872668229016684874568420763948139460773757627677239254153345452640635610258018822587530585439605855330476777547375313366636490085488257043671392980165445094546054288247249076579025465454546172315273810509678371151466695009512761581846465822856502928996811976062833198080045394198318499604927757973798634633660392911716732035304199053006975475412824119868172258465162887080829779752407936268226525157386375668222052562828290436580796406182483121913521489134416161093721886435738723807496176131590451705859180636652756372929463396788198378123101863675447500932002615685636387594924375375666348175252736410154390890367082152508988308542549543503199559117806154792156818562257728514055816809030688203301371115637747550833173381983315492594468430287408556314432134381104016226074233279896680273420350236823385689931613870281197088358359800179392355515795447319757843747054330959456261426595752080229096092773303791417996632929157018934075849767797561895115646457787589841309791252235358197198027722844707412422636537334045057511697126959320680330320298068963155041551935175858125824916031491894218108896110237971029910292454291198189083589225429558649372582921367906043468443445916841009751408801351297988696066661270516100601739742711044935625127494074131089779426927672978575224495390858483943706646559511715588287008641573391874542193131946155228098194952434156121988647839173885345725755231292736945305303237515552220346886645975511311431676732796039866892700224410806403813944583630656205853704793856324442690608511999093344476295228579550477872649807382605983684479742541731804709149907901915977574799819729646108134632820260619749662122086762870640128491711048687646081794733789614287996227839913414373282771213674734438533997760648996475831155127204602318556685964050384519197304305630672145048706513332069419471699976034804337588594329547209846223734131464493936621964305373546590892628197023356781823138187147824323871429632343401398381812029960539586189461383759051287650640955416719628438793600617267913079952919871979958346166210001318487250637489887120123973526759619317529054928689778234361325407008502556768139295269296162397705826509973955243280115813683498820874996395330447723006142477288219985750357354114022050504907805328174116356064594134309436895773191059979048457894149318375867517501139048217741211659841372693602210831841507458997442228111954464155025296474187646465904025047715936543649974434989505825480129068066046006932228546367301896779658125484981325875088184495582574555878889334466772476201434032125765840427738664486516772507140912636591215348661290549881736731630276605757789765220972490207215452946913002835916315863435756484875678382885500512631383967234702095602523842369841519408657281213971085149051984750223577897337285466712219932989754207690125344921330908749282951443568196133829783858359718344310023721129480668503484778631814063035518220297719745632322096715879754701194798424984549368808058327658922521100181378886560347661674603788361383418306011856153024160250434479470554284454704628003394064847997160050267792382649859535067130915296364500569676927675891339996587858813015152033571162798247678102604878752368827664260047072749706761084954020097988323757074934805381311622838225741427988769540884385170438698356965425901361215153234883462491700297929882691673270538226841118192094735930691791974306378772727035628184129879033441335086909067209285167876023257826253255848474261782879692241680953019213817948552943430599641829052830301351988683918527972263084945345831828978998790023438362335917657573621356734444062136005039927401548550707502079704361854643724408322745747734020080185222790458850455077222969107709865422825957010839449785288082754683908740380511279910181565112977368852019776568542937733140168612931901259702567050611413836345773227207275515583998469484570355697852360213001126543814685027008159193603870881190789404621946519727273289072878624049659880331731323386555544222196709675432163704765663471471773599253176196914671800013501349782994835713046978587936463333658133406720884282703992622976681000352469539854156345783072523960718536405962239564696307482403155543075952245852216410911547165457562883290779475293230671115824670117000994487307590998069472650969197384492172426149716015182198695887540195969605270603850301883295242382715183129937163409862312828564446447692320521958273871824698196616931598919088889206635409223841530257378731431340895480162371584616833899769729235574540017542025494990768378765325609797553827280998287129245106097426486490087244725679072936326930245252779533749458473044031028361557427906403759248518547007941344629594051808475859415307926778693166956658149909020455579436444863108775098393522679031433198409307860104417671251595642919554587153093994740396095028430237249730044549712653620324072343565252993717081255338923282245773491964069307476461475721685504896312051142336983981195739695419780201583911220535120719896122133746703450802864788080565393611156836730009654348817265812210142307678346932463621945844709612234803791304629409368483172463450121936118866105140882471523225128880523903019445947181731817396877966882599789806443528176293850707864084588972906113871703612857195991645974446145370854862340407103529285144985509055624303284631560256793190604027229123243618884573233045930523298029750031446210268467274868759342835675348036779514178121939652719010716934756589041125056840040782756791920251679059080293659711007018932819095320810339879978646272636497588990829027998658410023724620089437788509209896031527999802817889752256952308760467645536341773631587470589624217348211451071033729440704286736087842628618835797051877246637607785898022872561880756225851022134398141084184952653383195956747900256448538145870759025091099753851791623601259014054581765086185412743365694862196015269123606524211409831704194828912510414621960361687129168784943321722375396958937569972952842311867197895336712944333871190306854728533811030157956623997982160722197441089130810229107477673038562318249245781041272462262476909954524170762535147538392355443731783448875907099022096379221210872621029765193793650153223843052970518736850561895001139865882828336877963758568313296863836456826689552575940530226547882405376556507022772683440227473819343089799311502217792541011585957954271078616458271399013692302842290330131272813199454818893840543524637674681652300888454062442970244416347230979166689359694079156973728528715040001491370633987226536043234744740091811470911649960959820942833963221975528492233075701422386391500475509323431243939764542595417023609773828684424926620969169593364252517559283067678971102344704873820146594918259889517297469792203296413691721211723227555486335664151368982076740444832623509893429585195679054931051983304227747074674559520144530872755816854132553090131461170993667045373444602173815195903092724050370043586113821568442556934650253690606290101256986214887955186992501699860737552963959311569417129126075048721981081605451125609030964129999268538493364294842385921154702641494560102206366868536596021973767607588201380711070187882749724928276266255828428037929524469563338070183001328133350333392681005339895785403314410925454169293746298229036348573883734855480734260576736386315164829894803020345459902418073641988941330095068886482977141497318687060837609975629408251650113796901780402029833475801130755097289576544588497354366318661190228298711354560157241177251966508849756729363418327266206832671846289425557709398225658023083241652312325704383842336008083849891240109377493215447563800269430153020749970329824390698379582739220802454498856821609736997294449915848976524119635667956934165129578824797358249657903297378038100191168682164936046560298940691668428571837495594508870462229790907451925641990769116060186959740990088544453256676089739889150874760402928467912991514523812947132061273338046473703197132334233036449204436295522705878189335310540665548168710475412712065148767764781440579176031082374816814162268111242366287450415616810845970789395121236760451997809903411730388884760913056411549443037533417773372306896076021634450257525078745499410962346874535112768347018506959331431067138658333406720450475130791525996690975957157198177357798827297109937820875674222720044728525129992048167221503961571983524000869051125759444747245930862428521492560717850437601803735090003966620833146290230144530998530669970918951390495747531056818132236516743421691241504516635082051719710445339456537802852396252319838117235625627349601450752358699039136265316375805911539030799395717875334509635039099902864255256376767089677564897155813775987361897617912034363934720687400082758719812372841050703984471645409943221563218824756084058236762580973709642475324500738995708112055979602558014142290346544386619816775718132412408122756110323721849387841814810522460307093191239165629686133947820954617860686119413247514849195462009624227666534408546512362122232320528099286284155022045270377243981591362230105260337385696893417928972879239803780331892321370340222638914988976793722691703067164598460664284104268451511830164363033616527820713716556401988655624444385391835678073090428896682817230714556119850074747196499598158572902812700539304296506675521013486328385372240522699152465275866005024127222274763926502503868748158785796645177032438826591262473562296768240879282829247218100170908457608042665786062998571501104639995942959845719158736705060730778917579392901055867665418541413901857207453675072782489641123643545810013648262543429737934176344548854678953823102709044966684939733806173687278846387710176699687342065341031298265551342449174496439876233555103953845416482317937211977342104550807948612845110673527551119440304950322995070977736410260597663243026047652028015301902352818320314392192789676577481852101156308407181817741005451936380139194350028313233896523700961930969910697461157225880694461887920320595917046663292821363333084316253295989773972667033395117498454749996491534126113592761705293637269504809384284370683847980867737753926239796090919012751510765792695033656994628880665839787335449514029476269746863012481234143911326904519214006787484458465874758068245316528112529600960551145733089780139645160698796437885943151749225606994244080038452079982721852373114892297352522159729615265234194522629941048426679443758764008024462244339042066143348424184982880192007652149710392948697856316166568501227910940528368997760634063349120603243901421750981366531397936947477994885967226353868791200603994564933630349427579829149329528425428692722242725663684728047898920256868286365585967316626027062295031931122379861353622190885800471383978682322655500095250365526103076160622223994772793951962483434847466641176752150916099936422354757375620242434375713760461747478824453294451748802802344400684491877425472337985804561037620263443361913071530686218964424158561705703358549527609579541796706124272021316004659926419105712276646077669808918886226694785630483156338301815079030831545843620021554163381609182607488645474843025270012346391056178609580266936057724197335034871311982924863561932257793613416273399689225268888577781601256973239729792450333933815987650769541736889673517495923914710792648840889143392562138174659868460768742622239016440247721775295994291889501128564050008769252782537677812542443661508706545904552711250766631857748556096825251771266515742606267548301814337171076778899699856423681922812703913042973282186132418744261147396574157400135891851793591364123101558517400360395147706705697442192418681625486219027157923721557539179947315959157590191544695085202634227474271705731763688890467933629021572815846452739471642915168667771024668590236839131889613858086814295754743827953511446351576634541095943040849382773309234646656927608441223948028897740502310222043372224581682191628046691958815177694177060221219099393220764085072452850016180665705083272485720711034806743130402843533016003031248015908187201586249729180422092419179573777087127018837340846182450340452461192193132144144839174944990451038633903470465907508406861031883836736668556330109008297980773659825311178124445124268337717411146848469372979501177282367424879154948663845829679987565488988732744782145773456141186798331872344416547509536214854947075586481141658480118190467717646153946245794915325744441014168950649347675640192893567667817372348426949417510031067922307794953347943251605678630778240573997027855062842985610361123747169857259665479011507486279146491643514745278174824253939288095223545883009037684454730502317605176631418403960258533634716831728138426544482523920389346546689085815342496575797707938584086907537780086201663995587490464945845720233301873299899333349656483845478347197145361302506436491754312688831852689312720724159948512148391849952397403206986668166230318541752692484420265988732944203778677251124612764391626900708423136394400904749292513717109447657081737445280112948172304724832995067534297397215574156749601525071328270546099005962246725825737258936882753761807684960300962980121018026935515472008837535807411501564275749362158196880979543845481948708107033169353052365144139997471769491332985811553919891458264776523167508563363752211955599254400402618322706177206109937311666706709250597462907210069131735728456764579258575536440273091771153655167059964141719735630526083241905318184278780984801452835621261779497481919783402235222683657396999885543548557884003775916324571278966779465512207527048928312883370201503114370302390870844737390707878153209573068532211732876089375924727463483728512142038378393432574910896629800246854514668024094157344195985910941747814820619278660943897985555308336338935225760830806563500709141944678903245879284370947437868779132614091357187913758484302581708967884005602731666777727544833936421189939340524093219765237877415797668626786406772177962558863345023411385146653564562499741294693070551451320344131957406181674660245216105014062603352880588693143119746928848991577515377834274871988203260562302154048523312401387606945346037280643381629532386506026493212938573385878325146128482993795058438127751695343431508347995573638771214454651041870569603790164745582398289979932961210512470558586039609709355658014748629387754798571561483549931724937022038420806435793342758035413654855042134776359968288848954405242897280305969757535444253987660675846224199898810502239202569183879387265342641074035432302285086351371211003091842908619304584275025744593329064442416985227593234619836109242903097893982984541971454284755702762916351136829733360281104343770796140530222226205601384147881071469932173145774992859822924161153502035423745858593512335183386662294081468577611858321763753665256436607532290445371524935661240830921395367084680967008192344715288325775083616623881091518976674207714021745558323269003565428218287001879207039008487532073132781230439333396353956849316567117825411836204475455179841623745105336617433881476988432975515215503570661907705881739375473568743195670659366432034268373301574847480454574417361234769954010305652694606577162361493421854145854446954126183640112007688088357201782126258031474959187091518451169009083695638739361964726514491067109298077688409198662322552100683946651461447822286705725830381929496297103808367289858561274747529087245545308029234304627111328628277618548401495461412544646507226727927607339720097581313660061240907778416026120269489464715067690620111707409788668326323962124923784057285370875028826532001217048572185343053368167297794040548262265405660072191574209883388342554883372182407247060354830742375290081346727415145709436089958462300994787746052225202233272411419747178521495001771303987108600841010890240901061970990684348883105008657988702148874999871906961187475416117232487398984824847244734174358866451905328451043706997997234075111996142062887405224519416642139678459309378591451102013717303540149090276859962298536796271293889630733285720976837642442643427766568648168188294014852539113537332859452350809362065102648268210814029284212854836001516730124878036255230999030586453944600217807296198716507734064284442369761924915518669406647404712719883312337604056675823054837086822449017424925991979221217339782890693720755029436374983642389700177415835392865264457100053585372625689395643569152445941095558253702108291712477432354385135446358239567063583991832703479676475751073868175523495830449436676102718977138041740747650998557866290338159783731585289813941053555392386786780764903043055671301070325578460812284299656795460249234941847904171166565067161639651620280587129086658518858460749740207447416365664733822015520761316913069152753935110215772377300223940700703976305007419829088998351724715713985007417199884798019547581663213467673805178405526110655459178434109047734638485536530822041340617860458252017052796130851695683490702416949186099187794677701934457498185620699219239106052468055624499008630384207867556699214485496379387448623031828627046780453294192065029173553314655921594018397893143108286553293149866993309508011402215316959982430725539899310468893370239682144659227196437794175302874470058090510345644024655774665739623061013191128782519246676923137771883799672133347162247665106270543388467531919387357171259014374479189079714104094507550033677121823052774371830150530023198401564283507655829255705976500532066677719697292177300289507959148328797606063252612449411811750616002201211100477875362593508406340673219013260886560735814461529724266199806574412895762435933811664885555841042351707418409612157505174295685212634202659445163900126808356171922311879194046702931299252272851656144545730516174845909104652482396164481601784134518789926066484778021651744624461738235354534884038403349147426897137510983727559356629220907452019156613045434019375714333496503371899541783981347836236005390054565750388915181988340269034182387514321684326103516857528191503475312079269144824402568974447088093600015683113041213406496485831856112760730113475456750257037085826095765808346776214043792185768884236723717329371218276908577170537078534727391293119279993894521450459776339579737121092219361412424030221484860186605824371224095508873287977543337987568660505815128445703854814264060242980345624046948170331535840150484974084313224692078598394168915473058177917024643960405124507894884387916092074897659874305362457657045009561616484107896886211640484315551194754865667599543995284791200776545824397187805346599674968839574835980956355353681382515778215033517389304883468868291522985342193067590808689144775708700036864806400688426221692348680909443387173472133217855422082586764216994569079440228961227816089112861616021317997984547693097587456227986592182931695541164547783275436511910364511958443451855299964678517665102060689547454973305220620601350309118439197090745811941237313205912922500174850574119117429508436346018677709011626145256449265723794462755347132312866760131173636776491141315062523067386597608095151394229708560951969392318097245959090418507066313912946356548635101709770728340388284350225984441692786788260384021809289189879687042961584171989836951530334479458834805684123645870322599515375117072369771489253933930360402514296024450437978592631191472880678677529484825142530953480001737405809413318243040139156322720207431278764972254730354520780427668703366393054661767312539680409020927025506263027036142632956633260846498898097921047246894461269265298512045177189337397496910557558764047159497141392729159013980240095708555841063593861844899128476421039567878033840848306782717456200465229549963138209093237374095146397964294697514535906457851198701827792021637124453934489526265277025641935418893833807890949162409801710233642967911089901730214231558768753718310958933479939200543291525276504897427201918802386158848572907959214679423180017900776304812359817752709303767280056648912518792227873145171794079217662167655642387753207841112676417218413359938937222384674815277577545812086437678497811723436393146435131216684686622525011418759311169777778109342700520693367589899339547427506990819323352511351001366550127621201735723325992000179623987522655602826491256796707234927316973376865242844872672258147610302403489942180952429862992323707040229003676989937727917929883399922022983821561310044708148890958210270900373740846075724557415657909373974378393561778809010329590508649110033631387431145752576366589235280743513262809369932919219530512896987943565284448950405316508855485164523289947126769356883105838279685443111123933191407287537643229855419039198463980324710461791612909523312260289060557771449385963030414189645924176771940155105586440029130494358236738167320981572010349456407025226939815082346042308943563441026176221402075759113847873217362839115835035989830462074622067172922240168140484917668984681339147101387400228493256345011798290449401514740398446054316438812905879290917555599289780064270492129291325362819395696871668246817292871338500392748490761007128998332945448815838003391613985093115417836952925347959753097306189537858050077393240668831907280521723896472817723145801851383384506986990179880334624113469180944027455765286174060953214928596426032199725356209797428258736573960054250522712348115107260303008343564545794266698365220113220295341070973980742226558176586023926349775778314711441661502716898813516483155129958684505748430092588397777909040640125984841217690394184681175922264426302759856673305780750292089557958616879333153487063469236852775814068368777364910396244151147598909940617204008112425371009669210505743798403066129185213203630184434457060481722938627076837102280014516922888120022195218173122086157709189586586052560133670130047825454726969613947878310528674167074032583958790628469517980258963373318897551158734684627099703871598838754061451452402296564075664909717203366589569614785424490973920691913559470200854791014964279900414674663506066992125782788039457841572964135324082931430305462869054629126646484259089938089003925141736299916565777342634095707109497548758846622994591497745192685633144286741004009985374436615526291966247297680768110068556016017778133954495149822711066432142967317510000865618143314885619663080611918391891190040143240096935917593962490136448529470631017253364920032096166530682350432167319960884230232726939453689060750775229601430063138430807939869328845965038946731190104569124365913935110132588772519105089406773380087979499136224065355581732843946382457932844210305106635485786372528840919420339271361177252873199431617294268283442250118651524345409665442151593754880729346419131546347874690709886210968745791346648616601057522504335320280620402411420924458917108538887507282624914873602491946960895644556013456963306361867033056600722704421770016088725889732079011542449012883195412819303616332656665446980496213462673483633603950109647497028530999099907228810371002736462598768802718993092437478797527120461638439565223145679230404663562214321467361748769097387446627982165024706911189042326348576830719375022868599023581524989643590906763711626804574518529789309452212898986569889062819888005759345455387489874875122131685034752035148540980616918667900881864337105715452739232788971297873778038492810486642009089487924310137929230894938685894486615823809134737768656896349689592375111544716265807961320037000467129438258128842706552984629460608038607320294095645678594556592331994204414616872553490251413235947714307172246958096401220620889995621484255363203166676190954717968294354217720881022569993928645568476229875223521465854249841949747606144541306697786692648449523668493858758059138539995105740017901773269386200898233168165355956620095559466737352403851536757292366551769623098963834207392387304484819841994741087263908398233782465835891996652485680021798803731851098638519230338836668997663033256565996140690825850858836632327678917416956604464556024856166569373704347981607808781913171689308063186913752164671871615151779235753812190706327329553548511785722438190658312432013963911486917067487700452247593421396441902456280466164931377710585518776620285252467976349595725858108405693245714579429972361601511689429287274350205512689274067732362602985509674568794308879403349490689567577287742481089233719970973537905249699798043404219774116064712681577062146601137284402055841501745623927638887416711643173598581495180009990070295230657640675489598512540889462425461444322073678163255543798676624077669791379975029276064948486413104653112000577358872958507437483394133661105066375105298925680429427710513085881883857700966023569378101293594958028980416624487637099853391692285318407290698881274326512910675134742432225108097009874688697247524600141597405037273367888405111221729259886249127739203455004506702982890877203175218147324405463009853832463193400797588962373515606333119143652682715846793199204142570469842849306730739724041981629439005393269278692328337176398025652033253581552815257390321957129331185847056521862827811142847469988623444228210976622313300385411999711310932806013375896320771321510740066928540447471857717340331492905589323388320635822578605806977908567311079777805471205086244790453128189868902467663442458708513064498504772353357175609753782690008286693477701729133442904079473831496085113069095859308661065921734217028325080092539276887706995234359016985925165313122669570925175196699066423674518613962925021134186166118710608912142922783219752022741045388695428392857219225149165403498840587908201889358767942034519593131797702178541379762350485196272832480168824982593965186947809234762891266293114478916393011462384998859866936011695025773971813391502975812125151990776411996012118740453333516383098930986818775661451390931799624981894922790864510600723796698290045273662791427960611021320037729668030826956772869134756284733387825136962634631348117710055894153084863315482934239957386446096745076064273034545919744307890165610488625974634622169338930666790643087503596807361370985035720214962272574927432155946521924720087500315458766201333165899044019633168754300616950952069852944088883089194117122996674339831587623501125355069714376035212476257684059533741048763844128879511795873184729150495870032152467223695580541091341073846765973958439250122988169336850985463739456841990307006098313547657182293510539915904937135226612440968462708002858599224296254858317221077032518156450857344790458915408334371899945221755035958133072933303675579599541340050197755219153366910600014868994849121366858995133048555859621010678263996514339050605816097583997600096100455074327755281428879698833805339153281445947788309388075032704282085940175429093983619816591615011878661846896548869632997872163330513901940811010259887434282635689638049687202690356687172334583081172258802383016800548282006562090013553753014577841744700097165650735512693804035001309223014593169162769442279338452932399452410543228644910086487397319758372955428272654208177156330865985771211652049613379347624230676576380667098566971123598552231446580790452929435072780864403605084133075014304534293623532828932051479681579607166551909649244245211389847142566845538646255842841913914946808968345068075196371401581422949804133152555683092278183923866543579242134885024254977915567018687585461361707129263537309673238548635453479388970431760340081106962648632071752179224813258286317586184264736315594045335343509824645259626896704050988260297682828703432321862944850422982450296702267613373574322776518401657871816034614419432636530360221649140449595893657937226671798372465184361190420144582624108968504484189234329927480827531497730680466742066338744995106986907485403658505636314383319424242059850452812964108379541552796686789369057192247475835567269532260008930051725624321953981885818558195839564730742319090563523305965317239833223598526218737219480042983623550657033237365508335055271645102289449609867793147654445108830866172246661065798676207382959606339551571300912293626951889516667493382091358182773852601116695970999946311325844273066624941054352010340188859761627614562477537800883542488091986964916304489303089387864636009359003495267486236828598570487281571402420704596934597933380951133727162796846763805183953267492283563726433926932069357685700577056865811547411243976583373520456518033502258902393593993774123746170692381000993393207067786877227347033753684208385375754016147809783745013789343865532420888317324786851117484284899034693930474254282388140553126507858058216182342940072000241523900368743896385838534117700229069898678627030434306422787432440862662979109750118495025151061283843294784702734629002239205013960887876148412379869914841499472135259496324016797703078952747599137240106139826142878254793681001725764647759859941290121918905220163231454512937112910304546315639307810142714985634195200738258380538441352674041482171269768878307527061561089362505522278866193859605834030707013969535808210455425696646172103258119957617641854084753235411106695689044488966592653142018782839928998362386642121998277734379184717475867334057003547116549476824806492504412799241597092767206945836219340419494559039465865315445868373746527238645478423652571667844748843086364102262417293041794046519704405816322328454795752420460933090418176258541760904151302110421394621087317462111655400724835148807998132175952257315150304157412174393910441850895023722973229662901453056556697233752903474112837713105151600853584826203670842502478770866271062310294990394878446728661855108610656631743948762195825519501334663825932453379487341942671620063655316357129887163791908870222774577488715632104731367041853347057135079271042453501499665522559347009722669159936270349564442690807499217860106942848810725728982788699498138744468923221289924879236262056716015123565686334719217450749883328991282612553828833166042169593762708125683710247331899822007510188527140248194774533044569059388056505519221057997325117161241631395003204370148696479856538429940118116538789413351483058742767543536683183622561326670661717191987760761419514873506339011708559778722377259926108470570394508840865227729791040930823772812118150782603914949280440743173192881410447909613325218818324310502415931061982379263620447614700651318191387704915285545265737177805273343874402989892734136573067504077863466829001478173272106998901285647784099048732995222075560443008769503473233450796317381435042954856022859672531679147255503151720742179435737817340752689209090130055327194819290683917373097573565442367671816681186966191581822407348403584525952166880666633510736767918861305771500953265590826001709553648455158144661977540177234362498356196624840975580169916582016863077932073881910089698379593557499456991625780085291958853648932136993244014310957312769405204826498633300574133608445036511986394458515694757530026298511657685257805641011433621185574580912163804826586434992299057604352077007674774652237976558664410773736396405092269006914375298583602223674963737304372890669314954977776450303237295629007384622675831843003996430613574755460880734646942918476127174963227845293739055158092453039383184773015197804308846296037767858642865246075276068367900876616338716798232073580506245734399990899269378227447380026364407413148242623782383484814097818840210403640587243289202587591147444471702085185797294014962704802625863356004934548628561456878808794767968848573218743962964622010399163660136720775057378521026927798328217930318019447738880540900998783247384901545559556028908960631755201178149423068198817802926092738828162623646602564829909400658395696438678814589026616301938797500398645768401765910596019351196422214091084127440256302747854161262016486289451139519383600707451511145532219827044335743152511497022701299917895211359171193995051767172110690864218814366367742174370661790317059339704921685593571630205680104362615344689276806894115488338024385906515877863712943709878585892799691422916627151043501852087421529446514107490895167743042311697117780077941940521382060019872599939320441920777361467714777987579864687144534099311924408986997709283656018961565657627789006864214681410520907920698647196519099490188661699849977473235812791848813897131129509617071110719827306576017589229553666276236931534394088408920992184246529151569936488343788641517176061366668081905118903675504061788603359280425971330116783608151774168764598019220224998497933980946898342547883310559742377834698269655738656868929239906268386663104298487836031447683683246262682842895446584859262255501822457332529302344881793325005111467990250759048479739894783859526617268279343914117322314750636126812302876237436488607323854399577630415407032942974217069819509087273231706376461227399534194728444715561429202561783333496553678365759858340733966860387050872660737913477848111429828102101327326997939197852129477237761797291973559278858432109690693221040384187646925855873810123900884720694774059891872216505816890767306822490545146262447041659860664261201180947585096949240926091128848897282317625988547095996275624593650420821885442802507300833770828817627796695815382416745079894852209548169885439472135959169198691547751745246876432416070042118723488132471948914769140568340814243411868238125374224925575845505057366850527458978609578205426267469604731966357379612885526713797011790046170026960213054571379836789018104828879277524438851660080244142280657392559267748816614191420420007331083296119943028783198305482631940095205545902800706248717905102836069399762060193117999836852530959412786433527756023751367538207767250082407711550970123851209065340540332368916027937644492649996317810418811683509131214935642339369069077543878680234434282053079181165564513416287139531217078578368930774928155678885603356436548751893837662451735096960721912459886737174863399251873973786470481368380497230985331720651544663899165928628562449708561706219867329621004686924620746182746849287301572040704279515235996226792584387981539694633210196377450459485226993397670635310097826297388289419801990956696215940539559831862178905850614002148794278335019748246483683214427211391642244613238692268076226672861037083594828690629438602087776793954099542699430973470428713704156419218848947371034999840570627078949447597660597398994032342189851350294424746761708296303109583081103960038551540168653677082881265567356896911429821456953591992897628291046288677958502504597076292945861733058234792943271835106980627884465708301014173931271475319979865177140467147654107970943757831215615084229310384567989479434611062723035443917722899328592979568357503171391656274264132775450104743960963756330551305027810619760524948551860855591868646818795568780955372158665647154225014554527942077888497639785047662321033410644273970943931022519270132521965731546466451887532020208759846592075481715001502067689730441887425747715384824463790460402852509588723934928788848457555518420699381123250798334961776080301225400063910512866549326720565737966395393550963136648132867404604937743040232747635468324989460175368054787760089497012467031184939137519939817497317935799355231942231752792653423210374517166925307621650307169170939724529045012422947595186532224999014577768259271739224205677152901066657633180800213729916726141723988073270226777075468856205874476247127955525594563773418849012803325538631554657249997999544682370844520326483258608673035974270692339763945219863812348448533917592354843891394972624147158980237673359279563234414906571601681268152890802375768191119196049177910238109358975774588245379427371365277165578282759047803817985702566821003971719193171023022862759656704870240214024091343306723318250890958748003885487793220119264262120093677634868563056876303236369362912411443567392138634102278586864026847617231606515420484230984768152362343303000706172368435252427637269476615357184838652093177546311517691593115689104818417827872456813240764985853577618581622291953919115804627610422116214541858759002621237182695511600970683096292063148062156840941417944007784327549266141278023685192001206185297470880550616607303402752237361098917231586641527790863673728841795708139058833067428628071263780934671048100690572028947065466422458559999269875338755352708389946624565632471660860058350772193115175593028286362568575601546724939630531793795020402357215539927169431404190826080245256771917829682449460353366716551337945078987625906920993866971920760888745794716410328813511258124384627455527205611259599252439573628265336287842261621215359830153349517947406008420160761950379204800116051147551070938240648726532381607660713484351989060202242088891336068215855836305851357823801029316729134586603930089765530914873338927439781140981001482067833923030868181445863618737098868603132818356449935577137414548018884669657657523632717079711814129451931732222539083114950278281623244931851017164416424947319534049965011590827925871980125932623045398223714122382539758874985054175402997117330090907701511509454472056929638278794679834008472753728892092012483626908901056731696344362154439192880688277980539948648170660655642815400388056857983239562075810733959553619336293918630793206094918262620438410660874616956006277463698959470226366377688946263425494822292090754321968258674559529416049554291719813337550990633041591159018406010650762072310298045878623761430245038490580870496515156472270579892889028111042081934590364891474481111446419576088796791718021558574587828772589211426000362325135317159270483765116209433168231450987744222332274947141050088509051026044012912596626372542566148776107367219763324963914181783367700600824759607863211686529649636028235971701267940861854268640865488898868807331873079980793498273812971959997218604524685089764995509096336212136825893461671047579961123460540587922397703522838856721846658261994202382326563366872181803578399257817578710835486318927346739273100949463608070634734109633853719069647165840776008663454546562351754937720894377089074253226490579838343012542606583860917250794805646136731953646011738828702330317216830303600343459806288697026461226258938746949503089806447228505959671271558777526622989540264143578318495743890216182356834383655892686375952735989273334422689597944763375793539522003761262326893378861543819989657391467458475537877656279417493186850363890682891627320324904830068906010999892670252749207161732678998364792392830095146451239901394440145139141436065028171964986223908287534860488725214083584974846741645408000451411071911154737558935165667759965902199319860048455163497271927250053982424504388076555240312492095847225785952517831764799782896814547851890642451825133462596812142793573633582921124010770860842521271293024678434270324769670688189827534845605577575846656009458963108563943293435674792215840663269923614949845941296190186975094713618901144357988325323252803112838908473724140883970635112207130042078198973153875727171037687450608089810811404954907901233155759302988361133246688974243663309459139862913964810264261120370481560139045509191695455439015142952330076887727278013384201252259484408064839859831940335593197184104881188481139861010559327231645523093319677793176836270861856089583113581267080438956935276455360315988887947094337056157668680662562711624732459027935946211897776114635697465852674799482451717947637652216009037064136198923506669359662408428628854541264672510884915264007393784966834380421929830928331108995824714329342476812332731049713688758597402590518936553957161005296689704965686253843875449484126246181782438667738945618080310641446520601646860242540672765108582950689961818713139240412071981692759675761212420102129144383526111323348314005851734681598845067918527873185844987554610812439021408419679389692034761371176065894159204893481471010819116382004661779918300022093406239823334199346755101182705065122072683006229322045018618910646363802177115224735392266376399690020841781825221451847527020792962165882837196888923084120471331765930524086059001856176158125049961773992230371335425026105301265183704281241020224047889711475374385983692037734159660277145312953939985114777912234632091389213370537398218276757296157026331377390341437609263492774383962822327909578089718092246718633178863382504181434401046515320611362951782948220980392440932980092196612005134283611999416816826985840173100368070518355158272093555609393331401027176015603262760006756614795605438879872455105561778750812508733046000822266393158793792869947494460945597529045892238889288893829448008868232452089778355514360215230663142160823542996512415825776652224259351435265560801912093461003302875326529182551487586195495610940806549211924966518263244229062271207898093112119420867698166441391853261922784199899049955303338390089060119613845016130246164684643420805542031899555647505681333288118664607775820169065586058957678124482329226393814172814830683421326307685718433188219068284284687511380979496013958091133716846494804870243221871028924994555054540529039779788980425479273254536216799082454525280115203808109069552328528872582868693488261461333082379941799038246909743671003026599074416743775026122789692410339412962352379922472770978538006213560157629070710846061114282927176338806681296824825660385315356526769061333851352590010484690141704996855082805174651654850231310793491208074153106769294773081929485854520373126471705386873611383997464701413046714364393280801642109162487884064692464498517315274922144796582862677666481138738546453656691655531319608588981486265220714372225615782532655744762383001046221922918763993692467503840576983072349489373750576895022831396049610928571034141465582201117560483212329935983694588742256470569370654611285773500233459669405104611693042216605377177451095351631775486893429252110965677143872412500188817945160878398046363493257100795939925078223935012237601484956550665624527894487504938669664025989390862037599802423756233828010311466750024888185443183615891288901636141398931775798822170548422083481353560009987735735750367675425114011266917861595382687871228564762477449034596887816837430390403322271710158820660898730211772856669465531643924089343005954075753815109929449427051161982636948380041682609370463939174719805121285785318412583447684514541824642232972355274871498743212779928389256722781515410550396593854245081599008268742535287160551029891276490094906916882606111120970010265334719594577133297037843521440942492892928945287981609273751226996678383610434510290078544801785654037966709342794105545419029376968956015918712000977633832594044993219551279242291336031678306345326348732069347934297345512317699483726336967422489339248024951141703601927374138114071482485142439172746288535184772832510195581486469799005079259595980906956582944158244710485943538357743703247853619453509518615805994504975716022840971558447853426821157696144631234564561458140378659998936724164134749829504574936034663579699613889508846133005846119934102922831083242472224530676611013017952264067412027630172162606611924511339417180895189378030950280320250593384352765719775327934561595791534606947596610542254171537910586604606323315247313046917672569290344508952089877280361809165710562057267031519684164079537573924843011254618184688003682561076353962079227344487250769799956457185874874239368005488307632033381783051680263099575225445975881939629054308570643523878936092555408807529861880319092671708712626778131760360769373628454146599150100331466630471482031933836350036550885872100458125093495032126369640859906496592961352024354098055095090865476515163078001787356078531747267785802378843635421709901716309275280600997865529369402079218492206964049717332411791353985104802792153945048157503330830296323907518655349011986475191361282614753388514561139471707890528496688818021835897261673403920867798520206185858913475999922481004268459466946604094872042506514876487249262299450221236419859541955047390545535616689681040198298739706359513629243999015765338139238311525480532199338837059547877564141980940948492753206590841310953056286037144475104361420150160583298967539447109009927907365920014224722165235596087755336104757679121256077639509947315834684410406459412722316285345026637387867247828986997291569021709681342746313524239582142196259417774064643320328231422470439711416171352799382003319128947720183795760909199276382909842655209381215204938758858420086840177394601605008277255508645428014188387004060223418939408900043868097085724563556598608094726687274945426602296139720454822608316841373693679983195365291569193235838624305119469449735925020608224394056061742891028342635184521678310405938433040725213319950599312053106226540248477500600219281581926029515037105983811386694255823459991662507596944867776530887157445479349103865872635818854096235726899956454666099947185918058689450725034269042532093016049807607435516439444743564375635057285725303890286101429470604995753040367048569479261726455662281783075096455838898876297008887819933843932741374458566451781315343543425395307600014618292574849854851085919045036687099645995997471192291580504334451372727811793517220989199421045018556415496326492929096584487473739556380419071843178313045370202802663531840134042157305335983335240842896572362983008405695714237112080370120158292330692712836361209605088850385872714015644541937287114515313666423341635270723200111099381485458247575533101798537358682537999127036655166295256720803010961768152212251501682550688342432376646589371247447800426676137344657507772169329766689203496468229851820359104740420077104928614781875618354173733149729043111010160975436388109795805652013610290768152604453988740928655439273921560936371954164644007515763326633165315550823077815390879481873660524419706497742792982808509279569309195685509986752182068111767561631295266817464318890697058520878224941802762536981826610010737392866775094700831479858238513039392158622708242900240112856265129920780938110275755162689246010616735134147841136154261031741289254225379218276609371551914593856289109231740809423730264091937762575060900904884549261939621565604120799852126083202288595959001123289684342486496818349661550501546867225306240034462806559885095562989226827665493736932177877661711277995739846015338835419077856590700233043128943216930047367291266243000406351941399224235082084258599228074892773851954413894682471938780706872397595711880313754287092580172137576731009617302546272066074339106701018984161138957316364644040053998528543193433139024912474480408014766198297071890042415598252258677350735945471760389649944193400651604607769777459203962966627609278789362115466354591147656414998340609990004141770764330297313967576113029336689605952819621739234248324028025267842489815368776617035317708841186335174592643363804954538308621791790128132933064981708995701316084374466159408510381085893684560446671419158634121651533619846098503069429131582998395797711981304125555953734274604580242514376981557969134928435414311682101034698751659589855219201788755559876760653931046752068540754789006999784114337392784032549940215451017299207405143879023155966186203673605997393852936674778724820479302268668106742983441114030956417587492223028567156704794029779415708981144666217892694494353401164338613478545852768565116374421999683587873213609795695653923965561856712703349448547284663916733647935270867991641493344788058948729297447290890825417353692647238604670029517861747988577402586180701472958947504625164984758907361542071670396158561913473021199039659608071822836903218172673131189083978591619814837820468165155916032646073234768126595047919783629690588925256985519773832807249572446676726855205016000308395521449899684827664034779500189169338726950858998185889234094489310431607205659543687836986336320998520407007862246541128893129568468175770504471223431510564479596219198245643401887578017676913060749988478012310485601938944512415571447337650077715457315019616852595531695506439614001912644728339515961801214027143331072734592264527155335951137733195185936790983126694343431161555232806139491606027792868981981329106628741325443412168593743212939406196842366695160980596876914244845665315899250184010266032620978631761594805404834614061831759690332640428070491331373734240128575005271641178427294912236307405915524178317865386256915981553499909930568739991043287217418929276866232027219084396644287780254887404930529487380715839799304353629726879408818573456262377899975459340318809152429717110908844360168523601346407834688268574417745482305424989798711098096125574052396912922278545741761515956950052367424002554414100897147103547053779783881373344710966943822338586176651633132541140445967173427238978172958948343431606722054523284417118092545608622620436411688823349624791042441944956553863764535320780828515829602875487924177370140238016589681075926892688611806021909204366541293090977380081055048933471307214352112099306940946903384781670758585236066194779214645527236132430847820681662547073850065935200760485228181882620978762305843493043454643171272922616978027349154623949739871320554065740551972160315658896211250261395077941484267038320669666911225963417371799644647777734192598993338359120780141442225445884367037755590962076031710410981616140299654671576058140528984569778587163578972572213274728584345249159607398230733444604615054283747507218842360360833630051634740051812295674184486989365758968947163142426036324566141478575095436803215129784141262732546738826657152457966123875717533537900918211400760125548923446580810988699635820707245009012120660421625858776539193615467876850118553145748621624530251115592068501469868442414535278613512050757382900456084599292566797738083874078726256145502087350788454574088869754665110201931603283968650927168226772333680768117014937977582363120032387388870557086010473463587516852517237879265933222742172826815186806483855867113230796149969814347283624485475907088275570306834707987785729212760142785338512023785190973765008314971151561065015363170645447512709295857167508678923654145281881528327938411290237660043564671054275779456365046502605318362923464645595080021962194438646432429747350102867839091889725526088814387158829571537535693431550364821282502782729212379444633397239790000491054748391501856528459849525326140807195907558313764750429173192623305778704761042911528059018437009962632552999347135333125404949619465173934529411071621541945340592027257613528200356933555458374222100297063270184484539265980410004697565380995752857882730401923945467201365447035502258132380496984838234045863983128755199957535951577115430736521186395735727881825699325123345394200952348044532715441999638745595017276817267806066376271908904677738695341775224927727328574008607226183248592867605016923471866961236879039557629178355093120414226217302760285089280231094926406292881485984364416189235190838506784741312133247582778129479760656658994021041266197911278996874858008691320322586721853216432350834981495133746926950627788174246525517739247187495173945031291289843053325080906843335051185028714318218135809375911263689102926416099714370853743631659346403508185642203742671033474484898551933208811586143334165034995686398564417065174586343224383758700692754672176734662912413082401888546386555044389624185136450310307607363392772447736707059376135002373999881945809354036427810680606884301264521218239536425708279512190112825382519893426867508586557485838566735106530255452742954866263947154250776181751085490907392024588451040211009574990318592983250814220854426171504777646376292373669802406242444722979876147939029327514911527685261706601231724655897889498421165290194585846498444551825770448628895408125272974907407586012939022657491860137319924917918856369282762952752630169028080646720811038478402456484036461690810573173507141418654395922032175560204494331115720192103092801447679823807321435593193814182086795140393518190880177949557756229687705860195507017948160646425988292428798825494486153306837361148736492214685690572874861339474709890066088486684204761449901193884548398756508322843729168545990987674677782232360315373272464742845957865663802009134865612359992838496288502470293019132563271457237683322199774897196603284139316579203779293631000497318206763235826137669995670409582107379472143369126340805998438047690195992434407243428341977311584535591629165404661240338079855007201223150544754908737831078993062908154341517118720517041158171112440919052782147372980719523348556685363476115483932007782978669901469142764069364855788773302708481435106294228458406872310211252539432222805402955030798487111799728790445729363162901645140203286490432810386254665362589116273344104317651852232346648483049019371246417085965578107390624809775804004540682701196154323532629220103391270908298704266947170291473975931592663451011807731721785064811555442168537853718779636540013740386440557550650634560876213010161631356810511943721478743297705935327936232529691682968968890895070714898095205409976702975351444410440422442327731491291886889792069081982943332447649186213061790452948521054137192985402616774007883078800271995660655962714223783086203956603238087101396667546246780388588788912137152653824659382756587168600634999637387391342397077262357270772688623489756677678281950375330502795111230731459861700591276749223700495649481546882480949180993386865510310702601100152593395564950750139473948629211398064359089957893578751546406607119255669514040956406000293517873258279312196867731537625619994603992660596304358459341418840765201682953987503048038663913913287473586346599015472360221739994695832522128330217705639337398533670514575816841711140319774653808174437357616758095758223931041036403066350111220253931835434960491799319194225172229910918264336762742352868008193331294999310279020800224957469693524589020896485023135606009280542853860993147966684852522918386646888829136269832452440505928382976510780778953933864495992454695259774401317319216706444978013631460407658631537620352405773205166228433330648316273138185789259748997237427895342356906062591543691892144551922056305966292533764011740667564716037606738876863275433101706258601203183747362130185396496714858647064629866732299984177576154464993946069720508290502459711261507445207135687220977326161930264145748504247280054831213434239234830670135551355114671355654125303593949862596338663861929412274339875316734314554678281513389956181107050238069662588223517813975337368335969806063805105409227413130714748455361792481316649240960556581635351001327519180469293097221266011938213970746246888948413686405608881211139531215500830369477834472732655307763660118409712074753799851975567498421104936891150364212025968877934921850214602086778781822248553596750534520223392895599856179833116545657250170678806787711981370601644406431819358575013767769732527408794576758276864213287709689169655545894913201758810495438475758951805505680400671887724614840340914103713804457301570833608438235016772010971529879257145313407140048788911096685394188882314002398612447151938520402635343657289215793724983438801009606410255594080563833740307178327570518235269707610895134894103560817419160504899143741830431385364403723362127045116872243274991780987822051662630260381246021330953214249324066954676915143003526652845561872734737276963051483180449761047354558981970862748107458690810321055846297153575921769884094100431782963130662180442002692214492502652053447067212229970822553770888359946197531854222962680757444905156606987949189184347583578819837138119988379281240505536977298847786971460776874128911862256718647252373660006914695269236217016610481175872770288247271995750512422234060540300460846967500446637078527726030444050841688302455348167872431152431213785779282340066229777143306851907172527261759663046704656302790524640499590089574913418573070184285622357399826886779053172673100813459340870000943257045622645726603303235385366190877891244842839402538363889724181160125336085517414239216911997880028089705985098934679525006895680136566024988548701998504389917973300445957145744951675488933292990390893797474662244267857469142460680516523254706657063270990528619758057204116561227100583480397598538481475922829169261576870497750241824470263852503244882527975323531049618304300111307153940752441517087024229338053108237596983087751797804316298700228477128957203612706693431689745489701731721636679628524160992850979090795681161682159239536654587776334314780791697451777792585660261117609360236969766949373196198901868675580730801288609709955919114100179562861515954876295786142462392113751703747902336751975618802382360973447911725148197604902268737342460931528317339285311634749976404822198246147629498504868154993748159313239879020318224043514265134434574604160226665169399162240041618048457619506079307411514989103467970673949468256613168361411598880920292768109608884910272684219916125858210632606864212873125043790151117223791524837419692883680604573189572506542902200748552936222379121136665253326737567545811413573138165084922668495944502037774480344340169952594172502886276529325350589926069122781869663372745960930774554490123367663951233114133646259581884885196430333992561615917149432012685154609517105457647011788586613555457146167295090878137110402674438973331974154900923568704307808821739240863887680982349880208375970902599284539433982201502555963322898597454967930769688048224513740192679519640944574360100518276812055218612031255429408229711106346067898514878145086859472452948515903334794966594343051584896912105741354971504516374171010820132380022650711635486143806284491383297560300516602090262136221473246623747447217431562124429999428870934757805024574032009129637295403994008852751873759996898491787166987805293680781663139296343143945454522931016929002303662723987604458756186063449832529552963087164460909632534085826438048862445509177274032567821130629630349562449394379637641696115205654206205393379795490919207348883257190765295246919476641692910508116723213020393487102086942966274905934580549112211827253357292816373485108965730813848850977612781178997272902461394684926563048418946189672067632451589366858438850231152249863231323973481365116727465038750628217594596233167553022805574493502511331938105102004023883214171785815229068518981761212630351707758455654553866367346995113481273973231738532266311243494485329956700788771714270016037867857257046250462661633688352981001003638182461772058848300986835834267375522190089917469899464741331105529959399077332221498526640998107641548658980542174983644118643879840668565158707891812752742205268776665244061832712841084306875914273618051537808246795917146098945491908911170597371511925311760053678101853977989072859309055253533533835196274825284024947096787537067398070114921987817799808910551751343811598054451935357017736601537896051060757257149373390877297420285098644636411629268293034227166514112557006275298546244492808822072568647158603979474948542251197045983316185400818524889114876685814160325000647269793010542854674171485982672604978105107983826254309352651709911729526716585621894692735093485964095116256163099270623704580118507957163121532126236690186139650356926684064764413706880375305722225514163026236177574329161598867877044138320400011724557338599081645968605669239383266552162567726837617468256010327420905912911639014311964702510679178273181260884827552677230639454164245649124794568012770928543323655868014828307578544890111214223124539453959432175184862160458889266378555828293653701643925010693028096225876417376087266371736186197392759475580109976481582426454677093435620442173228797005981477958844286123464991645563242967542812682004175204759372439956674233301862935384347308168978367921660021710584160564623883961147971383573171648691546290648034096638565905823828134889388115729802191887595228912918343229950129101035900034495054915357555800508434608094663929448299066593740332960284395755954498990703510756814676962511824403488032616867795332299249305647626339555848714358982816696822753849306778108590802922919265441541628916555052481039373181699347159655621715665678492428498052119096021926975912979162502185702559515495618789901259601205614253580979023701725785661159666542701861964028001688402008350657266578699135782643353462964007598341415111831861171267099945264001276512523674244054187024241567126263632498189035498982657468727447213281247286426119652109286508562894164881192010573585394563899493806265645810877134518254762002082420616961040786694705179896714694947348645669541396122126088907067795597887330707135557846199482614685262352797331370078618291378466732008910393183195466708445922813877411756085605902083930519377853896237653527848320935808313654379330981572854837285105522175049760682784486301369346511356519108405811001263294623257006847473861710963803182438741753744093841480040265779410695022832382195881658144410676049711272524561640825965527461381327944530195400621413706917681243797505763062151261383741709812751296946986679219590810212912501028574969758116408337719369369798619743775780166529571100195096387997125005921254846699747093018825777651450628982658023542092697337081806151010517473657154908687191894264230906226924814770434978300967089494199410557061134665954910395070308464495190375931025551127964338634697109086643323321341554947268705459645871964758469678313296181944635517440442379776836806780263297501529618277023339955098244064867837425530101072038787776382559511415219640881711739630465766366148251826587457062170301803646851434937249126767812086208529296606141437531627450606155247915263897528376517533745222249028094677733159478323590840964478252272474162016262276592282525981295126377927346520879571095992762186458560059765351164295012969078765152538790979180217396456882767940622312063649288609854648989063319545913274663967345858606244199970732405890625006245347800077104213821544765457848551323134309504320180667570691027911602562165552685355174093924943074658068130891244268152724218941208336679677199410046988746262743565368434043827930432934991604484080450520913067037959938433247576595047355556906638988428965128859242241181648798128658226889930982317946478364127294342559023033946706822940390375094977647133730367267178193021759737540007580472215419564682934119271199223915926746309737338326564639759601604807006905872566652027151582943690128646841345958559346636054051315015176269295915121962567066969451763503637489845886320089830339029705967759682323999748046510407663705620265823432115736955002902727761653967402936145735018075218348297708367562283919446214487983978328812972480406316295617642059677928672409743949305066815120026646416541559827072709949894200363530226001158868661270182480718771650219644351785646337520259265075827866712301979158818004261937833316784469230154699562305222910526775882162359077084701868854450452160846500849512030409082332521818351729116557154761551466172310085407113454639209874550084113295447336379209911862741946065141037155948619707679313140248250800629228319270544871767051430823301920356069006356156926833986672333528665836364327295028123353862804305670050047078401890407746641057369048710427445690491644264887950139067084990066665295809761153208168631168758326005770612461442543146071772284066425361259809234531493097654603075312372139431776213843124470842749448740108977586061774306238379118829675246831997579416466173616011913402444409018411198344194174943902276872915945140795745693362869268605638548953863522281244285488577390597697825751456985336542943920775708016287987080197314839257424354484240136235720906626950149961995480066560312470356855328753029064440968096910244082864208885483127477106699014162145331446410534144220813182843992465283758335532570915664689320135567613048289712990018457165926216053280905232720599176026222759845483864362416964169942266438786760709294906880053948933300085927558310650799393560285031703087929323382451181884348480608325474166438204458487879261872427788386690481719212335589857717491296518899380096755926415696264567017146135623464558369304879528499982368122413631625861915414758456142973105020729283998059633861298399786734883898944089083890516464958507306926169327597850328548774635848630307192752044072234902900347048691524106136237238099314531043232156616424201797227178456026424821154905656248920687579106615730675469041036315779628770213861462941283857113097191188228685063905980773951074752388005646720066138164372768141835384401217547544238884799249393878614646481843551875597093690242422428076430802598465552677122949953276102862033850893545107008776844183397986719219616137733953426239238197716064305805146276641598236229697384777558180911208440572428892276456753971595281597229878305204585286680106182557108520205107639111442660875343656957721545969746981446028408404520430105015396603411978523305594531538197917524274349313668888916806066133682910101383240979887441586850792664158386796033139329479762178032131659546005062681067691255372413724435786901978708019609046133392801092440218386157884856072385836978608753169369899139504001996139053046023665294899166364625100778934656398264564773622057453265261080098257608792975861963670221409884314007100398244540063469684870346218673287963834744363198638307252795640592462622598244952454692832759152460643404160164156264629260244294567248403064314894132045917943231189780726130025263186296455912163308262673755690802736597947512707569599999049078145297400541342998089170522775756717049660256543537192782398711894090000370710764716472868640441503220328351813178331072388545082000317840220032578376399940575335397369406859922625752118018549745854954881504646249728494920855042210549938424555072061728373341164836657388635020164600705504871649147105025937719563273287987874485687910991882233239056542391112829674022997260286184067022035272134414516625753413820477157484350054162934291684574972484259008052235946438064799962278064939110898048788393754682822124172514989123602870969829536359064880445269657364212388114683149246282605818032795852706758854185534248730348043709189434248249755941818812174898583759084254876398651491341251414800826346072660424377297542945264913957574286954672437042863145078347750759120688556915530562101887639781474980793901009338137415809298878869918643916734434293403498588927522130980920261688674092799862170116743317096591464696071072640861825614318153492838603722028603532044001655265156273793514228162128277164879836648657870551765608518241223271918192131229027539986588889577554078748913715537719061796074731230473976559808003846486372782443911303188436575970226749160534962016560253793184595481585966971060861437042103695321877783907099180265110493560837856629055373199382934674756989366166856170609739613665533565942847834125856952137408068549660385535465935440635131687586436547187073295410398163824041532501480892039464188397031641009439507684052250593774313131521920769653464546660771106717601924872709271787678302533841065512963875791694393588737071784040925161778471945920261352345019056583599701386483470700716256821500038274297697025248285841691989003013095758164120132700566785274057697082564102315127435349497612419494710997886160504310511809263707662417887784284985081387282269506130499880310107481397086075638404561977299872064941527907573191040767314245512145091952270350505256260619208792113334174554161624842530847551276339642110244839834211706512107122933885047580329340641985016028893574791911384899068373063827541239968464501754849377078339443109606844297130232231948682887516448790735095413606289108067725097068077794273986897579731465386243549899380897871222937989414413340597408109402462833237832117444922040820083019116528359350478921454474347210668942386096425032849713557646253228930523570765387431865337421117501835027475648089391308570253307880206905061226325810017070230608474643558973365117086076411137943030903885769034650613541170096867912511872863395384530763826437887968317847523740845193605595727642107803139420355010501124469631299538783016644806117369376849681934933321713959309288980343711081738513040894712483138558806452197537505875656625441379647241795614448815464867226017114865897711749004516686039412312333115211419812077419887896596211884020870887049355477720389493876632629651427531234037280923298556784724267111043586498740265909558511928196271909327076380601281687364506519665780691219097196270231847966478020394322580650966155987291154292301965372607096966194900412348760665690429961513508049899672562372301584332830198351789969468107218316664058081483838865157301436943900642580424405546661383437896092761611771593641623427682571607798339270048492544862000543654170307812793192630326108586668112133523614525771601187593138662919184086606209942516644369958864935451716858542238921464720107292686429664059393622108316669479554192457434119002855142356457454108426122804591810848078568827926934373079802484309696423885006026227695170992571611946106536511747922586742190023407646923375079829487793799231598727394226029697675332991556126810271591558829446952152789750576535014291375659002187300952229811582152518989576365909742214282493450172138001983023461056954324955160951696304141912316479044860022796195206126757285960275909999037395061162985512003168294280157053526939452598966175472270569122564591950027056082803915917423850649210358768850726559001775404298644706751322484065187148268409609482686069455456798796382122671541538941625146471310039986855577472932846431549147048536462487928343972694904285791699903656159277600606201792774730447075360822581179538164024573194852143005490337145146519510770204756983017669464548718751827396249801887862122573713869425619089620646660089604373083207986518394975051784149408174460645182280361143002609925050518033996822533909944980266913800172842114350092802375199378253258817885572265689138230492080501851335858293563793114978284437677160876460803544619718303516240110791191132532474187157892015821941337551179471829161910916394508950724468120355139041277910100359812564077285293413771307006512383194920054453566853554173817761641339146469209178455298289240616386100257092032093760539065151000457339603959697333482436637742101457328161811732079897359405287190864735784151045386751465761885208732705282044284877487542569604834553155482962118300068517247440058956783743527744573703195058503380070872730951280229591468158606432113362750732866061352289491999751098262241590508979746831014146666458146704964738618619131893481467473591039631141721948220585839794828577775399603525575843912185264888331899343640323199829844366122416589961402115218961086419020613618285151961346938888800148781598501887501344498901058518653104805734356968733684552646942602629216434004385179224880356617964153899046284653692080042995888678260110701780306726185179990688990744640176749580225932049008107643614268546309745572279091395131788248669517800835287676227800913072948150874440605086316771474031485085114558221458516157526157756938593629789140584366415744881124019065449120626272534848268149535186883981888361758703238229549566207443226244182686344037899895608746628801562076909562938251845118202590083737081370816634897944222986557462801533451997322745507337346227273357777157835532297263205201255850057572186445984638766390173980163554771070804424420193693586446307527249629724541708900896602646729758955060473522989536159213886097483562111202841600609922971630117312304985567262246586489757647533916862681922134032504615489372880586367061720241065094528951614242739378021432155776000175582789364423168338838247323979008344079035128970220936467990609971940006816873934849716849857753860142973290224707084101376146304696925216978817369571000766448973466744516908095539602096864099779301112141660337733364076959029723155187858575028706346292655856943161412367191534792614277112464536707752390690737807216145247251084939673381561756365233182386398585685821524303454495183150095726842406266144720914235967751069247493428055128018174283842244097703916215287387210690878216329653816164355345006545638283375087459934058078209671003774109135829917147115543667225258226195736982623361160343815353644979483427588276234176239203055771508089457481021642771853009375515224787580577874246458321938316644257027004268768703856831075880002666474752891310036277931499048895643567385960370367474061780304521810980351650429171664566742121212576296566062795275091929152698433978857311260274549439236826701350584745870739356788653123404491586396036156409804796213307912293892460594623180410298703925661345564149575238907215261261698593237575147515686159844055757237532578009455230460008005782841402765047544275613180926656144320113329321983750849979381542329302093377134817334320974299084146665025912463890496035605906972826942509048756548745113356912178463029512975777527086419716445471858127317226285657051592510754056834179371889325877936514997875162616699370012845234920072300526990017340583924687195154655146561216557229351302989584690341102745773125578806858035410111453813624164716712210329182476562991293932491139482320848417275381690361737717766250165904215051216580747558926899558272677503409305183081563381275859988066411275010334615801063501175850664819835158958120518887284168745084577203695386341111430311368589590664241880762098353853665747269070215264161363190964034401042712893545356686876794841297374684709689976664101428529724611208538674833390891260165052955877539745480636929794088588518562479010453337870966447945267698571988363209820932042370482106301384810507942791449904750901338484053309631721948191381851635390291188431602580546286870585345230426981729754208001088362933932103061005064017486230886677455561066902486951292080740129589672674845116671536730214878488246214974122358312711573467021562007922275764219500935646141122621749518763446136802833682970922382557208815403643574683253147102521204883938192574276079149729990935089158356083100346528909852677276312179101543729318353882034833741571154049776917471176822703845496176250520611746265448100854289672904254525903545239526442303234259134836599851880272855636311615105302737793373764029817885434202012980487641548891667669997608382450985234422545956345999185643736363249835322094518657639094234429894436126638791962676099255790470375837395680823330035406281985645562476334494548437360035113344464232099027577113062386074789187495237636035754417694545003736897160304295467793952394454015828162829304022821366177019098326318077926740182629141081095792216568487592951940653232912550744044533340471260340524911132550499435943948861202855363375249831127797354130553183996243803813851152187170622266202422578465108335970987840214888258845542611386322278891404264210898466407564561453673808928196745339063287943527013765250832019012375731370714133079161296103102977548713821375030321975635198911138844150722451346763536586971651437189712419312530102875839488155825888274424650617820873327341254440082296331004345401979153587595096885267836528501381988016827316995235376223529050058002727156361443543906856067715140945488683643658507034429178090896135500461177097062856816069321016657959394036687072397824241869407134468081419217804639987990756927506961967996856852595548918077984085872713272478890415917690811295720867787737054682073922694189825787065834073340701906675232421078882875727441223871830860033900000893316273377852583014801970063900592973560880886890386099886341731577720607591031398094432219583504738086192203355439541889178097822718886559936126405595534501195268285481338648868287059963327654316529728779994013108515649867069584897693246145184175245416498790472275579587485194699702309300013103178845997485621693358829178441819199324121098991935442682845232969226021628894336283702457588287538392610969542691268066506040290971461287697050238842932116304636294591255839099142786330195001484786789301212273686298537928146137028676696775380269470962887617971816377316616466246698448024813470268005903398453491373545872647844797104583188423125908998646484235816584868131544898278688111911129852881383211210624935876442473627844056743481953949336834562046961686344267467910600479408400406452464715545541201219269922048518815445664604223166588827896137488341663866654125958286123894802167414532411516510504033343409672245816080437199852991777180558911949730646608878469217128541719170140664867784784795002846144645888947919128105994064300180695276450166529144410856001774141393167426637124942198244618371701711492450113584378655063243144661117680734611129266171093576739386101917276297076911921213387939181461363724168059463919127199739115053540158888773514876538750503645948678570045547121998387788952195331779582907138298029865108315902949571329890478853759514418790606826783483854852696826087975544653105028460669380323927095252606671932510408449570739829250528594007803800416781387059501742732517199937239674693651797087512650600652565617269495439704855652559618223763209997855864196198881002221499579559044015000911083480291425707495632460452357154882170363914467775831706349517431666195472036649188116471829218385865781722332114984613532824657952295828607187554869059778518920228449097063295505072103481500333110636783896902892210387494361344826027530473894823360269974058313594323639999495168855500218707374789807117616658435176528139697448151106107609695056159410357639319713113062099176072426588975651155655928949227532369185921430567528584154345902254407082126559075298466607630989081387004835665102636799129515927323176283966709841967213602248263705770652668949832347549949136696506413459953755532105945155904008115607515062068464620786771772275222468730982706337475055270212277629773298554213037708848447681133110072587089476930266452364565761552246006853743932602119479460425388465571116840234278580866724057812008086336946991197146206987043247047923090613498273925885084707771186062132845296180765354403849638061351981892317185092543490274641060446421136947977290745995384116842262678523114743387678306130489190789191306813921569975440436553933715343950809773874452414891073253184321860596482145232788691867658927086045094682684966200272229933529082942747501220123272835251983863917722856383561062415097578638280909880775700941398789567418443076222468225281530800152614515120905421407642390479863831625269363011507839876101369275430840146895012536895710708344165361539449286318577305608542636258418578980863077394597966829313257158588545598800669558916084136225621792737884751909082435207821689827318402019292170787321778724985082162757971743888939091744569607918965615242675619252873233088974399594701291589668476391809953861351804567126884340296790945138755664376910211438380344296875765999516408383428901085644849422075397639391788662918559775677610750786447082304204000226455659093260728286184370455661535310206458269995072097066552432073193680747078548219280308891161179822369313050215273958251561576807978329829576023248440150824803817416781216112285882860191012287489482156059064172343811683202346308073306263281272885750170007832273622059673096131362022730714891493623021871674732758826761053057829823094234889427511784979318744112437704324417864295620410917774791035639780044503285325356867758587663077760291335962872351837102895147222321332456126344440585157069616479612892133695349271741812530746311939114368941959842831012806750470022865290835470206410462747225601044575077419896228675256936947558324152247197918645787087915168603248384420059011789940843318247077765876784395027973619806139636621880343060981437879253383124913667016335304875432358062028980103804264517448021761283333136384725460438816324352422412599485912446448968176815230991076107145557503367968971582187361776079861697671420176864179391998339759109006804034042122722690802474152999494722085153492615880460859638527881441440416066484224059212757814662292507366659172031544507679534056844452323014072286944751444652807349640928048741556152559106642103913335024657119720526968220535470357099450137059681513779721159497226790014351872437749419628531550292384703979180712547034869702590726189244535035536631957730248283988932980599776506638578424835041747288595303070778434624826452352690664570949677079952573169919779588178165270652265055363141608865509267473928721808429394223243885444108631667481976415424873183606398475589497119474867092319944379209956554389537286495891430269962256681109438013321694297846848106598554992582060850499436599584951653545876204498225069357716630433733075863032976573281787295715213939013417072945816366037181428901600481840483735367223276451021879982914155598339454044963115484856662240623879089093883605296376825144253141073644831371882292182735771498572651235381280615121427196009646022454591081118847245527261139683647560607606470857944466062539552634107330177970585816704857751511109180871161229116047610977098832511143725666150134673885956975328373653853126463936511882335376963327119539959321724029034833594938077656842992686574102440153309922952082612999607490017933985908339433951676002850713252544979809261333056591202477355816810292450626191435012461382069234917254621712249457254141815175261971374591639003212860356743045021327469287456240236187836823042755150078062257055915814405716700490037774402947030218414466233669007107101434287875748503128788215581794351210559297613524593954998847802232040669409726532994354731392634543785337640028674876700219557294248157015956745223793246310761492002927379775056349794664016341446863558231938437637968013920466862016730739437528241926373791088874322248850630348199203688336378624817569457002781057805089205641227227827686184967369794593678158928891177478561319420693976480218759773177040152622293401273440304120104145901984963753362331204841891009377724273123779847368398419135444234227633410424057697488169413688286298159041092654706700860743944568897536730926023637663613632371398692065828579851085176739850680416280119555791654796141458270209197851528394553943896356382715215603345897306357288270420699725938131387001954715563955585050632125175406493763651974390341706099610463011693255904806137114275216208174386868706430519999365374459674122759713575703920051190130758003117394891430153406346360073683569047981009075951076565265634485605602548455275633189621609719371945568188646823697203354895819881041383640168433291085643701803721441913485575575294795890287518683929950864208941976642210297669552176489277428979533055407614887510731370059752830480204741207172565391432877604691806137549393373990535688114628834093429636517576041651657748803315477535135728364180293769705379405447822125833468485499582032327517400742545876697625504393805404578235740448935969621993312102167716326101188359125737171669493479988564269434267982994590904609849672050223746305756488028153295322857692830155307630408577568601814499272069533893578357123099534822674481535193241141869033030562536196444422188317191073465945612431875714647225395546429183417763273054292123181330257641126799889954156698686938477058626486859911704020273005618683781114187695989626153801065272082502789123400230570444631616953682750610336991665842913643831099384021149812094691680493380586419125905248792951590674413284478673183481897222344984027915191810679574892282938290326653936989563533822169564089391408316163501286132276332699962490005415221509381115251602485559436006144728968326697970692248916804031346764567751746846905906712874152104808433548921830164270859918218900175013206944873391969512656410835653849609797829087374413006967426626861485642894953941410327639741271508858645356282514074677766472048103212291270815795918235097883380439271732994509613407024242564017772616371733217123839002587199932356709955513959604005422929714327906374070905609275430584270725873274058111287002915164753507522452816047580720223275355201793368072583013678410299255119069164520615689382314235859736936547608555750537162977251702912217848265546875680292816318970727307170876696353595986357725253652294207023575345202616759494410292272393146342270712542019280315123874777968733205419196431562874267703419897469810035302136040946719737969753599370614501574547506905301000025009457903007712713613629636439841212613434779305273640000344849758735697670033535903698148058342742244537039592717515408627432568577151551272066509939890505005768819741084601109187675804571618581577127389816790545696323655205804887581708805230172645502786621482734003550271300279748091794673058567222904931886123405943388733321358751094733781568599742298752100369455078855459095284817369872187052723019337644651420126512956585972318076138707601961544227225501040075154024411845863327709754297076218671424295608329856916429118230715554010238360501040751407150307376988357936501750399522972317343122170476265110228797874234158027117024534855881589050120994381681312418039352534572761794547898543395760641601532036532957617534634030225223540523443326577088420007625096174142558948673380491295872573142261157141181578376689845618402268300936520612474455574201407967880094514723609475748662063275158605090707766277394418899790161132524945084091368680815226137941741086946516034486283458171670846856693400366547644586245160771229258733242926374676992622129915911951787300199407331431202791722226056571360143949308395087666280462787855197933157619835818535038541562483268132528744870872092757849207385228310112434721505129272732973633185683366845228736779011915935523031520460268039825919399526270874945027496132891556241021353860071062956699136293731548011967481923103566622530279656557855301444219539088465091489361649262888619057211104097232354107364323856555418077340167161014161996238804396076761526628587803913563268347011946430969342927928955696264482355762713268124092439255755241176905078713919725449945225954680162777312833220907904428438350513377839883283490806837948115175421188551518837647667037946551712351346209229186130300538194516149994517992560734294162732206706615433539008871303458894366399099478541911472786231988819372952663118734775368640049900786113708565439774416977138900349624384426437244796933567856973935765137924002357954700890977374017958260597909779391222557367953003036516890552893284844498500549878255878890768735880464752520864707853606312912737976309072311574429005262174030139011450318770218085531238928946627899505358361686868396838261348599441718286749029719282015642316650993417085068205270518647129308663933058839216711688183227112063164966835926171508911774808030589470944294029417935812082184194771459783730478619600861159076887712673029171550996371275061416618011961494606115801016891958634472183173039658616520427593460910072651345688099221561078053434537195611551730881302920727686870966560092946472899593266227050716094484699131337691769822423535382898716609076716172629257028297278736819745449196984367892014314472764035105352399411501890122519239929788184523555842051544134783797718911597028266848844911953957799548769779376010220771499845634929208206803876871389129081895443211270453444995062692536866544122539251437592817826564130843584003450134793912725892743895447374397644165564591202669939914422259270913581627457572167271596546220128801779458149503388955294528634994293498516894402104992521660896886011035279529079627892021337331073817292697749331105862783353712556909067656064664729925957665403541821490180690420302724670849707705463106085982460898209867865841249043513054627397832938590794124563695544009894954676221274752151832643321895012156406700717000230332546352176278112478182879152658110519961174712390081727798436070635550782192647244427777352835154534403421001756898222488588616115385683471698084018366477100775737716220694385666439974035348874937872195928645780395127163355575950198670555177492884598958020110237163040796773061819306719510044419537819084418278418214717097163899459893785403379206337170349527735810650098910497889346807709099368713748185763042794510275832377005025629016806586736499716957631419808780256263744552294384803957124175517636861025556470900789366374170259366651224722907798815401977884125510960786574986721910373950504977918052056169219086252750489942554245974863469573047145415174117969140786290594748094161358875842143462312705685835777095786308578849962883663535488206066758817394349572169217266585429304514429961581758718140842550329348013604447021121698369052076394657272113710142439461066538975451954391178805278650145995976421604488698609142047079885547126841553741207243245593135722721614061789909632973931445768897014350261642941284821791321715168010942509924328212871180279412616640051830066267477741411308352435586825802345177210499596672094435378097780880887669911220751320015463232819731832978771985510136526640408970238928725555559298989138330133245200390152003395974736348547207077802291783782903924316545382757589915590559144999280047950243496524390389178126135870789351968543088093842264434798623813422826698957404516147174183611782887428246653719023095901484255324157290780018545655056890645658849168328178479855870616394432420272613347706077294828431195548095398182884715071700183949999646577393441952462986231473921365718257016711948530616322488157827656394252503832520228165629437848870658836071492632437845303729151483371123818101252762295459757726770453585225198406253849737863835382637343244301428600457434716446447903202257629475906208976368339777688925834529861698194164750736380510916571516124371730567190930442690886525244549623045153155998611559899636809907119649485678370540543211132081639163396647992865436745702600314824994382103421923667846707774455650224541096729811075780765091403754167681231211807545821173567618490825856156944590402958585301922590399053991343193543681109140072321901156156460949783832284408474310329233981615720592862543785180699015430231645536046847668746590583697370502353034039777515268706703766755297905917394752720790448129346811361894583127053604824636836801315282533721552005764274628139661061908034248338978547651553878257448858252214564861097467224548582676874745042012897548122092083062001906194472189144570988245421161923450833954169955562034658848337662091311096135092946921600046433982865302218998543506570243815217564015548342464785216634175356880700949907794158214005931361084278912486000451079491387689424089256466740223500404324435938954217782586199754038286369781877102539018619459482594715837963415792799998589075001760436129598406715426921445789699325293082000396034581175332052333646356958819879340608810551820196197676503975120871971095117772560945406925897445958878644259868943027302851337274902441844668323278436525422090586443065033867191186504834923005128790969107540671586798659460485731120163880208881534960016648615290106043441316424278106955912546756009400582541382393132150885731466509388193011546285824945766919546704650453239738754662400148499262840526344113820249316331637900346608359165061763369832270146364487685998741391104572045313131668419993984066771716840484281199747814233364850841430742453593473292140145748663564289299271356832636420508686724259424297910237998246212809122859641508442571144353244331935766476223202347203000175531246034900786969129523917649113474589444052794498378206334387827396722892804723526936848827163878800339754280318972485803422110299779396177964250144996752640062363627121834683473899511761832529485719105230995213964835267567249929269301575803408728070255951821618953337144043582062429233020210791285139939684123091084207568500354261897063096733620284622277879341583810460650243921658141754761059394606263173534417075239926398372402941522203283927437492599468464556422511098685525462170195635278679163344616260447615092491352496118437833047049022229426021520290787019404626879438275854710544671386338652783898387861899700598805805590968635650458988829808940267677655286218332029149162931911394069986903024288887223914771320833708037761709696845356806442200960510163925335109722799295219825110225034112244965856677929923534451212231346361814971352910834346417608826434970743304153961996361017149660601698097163141978995110336824938585912532233474601404286000568262248727912789542834959178433630285829345562079226937090701007667596588681824746297406462421245365382796028549440860695956647574894811128919805277984732543969878376695056959945964434266335147334662856854737539377713522113363996572971485660252831866441328183847027378754526584780614696693689015047819795046974419452991093398001247954870146760810885650623362407427796591313480084541261490209906676352868160978888500956859271604949455221287307096644803975880420708445012620200324406643329829792282512670256449484792056501393077592758471044448750967681149025117866368433480599359987243623737358908477404708589466402779882327499624376417216713157469088891308165610210491102440316777956280240490411046169878520936698285672398622272760403515682131887939383176201857739006513801129850559245818099228306834455622215461666209059619973896715861046377251028602768655893707658569721986234212974480874727496571545247348672934515349639223554142203493574490393745818518200207398640987198260246557751071977326764234304088766742767722131698151238809965748552891365432203636273333892234644270934175418408363650356075674496646255776409644453026141025530237645247988909240563906074019453129010577940918063460667337682910534495021304762445686709792477370348283146410142281651398939701139926119829757229710264429873345200940388281704882486102605628819838213895446378575005943004607232745551168468444171203299857917937189645295261731590889483703377037304938688408078903321988889999484662285861336680671135004769097834574878370708883615861226467953413594485321368421403263512958057950246669585847929717100536068743448636434708013040006257049770080633407232859550947304258411548266800502217145861399593171945419973643262194210750839737564732647351468063373209462246056326825556699838109955355189474176996735037100037352751910829967272504203699312170856640982093219849036009380607332293234523031224090435757241508148934106266277443120814298101930083661683740121646294789050901304841359864427943256275047560074096646767907596848870432127798365420843495143551855732427846485471718850607494941538141177363743692861090455982872548910539559913038210510063401721060665617373777311350024795035391696892486002156772635429988932376647930588080546809789093923265634796463780368499410195670966884237898226951256715863658182607692560084099856737105863537547392693417131003842602342059982688718354012854510268995310831870162214180697975377432526150436805849973426925704366731772041352884531812398625081602142608253561637513345176387158406304558278023449655560658625902746580162337962620681372067266301382828687635629414762937384248743321738395437240477778664537265751584091318419405540757104923303506904987184112283698526374778150184130225528670720592127587353138674932915953669118549685222270554549343850791494500083778668363348820156614617620890401651430834789286335834405424273219849009457204630055889527985979997758213024314421853702160466495153760331954567878379370591420370127450948851937614492502814978436568543568774324055872156306141944013767332272824241888766889494601075906737437462112924592378129683630505411534205454614779790859448897267485266234246402359462221470342460770250836799329454595748503439509098401386516482126037322579292750138532855155715808582693749592365904405176440329402172916944302369037914710735581401925396033936983200930624195793640604719986900525406656069837432606731699390928237849531218714245533098847814369345289294351981247419811457252426629436172933240153941032465856492176279913125904367163324186053988993971409394933530511096635086864936891617412406477875342765794256408499419361053167557654960108082584587900268106518349636886853049960630855361455519693339803098196448266991603304478324367564071547904608285141106001772809205189361043684712848902164833218859945158499661161308524426818513921416029914119862758444137045793122886087488157921168621527690714992926520790596067737913845919349976362612646783075683022845319170084052680226936694625007693442390449039598936532881183215691507365094429768748830371506683163533544810986291403613771315865412699301641179099330820782500751431564474668480993960111203743054406544266374374184099438044304840759249075027937451338028382328513487204626284551131744912896501369918766680748898214322824472350245115575613744179998089573890373260172303686155630664092469198152726478217295247269097966793393393054880592937980837189003227466759626055475607161326205033200972313163269621850244596146274599050532921028910940539627025745817873909639052275005203899644503927248872455694470964106246903918201205016186738608453772170363814224119185265592367933822376206600690926556808378533930181391855937117898039598007679377104360138150399660460519069285947632982333688749018465036550390595912491789658263207520242621142636844724437524533836338789114364092923276217088319280821187300320307048716402114631701330678562309513154987320024926512781774263612372314741660870437635643147218866670154042272547241315383781057213881420238941642868407550009902097715638057884993355125532721481935913911354411026528490721170803953494430971684024628148236314150948035506220363415449489799855898836108459423527221500168921824615101573850540356451236925854601964007096914278779761306309918796486670450280881185748608081000825608428470538608892798096525551043022868637423528541908733022828012277583976280796234946480059130307285900547611374963748694072898386771093283379110147541271132355619249936092771569952616006856098952091317215329553179083732604576475785482578157075189465094523635585486046392725831763380849429623458642387558606659859899332222686293372208902599490053737816709613193920607176015454273588307591750016783878531925918375947683052904125975698516350690239338841204535176316982348327474473332099087357096599557096430873346102647105031972115021654676221906632004518481155726329544542813577924547648832061176436182082585565101236288528821842240949046354865664687926783809220482098663468703657603594874144438221849028331295183517382106931844674666069394075877995383111615530901105785922125824725495583202001712504083605268359490564242594226436331836961227123875377304774366213294703434228851001639041554971505646241500782941235542913216899692898130442669042466976810311556957959993666068298334710460046807508203619182641412850395120904780167753594011132405856649305572317970284859580574534326254382970433664764904584949811580839774469897213917250052536341803456625490017275202070826001361000101068952850499208518536722343932096298984402397142291259718654900421244499488740084428569567689663914170628661932226364316361999605815235556070904542206338592638870527470741085261648107577207687042902773780641718758150652190783391568659055803939534657232315310914889100460524169927866401877863565604631788877587255926659826664247469049847192485013177662519804102380266414904000263101555869918148315173060165623404718247763035475557951536922806749069708116032406204436771040748374009576556788401770597710076303812182217243964143848462383092531316079006269267453341799149765136248788246888347605402838267600861296620037289441333653377639926862893793037926278691849278186768334751655827594473948447150495692650845561094423909643293020443816718428804858919127442244475665418364550902905770286349528136565387272000787334439845109667879941750530514215691541271747261483275736752003041942787398199505907982692275103687056444142797732718899703239159811941365182655612964613210947534052407653230820269753895908726380959491895725841978297798165048153423173742210362431203630941501362925442493036503069166181059316019997867683922185960730598427860676498569833651796249243983089117623039433913117600186429266129416311496865590285338945107254964532712287314787889366926166761164191655830784408578361343590230813399320767504243008591291182281975743374184478436895682070992050410006857033528492540694909837086254219032216256538289420953541672518087510729861681763734360350435898515515730861168231800402947163387663467947764160286881861897892905403607147034639757040443120178835420005427512616798060598359400738605071147133296840771223930348355567664804137511414556195994835913473676574220279394875317689867781975320849331383569638925420692087619649386659802056247819969281474891048000140500226723293896256389208235968937662703815745158069938144107306094280676140135693081326179479981068128483342392588682653549382239758228532724833110995939597892283403409814665889020003049815964877760785613103668083655115912302305948974455339789733648188512018085871208885830275860687348522757867616791128618619731802295675447916095190222643810947308297680553868118492836011454326145100361343977397183769395803463476478544275625972990184726306599211315660454261812535479414223276140733967872636870134148082391819471102789859531001364051447130467335968499168412432331633033252278088518324210299952035104770426622854660189574910590885723099712832854838592038610092474557651447483276905539724308304398229385144769675251722695843979518676830566358624712785287322488608093120224687711014901527718866582023600672514844026861648226888253683264355676263592900822120547810667698221026790030144279233879487238605420458212750888252203360279927123832425414439567645115106296470116941183684284738919941826267010430215956358951500545549745967113019789617677436073972553904948355918028632520423266150364144248343164635971473782761913651143296645640103005028664958963027760564409942082890613070488263921846887860828285906285780787764895950848172429133939320980059310774995549292452928639904885711447361283006546754840246024668932899111156022859612966283247450204677921936309199018434788804723928393004133934457255793511494707175324139737739923708433800901492313654435061559278681191313371727394627949004294932993768307990622225313968675447437248248768110239418452261320575014383183171584526052211212547335837968917235426889587007159573021201684460698148341126119553573684052207892761235076663283653459083375404919938322925285128517278579430821214161656400110569821290441162236107661432991814714050150127976582925513331645618549661372775580350496858878060673259908292881404440036238157614808498607683363031039576607872310789473549351896899667246651831926992402355529546312193738447978144735501754296564515519280096989049895406050659130777330645259764950531826963809953874755462044322981778778741638632466438385075239375609870664593302089235424230231600756528706094360233395521105952700499040014586537076773568284262092652038633199613529700089629795989081318662299492873069700150705233597320456499781051641756603552900099716394156241865724537412129886745644501705730168911845433778268847537742750934292034769970972098105213721318699432901836250722941117309722179778057892571717160179300067594328089325868178618230694307548188880589083915943578082759358244429750944661111130515960959397762631034030066648877451204300098903169014381463096279366064516270734587748187429414362011740746608626968882661667822994905242744080556024229842842955492579701662660852370107073674549436868178985013094655101905382210920020275264368033906057519435144881100884697535889334139814349761950374023855151812662236990029371904381196960524195448200146203390708401797798658605968376280882997118108648085519345904284145643172777891441367738711097669421141098992126924202147575483471162178241804591524731982916244408118900225007881046082081432344775532130853572607220877131079903960755747473692826003020908011538270492291748339105341035886415055099566461285326319446064550263221358935255345688034889924042948814057203104887536106886128662704286413924460065866017588952881374627629898547402346269605216970373086705923646765885850015607895413464844527274569222387972677728873605720234098793415467177966671016725365025102222071063196444705735879800738589613734487078103070996263501862610016077181133178323186499831289572320162211181223877012413698137267360328519742392665656691443363604406574984097228920981564477438767530662155768501015046172234373775025048203961741243110898373399530277478579447598370408630547356994125010953525772016642438021215760293507114614179476596809986487396265919060686118578961886188703027961149306054265171187008029625524920198764933072887240029640933263972786701382900498603673256266051394376235030686664060449520717381065819325035259706614003238262199088294944754291128234030928757172003685866579239624899511392713645992026123999276112105493131221461418337673576511983414994408209971679665255956673160744999309226642792388998808514827482220612880105453663306205554511026116206705543572480275322744387465437687284015762264928465425724894492130898431489687543288187959864543245418166722905663892825207749563516567869839877251712491297501209378636562992947012934466508913357711555345214435984851418764178196579475147622985362288788375547853825493800681417383131878018831830311653212463240463805938668561240082380691123057374074621140839138977595988005653869165811070715548707226114491670739375522337498386942138278672845503938277782871077675685881303949764444187736292738586246080324175555068444293620473040285665907259894778249342102900247854439660652618381053527937409586776341732742229487626714128714946256015241697769999820011356393884105500087579673761909746695339591293040961441737772542761224587004146884016974415279663835718676795347059550592759817419461942098750151244963712628344949798191797111004192110893900919040326911886904009063850159884957025401364100019957531787186180541488727761733445575223929790602214834792950831812580767507794679456728775720862094357359950496691884468725315491765675364092656234081742518029529925703342664753261496398211678769297586855929581398996723674295116369333945599338407536096657976068326620215760022564412048406765817008048885883017625410949759613559292732327618250869174010956098094601252875448239212452124763031399368662489599126783595924193614506256170970080059582922342959496930742412152187098983080217668899773655003927518503605856184069003132955636327410447748016499875006221076671975746607263911564630296161810534348214800281941672967367914689217481100728815471244933812997014016965275686484914357077936182580665311010354327248041042004968824463249138075902565752608996535943174632000810135748842732838188141085041856617211146278018985340493443439507467518913700326782118975033577246618491853436005850822730068063479970327106281968165513824719120486615709663624967028944395771884638112097646185047805036692264041591485622274382344593276764500538827185880927430756970432422173191193605521026072394827564281188487350215544985993388765021583809196665327809195786234914995584166610367303785236828234282949957958506522782747881040166256102940006252566903705519966382346472887616709806528949200514083458645594403111609277190327200402490899154510045171724669031092810825247575361306728146326829531789476656957912993943611603852036369961536456331263551756621395789487118986408974199786927355843002171364629139514564600574212189811749919889966822737728841060165446888221871997456333672974750580719105287019386160887475590128289601418385917663415668639454050125480194016453084149275295908490044689488853523333890285302876356304070213689046103970671012080583165556137041323555725904556568202660252817151056526931687152870274442643373495994246940690404178700844555254071345874270078581796774756556471917802222529871034847140439528166899868136732233841207513023136489065111597936440448689517879142398096169390915370456073213023356648733768205834701830590643453379803089296077501221538461579179601732011821488136523558859631638688140449594158229498173351905277411394212225550011208818244153455599111231484099765354034080201971555071973357125667054457103080182300856342279964197424861245674253091435364511862221048322463611600796448356706476521756431027346367461383905418702957126917990457627741971732522053848001807952889045348823159056084743042570516701325428686084133536718907465766750757256061352521082510942076753413145668937001578551819850471993696795816942740539459100845486327234842859378631972316631493775526983347866755539486162992100267003423623960106159837437163087119772024579256365479086133643108111753892610881719846938829648646173835429471397858490532451380928039516980596335269476877023596284806642974755037129749578339783959916340456159950461099437346485412889400133497192007246165553936533140079604964047608617396431417624801277934980703210833550135532090589771453971591251978510209299916034877802374215227007063407573853026773188602204068124975233354216128265201783369477865328985587158084963924308355464181917142138497638438053061294128733850991045728546850629940303187299361352181781672095437877024339944743325988743900651455731748202389205051113937383073290999822035170303041503289900903525296550266110018989255323340053429913535971223861883153075889729879442638758729645653961706073833110131553176361147401385467594368155844880122435657517703215037131992326579800653485692969993333369034963217583095943382479738918097349547178432832618541060123110649513522990057891573454958296308247049595941853392686954196945561131525471796773075480411851695275183984370894478904028624609718151519625398380758143957585567007232403913559801127924130935438853400588050691480374070928581235679413056568483048671610793194602863163939344234705404760875926896110232994409666821593173510051105361010483595283218985994163275868061916716234123919681077429088121086536865699155414370551220956096527476988370184109960147286426421530473677031049397023469200107800185529270841035546302304977210542479196746287366208726420232619413208265082185354568005542052898272055536895359545418744939718586473681114192768446505721508402238419349688647635722020815073824676666417948236784056900930918113366914773716938934482431494832429888464573316697302619929119145798259591493830404058587664793014661874883345647270496827069586847730751349429980593828480508230873308828019374604954839936695792686264666660397503632372568232847170040192565312832456959703726503214326724540907540484275902318247378900828242749396782046153980845063927477105336703534642428257207100021569457766280261122615096754312703914136869072221726887164476184619388761260914997008009656162445335186406865024919211846444407888718026843109365440046919789099493111579077090081819482512230554342127925546242740202766478175374927102839502109879933704188237117931259980488282374104753319944443761127038313885911906242317959440844314697247636605017532725183181334227520771187903558136113444329386783726005752480389742909347655830995510905416571582292800011118966822390049831624860445636096550685914953569819721657093675330717582015646978992567761043983656916740100642547055379646370109099273891577756325309068546296785813139582499405495218648800624775044486804265639727986623745086120891925863286042742854766292637867485734039623651647795375702150130591737399412170290168126792140084380136683052980344142464714950749361591993299899083946583933693455719213375521691694108423149745351004648855120291180161776320881918576433997157331221489488453682124824727760607961901270246869580318789372219364784946437122542359329544553279794948320300414906190593335615310390978798011845885756819428356990880862160112208155115281562475372444926463831011628736721797773667795410561485885221611489224527684037200453946312714253974410082435869475514685345766582556488304143547244833707219971417248780597367709759240535405465388745041546978734227508903010772175983655429725999981858007900712306307702476541489978240466264386194298750489203336290915110701057051938804861993722042159096543464847166334666151657159887088361400409505148860308740224705452406874977020800224264353543386786499978417070846090737862858639414643604162199807359280936876544860196053439187294546325754264106968409667050069771762701538297106031370817812961049827165770662205863852304186944058596637775715302635575669028350527860262393827990521747561534174429322432120196989023538829373682632381024521706804196443209491069250558860526404271848461519432733007321641433015064859451877751069122733048694601749421136950656919876437781813133539143054031832084733976114686358111421623137931217118716857090590001239267504902016417601119452056691404896787010555118255037845889877461538904644865118761062803334114385563728841896679440200629386296843191841338215926438527189848690994031753911756541654212171894910930746025541607168891526391240125921169078842424646940920741679725358404099170242699112052004899022552466000689481523116262234909502923034207676973657390619627424744309336515758061953068568641401006381704779881396827010744804100597381270211638753417299735027940894163221748179787986829996745093869143541856582332386332110449527043714522584965471527644136531354759394555488306176520142869699512508465443468301059111529901566640204757159457898263587632605705573221465480574843362492095140891640085620178346525023611616578368817475971150306484698288947200512399499068721306415131636468686450086286604482008427107450379788748381542077406993216361984756414787969087787627811677202236295060251323857109655454499778868543097252391252560338036400904451548902343001503754555543429905661312944020677947018438676884454274686688481129121699186635302653866785839019368321579110699917665646673495357629775776314646795736645589821658186647219937208138656835186515991297774562288846066185282761849492920426527701535201940561767399152063816653399838857218382862563139139847233741259897738527229494745293064760316881498422442601617519441050554970843484485637803033079619443642514058774455773158288175148004125222319280870893348934223218316719165533954543380997794966913744024066920587328890485523199555629647714792733528733265180757986777444782591360156862018646217244270291835371722089441427086665137850928709132749890468754403997284959294854969172179604742729724321217189461385833760963579307305043161574937514218827462488542666168498494403462007744247738722560364747443370405936967320017552008730749803168801779606200263776124791527860725339994148408569746793185917522354534909754555798572731488450159887803221618617517232140997086154246856395163758261914719828774738980968551249817338708915339132116971982682650129448857171674729151655747275834226697315509316486513242943984994662294771660161325039866553962876947919540048290947770868008558610655951844880876510085255981554497194565109477308109526352094840863439633230002987577394638153961927054191801777764998580615371411740908543864540308588965326996235848694839515223055710688597324343707759111334911337060060160922076579628421657302765959704780578053650458366604777996047190807911222440278357132100829947364093406906968353097481853995916939487842558614095968257265606156054916571707220043390483168109904054171521211691450744009158976850123036670512575166826290553572960075351691629888026110090061111357173538083637473383069590472566567336292625924173821876914146384896638147552801389718731777964341018040025796179868649607428778453924145400735955282358906308536105985776212312841493154940810985589470735669286967257537989678447069270185414668396003272221362183941423669607611012243446224009890848325461498340055045164181483212291477626980557502022927791932972160964468049784728503410211748529934090017969784078441973152874886897977546092231130824658734563120276210696624466514685576879259626523514464069740823427907527859401315750651421279190661473998037180576390428230822136246908029039528871555435804456300619368811919268024295560517576121082337595835838069586084458702150748357996748164380924253179142136889410001586786985157056245429366243525609224277609004187859605347986243527539853465048053229373564281932235983112032099461990454827831759083455426995439169687429203980156801520692445607288434034211851486090076902183023769972575469433537077358788736391713785368806183481261832889565469416266712577797555817405438550207821378205552299677544121526679341792601225491028719303223122293592784716019482624213077468934955238180644838682824627855692927342438015417805428991644372479185829949009271705914674508647145631117510038946692975470066428351622972464288775720357352555863861631944329408721833728809031603302475156932547430459474623311091131446896340387651324107791272091957629791114581417188003905064457599061690583468214771025765648780085658436481882914937768871084538807041733927912513462566022642059073886270250239328348135572295925122243428714327905344638136838371235917093620058220956611067185641744602219788614179208469707215706568428311951241591222443046069278559901147498349040263228305038232136090160594899691797150206776400050358862139283984834627408361794749962711567767073993241512538227053428244011791200357517889630195780716801042530275853441413269747836581127056789813612737698164398382249682350463433160592167787935698781859003309566165271477913335064551514255633898535305309489014198618243428103872377569016218449005989089940462615418805635190248802442992582405183816784204058556437486370103075529556084401762546354478562013801354951212436273194131521716199700380793121170347544938588421122205316803408578614467914490273715222345763158704708349295115303533419506637004690271633977359169253636887402839744014183458795947526188775999611617820406568638552378513579814402037030398873733875433877682179334616571560350512609785973255619357733201719908947479330235101410134601785972570065227107876368669102762204081115617677166796734383946570115172330457070914303005750494216719665346410840856974268082730728736196589680277664380129765601980103215691801785181084424818551704746060912794718250081117242766494816004589522234642674991860229716924198604822442067125616118965032337097592989486181267862525747570621407570904432774629572228724058348050409353540256044508696110377149924718153072875315651946951322719566312176921407175409471799522502635441161563767647880864259198435007037404929878430549281152436814823861325175494177563954711568658574157756366140394570053723824675737806242084528434924018731692004001425156488415254938703949540654055076963635658962459818769455263393354716928368958859148621586473874815267697244356512985601794004760344355497004972679736238550861335296064961751375330707945901406878152091246743839879670145415384190438181188010237838613534101846512597975114082625892660040555347348377295738917311188033314500065927450410240121317836803966480619318679029743369804223893995773266659503402639261448562157106076784112633486150504841934226719600559476124663816311501526859934952291189567562376826130863343519068112083006356707522845115422162096846361656763913911670975539594616141446337086518619367195658760134586421903542531921748097101960081521795178904541035451479775161341425895580223749466178087476748673167461716780549710595301345513157986855732624712160213757209490077927326485293752283380407461375466355731879493229797357484079125220412128794785237051529018504120437671932242221808820723140517950234327369458182840277312337662457608736356650401019858384440437562088007985106891548955462233490668935780054338744928818921653554715279767252558856317471833753606488676924679164793112169267694346027984103607985711128839431189401536248913914605293868837510342970823672565466462665753248446331995247059775863560331101967975016440675504115161554999206444375053750054656282367508959914410519210786839084589583611017264530093083816701195888292736985044359277396011548500970677448029846033799221100883797408240901988118290377584507004509119472979463177900533308459227725025257159168877508983688312475371474060988087465703729451127372496691196335121714863450474237254512859370604590748762103667300190375876212670048226382041140054482685424156398845498826911859107910339229989015821095724264306526267832219064370836685689930307754366617661929267970013597477906586234941321342844002494549603144750488193854846080694214893476837426453907950730571179262615268286308712217220311265719842989360676591318571223362113841118538615360658328446787923434017294030479792650454038645999509910248118650122776715936621002915678552006487990800123675738895290138489750259032493960230232066003214085680849271502692601704880601792313536540136315397352464618022484926448153384825156691964430308005899751559498266889762708314075322758181858870663426135606632572450853313719111080172268103986979570339576379705110027017300128174510623422779794649121809032037074867088333606939604331378719710875174595678793594253110150122671721524925028185397116582414339616169408375926847448987257688740941791119074467142352896420542781303904090400040337826101713707338705916488780814908682024744472380525358312365928168090368337676523149387384538857878060791570178529650913965737977708787673766113711465637848284450817586535074205067518079822178907823298048927831569571513846921237384801026130739824679811432640547746933132833610693610093388915575536388316589024578997201043614928655057896077708205520025695700169049002721094179220154244356238696953813554015063367858977631980613894115146938099263597644889368624877258072835529651575521132383258180867236592406841435607656108214603930864592698060298481111091405933018065643373130000898808470333576088978637477533927679234151607152369320474316536767717984324503461139308962917713825647289763640748886657719777531465375411201918455090769012897802518553714270454691391352440080802133655479536936333280912254160590980406392166420578393527665243959214711081303454587521833117483916858549128522475953325931267902983420034596972045095314704722311640058116401186944468377495972757793130446014115930706517118745512480212409913772491144237421217528123294034101414146049231182266683136564491907166560389983287010392028390165130295362536532956024359120500813960783203076807226697016594948171584169781979518089977154676322756971862831996613893980526049973304819487969755766560749711515884688222061247105078760921627769605316163987566622767667506468986289147185649088432581183207661073955901761010048446141005464535843456499794624075089332110400163981012428547862943996915197108623707053161860121158774497038716111533006109056311714793826318111516472691740939861677569379314420808833738400942251963383998872439639914309522036721332443004337927495019270132877272495378267353866997792188292327903987133089050934575062235685426290715609981864081137841495189573750528909874449256432507399925348929621163507648261473068124137728100625349986136752494135549842064450150824045760639129463370522651051579667970185385808338955605484180003664842330727671584797271231316222717689827488097664617757905822256968668640612088397283366598914864103507034788898782273466411252292082184116401835760408422504895927570726552623935709577640764014239512516318948750479500875961086246666614647745783432850043150423123298636945721384269626965405097144651468255788080661773543053304878090581955979932781221977304979148475674274195501463518634542623559166481958825991021727878984965118225101871697240730806934211450978782088930474563172709650495570131937671658081251718727118011121114951192441689753565022182006885349346832184762893097104970469835723151985875778680321132387740416706069210429917474683081794827628442358782804175794295763108519709155586443566210017979568270524739133117414809525200264992855657539048506687659647089128252825155454941733171488535346543824690832919684588067601979881117008026223996320226974924719749588389059208426649546081169958138690088842732180387833863147167255950507742253631038872557599128805335130644442584519350999329941015435205422770267631287789988738789136160252272255493222150562474829489222141908358991435701024057236437793249771886725499417827261603413097286887528630603077090949515691243078605421912112837776535606647610107016943549743802663581258212534746332699383056559666231584801525284391592140681525127749713397786341623878474536695760290157027725555289534781737497417725791910915629366401281017728812122903203670572656339886982984063065024792981980923245111488992943058909437090428942656056232233215344226978228348734081049376450363739453564144068278556963679698263511414131257472170280391274517816689489954184809013197665677869160032856882662867071479096111763467702015008639116749470645608510037222973009211697137140648611761332391723803789213584583763556209611222175575860219916655933184646268278219464448156410090127126245088165273033091571003456683419426877311265927052037429853339803972779342892386029892982837798319036496095390921921115609814986675543072120862264336188254739410434612260579717732391096088760856904667664877910072587202767751557707547029989492823047477132119427446729167055660394715260186292814587897897980132115969136957337271096547362454622149166682930983724819198817574768812150441859212099225053595436206485850218496593669213380253517322178552539539434333237055805604751988216687057822550750550191992181055944354010897770668157573676707893278851192422425594149327142708397481223656647087765217738790398709207719953390445346018042369607720493678169051867074570739263030514526847379011674949065779004745489938373967423375289892683363766466682013990597809715835122632127202328453055842924552525898804391980484613933558608013084959703677232636914374806036632452346796240211559839001724726763854643268703739569491687287614490371757618819262118851454480260124083740826484354057904011858529929937773757909353339116313979532243138398966891889621750243719048075724292345827847409254724393640763570439595571568215856560845121407591858367843747529034982025102675229146075296143116061135035938462722058340703831204405307157794560782358237854000977421750478876007064267727211627723997898994045188591803137451197572380717744714513097537487179244251709954074013871083360391271558440267135806889684285210023645173074379806484815745405278776245381075395338554801610594390385789119764006238783194320829695222517387567228377474162543807067554867305528212451913388780821835580463442910372932187356083722453229080142950293290811965930942371374269223184392091321853263392937201256901384343127706307922734324707835306260489244391259636334168489117331030399909088667904564774070972732633876123677750168329232885773913999332216114975674514941665004085299249603850023082640920904349178394437095826489086060799285335252618586356688280933249440709559644691839901613012673137685840278884260331735951145641223148997217972499384950255971689349415532778242599414625221690998636216805337694054407235265089419941821480155662606179225288248992948595083679487659315754353178847234268256357161672517569141649984783787748072560882896534375829865669644824465123600907462510298645271969323786521844297528606352198741591226608846409952178288214210625965907931314698056513464120689600621098722488251248809774561300734082739102367295832568153088411944549343286825943045625883350720525836017023801744291238522100303571635978698316342507494236949104470330104763791041913045517835934451319290664312885822009640574705528074623504075102103121633371007170934943566437522760988349348509116407050135904463980571293228694125588373065378330984844056968537203860879498492430405225310135120726492465420982568746875072829808661463759887452416427955280372358805824756721884597782134634394169555873370502754731793651410216751298488629027310942951448094602472294954668098124490147339227594320085212632379378221386808711586359344981507273266465124289170935440230285253173656395714493574804226864377225655414231115402400822979147823582847374956003065776840185060768769909500763013873019715739768590065503641475129753736200330204891809011888740849493203229846673237874689691349367867508983641441318555753804213886838197749417018953054473587766019873093472001614683791541253843490833921324055334092152051324229054795824645777611473962144767972784259187764010411463238877240194798631922526725339081849787926097216976139170742256719930812801902873311480892263554826798892435789522519800366556014889064825647400556247029762199449620595604111147231228261707950252707965182303913832633367348781159894952626005449877721510600700684285613308456224470152790754789909367287636711195286614922610726204703824878921426455905686325856789721191434897073763519128615171149309382865761565706173619051098436248357327346297210227128071374705192489393093284150571814784965499618950251869782160954564067213378380175125417302283418492559745993321044666607670076746590580904766366149648208723391635020232149469685416196905452635070950465659379794308774315441404998379106123144875477586471868715746548491216273781580087967946544725354663493292333708164919779020009050191466927521714954032654595058991027509992017557716293750782451649777512672155539605506784985249032773905723897778327881319168016049687953423856016040547327352161761438053344026453828307029687840319047150984030818941928801160105768144783773809894644234421326748535241823443864417534082202354438206304081836695379999044620563788344719483363207114767987473966447911880861846743020865661582168885211592591332261730074028370933593550574527611755293806391726170698261509395812574148322248550331428089562962108318077741155710085027680972762577108138021821933321557394592810362748438287401809629735787930836019557265119983232849328174288263030706725853308136092762972458861589895976767287415533126347817741637245885577344987907203793202245608901117881092234193980009190476998211754617409288110443025943135224611212327404332215471333247572898962905287194354565603281080008711510712750654697642521208755835652590460442439743560175142281545558747637136171231904847699368867796009656012451337148122827816984626924835177001634159844735804401474783953318583851974548220506833690469826322508472850358478008037850731895998914301718579771298209078990878637624543790053924749810529285514379462602759946269184749013517408030838867554465389271643325649946050608447316933505324226919263868189401454715371656284744524617536622969308174251846212781146744297890660045681991341033778888817465002154504414772475346934081169713447747779196307681813830178815801675348903107811332886583334979161156343931908698994452943157312368772592461157159723829182825592564373868586963406602031575545207321196769347451854329079951383116865696703010386899961603246429750118545597052967718854755430503343392310199141998013895824875978498983633960585610643481628495596296391078884238388685979237791033121228921718358693259144712037363470334854313501648682609762301144366631034558124040431579339416253573578523333873860828861541661443000526680720316251667193567936933248306062653134547547922001313252532551179980873174648922762499311059832999844301575534525260510107810733566257718434662493777223615897931954172156623503785974802295545295671045232078345896241905456920066042715190535459252952856658238043016976502533749241368941012610282761116259458539708658358612951934861946343256619135529204407429949101653665978984044493265955819663035702036040099771325925686771142197569542978684690538332849887033089077522286017115523383013765922381723984441262029812185547851763620682212216854527964354025595859562283829537605793537184920948314255335220056827570573559740344367434212227111897846637686046820355658008836340196473891952577018920411286428061352881895110538445352309003702376590681161199906901802979488258711916991747111407597916827423456948984395811135146227187260773712758397503051049691031760043607920256730358600020139430872256502001582722895338835798426122183674076788209631459910661270792970740002237341159455929039490055661747687622803014492511372926950807755564986884773734194869590806572517723827492232451809113643541384274510148578702113719268684729534970056812435107152310657170509768541693119745843423290888713214915640817278379423386206550471270497315349923980880266505903315367376721781119985923949447309038581288288290037250083398292004296845480588363123003998241108733258716962983817307557159997041185525638177937167303427938477289451569584761229808123361424200533133510340322386667014143489571719404724445974219146881766785131179226703549646257561258567183026985843881796908373962026520600850091455944310855307582726411697484144400814099886817469071349945845109276527815464450145234614652472200455723639975540659533363077597757110620785314523271567992302128304022073534373299569983987981073325850811951603648788870980049807176471250785751631242349800082515151731334971314172489024549102489947993563749784416608055879365765125202220658921123590392780509364018340408725374195153494361228625991384116249917379196260796849593890608751505475211221133040215733226104561561630807378907614391758287884167279278967140194548022001112262393664912144000557727846719563045883137179981466359231301570593154237214264973122263756213992445524337587521739011853364329644858429088142686299915111177937221516454448633459099892067893691995021885737853601850587441126581636310047251924819092632059329448156073543011198157747222917250390295301946769203803269911216827141478668975351499217207768376390192068808975296724820221542804911556258427096688733234030317037940680961065330054325308494619911179984746670753849103785021432934189601578582683637924956412062538222796233509226296318989635616286260759369805120956015144799394196711090377312149688489446960780796567150585046494004897486328930505680342707040564472681436077258039894748276048505952725511135691680841577902731994262245128232269410753363447219114218016964889956976276562650957290867529546407464825672958609897723592343625485168752014191167781998643512799391233490179131399223504494289848454290168167849002983981015587844712602096004357905910502489808983656869917667550604331487984164091185784379838090788412333504093674418685298848464489105703118097055897587227242415657098404804240046494933192449267738792833227447330641351690289141307393558303083134253669537018598113287723059052357747400666617517654858599102026545789785854594540187306383049652187864198056228773521926869900046873265513178958450628658015860196846487589949968618543644026898552739734723042846611061330116659461854720574591736992672066067878385274122728834410170178282016359125690315075999169732119597156287481397971508580587428101295036655939023523894873347713667082557053886437763030335873126328830064395835495540020417283213034897264125305029634773590073423742704086397255792299629895449132748047605633920430553556538329731047150351096789033213360738893022563365510691753093667650504399409702248621042591328027127068651585891530516183512996612194372209809070473593310712889514813001665188008984149489060165545648587727161411680560456237330375325294934311200881195485514700836879846585594043899336399395729824517618116929340178636378639000922420115404152246220822650178441172931141491182522642838620976706259218395186311650492375548246644047748982020223219282970681325917232226517191331417193578691754710848380218855713778551855539807395942137317220035414741541211042698393089436042669016864433422247825700964396380386292836697507448035410655388016106995143547105013203658685704540343355262139815542702765977106326619637840165352159623812109946220151738502005949823540302985812688045957632642701572350177194747979430804179598493175934076870458913315411996743727270699384799588487133552590789211360007120747286468957997408781954863986844535672621297501626489758751768739373084967658290775264904664610861187250763342386049169877609042557427387216512433820404833087912394365717170693548882083313651273066465711225260507096382983141831081570687941691569290981454088703954233387548459275164370846492021022463544808778970767532908193587694407179515548449321699560679631772752146021183280487888895443404206895471519084713037974197754041219418224761141072346763719620306960475558902614156454972823445121122018060673068760618239614864645547410241148092788939786365450625290969473342934383525012597835236216752017416446773040867262965815381845714886842451137139806213502466917894571063954298937294570698526999008389177435337905772770880755317873740946555018500331791967236730981247075601045188004394089233461441502626531464865023434855523700653669574713814866340158162816393663185758465898326056050969873138873266142537367276622079151947686021433383260256283717431743647602863001142705057735258597030283482805048640972565458522986382752290916619451110232586716672613286806486001886475470305039144801695698736518971296692689081513149465496817985313909241166035242123107657914501977977716647889478864147145186875482164266056229953846573053959950513620294914305771730656175748327983144627739628325086174379538356625588143744220664772973848245964031097166541754176209054725829328012875328885931344237070891934688454571699155211358027829166272128845596116099599775967796093368257025754653056946206193113706337362299637533807981817853296297005012214770171130165103684782444534466450092959059708136264667150354286650329382734125234430260226692063798845679769602785860359594405139542565071980007017568885677277270269942357387732456951700414041710878979660131568630824026669112753432315045643531136642362220136494337065565049105893982848306457820714691694502226576238114230934622459214610482966064139082658749197567890189676762894711011683304768391655142654006383232406656252668322185571163833049734471212205322970376109729985928352446903829677189940770352928769574349976395047326578307404772725676449061002886256367285320321097104369782404643382678988221139631693261385161828062041518218025611028452587150095813274501633836781778721026508109254551253546430708486077895404723482331390861704040140026552025625820486083825847922503609769218050790272142405176420864031590080277312148622703938240714719733826999601754048665153518902605479234068382124643900208550838341946227962572463754875609002787318596791932907216008753538611348197161465472876511246758537458372758611175202379221802856277369023579210164953783471435841526604502302840887166075715352074841933226552916376353241580065677543596191537155965800721360934265345690371495519376223984917957925734598556817479747585812686761226428533242351846498952322962073609181627880842024148637876925012194048040016249461041350500501120705141584243151714936923961603145053233554867918026621985857970640186069561204917614109592202363122570977090224800917798559705276280155046636839951033787529979751063507927178929240341493034200265016049913723191520775594517659457059801448028920673475664428241815117634446471299187229494393814025264746274092817911565420980818895450647163887277543750614615898985504239258499388491687963423158445332207146876290878160345051533566823596399452495597099932654855634263124092600200394995723561641533651085868533368252896335066039573487709636623225881246222093571810443126777709013749273942556047440470397029965357847962900533478467566358359548328974149833418227201347834956871661350012030166564652175456051063049115902642659187005386343261240419340996298639456541562094325089039496876438138541750800092280632953462996030449048418985995752525390340152294483333947484219944481801203311669558966847663647487782326257853087754566873231616260421409501787923212844020708036846768549002988235362140523141198330217692384156822521357581915150694023926222677137168492095346953299725836500669723019767765684204956220462410048122561230660332099322493177614852664164864414376614777305335559954700462668593321712338495571521749648121147946585513534712591995983201646584470751724467533808289850270831728876412700722844307060022205396710318676513645795985960181555830870037984732871672139108767772579197810682699981552591103808544015349912508087537728086993063812801239407068083945681360825110626672139685254539285043756641857292569382563368763437600759586050773740900843102724104094212939836204651943197836596209867566858204014290580771358209329589675159867345143512117148053543445610617602814497165263109931887616480188312130645237635409317023817129959048196288086002104335116281453537028492084946419973246566154504227019723023449142111246385773955970210168351082687761952275280801636985360383549754364957689416476638073340471868554205321191783519100421990523965950709168905190606781274932310251104923576177065331054133086480404117436232209923014825880286708703353799748921827474702880311637801200339414329315726075179145602985485430424563410204890630737066419178098183846217198801897367192904849654930633353002841334516102027977415875209757904032905253374802622063154413634423084919561632975113072005630745390025310791402800770104611646483916273462323386406737769856472299564791988835515993691897983934362138534143326908064023808951737717127117191018950545776589185344812860450633078717473523229717132663558935167554284175257823502955278936684652117189966657478410971879482972498289141097388036003749533784393541793584853122611092045281343064029789308067988295790195316480429335924270319990035000519510461334090344135562523742650805047569115149581840295684819134420387386204627356614116473858989071653967510163108867789495796494868122517931823595028359276905854926895544235107574584576226482742001471354154899048506910744692970245486699150544675906319829551229531486025569511397594580850560617680133019925035535759738237637383020213646643925368767256155421384311656786957781969029422619442579981922563346364890169698733685639699126428543457452887777327412153781313350353439795341030068547178130351117952991177000627228632006485966989741444573986417187720295499868532214390451689061377850402515992072032713567036242719655690580331074030351424528095299272900413470536212903039324641449403853683779861482452065749204594970126273878373588677815238538439946928413646015521384578051502124088556109385660619718848014445210332987400803683037533456524008262317078664925005482512014560736107592388969368541303374881226868914859271047102690150420775622382966991888357840294789401340104260143101173672275564087582018021691623102236512518904823814704783584926706710590333849466006745267223220342665281618722202759313615801538006813844844746476376188936970737577265239588538234381586158627436512963241832714052185885578441699595380386472002910272140702963347175590709685182148527900761933354976113884462524869863713195646508789840750199469102068396339380787096435892753939161385016676410954735560440272145548669708570614432807514761046483432587492924605653327028319197008804448128209776593344114771088372649768571574514748068658513368662358607166000215484506421281399739192120999188453509249290101550923487589123606730550083524230427059780374290609678888100930798690034224997876658715097113656191308520838651725416769496086343312189788756735691897735785973597800002546386492496854112659477363325723955913152940309465411714207120940304181529811316345776792027308224716990541664836079327375085774053132236500720344943115130881572494999447827931842463400228086421744649366749205386166844935999658997644667738313077185817493268842120224004196687644594663906566421195295267231780024968201706518876759847157617224079890804048602101672801726153091206165610560863658323422845322676391349894381698165172159619144766399790205560699181400250348785067578795107333640859595626125324349323817011093617522322132869507868239113823842073393606323552403815569063020856106659537059784609901332784133904923060617334851839394722493285471272590562579865123005180286933680146033036132879210294343350082299960499152867128864088841622778535909955088269094927976796919699712529841012207356815459672214548244888079373916654181593432117335084486309003411787788136191965170426453207319530955992733703430388037040281201856591094412868808643698232328497571443908904822878665689379713135219477999081000578390227767086818990043982825106741056081490666013262176462575002655430934769373318697452891337381770241552890346217176688109663022087286713785471925317452428835412937562607374333294859360027023732832897987305750993083273574158999551143901012937648634447020261355437410593949985716481528125496362252216301717971469940396081534499701041549090121520736923324030711790605764989181404485359350443894558381933605154192209238042741787084610130727363138524229863607845131160420863791946400258771635542689046401566227479303423963130618041089052172577252441556899240328637490505562070076330930686245055233651173420044779293269454761137011650815649252829691080774379808818864388638334876886683560843174867063553224320554466994923363030045189988067151334604741979536365011425534416023812784297599654058224405152584544426311892048107302797844260821208627793359117722247978383980926827425018262168789326422933003181843343668401075391852752897226345014861261708821734540970611439816424237549708021697083231237041663377060704683421263793402474050160691072361195337974765734996684891170857146639748608941533230776190753246620279580853338215621009324706183693628060623030805041371626880082730686466096591666220066664618831969681458218072869732936049655928092687012642576075454494812029900992818021019963375880276299330299176271536659022852562260114662564295605709445007000557987204599964317040869686198383154100215521895190363350941485420157536086009291967788174600289067849687741352327481549047035075945210815879153054582478511027833123829118536845140247408798078769517154193928726530967037594648260411143034586740919408147190245127406127562036400851162724796994943450172086077653656812774444957048375671419286201060532575940134711004684309420257320159187831349316098376031203977794620194127936775479797257418546519610486205519613903760212870063639541557364862702541487557954346296288291295131147201707063974226160967242218954898933991436813124656273845778530588165617813040869448226185654435939856777711449372475084886552307473886269207533491582669064953176658539175057169374005266546024112463594613693956496878758765521076241189498932698623176948784771954997359355881935588383262080445123031308089892654245244944928932870615416917589979662947564628502759645210818964641584314509536397607615015629965918727974075755855607243934674286310594595696236698379074581181706210690007496643741583912360939843544216531673593340745765764748999450249119786700653735538256933955603140077917931277291923764837398436181616126329122842563318541893414109443109526097709791939271646339491590053812248813260063651449327797858253190335821394830822921552519833393178918894104613548357803465136648971914361244758624996723443929845578789537100056076968746661151299352492374083136842377153355642810057062620312277332585878566265176383687177064888531502712164024141289207695043255130145676462454816145068344636609209817219103686825591005423972768894465673649660294675413465584055770490774179449359589700306959107565761406236571520255651922936186097331381722195748501553963879599039593914519562662349638084668742738060139445464391120562142756627601030285327286767260635048848734647197396448286201758413065090331194308858037651309216738992067283220322177462478164263294653713570153162788633865289303039131805498023210928707229240932698088661323915431269622932378655135594177727558499332459192396281904586333841958523249585957391288048813014269867490531995409834678623411463908147465214353581649053388897480005308510778615415136686990171973675592274517282085191154164461843956662526515988798178459685101961715008910366172491563776650391348831991912401013868960769900669376096399247880910334689094750865742856873991455955777364630541707915829185716563592158697884618535314616735759584963401752597444304768760712752912856456060901451183137255067829705408518403855631774003364893237948163256055871435939091964584834285200225548826038967700234925052836014791431362680481279711042542677605352216897096541252799261391522098059941467311229058980451493545818497123903778045804402508836886374295521692625880334233520687955696666449016340869986942331885454267557416188838709500459055916669922578094577241898450773067723896432755565166222499819249641832262501312987444691276071750947063132350257729899688987206636081046742926334540871094248117679052301513236042052474315784295272368678347468729455803173723286213363055096360639801864732053697457612273876215664377077952011961996239586532738312541995797435785669203547630730348128379718129478612399451167534970996689915312509959136278340980380080744821421560932806754740745311994776332174782481260438712463767766763390917118015373371248676406893785612419857470141268322918476530311299773753579628682997837602216207234184301768673630825479918671633182433831625976624010100000719068222961296396505666146584124989236674888264989756425364906493653690851590244836634643852215510358767547880361447630602186815203656946073481759454438423126223196198966294882157458886306703227621142975097123084243331588343943107868446612954937884566558592376007312546173542368785732978438311498111870192269714236191009218265852217116751511952984538912739087491500308701199980282818447969186466131508689267144334817878222881424988280007159377903876138182205701012939309076095983111428378806833874625429624362100986714669801579666199259038565800998607211174627975100022044695822421084443039564193493708792229410110552370613932399674442784535391996012747577647802840103163776532213134032620884852964664836403300617089538660685599113612889150893855352889861700777492946665879752044722751801484854281759128740800943119236447744329876283021649878848422066869034546951714241116169144839888201978366703767934336791609560428173579641779474355790666168168988256805247712099882980705147615763399715222847695232703607668654818921391860349422660278523524862469603596567766121751798888325258380111741774322676911506669822315582608373706846159149994921830206201976619879873151091882715657865315466513265336277581647938596095025246017711959590638950564354353177115813733872914955574685847988208621416885636916242326546645333459795537035747680211341755785526358447073091576127183064575156443785991070386546687231157339049587904460582894028474013819500791896752985030849827831978337449951113915332001960640844250772236346648324348227054162539805669194116474257564924732580682889762698716634025101362425194457206489557506693359272041472229010737465151224997137923738334870917167716300897720502855873758677794439454719180242496881606463168876615071214751926704681323707304864559602711213026617033880842197517683404545851049361652836177398750512992194512448340017091071100151961427539243812073190628104075479778382924567487011598816306501838553825820819076385443100174220062729228339088554331536369692695226498654736341996536988143104695749540325714889690072277525214865829183847182527018077273757210391710399528059031679958219291657947509810591868125649100546054590157383859089079668525079629152017024182447294743874263412670908152109280660636832568852720619386927856111320208046447518494425838556934838337779171647421431305918093264283592404244299983122801537099400322883451892970100536765871992226786529704482102658446702124818285613971152327303470641180440314582258266230194703284726433987021154149821778847512366762339690311745200742600763562246118902085016528248119075358067628405494460032847325531733796778800852697663699276522873072597765578127926379520007951007527150824098520865606786824696054468210200069608528970796220390047295568151878055162808363677474956652602152875728092131602286229650546683471153026981301159047870651865501337761374739789440848813327928011268707847231868605576570211191852399478358824246834514873962548929189620735919920070173561159136848982479315136420143118158651963566265667334287475535342478516194951095575843026026252994239346669034504209715878443623216282692425451699225462390079402182416313075549839764903760389742654796748758444835227202737052023157907774371569420890230807506062277758231160397853893645565637552294280299626810133216551733912466944516535102284912976087426969794095591685509141213397009540071324667040002063511009509699630808678397520233561658987760283177211118704197407677955709949361513952374872123755026813585234244621632705323393062851298566505088131653874873097738440824750542866002286931144190614266787998275788937428058089829683983224687649623081916231233573383329827975953531318673189162925563188942437787476367647040679407958197217096330030856318994155762906518955433469263625369741090303713284665837277978310742109456192981467610562082339936913741651129868310710725565583535126040617314815196988282455108154846007259332260115799776247204054864927884663790869084415481043618033899675813378054342044249094823374341378850373320132932647483469277748789927329812974578481625537332117453697432769636089553587068827719083792243423608076208449134123291604916424232584183112128437702593224005424735381598451981931913733200701363512324977178419204172408166946953036454830896183451527243048131464567837802734689580740471783896329728782117967191548259258063761637397085571528991357532743240158348132628220410871268325257668552870096143251940317280831998528455998511559187549377391860218211692742581644206115156310762020689829168560847510297041448752929779597353331054999307209803391250919361450962028812084735689320790835271546208754861769845818171393543438304064616532946703852113583103549405854087499182580977495098622438576033360232489801146398568642430388098703300820792448563966321664762069021845916013076672048535332649281664415832286778081485971904971160170593066047791107452229196913803395585511501794720323407294706767054209497073605002523066298735012898666658921491424118938423159510613192279763607013513143562237416500469008473591376007288880337728587485250921746374710932715405506648567319887992912677542901097779007381583240837982174656673176131154426644739986268904710251798316466064114959953549639677471943409683274585794342501873516319638709130350191753662635538123674575622616680592578535564699249745274011546035447943293480290801509823989978796449437443503189660159120508184347073716365243427639746830043978956433487990349404320330807424317167326680206992500682509547274427169387607095330183741058059346340001292308616611983224335726744865656109776149608976999051769504876297748537966647694735109348798970969760555848126815021545482551273913109936700099332720577812842125775949943664750170461588732374947607888333251970284675555145893039128527913857059470264767808356148221353760301307701040938754807641394227031880499639410925633480058250209375965579954009286417879251709653314915725631672678706774815052930857262084669995209692788355820799169737132458663694489286699892929901401167884027510327565024584308328816174541342607255771643422989433842789379305103617866669485047299395892064987475624660977847993802426711148520723415941869872097556380032443466467198334101494361088842704086002271645092061021153112378911885250861637853372951494357010902645143316622853086084698993654129270800639822442831402088971443626542981867825491836819831567163328736288415131259187972139680144067116746328454753915060244214159677639644347019747583535659372759948952343123003944917247164813036468929797433058809180201379129067755734122956164667004498544936532020711824146639598889217344749242262875338438912356040658684988135583145979178640110352682147907881759723948698971934057614862405929237808091121278560972653883695600886300560145554942062023141241833311851862413463381572352224232807711902100513098772310284395834815475530974992261692850224356547442175528017566769733535363068438924719216952644242996541921356235147585005022596544505006694233829107710481002105960004694744394313830734276095117827659067700858518494715225591882580961290168113995642443368388058009885393073440451342617894222203093492754330155123173005047741085320669912054575506041971517272157522947024985057205153106830026026276103806041066693613810995696817445986997851497412697859631513364434443487605775800979892334164219237899795184590077479196555669073156793582243017524061585217591994952186998378173231826878094885485976272065955935771102139551988502527324728282933591427451589558131538051625676056906841396844532057764017560908418728121675671021590413981534350637067649725146335156143692344523546234125283077173055858521530369075605023576074975723014910468703201317070602921773633121551594043678240160501335253664156475350416335939456662627602249933009093932780584558096211114502533066335338925274921500354781312568537932411899491514917772427363113455006124145656781361332997972569359330078571422346010290153145229783230264858068852324802889897329441832981794503073676082636512902926350265936661542815534479373777736172078864887232482439234977441268821036694466210502024989909711840044178950029433880378740225671257710473271682207355032047190497356868652649601819412335758560333853513614565104705576290603767230407400337307495376892892845465943082732688677904883364309345935485804557431492518733751097119881300092415981445633137697779723875997009809648087638220900188125174017868401043229996407586820268302342456108482256701052163289741125104892821394894142632495897865941699996454747529085913834825015946026905846761613573017454787611549836244397162898500211839935639659711878987731071442614222096006744074822737636907184573082838970038544315416570752944737674413458289631047275604805389830151249866063687896429031351873605416890146098730063701515072100462948087423337519469683671675941730874058512508171179325671321058627853850275922974360875438649686488748722622358415221252284825082756831153331654687186992361532498893699300481575679069933309132443506895438595805883877329294128396514812653973522439907218615873896467240595633287908751584655313584130651428448265501198686256140711743821709169506829622549289187303359904446725609484941028724405125918469989079505122144992691093688409860303775777182814725485368225332318856028502338919482021716133534288009536414332843264824920810712082405533153851319233256410743024513760264796070743759824690731113885081577829143975516959287484446499736925961342400524395921389898134229543737159258803684806047565180231309150702414424560497245973263540685548665608473360244116317119908668507879341226110080003928156523479155859876498252917098254213730769704584030804344090479315647082032511644128797039426950867045723572517357565679041104588990554900188256952120489272559379029439724560747471414024485911552459615260329197002358962077955378100114456024465375218836866609270582780017769980621631195964860933270166146990156824318479747827873822376518968074023203036664945540801486303340724211313887239653413320297708619941823998714964695670907462145715454335360417198786245111819477715555185024439153282613343021801752935173687827724837506195559756623001933199298421492629238706517936695456800956827221870711451948392510217932389316046010264681057408195572937928809831396039815470730116941935183394673922669613289289777234304603523848304456718514628456513910296497021863987182258235049824193194100753046994723284790304455888637198582876263621684538202420605208140443964688260173614891831217680829275852150375565742489296100470628899091041998854371111118218251820301921274327791548687980300940711022061216117294331768895317560727640602278700099835650792315256579137917879894395189381073718984702278547503934926058737914892042901731777858876234402639814503878189816017076668921086296592440738079122403117855543440705009050782820283463369500587527199271396449575259374396108507420043803194124056048308462434846389222176533247045712857824240094428817604703751769529062134997795098613601489070430608767746188767265003041634961281287151273915475622314013577901310732261624449319417733111244697066869927684723141213670387951272679080580379683489977755823728614426347169940823320328696755111838973002814214900958192634346965718124118469874932758185627695574440689386087479853409529390600583595822645335001839415797195530107983090553369456215852517166404253064372301618517557325011363700555110004379459731248444111327199855338144960055688747434701135348740565020466336075724432194914342866710008169120135915577408278821112666878329908020588119104320248288072233721918846074700637827502052899802925752299507250465200168623067015037534343700137058558805218704517070373366639530108718566647048831660529872090775257011417853189671550539404824742080151840265454609476619824374151260983670230102761804627820982299083044996400107898851982941494142766789038076529527173517143039415360054692215306618088457271554145691639912201003991890555569577154711015831120325074378867964838474552115708793001614154377201626743642688670233164376750479940980660878070844606203363378417799911736259888925760626419174629380784828602637810078537953405232657874739036016136454548215355364261925391727247830477544794175269197702737236432716366317863263713867936625816794868444949477502808903521826251890237704033869386482942120079613576228334168481854653108142821928809945160023568415906317445687812442729677353077086150870048281336501034768715785337901081067189564953695578527292490988947039254803549114972423269248252989891576247234023291996994524144794755237382211545548307666708949798742765801754910020811561160682851493091741874686724506524920534122567755505743071047668002750652885740995267433919119302808479321158172261329174654100950706612528221437153534865562516422979929935889500024387190142909918511188994795419548601966174676985206368023918195696384364739369049653892161495322892753911286541729967080920240800297864598735099055230855142815564876384679062949876818034883857700477509254724301656306917375385072944431084139250308889790674373403871720354667829238030117260723941950343968238775325446897371747210534605771185430120235646907675260372309171589867976148833178383682895335418656568362731060032100796175471670863490927461304035844662102312385251885245828830358079313504786052269441885799518804782693294893649511049835283654596936243826331901370232105877681286231029873861609595601463282560810538566522110841136764557172588125086904020334782135804286983065263037964114966107069367740210647420359785590507314555217580516661640219253972441357316181173252207289717650352018844531357948078341098060573471074167278176342352719583161938302167425719352127321359992330011099113425674721281418737046292022246073028747213730158817841824452182332974329061183269263430995198938713767994879831240028427226774755890917881178407301025230830299620775152824627161384548514941835080622464238151878464762705604532124779461294022485146602045775417103022226042157748557381221908680844479952854034500293930133526421724856220129615436921324551932595425624640046004070387342677468908313123639798757444459373091066114219636854643476362906171930464878218663783418682751744460404980272678409897744652185493990210848733586816053381156976416269738731969959558596634350437181467969869712709768526379959953981184980397161513207933534414862385039422948681967841990825343514822671539950656210451422161909751474413428101361227683942049139832599566406710996336539546314623219209812612379215124900392096273018525674642892237429971045230580540858504325256107485836317329028461298715660075327294205396650856457997221570615500138977988388193382617578147157344610538845261296952349803802916744105782965380098389203141403245074756407990619993003355429133548450591452513566123817431000879674445699194073439893087543176497502540496185934356820223316971330372398037409785928541990010037570036249948842335996164087117151776740231008139524435915220537492661344287952483651745778056553736207933151982994413927554568504930260208294856313566200880561831322917697440543947309210819084590060355321694707627219190692193859592437261952734446940544067226237251673728840720596102934915319931840738230337601362105845405950154294106088161282932882767454584457030425764260215479823244410073042077484895108587928980212378374429628620397510835094157816958581785522141133919239127385079813308236835074292024914890431706472370955294317966781692993896147559071664476169088094683308110890518241173004068437124005734918233903625863003067631008130873425515505775750244742545152083383583208692033874812630545822094654494401938557478753784508181930943955208606560584711199802426641968267233152485613536088470314517277725232775664763009735091829034057717443888817914267972248822330678232310557188494346956564183420096518245573747720088427663907318784255575107506880337388504149653625131055136600347739347931135608503545156336895344129947843217427912677820015757469209575799006243783348183954902881747853002317252496715501349007203472543297175149230777138574883266176354103501194773511792935032300271125944189454684974430510687922287210980976078329242848873943046549849976028199580709606544381463521963155062360734103677968719625071047522352496473479459008054467944752755689927624540889505827132704007249162895626021233800814886564911050259145016548669524750333205557295370895089236243019498482425095447363237945481215918627347058975353528993517469788569662985259997071978925005698752846482189369835644327732220312198461761153187370438897153320362726710722604189614865466637324342641299979815547750675335345637696003901556534620541796834154652638112262641417189505921314509644733031938804645850086638531424224552902945016362348019721963077550292169422702523522061460903475980202838731932048448921657824097672910215462919910817175444804746899544433088389230363290040346567539407787704631767749403737516763480360454974123775345640214426049697180185492541513414017974153237478639040906374412585533168317963844391303100989167424205228500686470684261012221598884482207891487931621117122524614139126309893234946586156350573772165021564715059309304785167255233086868984232374767844339015283450342887657436407909363709143600329976234926491503629581373463588438325182963221769353396794082037983713136085780364963406629418340567785364705421663672191705765825065075355518162586465507201294034713307494996163122941079180103716822499407645670162488062983032181884272503863229909274111031592035007078875353154824673652908444933175812289672309755066217683635725195959447790725839252571888942559285048285560695117335700908051435370244812881711037912164019951113797190221152919777270867610522227953880312765041534052820382068975422669242603129508923595787953588653389569920553744756914485760890842457457758955886860433665124327767183525961770155737882267810404742875635216502843656089560469526488826435321944268487475130924742114110227757461561579030175378000253457610897377948111210579034708318392696808475043250444976284489054770364500345895789908350854260079734589161496679500696859015827137172271599508372954013740810149630689957386710619507715652246164924855067888529047792601105336289283237238866417275336569311300088605677587251385771771273497037227353227014303100194494275961691571778346686298233343940073350145307043179428278186612950232968986654106878271006311614583316010517298940458069106273019427694771728204345576475940879130800699030225665987722653436240399600915672494702632683126997069818827283900365723414258923357062325816127965180242409214259845110079472475364933068185758789475397429512154488624531985699362800544646933194443606922761008525532433466345139461628952601287538744261726562502136985985708367215165738152022567468305628074750943016103296503532001211099002799836482899153643770479615772154659509130724755198880237655170851216494980097584667627415012421082331360778150469108112995601754074445643921067603954919300094047361954790605897543240159042532037798262509341022229890693462154091610109813753355137766436946824969676087043358671190553227925080587334637296552783878650543107722035205196124895435603803844144677298937598788176116656641762635788699731296231802966924048228688732806830164282896824184835455822810820165416005835061873760351328203652887693293404181886734976124158387903508522989927895560988128374490796383160021064123664572842650820906508775300819866635583516842962566965164078377385018855730929539687394419380856907137783831643443809918469395840110428831247618359343485511550152991602778746993525741038554136247296005303173767730190167825098090168044652001494896746624532220549840736421824952249415377609696203499573548134712099253098278296176129266513015615193097519825640594871477846098327137268388968828138855760233065900033008390869564228380085554110519570700009535994727444878220149103342724520152313128792135696024253548622835013412344576636041021757505633329157702077362583470409778037403240473020084576294911898364611333512136384939111909821186949655916928958466588182543690210467390785965081141007589376161488834390898570748958478613745265947943646614838592911950405587115635938040039632202314936577760099686139221746513933860865186799865678268641040208532960363300142545803250539521149795056809228851405596981721187307263690630157986741947433521581577039259947707014225853460511755117065675167736995364010477893477693105065863648193999626490925495734448821996514698407070556867454866678095070693941355532820975186305670919532613272893916455907206606433169230122366364810661978796753716567662740473385456768845160080336029913888184837788241383470474933579829063178111038294211819705774479338869711058753901575747566184544005838225169577869505495736766401676108524376081100428375408818999943597700305686043315284535196466340101789120981088904673099177375553959672947459554002975608216526371772274340800110832630001426181993285208964018323433643592817873385069565899688149483345219190865808854667017763448848450943835736273703809601417825047377054855293242286612755634180860696026540624105758636693344234665312593018714727641580755652266425338844544198192159646025388511655754402192264235341945113670257862199274517853838935702805396434220076074127039925245823839428703932718643364459907991706014139574505821674136723867834901830949534541964750422691892827517247550083414201216041464766243050124136879361712419648643288350347192009529759832387129495033659185846713145593517129535022699542404747656915829388927533340688632695616079600026281815321220650295065952586677738869366974807016077199315013468153433702183847749492253494915544787689347683534491654115706104461251654796922059382572605230025260500848852009796523468288217528932409372802200026676816163549615114501529814628670411021146677693585944419225903573332853058196292059014042501557663580402205633556608870857255219939098561645977368225461763618564790455928935165614114966987462932066993232414196201026888729595114595921144233186979379617798887628380884439188173629451947723058137427146102310242370972627867116019170427512055984164995257337979532081828047408386729508251247355550493239979148283067205718503221676583481243431433442824125608410632877180629052684023425840466585507709251605082682329380126706839372834048584893805972832756504524448003404972847225572660421196821390650585441315549712519690649140758879751190390095011716011713219143214731202339252729287760622405531905071266019087085028072733777531870628547440854698985259613887369527546536870036391568812766140200603807483188877763029539206121183213763673875826520349270319755784571497138127860313006227790122991981529871114421091354114635507947568056946161987131277450001335299901149102661543530874526806248354784276832696575730385383783464443825044559283060616971715967397320495674875878991937554662265402012890345042130811938179634958364359851701636524982207981927504374680370022525301446254187016666810640829840442059858361300971488117361451228939949190420520209406776990187830761482443344124184675105576493565798145852622491147016246130981956052063185164747747098565024601263474653107856123569596805252597562484673739323266174205534956154857327308318061808788432532397307377239605683733022581464588931961340566185120599158177190747788955451868035371179132383477077138767687372386569640597849005555884932526086612037862644206607402866258143790685359623876579548369629083684540618372845866187679025653946948804419818225667096782287363764864160687100433647041433380300681303917689822815109430027355512549019370291653324746852404065037232791314217405997050017479618453401827705448872659451508092222006203391033699730915910724175988980786929874028133282622175467657752857976300227534287441606484538672203883184614999906731544468156790334628851488656603633127967263706557867111755468464832815842611354279389800210825676740268137594255188008156026911317627708485513147786709161559644551093699586643160808714412838501125971425088582927334861083467587108448608687640686350532171112397576523907405357326489488792841367486611544397096290210447306811690726358050340933268761188947276157224651120831862811465810603682042071700378008133421684349678443371574052771642954555120868050434764025595322918281552771853786250509038650979071401294001063807405440105922136459659991847715328469571001840566775202932608343549812683101082433961481507531678147625340340384230015293534726182943430579517851357094220923388788428260361951001889800149470371894238094489781614036477557318539455506354109283231348892642284414281260474068215037849757363756920957183077305866260380270682085076677732452546053582163542752868753815101713443026912498799656760482618235434497108053808809196495430750106226196642764793614619686678776144036304531581612959012818020190666555414752117917829498766232884726776190225252563479457197591884620668888526450380165421720813655872623827729152681068573992635230970704780814468185220953244380754607848406757223252886803538796614616396651580834036566907887607962199681682732341112593317465240513493899872933599845448722325142369691612775009527708979591716166244284712329683325260908335265218814940959897877470827647582119138598470332496937379643540871413130773709291365834441680238406478600703781644434922570187295382660653318068062586558705897054535177500491560950064585940882134893377180633870709886996638288636091704721184593409021950647360076331751009457773392300804940205644202384239631284628498069517218122571523853252502109275014880796629927258950359790997609590389504887954320908732090163532412622758799672816739461742481594236069216614069079893760508021894549025987910463316184475409262116334621764756351856850201230478890651932023254279123001453019352076720940314216462562253358446205162335052362312980024924080769901133551468394674794840635992038912152898171909088308659337249688402109047080955885226668557607055239582381456780513006896368706058229200773912889548137907452108913546815651075946921282097512838897137484997320058550700627125217649468850152429510854385450221556352955465703436712350164903485962032702258162382062405995474077025648041733812481952059468864484286414877581542064420539314629085928753371665381187308366983994053137733041601147206670688498717330723824732109206822267991463061473159114569025043236370822968236277385773242250123570854832573589397537898056064950230116256885773080643894162011385592125425590884411814242183145096272134740354626939787440221191236356414125983995170112492192906071009711051042705585614595124455945799602900298827968885385665345899735206502239034096547852432952733678476618652898752142598085476904331644871037766157090567258116191795768707599157173809790277227103748877394537444790933290596986661069339508835253424041220531877878941288308116893728114480265103130033063545721593334735654894167795206479499629924940634859040746419584754463333347694646636980584220901652508541720795030021817119490138979163290362740404344211946429036324462205760181496998891367831286182715264138833062549740894136566080286858854503995786866490944662864219695303752033684400405525954062418658205640117904082626261780812455253000004679057014534680046691089027169456851659360861468118401157966658338207170163072478076177006091127609718628139996199685536280553663202276643822397175574353999971787770512233540299287799226340252061110419447512302804772898315930464233144768946077081983046106666505253276267457678774912773636027526979615684516174161086351248450057828997466456188047583757534337163801820635469029857686140930467024891784236097933479104533249240119677810588467695098279179449840042450781547089973298270588685655670410470847808490193526760139229567062542610289965263396613083567755100889436383152041875978708129009145150233042772039675791661653870416724526250725986224202082870583378611019513146126585217500402122014146274241711354781194195073758967529126537210093886258728594833506676288992470972541449269117816897453755191970316078676193635141397417369237088598485360369350278150861887592587926129458062651857674498524084666715122848854374380196082928032787633539815630390938732027676110560596661003868008743545411309434386780094793816204071762191253140089366573902771493063936826161818179371933439081289984831435071029898565676268433205531134043742577528452038004589010736920162920372908677203516533466718246046029347491121098713638348010507498025614242030474088469448788505475084031522660149592281056412172493570196891709920163983562943336272477533765243151548182522957878394200231034727317418257946799947156388865610707088662503600083597024520797555642407909828546142399366915309578788332805679143966097501472658010829560076787024620662771120225747512527056565666422651729079915410628961124388670253491132987717662462468087390333568555952022877478668665704756872053860402673613594147615300316855884732343734132982462505637301012952603211033409081821693577512594366139195194507008639269001449587194808443057634422558951019779457008531600540052142569634723046096792689901344788483819748639878951935986247755868302965468690127827148527984471062168360559688577467335122936058759960804564712826586890676148462848532965897024376113124893460201922406370241129738968608529168676690610524963462498669900600308081131192070233441681823202049119076123595724013866952450212680637923956431693117363850086363320604778890666434051127886435794563458924778264239704850035214383415049170598027752691016916291612373202119963976990542088962946616302709161825610939390074448624306262581462085633768989871134240731637203002625867099372503339396022968274672785496745688151895069456594455585838071117493731540652481430655358596554910847625099414871705658100190879640557034648967742709144836516846613212734852030687695477301655793835665303937251700939131307740623080549240481240386517729024754376524178985793767175913701497610718282314148762681134944072776560911943119351443397841487462165545397953671755211391615711975975439716974302223877988164815660401968807099395301549711291411972895473209671710705355181166086181998386698316232025198615643979621975696287617904845819675345021212978582231442689356149686828602374887646852343286514661481999005080991223551821464271935719192813259147535410361990691053235619453282183222797201408452667882275470259414426072333933886124644848666729452239025695501911737844077150595112322583205289337223299262121201738389085195241390530171232142580037839461783184380224589358752271707715039487490120208342564728157041829003895317271532081066901831940084838347371599622361382755816151763540628437660389586225309704361944858708439029713068716791854750693915003388953833405122818168038758455278567978635939844747853419087692282586224204219849834251972441671689585101088564270891836265799650226732528419116813577492752695433774386575957201707439987674157977689246509174226514369650237257359613400561467623682891652511441606481875311162513505515678621044768534279773410271711479217495765713127563198666106451432119712046363639698745815995210651879097319533625458363199812074286183679179381781052097464572591393456080329606924400294302470563774209812795808051283279387540566979820406260532114051696499797815762181149858711270314290874939664634656697403886603944670884319336446968381706004605439856016848125650781210368394125683426307275737529153839096071517959060973577347379668672250523271299406676410354327194692853491992980178777040582238207314979399305898400452541272987928902364647106066590917747641202966440752273087731191126460948420391872064701391479935456915799581588742029495907089510920686701302899778224159440443965724413540867423846489382971502796348463847723154228446968101321446453218975699646375058773498036286404922508670153270683750634685691424626993026862023597624258194487554415582231053684768036116821199262570075787357445519960977238908266247133961496523644066859682621039304130828716684860014914474702621668907198252807805187451184865301853207467494474997364812069788481180974162927458540882251866855534972749549278963515835379914840608788902639494613948866438910833247286093397658961861811357044632947994838215933333845810050412894371057737833809377634743752529688569291171260231760718171742568622351746963896828745875504527032524864911591294064708226077796374526168902464855718229267197234012620390003376504173026309138642079245179745421150573809453134067129032382370003051066967433194234648437494425533093422181959936508124503375042155030182770246030654314012267528757188848096115388122068346392509184364988648856669790232464819824583337518215612352781544037246342970928867230184405716431642912439698369615702954089735860305488884888334712130031972622121717714258292178542512981428969761955525667763769535716369837656159624862676737062704216978131076632028396444806370277920584155627856067606805875076793549378923844226891363481989945094484363519245882442050399963960256392025710056163121142330119765353072298913848617775279333262573197230448312443606106860065925313170490190664630123986699471067655687625266258551422578889409772926435813066376671365210577651395945708365943903727774714185543984705550467079444200999877864426766569513740985884145654127401743520411146455056344805857235925968305797745802590571986565304039048805286408292418523175208848164485853733410415377529295535072389380183394041652958314234173893296219992493123664201492445317735410222324291251975854443495396892775482500561651226323812039295051632381873951244172784090591780361018124762232085101432539724411951937042206543515488147418791019989526392243378319664125645189717250304230116314105252504184169956703775374248145489489732592841227642748905754623934934139542533979487976056708078623575803981222391608799885251352559536839010890395192303609418626171202192708357102270815726221959749812419084165102049212800046061009218036927896331227067124827091478690468081662905626470105246530114410931155685652389428310157283902793591678751342395825408793709391269583034859400354932841322509899995229687867282111640983278016264128213214930701784086322794927268434938787825024551581110952306849267083032381509192333085766384889787156952606486112394284865113278961890510834657270066852063635100379968457000348654618057649781638274632468655879303638762410952916848255094353315515805420321737670633430291670058453686793592141104016264896930199890062573151298363488815255252588090173916367866669094164321669835027551058661587868480164734565022348562006159209824156458931514883872034279217720925899617283328878470371315481296497534683085479357058862528440982555346578791551353815010321938743015019553871817623999002356189505850732576115940733266513561692781484720329759696126933346198512416083374344787553934336233826719003341555301172470423251408146213073748377824429290979257894797538818574234474296747204607458759790597037654733502570474381367874000782686439303657448118593151978658525096930546963417363674648519099727274245865941216680712233198227968636852247184562266994764224570514150659718460546138005533205823929054302150903528056243016682622957384187968229533761032168193996018080184992905265100003286994031332712014793015963729415681694552073827206582989285058554681869211359727053009803222287087839039295057046844129629301085039879313423355242224364683408142247905897786084659218348130888703360586780140776471809159787630345444005371900540565378040570397871926487831257628855864508961703128496333317478249392397885452461898491553095536268829615614661261092719908708371163460306819710574601037983511948773651196151485297788733468440273097887036258036644413229793854740687597534986382057801664281658568496414633968242599932576360247964260120540866798292733028448086426944568767770271553209290344396034327501226036640245708948136365240705543014813037259544506529684383361488448822552906063147918560915184192946855458155738009336135268562849682382431695277133214455086081783549612624215632207362872160588150652651829615681363427779481596004856154445363074691160380034580804589438944476786091372495329606508226748419448714034395904181477091185331067895837529100460060440463738551028091336807101273544910944113528614288386605276164518921666229147908568676205824347662289700792245053575883946938871214953107269012572077820991429076590204113208035887691675664711597174218305537395448362724729161890680277069266504489892096011596168952126694674452412023519127272485528692811112104845951617716625399313982393228553529951940762415889373443366941649777929618564869134227582290921870568735821794403806313345611044735383600588307096179261263150028637617011151761947119984598943974888009879044695719246884331011397155634740688216113127289619508748986391393426626464802727205855850975880363254061582374559801642883943519005315366439702422938512687943460262912940863293460225115496562533756547468494431539454616398624006150291860927229975513802590572095775539824685265564533621364305995893930112833357005939915569068225924086059245448632418273914449316158932744681631480865264351024009161315444446300912164307260131125639637828054790364113381252712247374773597477793031873019495950699263655750790740869375848157741675126661849462437829912229797687009823590666827139001368313968033650431449710989687421680323921167858154117438335945144724282321433434167848333218566247744833383344184318729314009200493579041837670931757082459920441676435079066140206642773673903967562184531847791866450695489686294483473287063152235524520615496792713195279130522266639591853631844987253573385336240956599032052175259572750523254751230010242600671091767016720047696948518765161848882097888423817115302565185264021868306603552541868710289731756723341113898327346585462441658150683545523193330859425437375497381477088736416378391245595757076825702379866470824062232881289639188082138086359333776108954735073265281141096059232053991362276583104335900739525615343439816857841781187004200539266751912446686039382774286718359811261408571211134182409396099532901806555051048614486264267928942449394631747071076639295005362231201903482670100233512215665301705908805547885191539671934885738903520073202019061945498336017951967099579036715919828478357763324542793142637954063784209003194026504639358521207186797259288414869560647497420383014451761490995927494938970342110270511247635034086143821774451312991671158692312127193738110674718214229951675355115517274154233148019493313678695886977081958100987988893071577489486044421350251978543306222115786992588632064967531078648065628920209196760763142181068029739239826344675864205952624236533537064318011938336024305573720211350878631163273866482003960692610470154102860282226031836439253981386502510069165154977884791193899070129712659525317635594944376407377186021327234198171853660264540506883786525626290780433666653547153517595406247159677184654192122969066378284941595426572944673606815650173366427564173976895593528518282181685085501222375796427581121633724188113611253858339811357953578548642948121815537539476679473005741871287220601955254705008553312369917721352473371466116830127020254491922038105043605181855110853616543731478107519250588044068254634918605455937737138179081582681113146735521432323301475173296118147959386285432129534382195571049663533319998010045143264417825519322883078353301433408598231753518558566514826804199013828371325432456812072723510422090821958020198051420807147315819825776418612545802865275968727688929792562417152042514424959650003768357642046821457190119641919727488857990367231348001916447989114180562953881091815680470675578662811115947997688170528641232153151440285615011903325448514834831480559914489602470222770990038041826618994971263331861843787425959489157644195854793802341497908545207673077814817898408799589241661102887888502884216902136096667897041080619137460279901739308389746995838447034024504046184841143351032754785133673289351406602260143650659904474125241403986544699065789236797798806641988799034122094333041703820843241183198251659862464827659931027195913013039593517525038431449913408218198344027595037130458750742554828458256277858864771871346458609384851234772352552049813247219364315600321303335064634626517519927430643272808327706548944556606691901410062997395857585571283826531820330835157547962194333146987230550455956202630241645662419561704078862418090855217271654343070846111342280922886136440738654440592417223056330975879740211371942666623758965665397134188613457712843778835772041002102078440726876941816956242486170448199088914772745738054126585544583760294069081927119311663593727907562778551793549076392133578434212401555745714336065922057806038768589792653932526301355711425019643745431138770017106780658180023549822629277945799144574660814113260981160377382788399702781153697582576809467864651514503143765735880777359075628696768964023023392243569395898670962443578788687597510849847531098913569308071286365195921968176390392050029219940108026349494170911686577899358735537913758249790898866869631770969244797225553418242621125422219789034957898435524214948003440865046820369912513488522357940693273432146637458095406821426178077901697370848762265634422016728169758318182737877043643081890113448836384373139436661363242386004138462076770250151378331605987216988017079180179623406384177527782488236450913027965482368956563155659761720528368111253758202366570151077515479653499040263937275057179894030997116639394730659438886913657024142506492509723685293984206320015206468046878057476330862324378415908708429222231288686405761853732546840327289689226957333152647695286939712530268637518533316771527225681068263817788944594350420430023607139985764181500643364122931806398952552769115191180498242970272784150681270816551796477582437808404496562233188711315241418526466400040597900970862412120941658672840608691469788371217679793202287878698647732492599619093143572999755192782373730117340580798808204353613307643242039476042886160946403034443691982160733168463790749302162969227185434199976047298548365351220047773483499553249106286493256954652220188770869420364266026440153337282844506751243830250656478187615000035149907939576007893059333329523488141124659699373712052230469074618422254214532390529491623598951883952262779655323751846939959950868342333727637376601469150628312183264483933175089800275669414800499076540247103019064168345868209704693154058742287994709695870274385588622312510155984702771067731783132095540025899258402568064593891077317452879677163770099507203155750176594775615827899604585546852184680902300331448140524394626267392907652781182955944893097976160762936672873332987511581224239545291649580930588518438426228819303248133598253722703754236571692148723182696061744177183319361666873931889859378758514176636959751753030393685490498673754162008118906454008058845865699793032998356281582058404419550537470522990625382897082325394028480463944598522398448697143589058545012825933013479318522405079008829901614042852273037194886096821750090608289194791464204326957721502732929054640227334943948091726090850915181031464228484750808831868952610476730455170827423014614297227706734654362147328599039501941993458753576818309941852497545374965137640912804199822306569384058106833320350025436267086829046160826400368988254202627868399449691257460944191641211280962629182953041656980421091470415988480506180121000508688632649497371843779678345146317244798072836642506513120000539795578735411907586360439567869279688094730270943448916617348810581954867835866794325446727424850903485356187168483820051588696473086927041719872083805223033114178133695928639088742167626086286121119649784638317204608536421916464731827927636473336206713607109051113557258307169280675447888596670610615837436115465097915895504853627894147478052167994930068962903862096982139056246988215739102899769797010820616782465079336780667902058061548255508036612672557010840477080642129636237775053221961740963255246361357560900067041143729155896482981302083932793671342122090433223277175306017773485335546316146296661993359723336914242001046428034883651770670971188994049842230940608553742205534346129024047173724202265873355078075760159766156612241950278433251474240114901952664215354998546576155534471976296674440605948851779464232688647971617177713082239842806520773764529973884182504868292983135741986735676552183221069476954823856416782467425814459509453176892906199357417371092434862330899828197440725606340479842354169514907462577764736942446618654517322507797183955089633667589108114349252240021662376184944493517452188776038392793475600506259299508700067015009298569798565231960678926409916794093241028547638256875932963018094962423655401082901109179539685145018815298512711188806545770209122673876013969609363661934292575908501084721923213017170820943375473947051312456408623524510858988426219830254967395095387251020543514214108429702148533528735423287515946471465587839158055291113701062822303211312447725580075838894472205074872279257065495232063099107715701479958743901355172238006608891351914347405287707255240717652962753117080337810057130178359858143365390257848038862506197838515188807492163650030618875175032863924874233597009965721137266057946701171453607044837822618637576576541437166880407468483790742057921536071774970581817596606677386511958307457754546269264523250658126549838125951354834748008566056511967513287826824331297409423199383990753017505194652679975678089114184132466161422885984631331367908797432063727235764943848824807500063424036355876947155918477311359249738953802873933953982444440977794493740062462676750377674652807909551016197990441221561150126773831340283336028176968144638737391751335357234595074614175828379862511911888265818398278910888890640643154390192058461690962453327689089372341827976805986008410543239793235956946912936150254261383525100483321052763091083168065022257194887396744808209743100794370171415500869494199917819785457191855580170475498458799322197019623326285392616282737675337531169659257565804377340906314511820435280120448360528200748283263878151366210084132744766096818943386252880999389426610219075401823568206507526665449858258692249216792354658844777524027869845065993667721766153924990138219765281708289998482593278263277731869465119901915817238201562276453356805901524838548642480892156371259334923381550540578347436335064791033976783068081514132202073039705767668068938295529380384277536136584943582724238298336698743104249527100170526749569617307694674651027576662658854979592657595423891279246326583958198098621238576771629119658827567073349139007087417968808809525998749286354768006575501079178028512299710699867483568880127165413534260961839823902948028825655181363558837532405182506775400111206965655968323639610654924013257800440468502301117754468465914357640209395579677797806704315283558628304414794477856797131601108480190599819400312230450362215131801787449509084271304706072094994359544928452022326541633872816862196238719520844982249450088951084598383461974906826821802007414594782157100587131677363506195528854863209457869526243898765695594619661940144587651924410741059482413708624572691044333441265276201169931803466108315328936237484421970953534167827349397890526415138731698676418736496231531723356276802486983297210615582791782563440661435633334946255283721268812512914303091509437273502092946837752746402540349415979293186915792836392799707952428182494513601008780976047010173783005668858834760277503615882148304779806121411598249500717324656362114971653227436351625302347438652756620039072586592384259862185568847577867594071079764181020637197073339603032338901748204210821123828216811006329991471265364207755914928972255397526824696298880055849946922723040307269630159147013252681125335953269110342517559246390772410651662075867372329659388814597540108331175862570789138054516055294838187413571132366628629952383674389226188827194873761235536049932560338206232837464283228036814009732556720719911588774724004521710820310505050771208103348338999033318336174711499238985725547290606081546757598919246273004823110480980442810048692287414916917741890853711985771666267065618199015510290957547782717467188801294219260226760295331401517125564058437748919392297190101364794507099621802570069248941587895120920483853555510642778670240408475902425376559053178821134413649294802924921959736154843964830169452741498287801079389466619227305949443605766026532631373369132968599155081600735510485251197155741739690127227368025862710783589402753026509038929259658080442177163143609085921689535461760496198352337566063179593883087461559682041744182143102031497294076809147732739550132664056499738769851805989907041639875724954559686276837866805145813600618624553094260964998731129119066606662321511696995540717305575113797899143881333478384788456152278041291506228753765403479264375552578182549489669121040241988174256473292064864767557053332702931925401195696672347990459399728648092107163749987658815231431533851699573385505755347293933889961448256569683191061948729229885817736336850878018675633672997910294979897891239671360852454023835069422990249091816905231083853876344308345415345183255119545041880100058764105719587486946245699854696096945314242606546922871867897394002082763013742425759410351137057453926979582057714486875437121746253296512801403918018483600661548515605266881630236612149102257192048953679318812156526820145529638576975910644574074910861327387125134468826990071498897464385951264614593700160799188355910495034754250037211603407323083409851440116273693538507864793517586126307243978895526977467945679295388056006024744461107384831422485680757239637548890289302535729884355999415781484444262127502129520449489361382835060670809446775823711737254514013507076731157943465980395342241115017660215080850758577226476951177597398116150746943184468160434875161195449568805857861201424460432436073024303808302527090232907330047209899115741386513836289764385532959956955870346468323811654152294407262297023376113075003526245297163922920550517795712794609050778577663266968309937954666418623583166353164063831531361242511403182009428668152841924250857358380013410513281607803197945405061158867660016448960252247385252243962130738419193446442006195218352257182739291991240463448124241743039127581984898301643490573218413932126549503224938597658172464789495833702607011371252452117183547863665967190110331174209622227016141362403252201318973600366821444268410221507335578811158351741871946558278758422634142498421896901626223288825844400305676348155179318913296352075231733793608400472568237504558395516114157045079283390880294386697754633638691148042659135086855411695552778632385748126380075486171893600094981748984159825567006997676587981223620116833205749935926369112494201513710062173360616554652668187295542001199590477948854849320133410681316195711538559315784937900779051401516412855000642306820031680500960353443498167085377068182575943405922174168918348631110801871566851994398403290191352944463658442934662163661361544628448570427727997669757838009095578968386344820919199786727082060256620423994407795303863098277412672834937917545595286557729288413738837583672543151719435512950399622435577939656221582024207746699403765858545153101023227682738857963051580048482085068401531150856495589915021526553094211734438719389268830823883880614684075680767710775861630323465714901967897473950547707756551743061161973664143044469367126345150942516213254013929335989218606245472827962257231867828185836651340621734027048512848901180824343451790865868832180101688707484497873341819176238995622552508975040786790355880147080213384849927477292180315579607881933947115022051221392889559048452091020963327267532145399222240083550625339315513108365494516851858022256792940689104068292586126505263833821952370338723566495562382553601494257321927149473760063433540839379949340249262809023706496388367287642363842149593363553658788812733261772993790009427096855373590874072298059610332798715753824952755473315834984137858764966461233624805615270350217430029582315216786985630910474659218716365517628558963390397542926883719654644299387464155282836959285081160930617487274079875909564049446778195221660208781731248904930476290791385185912201954618965506435590345183237438984288010524169816067300502327754828284303514267188426829997046563177494467846977277778677977377542534887887753812072707572914436414516400384149386543921369579038284095374870768270164603815968634597683176411661685550904615452191332034942902734255158270323446928338411504627987303138267793640433816120478302253331088633903309956979097871448776690042705723170337388189705348603454614282877143594644339413073447741877725757028771238572753475051137851000548972959559338933227555662631662613288656833214226978036255769614791012454915223976021868098105195105330367885431882402206923233942226091192155579979066590389563845016703965577613103477147465583794585956180675286532326004725873726458304562535978304894097940612778589456411597588031063804018351406793625722512183027690403864394287341977019180955112403459401120045897657888297443554757953693023208858099929329803563459103408077542770274018610567809826773641334201368037308139179138240503724394868884088029967156567722721134178708168770802749885514261160805471026748412322051765652532741425393103262844864059786163940410395977649789301458565708753839709417905554685993225648370822442267467897077409064468867101669318359495270519344268142536827137358120450977052981049727070535149598140259976894105722100854715503092916076379924080722014182032583871609019961456758939984231632259049572130229341228249136008147511498403350229249215703111185897398910992171300605629747039728323555921320184700254222151025586600997053416750041379651253549822137216091204173670171686399477454836394140219225666971076089103599763568495557192427463276574195506996828854527678319376956277308490796444641344611129748659355547240873673766022015180618677381957318072819306112199585208277571688058963044978312598196355177003606520428686956938064313476045011915258531881222645187807988002179056972203169639808130432020562908934760494972882556287121249833340483151161845790687090343116941308821527677376941873790888545963174990373537340032399774543591194249044011940294107744764848259905266766214574950702992793778745573899310902151035387218938289352991736197777907679494519482012686903732873505315041751382866876110538345605809394749765732477137193164574175873476065888687803241983579018576900796647464871115389378461976811320840829568240156427595450907612501991325075505611557255669465659430267818514352712878296044529415872759447598566361100529288758711677151648282559273084418364837433995219480646393388865903051892887625509320178032652043467281323975758139821334793012721139223344059638724747455712989922516407694146197818730418230238894268501544317695644986496084014937480095717169864244598626025331643949221889486340760086007717998274629888928862744247393441522414152601781290036828898921865654206141506014334094477173464443458061345646680949419375604520267790789790557756307113837282692233541748370682646481377396746741163021827018541329656356181722587010056142647203862794509766526208503733605481101684151299620654803111216264024986812093152015917688669794158533075241533987987467462387608040819606839508208782649632173099075960698897096164414424573102983822040039844003694993493858942038794605534289003918147784686456891745781394814924595973916201538119384270071810111080561086262051204314776631197138420446134742302734330933611077222179543843024381203723500705145978152996745228429678087208234726808094344583276096289523147153591050835199148630272095518999307336587510673794289666201054521291668625064894072696513091629297698485476882838129306183171281441285029613872808157232046485134322833069071541879193426534808290009766990618177312942415656169648493929858307831429019894767248646105521780792603944089551146639559057072009250675529767936501414364103279975358061867368229918536216966289821538607369294940679067563247693522661057617598020475369445175474137883084139019830540503411166723873474746411439288583080500946789880264376244843042929365111002335258077832015591362614817594772438764632188357216041855479566481265752854602103787870200826356078192186405515403306808947914928014285630497623252629829975916478921920336715293175597442289273452691015935946200752548421487949569638775413523934488749681783498064081697990104791687574580402331527461816292215969782832102445285516360752764495924007360593200086169810069635538935567650576792266217523690187713763268202099380441902863872291894838808624799876858409610365068427014620829048113179986504664672402330691409967009923408841906929965076079666313084636976265244506923953179863557879149591267845152009557583775495970756252469395864014928262665278896834311660307411492872809563546914039399962658639507626508487135173355293182026034430280935248801381554141676077564780946788232174221418274191819529092981567338692300071948656440501612447138626543250115130591198134426740761997456348866003174126225359109464950027871758840437228946294713473058622264957232552389082693060151915241700562415181639197887708200118293038522709797449433868071159924781942625080387811372792124909297625392832627102585747756435449287922780284416533362189616484342854151978361805095376769018196018497243771044966698238401552929075280445850872633515632715997920689647628345342408863351294485893220851811747343063808853537116365120094670874266653575380668143558782437967166119084284594098664650248285343465746768857979043663659270014501863160686596000990030933224465338791053626785672979543306203445206450470339540569213029811008051177302247003254817824140597661914008910261191941665609647214882898619848190864882001493026476444486378105535923420200404167308640279073727510442407908299328622438574164139502995868424085447837622779281351959624229319413796515509999561742897681954496473905892332151979650503213499438665977541042862057844570322989175165127879111652211983471063468781348053898716568897098736470189051930181711278594347370868006355316384750076718309185736566595666314182577325013802278999176140898030501819324314397391255435754201801426950115161687319053139432534924075024563621643662127450532600884715392547724401921072598518374430211093979700529432196816830863368391027770358643418231940153415079332999152976622298150040780089920980910796322986675435970321000714400081959301252349524834552067731474081677620388731025881221043986053648869951277642094684325607068905178714987580506478883910188390963408996708954279688881099727538909444746012591998349866817250994530818966653732292000311592289362092237591822094891842193358692062648194052545331281231365985340751612469231958966037550901885407690869322273972156403276384743713586530160985793980525333814289222271970610733451734495558087181061653094310533279124592885531104305326731171356596144013622893082293276731687274264577582073099979856007699053802419754228442620469929917855470848571076691355385814348507679493812536439541508507294579258995993757113651131829872021782361194396750054577142513804437127835911043193581465686408871313341845759426680363980383764763055329674054729438951547317497676803651519296917285953258639984744788229413128466752663921418804835382526051355974560440855239096319092717673551874094731840971649483674125646772099633403617575726905213579569162534584219430199477798966954166473451733981516242671112685314919417483539251167334421293036796455729046207145219012949331847730877096744186546436699906257612452562943987812430877069050477554536350560241523306944307148058662811793174375345544919896850258789445918546271991515202668054000326758991321559772414321672533002197638445699107204753592360033051913163041908011889891287460994984536869385149807307633325680550879262111252961988793093798841418670441963697558561859906248424602005435431127565153089767858374009151696884216601535873454682811683700737444480559173246536884561063844710797220764406939253537170166851628559043166627144548605717741596885672741382195786354104647901127057368904575935710611296643806726809728896938208490808201913269965381447690557683240715390879621174263959298409256350780227100872123383923976307317424569593707646750816178345257040451382295244579329405198064975809701041380422914281878710781447362815418270284023466838942661307924849634861379470514725514244178796593107187746936141665994577117821589441074477203209600666889266515328469514515443111489951367507709320333972186571234381897745082851434407497207861947511165828845956796834636811586516823214844960544477432778989565791683067878363086419242237748235759675694080515297102233683381906536258638552255734762829111234239200932814380605263644949086991648784570619746061868485411131755548511199557430043491316073432091786929303835311666667191373541928673132451228578254507628960989041729657821013255113962608628694701524148526893272541888152122402336494626039027516205981520233851804599189212408328845848683502937233284797641221915514165969617418664091801258078683227730287315100906202736212108939329980016847621356783489205083015590006402215640332074227963920040810608853999497831005410840928718367765862172063689410651841779789107732704226702580252908435950434620924379265904060630484228617435819117002502449692920922747226299235803261913914299678004584091914593979680046245347954037253293856795681807582318531766007021009192654618977962805656442913355503549777063849136061571823535902585529360070313192007518035024195453700214767793001545852558967632494173214370329924146321989804732545147574999626639254043360291599825566868071097758056672152843563297723164630078978659664610716778658249848848974520596281692289428069456441923172281661172441268993370433979641024473001218005012022831835969456761741899200916070574787006304157567987617270294514798297129588644079187384379313429089911569876454524706530469979805194735586021674471513110934364647125775127830776792026630296518191625723203987201934516805020222341316269451507367104195792218392000239179997806005201851161069592708761653337168018605910149272840163142568734388432418201247149234628820626733296017538100913061275252092547579306674279276265282132733040776044882265453460296919366636769781896509898697211592664357503131481599176293567863203097397207017924618265643187914535516868535499179136160333604249985612827605700169323690199012683041473923189723777528664625868156442981473826918056816444459111342956784845627067077661197958336852882357730789910961462686898241920367303425897092846482383409257330633678640013217357754622734245725725105919193820093012064098838524469122379893590542087553479451459382780875798868945509236352775986784393812953320252416021518380944920131571922977773966486902375577490731050824935536192513385784537565050799186339770210612277877059967548217069995058379439668998695889703482864949745624969535170879883788659023472442049511837290113915567077740012129238599714071584306238866655902467011464375155443468600062199501724646543171455415349226702618466899627782400366165533528086974773336036118969469317651329221577200704120381759163895268084258494164862343669554956038700285377131396625516366643412922940049808090055226014055275733130113230678891651294142282446021338606081254830163102149563223976624828262871426775715335303049650044966107663599316582393562650348834235233843850212019025795837831152944423022823036573412866851746589927629030028717317677466098766842961112539487594548607021729887034675628794534941053977205725445248892326463903885553454148302421158414838209704166567430800430827586579781245224595690728658430564309828161773731504574832677962194826381355656562461002096572192754444203211854506868973252086066526154491540901304359788709606425584724746303823193957720479528693218090929159915148407461476028896895252912705634714696339730564371412657417068768520070256634172785123157685507591042506747539619803527753617891402550037507813200093964747836095814639049764332778142417746235769657958487633604513206205829812968781929512339178032516867167333520800342271623034855579223382206643865341953608201832676362426449071131723157058837847995176676386469134917914731839457548354974040240262851152545132694304954900101868214370125026360872504399388367625655946888636715682173888275441226586179880309099268354266793171492416109835950058279041937448648288108489545116139357201807821572458218176659637789285499218043963570425624330562751492378534466443769731067488539322053086027516473796890794006882557861216923810138956789557428634540992356699847120921694394216408573265164366005761589764858061853247169957301530831964330074536901034307285257521491102813374854648783001916320856982109608493929205019121086771510124660607219276476930972848652330331835734871570871013110287354238958677112559621338449157130933294556823632670573515426707871011876419821862387053273058503684716661563916108344720350442814298178794477909513427389035310000980161728937595650551688238775585801093988639014586422153548799921514542418891538194130096949448675634300321445326663713273577255888694675962340099672314838539707784273961085701792280181076798560076934384991207720010866077779626014279843818461477700438558105362881313579894357128280880501212734600693938478102581775408315230620247892368800819082004627404376487541013348812385801207260803023251467385258197546559952739740513478202091405500841087446890727449124824656521925506520668954902642585978084765106882670292288951584090202118739826998185500885091882756528042410106153116180514251461256464294597943144227953135082033522494793145600761614035890725748792926770260383053520988906251672695188266140252937105096195261152612671005005846577103440625504282118171799355830259193071050266584980642493832239909006849383309736006698178732753120116338409528152554281625783132822828487529418021376631426451244842552394407867946193479704236381871623100486204244200916106247037904460133991128620839734851346141446444355816441452867893354422837696189015661648900296629494949029163180929289539987133940918341943344777104118576453202395971807070285913358377989433478992471337897320959468338014573127729701646553448470389738247064611630358298246042424139348296028381989384785137346933022627438156466081544560839599643169077849470125070691888299451417658317436702937817678942359928197452747542034299614380517374083826086676334295043297019676073831982393686629092855708399072080515397452478682419346822001453362323615203352851430314838803387175731898775886354777904209554037781942030651161171737341503275942964676218959209906962604996937036215122564149569152968095848996238006783173262541292701390888341163961616371996058002911032948148397206599005632490811505351135661384636498982594821733944807892160675044591029529113587769894599816829678281243643730039554074068739100859497120447704132546579825351235665974678176967415102191678473137081691992623908267316682049912668704768348562681530553631618583142925010372151014205916096735362790248233552995962093391181160393889048943711950070148690313378686777559824407778113664565404032393551264538415617967583294989263327973962179985749807852858101034530341661898831900291433899617682174591138529097533214011675229299851030185280339666106848393599399465394788544210223108667510479785576025538354115709225778792008824267974933982171416394256416318781087271769021848270646962697600087421371734408163181900169707682734452984766359349403584142878902764904066912925229599853909701857055721187057991604082096141770562734988468276740679958073813997539680817510667357193668103305199615853171934777725368800909312508722333551053486594151083180650969295664292757383727393429541043428725851052493229296787148993275350096728317020248242389682663936152751263531544409914419970987220065765585081341971666612722766048742800812493314509903506011135993376297422116840880373558680028707945173374787239816105617768490815360566496007070140910172717324399380763590612055133032023587143426808233883012216060400260576692350451266500597677184162356822548025059653285742002338054960513581520270923731039837373313484080677503420885656672513772963907502607456969479337992879866291520830988018866782330223798572272295598529920453044750383979395355525742062406356298952424741646975740581945342950217996123098399075036433072228147868665498955770258147091537115408190599278526445906109652127950933745508500332362221413062333614341660411941621626153108716002246577701639028692598750299788101309242997770800193052634308981159538669066253416309490966466436906153838427274139074298917189571781255456149869370636987698718004476712293099098283453343283592456818263900489414961392735636197252338075428416871656395975593213726961145229761066423892466080369775725425582030877915462460268888892395168700621565226790070509506050471436578305486866290189788155327907132004043650713810629745025566375641759821742832051818415804667512726002494520961951198431172557357744594072455685155586849033440457059684587654708477058317753263154385116556028646686295776597371436044091934383777110755939736397290634584715949237830707096589581624090503692452656981985817350485810590172859960138122871246035756973126904185396278461198608059364402076019359690472882025553509286251572544873640587943513697389925961357092142755573366163745033007720067592582798709281599979532732581418098072154853526445398086986219736209851683975944251199651823811606196973038008553599891165532670119376158447215024617574556876476845679484064551392534271555591270822327696518454125073566517623339417530685907870260753854745939387383486419474949198584968256981124967500637899176151466389290369448088353823736710682792269281963120162130989097364087324723157783479610810767523626915063616821339945708193571555849478457628211531081891384789804482211104678514458493652350972359264674121957717563463104985895210816944022184650637976544958071580607215507179000592115142519866030030407915717907878544135492224771267694948947174142687428178197208898227332321447809374637269126170624361788801246321330163753994713496198930822977713736353090381518695841543468364621193170108728274474880507479319391011755469829114142555984386485659689077558209609534766462074912568948838029483226751496162634205388976709927394718373556067448398277614813722350616699149910003075028041573308855150541144353215835466478280098299434846771841868972411942389597409846290668978002968765492679871701720375061959769356082017697516769804887619655989301525791213286994742902903681723853900395404000144662999702744524594451923821887247912047006168534035199785087954200969051179317916229348954886432511576840512318819498342940136503972626561361800022051999905390479275592107852559341255694406414359608006821298744575178735309184230561717835328796385406315926314802523438881209279833089050228771245802991141115303631061293910644786276625941304474613811158857367151865480990362075644202427785915600640843196188815980196431559239506572401071091563935526983267686128860061426233631265125626415871484505727510482945991517437159354861211592028059047292106880534628924147973428281257067969494480391052469428064648684371877355945245719271464612316428314713842529404004439013536616495323730009281690166646147882034961866793572890828926692765859321286370161143754872284640714957262768413561820384953195396863749255712949289559689233324786112778626008952756949057145111107235332810330150804957932507207001934203382780498463399819825158256773712046182340422544978146394387351620032106953229846835613066314658670168281495026078537379006925437812586547966591481653843863738072998420882656208029453720119394093451224235667692959584477065368310707641188210025382936828670765312410636445147695611296425815087670956148606642157235011483876135357231902174800286939177011243955202486396693744127869364689094195513036593782784841625126436904007675730106194835938658976460774513133050298351196068448300823470618538267632596169279119197530283329174275066367863736117693834299901975077362714133598533984052797983419830191062862139670592990659258674583973320684989338789808822107353637597174317065295111972978356375410640119871234768186843622202436363848695001793164933500252225740547098819898087316579537039943852109027164488743695506789516395360474202366068108859691423387313226781546966283516006031495013018977685329123635152577995770446339905608725407375116486726027242123459930357738557717166528827025061590989579194226476528585735888166234997702690897611356466115841198579584835783058015938696558683990396992562421615217661152575804187978350657887224032245186484116719903076820658208272461878644453004645270181831985495586195163109949155187655286550817329259372986963583497538086404666931005921999013828071456762106593553631393825569914710043205255136444642124364557811100790075296591673629417140729828035986208041732094811855262614208398869628454119778459755412113161778881147283038488496792948813539087912318612824173858917225360266633483336494330765475126328641674358305320450193826999864250142663774955950338876555736531416068339242113870099643325688090297488441954244507639197987048650209861059649359400017870756918056896598981708071110325171310140082257959580656999687354176598175385865091492717855806543269009938087282826063257460991765792545393542729512992170325381360301832551092166072703872224887634416194620522485120447230662366149995426283133939160199464618089920339381745039764566651991242879051491571595684902762999671319219168790643057535520185795320897082305559269939773845624185326572475114484285722201215988533732460900396338757343018673932197930579303359693453778082592731948112498614457092660942095024877214747671059847929462284029935688310735109959096209656963745498460245488340126281445973452491279960813451559877800225464526942623051539187168334475764082144437138062220347194184621310818262829542134307187671470241437982326306465288296796777421700613639905936446181525451773374590694840463904753532880749372062504816759533639411863161678373084297502792880030813582457936288337122311501292676920711904831568662288846215400161806867639676017493566664290932851309401429810630633014835353160761461577660584361466354557796512885812997810339677169846999084497215460948217376167658552263065586558158121555099548792129941395318649670274846388546093415478131848075236564795647476664972885617040645493284105124972122282228489611909546275998420968369454722293504054017283798728913438836324220705583561430943176491094290823489680814393196848553582915538127587715593583973923485736748571750172720990294353126931198388526804450371128097156842502750509844765475770603356432577975665333007985087500352431474899771514820375552089042261627693748784711109220664594842910361152477144833874724118747456802365705802197651042729882411988150622955548953365568122814766123242271857257522433188673020847387667325741882147762628077051377825599216520377019572914732576805560996644036437908425669706360637534295904816190847994484765269196778213139381889192362487091221277644551274329759693150870931894049807021464860312379072295903617697207422518137026255910785902241370374345174862101435794724696816524723383126312800061398696637406034926344931679738630226167528366124051940308464760786538533848629719754593671025402031296107367777373171512490978483625615385794251977341814754038491184128772872727585054872516067985920658756275767885960443938355723520414805290834790765101242324747477331269315049426273255866965827970346431142925934212681739449063140944532009777505614689401059454141159424475976927825659453404676607497366227353709849068304928583799522958507042970044544877787567050736633544703962622406410465601858473418079547003664464873737307230506304290878477655852537461337942397643665202827829284409813127726143261977387344648234306768716728937486580667778075694850423784995541780598301770081770181380717964599648058123511543131732346733709262856571555268401880060641653752866785180938933876652137650298270139609282908138404910028193906984858641307715081244807943170044595986432760051880147907217658194513119205539801665196339636876943745596954368352004615220154853261719515944948721052964365771800187824014597390546583945614245252555637665833102288438563943591685516590999942151305357949891791804378504406630670017557829428755383139199997011281051051851369256275029507439015514173052520561030838794734942236649897391343893329400915618289805820608396460638469007315467396806584395022443957359724904349686509228260080196765040524819441895741006899624560509529650232171938032352920841963929000466861999773083005216103947703638955221907974233199096681449117370106387823482574863277308669666637662357791769918219995996124159458373157537155361127352810148197750762502123343962129343575818115006124167799950315377294326697584031107143258975346521375157276715408854672949992097742386421352872133069453112808474628907367938395553338106435671278229103921438807602707314762304479790994562940403249690135549292009646734033570791473131194383760595171052448052374566517555951283662985991004424579721022672942635021929789740874466976578517078204786696462701543666833410531183127185789421260969669174148062738643478034310826797094065709553356569712229351425674960553537694233047631839939873970861026841452746077709074962596947801003455479523417803052355383095794556391443048307130817038672501675556955743241990284377705374177518232159566541099573743320192178821729131043033572104014089847237209115331725444045136995407028225861870789159514726539420240797351108630419927718863713413624450736161657961088135253597932102264637016507288932323381840108704404091477529081053128215152664164050363224281403128743472504653744184985156319543911148799338202553720961171072244898565223279029970483164932683741999650844452925832115865057320537138533097229656371831360413724325290468982933189399729932144153282529538186393198516428976580868855320383751932048130492167144324943359976697250225030969603871121785254022436865473287555959541564502947100723741585009876154493524119776545567223687664924156680002869730930868810652025395496382756946436319947839707849899005940277954149887807415147990977686298860002165829714380004288954295200290166596223674903165061138715191243415031943144587171586822427616000966956062606991902691353792946434272905941210037957555963115477278975737939065374859598673151875525374519217929519894896803020354614903135431602467349590315105936338378000340885783612432633192749094270339139186705003640620013577166909457452710886837762944502258639993012775527144214971212453047867308563364638394111653540982177077151054069232951154627254200493813203301973065383936592851150547808350919206122589749340876563254667371272521145184832750146987191365032604426499896316838095056459431178136222872748758297693583704749453756220132986722422784877687150907394384130319805879409964028025700927328751585983856299064769210287909243446195213595200815665348813171609646269793876025973395930690885721926251911887657155901894513233259119340260305005808113234174350010584324557381871568455519075946527920122087785666509295963791728233607797824361425720048007307525586536683276142345194743368260819401507592847013657310661484307730147147529662716639871424831465772768189045334265835384965482651744800802287543819286681320628433119589898165213900133771907952208580319616875349486677441692238096226996150949457835913588947380046982985630486124412891246234631119219353585728927708753880036630932348097798009338645710413277659036975053352584603713809598870483096273172634048366285033550145002742631915108933554310915412470585550274935059809339241628587721860614227390789556462770181630602453875609651279800591921822097843655222169892876015278015584572931609677694376389146076188794634144829266068780932432559389673801016099144347668590274269917198931691858591809922912714096943378067765512367657163452895125380123237853522850494224183553963933192372037045200327538608967459277056245053601179193512161379153052247881960557236093588486387627349364020899546530204341564599048851092642673947905845484599634402744481250983667760935183794335516202105908460495588229527006595568327975080835437789041453336246902990611302043464568963477775916780008859426244188614953022305659447107748686231866858606947494563473607101269166397223238670374187703841296880454824004685549980264033593924668666442080101777230948644771626729105278123445473929853844920654745719043488671617541147471261502118248040353362429922398902143848524580107838610414251540806785173263610579256672877494190417852689770961108685749224704782395622944025790733052443059319159101773334506272433100703143060402767621797521019772085668749017094403408068766188310709479971859392511305817638316435260327366148784763359328292264317271438081178070282017859187016024233907242883234088214392665988890350379913110123859513273797359953460976308802850008035928064134925582592561537044393365623765558448991675949241111252533062959650829621309962174062920829650079965932677746975454887788045133170377140981332036484416712928474229129944209933668722850418638396288269160043543691513019771565043306370013985325576078320712267493155572133204201318497797494938707189599161152181105411050947569109270209678702283372174191414045326622569012111025208757433565984680329295693773301801130739603875556784944488799423992938307512220821924319459250469286838002994028397420963295898556626310722118441341281404365553407151122221138478717542657153644313335195415876754783613730849179269093564870745326852712032518040778061988066089898292019130199360138926825365382434653600773626967304991599320617237238147799106944102406257264702086764710202042668173488027203440301358953330840567014655266332641040338353334911750028058913358098113622223854569749630280670570980474992899063936107125925385483783415836282668323622057081333602978155815615238904947408195943899140493811494348666942771025196087265576781653158626818600283829008183698707798714926706893357425561696042631699293927745011228458076949045373862921018560514056795991645105854266213985698414344504172724538041263693024453941587698421631962129880165861673500151488494222099541081322151733392460123053057060702847645082036190983938010549367616978706628296582332123017111842886593231824494814704103373928750378988753426987583275495433509931343032201348866886671749192643523825602477822882477380320555404820971856118582958425189465933346624703722646492678319947366549190075459641509507242354152725690113191539270015901773548569955441843879641045681887593440078753050592745888873479338199553837444104010315086517847123272572404864686130749922097953238788354045502052683599357336679782052050518355128152693762549469610104061030214117413344124097850635725365517896563795807379304731072377734480818401315001254644806361757268716856461411392633641977489595633165950518449583300282420085090978345900816767313172045877706406493445985779744284456433672015200936752948270202729794096528543441585113030925934278860579213276721921668315244680419584090505841367329999483338169580979939811063178475776639548197242249243576614302813459238545075198472451904833707501160311187006092894337463507442658776309308607076264252948979653299215213848510093287877495888488511542849145580705772360712246223462487647388035998880251491518845440079465955038287660624087166649703952424956516950344159909089829745388102992621109611726950500077258323822450247950737721211284828564866984468325372037632926568085722051481972184526365714251277373563709835770947128881426922463105468451544465278378233327554975953694323614174978870445493163985288343615909027908197226131907765359109943305429081451397951182379164932634816248863856609487594170239654888324882005285979183214547006215091821573228969908329428859785385384691269971300880540057028411409878974090516706821859565334456755604115291823875075278989440366803354646506245534981862071359008140906929629144257975365194283950523006556328832969210256118568198185340488169457613406663058880385320091180413174618351257995800407960714829156640933930917249367356589180967826418285645435216348277783796352617545739711741558198319086744188859477170282669978722895509731004857472337776476946758265530496859548125301366188193434239666841061817454304596463961150996528929970228614371213481539392721461698383803871886232282977433862490284864765193159932544913366967328486840051309704074315851719588494357906375524757536172088242578091966615573160042838592689540227343383620385217981960737047635349132794209111768397010388674011042680268995269978247008821044534934284568566296113308595518533044542775400900482247463504551977768764545907722908913507684914852178051811982372577217141541341083606819462586652678776808568149277752018708554641517906306571634246035934375453638177398682567554268254576941134127354474163267551114390931460587756516195773954483018961471086760751952515372294346119113233088642479092279620535739541629592668581656873661776532526148896688899596929295582478926740043922773980750537810978302790510202934238742170352919603831085762979128902406281202864019560172659500855497684023061069972368377111662056689498351584260107942641435453083455077169930059218968661972132190926167744772395404578426706143913329088448105069267794394651725757462665213223709772868691078406323001291741061177188409815617032484658116972588227121274308271871288618671238315630124999654152148846913993489825081747567675572878302417020811314404000256747137208360544491941013921819507076931567748319839999083489859035227347619984837281196884531229809271367994417811919177833250688295545125947489916016442086094847936360545840975004721066484585687086254006542300705575746695649223725294435011647015250314025383298934770014752260342876571376354900196057812034858109106724524165425800895502712279135169180168087109778940791450537358515484086164672732806623744612180944928764850143174697858218760412622250564887364676249612557949338112042998362290306419486585942660885172022578006732870920520470249777525028600872089026830187756919865245746822515981711481488803366605871578006487956044812053104058964509353721106965867335579737789798181995779178708061198706344613652623228945739839372443959803809190071685185749840839621138228266804655895125442678271193110121802443916106827098488686275534337576211629208546076801663711134859189915646725329423164539546020784022513859118451067657210547610959584517777828584903027055264662503294617388483143007809386325997015074705239208107712201884239091294515729097483703553053659310399473499409703900702900957560816251946809557425160029427959390304301837874440103247860025467696413434617364390829598492755970135635974518259255332619164558808220825092510706545281483633416071899007787544388701425652349938602142414508278475861006351805262363253294770638928705601784759903812506664856461280379850618055773676743585060085132500665079944989634965500168167271213804055377678321791239387757906978648449383723414939195307524367708709946548710227664706077072938177440617897606989341044742940609087038587712786232145768434999255183408660372781986985797187394266415649217062535266965970062140336305384898532515125961521821860540025113392183611830336966219204128026791884699045919330911431821794119888678806797985705591769996283846606217556435181203808672385877507223250919901752996545391354841724588546282872060774303069590215948414852841084330662783867842709228669373163557585689296379559420726751820096543369880513861746123656944238098645115666640969069844919819184571999333230797157219911943920204489627964936097053043894796336906042242700323377014592036016264492202856863563714845589087658532851973685215932017935337174500506404026851286662936968139307115520653224620835351280663570663798353387650801273769843697979473810307979252672851382425843807731551841057073112115072019488665570735908917336782214188555556492380880785308165734911184065000144839690389927602114200498735101413744766589886932059896197475355798159387645221238036964630697241398147156616855588112281198532395400832612239829953688373649345487929153035488438931103468317155709698886042710397633343267023871193360603833902028195563236693016857315407015432186862735511350423657339747278462444928318031305227432188803827808148758009755057593301310458342002137672986020051878808299988815293010121011172366471732134420197030424871843645742203899110158989946324785653835911761255545248676886058216045734369169848430375695140735149433268709791683010412661263951552577676618753147553998650077466460074632688962229741098266372145115981201665796919953541220094125926221807217071247598844725558285124703617643762289620415166890685107285548097723184710722375019147114038581114830007288364985450340836397390007623370017907032711285298176858771289365254000038018092626414619653092937998047344100684510941247380428935185619932009510781265602753606935716994628692405996591876781304128259290186082318381740868468634226827171580329910036926061368853900409315059286790155120204624429686196283420168649126271897513265526490590131657415928717789832317148229466642175517228095141653845817684439684291784062861947641754961466917481781707512517303407616700067948832695676095686853664262162793949064381797474869021771717610089988119976853286704508555042035394009697649537628426271463157893464846461398187232717467673109396565724024611672103392683890924507624778672545271535559654481614279496777168814743555140383720412373071087257174715399859883249008604136142749224443910926760573971623927235024260279784759128175110418954777707688513220774043384099734910332745188770002113254013703805790898520960580693432743392562402848464174448508337713522441085990272900637751430289941690347545137531048100701971464737390475600359429874700600829228380226955259394258475707740416521740968631149364014954992844492537588165071066158058068274395416464509562947834585303581466707552006733873196979543141330857735733462107487972334158894571626422464441952232828357855940250670323687720588496436268795163535553524221408187676963915702502195983044467309975999682122309829829137187520030077747145644117999782370825887631065216520672683292519771776615969944991580152119503754458810109060401363008267346914004516525143284222010352672754520751515004117360973479269213405220564507925933013776580404355527243307961926424241970647166097503444686095225334148790224786654660785141267529231329373104022447729564862084747985434858933919388356364670900075753525768972323935381266626061333791834158737305012581613034086648211442506562729296528097418120295405781002467158631739099633062869179623343613326271990813230309783696614602539361371338767754062822535695434236782146319035836050657643911862036374478049675910638693931560442930396335550791005873301452462916318555616675824841105951669325503674378346411857024824945643226079709854867481859834014657505788806785219868387719835396735021687081408196411074916381474351356998242404650624389019648769033633223238076886705008811134124034797286105158836445614993846172748621636869672692171867296335535854763077612732713317657187421956054779686135104445734364765570911598997175593575153500037755222156760592807174170483218820663066100523883668430392730224307836694186806837072153714930364693318675012543991712122765004360428322240012039799845462783566725436523136611037500102486660407276808234975712857533133243025981884106169512826036757132643747541198777012475131375408769251140322434860512023375559923869099349610128817063763838201791272033903984304054042603252577638488603205988068782902011343747934640222824739910825133663548175326495100813770265414879984096486007691745617120682782186015393957388790870367637406340166477455302382718466876537464398276928639886475491061732254275881276455566537994005196469201452299470483530134180617109315825804410526782767920113197418721314335483741719004878130273857230489129638426013139091630488433171599861339365044071919216837989639302091432165319212671527417326464846819724345440461557843687562964102158319895634636563966459611088775088624085757128491864158106002293405640483072149638082902732304097026783383268573120706017559267619190128771071007732681487658771577871709243524883318559972220565158698681479632132749011217731237084145964299839757280223491218321549180981387761232568230654247768697390809943589203272729782598924805405093090763322553404628608116090886895470874979953499670338050773740804591831032271480332137376900984821695444208540288080892013840392441270158354031655278937015350686489077479058557507679667447506759503328435377789889614801497688235858785110060485728432604618685978053890864373826173296607780962617150786814369791359329881945426715046430426893233233575814248815994722131408196227678719459699119293966946866460404360340204073132203891281659096648851170123335868605767800676509406447587020088480689592122719573761601552741161178616121725333935164579977223563024412713288117325215002541499979012265735549877513189206895089768745492625195347654317677705582616888320911585661138949037857800955073070771346863189936473175291248067829222050165269905868920612276474519713227099866879330207114199717718590100743636337720475367411901855386438423396445417139085608190691911969214141464036114538955515769759263327922104917029182986975033691065148737677032215143245999014918463199870835108769942394513940207251190585970434912223155307252105942616414101167689484315649907289254420166853325992076529337848876747330834489142904883796658899530650421605351415671487088410869520039608680024127476225674666331055176055159184152900362804391032810781953204828252324817120162173557801027365858823758618867908014225804688306495707784755841570476578743003729830346031142541366923032968941524890587805566747409098005566669513765974808034810537019978432247652129348124782246019444111685680461927912198358954518974459801816738936050325894342980471769901470436435275057295935095686440169584066856047577719669306280218059411402324004320588751632500168254066002637441424401356810175290728638315728906742216316824010548464099852868419458135232717008858879306231229099663949656832335022144426252282132625801497457914314491395061389650626241733960470329045921332001464849848863652915756795083502781529586460534538156364334929083937374391415489174615824710426752131908694225577206632831726329912745297590680339031679493883580927442563128140859327533938812489631335316718413162728993738527285313705303343404212933560604104991633627432729403452902357419559434440886215552568501790855946750728822557697465009967781047028228159398881075450505400785484697081058334688701511216985003252336884459554129427606371316321457237212243096941231907529614131054737683123126475993655058766345768912040017625570578014715415110416039601250462743603858898441435672982930664074466007752266591380609346023849900441448074615446384019705002381245073532252450697291575437986996058481780548835121522398526081279753668184802782465352731282767791523382736390115905461868583028645692863615884920715792325012746079622045187143570938479203467883410007064550802527953108850001606622768469840354595551585889966999902162252693598771244891810372819963864017972967074401246227031776390928973970554931273505636467865814512469861518828577301513197715323057141464160928013808507987439086753274568103050533055045463204576396786788587018105369867701552188798726409699239062747703584825815037504736963371636077425092063462391898418936630216668021997463787356367090296556202541901559659415847424094914582220114931453529564079028659956120456708867708191532457220476120580233560669042885920143195398487988522665842929838789711541168282369744371593269551826687821809721693713484141702547994058105450511339496968788249327226258921752748588160210864376305117892152929634495300459330305926713449837465008293479185351861433076252518681560289209573031299021560134976328102528980738651472726496031958500888607242230172993859691126007649532153676431974677535512020274131416233022599177756386007694771951265855739935407958190716179924334507571176681836294880585994166821874320029296706143002622917145188641122127556798870352056124499777915180142354918251797316186565308882501383601182052169107743711595133041801817234179494660227424646558065903866504530136799586299400631438856353633006460084202958293373881460141372712749989482105889076969481128188438566691661671266565050649251138155279004734211725684094375343593027114613762744716831405481849698387946400472567896256215906811246254578004843773582605572545224695152762261134296111812143873833962405398694371241322749961000256757468637476553476830659760605323881115355256894812864070205842674045353682238080435478071370530619958113578350845574520869377299206024783941317532347738674656493789489929476394812749425146406169343947928064142089570981163440098645405473687965879548206370314473571950696061016784228209199695043752055504713668968280484771205073724407283314960272959458037214339882054595891054713978013735431771656461381470245537701099441399688955695003699078434293573496763706335669478001206939398430989627083347920664559713756996392649811232109498558168378346655947098219050311736687883450180930537715685647113889949780041128331654929881793414787808458571447479322232973402084583776004509503025336582255961441089175010316798062566803358924033476337842995078768644156950647909301710177676775982937700516840418888585429234366518732415916826427105610225644850660804720807883518820634163577770912238267614358765741599052729212828140476541613649971095997431465622696545057770860430121047817098862177227990090906446868866865954940903339571679871860469041764457120835646302992379757534230960217893889606113479891294283268217793588597025198655927387381329325273538947983259426800421757996067207241452364911771153151875946176155860394182055795905441822029177864977372956481124243349285789281893480784997979961382854565117481922355655678457028744172561157423838830801481235219771872787694862262650708308434660374035904274021802766933308836096426275955580817486938233537534670083405866605188496936079352059795851120694691009994099092493453072027476160933436593738662045400536595930054429070949204396709017146313183439008789406324558804766272492673945529143162751180670056217133240783280336310262773095158241343894908962165455026916717817675968511469449963415099302088303108251542770103524288804592066476899387307074372632793435674305056624006397054971679124433968793582863965677403459032847556725515908930108496173602007250942152148657945566291286484289641175270640045679738059681397129869560032899222633995307634822327574963992591613245557564626650614306307653605631779265726793115396365477215210759608676748255885051578562775784406511539960910960908611455492420955304790357121490087167099546238773584213500436147236500874519069736177734660991633085993379603900121868047872523487215973640299736358227798745143802154183312272597082578704216175222896686135039797461019437539720366979929567196882303834600446751880843824395900682762087818601760062218245137412117222502399166286916443277216121090045204360382163955351017673897883703634964349705142925321776952241550359819762236998780709680104607089274422323994740219108360465235460711382872182582685806865768840770813014547935028346333114855462228389009123085689335784479836324983111940700071402097650259149036132288092133129378571292144076439850706559045606067399021564217940864210537063753644159375393560948818991263864568436924575504552992855173477327024306813859131328694167318770147252081247788833323986329040942087231991118521986245130469728854904836268872112854669533499182397684611707201418424786761296754718051647857896767494258050248778583858238879401902234060490286462289264279880424914989717909747639431898409548978560457182654365858648597255753406026216798705609484517100142411162238713498036066225198276215364499734919555991147206271368124382031318335698427063331551579335175331568054983912502591443848671692409727826045461846383576671480025115055218972888537096067188096616086454892655298977175794751506792404720549450643802214257982146191906550516788714043004136649684117616561079019384416547564118892029118207956365011202639605293109723457687475624685305088653973318088013215659049784378760193491173172429285806964305803968080774069624849384948714594835220254116724775805331092866732655685975108699133021056115683925380953116894250971784885721151079391858858486503934135867499901518003693757119655383724818020004270719844358495476339690758577068292484975870964548295625796781448172485130212587619303865643985983395474405451019747425123267036555658484942097833914615768421426967716190862900712528948862810120385368644410158491988991036003287323356451976498964828398801565206442620834059135697322344333851204270314883377294268927718022406657317300552805716059054061871431625227535062295485691868298137668339706625244823035972892448155108841705332923855153099005449794305902820214468479673092383814647235952251363617926804159719308306834469947656894871562514907914626608789137555678930466952063138458238965633624620067425755645428338527426063648959479331831612366834140947031310683863277939154417929597159142821672570669074464248101116573171437535895115856545414383029035278285603877676831218861348088888522216028871334078528294678670069035597694606197079319811367853712867994217445313387557258696891171196539013087071148923389927026937689051080451892084357815887901684375314596332679203188160709353582721530569764244636987502121778334819502917811456327787831817948403718369945362721388965510902699252541456843611973455768397323487057417133117299445215499438407683043529887126485665882082991206507217069782347870844922139000195378490450712597560674654484307448348914261935530777777008898852311548918547429487034329932434917696528878458395382051542879786855943638289443675745399208967074929970439443880516663395943357091185254255702535874803185819947053307493831717656336489629201829068342545858209864602327571801874237468545301339761852268307968789198700674981655840017073456085526452370117242552253213238988289860919510088484744844766258919558105718436469759704305223371346387554109135158120557649762506410444212091839040486335108351540651046931738889304586849563918992390577213003585431568091289342135682779574789729248963054183278996135209390685068656911508913124812391512892467503585396944192876481774580733473199511623586691568928478465800769046934610491701653354805812901541698551763017234280857059087590020121477456711185368271215113433751157692246560897863565293667783311449171877925492167643149350327685137610665875943148179595928404886694475125891372681658004370540050991071239300289563984074580820464445955012482996938468386571815751362841210134005476432878334252474488589733266545308735270662735661164104971587650328730641073801350975108504952736805713989700264726100519780184324312511680145856837319243668436457232903119749335353354763462500822148805849783364122587563987741404306882655190831509865797283922235395026491908513787021513402254896135950394757429682812539919605831934062139516912551143498889072508850268452219084398627758315159664541471705351602153750953207521317466668669193322310322936190675452049248352425303281290379494932670260378954318842454366288077477479641776636557170496367393588297283119272649827186609668996761738594114693519714136462838303981624093291020550684682430792823172413864638927849898467986664478971947352423770710945253110235063826582273213199528054617182961012210297835731503507615132079341746613503226131886208925697407485798919245792686410854121015564353252466008958901343834068735377162450250050620971009682507277204844349822119018101384945419543532120330139103843948905132227949257578625284647242535824458952074172645453709711785225741115005035851202612228561926485189617275159638165104956685227123130106060809097224760835752904207274173367256793198469897108729754414031692705544728137476451606808860560284109566100804326398552354890230451658445925395705587919616624864419708608277445397794168521632608006712960744211371083527114841114355610814217736505387637305680056145690042916799356016657314251460950547017870328379394033719805323457263260200540924435574338140517097132183768506826465323116932546888903853565123147820346486779110176054551763460566988552952963752374674986581008906453863962174010887786788867700023604344723985801200257980881519846885869881916846360627811534235558808506236011054383732640785027492726989492424574044058445675960020253000323812629137433226916586571720391828005235754257849981597072126776084204664951555069514029795148415110732088000983151656878398566649063068780431466173345817015114997669654564240834500409926290719829118588186889494113235221616868507131455065903589121284066386108986568510343449530881778743583126707384529984549395307430734858414916645566184841808793764896752846830994789158205623229675653581325224715778230122700430412293943384587472812790395512718855906575644430518041161479717026324400135081796857266210374938220270819788368805056674287985498035946932670314419660868621511140790630792791594133733771209524017467697578184241208053949032356415229035610785658812844960097165651091601961376033152940193671670681506779054362393845990789185566060326503424469405621785135752726340804933319942697668513799514378580535803712808915085645573988472609146507506863191065583978017333404449324234131253820157865238663799677169141317712660165140270663380366916440355829470411047764595441189267983222598539581557277793276711687678170832019147957716341224648725772644760540335022116474764475883162536774920693288151949268810735950105918174636939588029567969307333850471151987690650058386744995130597517896387099264356536165682491232607249107982168442949630700785104780921619062428146880578124567657530072506726660275986910291793799877391563965607368350142766928487556193355271015304201470761650603289028747165526075091653329088450028262631386973019234722840221286104989971505491210602114188856257017420335489721062474939231217092167411665587446280429932985213764683152091377759740473211047586810822762999809603261210084049485420489703017391391415014114015750550993201839580892281424917997596499262609564190881281147899389441567026605313231302559753054788195684496133416277160139996353087751237435161077798396550261911578586342713036330126984477746948000530407242382032734000433023921621799825404852313785349677549280281598509155273393017565661158651297779124174421910491898573798580322688187589164701682877137824035577393307794832039768517096892477768887410062044651223538781638090161406378511737706691761242165849554420180526202894597342839004473044301487154214293915794148712777087771691417254042688820789980677368753581458278767696068215395154946979287037334866093672711485914156855226844529985938080290344184406683935185330718858373035674090186973497432189156040034819910019450895005461733954068110702333964188218191006909504337315714027294199883502694831556591292757409706340028201730661290883336722257300090802571454468555231963960721260272698089949227388256764533790851936283533468846947275347328756192765642113652940912273871652487752765943621511341978151085914308858506241580317227954329272146096415992884132038667598949705928265370220434765998241602443469389325583558885231821598187482012489724044933011391044285703579068497743605174590639987406081867275857173410164133970804132708170953533382372006341468042924020474235345791717173932236008340186768462881302700763238113662195791556204185593289257680749256089589919945034069934575753936074397009229527973289075697147829420588182359513465947554014312095241425862891088338359940648920400308898329822288201807355232245179416907649414447760985391689393795702769953687143915260738345265956744717481504048998625307072549158359446972666505365346151983098410928314762712074881868005737803726805090731804658471164911704043507293458281696961727472128017216400075797586820916234750703341993493729487503762277825556135486280936735934375967499255141949195849350876274875034340302434071786038108826410432618778710137243760743428344952208321726373959593690054472300234919343656456123435463503765310475076454692579695672371460014072187943337062080285358581901490811929096397010456380586843216839119814847868326962058430725936149018119165058414191934510864762336775809531851770951368361362668569257172403287273472456391555914632413554432675920795115231297395499672694336129739358656753056119868286145176301960013595286384737050354807640491589730798203235301148363973170094705969948067707261463892671664731574220770272676648743860347321242088210828692902412803632891320526936685961334063663090765827552573846307700400675460012639793512857097498307513182195894788359660923703279942687883061177662490652561634507453715683069065397463291033734978371711954423209492720743211528843050386441608510717074136570122492826355742378153985240868227901032593097905563292374600721297012599408623990449439651179195572252043975269249880422745373750476497073499485647834116666090865046611324972076494781929217904631750084868598474272951469817043929689655294403516819105523651160785614023128247067401271002686542847377572852041251986270872851146059878515737308210143843239655545894420631446959147862376059961852133868242299575835206099391936403003675273968209087751424302879005194661341458171771309516612705556882355214606359851474010483241417875616507415867834165820394037213932439111922487607962637872056363471655079495470335802915161479363760291670299557822165870964531877242947457382517200394863995890907039304955188008856002388440118014744308308676191210255959977250827595597594229757541007788096748304278212245890804236467452635533250753852865393736923277144907942642843969087374434695246596894770757959896906805808180467349533422691189142648396033841690331020948011614331238804543741015306013850378067657777934204963361216234710888488219352046743079456885519458456893122647173942918793312298753999062562427476434372388391893578358393753876023006857731004502180921056439497311613004355102875190060971352846502322284627739290549546639258127335051231773774199173023386594066776555811659851631555154930086305572165575885609159488928391781182221763924745631279029035022497828632580452848054376381222749096412357369101917857013626899757357990091473763726670989457339828421451834196049515971220805424025138897276469071288728054334790866429832150792382873346459804729832664864578397712880583739645484655310525680862572705625681745569960137422729301692252311220596198884646283814398852399786537213457086761840014940721077757401687559008808923453377746615197442017399521497680796436345774570632304118621556702073378208007401713121320964196937770842180472463909116786026819308274449236801438776115382131387983788602506829703865064937348138196355654999246216987982795928703125835405774616318265760715300757323325661882776638860622751811024228928172976450667083352818975651464382470558281663312121876263222459228571464535076208593845454571507773814543588964922559620391479166405704488600602136037291730340745899271277621165594612539790113397832830898056682934765825548253338479219000369678110100791413448371059778661564131614091001864147128250251081164004599326577450985957688555403357219532420785921783676759988508302246587288997193567226108016036232107838659187454140458787295802842230185076084462772417011430982530040761268258360205271810708039820493062531363460162350871918526553035866873434934347341201814844492981830756684360978836998336211135766183769023726924803878477624972741648227496246253621808280414609570488867716157952667258448387526653973060258144249784226064355195314686257826425964915188209194158104299866543635526581476303758679518173283106331674674668067105100884934583752485497493813118131763191813198543690507037112141303880971212212090203673898146611937216753635450567229971718586746731388775151709245714786237178874013177163763632112994345539442746849558539617015347701849060601252891715463268479917593694837760198101926134928017578134391830095175685247249133357720262489987111875996468490110699282541887755076892870530998300822685879228664671433158862645550657871430486890736801497871287045558535012281622270849211974663346518918111764106702833055924500210056598006289238967954301372268021660532712007730539203938055177228372666986976038193064352843988722730685062049788547053321881128710467148502567999623305190340132588584485445908469604196864392368227901664459655390516567235152750203922526934628044592983725414995353721648029098207142976749652646437252537326137915284499488765713826448622056992825869495684089981591461942636996360192701207506459126498433330891010466236605556612355579628839907532439813065575391879560943777590227507901775839978894498535441837113368026915985628746725735200617041852820360247577228038855794064128936611594287430290373544156797750971735506284927844904363215398725038378972111926721414719894938930828426882939261884423440294003382523202705274914520357732689274156265356187374460000905400095836150007583719232673036868252153687211128042790910476888158630474347433609302386043096273479898442826242309843797233236107715923244788024549848388242299538643909637932975226715027736979290760777173691655702231454723078272222932875532756573984838868148901403474985804924111022999255130029797032554083412634659013002504836073640308344107531628262255763608169418424613982957222038214317960173808725079593730735015590713795250897468211169366041168838773620324167828771819840160282098020727470920595452411801932648760599186482556857993153231160923185025024579344111707801236673723473220332446248677960267292859783874525262058885293498893046021164479381428974701428875480070463777878013782162904500527246780638574873711625143110874391324201975855312173339175272477546071664792476107395390292399207876125184363051308855006442156247381844526866842382076730606104500105194591411088100542910999276166692390054401840452995155072461615298060336982836551253998356502386515717335596435508032213078757042876846461357415543871538132086508015365354419912549738338345169153033205836809624168759497941204207770728863379145910883869411497411271682534750394185271008958639199054227525745483988552751834421489795343045842448530092097950604242840599581671951532125652824826516417779818551220956533143185099394206909379322525739983561246319189936176018144638650302032944033007998207205095143331750482965890081912408230707898900189998766669618712831573613352210343298943133404043943794914332894028649860269544386369785387176262772417546233208813316843552623602709906130998848943720803232820155235616138668503337302573924431368065927284139955214620395858833690359472296057802064669469642128183492762336659929744128560541473615951997735421153409416638923430808206212005690852878746334373665848948762655717077853813203963669291304163888017017686146556547721734300455573317054807837558257636952695593186628283008053603902617028576988930752859481964154707243455659932793746666009398028052331299513040944373549010515953982349786167133524488130818461150323024030502432803677112902720129059486877532034745653816761397249009868822595502453452628988430772782725751751512066408145692339525120568296220469422912072106425006547342532808457731086597341857090518935254924071977203350970614421673666496449606176580666365703513270614491698976227550384311456161553925931861316985705261673398021368801711793944617431355349885551845523657876190076288324417718570728820199489752702037871068220361705147854915425923259288368824816545441920580954968747707990130450674379132704680869325809678968079775273441490264329575827079705034424689064340131554939993184916851612761839838086960906465188798675422400882180693857855193419263222345856067590042139450765258662389827111614424969439214276562654267732324435332863031497042647644484488392325756765323809435132462858221734358843019754095066758483199914074531404502656303741803907095696723526212582247391465338796913683509784398432801359490866927591439282326362879582785186052091116973499388270025841096500162501229523067894167250986575627530133815767290752423138691480681451054565168798964200734668392702043653547688878294745621560018844971249518550778586804421108665815189914521213664263324355658636518415048609280552946555977589789628205204557998289963907428870844014284470900825208425570136170954202872710066376627693167151215042879746556008212921665469165150272359493406696229279967464878371960147101930384319000118792332579096486152471806625782739955481733333133857729403920145034894630182709271329373852022811790641837571709031200669399946119377893640280471714197824133035210733115888377854833100932087098644009805114950445058184939089665433445499988734729941521884189122793371138457207384722576000575193695387338116754251742573660582038537984742540873570210717867266514829421745388149461304230725341969729484458098363250934415293358342688364399744391184609558360371497296626067365421507765819094860934254427438716475650924001756706226986956625525580919199106826003905445447247332436047707158404223050983697735655109397233046997337377183265644042491766659744133641314749601184465850911437987262745123891329378155022236290352349768449071509233534678070105297834003673042958557799488014975277939985834188498312411705886796986259559804384524328167545937947680124696636494209323436483495120993609862239510006028854572074252576748572401153093867605015838706627650822897400105952543697427106504598721854581309359818289286234672226169851669830828236203951438360831671537369164151913565584954618946204918039376618606870007718439773403796943507218356070230829999805220657645558384255216459460615052321011353704339639251713840826088045504265666871122672992728495276777233524210877160850920442202734127763874261605168190820636696336637455083120653540095775779586270607865005858669878733980010366472230631475734878352104259793581098614700772306867738369119770898443171516419008074166029890746699518902057073796402800156975169795057119949194998046571654126818468723382396251088978343191016437538088177225990109038238885072925566570099409100708752847259925880142462172491535307185690979587808045204529794245945812196871598028959036733507687671469486740027259384941851464604703826838427532664442043859892420832026297808714305349542971464004364638651460916009271546411843499531166006609734322278550762037013929764473518956598945849910336084752675833600845969427064724298046631552678756824712806686406862057742429888559890048222496821909027219042599268082337017503385204861627705273016054323370725684795391094038912590398072822473858501155724107399449703812969005029139166875601188191095954471670666013587471528036195847987712848492725928722206088263957209949910797740652563003781137625475051761667507684491804739012198738477350875820511108629761791404765466753450983276999237487946810093230072420581974671046376557503015199542162232109888425413548681650011950187408823598583179496276998044395264268915544999300888692699530352536322285086223821361767297808058793643315225199282743533690668130857953257340047704625238768495277793533115029005054437202790500014003285942434604442639379406496252964213517416236102111461896431631355960023255753464818065369027893163572306757973704541283037013036777048148937505845337955753202924269246967602817215047473806337108144262682186601667956388091505697957438531505437662554033011873924505534151467098026552731655814762321477081695021070551824436721221515481237387106888670938611021292414005817889191862718329415470319634125277763482076750315315495611170292118624554565543585719956311249323868228483698422598558068568774059176643233170067270751557302563349725165051550470362987346242985107860865075896406181378349487092736094106545909243432885189119885197729069890745301997820497704561776893784266695254040537154544014556571723278063815078106287685167970150621446374350294127961613134911559866590202809168049649831424712656863472406180007163386125499939800792601277368788697117608573923148386212149786014488873813223532911008914542982233895318387920786077421610728938474217735649383506130234451250594131883657353927093864621981406369693660139187351135288196939946708273480813877834190675053435573011910043864192002797517809229766224905576500820571723986588275892331721769357360935167824839553772898817747711355479537647693651797704659533035420755519019756249440678203360792958105180254911563274112207341860848511260807922239831777641352087736216873313865979339504588303888596820774380833528622783044522962660569996661772701014549460948050293940671856157012430657151974184326990139459127926115544831028874233694220337476403247507186787242688273181814567308219150237625560000994754894114874545629825089992073633959253088371589165667960472192057588967869882685591513857651207349857491435162628630345407216961807476453084176060808761530111797302208819945734647303289212073331032482237565903635781123682369006143570144111069835544036715769505605345158956618212599170664608754984333699248115476546354320421676805427401363665710660949869177400477042640530736450324850008341251327869866364973851514402689387814093455188161409982388930839414423855659214893714286493548932790693524329512984347977648723212550127634571727087372770181157966755016165152162735122237004784788659072730316719544273825443486649900468451770638868636012631016393592544167759441729900411726434098174116429660002419090030965400131663469628812360802253038471329082360827138776633703820004392374000645942267846924821649878335839474692996569174990906726688747948830331428836821114285049488282611898468815172925968647820692787977588240723659938932618886467674890294949382733919054409622987876371237064385603038865230068538620104642733150879711762928416555765269587802966315115921110306955447245774345665143672060875661510404454199169828527577061103817660540933069259255614562358857282913274590806813518897875759819779397311101882272224806403624315320757679172552250729414345969121243380250927207100536237167154335443635458516254489968805564760891522283042240488627759972334996164122210010202466344238070940855302225992294451101203335036181061155641274053915341151351718516945855448555986246510717232010532220164845473577373078930122047703835242963858754262791474878268993633935811814366821422189051129955145994303459103036679439442240090316500410614260193209365174277222576834784765584448149321691944807325362184022259516426782763045260796268934208209440970709350407270027793239446216109059996448026325142962315948506467980706625442534906478806650474957223827582606042356028366610041355658516470619155901689009148498399836252954343226612256590270520152690490299415329538677380723693556990955330569120671220400494974350012421076955163248504587044201204478376851405258461207501823740991259854908514138760562808042158370050093689136869418477787749315751006760311282376927113491249985600004026076728036460449649542575716258643325145072277128093147015964539264853906191043274910644780225357460581656268710857410289455913860231120190263259179717149427385083610171880473300411400894106406418410019605130653679550736224635997393871979751982054478692376652363654673571914454883733065819874783625240675320136932382539539408216008862050098353696674597614077781244825229348606792034168347951150586979708803668271346223534653289101032991914634368987825877958253280559459455202000261237801195050738707698598128809286534049893985223984640257887597597136216568763180088350247466200905357438926301379937042901298901874755425156362642731330498815329344439436977149581912141131640587957159267024066538925966160885814064190656102237959943692760669807547372002977614876565084465400218298716134931510097747198489001433049175522754087761712158225802587913272306865918083646928966224493179231195741724869137619260052253006438407440717579566097859218188600541738113787027238573284850704559521725882213473700152098423988349654349465462272887912803552896214642958665840877054409475351839809071734969267185122683221620960316366064021596671826502701193211928575987397679259607372923197938268811786455706585110358381675217375749078017239940940323915021163670264057739820998673016201284014205382905148258981263239387475270248008039131239934226014122570835283220260656887280266975525914020557209123883445188487480795751276316242123531765159453337135294535864127989194882154009113260013113725844025275296669708482191684333137463120735866394858858101301493728294825276435351499406987749945531403320790017748608813031523909688114649537233748385708798341959528560258124118717950895080933822725782643743268359442699736884395080583557226115900940317335540698129427814466912090298140750825085430244875103139767292253263763994324850200363586644109084573611667100462336553595098243674828144122806019412992410495905436441777987697604398819724357547208447857778560012591227048215617742979237410904544369020802029683416378998958782140177488926739047577245303592533271400012829767866069242021870971589735762209730763126741698957423716332446730627582237839144990946451194843791680396800592282072544319510971893871336776060456889408935972486407792946230213137525843544972914784425464522840012465182008689846890893816424757673268669524244101271257052489706264944369142772733668165739439672113730866002096108263118573319640449867149462878060040998776077517455933125939359975717218674189627744529646395740853883168213882598416772257071655734554164396163097369946893429392250038516334651464086760718206267829498651253548703959191651184593271213145299104417874015602437156463814527574362762177631890443942728333686094214667975707718238273687506640383259510539475187590174146913936023664555295163980593230608857069972880462964261964050837121022654635136915611318299384948421180007024105513080863461253411163944188202135518050435472526140913675101312983967881861172521660910364526151113346283587618420598594396355340429125618977297154750724418708755235407552283640306181657555829858089531356943905944556807158763961405456244967402761232351670736379870054759490045955337967338219858935329707016157729012635789073263698284047136313852977947218628716385863002667485956234621384477491814489268025384971265186897597814848188022744465098010057933991667162185091177774015326529546750993748331965357559308960356258632864499256449716131567336812836651970826249161679772301372043145124908039399725351493289374353174597429619535806699513157958702722657210335425181918983960095855888385181620753913134471011788847446068341101809801722862799463253923386133487339761717153024935280489868430686318159333719229946697286747873257855638391021999780707520124549879649514274451711688236857577439459676000387187138029104471351381222302293407295688941375259866268058009681062090727125995571662950332228280054274165242665423655441408691855546025109581693892713509677353890357346936956884502923445543884707468164772319291235619009958209939865292629222100328248071722927631062853453695709279995025205751201657755348432501054533262731554019588651821580726740899921106558585175799652865380766811680664092279144974713039932524480965642047971181650706652238822794719317470447611355987126952779153076759336870443536795538951893084194685947827614869199554205415178946196572269705232325629507946639529294076265921621881329175732489853039777808596118753910173631962975496525554761458677450975243244774358209920701539657286496155176736714887163711881469784262438840105692809693732454250351732378610806852568681281357822954271705049211688102232242049661683499240707884422311454408927133381409381916536295209938633331816740673022163175982367413745932212415764294363030774478806821877281617250529453631593265322851188296659703704499166111679387607566350544870014796385584071025764754942444532065352066276063712494611358288071840436149267686301631611783807128297159123475028241367767701985873897391709909027563637135048276579463877466875200599612607660585956554129697677574831266730726400210174794428299484207716812484452984338753635130808784771536411678107265839226635424116822397879874010216506403271233429674866800215291418527155431294366264403398374702052223908315199698758703807697715654766753810320936810048756280198846310046613371731168219890796485567381688756264263988366647842477364060533903290667756463961235163251122804705614372806215556399061064629247205455861716848789032784510713440637170564454659781966422967157981167738849202191628537825340981047204902451125302113000952619150445061714385700103331015862815174564332725387208390620703517346885401826354153059830009216918644975563869307322991089846963061791180261109612076194090847683366266878628566839379818091435843720258840309951441498368391531872218470260165673707809348927078719926266673165143364167421104403118071502973986891121177778889654097915354413460435536637478500624826932342046603279374747426910352630075102573490521730701133557792070592483584652156994115636358226260559541302495250685118113323483567946190728479425028002592590982216166277696009426197216276017619130297294370816613607780703795473055381298024963491983265058811904788232307289696744851014375499656192688342673571261115424300752765002493132861076859083404704920826803989137785377335783055325769278630163548522403856730541077324408345971276490484052911926030459035785086004945437708883360157322227935055694895425780857772941839433901081515469267397206908729502503748674238206718574649285026441075526667424022797673832343921883890210925666514175741457084052030165287947698644574519878020673798985574105633575417102537595074762262991557661745043240349783425734201524621143578110342542460042915848930464691699099476386266524417842457251321110528088621768724594465481292417054157578263427783967657262454672847218796743444079821748056075695149618704200980288397520339012996667667430252261459273488243635342355899805555446862050625501658315343055689262983150690275777655637472979994063637119684850927943087812883273689406961016833703107121894800427945786299228053673214748268766339194596073716071902756428834989339634200015313948923025849075506724444291943790683590152883391341711796911318618567465821187399355741664303361792897124243583463160872057246343751575609874147205596721970071382327202814452177994418557310727513554921124450625401639987918444378461128665464047506454061555378659994456973962025304084499189661379139460078091291012863805552748943724897695770611305417643276196202919925342111771391710158904332850152695763036355968443456623532042490993557418602459807699148510411110839126862292977942107897636303716087615939559609633420881099937218854274757453180124247059187743441955899778329690768141806026726183205209308674883661161884469389924542716880592803207925194258152576611448080501415496821844180004116184456543487359207318038508232754357322400998132260803209959586131383531574050663480547172387567569139111760970402075897703188528974492577654265814838071695507948053470903346255533040870650880225795784463566950685499946455525653523945094221120517814678551075829469706146187429518185185358128070394394840903261204727082465340860250536906721529394123598176622929056418117169503789352434226264213585587511286900856621575255252946062073254545808502666363406227105477488575573106977416127155296473163136575940198772350904338113370698086253531235382862945189776288085758365885948909446643151454941703768629077013752614424464264203167724196513904134725281327738844814763594799477951740229903337141721913889333324124937103735239559986284965382100764798938470483211030505720513213445183483010312349899018766630794172816517738247303697330017249356408424592688868550662433500686193983545588843233942676436423920802734979474715766651966949918203882569344374233007068154767752481618756832444494822022178365758981540656460428147275915430325565023523775353242573915619218681575575368714790369666813843395653388617112962300526724929368301218119123056473664104025617736133587451963365687038323776468721018545819557471765709584647444124664889529852895348951308186929756722362258389077596076591519987083838343829794208543804454601757562946393083990734714544828595108159110354751263382518736322572223338868615272717731597630687150189260960132669161047600389070797909343047315628242025344523434548694925593381776069292319858562820795871512366684070612726456027949007669561294275012464576243129136954605342972575729551602226710827944655711011874681943395872309886598277727235865530027054064397370953242122358854510749474104043312176877261244383280443070033376233895183438324403654976011122221328674054363971827049571840066231647476532310879969437372675311775270461614135987010284812153984595264465970625073791030041941378422369239517581383960231878738929300050225450075749041713020311930150849119468727017616408359186693052070101812058971715680289430356419561498506165712363841552358721274596098664788708234426621965865201623953005935045148322410100150619961548803250060962589979189774333294589730414396912634253277203810874492752640447243531282238913608020736900697868263834202198350801928931667933855510423350833627597522649536908679204084443098349908698498759527660722072352253989841465319811561927342044105797452747490360751355983685310325932164313316634724892116847617663803007193771709554042571981054773397892743050453223777263646410631821260503809046956217114977108677008632874707128301949493739406638099763487271599994551894375892143022182245197262729699528795999032833403104026932538192232580369417269226332046828973396909394949499743353901752818375367266340096108540613839982761665345685979341440569848733412710462668670749648250647282700303028869734018355477326567628285518224601791515903207164695575725561281536266433346841252024785556192688145972074808713187935387364993947094328688353033919665736756098456575006472823110197111723676877545374676675222475593250797306994513550800579076302294485428592103921397169982628516631743937445751110417733987303872867674409025083393666232976084361572610807449754711981279474110081198234062615876714750641002182671752246442100144532289956459009464150762835022856018233249730540939729314924336361671764091656950530506552399464642365263884517565049785531660130072409010372201359510627423421812146452313063658683384632335699978225398135241151464738498485601035911287696411357349741878941797926474785519047199724594052201462195760387178587746781007594875499537729470877374911127178129232074675669178498118650291109182032999655551179817676275767592787992208686057935486361084048899618201367139431875363906154976351246940724994845177015594894569471549445041574717116236030000088823891974377372675474848912540733757245308669538567768831670833512937174159278650216348228301139332111070081746018514582488827193776684561926467671299597648643087009524357430489554186954346715112626142787840644502133304060616511461739257137372030272942539470783732206543473447523947759620541388655703681134702371956657050862166278425736675103889843386860271042595405792321825900167219107943361097928333272691496307103583093929236753137197912345518290132768829060118081504063119010527008036976262339176132836221441555986126046702968261915247830647552175816897797014165617862502925337081032410351968419864537853198003684468228523275397890885652404969745975833686542201943815517441355975969267788000344556839718163363329953324400498042795406806594613472734910852187756348694774848972673245866874549453821551290904764591901510791970302739144638582814929853507999906329648938387288113823220680587549524979708061378238741757317707837625414294274992147339773478227626637018540192415172437602268503308340426643297716646359322834336730661315755259699505741405443320921928199069891386843495520537284347221145662138221862561496664380178356426524131799598540414028282314208940424566966682317211500541028638024388270549106274513510817503852792853319495183396492291682505304409412120392950429175878692308657552359424116320025432982235800970062020979677288597199535817963157176684751454699828757398574460482202841994177784625860991769019362974093594809684353054703400165796003883128293568868198819067110816558357500751622254835366160472957676422811620830765611954796964112325988197346217369574865112582731933205549961809473407933249744748782419573841787290327865916996303567820268548092183388261349126694837069935023759337868777487237397834838394639607683037016174630608177510088066915146595643352239557111697209676579458765752395033274459347038345502799643649441173534514095823294614031996688460485459580456527357450875532638538331271757725384377061676562495324405068198717031067408747919926729674099294170253029968934968992766288622715444900225007590027184231890477734391249384992526309168995602249115909349917055763321850907461510671198164830333234242631198190076307835107673024616207562180457066137457101602936396308077758090214161058680758812131307525834232520091422188145382913440272530888789715113669299609128413725514737973408357492580044231873421251774586989774861470016151853616736061791088352348127097168245743045089732753771803746533652573548425916508978327172163734820328804553290361346150953825910421092764422055194400503313399641424543563513774806213947704230327856573262735379087128764446897579245166815442904072080681159848350739062975128556558026201094180985921609490077647503138050392858346368481701218468427812781610895001666367596016347795029750387321886260890189704340542526419369916071037649896281821119214100347885020631087042376773547466542614487147658272329496240744998878197367552787663290510486350807565491692523476824545928472995931258306582185892229748754894084163499572459527055167636234447845777293212355456140574795114087341846863798882255620252113525064102317697197889909254956553189006992148584490341616503278049201317024741073173893408729095933657114042800908770537584704747126420258294401911498030362435851229671638348640428860743536561564737499636818472793146987768678598167452739989755910882490808912629162038328251851276260269252059085631124265394757458446552206894165442999538477472041702150832291737041496831604120883339808300169849262256152546507477863863081766306344622201852724642157624776566808122317295277179772715336753499821232086925950599413983163093227424552051428974864272386183969826375740895042153240754631544073762605374258956592407353496904772135950285324213908188635035407030789128361090397958177815108199981142697459609493077256772318588321029859215125181267032727260145213864390208648717438479805973607235163295759530744156674631945325965160688951698291026764046686282242130431517472274662289818722148402212920003329958062680346161598645019169022312611205989146206524039393454204757779910892292364860829937279509213898861644036650147186739313643433508472520326273858447614777659282248105457318069152361655243299577357086054373307833561146795791650189632713823037488102064662733913790296456017815461341840650652911939147172203198208498606755979541965139741367324289863970028692975131181260568209386876269333099806741484247016379199132034000030512122888957832540011556252898881806186860259825142408918069554217831620785754067325729841684851252902214139358837988546841681990025214767655968288907990195126516132265687237078774754994394002911225301402036639901327742735208938021737915547552195059471168866423616879236471352231791428298916375385818150849929307627226191216717446513868420580031989406139264636941068929111721883578930812800153348387492944781583658232488957472257752895691462317133738445196857591301191785731430357861565580684308186073875183163057714154978110179922121035802158297442404452182727119279854171561034114350757827412299207434691358087693099095393729102876585162724611732910222861763719552043030519816806082834017676374973190855328851463703302418524443066456705783526647440069526611612084880399021173924858183929488407798140292880903434151248279617057151299893513695529957670913879880814940829783874081316621497692440701366394654383694950537747265955721722386963425987567552212476035361131063006018577916108267117940953936249300823162242371154410835230373811829698744771563057742568803100388673042335074405145006688112048280505097645501632677460723281752291952252162613549954670810493714315787386245667014602479165191157252801920628551226953358488388850228701983364578393863536874640617349877267019240548334829861288414815884912822610967279572899081108305848527798423852173808403746276492617864593590817389093963276731145487615228475441425237458925662736964741232123962706186098507376296698543121018395838062089217011339939037571132212923022969349105441704520606790557446147288886621227205207913958213507695177767129773857684132812491505312121815888725769573759341513785780771416775726739803703394192582074477549461084440253595603792275543726929893336690843310782667742992385941427172288726103998246100904344836170654149601529695204584498687756365196838156881569628133489126379226709852965783717033588267958013489146241535319453069513129356868593831972456081936278718687775492988386291330584227998185669054620334374403639858652281380677293352409720359294009900917262816150567472360242160089820639850332100130815383802842630019168826400418412396370483631056231769077082701451069918014932659505145120986214465092425432451290354886878604676850455736431405940490233331015193169754221335487168477403430282847510355000247738529074810077108305619214197582312983778084431314789321410579755280472901970417730517800807591650297425259412804346127287806361119026572032918807735184517042104927216861518526618127237802048254282255388062131636265849388069061090160179227014572858349781022262773800299129757720825451044808085107033162472099438451659358230926119466952199705427211078875213904853281406618925132517805086181352552623224188531511399712196038369102697746995864626562741441067254680347497220872847094076838377091550884111367294587616425438030122985805958117187314962414977515419835028130779704652640934377628988992880217400512850959428772359689022872505294735518033419987522508719327804862835356231755666511685395913643447735201918705285303205609753080999418018352926070387490460584409448865561317216158066197512112590181132321376162647065042141126200204205763104992359331426751751778328973770385423146294868301145086889368062852786301040831449365267105873402602989788344789821817974997192579695928756738669659891185254950932166135128391176087026265303963986336952514444492756212455899762146572163753687132403196402375717136666702753042211804649420192855396875183433097217271350673610983022211472066823891577637568096227429761415802178648739633955047026609119830993064032322573548216026047534053165803876898703694154661393297920432648443041498831909879683494457382423492804362589350799482185578498737716293115684606478674499903710098801957840625879754544736487625504488924391462867983666741043534327308688045403203608072979897589888615108626766974127164979509819921487402971297414114158808958375973611447451727133889562098415257466490711468365082298740120468450481194151244979167970916248005691698085096922494736626382139160028212579823934157895854178889088501606602160145139260210459623035103756321396159866892975439939147598767447380806519976974622968578758976873315128561233913618440789843108512958306131892620147437059812051435127414802330340839863287054448298089865687646046530009573011867126162126909284096593600982695554671225348296639731490163784197381702838376090157540207428290444869417021312116213919966628934213482445725060719806174352255036338589171839774061250508182896210959697686739845763398935471239573133885617618117132098474544467522713302705180312345055751248969383255232134704662284030969406156955921934914842680283209148884320939467925354116860831116539806665889997983002070285086434133399768000947043124518253130895097990126750429701564035403971838366377814642336524048931743467071602904594418497351049659054566404411139954974814298313896381802937045348270757050652838699793771339307757693504391914095734917560320948841213402311233190011722620764028210307867560931828180769361046175112116688108927972780730631339898559581670276636890907176261925765324330323238638054483514462701957485175511892779513255572404272611332273546353759125546125818221361565712776356917757051519326916117770863827346478917610298459410496129570550091704361825316388963432892413177653454718389688088902462407443309282283277780546924490502733391549787149214381427304991714344908641059586524814734074931182577354105447846665390959978730783658486277434707258728972869265589423729945608563012091441448607592987001048201976730493484502655392597456331630625086383635953817045395555753777438509780254065619868398294020326726842986197816859945374153462267063804075800901317084412407392563069272440388312061513035152738790117898915025127901537648709449673632233648353989892564275437466022845286574173632864384689635713629678959326856459135055358717354959779955029394333057711731674552795523862939611084250724674028607787539452800830943345070244786659680385262453847339696349103340432005134108028145348308933658942298393876531616171118544900591399337032855178961119914546617002005231764532894183419391331606526457232486822349074090837213483896979725929993595906192447758966806266439349428701425606545877622893962522364574551893836187334477230107224495589756771105183539652056308575522484363142634527062591582788401050475903718737029263134236963614965915378799122726437564775905454106845789930316632849011805627057421752231676740065969186159255850146829417795802467909881174122402370784745311093479032700302763716079605072187162369951424660851085321995967976234419471962628272472706367605128287323167466639358668196777398176986753960677698871061956199037940297803245376655075537735650308965074310465227385871929454556435851891981347510074685370024675514414847541202002853527436860563283553514828235055423638138768857858930906537731498873444827342051602190240744339592832555609024263476966150545609359381904038145441760633422892144892001143836263327682460350372787700617227060581981027561073578467592644591490641662173296438599122090376429518910644460393928549286429577714387684783360369939478493725572033865647479650631075270051781567699587472319829978290205624199307770092548643697591327770137304185747242286234921367477070743072248428677079991151967344188394733659767156250272608752946096138372020012853658858639223383940717815653200231216331152117328048364864257217415182487333457735968676868457338976227612917013959698089492582914857906667781689562740999586196207420778499908632364600564208670542953924217469576140277593118545556725071449977972188355102356097133738970313301142961183376640853296770128528057775606047123089215769929484842605168134804949550220533897561769285617975353833327573637186466105234542879899154645380802109834856998576956801613579805540187117345287228826875787554513952815163926697481188873356657686903270070899922298141113778788703273297138608289648228896983876778735725886633261584935248858713842450673977024619038135552613038044728747013645739045157954256206075363507342563593117154202929424192757630218900134290135116272966270943427399090625543018983631272375675204898352770222363916334225964264047784330436397955132908837701707275313247276477821035519715764357208553908301795293073020421885204321105668271717252067844697532623004350792316792746886294486967726218519366282730248646459234777974017185679262440955260440249609966048320954236817169286230284612081342821211823730841109288313768856742674078033932650337372147153595119698392284418063090594348978203124753659160828317353680532406855059026619603832361538828153669672426837172721763040777522156465081891849989563528358024222410302087639932935424656475987498000512316390700805898804405180583603270026390980422066429150903594466794114541362207459813410635173887341514348342236575100061482183470232314585610467865635113822510684259761605635345930476831231951935303676664428823468544223107046860603568137560963163904785167174332915031283019655890912780906955798013741453070035877019223524726742142187884445544161459195675722117213269641496889267561226993234761680639523596301117812860357756022635472208628127095693026880753279278800843391425831030820757946038820898429065114299761375503915254790354791121150357876151166052240201174227855983454167247718037570547403016170625037006502578713603529983233068811093823890589546059745307722997133370176281702697582797647269952953752280663194305136032409798018271055305218404327111846486884409679078729570998281626929690691591890610891497097933099371855241765958462469595104263053554320017345353609632764131005002101874125620993841283857505975679224721722014386686910682568625426751016706701404767392258416523763879936214367769977052619470028144169223928390888116856428142399343504451706862517146709634521703328775554524219881241772858015184092292800319232676642949681371637361529589306327502927508710372851032303442853434841637352163752236667337993865683167557827402562722483796212415860309891005939476051034154396195870177628487626900229477551856911865199208887458601640662697153459361269744737668451464083684703041888395710869015295642148125649714940794823435621240269061205709594059087798487749338249725984961120984610261373285039825639458902116262943995818105300639042266719926819777106048834817449613131988557896831730966733079026137243071615488020186970700601609420224960028945381648532992121673698662209922178437326797031692857051007151679331442193076051596517731821994971308052199240025598986657042022326125923815309047934227140662504337014166608600044108263841214842942136006723546420108295376006642364544156276427616857586776937673590588349566843586667397495918805357607912177281312550808334090577007485144142749782881269042374011193139036992395497193333814601463103906567958004009676567284803168350158983077314085445089376668659902137458432860117204850675680157920109528041123348297893878592011548207847863485544975136237462961470609933366986398937260412941841350450625227577131311730134935167751756253009440753378462969073714580342296719871569621376804637835868079550974038806454862707568991026389472015747055594593647010566167993635686905364790709909044968812225698227479243770727087410833472772663823555170014377390001272810384843348396443831748975902133003961472259498556407204037411649561565548269322588294420091867033314925064951023624426728738851316478404241754315535577039302487685864717074358755452954569053763922063984246029970662587824162647587197182847748774991496774885015896068729020627103500502613641162343364223871181964530360862259225352147792589695954323457220584601997917223129291987413535086155213121997091433840037349859362798415142079735860401324588216248682505777417187355303487026486713805386739767738517016733232528607629339041872664687208221010194330096835214307336126818317097326989753363749846861226551230125957476254396771833858131839155407596585896892141874904163024449740956146953868803434881027034975501558216004024584106092661566855796449599477891617109664026646019350734485650994690486222135079278503008085090122505502833053381507601083545863125673333702619373149203131678490195411026843033254537965285179387278492856331289532169526497148216313497833222366423837607962260415791786138644286862933086541580028062133622553418682880292573553701605400263380095243232876259068424262703407144070816352235833620216767166335710979991574925642433659538330905702485165235192059135849771791804400848074658433694453920365820709280873386482452164226026878249581705020384523001759989996985827553498030347573089731559382885185453087083981190808899959352969842382401997522935992500237371008450492024671709584943276220429307265614070560235826506773705451844551040776296474443109876859590348587894364466807834345124075611394968008785120876121589326010893349894926917275427382410192032810684834456386150763063579915217815897016516011663756652558855758576726140903774380654115377018168003180979938262729768146955190683097989581025326765380713205235819997705903212309310090368960589650731620844777106713660653510913878456313169167437642537570688339048741644774287123118268916093970573725460922862040522248704204494842549691100514356827454637102372067603401019295535857527303745417862289165289841981064598770763701880931038991637187200060713531025250044925047677082786495233294896758406721540272886283936992078253704072340625715324647630509731156164237905197631242567330897553132266729415879613412032678089176252472415140334306500739994407126879586007012813169915870003290213911277442654506341796948739322842998219321564737941623040149126612961197207299812439053048557924621504524503798064853436301449461765512600330710431189295306271556289135170391033974737393347538569627292407039163806186352137420533968820088229428498721893918801974559947961964105413335754018438034474568608029525188150777490705395553254861184703327818054911970504093408742579612399259982991513499544089235504053492526542041973584402962592592120689182471039300133934088201750761350752031410838470292521379921696568236071324197875931671800203583103574027698884353970526584608282503580956338893913888831052331668262968403632427129006597294257092729586152140669000543687503486692102176534529344895441233381494807505919409247662487667358393340065501335416265153701012736524070916839806627321081102391365681700365670801415734563479695940264889109278337977416147682272353650378231785527615650415728760467712240225366166572989401831720366520382538051269485436362255320476438979257056448948745797196703879695307217322452184400989551872417509566319492035109108184298174849227916681137280821158628766733967421003010539055794893730369834155478772035269962488492059087075032627485997949834550706663953276925028346223376040465208600368283425684911804218077669589314805968739855662908489990592205677619770845551381096098496844830333699754110277296537291212483066114483736823129947025668334673983004831889771864787218304998892555430072515132845061000424249166755977314504605025091208163166932049202498009616276067536046763663120653850185255574348512336505652253085908932384714929327315260050992585928324195603076041603535645186452072532744132787354920387347527095215906509717720540724807194126986240462387360773641763639076118927379060016483957094527615139145845876502748892789548622718711149225512341200602443683332796725435356734385633645077294589351499903429228361047530259165769786917092018056226347968123607637826275825799920890155850203725397053998246027807994260636866583439533963121471012382594956776745870504304794059469863310079571164250113809618349780667196324142489006699668237412964897242254671700760272509617751039649250479680672024000671019475413255893610842095551538645374192441961327271878239597198455774678799646282562765821395606203157129415066181294791659419059026262828998009310464502443415898419112548470589758643066993557594666615004355053974888166635337600027862658725796968091370787001494079278208241585217697945338789624277042803290889599723181109876205141198591057107244573221126054820064707812321966452300070786620112883267852808666541206085133701821690583174314745161915291930682928306839322445870278641019153242945967169048955609769989640506974077474690578676768632881144192147600729177048318846046365747923657774790180539112864422321768149442065712208737186800699554357219813866393249254336240816227794735829538183746505774672530361802939400205226538219189035246075585491895344507539394795624402163699511827623807619260011855002976553600430255290468371038180794094404093133734394623466547776090800523193121665017775882031457654940050908999573786755967849106655889293061013394125700591723205663287728630045574370020014700949291624361152928759145614913941182493924514061137564878716767652209066934080705580563768935019982215692638161447835911480391916554635885423244804818457053453672191475709955790358371143015987651146990924869237900672789847923170693375689607517285558305949075196430667077091811417583650004649136187861206534616043369325543266697322471595509865044928283795299017728821390428901854687890646169218738687108482272437086499291128652600579542447836897188172811354563186252143325422040272591102654549439590216167922947376990007065692502539653149088471592022459801770497971189147938123876491364230079571719980872141717053258268280734177768979747442840101682384020752569543831590395664206812068420391800866969810469374119189758597752701384200958807220989995380735456093291934165720230859248775065621328719292270974855402136738235829363012287671871060782162922808512787747982274167838732414382330944810838104946563474408628958781319080034556272685741850129053835497188454578348973009829368045825942863070119351612411482904792827517353777661293017595701584721693298335574902877519664211195500879218049998885479447329454862342973983940109968503030695898457012123350746553415789756568708928242624106885999483824695977690864399533392320229665181426584320579773933806116842529211515743975255710750882070181733273068391195715845316393852216025352891373753383331446719552569830540389842155678550279909786469609995910607422245533488292866962399211945830085753034424054813551471014428096923163175331681357298776104517908723218048856345107222209519114947789616688944867074811160620085269972131198396449397853887228235397993675154656445987554855549011607699016677439253368012327648052317015583136830672684706604719034200738854214653840438961937737199668963834305835141667143872279233771938318260811493348663601812404942475496737679144468205782401856896696027630741088948652380900015060935364719275210794495825292331294461111933518592235675542312244619865558312847750566360692081487216327440458679837881208787415639587077071546032382669966012775511897024971871977699965855079308293724573722562328168297502925056915012733010357268444020386008690384319481102049604454030525355423885135008039604135502998592531265380832089869744706202124229275547310621973896800907610723956083674436834801622918770780573176987897191900530508709830918001370550025083321519859115747275819014746167378540725234023699641134510517515492575660635511540144144100834274131377870874640950678743356091003602939374008335252045362343711747497201421939539657754837180506178281315402426430230597738084497955672156274480051369630375967786517995856523300377854579044674455036545274494715758870282171092950812594490870466541857117244386563374352234363659487292377142424530987828488245606477424047102174811998827803505991874423211066143705949298237621638636960023724448642661039969128386132456854950207984566889590694288003117785425903003863517557028295544127473613556443859049333772141715559602407057140720102801471208614215321514391456419106030636521119044400499284467442100249204071601049282705696765947314307140261714146930560702389097488810637381129968331217892888420546316115351376765668283085246819599705604198633483766687054336076805279032334590669031350827900140390361842536916135776336137670900258870172286069911077209291515986725338470433509827361257661191777319495092951659427649124962944482609466195819366818214146107757620444237666613129588211084092124337059593932502781287395924213930027386153658626269897168784836673049012509858313219743415195515403126576874725743947953761348006263754431637210560382107284792156448140395673079565421239345138204369749834824993794475836860002166161422264010009795062885484489378414664466490212808490911903238750976139357975057768009148760878406195520885723115102420092770752548330994760294269568902430744161918149547518371463899679246221151810583089415632403441010502737544640301221806075117872493933156502043229397502856486941033233750482567651943977800659812942150071171066868505279971225305924370295145022461397140372134087155091319339894933271536674421996226948482318808836365747784253590969123935798078651946593812753200265469603089236891748269514197200062850449946603015977801714808840517372024546996963435314231936617067120433827387361892671744378734129266825823122550781600186940308030924573402008143910780553145187935804867509088001148945530954054640608167452450570305016801061237367609585897715574216091650892372484013894458028710557329822341420729468351162459034137721552986903746500380407573639729009418372422967138433314042442561812431764741212732138655368182906575197337302918686119807477662755997834939883679451199738880414101349349866332127744539141738169418552540982715743846298509996214894698635177775524044044192627047100107660353775256608905882846415952119394172940152050698400050001120326240212672663854979557137820168344020100750574842056380952932702702822031235855981805196660462364353778605718520588995021510619565170490363618035157151337168411240931125982811873016281120711952040205009231174903880569832154609158463842072789061660689268799284579299878441521350550777672733849042883467923476833008756979821724949975622224987557311918859039050927646547693571417221654122081470775063001257686164899126939321991693173811515864003606882609265987139563054829392692164145590600105910085652835514566832241730629056112400054284296604223867902571032905178631891877413463640084047456470934970010269499564565483271798896969530234133676116402066627700274693975168332573301138645181357054354379305634821299854335464244248256731951077426230557574683958589692087946685752854402533256136196413313865750551758209761702126681826415674218743007038685982288565317558799350899792456861895275899037854703803473999088073658854837802126059703151447856376136231677365898853026105805129638336422392740712115807610983472545261240264234897265038561585573482946654638151724174142858466598234383983790162028722145704961347871373527298494721108201228801784766565094320920662517727777645700973761872619125548427349498017978150135099915078204060235086445650067828689384166464961206727414715871701791971106133050952135243968962401103299150556824003200911176176786956294672723181862056097653950369511636268515814588327771983708082486983796923579870594207776746528583358061561810630649847551928420724600187979052077583070686958404003303595489052951384111436741645239158796742049382136993952708329758184237864945870415315664087889214551288578450320829996761402605512685176053646474090128546538676198971267953671804168131822432444868242404830326278049005774063369962499731290676193403185839094379035993905737085409790918064827905954029686038695015601492681673321613455443447882463191856542684535772986855962484209818933407934324311490534290564358659150391920710214281279518714298343559500394262637476751048771616087396094885744766022157061029965967094391250914629172780328511645129186361325728866528856350552951530128531872659436678201050604830522840499011770409761589147586562371289068177728034779077211242486191565100107403035562162452843271555266139485256284493167810165450740700235414741606637610112148677477732696801740203115228606065398811554811914231897128412495861782469436030251055947444097134928532158564504323069499532361925052890203715286776555280592538269451261842053297795275914366781112083761383158326072366830579548220638972806406655412334614243864759275310963552544003831012083636212262583247886233665943337238570960868821465393225452175747891063978959818369569984620354041247135982757936736398127109162462447944593299984130525091502481148436342128242090394837005713787860591546137728728588273013369137734293612493439168559245226197159819168720590957222232646902458269900363414747820534529798679411007535360149399749487077854646285232825576058786304050883761253945856612682356714628210709163557153622653492188991342338068957057778948455087664456282722071757992575019519930828619971272858674270269193679294109391540581782230400766048528028085501638057217384553196629022484038562519107832551528158601531570218211030821028313236691336398730561742891173702801143265988076092426278439171007223762360912569296635356161624902023149130820617564856069543322187444787013683366765894541789021809926586066551653787565521921081072779847297894241107274618049285363783160007275381722600041162730729759523647095516388422846498350360270740226364660258340201418363194408308836408979246410195804570732613411785650556832907030251308463364848776627123213284843739928876186750534370343285526816949291021598592277019077574809075819873469506696017351631413434398836691739560217386185468307061051127055970926288250249040695080310769462641720739644121623642041453641997266285155191893574848310387553527845278716418399727098763011299250197699563239417786075125837465716264099121304008101165821073710439633703195845216672451891197099809769958871443244338884110298487355456490952281766829777012133955301199731245168961681014623576910711998192913270794548774565444401154408995125063210340749553395118833442765894688489810200769471161573178608196810127886535623621942909445870821056922441184179856424637783361591162721476859338609270955231656515987568676425976945174157377127372345348377682661695447860222430215183268770440500777479954991049449518918422281127252050135844087418678284673860187742372343849023366503082979784842287292843663143041817338096783138597393382872442939431562478826918895994891303503864346326496262092234790438721217693840040001810571400462304489468757184686601148030260013874856531280435382889795177379862869301503155448365758911642643184220229442605124835168548736470353167022805226239359327811812305535115622207992800325520895726218308092695708247052111694944503355416766946371677243424729151720847210223431912112416698482411028177006163698257334580559067288220803027466139339961651820001200980069133676812407119669769741986120348378674008625596083063344496945623682153591200667499649278427573682561965658928466919576901780854306188746524422969578724124622665399187921016414731144398727003868265106875190086293490693890177506600667811318528387137802212920177108449912178678614775258436684398228815750027786229595071690667129348261414084697448003362864392075358795638129759021735829623987097838993803885073294954599057763393457156784367437521687363354480626918143875502379026933086973632885388178483467402447073260587952238972497212375534119249415591935974649453480033874464561396411879537573940498513748471308668346988510594470035696702695270660766005124640719676134791453401112596283587790224022519131139747698048419597438578879152947973941014293542336095996016627697916300666963551594248340912409640709894732845220485879871153931504470844816620719127884813570708204317498357653209647322080082476999204443481819909110855509077510432870027750793278910384023532136051249145610420544266365789652749439983904351556509042158610181506198830286227832943240239394025442662989357227527327168832797046081127578937355273970579486450833638530006347813875770287170263481474409296126387958918441429190813745174904764513371878859970835467226685356270880536015494860406752040769724832062973112352127372630748803103399207485497739919571773110025517771072285259103160606442910422752671349444389505446245908475980032083758451706079179830174468633097321205547227374046746495880821875529752333462941479433325814183848564157276532668165506466061086295187913908374619140261198783056507400484406609299642406045897743323304239469647422653660863449278878550125636416251832991693085751536108281258442814332605127922805012317997896653082398382288569728362825572063193456788986047167827399495732897457926717381704316136048014364629215847345619138967205082330791078083376360544806728017516471429032519585499553132042145706543107411276494923352044036780756897514329345665952353368278804592164622749320728997055591367851290517585880199005554222387437397136347618196535363295856529782519312446629574345081655589044036238198393713897867045944161850129283605800451404668934210185661782006815727191878875562921533361547159622851224741131461425736390803392693751621728104251725549678362236691820108591580389541990116674165150284083997005341196989134804172412456332890450861616688681766291717969764746896058031618774301143079370423030768308639508097272518151867578659562432765952113721813103804226374811098411536023520989090483385853303161635916633106311946153755239627661062030618119021091118070906556328629617052823932543314870948124448039917092354258211787107414969745595935569180729957180081771309938496506302441438607894814701137298777673770913658356467255111968105784085037097116049876190023154809534790752676609415954169404786624414467505329894235963437251339625948859924186116076190499993092091982113564432786256229500076447791814611849151776911952068511765290251000627610398839349494346504446751654409621577345339596869519471673710115862083563588476443942969568140208273008890559833337104649583114300638421379785464789722766524090701865344094284798184664432444351846916364859951306843657849573403993970743384292486269214900812651376244906925157624868520894535057097707553158115170314960296827843226603525454552218331847366281627721339716384553407080866936641662089813078557156814353893671253231368623033432978861660716604891573503274900300382171080104044287599419106616246256039938782726532091832100087765206761433859773523487462903247107671294298971792788932982265345025367575771060292986441150779868596913023555778629165819805277384931541944315255156774227097661846335056792958520515957617242450631241733413298225632961145931612417973265742369483582883304969678488639769101342948006282571992933713495301131073127428413342516079375808381925695114708899327328951360731496694411783184247282137609764299771631790198868370379036210398242873658042631304311825293350788381072329628519511050055107857114057303219290383667751342098402515303649531809643053929291771036426544964590415116417122739640887559247969042383432390782444218722941958575428683706745767614249323124124316703815913089419366749892057108217067447016092007446988996019430197382420644288675506802723328582692650246348353628821779807638163813102926061101487658339599170845709202631636830749619028748685961912938064821142800964240464340983811166286831465304994410725115464683026484320386717081820946269564763860835792830136577412590550925739154557134539824479628226133121711259080144126635501488312692492978769144155096428170705523142606964041677650858639485340005082895169245051638039438569813465258152876289708544419798374974982655113915966474004497868985612743099290051769218257153293255770459363290640075055882652378374831748417009355926621753178190274812422082146035367673583839934013670644359230962431887990177721259051224750823071208297279602314582173890556254400700595771963236994256078463431764445145875594973902067151964529266892136226277266954695014695400396074900943752623030868328886439443029025920222253511051035463703091319604389327645793334115815535525150070066998470624384946975256163629445245287805800159514967580365905406425960397799481185441921397991764281880036202296597750822936398191308488599699160402636235100324288835512949199319480446855661497058721860035379079091433835572528267902798681569818230456496992366266101043181265425440586807355564390698103553435872363063560443743412544132306241343878833919626243516808881223153097947352962306284175320943397162322263373987813142959194197139061931007466350592460789851456814019023614476829652091456703455072654808144458915428155841766551700014127172031999700030717722751106444220407071362621116844534990566659312575235331775556187153802870335531027283936041227095850809422855495654134342469335337128220584394384396946475108556137827095844918716135020446374369398027097527238556558082733611902083680982954493613852272112415833574821267474630965542206865260135866119947627736358326454538586505735567104953925234349570946772428850067518484855173213964221866008035715963283869909063634640678223124113263123139017073077595283146372373903212574988154804820338665189956670917033517042906681393333418038231196189603754479018584418995146762143312358369476283851513467528631316266920295971550383297680690216720952711595335789013247238821442939751108196392477396313880345466784707621489912799618417040163537867946985646401021875362764211727872772337400953640812305696762248645934503847283884147201126771652853982040892158098904957121485884814097290291987433721800434488420018695428203560846317813405399443132428876210338076978252762134873833743868761333864257579732206774941182598477457554637857656350119251097074286777995202619674940736760971214174137287970675195780773045001317298243762060096226212444516702670945639621660936500920636236700678797077483963824184203568151134051145434390392252248598574891702494648652144569123604338782353543674230632858801983302147163130142662746492345125530287793509746347730582570384964392975079182829306837202304311160724939337939272569430759021007936582839347479587365616253866652242908870320578600716847972886307097948404529761040634233215603609975469116695631860833661000646267797031441375654551063155260647674460851204746549278016047283536634871706033285573928888334895712247396217723488870405309083940748874036960861452308175663788803154682179492203343131473317055106323589600361554110970573409656524915160008595705082599575555190537041788529691373589227408340157986790768856050361414606205194736134958809380191250786893381549314744730275076343806766363514190074802566792679842397630218282568395517912871649114919292380639456720020235395323079549888331680344355293127112947458185573316686073843962200404931355077289006210245760114634877174741585156811143929555840938307576405447478046514942178358624678994980735491057893731419936502764901407753751289563579452556476132878467163842263520255875795143414153121316137484015265304342001027609408592783357313284661842771238422715001206838953569258045059145909402497310722814337303023263329135674095484373006598057950920917257898494836152123297792200208035005853361761220618644883329789913245941928899318895187172283382654793820226334941465223055870557224814243151955993155309062684698546675963162223494569436405686190733161446457305193232929878192480441874428608017188887680573683823723665061128313319840040393732807308755935680388060865089314621957238949845124109843689674340071797299347598699679857977122336222866826576485766921783487685613411327347762833236443792998593184262353025541099664682417582351722722627591158740113511612021202165907102771406972463956805919246862715258433254720790905165697725232665546629627266148866242908041113696739815424598749687632044620828474016384582066755458759788474889195092644513859083357123933531653985276349377431789171453673387548478712826967013644658429057232816705616116125178384333434336689947658893785976451426317482145457647516149168992961951763757389666159240293910402724456630834926498238248653976180835067647755706491201812022935147905647236159404497400674964610460864203470591490204027095113413939463243014958844585716084413573480971639634202169071817975304467069917395554580103963937483027524455830263101178095030175043326039862293194195817033293756085163255608203953298844602325986454691812414858890686406977382616307946493662936221926808350745955753459515813022878896411130870498243249359259837921541728956903721115001409559455832335169590656982946447187012636254514414602547860823203646443829318464601212948904862332858229297842453636109849356221950514087197401599752986158009371777923559651748862018710863279013761182718756861487436333447112435963842732965613953190809268364356166180197150637493919534308291385528299393671960588783882365050918491460435951006932193961694271489783670855681914783540622038841971557550125592608798356954622286969508798472943204690544661200176788796302787661816210544506897365418912826888586220541122155653156307035422522038215642275429508942162481057305237815786159007025055241811078881907415458315839864598566624307035144270466345030125433266564047421755327321847276768441010531331407786464729641725828415170995864171524408739461584560345616052244755799359896474327100799703062339475625188475774407038417936114060949946448522558431627256222414688126440454067375713020558239915322951257677134449758362546633347070029924106881338551906513314546347587204366239215123993063811072883874576308010142997654013507195641715520777568164234295971923010310393505909264023607203612421826860476865469659089510760602183892260915757812681478508887298203070673333575870746419664097785448520979396242168753498977259267324409767964705041741033976123177929348281700611273858283292855204755681544303513736801938220764365557100936373274983293650574512346215083891692924159509521239311329109467803312771137450237752351087748867227191691306449874074854674005064065547622241633026456281434186674607612582600751814826737966195272542068610604126002643564188064932786718493364968900768234609374133153334168826162152413024668634799324508922807627201170863950460142191577333488667164385713386270302347479077877760192610817793560673915498137550896487824843482479945532234511244713010478737548504986314153204884159074451068175271605279371462988401871841592349424508234189315122312424531281648835140385154199727827096522934530696038979993186791631813744016358620906243545656481333412324125042615375177288850268113161615610775293759357288522516702336101769009673957624500607500396109679547851020249227889671786100871682984987265999191658428345828141916882037737261325054898770374236720920400154455886605041644118891829145231584074311048589071178266266174211216027866475403840694293920991718613270100855375207017026889015988965316112100676118108432197725054248370578667209716656397342967795650096856432981044042267210947253976166347675989445189309441866096833259106959500317349750396933665176231538517099030220808090772050872014323021901701018649686926716520161229097539811899695173309991103264384909364501952411583213960737097871268689086768713961828435674178990326387726452644754549758100998492082779793772653882383969585342982174939121905759793778670534741840558781860162065221524278706191916946037863625558145707077033120073983477362244269838434859256843857612621785004981238084109415841086997812173961605782807236849135200620803185559339531491953310015386193860340153913883455202875050220781169977877348917866769957252060507145695762782650879108321925831058472549123596971496833998106613838560384237339710308140531028098387576904083387476162241481207922102156917980398472056642817363046880449062582121931326899759697731441825275394288342664925447538578004592701339806744804748588978586367791930146351912951147313827215490555205302811394110096482738198073252713541390292690169759102382819877707274935594097141495981807242984082444040880758924451986561090595883316510651238137113346271296339472134046484471166880288785288638433107180933677948333477204584741030196698433626548257207249033813616029029843935317423828408108306694676012856282097728434280691542522689394339965310360381997987069992621104236020422997536722437711350742342782745287081399365229796070646451721619436717861186576134080693735913446781503642178060463966380033344000886451913370295549315256739057955968716150875468034826238616657174564657181094146168637960029643467656154072546573626525504565104310342620182587098014467534210848994602277369015895007474876219960725036503732165633554492468109300189237039624033338119471419847932923506828483915162716401126744324391834219030342390217978553928229091224325433306775917184109380046864796491050400715394086353042874588982448159098342383612834335884938683858263497496321226129099385065302631801701167540042092576001162108820475328050291727463345791368889714345626996230246293467699065432517528029631483013544126559299148593362779757974019768247189281518012179894065568110083255347622026582456538804935843382202105931353258049503867464755453911819568310946367809922931056522762446624210591116292916597706756693486967933882523396448794217692667268982233768984314097933619758724547954886839548862863033811300527266995380453858517729797044165328615683273329968906451498405399030956151200978898503412175381509239383048315101291210992950269751456966072114108855170255003381726809119470133626149827251701690759128398117082495184548205374428493521986650372479652815637733822005890891807254111201713758216469224090082858360773319156799510051612922910949114942968049363775040102408607441483435680869555434040198780238045337517599486240318184637083564513760549326160642619428687017182499675958562924791040040735500765800145101510051486131624790516787514186234638438126408650846220183012162171279698000186275714296579267054828021433584514091767356130929557236660107058653296545558692118938958613645713828883168770675334506624823400734554258696188025192468501757105484314086920112818571133311810415572075189573591277337505740564629998410687709944054026150151638471211547157459717319506454237041587289342654390433342629966254713528158985793345247017555447085452146839512474136794379214317698702411398057487827180214836569456140168117962012090454700112896637067743079170771769227653260788533063619750944244144575978918778634485566197526421465890249804694850596365569318493421902361721363805978839453092774205410366249229481466857414212364254438426432247438939706063192795331868311802103395660840809795083630466111625192032636118842295555863727575500467149370307911465762330664628276022771737510209228522367571699952323550868661391822314886262173959634171025917733966933670336394097859826208938918917162558298941942712927230424954104233845963150445704053376131383237157769352226460104161235229247508207455670117959779816010853345066370869803784480527197535870205608061719738419632975126021336192417059094687637712535873517301209072172474401027139199744502388426335017997097863653920314379655235285517751315552133932033729144590962422329220511276118296955572000183356114580534128980795115088983725542930534290558369842730119067250949080910059409825674434373854249886672781232416505371197805808659747370511112945828136384912090346245017275696136817120550906571332303811080655927665304491274039245652326389415604697678760713982962708437021133791753882607380053067411405972248366442228553842445277699327151964734609439641070620831213076025028461739698867348286481706617351728471538834697275335654749837789830910603023364494389527902083094571803131637939608629108744479545704715103971283596856512293597679147023261484722231983290289634165676731786943986938254258575676259390722200662894415316378638691839222742377158224359223255652457855310552409531203134500919171682636545788451528913910029175730653477675815868073337482152701815371046814949541142253987143580192383265349708735365867525285835950984159716724336132363249826522913036828865205370078501859899006584266839719841680684210564228807519331347910414644539335578654609493723763118171094845681764531353717517949936658783888882447311251187965882206313694567711368345098832181820978168732979318674020051281280996707778269682009579411238080411305338372570699398502592043221825272589550644340376160208054751389442482332956457405477010887794169874593012161106015422580541194349039131066614366574583500778859773808993829378711306547376703716359591425557630898920490882970397275476706461727255391705284294698036018929011704373530716634420177355060459221692247068341187249548254631610414853735930395088714300532390735787375647993808290662206158776404914559938961395900389564807937047872861140106630029258677370859266766390867993546413249544659548039059185020577195156579236327784489164037676556037172840117570286520237551453518677075635046756524086362235698682008026866684240007498524847498665434859978643741081342460190575918357584563329033823085438025301952865302343722691416736248373148170636496979256515865903620097928567756762108430105172536827952403005478739936546829646737091086375938208932094300780054249350959874554633844551882873954214822110034569116024307247072986297443410387538414523117110776661966298327204158098984236297406690992194851904287149703486940269342953233623703877159695881203736277342128854657573784792183947591960013207490406764391154161488632979531285981234611856964347940679841742524290175568931564894010553547677523108199051087123731518821506346528627952482567004327411448694444559633631843982831111880594170976460005075031976209016108698702484505280912079219495999619160266390939703839201305559980134877336551141775330960737477926772269017272857280354430126187201367931088277397207653030687789600416458403939656312174478376772870846475824835697664561389560700922751003606270439403975697375059147087154993456656985656650935355559221313830577712292167644020005261421305421496217774692032818299180168730394691980883047069821214852721215402387626387865012387912799689475498969936210139927528430075483014242002399813809119112173174046849216440223900117805389034435931790534364158628313527904003552854275558929285699780907355157059948082354456789046339875350318675087202896589232073611984726897202076769922118980402600863999438985939388059512533451595929334704600999106956318583732614441126493616976030997817216199335674472089978614957671883428607428309398809465644010092073154739646076284769188561773119635617513737661111980728851113572542163380856256320224326451692619579691868659288736275822609300594814846613269777767877714070987585803148329333715862733498406489515381826957139644705666452814601340911946109918830510584959113558317773242519256070182962655373125137643823674439799751359981473672084146433039401319951475506452995713824476965509206054709001141025906890607222104911274510107221347681660570842828301447601105693998125344781203774456011479442771257606558385728914772479565061324614926415094303518691272755296922410806946207760541351150712002861250086208748847337378589103229870829471973870228630645960988645743736855751309172276025669667843785052949849888669858702430633365985409226022502243965964716772460125801354728175157777617026247017980403998752816696932501744171367549829414867169574570968418725976481790642219630674840409444652289352653654780666561483347620097417645157123673345920020325958468125858721682486946530333225711546484313317874972913742631681621135579199421701638765743092306984336931889773277452420250809108930902230949392868710823943698712791033916142233002536980211333635147637131332965113311858566660193881569931302860475100405430836680958258167524667062829922238665378445838254260224918126418729359540769147199670383918505571053999490115849856737728061515500408731523886434573096684916788478887837979938697875596105168601970073864561713315016413120967756450297869583542369316936562535087051776288639059915623138114301858733376827519386308966556178432874956017483356878305628960129028407953975759540817985305812203430876890295613154294273346053666172296809587926305981027063596674137267150460674949954664175086884275311239413614767693673388443687044187930525649094865935886946770608305485734391459003516936490748680886833625553297441672815802797045917048101742471472353948968712556847657017696909162309161324705502121777032469232632935016608244034799715190463560923941681911039198595579995931967725070096616070739482946314156545507621083693378898217273929534671082959826559077080040794628485135374160839117455680564060454009466309270377222976114255905801905972113441435130812577163302410513274415177504712007076239449668420015985780946408228605396958322056557704259697916332883705088767861281320354045056604970859462599564747453680049693505931883698612149868642061981419189774518170593541467244283007772897413634784805036526453374395391549366541251316078471630896147757007077894990042365037388686296592704725769070111404120083919372986992907031363996487042725570654253244797173267334779504399926697352847538296342333783108120479802322548866463034985487592174399977018364159241726572716635630971249219339226358130146254105043908642860565750688557803311207720589380950728203798545074337105453644531060918534717531798904056293002333264309691325093211151253716506344164647035020545971715369069136450154758374831241707189004714839621579701058266864682390555550295993127077327807621530684749184261655023371477398508552892095267953835081322549497969762348608234073297004200671462463305029457907956838942750710664365717840605482694361562871669344328938270105333062104547475058772510349299757987717020874122426293515961590444415527534991191478173291618921855554650077118006871682465458703870353402151561465437719374346209207118303158286301368144228333361807928461880061199753901135271489101267741505364021023597111615324936056725662920970440288149121961823200194545192536781585944962414792773679223524519709511437762252325733107303342584275366723296852375277783743882449072597740951540952426942454418845052204500471036154409281224206305821606908945359658762373333785735361894463109277447389421820535004728999682339456366316327682150549389557416008854343460049402128085585627028756023009011974310614834554032086658690501321907267669119551114363620908120910851168336357429492240909703277610841275844647661832791294049693269244716019373789712358284249066111185221533176133089367996221160014550901942915731764253262712214396094816960749550427779710678184159296630423777687364228033825923082055668779147218134876923529803956791290947950732883980963727241638369603659373914844108330234071252124883000579636644827197848103836786277435483933233554826974799358485909352047493848811514367528260420395494376188130360104877023268425147003513737671728582001873022803772794367258851885829661552692251068614748164939647257170905032362054714766144406153831581434430233628805841565426256876231671233230443636386868711102252160723047940643750560369755880844840713902075946327497676729937556590236867410673274718727728074413448411132509162684155559801752279741800696643176250562936971135704689174844914314649573289740659744886162344020572777488997046426341491264371230252995284901727705627488622693677602179104915976943124648932589708758647312369617585478824888789366636438821432176779625304087557491960332215288444467883019146824470670025953789841380022702407888800421192330496016085038278206960145131623404179762009762624025354437520129443676218309595479933126577605328516446316908934664338653412123497516414046977912587084663767507599339602962032695231864818532144668389722058761321827477185282798652138219839814288148645071631844269914273924667608576434470101962555798988756485872248566614985627212917113232421982143926938261286516446608368802070775426340003979356880902947385067270917137090945871005310636499760775950488522401020495261186196203670810191390863145344061952205850034237822740360415439987395286170355981434993312108755694512353912913916681139453795613212714719016322026099914104681705731940519499004788187035807321759504728679006222698950616276373647970138154625678008616902638315967433445518028664945530704946201191660291367512962431562576402318041923665717933077848245208548053474931320906637489098221396300794806722197535645845079166062246026863014924146532209309625022631041820570494126614063413201290181747436867298791627869637399309382715975049011172757157043840883290451238687587706432027881790955742049024027864050689285815454882666948742083353933733763348537088020368391036305087967952841532065446073968443393201747493075503096247874729668015785536067843257275517885408157953118166943610768035569233621520017968293365998253047584624619472031245903897274678460642432179998512806731278996944882044077806477673272430685695826244614496867170760313436927501612066307462367786083793918125679091518401113471156286651090802650292002667288154378109437319743894871963243688554624729422528857086024392181459708581719659913774153531075998654684041941463719541642212710579033539216105692777622650757899485723388771153781240256131059941982105039059876861424560770846236033974076417668309120842275638387151919475238387600438404061832590443912627676959775526667554119469237465432776933205208558063057665005087361788569408784671990764537070726188419745186244459118776672999328698000152647526834113761042230900802973676551300340806566719035381795795549672424541104758016673528154726824223895961732422661714380621610075892727214191372031517989727526000134051831819720645603516970285803998882104541835545899740171512802778385937040279409688089651785188472692684182594566337864506271058739417561915679709544840576355451704615913900670586980208032883745118966693100897997584140742969328567432523223504442784581898656867803417039455129316032401445497734849798736689835521358367092790372860576012905106224731395517025143726574505615988858671795063139517914168027946600329753992362593884685951044537604385473210500069020372243381901805560905047264120142100061156298001816473132334758773756217263259999606389492164613998859518854587605872493549281572637448421694090945684612322944448289877773407734276096549818682018089278759936300393188299819957148634075214863115500854958224271718105169181592339450838595249568909742230487945788539984250799180427091721877007539248371208698018454948759139623207076037242912046487035186334974879585788908315931546386503986997478564641662456739601006932511965780849526152515660367832726055881105694946142530095730246765131057074880571148480054775355928827174474205164106223112509941745804194871279618683312696945008880213159391341599821563074483080661652502720720661201500669903605845618981963028715083562283583005745304116090723654786156546103748986399350536808778213661187728886459292095729917258570664884412640054683258696682970948585077276735763387534136617862241569273123233756530077283099486742496411552015880861803246203049485396787117132057955038685885321567053033811864659504866136748386410470730231807270899222369135253923252557225215211412092070957650040661976115889381659857054988093650838174529567757325488633718552990084045611323066827366490267389400733020422442629754449549560571276312166251599976307177110352363717040478317237442470621939738726180900878146454952066423943005692177642569061676731623499452473690067203397694089080979693797527928196707750046882776933719471176906979752391641744847252805777046089105738383129632454248137067206057284185622923944127832481068508723783803911585697180618445269241057860928722258752878925572811335801312912771335177779027397426929894163977149079267906593507414986723220871697667411668487871155650775263089320016375153386668197564651371992426534172220423351201449668104364605405121244411650496945534735845136925898886139623020377793181258242897204613288171960857037501590847959270142369638773111913015679217751670310817177858372803615077101593436794599882077587207639747577099845921408664458658884344349899695231960801811256354721364461955977680776788803566558093117441735015482855873308075029664735056447788553683600522200394994755033899547553697658154390901856003217445515765333952231281345931649299728164208091957248678898703474776078754657913991935097010189764212087389867638253578353914867423232150359438570405069695043475795933438922162408489354445540593588319906261141828318690136430736604632361143659163171802126265719179503379665975945624474634066728654964507195884042094578772449418054219723077830120923569347191272581632808296768335573379091003212410744769215362256577584405327767215537875303570607611683971354902103834819804784731412784241480551215123461411292782243591111417306947554079357309646693065867127126236984429989453822599659084849129949463422176249787639142807924212938871063220991674245686205833721679031944747722779727686018467985837616221970440754641904094222028732479423514275436103551310385641701341640394172745409503699797819986236819013883414208969549969123923712398282222765204385974887195992993370274404426587637518749408470997548675132425181579892338255861341558608154786341917190381990888309352473127694346912212435803080839349901770602182202055806924153258650396991782200921138606542758773325511519604282685090653504594200021103943616788429259086680797808660177927408627585180310566738513189760085758511335042060915731344132564789829004499938019923941695354769056701404014766693789645763530326117829886113028543858017689183593246568789851394917068869088412462471821095309566079915651946551812719450107259129948793429332030325537978371092994575993573714123226037640931541385074594623268708793598248256302812002826030986333481717304878040425693989118193787022481045589328807028401533176794996614976756189532517453481294754478397820531059091245628226421853275650922743038743510520814448608333560387269937144799837280427782961319468687754843922416515511102182645743431812596510692333030532142337520325743825432385582199786219975701262669846066287082772279717168404993409729796621932025260418231314971226885212381777112663674195567337554579407819829472119790401608339233654963359420543863583507421205692036176421753005528538867397253382494378170324910841638451321884151518294668770115971093566904692388180751010872487568060747968687479738493807895261565695694501431442522886857568912701636809301858366327913741185031021327582898957039511165464586324421278233743042259932741396123235234498695507282028398139766204640236998271481485867351338097033525462097599784893667879063687902936904557268390366579471377348602049084818015688637393292796291404040159881922946169459335728537293661021822926398969376572464548125390681833085955517365335916253375453198391951881882850500525643463222312418224630633389841901275984928279455233057898520007005019334738939509951969697495986863663916386607716089743535604701983101385971752114229522965745543377506754585818301662871234799767561948021955615182208103896502243909983581950753823879557923526065218871749275309178083107531387002597182766890522120700161583827633019046356405247423214443627868906555250225061215337565505891160905100390380135170568389345844067232653568319388706852981369718041055306282397510517800408122090674093031901330087104278864989495339728045337058116162781758919059108200179098626582393221417164384488639450067625054942693206328524619636351608070312016877644501469845955865644414621207885705122191515303656946784509940841453791478076346600762649930023920742098520717333887124156009260841947067909103526953191078112384870423857656378987685833029679678454060040856498009286812769228374013170489018360897263319719340820580815487399885998477684253088104516140199407165554750674156660442718558105705926587972030987732025027222664751317223338521274189496024876976403052501292540035102030468643100967133202479559581517123631951130467222680425750340144215033813932813321438116077273737929156438034035448992289925124557584593097630546089543511877106656301506935779064116899608994242070305950085231917373186139900044556699165378407887522560020580402391378439629967195003894654438167810297315589020411052802150534290094722333574583142645733752463358408281676381444673073025062645443290961520998188142660742371471026292988603685250431465502013657364181733628984484553220116854324647996814644483980821764504344077052794895740391781769187777763756047791355892457179816671766610020661949989762731142425650597624281067386218058323987277960127333625460370287506655375025607805930588595228089846647954514106026164681425950568803722570563715549483246785491515440906473981107475685055494190909527483436626514834596836370589876314996311086025884961898105413223384525986596029352209802544318938062117565495713386490097464233225565474239238754053650041035352485827584656874073983191483970691379327862223733646875899576373313047987174304941348424557680035929964808340371809420573354295658152607678099525867715628853976177903324034771596318909482115272439116009156425356559228896873193515910483522876399167454640737423232177646909647207440303444694988363417710711175787435241389193609729283022632238148567560849052235453115102228725393784052954041660659559116853377544075234011965158364169610846111163766108194620970855914857206227130720390012740484170207445384796642414874228448843704710514697579318628987921670970946112235665908614526775727542361226158565000860646293327664055532815247234153025874009250909170367575507986242237226740983391728145175067551114535856125222466527335437774557077734614072003124460090375297965576259894813516393326445512140815244758832837964054706297814437240255695546028198152661087776454801955044277584229027064398057292443287689718788959349693378208911560290883065794710471253406734625146907986919172572792916678031876479051799198171948815164186146128263834097928073034403207800173351154863938819058968791804937936036993929278139044181260028281750180464618964996846815524643024072221144584668999460544084765437426116843750627417400777863495627357371818905088685981972932505370081044920421036423831969342183036525838799340504613547878978209228964943443277178408989374193775559482859642008663534077475512141240073498453589456159434895353036342576591525305190782799406321100039084765974070226504143825612537487130311383666653841297480009829083792714860103537459851504477130455032538797900088954315313334541511314004059915290996723595200245801911198467155050578968909136856553760526165490168229813296050303395272893197465710017903741910826559906905688927486003993723042039513069488926891423064607853083929215022923184131136739037904362872632676373439467031900543545999101124134102628807438346635313047093614735194744446116336248172986764375051609088699290895592628482670762842352178072115567902759606396490770060161091164965346620921932212808814376411913631196607033989763738869004325423153180577429195063656104857654349313264282413448090403015026167137662089530020727102390642699257103906582789823278447203470051827837407123023081581158795629215013057895817398483475938389312909840989006314297528621606500964852529040694694008655297426417584487118122826581654759026207366367834474842737958547429933656377659931889921333068258061649911121308401195099921658099389918607784548909649085338247402104501151908287771759119027068206462183820194593662882139432215996392371327780201848064797122121881919217131922179235987552143724554481234122618831545064048900128818827181811381515061234299540183233528562784792455460284401940274470183824675230106055213303608108243397541280636318092916867516455620081416845690267917467403937035423086099475187374278329869390631584903675044094252862308008005727271854321783158936930642033631080300314165742784950001720127681882320855381967606942826397492809313347285720350731588859822131764933892276626781137748113702503796263361049237829404492158828491612357375904317127920286913765075394499645290870836903093411424238796334673407267211341053626057751536214375976708172008605691719454477007702845873527826678757537859853288902553801659517102752152496261768984230600351342552785888306069442112627669174261836641770995556981148936205954345395163680950936085778226387276533887834298709894681674319758329506737712769290377270213215250076909870171234851017653084277551922846670702308586943008205135699557799526720979305511797516694373181589817630351485262028388382896945447445606648905256787780154543154553645719365044684792536974922906744803431373358919498558630152453828697787480880541689782556674849627249587829154000169889170507580832418615516056942798412575061944729339016564884041281845397822038025641158071272895545816552444161227233117561325771868078024768558303559583773785489682717265393276700249566422281010476380384842847139412196051834301295293085931763165373435740901799984587960650478683477571659803732582465535946515462622675858097827190443989850579957552125437893067120901743912778383027363561900482231309088841438484584545665194145501921909592507128844526133423803245090025710299127759960008783009029411537449349053126004717497135832873663752728083071954206141859402101543523727632135020981044360400457647403856610066524319752109281141712486301397297941195140378394588365917341939961910275878888849222592988409212093833763568649070662695327020172591898654849346111751942304857942667706307195254378292358123366516116136702296654722177768675449716199664458326253925099860762434055464772196075642892148851410254772636993646379026232348053013454987624103136900255997956637400442043972450234608599111460493106522653120881225333148522229880747057165997561701708844911903446588799991128924720534164314638353104635534716688140388845102932812602691475255538961325962757156596070515366074154997858646630980680154405894316267821814965674096193346013197626119739898689388933108022443295996197168058037145364437771432863673007912447297716883908388541600818382768295831356282126970009901427292807040236279197727837049369306639985825549620869267839471409299685104999227028577686584717907224545105473657930661172960345644068773112876516914342757927514329204655900000485214382363196341677920596526785184455857304409597655412949931460682866845750744852386242163346540345965596761818992193767880617679545524425337856924756447638727362148443943832194455869073414287862166794784262127980991198786519578462614587910379480569170964177960735973722200781910195244830643586059386197665232301480245127216156214774838937920297888610263397242716427179933746706816699435560190391360118773308521849377161945133108630987232005897472387916869539793102225249848824909477556350077555876902100801916751337009718193258280093648121140836449401802822041303808265629041028936281519801329056427570670875677441436393583896751694311971354369472309913234269949394077412337641286120179867323884027725709489552476743377988173848270346451589027511323651343784061646363270928752336421863110556418192393796332637141220101414374089385770809707029857872926513863433813652427845466771270402841118195323350306567103709266455428225808737254667998258015345023865519466810762429007936198253225561966531840477379920379921082730531526579112970553294641455370990374016918765666062688680740964545821294860215792222751494874569639580275713323078164814491814424100700612086703712146175145957490108770020109084791492450839074405153466609464912620220368876201166549105585191909671914434273329835403167910959943396472085840503581878431698034787573499746989631561055762151224708467173616547893588952004413212250470032734920622991754636396360475151778640078131093257775322486812425012922375442850641254967495202046553433718065559725735197422036150263173350701052221502233626566710992489243059710157067737979686127207163771372510279432876806648419987347672373532357480871629558183356757415535718709952842607674742889053062981914448101817863889161879478087225135345610848460702952339070275707065014348599816798891097789522336895091913797262568407419006504175183633080381492605413604746440316159349642873210817042939818671099339449091040258132750734515793036677745601535840711375480955830247438958023808646747738358006587608420132781526607910807104442976705220900716659999370805299031267703227728298370856038316955558182326580753091347708805270493001391990372157735159688107932831857183464913052403630361258953729114922442258392582058305396739366707649803617626021602907328316774573434765534280333530567573373644148919029237100488511585316923187616299951321528864560521998194681287442418138620325817969038224805143068629783978349429455594997172015855644823841175479840391175887419200008899344839196157972190527365039077838352574934648413516449923994494482313808813971905800760602381242182856493553134297884217722098185139063749170538861514058310237227418135093829850514530219816935979584943723157865657063614137100272502232605711699894173820958973362492304056184664905555282463404524588022856826449458587865517435030028662296778504254583037111988683060897474493759474427833822069775743522396583431348708074281043766626663130621935370766951282327659887400001042785887052854243573911936540217825146488812961156714538649695727274483803241655130763678325854269119533770206487832574544592131963563033803543903492435418107355748800383697894485877040178965010189699967218584146246474489560172291631736343641441666221350332625369921945274783809965994293173855141605450585189020234996198667526529964045988757291221042898322858832325858095183174066929373404995330648588078877520078010763630325651087579073042961242206508789881923185769198545589925183158722190467433908211935528211915116312797864843519662262207114000859934342941560748981541975171626678636357728947864958825636893543382395919137502093325753624339227417615043038553124847520539924276142652526903642920310947327729111837863630181197649501325126740733008857611546777688049661253686620886273699218653601575719809308266323180465697119698302221395966710945499661683776749561700217924414480794702108306467974588201071296893684938820343916699055324531053954127078407317307935614779425007053695494676074936339646992882045892517772529328951526485912498196199596381321495597989752787174553710974406698200583272545188760509789147673931660863952177906559018633763914355572353180237277649584840457887999594853773349029864675098621415116744486100632386378488131092423458684680820647560353856234424902495858468745564528397981600992342817757843869582201222207533673899007902110744358282896575168952277203283426176450501983222899689789430510469193661582602841749931921748594941663799594887680640181188874285281567340135626805123311699749660758735075643099140121841292940437173404731091033382580106812497425227989438667015948269738804101272837165713521410003950824795974904238128458625596984392332895198069188415124818252264136832098585377665715244502585323797923428049135125932487815276361799721665982628990680427093601348050404048932481534764946187153350669092577736532626532254945270104282754092069108593025977497835476987366125455878692637346270047548849885858278235777148828729705708286609626673839107443902864531193963165417164007752379012511272516310084746104061274744736021639800662443496405310684136104873480569880040814933390344563408506832197816348975345075504290096643511406658277741352563313446618314463229144575290946167182071957758922942370515451739585785079122788597939858934271000145813716858042767405616592908124837503185638187521086013707118611607928047621855367778141212461902815127704228144957292100634391801089161363407047433878009081883288887766209632955405735278363910990304529753145544017737453646164522579296004776215020468971477564247950195296365743617446097992534989210482686132651613540593403363410709070055009320268742858295379761691733222845922597867207956262711556261744495191354455258597701201666923631187291008663726783305243040154350483855318072690630348655840406822235510073754439598131239685447260713282205056974736310085130444615380562511190232014740793901953941303739007986786585090777928433895842677910087789357944503678103098825463897168740621753923833736981716142610788099298663894020854050544215553053493453077921024686692759640079157151190211706093886531916116412333960983455082578808059818893150727182690004422612755814524648189017641833138793609392090210676376007163337522692533557443633102953959027549520664032590350723204108453111049076779603910170408834346710663352279848797135744137431754625967415981684823307717782759253633232698881525288097528443212444058667482563988926790772278413571622957695267844006372754690943967019943020420833313959456473852159924873610927055687073659852521127229101458755120608016136852741809479984336040526740960256693784172737241660906475045046875622585866158228332024454615612029653075097686298803643994462828725243804886352565993526230405635944650089508510302025936383746574226010899682490920050250144860025953233910293456448084025926530925413500163018350120334391858690256105721872532333590538897423269928646554978456781145128766191412035673321609923325332394831355475423377447564762891037375997231556946352944639797795816311012448816902948722220301335879978426130333725738887513856449222514903284973959243524943547148959141399844306629701490453700859433645769596114111414275950340670858442826123662332637957617268947439964978017325161660494162404094518507539735245814577538783903391358291510648608573478713393428337326595244975312461106894969225496387476009555466530721763069486331823375956552703131986934151701000713917161459489471305056283350416539846724244702244351569965207520041842385689213744477390088187927233467170425819164843737869367696607191444585535803012942445289899100758587978486279096592520453573073613429045645327529057893834899885675404358667745881971206556726580205887740127691149464183730909967832678819187254771719265118542551609204102046058264637206830243994042057666227329452305905792341437495196597472802525290313966393692675563261154724297842929954555560600283137645138730960978458064672588063203774073278393696273305338524354859035263819523195817069970153005051850673830684254962273718147025699824024172848926508313039473358353457446678019346665750702644511050942406344713544234334164756006286777013587905529447436695782297190315663735449409528655585111301426884540202437354251527685294273148196925293300245055498996806230201709410654856096208407743867501275814297177538447834599198588080185753472941199460062852353477457578960578776626143610763605644930082586949954000362977971127982532513693366219904337917391027386570274751414028228912321585651488920905262908439357035098802429922833220178613880036301978856266362376134524671654452496606796570331068459244459016568089501950123699270916929120575619630663598966651062602140723515201423905513292806579539451296459728547950535027922127718165362732444241377932777483767496384503853128675302227904951015999289237055680069430274110748453426340978149158289609926555904618598358116992893263453252846161849402918775816102689358318532022367431516352973334649211890521660863894958842287691710873722823973677087732180721334703460107947559184663302413847753648379867695483047636848585870197396392070878515449722874609104959566057750770346234226926580488896473457118905160311028669911959295474836225310515703636607263628391540832342236937672758616738968074938317932908914513852213835969523103466662520574413751833373784636977584757694380976461018637548540737021521632332042779838947481221594071912294988478207170029713111675776484551499184303528249766413149836029401097643710342905370260271830879975794669749005416347670795506584557438942855782602321901625966845219004273876101106386222249663265204017910255401423846409796350211920431527237674044894844095328454232950898189579965424245424117387678462693595231774164593538693477137966696362562577803654342422066689302279116982713222958829218619269136056552501273964706735109331006372380543678466577525209951358293450897179936404629236361795887393916414516522178497475783031523008528792046493141251351894235700646970779232629747053633635881127824039444537011304217823496246459021409735677161013744532777473324785809347785267079668529330270396679563487766177770970036993872336320727473557048878504461478456326289497120837181625526627130426635614088455129257358880249102432821674688945625677267216251206763228814148013244312442176832101581674376138636458775955360672700501913565645732246293329712228014725155640539748701892435668808359580164161329274294694086871661835159820301147188433240041971827728824628528328879680924636966770336305811846382799117047714281858805566498731493813717635081211455539530955082131545321558500365799121845266397851128431770988337321264423879677983766035212455288890172723132028865699838102282726557935983397935755040961486444113990514964640359032498995267561147648726924116807097455542198418032631637605671835152832630899010822479530954525037608436664690436613270046558643479440714902558604100011765006705458004825599077564443218127744770287269801535401963978790996860422719660269455061806884787978492272112126106486621406276131197674255961013292158368633151356697173352047646764839819262623273163041419687808428347731556933951388007224760567256486284642625286721604614248560046861730325391834727168970360031619418488771789772366014993350568533257352709239988691854104499365338779466530746038227619252762386747767827394483748134212548589617439315202956503639592535188801331954422144257671457937597537035510120021515301549408407017907304321147644133725902162107080472690321772458185166737433422587472061536381262422566657990537281992268773555402984757260661881271292977635756939218723432938014379526204671911482748115234890700879063939497733385588143896630541786208930203063525551227049914028075492015286147318350752050951863474147229628136846559653958056453060561958792517786132223823641808480980558659165836619925527535752226891737871150259655613666946414758710661267849547275494198741339246538053268786292061754611219249892584633707550301436231543631184548009526220811812014200386325616100291045284752117825923949290821178627443379040007601526467420989262505791900381230538713752046270841866069211449982002868917775933927457580943933980053277965288275125598362113452941995507701887520149304518144954827905594023700710986306448303412221504497912046127594380098245189299095973546564805571476208667780202624333393132573789502538431880381344038449615386522213570035920380419745497500230680026785981053437814979456143397382298735046236871369035770890545064752856805190759010683240643651204936445427025412257522672862048511937105392621393613335237242142791634830345719681189498073866018315320044535499285392970174923767798994768182240218583207498866450172155749778210638039096326174720463762648388549365404376724202207560717166182808937741751576096444699975928130267920885115107866959907456703385500748424375887295702233001929096217726684130029058855519812213986746623124891913408567055334855519416485016046610867520065337215707179783454138554508287426518467470911483026501433043483589072307036117492200504324336244387951131374318118355573170265161782156851928837766991719431958504333646271165402845851185346061419686529694318378277808519574167415234279017413834768378068843590633411972221116887827390439249763359750922208527441229971529537998782804328945234336600633689082714544166284124977267806031672830471682715251228794746470515433356690456122873643796908676276132692405888527197027441230293897621176320019788032979654470833787539089514585632924608911268488662146457619652102086768638321930258096023910172543110882309547901996166821820271168897619444395017864982261928028041798343921914593471163030245264771550302921953410856026501546548665210070948014475781335151692541136309178815710550073551680113098660330960511951761936849700593654423875972996000102246042812764381305433508675583950333861849850376487252994683142787490438967727753528335725157818353106083190523877938110073878676780959051375917819393226941999765621692055687507177165120258673426212005941678491667061685300809080255119703104388848873628110375910172281188317427956713692829206415045428702512689401810063235154440789797675985195554917397554477644853144175091706982948405734917259368016526230888245579547466262758426857125682555678513805661830713559566727841916878249285650359145536489455926229703194449198344185044753332689836171784046962444684973792649221643581049120206003635913785234802293576628772590506113659915852957129321334034371171049100569491724294058507503846859446066191400473338929165207944039317359382341413106332963291225693381167471512583866238259055298773776103000932527325187332847315675777565119997735074719622873370123286172187072494327650667382682865881722101066802136510682449239399146175226118449808023253867773224371387157889770003603482212013374058978828937776563907891040745516688273424020473577169931303280646905287708459224248175677596211594957781258186183334617627519322359407874485136311816504552736890839474519185978896543973753661043507476804809986734944577922129220810491142098272310569076440548181849374175009840551702144604447187317650012708803961975756454983642961703206296152438122561872340701854414157833518334268212988782294039450390710043951728348627721447914106163537544125385617198223595719554072511386981008435349030927704950078185525586800697011037502930193251271664797384279498307172007396310578372199097277840817595802133648555949330856367578260307552983436023662649623439583988025966066137816595834360455174202662968302204784158772204304095777027289004240464703945220289532872746740087495842664231709695065455514271907009156706380136884390072472696799480700452013371211359914885423549265914878573360508655865368964903407809613362513384146802628188129743304315583080522665244053247763972210937391969304779469190468772712092410132921902555073818356348180086453178545469087214111703882823920822985074259049797180785717378533334478623535747343085892510146545651718237352904033511991971565546330411878124379820042289522011789961705643865491137457421944706029179093364046136351232990575575318654162710819459608272337730712268878551180097848170200429833109199462985251075870509414003043044899527407187808948827540108788325500846687958565183481258611308027082063149324129834482329672569248820871288091611804776282409213527979253176761972872220441161750130392303226751004900208516327527034683090681095747887358164154628839633236588668332591436897777950945662315934668681805832246957350653236680928559026733405003619252752496759383008297185962618185113413803920249857295557634163868009208892647860065350445563292714992607902489308147993260339995492372319380657771147189701574180820222961976880520422098459136771298414380155030574534302947408954193454053775614789817123267157879565788076462320147508918468789600627456339232091594621729680623462315108418839307171857723221033874644566746776245219093911169448893905779971798482151476982661872807901499210829769561954537152406228321094636809941840698161723465313801980412706073033028620567223806609023092116908861817829948706038872074540052026191675473130712110411130156399742782038636417835564364365384854024112988018418190023962553832125714857343968934302114693235424686655993935715208913017868360693980901687633752679639150687443764467638873089834022829802060116410399404820099977274709207752682226058409831030761709519768738614703256121236650915679279900779897587771510123431358557112942236789322430962599873549489453162323958578289695378907601406280723773798381592062792479730564019054495775812365736578644280065801152602367647166985406961171961417477292007077558195091382868255205375001431777657280777617783233067717298728396773060192986366677864910005571896157390624276699874938162244847659602604783764481256823299498193241817519345051631671259072739149059631528290424445554856377650990976819603782299601613896777032189270378383092275293310582114799295221911385497757411642960928911799664384108094073696774314171090354111836398056551996852500739488194303273353362703292142047256834347189220228308477166410748571513762692291180556463673242459404853070916654692025454283651886028347010430986648039679976934959763172570360344229261178922962875442221044901691681999938471666593165812303326206746296019050317956027479648361401679730503875846213838945546222897405696460250279419289973329155945647104511593870497566064862505495614481750463295835075256162217398081378027497907650192876957214116588855481645571267126067430283461419392570795998902907207182365800689858679553304636422780840124513469386191485633758337167505591203276780421551421645295640185018716407544138532951309851407622094994124346441734176755870454450654072081090736060061670480101229798409423296237336487790195605288995664768999798468278941235800920526404225841190903964705698552114698986575560390350335230919484919130363494041546445049463266680345721711209871750609435756535842513604111319950860473255610783555711009331867403611973713611806985166043133771807179415835738961341402878893054317069483661154204193205690667344905956436531065382278579070364010911824391341182960239848758258095539260440215219562324241664439278718907957472309419411372295921578877425220865101822722772299757749494494224742363978150066290650868819064858732099585988083386590704996234169327346770678059370613111934210350917499115236554070177992672319883177768501044603709848978916683043072982707295996232784680859072835770586297424118463399010302552065118138429683206295031450767107994211061024834838524906273727964357340546102744625165467656594137637453502102604555458783791052629790462646212691891850127675634626845813674600828523703133369799456249564434366954709764860318482700583444168636818427887873575969091420997953510535745186904644817848006763765983200742999724541120008187504558157477156286281090264474545317176870553880949066993745297968912592082846914341322915562321322272244827902897840133476632084902646260936013941304264799002401105228602591784423144652776382800133285392521410099828474951731631965177299988366556973942702608131511165451720000357784358557843346451681505872719093306625175142702177447967791775149939579304488570351422562474637637488897281323808154811588969065366296764172188997010717625886792641801920857721819259389873145419784893539948617569224968193193762106330015983918045784597238495678910929016971097160015239439981595890473318733644561645092647248388198094526048312882515391573141367477487023848166518025460497180524162019448486307631315270471941998742600016079373322987430753979642019203148509079858333054655113556564742421616216315531384861544147876711189127684580795333038855054632825354170763335777555991494582663577240358213486168952051052403696273459918362863083664224356158442737765555618878232487902906553158967822995746997694941990452900547367952037139661763536180919506955405036154578157275947649877908121557218097327442326889403337014194110228427851273927282778609235127186835818178271854167599215642871480504628146334991708858995972952859112246472074691517777121861123475912438216520191090018855093004845012288522441821925488532190438005589126250642445759507386562565205054050144310666510058196932811347576717202471459660751892116582362090427617259766316266669170039270318383808443277714616821842621246521164133582450870708713349691802090149849076187608941280352152972738939661764268448477925443340750844067872228978466756785855224389777933075820257691153151549136407408369985529323438257985934881032540783868464406400910609573980229990135472482808489529553580033184388445600465006088384169590948017476550851644434300594456605948858224301007013411137074900482255784631815223364076012385797088425415245367466355478801862514137039003024152453022202576322700282946103455637598836906665487062730197243467186143388865230018340517826140470537961416131518257098669740741749217847893188364491463394212349779990940329438416025964678174752460314195755603100857900263360824460350012137548362220655907087229017721598925803363327622242406473990633856913050147917147809508831082421591159559686329841097723912923422985844503262293108430368002740935370321370456906912115288047085207311314227228914447815939226746686165226686808066042371962909145803679262203433756461342431171831595080355231405513724760591280723409043000503116351472659376911120096703826920487709431227525516268232688066573818189132272785503724401631257075807317895419921885635854964333799445644980257316992488436904472786189243854825291439210244140599291043582050123935415646898222848914882056229986168863768502293096406978199186857698159873734882397811649418535365366316757672626247714155559245834868389740955007984923672756714870906689300230726472175734651727501601337015447476770803404105953564374796516732434621010227845779658913340458229638817986936862904557153341835322786136403072552433344351254999646001316964988329849691970154549133706426615430535392368836715972510997628732545523549395510116002914806152071985887608565852807539284668410749832418036186142252742340846906685767062599108735390106047681932168126719880604691576988460348774892302630848032776069650576579643799735291200493522726532562592467759261380298354654383680953575051908680923340020902340565506321850791290962921315621164206005892188984340812661010626739196023704197821140491255464481117061866186657435262324836617815680346896168929395327035679773456007098534512946598640077631582209405714839771967016780734413685874895301682520253217607064697280961122147336310767709071154005091671711248138680431320993264802896967552095507134166339132341281780108007578851224188514368934360804063098479402896137352758571905432957775474180980862255065675535394341512398147569438459376927784575535504979899192594495525855994932146046697846714592926543726529637039036472451841736901933965196269381077817370258548148860204493833760136914852466075179920694749350773948054959807378114111838983595973052377983064674719592780045419609108781237714457366907003082221551196327263753254570770202014931577636888984685801095161232455530272635531887198329007899410972783176419583447601953869587552300570205903561032925331351216117534650811630156415312767316181440984744689010295887237288104851312129456760645729038154986147282977030142882198533580478071949546681104009470429295561401688340565135691751204901233457218339176320409655927973377853541013590595231884700793138507379765077661507780450541854644216497166386601616737706783062763597822654383919122205617297644325775190561552065657285804575413668165746187260502233148982626857766765076421251726719731265181545225338666130248035846287843048635011324231544167719235254991350687693586158517732185407137483813098985832269300873184241218593644943848320762353050204777317346288429333564407726291166757751546479889253555893444642222988725596622235521414443781772142866151909007702837811727770443685444890106535243580295850747469481911640208421984242598687787651151402390397575783734517705291544473602780427588611720807696524445138288152760420214046345989027006938315088162491778830494003167161429956863302591312246847420963131995953653857509613265868436346260458258535987981311107083970804530378176652682399384027412538948712211032072739342459047050586014498748527542396119175905811478977863477905764486797162083849086766598472020350277546718428925985314472448001611562671693202639509198526886807731076556770597684705042262934580332236455926960167535830677446028576004823552227095832469167459411498653590278135451344481022703159539754207021258614808654649186288706111434029774056302770091150866246121664004733863153165760552487892590508142119301457957652644176877669277322710902354144117655080107843668060242743703325456636063681260810364404985094248583965767899750762198091443841343303748349465184029944086193502007121905925424753749913075136482712153855532804678088818954118273704953416684293813852567003874445740954875525986928028863211411492940388088153802651176791348932337530722829791921133795992463821618993654529859615563887532090052946338579893973468372335911510995288538611087130304146741347650443678310375041361629670286090882402806011992770744941752251346941096201089427241518885055649236915632100041632990828346432946956539172931588864679650038854560352010464273061078167965942041056588739243647156668965988543374575267588002709194329204852237235748570589603530293851850091480890813518727108853453697239536597001340931164398748098569497304467881113354534564428155320697193801824604558805747846351109999528144661889338141391240211928515407473059272705969134110624854662777943785436259692859742350242949948025200146218702065835355803031141214268820037416909983869852858494459006895090443634855913069050604064160921133165380621818779108764631185843976941160835019039675206502796880817284513738897888495583800359308893497078536688721108178715840958763109923744504619582118149075450938801558498384036258795326436668958216575081332933220701332775460158526972943494392799770384638986055577140701067396854017860974615772495423480852117437660805193446311962475557925501109061995980093650189214151031260124302761347004284059708672587128217689630083242690075027046238241327182621086856077963771033607860887310138227747781975264741121676542569431338164650683124691513460633113540644278651422725049259840911082347713505161689474406669263172415279921852484949481823357961104126095960457906860938516008749830294086899236226299622426538166993644399353320458634461431594695838066296446390145410790874996700843281989859812800447011263774894878515517063154912324439231091822761524033514063022316876816792683395390768792905422034540533668374389510712715221785763196872194309753160623962627687963992003742818513222530098522161216309087479179278806532179496676780883909840571686417642249557960755706248748986438651357022885691808571273217124300360856970079509834535544730680345891253736831649786458554148312852204925781775193837270075075288974034887297618180505437557335972167520832615985531974715681919953299551403537274641984669918612580564780685962719695492532079698734483105873342412704272381998740688244684666446996344247101858571361811911004348215123926831585414653453230195715956117227566626050823184272695204458098948011867264989418995750212152669208388319606954077450447539265014519787312018412647721549193488325555299543450332828287702598349461448631235198543984357233422313678519611246708075768104240632598540947721403419923542706203575039908983135684692411153514443723548456460631126097800205744748324346760659467496913917623468967656507952051621424292832664386304193112604152929931300370111216276812741028302071247547610806731301458465668623073166326663022117181745343621988482889478312678692825406361828330861912111045947522888051327594192032708441973376709020809562063236157017094531663241400604542772833939643177945644976680785528095578320970720041867078292663137352744650785326053755412467031992281698057018756785221032210460567371098358720088343858401263114675309300355818602167245026649061522617268556884287153033305962687918363326857528746829734059326225615797107379198012737511902323774728005666085598014689829230986409849404716381627104901285918977009349587404173105086574206168241525612927866195723723986088196403601824588429688528648377893475178280583357003397491624450965991511742331072536869322468055434336536326344396336920171968937163464474072506204253171643382253893436546186359638886314300820504980019037968588684039824196940275180391443261897343930945419816103841409496214777929918952557272021257682586964555163197058645792011943449302970687600818185463573090106845278391311180020013995703303063546798188328040328758613183944741732159641727231842932116988839686076886427212736743842270282874546646861264148330905624962483259645953094309886673837143101317520857383292440418652688705537862394459582686495648537602508946280228033411850905376824405912638260699138910883262309206263622776762153924777586836530514186622190112489820411771993246055963992423874926736404541082378463986010643219687165788332764506911182391494061256740252325974796332479125409314560787175709279338678004877153181002382589827806645867700104386627324623121039384820384110905661188244367583648610953952778180665455214934859253364360666094611496325592797434155226190970565874775670001211512224694091305729784979825455281372582322845244605697830224901515439659110672487634645383541891663264139297198628868491959243608342611825868019467076398349033409407722528463178765048703822791284626283251748313366736999172265332016985014534163158222100625908012697991164929865540425452304511937327666719216164877157716598133754450658716540251699841052596897167926255229653777470578039643122384156871421248325075719591897566766880962744419256322508871433350965739858348629954533774279242383974980775259744532717149349128478563535972494637692937480746422530117724462679717179158278219748103882977976814996460674188577887755701633887929282931259006603352372135421286019318920005800905450787730764107359483700875570835729020515001249853835449706800009847602995021613879100954175132462299508889254818433092945809335627282137527011498594710559462584833849427169200334366162321517658415525686875275539469906159735592226600060203948466227739987596141726765087960079454823938563879070957135576957596277332718161819077864544744200156916933153055670452535965561528607638917406133673667508294059830559095897787971164612648933485501090739017818478673508087709063931143591447985685479318290188232663678316446361268050472688488917660868859432810074249774482659694592937333377769132155730577432266165915210970391361739759977723895373294675125956852567515434983846524085628168344834597146550936989920222103871927768448743366912275748060792050165612168195348128886984978292070088849979189902567495595241849585177866255650704435006910952415164310964658645966780694710804188136244128616571263209063964524288209378821714669503912572411158340629967215243325638013162749624633399525855192500538629028427657212185798660158206345147839470178732345255666877108298594523513602243533514531554452886976686275647920743444579120805653943400946727931368123182872218886095209551613170049133397312710904821871298275124524397212604272196813803723696388482672466041377480528224217327137366555425446052984864389422030926146864042728556886552421167841256419130930496496099724432368289376150349777107829499064603327527276298603931003323294410342306866812917800321362603737696380688713531092680371390712522712660165767268053719257019004233634517506276328023580597762995213413891579178157892213797580555187914365433350645546876129751860720343330414467396172730361588701399167200542962523483522865942401171081580796566975415855012119903278274770384719715341428181655068685291693151225538824556241083913615986966164716540016413520114390023660866506859727373449362692994748262046608297182695330485419536784078434694478073140954129066705656198858348950221843739581132927200117508694823047553438467485887000824113815792220192990719208573479820430804294790449821051477612808301989189037714712120852396146728836517609371805895612153947878363896612418262658309313524970577392418566195455249672211136679046887373627250731326325693667371011764952938999845571664207627912880109157106434176973480656737997747084831401363375521789627138749376992037555297217109215106121219288608783406336877323565384613156621946148552365952600413094533889580600283322834157285736402580851239260283233325615766120850416928386513656403333109687211372000368944440586995000616967076161663703944456374888461107391449714382655220991484242726286566890911883974413103808466612921458103689351679575534602573966706918982538409226767581935344391500453600289329536202818190056635509850354478253627874720037414661104597313034181187588854048922103348255673243776596474122151455038061354730949763219403763504677554271577982808677868981518248413789319607532913691137907313922982394822536660298279209918835294037936276264278596450120226975488306413967318585807140161598171821287606458757868505891974376683318192556304094952142390100533884789121019489166830796102596103657991358553726872285299380896705581500964282253269592978361517291541332253788417124704154590088634044885802081702634023120197746249760089509451692346489437664340020732847939957977312388689740678707766661197807065795615480401097959119202269701899972621520413859036322018489302687698311566602183021829004913475121909238465990988296434935843511686599149626440304398587774665626772371755380073096868450458748165884394533022693706605650011498398023622369905518565881802167741253251973754814209691021434140732875537359888202608382505535826813551489578194825764843031856597857138401146394161018772713014605335597015547130975818264371442367307528301433887781631396785131509348614744305817567272418667362050973289423809626785795184007770142394202205586329024082798749562490738996580952938996479865430046725064960677975402258615542532261252864516061421917595719334782939391353975379635435958834946873027693513061268391063412509198117450554812579519441328095113270593528262689430381242240292785149196566641107139471519179668752864761014090988410750792894137064552425531972858324557713509445564898535432388061893521549208493052875831092816719861241264643681594023736749359035575037692220998490734695988974023082139591912387443609044152866303051029611122877571050451277394246113219916666796070338254674820392110396368524740408563207754359438812179764437198344044539741219839293559629336624117838019031947803690405158839589945830191791748339553802238887379530051622919741804663647782506263603692438888871074184947824444375980299921414564345818055276802205980973426279962105701452357681519167677398391930406455084635589204287526027076607972801455049571177028414664333850274943363553542068464017976198072280185568533076026380001790990290342720607310431363867607314867962661665424611192554611183089181673735974063788657488916482194724317224050113894026516582360136442834174749263391661475650034921419622557336493160421100015542465902549317440304016806396817831716560518939632091272837806176419469577242414083687489012072792230137931455027321519145123741642795533962005100033603386299830769443544576475924936603351966225285490053597471774515877103910931631993015172604446462455576089206331292416472667893517527194281441286780580336538919173853483784612510361854799827104133756457563072324043505126209141140834502798732132561922289470947859600834614102680325059550209903114427641723281664268811077140284797446783305535240459755504196757056967529708579264532151104386482681631785304234517697499003608817383180217913145429399389691679004749859902534569303028715091556700463296720315205597235274509813495102174701198990749078348224491718165313626590394741152704514967059335702892798850841177820390102588780586056937412081107750031692137209644153381527594118699850161370782535056526815300058670363415270905813239106288793730304726027950336768133137514182250777012613491591644216543072451892121710498001249582577955115254929393880676793137503921840207097488243760042369209790750860150791097720752099976768330404505401659641748823429943087849351057604389516270797546751455235868128416452448721984470444470438879974482270974469632808653508945266762354667485081848120151905354054796016378763250847950983463803219611204791662395740228965567202250958568020121619078292085929051651521514868556755477417788919332296891451640469474520990817036154923725313915422741723246985477168080605208462718392821090906275418061654063930579991263751887538632321038168594599866640155161771799825087016760593652010837067216108833098084345271897997879289298337505249598251891866481757802012392946061941892377055064303079236365667396402741884419533564593983937076598269037792045652825495981144509026922512097936501264995354372008616740525189844679443996944021978175131622927264017042102567324792383220605172418415822321366487982410944865032631863708722690926061089105460822420744422923686281116960005590791856686432911800116974016389189105440601302527066140029352075488262456103826249803742287330372449816956178546413800245602123367215304306503745470900077314073704068420951222705632291023778896426479890925691838529151140886659406749460050127242402895841331112745306709809299528240081126720153242312831328829829387364994416063482792647267906283077465406651310251635320077664399124256765518413121248095664023667137588936493921797241632560632473217867012845940285897760171180700925021225133480493762504843271092042788211963609258447408108616834035444682064583828244704765743699596089961478203403243581842267645825499792146802155597273425795630686211397049898980471920469705842908683466406136960312921748640291427216523129026219250902562144145638229447396726281558851738977323137171995370803405937974848446158367279274424230394733093182227355710350832368665617354234314249740747276637470937354774138411048043097278671808389829032722936496434316370717123940873005688245252784045052159398015688733717423448054552942053564634648383138015614244728122509407058029634903526171171356682459737500444917986352897832729039725733480923579972199609852607565479954471676381464358816752822429101224796205694850643962647739105633511003511363416613173631488576263500119794021782489197028696312930934220941853263355981973792678255273775419560045868353771425481206344804673269311088968154342382846860378442802645186652916586086590027819728018871391693264542609953794040449904067432323204764232004955440763958393297302962912511231417362377960138877960114482512230213894146289141829100926735882538065451249463474768072101169230662623931045327708203191645875655051894404574766247748198768897436708419034338881143337110597928100044282050350722925744985716565476962790259906488127789541079264567229413748973358139381169850890937205397468840301231888800662701834056806325566417910190996739761497125729588334047202218392967004261421004355897344477361417629950349580962551932460098755987403766796249578390725880627596286997599354556952958016500342540175771297777986743201210270739003324868386865096167005980293420315623091624911744566706223477490220953446046076011995343730288309266713949010939631725959537502434945745886072802057344854690888168201984457304331129194419558146143439971775921718991346460780455428655396631263167737899589163743124082646542409518980747639998527317449466638361864244537420020524038895236513683185517823711673466599905704125989484035003329692012678856746214185130299678852163958055877267353912953108382817292913248710754455626782830154940608835012409063616181228846811309431313087960776092867350086990048520064900521283292925688766594151220509652218401717999714688079374381504811814710337061882004997289576622804266852886580009332242296294607565963671872940078959307079554257663035342111322694241063263569339996530151441458037094757049434379433769494674398531641530738362957594511489443304048431797057245850689578994802513158889904075671699343281942295235554396654437874818662126991394455699785252781818374023602026038860556261208833779767301933306226476075633332695208093509487055679326948345287415867673000959037816790543396738339233545142932286359085423737469447561797766365594975927146651063093210492001842700898451938966293559158578583821541680602182481574245682503058086198049499973831828793502350619555942560762532095560949734834995239737269108440040355132160393920803366996964200491491293783186030869040174977250718284862241824274959227953199554305058562256542845236186151151389015696098122188612476095307245986827370422986059848229689551275632481853134793162026973752797172489228834564827620624493077233095192090883633628368340656060147575843901650839722061155076424385970781193867904692821616639710095147135230968201922460315345504494378232452144594255834113666500772326218478095866477199641664740657700773250626217355584513003692836005957057295815112758924459940954715373578777810991713638637139405128570693544588985654561719169252388155204249980039854462010324161274788261421613665110464321852462022132344439541147470911083465555461277239874703467045827165788071710849614032694391648866179261390556949662608750651848412981333039339030619647606804023441249854746239942168903777222523685347579689899857711785564800954853392682402651408493004897953283265468636449761257288979631646885555196655923162349967176748780688249625411724852811170083100878745155907271631252712233445365002975005107179143355614297690816254339791272968898973380808039989447258390689678175174010079744602669843695984286251720255346041833427056643083918858590359046668409669386667325705973142532235418307520247112912252789139343076415912421102495854668248552120264546008723398874073849453436168887210597629130894700440096127329665909025304503483498340805580757907926725327205367294597217856476754137062390566065714377910920850708458105074241913809535852338272592221143756262424779104258573127466198210160835862020744546167537490116722861926878336162670795500139097369370275591265164703818030184456130316247897650963281308795595147910187122106631836116792941494785229896675965568042358888614701010417904570123299997607265156227903516118494045325923007102110365878399791944807878412723939471111916596191591622758113383972474645953036353865416852520224617338024899998850054103519940374295108270747702515167243016483284177884727199617443296482718476761778830176916565279726872669321555198125763583069817282758366864660184925280917655815206641103959305113161626366864955098622137616952339595654546098539181446284367861851835203663585674842482610921412959712416436602790695055737178380136878026353560136935001429881082260480748830452470537101168953775887790972709197345291333308344099980708307633682814162009991948786269969337286256019820136220220061989454812687463841209389315965209725084880353903618887318597360350819545323858116995281742836046843053480576145423040946506730325836596165829627269646954340277104837695094683574579091116828606135388913752337594695637065253098116529730724488357250532923827804883929334764567904192728387163558478753495614638047441625824617226132184222526970369607563444467305437207579376562340188920030112719136667564248305096873745761742304166383817189059884167343448688705237167227977374418293130469973530718553996970314296766779126503541197937623645071606953519688360176223161588521917499281344016695940406418991176597902076465347971853632132252483960128436724968881226923265011628743780198149794075384416183542694473182599883831622588335206443103861417342937595884411927002569504013233896329643460331919592209916925487361657551321464639671720628700695431604757951873376039806868963400089200277679296101174050758984100493201282243580841880922064895601272769923370206937827495254384538463645822304649165583301246455371397777604093431701687821112066784970035110893922333285395735016798946792569248297019449113408286867442630658863154739801643822923112439767249145504899805785702088430519674230266162453156980136017917095636838733030292469576724784053238997386822176500716033607826343662096597361659583462494832521546173763369619102408036244462523885450681363498755834446214883483899392893226945167171029162368730745010149466348724389192335524778045554098650282803359498590652587343146449321771731410529877049492239622128130772272915321078964375487831093862523514390632765540442077369908992472002948885659926422179426814624417401660547271200182198600366915567673762346561119534680145808556503577146635392637688097200862524499461589875559341840593263404433135230725754509122026230272480445274812937398073066279293373261746862930655577338019981917646209377977511786224822805757720225405200300467160136387251406819856137176569264040930493599958291735646999955652559077499051957261937563641175403141479183677590676641399387712315252054819788683564746430015965650770293701540911727856830026428276804252433318771331864280640917888991832086217602406420454732085069020269331448708343588752871873747611350333022473422978887863610336780763254848239465201887221222913538393467725328077749366291984913443947810115538382945184270852712038281960213718604209362879724784459388190196197505766558754052344205739228603799493253251091760469997729464451575797345431030188778855973962064499172303972476340766933090008082605545264424663002792918989615807065064513051360711775148633306920043735919354221711647000165174776053703539178422224084813304100030170303741674522431929938521269865146365520064921838673215120694657381341685182797192892340000103051721660273759458199557299793027184198274152642876184162434884657253189901324842741488657476796338803221987440745500640787710639728131540083958942858610807798922538579575573315624752799450201466776838319300215642255009359532414145201343158097307870488095247367010452490587948246922316815832828936657494003410816570068113379656828798435140156196232065293766822231259917851519538994035727067776899341679172013821464174442217680887535531213582302601224782316237646882038012901097639296163169167739022855374714485227450469800116216977258079236721798649885574425462624352190110654367984893870189562707262716985636226465516469676327742301043901718844005534506361546272295392859193166486266169752177950563606398482578571584298999393238714576915965458289827276518903050305594615897660439451586032020864796480400625020191146551746946470340454403549747184819095492986293271337356695230826831368597514852604909508938599115814785695923009115125187694030871922320536413509776837560067494030501066457461974657741715864800710867438338861967526597651736147673686664464156192996209367399766334795660552268423854191934338969127544229942997292930933091948865438188049777975537617887938532176439661072774493055977455385415110729796999078245229907055949370936727040373963413284244985592946661960285441253390805512655957737627323707390299445658225883005335403853806103195136907382876793675859764615863071819762752984930336860854463434911857489630603801401555297214454141864288527218370772534990270505799392379139286406350698060820714972734428325514037226546031744037191131303690901006236928812597515116292389060993232551663818238810112303514831060707922432866340172516759103234958996153391087368093642584561184230479924770865700516219328016395626181601513706064645049975605723275414032930221523427522652750973602590538445196662030197290614197833023138141306993897837765179089841214224098793454171968002450340103022740018882987000419597692683421797661045929529270393303480278184682420368903528625042262939138631151011359534476098839776834939425209027662864731399575050187197748907746417627062943839786239907137775638550526577032038215491981795229968539884798738184823955755628593550795706629253504355561075578304104986609527089065165216912167183073904197370917296864892184357737576056203479125938421669749944482158008805177340376460628101725161032806009521749734930031864814739358025788514164021759044283880680260739590979517698292655605078813449033874998045912978990956186826153677881853121704309713299968305074188447684271302416940889030820412789742225828551792213841473179028274610894259922463572189839149360786740345973795165294649531973447145771813295911143001652171631899256374710863818810663145109698248139884272492398475471190872017949477419060156590846075988251056121304395337980345150701515988787731951924348492284158241254478408650845339483356549749654708749576616207242882022183474403881129076695377106827537063517806776824646550683139376943704644172431268565061663415198789324708638316360988049936434853214920932604460520631872816776946114363942008070245872934185132034182380510243085714347032706711950504134025194489761777568004587395940475531237511916769685241235586410764048958521500048703926708118454743977782952667146032547812829492890808641680239093311187446663016740286299503995551165399505169832169233599931215515309474296940208672045293452905503021672086259691832465875759722176981635370325689058856769908395915497939622656463935039751605454609346999979747040677102679109737797395711963552941305552309222919550029129643380400849981277827584712751995304685400834068615514384068776291125236338423943016115940545336695328182527416646413252488038175993764072341578561960502091578890540521899307864275754321426428025102353815279143380218028904603924126306996976725891256254926902159058856260369992012035324099355546258202214972721627035061813882543637106464643567641256338361732612702076647488399084536623208948403528519981109575047444414712984679466500187245376701035043635037958862903031399364944346924033142864434311750441978542874615891929374281232796111818572911135154378108609308651651686543378293269547174865926837351115991584903228924429155015181808710368535283792975821892574938419422028365991759921428747397415690682700195463827157388399020153564468642071382600018915080671274185989419263307057896943414763187132247333124389666805290951708868322466831197894658275811424464483032565855575494202722908353709662201974334230247859742091371347805323614306860992594256399186559162593018756702531178075150490835328579095610489407349453602380919078526588695355199318967626600927000231497358181918424274184315871507867773820925134412908733515582636903933671484452907882177395167596269026496479505600117739007192359584701317893191056768437595134994917154051757929039663648753809210417179644980800530760816160893918535242201058291365764714435531385182756602004489648847652374283214500766709288961575212020700393438747599840609089671003757750953270140641083328244377131830250740324029395947319336131960657763196840033379256784691983928529880725663589920928271393062047436236049872404056157588390068406519765212677099944848665656386156364707527850492648895827068226912004185538095463342611109160892987849056444599854933165666589059187114620193712571506698327262633920351115036408590265863830256387723276755123679454631895200655320047225411582208068839913226658190859723001867055012383975437831966225738461686098126374300917871129830214265479756525020354032662761944174808037472341619795562071619599982856276518397112810002690546575173841932721686524606034662704341729407579592616527195667618649381992064709501258682806935066838216130300711913286157097179554347019566749885819318377850423405320224461835845641888015299781725219099050694535342146943601901742706585005903288969827688123411443243982267866503836985282578545964547443730176001708828650857205488045310700202129095041722870774233815907725785020728856859675811405442304010469702772047355601677761831508812953433123480032623526734197795084094543816690761628670667803090641697838025121551954813513606068192779786348347457530853200569736158953477812823306798601464876997598282624649916687230179274633566500535790189939281406255859327410656414457813492469471598225330162984023474465396838926497023331964867655362927831492948107778917760849856139620469683657652494722767829632402964351439804347752481399297973070358853461269982101960129187704237226739104932617892874902806329791996886468296405818963107056688624555473499378551969287102191512667579291081951111484300431506738255532707254846864259956532148852977273349974232724003827202086675330424698478696883979025443353059425211061454765086223934637625724066093487190844329782154789695378739856933689685236484453034339284801227770127526326037874416525277188363937238529988935428000340110928339068272560250629282173254552407272434988001104360896201315519116599218059632575253671493699225608303520342241018611955608572586485400144425574984605298431206251455575277127092854702884423538536631094771108349363989039665902600562070244771740945001194476988832388718565763401195145221038419913660964164759144742773958450904613276656064724458868751391428553264800252698094989372931409171890292370971385896241346341307891213569232207410335577331057903883270609293133184372704629804088042369727112518283377089372593074850362082188001111548349858899512503066486274735059556485535594062968172984677045946651406233929183615494647022918513381134364585698785423480368117375381262095389756921271336309761520457492630670456013741499095772581189162323719799899080558967686551115149470756390832433492245480335190161096448556849873399661324018439641046810176627099663629824596295562110648282154746832652017785827383621258400243981858479474583341686283442704648306772099579130287545439534911818204486864258764579274542930327368951766952698355731138102210186614105592772391688983119420755213060374871390830729647219289333308849632534182081935371853890829438659967863258568493328615085323029079819179809717547352948388763641151303610172311519463748534592870748121498708087625600624081364923317771712199346650249391943563111792613528420388522186178470248059514420780973812124806279464843084546766738661619752315111093209668023596507923535787279484155941621798339317242004778599540972601163350929724479407066868827665654254214309163160203849655235641126642624131825554055697031068732759654862959872835811281173382435477099107953477067468803389355407869943599860221418737463582067525915420243159045793168718263432304650618205780227374710750236020216709621816422614504294152912568060216300118887925344611183156733530199564153737711895435631449795147814254103167044862722574763341180231266646398779055824969792438828667060172262725150357449959928577613195396141486845984925470751886512321733269094945296190901429627361441364388084971209960479976077689295119227703511765270113698827603263026496713275529063130849066377847338294840445318435443204551338700177135317795782949216499508041717006184172223003280795825467404972791702458669275042744538381965419343598580806273224406538431780359239402443617417611759057891855851158268282395478779247047650147568463485718938650928172775819606814096213368403924033590733308158776553457722204647973798629078202429832758329944439462438812502443841695601912596369438820985354208549424407937753354327313579263510383464721752633743498435220740147297529459713460046007916885960802421698745827219276857773706934194874286078501909495478245575352194208241202981956628346148769470181987378792645831388352886293519076003169364253076075198706229583857516197230652902237119732670890603838628178039770684550099770276583918284488550707260863707462710214475188894987398189522625800466402642714089087635061910330603444258199155575253951620481880569816694794536195742846110586752309004488610558484674737616284424694163736942347523461170827426546691990130653454789182763446046971067653465065798119569662476919289169017446718660882100066133385033607233861236322395062849450276957250282164976705145215279266467817464381795645602506209440382364116430230803691683950582629420863757559920171644698241583575296474747870653618073844517962184243838803004674711058236471609763018267064656738712952033105045730217031788218833004696031155266569782394986803905790347931937490593359918702861297425195353475019118313088332255566493075616494419793207421600886487201633087394960267486564188204842841245673836326506269702289072395427154624988489797475093552807066244484194451570703814504780976827569511807619317663334268967752521669730913365185985428286095873455129070409645793611373890255016108081533564029968468164395899690824818619172290871275553320045561139441548595336708293149856402375143211458765017237132939266161848531590522827408381301392017152993969770227043790190407866806633674999714555624964538888542754745135798434251589481383724888594402364892013800338296010132889426187887406358915938389913492319766484292559104717940825275115698003301909573185056821389053623238905552342601013458157204572745651506885290262143337811320629182481105207233370279883826367290799435713088457449360715568062019730338471504969891251975119094522252122456803934473443917267975949700543206436389933234737972740215789513825612961904383187626802325619497813572529556527254733347525813439572061998323447216847655958532837235385140747383653276984598068701658870134069226992773024043149147325584442137155332517206073560317979799621898383633915673600049015662303042189513540349393091503644821947340169203751685124697250925134313816108787210284243260882983392982295482609330392700761951364662443807112303559454877944635243166730793807360701766638588607289528092301414783483553695587885150355561203310259334674254487625874386676633242360620248323942897062151563772353229176565685408508556449128566818414704640558339901991331303875514969035424947766141004784860190098520479107150659972997682341482235942344933172635385920573210087271832763683532631028875688266801793629260226618379664159208227018913872416278620209902184216512818819088537421911665119082574821473340538608419091706956359394437760083285216735568151160154182608852255561787102541029399350674186599823887787491066360071529976716771628257393743950637717643945040136790281038062314370010196749084943092853565294570160376237340210102081645170901084040287635060725647234074538355739630690913743880062531633848018122209315273556537975176957337330919202555146617005235401268212157952067587839561391373417775974703298205835080638607460814890255991298845895917869655568016925901826306484393696588963258317577849723258551113083885010559722987097893331080775164928568818072342952885317020783758970435810469261878999690405220460980139848166545197759362143197376611446836990414142788504605451958454676361982113486313849208329450885254974421745742767034784661573033137164102086636721167125107331360019776526386140953530834313230957141040173749698304712031172086249202617238423061512665405005627537344802887374399338349649618977097483313145514869542911268622375486481504166721924907466849706419013327961602666124433802297677423348923630607879853196377539566009537759813853246116215002602000102677812085778513697446444030346034286186901314598360992590259158780048778926680802860740862655896183608629734110633571864840485397829944038299899788336998875381275213078524834431231790029831338157889050135876556214456389928290511188122666191523739300339512278964248234291923645733256401219620846137764407195249424572177467073838497060652267776428916976214309916587946064699562410030922768696304636621497400426946499135820809426899520917962020064497931372347458605170064496202084138653804340266786831514224062508644387922168688851381255425097993826483569171168929630634980350895356359329311287285524738549660645306858436925575171390559080596184074133985756227320620769559184279575912209895604405524762018422428717389998201847985287025837816358499711315777851130563551912915273933570739456987181011436652055019615993930736549419029359574247979596444230791073945971504295983102373874037758071860165239322512007464625706091838731087883127908594179152062158970475663889042147890876819865383689151427957455812468900895447911524474549758339972733062254383774112167435450171537663901665840812612054801010426860706517290689284704333991676976739525829329043511363533497142191259835007453717435439200440035892648121050178156505199115655552189571988128966273111628214866003281168709651776740515063355341949815778036012844056654320760118113653541601149726363869983377775940559950773130238038564503936042401568515849959219501274358440088838808607450280750708894289915398333195545949807201275807992088067531031190799850784616638520266708026336882994768681866385804910973062317202913071720111639809759267522184668758287170756134134997341551330592078093297219173875081452809038694507494910055207874925726602587570738039124560219374411782136126026126999830998707192770203926670625773810373252398240187471997267330105978598067518880344509610544584838731423031318827246529026870523228086954799818178348732523498597399669112338736086774480776986078405988949443585813705528551535679716287392936159085010221769469759107577480187439057526876941687220294461986274669873329530698753822253661060532130797503198498869318427701038320322786243345092334346833046632845481031905983408005822233440850971454454776852919950842488868852926671359749646470792510485623800006113800805731536386770390451491036933477064357476774146450724337849045670735961178599935483528714496051638686916231513175069746467599257963586822451113410047577092641054667902701872907994026845930041471045008366707784177732680693115550641106410583661739815328447093256678008792772867552846908261410842426010367308289832346374982970678462786929198016815717065044830456144377688637637113194937661350884719751354450103097991821281619576307635342711497660197967612922769743868571362458647085119488241097478848008183520314364124491648872363873753035654649955947372971682317435377641528295486796153965119234047398939223499753373350043644561785652764380061229458725869585140471876418240748016208087382957874291976548234505247966952601814010258199447136612576163513592966120171272876637803915260044301524449897337435749184623370160254578829248119598562435860698231364050444391674533112576918905336322512630813389979016745302206991547182452862313196959921964971426697051696521147889775168091342188185575998821703775462406455371325872282514935749706945209577737860173475050309173329245994085980341181230355022686575068569556169788359102012601666933298165328303329965144765607641996916269973248749657768732105330854822864412311494031180202504730166999774838984060960705102939075676641954921472485898215899205057629126784035814193432386336667028033334077121949126053753792598881020721640014113963716165511198230592587337012709596970026106192951177832861492008832824106949259948440209136861355090252190009680525614621909154261272134655604666127716711739752272730495571942951657346872295452459795293232013520608271115050079475334795276447624322819687851005419165163566716923023571980512887661177640165801171780211486334627704158704402298188554325472569058623565282080882619216844181813145386671492536261560385488394386908611429590263578557989589261675374567519850149671474570265210050825298455570622658566201857611952724463969704509910598722718069199428024909108787627836229937968890464264040095663041033308554056351215667146982085838045987926758005870533873059933697209891854984424922153243019307481247543850874581926414306192189643387215407919214484646347824008949137682070781013974908574825497347713747203667466095524836036634644918971396877246133536704164717739263804202341090889257903954661670697156006596202346395811938197911429992015700081868736053967324889736241035252395575232553921337523783217554166794141077255991963238580451750510808733141182947634741752794303923390897380307584818450772435414650185643976702843696148214339671331293677400187401480298025727858073981519901965242891306816385863920505321745707325462193062130351069845326200389356188348747902527990556833391753349959339468478412159599001384144185788935981542134576667040523811810320309418543345205520218430567459757936356682579751552087956017388907306789379679102674160549532968219184071012300093247114954409099771521493711525794565031299618679037830220550337633649805723659332473425049036932379851390514935878553188846898701652249725433402461046156082984305758069488348831592766630077351257314101461449452754474292095002532966310210303855325262587986845275134032995635216610749870038973744681547653887717977400777355477257058808068187360642069113097629480358967149215045060648045712443871606488563507626261733542021509671260856777409124330756843664947712086324912891156452187016728370526953421244076390808369921277509677656579697798460758268405658021815508189878390682529113630905384710291783414188449325674859896416871863450191196334631852801073579648789791880924774931837853557324502122802627514219873696242028812876671485517319944131780456021231161798428355023212152677459659764427973141883944152082096867571236856474365678483733578421775395360549532799286847770876038100201817417463719595878244372011364227195537260605830201840300906866248274753020858972711644082040802067476519714946692676666919031960708324689564185184968942601132494691627686958804906717251161898308384643222205585983779269879550839743525734237999721004944297040761653184601497711575904278998820989742909720387809685196076509896730154736570139239707100150380217016502437116025753615980485901800449247407627157081536980155546647908910965465371108624715213735802755692082445274274072367213615659721597602626055107152180227884527675553625307275375388577234800096393498863839617541245893960473771095216210133241447902461174859443659616206373941486514650576179289887730086901654781332116773415744488685107456786085712424217298927994056430251320878464551058294117571400105823710199694933837289230120214814216963112439413461779700546663241021279124373191597202398853383657670350363027069589630037757897988098140577529271977661653599914688866895664782631004317874497374519303582454867013230288771527703275536708234943058261478225291156580122389540687716408934660477690029659516166989847340454004877478676116601937983136612746931426854377200090497142265995253065490967077273479182776528926646370787342187583962139248667003303278489759578389327076797439552977798328469754983788032783290589563663316280713400840877701589011509771272064887479365359804081656871474906970150245588307479513250584408203235903034377203787087471563293835277222895643681077334627132045908762398425210807914042744735739362876899010940059184979393737321663959561504688773073731830773891256520451624212981489101559416072754765195840482800631803058158059937148572114656982374409916290138618632069977148007390591886635145136120429455071775003773045466438717326515749411271908713969122885001117150268789529497926872195904871671911598223460993042137024045806019290887360113146590254360296611739258781474745198411789002802304158353194668945618059744699238501440953516262704574617307121132749374948439408338249677068528885337627317332473337441782909581294530075830986491971297668277213780560267993508597164464287319567860280562968666516483587949557963544079073343051451276144050817107831362302070412303042226590746218260620120698444234370139416839351293554130444502336370925546632004644713566966059950811324850076596274306508708556201538350819337963657592816362322601003794987408122586845129221632205146779518649999735011821007897435170369733195770676328925775418776398873722212842349869026913771141856849280175036086488565418068172385785265901715946074510201146488721402858913420565842227556939205642720082477953863390143938734109732201350429027835425200749371639251897440680416817556023381402823823343550898256308959641439029838556108126002376431834506848601848154640692974786433551851523029307532352650531778217538146587027136759409578451346481822972798576726036586163195249100621748632328129556185624921157573723298359773425532827230938830934476228654628936021026486023265007987185356623032411977875418339520710150280036690437584287802366740867251351328860588541410966709798420234295204021859698905663866037503285586174270925906457583511024851363463150169833143827653148212704896937667382030802577725305361875162246723811122136379151553277990852536515858455253407632207596057721308695703195160507772658624733505819713294178343813236133974681764162599199027602052364980426964176754886686105169456389150379462648771919983830239312735479250866299141802485736156291163799031985481409982346366796832215403301667469782120696378943954371170447342911367430213056432962574125940194102421514673253814040475390896166277706942724191433561502919784624443507265687593640667985348663226623309839963612857895213852087406776294837968719256490904157004194388860897987696838290437776705435013505056109442122913717151375471148782963062682915832032015944504538055336196864916085017237379483040660923866894193341314761650661732470111653988297277470529287493445328992043191366820279638030502036097997364848401307415476020901873418334995661570327979508885887355617358913200594371557594923035116000368692120399916693613894543747334862921411709261823439074308915455129830694935426488792726547352838363189335916286059409635001482952492515098676720259071048003660601897369407143193263230311184513709818005235572226440117237017986989375885391446756770988325089647379002307663529861233086437776097383056338920559578972150012766775701462447713656068906367521175695518920608942491456179313236895373999024253467305929414397307724727310166592078384519752068202958405063077346004114139320730469817333484675510878796201407356152314092579698929291512292584871815000993344369798011090419965733519678641483955750445295178383992478446841549691369632870554829294105193008462359759479770546371129779605943441808094054315382370738960508210351562101063769113760361314637331472114231606166673196852779161031791283130573797487865522840265932260011383549404965015468411429088508969368071139427603971092953704134258392122874720093515437828399863162600957467857861335908442192634534760644460143623351229031589929230371501847802300562934921071723992707002741686507655777438692164191373943970639195836079968272266840582572141110337408341454497033461596436293616476852223360898737842203747310249004496703190389238655443158806313085118143379824152398123099756195782241135013199776926453264198614389436545461344186946939720543047328470781449061950088263180031054317749680894421430697309379141121444911600158647211290481164354930570954695044056127810050431203871463092984005326660322003671497316354202514237203181997449760818354203905868344737858079881410062491070863443291384205264193792871162150760672924534608400903538968998784289782247429045416678294707468276634418061510972116524085398191036198326327457008882464429812923058400601807559064132950108037721756445879217796095336332809995285801964919871541199566559125809371184521061298866094768898453560891007622540007030429196956435753694206149977817726462787279148791837490123669209533728274394427262019624582266727375460261313510002221059989196807054206077999127717089483576919606006645628127554581417485036795300448971974841600469983285283852280260858937965623391308263038440353792101361008005608552774738727380056618249145350623678908552929121800931568917056831172171398040031499844386314141485666306996213550008175898087299987680175795384753618169487782328481058203315368776200687328731393732899126508091130230623545391974911361205657933819914722720460711083479055610766703406383336816455975612128079573347750266386804707268144881718804214234968116237364037642197494875855884594531217297969125124815483768450886593682898603508534994735092944116508601688201910483118061114327958273210928540130729346146575786751302958191918787147564855339028461924847072438020330170185590913356272228491703369339780017031523502962892765166947389363010677206270040676217220333839682993127266563696482920501459601733206604061633066658584950035850159107014016585197593854475094959618757910542376386082677697698715846625561749186095229462181870907152272938644944628591573163443310059438888498866481740170740657455702326412112169501859907484210296924397736621458909291984732092846237270773644647471838608516500972527391371176390535312748604040582891199729727092953458112256818798042938942650666298450684555160119464813432313954982262565057736531968524510433920657531866782669469336348942556144791118185311553851264631601766208949944933067924149085838079852234130456617334267648409277273170085734236003246685500471644221408304306408743400344501114224034862750733081670334187468372135685199023390189268987143320439261547676907851772014152115475763646106663030226420553040832760015131277369740117369537206593870429906713365039894499928094720346708164565988588481333661321997351032393208477954183821415196740432411336307565322204823328955787335055322348774167965077078841925030561536261885995703011437464476842243306934532668972155751666570827951965712954576389899205404613109871248219465366712631858593133542331526119986851068443137358878265282880700149963186948250010164810427178852144707320187407912741649409977326314596461897507560315780399090117628883447704781127038454587869681970014401404397332924402331559243312582816867814720512976723772499589601495614174089877409522194820492372536539326655771160142075501448371913985154040297741301349561286464014070493930236602106504123343565420426470348747125796294180333608942380790548863107932550553761102218827751362502245183136206683395775060824117303900561792589748816414357024553053087870837614270473661214930388585718250274724133280145976646087521014401713737199686788980720603990638681747798800292547776803324677489480615808120880853979822539334751543049908999382028810514261228359089472349746708127164577859997318616486672775166780415662490905152126565600578625758624714482671134233238287384148093635135326722046943131242490163843306584506249492890025643888072867411253829638549685493143018380254734200816205959177447386069789208900130802856186340305423983270089741746618077841964977921661986691498591525279408158641485781889251290019197961560971530865165264674903790112238759279982099251286398028463626420026460744084734035118267561780652931432481697705783646406635590019234752923502342744993416087375330470767447636063373987883892810107650707462970847530807862879107502472288286186007182866481948376532608627813072539752491107474280684194561575451194729967923686763457604256629075464828468806414004969452089462780718989530756068819101078724045488724146864856095602807859960329409034627937730837494963488766643969827322040511157124498727632270699148210383193148087474262103566004328308379791463462892659456849012152669620987277813199878363281422961025450265252534095598448571340561632727171371920953033926513457388588896389693377836474224663184834646225490499115707893639452187163851969743523928031812566487914649916162838247807213261097061145443667269640564428976047842849292968917796538382039101587174468672547930424907663512017535421164641788174877923706725193696262868245271533408213280250069470791202380620743013764682326313210381796112760347644674731519946320871968517804404253070651877667798264102645128158784704183092884987779030997628304382329068444687264340127821549367937846291759570872581964287241298940048718365616637724061307464305990621141092657444033435140944404997425282611823913036554454295797178729581361222935547945762085746036915643252408881677104755601875950143421686229689166732995691336596112744756674291140585139574410087778219125940079382571673525509858061144376663822196491308564924854727680332127035671251345446500786185173470888063875246035280482784175873636058959510212583550567486426692603970954822210131372966516534126874457074058986147196299006956594943029451120123269278571321658669711864240109273774135466663367695854110886331433984732090314109253989727298977537713927006797088416469295463821093198076129703252909318730971438493648173838307363319483153728036478927668876281076553226352623833092671374729554994719897822026022697911279221043636955973102461622934138000639849267700629898345217446117907634128163190267246723042074503738353934159568507199041897003731569721684348578005764006012601352064357240180247085481769995185624230203548351946928111912508072542721875963317543096723569740959253375691237567156562004476352136958498605351879158568931726046729078075833018087928381689362726491629049347673392302811878271713152846353222892784125201154409918190561447075257764766455312111675365075570454220589494926904144966195730482466770753191398732141166920847426180583588276812024493163362863492451516346407575392919519027104462698311795120784578805711700688916466442436380645299298403373551444633228106129020650006851836057947476285038919250445890610403735951732036039635929870153490389142488347898956874181634156328441207828677302910035988736108179863849012282590981505765998228359275037335257451790235610263275355199709517436067352710314169571559102132399887779855986079086368280142764597315180323935797044601819308620297410082973282825571430816999632378383277511845729204536719167420079343343649351953775463749692223137212812484213491311789808453347836927138896073398604947397703230935379540142402532782145625433598354793365857948915077018871627771994165747459648348865591632865102208925587405760488617406880903601413181546137539413335842547408012978220574028253681181543435213719864831519963045890041016277833864868729477928495347689214256500817091692489882025699126675415557661988475040152076241031097787884121062555543356763342721715067552903790376493168950503379686578047516432481574218587436750020348483283750105944947050987444600728694905464774919018961293514351949774405611330786256222114321637111470010916836273529218421348100598027115880279545683172765391232708410933504072457471999695400501569663949681110920472917249782054245661527608006595199390670076647818357377814978564025979061892903595695652475273707023914275945261151532955340827646967007458916018265003855654951961629557301404068781188828447477382461725298725852105595807052254039074532530088982188768476596274371729957792904626650993629006759675144894723314269814847031247838169106197491159273121172699405488641812547164995629574629600525460014571863366898877759682978187364934085520025341812445654226482640222723275541819849621150391623221149910547405598588876665335036921250319301959820043710182561145149059343756697813170379267139285632371066471221378548284119773711028335601114739530994546125685461829370257842731296322144855884837258521231089286511671103869763237354853281266437670334879687734424114225829462840170319818125300725726095329236529970441972244567425095933663353548655148445150047026167727506507264557827790668920758931389044806548100041226702015207966816629021232459110139976753925249169720451998767171040543247337737123472786402039396566270344359015894923474227512759950067727345592191693112536770212957067296025780152428105067009435872908506925162888009263791987862662768411523204096134131168141553374814626945279056026672036757989776095280497554816230076980577601220548089216689479920366099705129426938101359229034338404735167736423752119368962530726001203270578435710903487890470133121481469756497966828138331233558366124463149328036283443496172517707629934107526105369893760763109897043827152463834281519896419281577342788021996398079491707768688699953436784382592280619183810110976815029558335541293524357616465905527520665796793721043221003384635247787070865759986490659422154331818674064993940231742830299986680972641252228604921080235859116454615429728446566968887378469777078519714121854349721466115569327451800549034486920924105931502553307724181185290683679557606517833944677362592659772180579873647186303302395461773605053033445382363592179475041022328786956620390112802789663522046766751438734049030126234094768396724485526480131482539479985380545537882035537590634494046745311469607228276161351333862262976519540282757224413424218171563310282314219359007777654635523724024488490117210273527431963059995271360149250407531370635916726704752289234521542233396868082892794210778018023519370255283697397028556136208160999515407319444098771000840177927200876169681742395887075958356730823087445583046808349970048835684543352165019203279190724392304305309785154587287269311370163912614008226269827894851726322689589389710520791283261932242789257483009029356379758033048190177740053398471918245959256972051517798574471703495071361070001973186915744610272243163395443154871365754861658641249024883558228334648219118120871371009419983664725421265172488212891262062158619762903430483030232454829040641555476768384576343748961251551119757488315653670030884172110814754426737263659317478279945191592813480351835283008433119335469130407385926643564943007983453226414195941720813175575658558884366415489615165112944756154254189214284236138045955214490145674617201994472534477423414312806911756373181907564937893924780295390836581458752024197798944824364656119500947481788993036871467319253294911818677830118677668660480717467067783055245242784326342268917218269704104295130295750421235859626109067079328903986094762225334172224652086784653420054960325672635260506163966995762490424974952001450886521100458889729645472138048638102401328934280810450884915815254728263098040265836763621754112226399192811999039006158667728515828716833419591231002970406492328709061436054238654725759881787737634833027072546869078890626806729790315950707912468378802286425081544977432589213850273475913066290055397203799954786211119100870562346855334968633698086768331822307557436798817150890081900548806536225501746260730212765630703942679914232096170924741863481518651601676477816743836847262918706735742191522472790313729648749496312249131423000423423867179754006508663577113081257491940484450883551219180764111925264585988053349163132148905003705460334775077358550203401375875483823217521715901358815379146306487113614985955120958668638013099385274646632188988728914399843906053623137275549222866650041210037295893041240572608458355669620839549405377109014973142232437491725287292088554451864555189079895138007508159997956068178394694346711712459415113029538132002863738188126245310479995686330420731325936376375612849768268465766801050618891262966179755787037259992870098568571273810743802801420497978023711499464360751436844759666985238221153539985203541607543281839314270822984819943657557480282676771472907101892818376748479015656999053678644114087986102614110982855345063027905600743449673526619527863576895311843683342351420549709431111484909301016297779801054418857913586159211341991017852007742356741161913700843486552116102785133734539374122493242164300459094670635669817280871797285972994625846984699158463557987318307538181697183563651461416105218284979805517729528154202936747499702051049170712205132472771485260588576305992444079197621194262528130924110166804354878090646660329307790885104932851574017364179509862217730276800473180070161635143241917975245634039358480968397391954825624336258057564665525726582976475206413653220835108752308778396615054510355710159961180333614662295518785569504445055076006514518754920254311101478588113280131303962938976105833703259438124940593451689634399353812730926891050899067023017870262877374159250447852288081457860851715225151129530676602891374032326466261951568749994735698055310756786308209615692344042540774280101604469336957554593919823764332825574786555668163352480000256816678067213866804225705694291248548646908117051336361952195735568402368325669394507314663106272116110444399617999207879958612004605086729166654999152283671377327104917679649458114734462492755983619581292730444745751855804297244966279535969240181155648739052209701339586380727818865879872481974404010163614261514460279368065512674928632254959438348058321761580226556701583071412417105600079145035377121516684950530220650617698655086485422146728820483173965324046857919332992712244535688515719416848302033642584584017451637940948326797484675069777225003443948376111420997524024115970307028183044173815747945928534266238598667528570371561146616183296950117112392076024452156736208987464597277527023535342928259797830627237445160017953753178618025528194290758240585717706478122100169558431306706576601866874776217633496275695821086732490645061426601272668347400095146501278725678410853611854703367051470986944193557897596347984754256876346833724744599428162379499123227384552230444993616818152286891508563844612744000078195939018806083358457578071238799448469682559096528965776388611825726812895578042972816517599281301252252021303734841281127504238856249389818114460032751062900879362416584605191858877700142186877702392628403000562758951134597285623014399500043458038652778349224697191174179697137127629174565320618850108696325704175157386474290032697519908807863197575528599738786363018263367244568731727428200170087894776472122916629854365736576382924783655570486004692912257981211559580475713544832754226310735494857894835829223638538232931638427424614621147906645224587936773127428528312991157047335806564903924960245517171523186392369547766416505411816626778918729542523233786835299218506842443315264346523091807119509927075666339153310633652108582288323535056602329404935215646694156261650845340958380366332792487065694900601796108299808483691859322298370164303777716545596934002125223857960379149090409529633412235354306525655133722064613791858450170426660169850306686228636800320687368081737567647729440871062090356140906169041726486393752075505747456904612756005022086334166576779365981878296944133550552544661925958590070596640537304223982321903042124287519373905776803418133067665112541091944724891211362137131388894180755030187992959185748572376665593422101545420195756961476627761980558029954151905410642294398321309636593875330453315762449214616533304529682572613352507187051047885012058019406789664329022683387522755400206853180882558041481835706749054355706723315838963205176530971522581668250995347226719296151139826628323455660500841319855048913200959133601627689119599385643703454604850519291675170846123216463249547179752854260091191329378108526322924397370281226568838151755987258220454508688043402028036904624562021041151619828111989924861610598904503770147049285038609757634680449234148476058452457277187044822099825637623848814539237156555568445780120841782101510170395914192800329525182899353952460995584716479659586642491715439307618163874767767757793979670388915082128212397721596999312076165181657876393195819077808769990083034694711548555847888213167455221876667782120344975572868659329760893600916147495892842482817510206030558675221389142999841580738650623598693623291781108462421829444895634745791666462584540497037978152994889779317835212563980554819677972051987624278262011629955707752132855620505808042155327930544572732680799613164975404306592368405223347946377009617551063577475204918129757095060733714361785941450884515144468160384705491537708110302076503903794892349961517110600807700729996707922797797790980047405376131390975945085980367907331808649272154405108213740237843896555056320220237596499135028310276886183530401518283102204680878274458664511520520481576653440059728504129532079861116030621853202338396806285438914507479907945631198238671410264355982947750463388971438706776701382248990388615249748198102790947123531015169247854435682157430535290155585593459519472260593011852343112551497064648051560887774645161374822102667467449954334624390490847219331357099331244653619911410615198360457761869021147676793441381198642742726802561020524585090743233940112457558916111537938984758298163848608120319061925437382847379746957412561179860059537371905463172707132268815233178202829358647285985541888369030810560241474786180221593158821697388008794431432921966977544656700672928844044491294858032356622384904933438419503052226847073356049342190044712475661978814664084467562608711251794036852772386715268237721634385640124568512411922321042039643078910159429835283803916266298225795290456448993220470461564475958212696351388339812240881159599360391407764049462408289736286066450000450700821776022408460969983844555425372097525691931493128970478378767319891576634102041618353916695739581174880591107830253455663012511353219591392976901319632934771537030929430112283568297140020624170480453596808343743717889444090799305167280272329905350913046681135118181579765558445668709911985583700347897967353027813035300904668104357620900714052717849008525355478068049539242286730657951891084851945581771996548703541848057170612099552944040974950590384042321146611045298458077961655493410688268784156266781143511127033558397992269897655092664866570710319957378967415721552165225560912615448255629197814948831719564643741969225469854515801154839530574773115895683629067151973489776606066628165369941862408468897739441333516100931172126410793089085529040847704433460220860780282894046022194464018890211895340580846858596293854034629968698846604948203010430044860612006397624241703105315563585908341599968563049264895140768131492916471396334847571150332985926614517049019703688038302051752893810610210584118375984060022331091586424513714503809024393315522350709868880656859955289624085656540054501451428056631290765332266076067328410241811836296965977013252468467879458924392690500474092651849077665783988762544300673338204452541415816830879532972271313112006864294893935778192058806685269963931685048535045977167688289304488544124039433683607124663134431571992655284377223740107106774753760503435389450956600776622873337532990980448601655582568479458227582863962805574607630821900293555739788622711598342034395585881215258493084803474397567990366952208340167207159168622831697593679033481427360307731992824358894437713895069689204668225691381608256511082702109111368695649004522085296395643249065382174599765434202480849770006878561553170137043290794885859517543479144594496557088098415560265450361835144727805657224433441977682622321170865357675507978615771602760810162591235869328067811756409797627528889992889045664644494178014580182702530507138880959557379216561853256096500386987537210594976667525828529164920727239929764423687685356764225767446093531580302808330564775263598314658314457253221313308548928730430911305632360311905088166016925629342700599271691992740454254095477261434305639242891482206984802758765348223191059870249507765408832323515800541636813036801364218924654625843994733438119427547726664487906597413103264754715546984653591554238281374363335670860452204986428260009844713591017178325547961453572083576782583644538407548100090304060520610439473049780435354266777733565191827778551352368326223727079773024481753793834605369487378220592876686725692389211124486039593040692597430588702016510982867061827017922272427072340758772873549195320264337113162860785320277619893370086466879722045984981830325503688947153056595836575408943215601525158244779595192626064332075470495792104968948650375967500768870678351944424423996378144893365634037530819204991798369716890274011277480110460830938023282969027304821102605872679290620769898321364424525616948416316712366372658107399714239649756540414722118547393159121531966366520165188325265330830574490707041273791650264776302582559669854311497508310856294948405904698857178939001916950360927320153770398442259184239184651966488418861777491952547305129872272525529433781295041880083199843141038724183757221362247458055833336869864208746359301653791116673894257587335341819874898435263718347144432873357889711978074617221719240294378185176559841005852355182878161915646229682688487010150428829636500601655726396079574945262280331409556871369848671078704914080232856100716297555285928379819932368135075569122244208781764124470223356434741758445184751194413376501100458268485119084738037130977511049090972854494034714919435638824241157104092494554785146537110628697330850993544921384122809995885720503584986917280263072377988696546910816697711451687201654691394302965618273664484018785407932595451318981511348079908844698363055155150663984931187497548847247780989889576024169544643258928360133488637046145561124323339048620257191282122755891689587384413929193403596724879432379649194041926960069240267706365335424353369946936155017468759383733617989866136790775503998754014476557620502810957393096297127557840678434271153142523259030491682592794059802548401938613438914405784115685682460182977068510993488013212573861723051310577002561963165679871440288554567142773705848542289975341934513203407526443148753795132994239990241380959661598893373384343901983538206958700406045443019702128984523173278398175050001080786588599053496955249397567424760140766104254682086234959124687194867973052711533486813935653119646080617797030937139866096524102634160748656811775798945067016626578117954766293119281438831265577722834739646630792058170637483877652682773856390883921375292832152212883474216824467528703447287095508738284122506100537754226648306385679895621618156020774017746002131954422730517657745895572902661164727636087902459463821792888137140161128586937469563437379685959509536056453323796443854465496178613986920723077667016065534523751021290101460559212120264746320787752632341391281354117490702059702788233258601614445460986662437977744949625086562406172900070716682354197930008824876525084496522656855630231773883357732558506967222171813828077036900393892719430583731048103556729212405490624232891115139973187283237720038805256310945468364489311385410395507727248771958378970376457544386261073660738250753552869122027165783368776878171329911880061637546019643572449262432178062787296732318071332409098736878318629593394922038872811511354174903173947813595035034982231757413436923158760083346888788060088566225779588900581202646739338158517173623924367874447754806373917133911507896024723199185874094403662578528153529728505003621109720910502777356175460840685665198392776984221284181513166792514030583760874217295956680979300953737526704849017073040142398908204007859885137097503133493278686303635179603614944039369294792408926178126981044465535881587739268703201644483897327499124369371712202018616004520542946395348171617883672720375299211845405611558394742748566390496713668760457596927664476796783781145296435860970566981414026586382617323766468027124086463553595760354278782878023953054461690403711996144958075586126275332710954937058760244857722797459814327539615900385534479606947846242791319077806027321825688296635065985179042744197370869088695114348807562235026834014337359903045100820357632979029434857729350842791347609335887750351070206549907027770522193372047402082993495820863668054454075552012684913146905021537311216487399384254175504944775020430337462049936051104912451924836976157153506044586908578766231053453268302851587087679572292082818901990968784727278738510734858745184081719524177196058743440832393077646041256803224692658798995832105190983171191711685395754634201294724323870439720669187465370052519338086051537512825032146611575208142963451465323252662543742026669574329291388468865007405691664554405347088817562760755261730595554031455668679343768995347303355832887928372617649649297402705143127318358799020649767034265735757672451987616999334123464675928179748294839904144233221891592041469056807773147476970324269467553089572431768404745897533089559938486580469326051086481518911031763198458784783548442881807875317141128296374391184063614158094740267203846483963182204862530312861133836271101296553736543672037441165067570511283671354891716607539376456940738043237595076389466216785724112949143261919458708306872384595418122501497971310355946066206512049750518520916031211576391895297369460142758402150390439896539415594472390103181234630349749448090193092082874978096440160088227344884685560383648778953370349997824590403844966582986502789299286836932916407010552027837231034714222078100728339540280179955562159722343628620927875221624896630937356701363722136023446439982780656272506559403395674836397234867003088952462099103173203628743443665208976219914921494371523018643733324364999933665534095125977724143533372197437607062637148512926710152070542374665991171018037319424147256186245761035659411910810974918977810086326371689690921899123799722108338097393979476811030899097533067194321251662554787096303062043936606590028047155151308982775397050839619930439182678590118153860816515885125769168990525879208570441388932478845482166811334457979326386968041646612617203799641167334964398297523604488359215199608603661180867102850595347601946599073348684063383018340556167031047404465632863066554031179614072579220677821042749622712054726072934436683077523820769312466862578703402234039127647311157979971964489548348873237542117488856057330180972527187941066496683962167754684110866514151621116806380554346611382455495183292860055053596728110065198805670821462563025757254039022003118499415715316342560292572783259529805690320676723379181421357528916601301849274232873402306480241412636139502650870302307895241197256668704009056849692588137622438406006310462401243138955237600355267468078585435527382026775192359941918881369678961335636100061917056629020562419636360189820389478993490120452172325052627649470597643560332537507668716440687767134204752183209997021958333442444075858759592223760027070398617210570012769448036742644603987157331414895507657185824684019546607628718388647540823804604432357035571453327000785626649685790584194109697262023217302808090557726748185745646420331899365171741303780730378722284284955458414241385657623482675051900689421422196298298867507594381543192713192368445432893461029611454054330082636062887289732147951538174698997032027363481973954645772950126941752291739686917306521605396375424712687212365553318115255631496702600807514064725993577894028978532674899948790599053892905997813877585457007515859752500339073229651883263657934641214387092143286908424877970288175915385193601681829070184767811844938490130529542287849824067741895923658795984882208365248797690007969824334974201490681800862479582206135778873287119208069538657267017160238459063936840166133562276208891171235697532166038957977274277491814068017016538236420074647581482060437062021471529598440801999774865280410045632322346097833055508007934773797365727506644365360111285681835580283627690145045836952778384518175338476402542285274792887228591733855520155335331060075809362157577369804383406028380646115191692098644125344800426898126949484639315722037932514945706481864320424870884482719296673336954341767140163910281097946860421482637569883095755815624801806165193386092680372879933569750091840171688610568879708611943323171701172456486140847010499201904614848399319163620598917777007398799324616879320673077896475550811683308839222061498135590202768968247753042206682247361417822235360951520695615597657427444217520522724903829967428247766000164511735969457328816174444442231755567157121708447217415775607069197548134690923773727981541693730497092767275837335336500047175816753060686875110098048991041216969620104280451362487498493190183977103213209528499346449239862059006226288461057650568544940299600362179534229131975400857498351329403453061084560486395571184806963948803745665765041479564580047981610614797191389619284888137917440759028143344323371734059280212303419669720494688609549322341603867249103741226484597620900988639266538948767717599976871861949850962998485066237805881837219831852218683342899171792421001039619422065976495094575885211019189963580505628183479013261340192487160044532797383759326177406292029189243672713229766739326875949198553309492697894194109143946194855937830814141737312476902947771905491608204443824321359305926617063542378094717213751116626955836442869843627022770236271780725655983737236623281769443752710077544066905512828967465129750229162171760704346960361996143072803851221640572908826829509199681839884198088847147461664710283223707909175663830448535921682137508957050087975299878554491182007887349488505671318045138872289879419312644754952623063010647774938967591794731936958513972451471601834780765475075075052519310327005313295307692278275697892883170719622237138687374428020514749048397637470644845193729509095782545514578122371356140210578108754360760908330269238970889309330686203513805326399870081474033557132803098221993214273635061311264019261194126955550934323742282454970500803883339534511798181288696887328234801732296117053416533549868911607401647812735075329248565656001366791997615806374735596578495269105063803158163272694838548302362969839147207793080204665235706877317172136184039747100248239249476130411219310515404315946262945703292365139117687775317556453941874840287341362758108379751809934962846436682076475583329154597260890054369960665909296990559166882292687051431531521308295053805472213502617892271656174840515944054203642384128424692819851980198832291450196921705069589662162007990239326670907043849197592452716745111943134864416097595858728305885479955030692932327835990029958639774031541079195239091204594664606304813123399587525234892391397008606408499166807947773120009225978451214846283700379755731750261233790724401477935607370431708812103851663617128453855365727765599388359750722864111075993434536589651627232587526828451428220969625519311538609546804097955593695357809686679796320100074660886832759734966122958787639403471086553022888790692420814854695699948836486030354273550402108356801801061107453002773030778882597602470918643594826199098349310924267063904225548578884349711570210693059203273973196772264922195786458741679872410590570345877263394011331538767394770719807286758155034224432333082483163259711386798584678955699953651629030245630031626350639522376313121318416012355949155811674932992250379118618839714151057117848922195422582223016404315749233752766603737804194443395066877829129814261035826221574741283289175218957477365642882018037391431384279844459425408722598231655483070298344521822904134593815630970213835958920085746097830971745751097266381237926237210646170566731248550345537901767648300301444438611226919611920943612754008399428283925052955470719347805409238681424662650196993228238740330594939429866903574226003868497926681781073324407557841504000186964779005424286832951709872972024115710225453711988273411876998183993969369468632118364727211432973608998322984500899828100995759378841155573490394774636250518733437586733180192057892864951194844339970452270609462520955171284217078849983522646211764088193226268020861069941502662103977098261800768765866514157513968846933078662384950824900183823372821936421755441890234587873712235340406411378844165697605504590416712631785818950461392706327076399977967528602084671050990611468204423889647216024248618946514298029775821660765261245516019927310698621547793697603577198804512647833966375509435191461593684187002283621269068455626360099136546461100361023803533323596199652632247806586214830585558669954211064707069686262014423786117913491624481542536530256376534898369778801540164253330490718731971270311319885594423541552512387581208620047831846123358273987467346610299561576091602555098057755529485800984347083585597602065742002439847967291079578771877840016636320163211843213539512475557324310055162988025375159442024347517417197503990900801892628071509653861412815619751995693409305074614375194731223017890784027505092067035529309209333941593897148996130535381491021445498293487771064433401146949007865482368586861962137347815922988542535571211215904408888904273148406269168223761271455706732770410938956728875324482927766147734980117063608663429403754681884278045699240725594368313403078511789794890770593253451075966605832136407794214958756353028439095899027587188819021930821636075819147894016739116833105064196363701412338501332383109938418674020617708662171249772389770580255156196155623311267406774395851535779026967358786960221809409474930865904974797439671063197981402148127177449954313622146503872934399528174182843790117068897247322361845314606942403347883318600087505278081441372908458786231845346439581021208254595763315335167448502108605149764335552362083937065990719644928864007298134281041695125450034444612736534314490617893731823727681694056244375910386556814590187851140845402879058517643360197293464405942737159417313751591910413331455789402850863920061303200089235252656262219073452372689163162979567960850051585179420879995118213331696758431670715640736634757032729074478761250891120520671060811328712127273553064280860464427557545007626313729631023446541166654967797276308151979909686012019506751205116353427409932561282294215493661762105720369646503771314691429810938268591433851706085761086683197365601785404923389907025984372921436879562627400178151453795932662863978554896188548119421920580561120077471929273150536501157194376597944486511871538479541989515167959065116161502501818486060840787258889784046456611211455780075517719705287660766617614241616100032384283971953172089594486533232719352979149490807855862032209372425805742139360726061892368038896984282693824401281384709007685322770374854457068864340478705834015577747873444727224954844939520877010034854699445918134267066100427409745865460085730311926106081979261913186433378929702008426891114166664281103103850812536581822694590125288556960493021956953647386362137117455956490197731815165524235946639064011863925703635801336026202432759796923375811107417695547061815529365033133049812754503924671074720374128251427560064178879611228239139902554915184600312455360382421196678762465543825483481893612628352999786473441925233446195369429763525382410010319799218724097006940239630265113978329884269000485012804578018857040134923594445471690626530863968028467974498105822099007821089596587932027590127014149835902770057912603185560562394671522886569883099575509592765263974684808263906257340318265815954037689931055903946135888170601526446367128007856431730041509316933366259973434093380423741172589975381022373639233744033233987507223360284482508827161317498441873074015430251912406368877779989002679069578253971129916777061213828334039067168047049472595707123240665141587075906264710381582534983233363221578371013794114428107127761048523923956087521103400709954536056951444671143612698357341838399697402045738385678640417234515652300437385321788471603345979697424097359273945840902041195903223444624634420794783564107944307214580490224059051338701562591360031089504589887158532997521525686624159481454477361994375649165438510668619086493996892167447022390368657637149380142030231864105979738247828767537861647089895105672686910466158110321940791764248040533659756124348294324335783559693906579907931528185867143303770616429348014731146170246327870815690725990545793670609883602729281406069184046102942521980702787250339738381888416923869672374834656029833884690626274428540820395855437095329434048635934005111222881584467950601654517525774675866586225736662633666089961405004319109504894387856641960950101946041493201019845142518303247656462710296128374988073366005930710803189367128088264410448720062165712521607941389936018149604518632095219132064139622621401000973367641995196170473233623744199529265808321277110666494919543834267669099837933469353858420417407003334185969549198354684799106552368380234106052108694469678674606943645523593858382862008580075690601686239584768209739780997402719892091359520889793753489503576236867836425824432537212375451643499407894029230621782089410324078819782383164406650334638577454402132882121322342171097014466779280333180910216103293032272881069658667021203510006016234819651393193124833171786534195884441567122749729831452876891623067191573567789223042834254931386075518331273090204513060061786089398302628419376170938617432088386614184695508241128437138411956627031373193153392285046900866230632270706581157084614817057984489128361431450546603233581871598482725608478682882504786605779327829956703886196734255797190154761515157496017558311931449445191729271286064836898278259473592542018198518546787168171906657408262216440037166630001583996253086225559200022162784975140838790940685716171816475866765006432956144720232919492282195416969284115470369454421420242601806710964840767950725961477818865679566637636872871355810761910411583632025554194324122656058159547590893278799078678728508602925759895067130547339710638917305130584234599709624296037457929208643175844825325320471239662547066673560199613242671290073798234942953184811549454904095454173603012150769189989699935110314134692541138386244978899689163934211584297158366888236608102005891038965754669216475746400736366831876308434001885741050170665017520460874131348563242911418799586449895599125573214653915078856117032624932607301840398229742288253640407401727263313111751385069339047597816239346019351874630890789828215292907915170662656769712322689888908430371351808431602090150770237219141004144451135270562321355086389677698437507268880106692897843457271525402164464077471984844201017750656338849178195070564514058020554333915700260917526234091564169230827952256716230777222654878562732440276680359561776020462774213169366805605918474616918799928192515383562937837467164669796577053275583748280413592139201853100888689295403883131851967037940577878771332554627473037381154203449095774181860541224148884740451217835975839188739886888651220742928970374450017655738779408015857036996355468473029533317046526893958418515272580083483712912824757630571696368567082810613924189883762377636799398847890827974827773535265398678698763190239780183162111340427918620879882727124785226260589521978586864957521041024467012190098674493382643178366573287407949788341739104534388483863356237047050646888300735353231210682986546168977647323521381978831787778220297689557291950254874955309763943775113479389879745690179014160083834191687810275771543561145543639029043710355290313026220612284115392613752374354270138115933279937963057336178247694791745285524647800472548241857985381770456641816364172984674447213787711500813650756698291322369790386180960387570605849062079040770300170571816186644783179282747439631781559216426054575029271904768574016938891301880795901519313743417798352416937164231238918222280379347692367360916543732966849909603753345646019111125834015794914559839299488545557161295473885467723007311511278009357825428239481006179284219636174319841933153722371495404039976842034577618304813268159437465124707134636316399153089052649401300523803408372062060280233410427788491753048517095042151113829255220231135177039125677402877839911892908567397225656906869142275759125514913551930043206127856749317530918539049413265412678953800453554224978037759469451188524769841057324815761322153802091139649162454403026753264369419854193645914545505365629806891635755229860913925185887584872119113982571001543715476060292843231395339353283725852659294350257810691315648618740166549833328895478293709411838803652903403142726264897131397932824755582204995543466706423300631147976916584105862199545698734773029138260221293108154141639850297047229088304084841652437782997981481858253636207997635973266987045311923425273597790586481389237733693517692932895644570540715127417358774377892504333082736185733711953478967594189965192409787081897264818645252215362308446554624081618847164588799636750009445703463929585110333301198761411388170843460908784045970497743108884108160878903895914962727776601109733216231332139997939916281310743669386739759088875143712191686983321872400171615075368044236681542677865341214502835021570688691816622587670242174355139625104286935801655503237685851321471912323701607797442693347035034315500538732703079905015153842819534458565209658595523192491987122135545238171747105656269914626242364894192475190644869773867413472200032041994832824955325715194460668066224474641955465503625042792416717215441305202182840184065629197111308718191392063456088091109330588455391721936038801755451119075104852661479260052330055493493585325796035411353299891201053883977489314036737092623822564684252556938833660153277531604480381604207718203539057771048515697789631480668456564480477218518285850586340091703044710362687066528580087131607602096512263407145706887886660044269865788069426369114616850067262532975529593917458044144411566753118778142021004504516401294477384945034580930435360420062869877203733958939293021706131919810411811967841568544747313448527809629246140809261495871899358527119395588904513467064026026860776910339200105830492980132492314931140740125100178030269205252839816495157972384507321562526935784472333700117328313238306727991612741633202382681929890326874724676157262897778475862996431613835670561229359550191968845896845212437548313980028467767444776191835509592138776660786427057343252491441789776212765398184929315439058912814524098612084551565261682389681272559925157857656317269098486653875717827116964138624224624597848795748109866166807579850553320034646046692817403793121499889111641933971682279173980078735662892198374529905659182526981838587575562969920421829508125074241185545192726419900353066574665480746989189257290939982761147765642382551625237537896508029624785721382717677414014608578321691210466709056159459007300744967155491524483775846415452936763010366284197788185856570608652577512647678712326424184542635338723277876818650609805994771918449530797482033117613657630184681294462822017473574670313431818776333941452006796792210885261235284236210391780157498915154873640533260120414761077638511749115553431480464411500359819429783527356347467831045580451196650976312759295678853875200551946149087906737320523875240196800769380758468746326403415474625831492262120142223011505113120854846946824521361611892718172989808882263928609964794461563862316987924915069071522911926562476451864604771959726885648391348432843371025537520350477881755079038928191778740301968779052219869852917947754308159714524551495283431207223820402566410775859000147310137362016338370770762268173976605946286261065811346358431360308410791428042737856144428003842771806162915318843229581049030642351659234559474518322816615858350487488042695681445476600448805108816141067876736395372972992864215591137716608198402414539782385040089647400156003610281716668207920948584423438316340743385393448440532453099837712437916329410184149033952997233573874054359032926639381295619656799349985941644332020461973258721479043689110899641408483814311000721497848716274984759610064311140321433038703256792644542917121512793695601820645733091256600816534919015552741015623476515832924850864454882966702201057520125457945343346700597803035519318729579181189092533251695399835508758138437295651726453650966927670955672937430307654933896785508803274117013276511436512400987853769423562312515239997160109054849946865277514328902742360810856477208024457353782789814257532387224589086162915568268287087140537248537880838149325352264839699853657704063701615479861134860435294552672078192340010818333106979881902860266235191607367455345173475662006909267117905619001179371762724599872768311105627045655012561810223485092568210653219401187609360665589663151580230988482820768799886486169743386460492158573127506715657951300930013375188551398498384395695121846390664954954950122881879010186133121792860387742189638575012105217029564487458019227573743210414620116310793946685638438669621696711285083425709305805754383710652582811569377104496040064242801723375486032695266784438686468000881319104678951697051481840130790422912049337633871501241397510903287841403760650388383969106230762032149960843393156066220050940197222483667764904680186564010896672070859934919960302380733182706610285051647947445938272893237475612005169751617926145455767584599262319509061552392094742684208866249272249113851830333097821520138736607523218439549779831111212575572757958863148857555414724349305219728239923583773191466212993299085687739037399069725569884290340588619331312873461323232659370032781097253104516679825049075684961684344815454099754438350864310721842450316754766382712790387206344650068541985126308302153667797268692534129873245031355269300625956431126118650532074174047216303369798302723708411852742054639253993643883966616277613667463580379309308181295604631762703679419473632129155985353383233925577022272564454642653352010444432535911419119288836344631817710819940790084172596314584432505461578952656044834461054360187925614500774089897357111619002059510163485464051108498880080740817244293788528682567743187164595957086555844613248325463596798730126011928966589232203356319172752031521250221384732495127435140303895338869747571576316460042043151227236872398602882536554770949050221431235177905965891451596432293570974924024397096670530301287702401609364399541253276937586749643475315923368151556412619516900464357132247221574659093512231004834413466853532794765899016226731829720857203311574290707408021474812083206142996566208112961086819274356890137107980484478740662460793751155298558151152557107989494859113250237054564740917421877573517819270179633143558251946483989869648341432600105881437825687090261048068080861516011544012563626877534436548005785255780873969389962381126311820430939955441292511724976184556122548970152099825857286909444999552690917073237223140687802725540822508211390190232453482138053691466760772233204487383952470778052878426875025932281900683885162862133783002791923666076845291542880386202717165829678347534347558849322353898657076934122858944321426278604288304169388788181072387557768116812850598411947007268513662351395846265643587583036076343021187619557562199038050887890948627563787766264356579612054948787751843874424262892242609589556881361993292110795655881664121585710430088116790544525390940396947809497618756389629671323319738464673755735574014936342871742938381877650718893020011171077812296243081040598806833115515559089617793947842710683354604548987117984500803114083474984242352185833667145198436866005848521060734689868681290618627804768968654508008681127210071009316007235879269609680582323332725486789013599347314326815301784068794968005541152836536162433133881249537519195303057521686483160866179749852598497389954334167760864461030506608483361924934908828392753175244012867663139879672248860815266851820318644883612216279533577355248196073107180908106374839067069134054121430732289827072761681737045887478738218111429502476616059659961651887883729134595661600195275701459452702768900666017652680341709110760420429319690115102852444596903542505582133849884838727877713394323202342585720183924822141425910940365325923867761532547473562224239488711189940182395056210042062660601888801238868541029282828119294272122384196593996526200522720215803441044214283571820239318223872449176169660878657860374197583841241694768628331303671006945909997512365551387136349945256572537045854743260072644657163316031663338978055908222915472558410351277831698928111994617071017484240459679619400541576858059563986232339762723371855961729989879216875131638651601460786133675846180766020899445979165536026226761413177498746286092331438296700325248170575908400515543998664117503400651471737006796289702891574526983623814384971567731847243975684320205778265046521911970798959422203938488926511478792128481716248650302887249964565536659207536894269124311783131731905808861399647857649978078985895692040779939590654052170596542643186543772302155860305257835152490166973653745519504776540649322516770432714014421366359117469138966906302523467563672420759661640610971145486558199712194572980202356247866841828001437477161371822248468324869468105597064251465778045661181549449916211020594458858120070026392487815282435477194567609170611074985941019594229832672550183968379740508171894315326806307204124150677046152559088060990132399092989856968817031297313221238311410573485567739871289749043530893648197471607446178082258171193294459885262819461156666899221379564593168621615009296603252346708817942343828583997878006344690298820894250109481365626602487189500902771819718916597185635980891027724746051187661473871321055789439849481284312471580470413357680156070054942388822676902966469436560838381691616606371868877652541483126671818460184053862510748207805799938707105818670836107857862790773564012488105565085296698104634502106199395229184430697247031791248257690582844828022893563680359264878290349092451061908836300618774070796281745950020089671022486743365162717936183117241229917493876171849384227257537954083224947138615291643479326565042142873753609714245538306176336233984436469518829407106316403966416258247219894458846103076809924606610735088802878582865064959581025193106327932714511123731038264352736607593684577080065653228445101067163087056846920757299969621155284092858374633505721144025888151908389433505705667227778222524730924387516217392954664936922546300218794924756969134705646146865306327880078699953423349585179485972351665885733181261618095932873828515601336520058665861237833583480742855367173464800640418358763695997192461161337636028176212996445896982308840670566607241713347150041871002172283975744236034727490988147119061989283826809164115680015045007768031495094839246177956091905376762770175974158820711827912528639921692419117179992897926973503208822093154426294655483013355115966266575290658265295379924408376358523185002167903967330328699564808381422928471274142635268119493814314439326704346603753636281436208759910296274524609773872996959919582178491185617116403463239376566455931413358693704803720673379398133618730754468540145653086916034892352416433105882980213695440812427627851170756049729182876588613035896502063797152491319919426981372813285685567506944460944659375979348838241488774525238543532751346404623715004205042339548373324171072910847766208168862073878981287408016004909468680133358390239945265867050767649050293813210909552299170225402420073024434575532787046964266796729473290240779989119233480603806758783666260841495644816761479895568950458409262957774878405146779182205790210689541649059207461515497765434655132388481977610534260459398905352785502382235809071457168166311378332646543016705025164561934525077104518855320324154976852548986592549301330265823488388912953596156872333209563001409832947790003302915381075531879618023048006918946101562531709311693649383004775312909536066552683956014295095587289985849681142415091641036598763878155567829244272379156286244746739009164127586653531861717203360001748003060887258899122463546726983892214433822599508888420972207212642823129690348681273157860025772776797358826687570207424888072107789600309104849501795169601066568480107779126633573636800220502514583594523330096370376884520807395905447662879222083474415368182363416016087287927745435963960359130962410453153076578521704021515959328634073471400035054713011890741725386028770253239011290380952891174884992909473458301991404108766353865863427547393405088782854430562488799038592257329944916360493972245190151109785361161667454723912954585530728827344997358747363311042013698897656341011094541541403025241806650819652494922585479512710314431909728439960797122239699110647340437601471205510148973646135320671642249323039134835770015175033607157862142685617231947892763756092871101892460818997942745696755858052995763419006549308812218715351312917683662629528825987423824532722658189434822031587688081840759151658984367048155838694690481192288238968652677294994153926916991308139351049476965185113969411120407660676986898747905795233649149079137119617016981259913431142141737842773104742326431798403283786724750048759217368069890052947496116030233910781429019640350240902624536562784158186508319514783918190050903847468433526269670672015831883411335992589518029713389116534222925656464123423626016909565282577385531806448232488213312297293244328011941181543380697309794516744326179384794135582185956343184001216812258592742300736660246065138611163179487383458061454905809643560938570755691304813829809478035750623558313098231983324782215271711739075232123011704419280247389991618520705077639909459672653322146613329939142058608333229422656249676695349000961602482834331781150357696835260016588565988407059664945636167512394710683621098515639353331482347463498019359600675670177142867761393075306124349890406244310667225051627193625786466491321421094772837416163618643594138683783706218607098751238731179401493158905336210880678488929923272272505730154121452209848226022088754209895254887812127192950249086803862722372847721925087334597161680394886143141261710192538860367590543119979716340999654428866349951594484608264317212289923757066045454621475961592784275201065319406530212520431889927976938409053497475681291300488862145885302506992131596850495520030668324317908034879786387310444609706224268255706505241849669990301440952444571818749434958222291245941797915318813145837043791647983346800103773752104914629089772175445532231437142624804166772784013938348153828432353169929189810289062320883468394719953075652315698293973795810408337735472325617777529478023082609875718921549548620134274142934562545558946269886641345882500097923709762657310424030701480107602619239383539854004354498329565612410831100542219680956157757116884617462653925862228507989578102878850242890711447491322295473336023901938529346193601754151262101407351504652293827857269717859373753189929458804675387256261642174055239229954693377815880492243355548415028216289000501356300297673881216659273674965683883936624232453463846385382644467990008319445621229567662035249081913572648056058106764513475659714076740634978560239438631642972010592113130610429177149914482644438037605742126082871288252150857454951558777132608449773775866428884046627725294367129187544805083445929674660553939469990335225516462615065788141772441891392955395177923342547137007097950457778570003268874374677256979683129733823154893278105953948584896479124375539325166596840021488647760801854506487453276999490320648267858260761562461262421406127280807932052208971923596246590986148948379963272414194521058138192410348411877486402166890312812532254317669656432572217292951295046200758996740179073064325635698026952813581075983559013042209191055212641113768103063959076443801719595307288168178119714245660747804078349897529921482829690392013998566734226640578415227271082103723179937288583590127969358571138170912961605953919569615964791749542055571524049942500169680810981294237539647804344479273066321970528734094943789490377450431922497576728367170806902160719075934289620516805502954230859089504506250830609866229546573353366904036305009753786198491601643598004370559332709460918346889912662561394779089199575986217998911802339198603679459596431509319448827015201866014226670665656656365729337178442388345762904216594698287116613807937526440893262082476523470709767055553377300230668235499737135265530851856232766449526753000528129905521711608224770402065531711996797043524303043140080565578945453986654107130656578135647195759514680409672213881342988119091813894372054136280734860331312597487927677732341681021264282253012146894623567678239541417032965733323956816214556621308967886564386387056473958541262521814360277356973064816469049098141604345146577562486219838853000857832618374476078737373902227245711146164279079530409964423367962677211906412578865481262362152167806336912794891971413470271197641245757702663134285690501407992316551365057012995492484724720653034242444791056966534430256108276641507908921838803864087906195817795949928446427423589246370918272079661357065685548560228635166894221403090012855489885049377199507703987373475987227597557083881927573211876414006451674921161670183710217752511028117492573685452057677955630591843617072329356082157721733546188499096538916089967115382370896870155030087552845498620994230613545299020359058535845701437053985044255041678539843685322958418381633344233780516658353905677389195432368313677956273473114029361999924020994782103290887349340363662488089657618500436590438501961621810012394541564424470989531054291499107151289557630576519414171482248935183516909273326568667758545453105095634671509958864217434436814123611883210242258688291184492262509767514480553800722825908268888457294469586182026023769006390902177159428317942511187289630301175530449597374247309648883823767785084439035577693801321747093277905783843529967086609945067059655611353852573560177391672389824419934298850961551540986510954037620780498717402155869960490762100529752495414006900124837815542090594119983832041440198366385230435442786302675529687391245333975544884511683722950474236281420980047331650598788583825398462730461413905023986445285970979822785666920639373138156635107036176000975618150008185236446645144550662695178733407185414712829303630046199590177489182943475335273733468880291802020166140845984761473603909760545866966584196980826590393730717444736487651201202937557116786722919923138101635594272237210171897476857492014603090409360973584640013267693976968718111048601745831810934717452349795796485329980571350625858046743381700164653900343356318889918620554532493594676372680461283065076434135183918925534145666467348723510356553066260979448562219468617101881773198854748598369364293666449087706449413732327316599007487108457484118543934408802686049201813476501660413598675283340470900700303611154453514241391393444467865691478047269971776443993399005296086032457763737794396452526889985749457916149820120523647059664227346186334277450119425431660198394399070993384426617507349074472854876405235672551648782212776871206838953454385653016339888525258017623395708004285176856706420018334184843050088114898215170161833481320879176455932703578815064960710334016760318721118596177577250672107328185132445803535134329969128834561328181662179867418853791276811570239022999070901312056842280562365735367851957386552222898209807460331443860592044783487718527267154056263740306842131552238172400227388830082027167865111445578904934262201298334613993651783647547308951571196231762614226108262942623964511148122836600919502417250916814322576963532354043332298505955389127721499155482583478768943950346321185908724406765585318445371211033482022506490748469128255089441238959773911220739860030553252978486194655619573514907842463020643935818341352741773735726811162942257429163665334554808376163125410542787990360227445664600364105105447473982249505545299334191510531330003724982823393461353055506570751991048221310168732002181493819467383729066563794756034416529795161460462879340476406385589881948503700118030538466912905264156560963103998007465041446551339349461374067500448187288240848752371534512562270117250913061671196081378253389661019788488972018568937199532854982961129908552554132179976886915509674632425022653648041310749224809729512781894769648627494121734040484864760170428685947131261862738256620855762450157426675177633961075360037730470163414100765174913657444941127859243565852601322642984277828923799089865905264989959696433377352298149361170076155767988532807723042638347580738882154808071737108942488254706659914062690528588692303562307621488067591158054371939798701153980005920628984469920196949119045733080912193213497616674659116893447577663185461629231202172845326679878982611474078839262006788472445244011859828120685924470944513335089654068061082573415528938786758387030903302703193045125073584304146586205144971982956743779061391943322535750047568204588762092486407240644993970716796795518424535057183607939999664349002477864866240354796061304781107628626190212776242431185011505716985506598398126205458564196978256163301367315476762629694317032811523724160636162193765754051363726180481501340425225452284449550606272551660898427009003031437315704359021184961000744402428415503759191002998874987838393359923213886210462077429214794159757134622853068163081481898070673904827074728241881134688038023261920071136901610632735950605617990626881988526172383274427286571614663125616343297730855627338004335503393730489011184707343519088678685621856567063825427167478126046986524529201252513741327558420607461127079148476594821031408543112315893882259765831145464194441433010745946757038770044513837140686569709537729264242493790921004221454705842676086028029419319379283649260207729149099326133609129076829652138086923408099695971669451923558618678325755957279189228629999963952109565875000053947243831638942106917205457993798846063674900267842594538351826598919196741809672311868447472513297729552466773637722924932644312432671034498281534281064809529005108474997801048947814923001004258413585783475213999951959069478306166443900766887090846644737189432127352625189014381880674505968753076742014708621801801446130578163552543191795513765899080432992061772380082097751938026781911026134164623325399353909019512400634697707377408158216961255317552448042605134258583015585805066585995933795020799336690198076058467565053828360729032042956213777306927968186756836735214136924563279325862424931884887516121136289175826721581792664231083839330583908088957666260023247344935817445015031425681806062021936809123752808129071776468472060559963686665210171051098426980902870467006435587176401975773489249971878326525276886814476091402133402135842615692818441905864013850011609036462195154009448070011872057243906616490878911838010548436214358481464430267236339734779863237984339320451267464894792877340116947559923942007890165487299086469259856670953712253258925015345786773366562080209807258105257901462829602863632092346267063270835843073052763928923215842534180066077562062580901711814119256525070031716728961764552277667779173227072410540422587593298947331971722211806421772994834533465771673906246322512229070616107952109486237580092687775543673713802092279428200454493672209644920527190014429053493967029534480874543531287820551146669106117911664326583297834701690527902970756672456544993814527457821466032457940195990428710246401189465599660521300465975228202816058788327141499398938185772167406779072760891897462601334349132370907247066835381585690301042643802521828614351687044649742991879549200258992130798511081351928026420889942589876790641140748687787385458907013550621340357433010480809612491491902702691711236771782526113048391285491500652634956373781356449809386508094267884140069401007393665752687001139896440262104568865390431850620255582951104807352695980574988792688070060321831216580676162114463286054924677937149318631605126711467195148984272773974926358501913857420453243538745066724762612168793904727843516122864174929686186096665030028547874759628579203024552810092228449194317300180985441946969792637678323501235969110412194544222880586544726300594782198007337086871519500791425933595755564998431716553203949687508490787270374222122101710443581146541705351806383714625936576537892698974365789725166701292053271015482011481701305468419512378544372134591328407879419140575854286389245471165047511314122475010288029777138886935387056302578345433563632696985764657315263455423969518459585528338376781279435080329673884606406120709548464114966190809014884422725981883269141437763613430058276933592509536288522136771965516170896116434885219429476219624455770547213099684892347705658266365189344943226686204043499103819155764000820053323379536892065274346727286184188422586425731335082897145475016369100752485763837860835884255313599967412060147565476741443081881891807669169279367548208429936309271884951740731764604672114920479071623506649523323342835353648845856279086466412509427973714116690554934157306242108491602588214331047669246301908614926874715618523884538943035774718892822805354492513256788427485984188802045483476272514629989073390820391326122780368832811464731651849602385708143249340631769225088048379106874025092288942683521315858163797861612678898593452756655758408703008224997893720154232905922871369729770008358081273773318657184082011730767137450243891521326218656781302283234045496915967505102815171697467451981084352743088346909930531588005260627094499170744851663222571305169070052368269254370281252131270159150200479593488201120529123495037483092500056015609703606951292153217326534252356987910539344894372605639321570306797928418824853954986626769503964879751668053541382079820091401283269801609510020013337931694112272892489947776079596751850858226650826027209087076603593058018321689225279190254243520990810058753581660022672168460209472954132303222831397783880653448827110972766679351745492870479540332423940327129221957287203853143057887452665214261908821031933476394866291890607151918714546019707820279929370382450120469354691130397819873563011420455631934489157787412871220560582167754869510009775655138411523036527405741699277809932051481433487933456705397650821618912316716230121762895329209958434500737246564122955856458127518873672785458027620434459569018083234907340904196504351077211310074260898478131597849845262944060256011291236829599362419442398492424172569266280091474029290306355228825684318334650712488932348690443205028856617282169046951241562278423478464196033392067977906388685768419831174300027655405107079840518911763281959786059162258511347270740033355516095305640031965803462527625065573678526127133436569815289245233925510912178891910335635442381770393146439364370887335708273997404208172487936969807345442043095559773069291438842323546086093200176582233655026035001627842764823599762080831217571584187647062668068376642300015063730279918579385603640080171685507232239748866486310664577130154050903745176343256211410915032840574706652401559416314504198310241576062418409724076171739163311740312799804999813814316750797395248590838768629990335999786748979651322446862720705596606136846156726498591175753234006750064547558112246050862287221681621241206957532498122510855707358212783858748378984823546607390571830756940809182521139775371646670142824955535863860524162585219067229428368287933282420612104042054289118400536995839886709494265459437407563103557608235257949618254265755893129723712675278157155054130051649520389726511412726323209764624397148975203639110846195288850105918123862319830882524780675442932213722461533762387671199319293208193317756274914721707305636355975581660017340633431511294574284436054233924117339584421091633610754701157590565171082097384544905640975709993425342198716408288496254125733835506765725255294891886121788809078425422535912792692427275976072237760640187876703897434659150232869238024551959547141573822663889235622202286258636456508073689253241288149847373326763348206591158899335732581677674525839608511320921271808795951015251564866402787529691289831728768907436367783488499945440757745841786020156978498542081867342299264117133766395368194808725534735890390420915925410472368968981808210460754523803991874508587383736591460591387829830631102276655719056336909382043998269818591448998784189226967622653138966737606248748599296108782238164725198289363338556420168017813820150450859415315261734202832602678964131549118365640103356558771957712622780081523035650483927645458424970647593226535800416421808974584882738659212719307435488441582512545487346133415232873149568219648355217366138665124507239705608719402139811694644910140828001647268784002052742924836695097877630449564101768655421174924211279678965088886380376464427829912703634041536668675473080999264988225736945305181506554307434558503012779334713100593127418451968544952550635150822670505173076451632567167717548383201201627278418455673346648461053606107940474431071515703373548065402997199725982637822620526133066150739414955223361936774020903562676977321618349129226308687120808659115558956453549461368851466993613727524937584050891760971726072986078280966071778510129392534648552899939439268988952932954247939912409952168894232635848262957140296790690827008464190543842714934291084529385731497099588241830609243801083916278130640299314929839556880961695479898808852162476437597836115655132404171188200232981873058017887565414591685165974642797343056765413233649177180508175300641119801846093713325342761706590222558615565103957632725769270660257146798663428476087805559681148841391923947903686127024951618565294286603470760559658130514628628823230711585004034443840901073364680168504773287603208268097522208246617657202768260139841631063117268526148732567956941603681007860694118021776274439521403711470354311560912501677852716787154883591967012244250478433275786651799075885220181525381464408262124745538750237905822647673283502321139065882940708099845336070508580691897919524536497250196052000745313705664484084771613888884962729004049323958068769872803976928993589369326778537477039201342603131205896951902660674431443689398090639551982734246920794709442901893009303622524009765534632594451205850650495506181549454035992732171937296570493067200122886774829507310439942821961814673474111934922717529234699695087268615726490252189958550674703607580324220439384547186644468706048875666866088719618522428944260344027334625388537938758786161613876718211773380685614225138394701603306284759554358313359180827530026933242227147892638811352082507356698252328853762118389571211695513878836625945940944626014092329957141954894386774888035124842607456468532034049764352477823355446800451757832748490721263219182928924256844571092522515947691767049799857544587382571850034563513605095176627445388901409512338970843094649949005314956521111169799775918749202158988521369689286008081857979409040338587569338508731104671350229821866623343942161884551388848273721901024647600829914441268577461563522096731075879764430746772863062553773472811859160953080404151225557305476479190836727010584226539002102722300761453053080652790746181495980007407742972593027918454123881678855793218958053888740634618019294169915525642562420252131770648077220553336979671792940689065335596323889667781065402937279080558681050705476476810488303973130364289144373714188914030269474599627167286693188209765071258710024911330972220828964552414730679470001768202226531431012983442145087217941912790473258838973899421880259133744720094302433492957354175791474566560114433859027730062479465612786932050106329339938362474361354762975519535279664865671170113851842838674431896969509749914500485369199629330771564822938393523865966188175031022911402317339905258266087558514373471497621182945205242617616174899948495016388483621022542783988807590972766588656174919150992755889779269387100994527191154614503959249656660934575096700532036122327825385492088601809681066690485254187508506528107949171168377190121930327151662631645047918391204436787807094806139912307075321877885849203977133573692948578219671988596988725776895162788020266688849248586101107219657625129191019473243050965033144388565738211208020098190592983387519356640688232531491440230274932289713948152072900581190802830368843680023521695143244556201279885295776632899756138347305281157036059276985584077297376865324304717880006212689060685065435708528213485015669034813292845904823953235333266632830840329843883851650818627955394502260433173987842727257426436681012076814258755251568450924072131047649587593423671375931544274790668645061773689420576233066699149201330922901512603459098182570457564530996632111919532601544628802314906191724973509889523425293558974561154096213129866303769527760384930342427577005772745373570299845233289769085400020244669509139619520011735212202477698364404552811773698630968891128392171174967241888945863109806928229109148035813319556425027958684966783855353111333147863153287767292468222905127485664265469670643048388353418677803478140857714021046451131443337216885977704784339411124085487995718999438520367876376154732628931577461949057290345594665282793810396398496342365581208712973921950596176850909359393400086753280104814665876686266128219545032270106581510900830868922566549589083975448416648226471803484234089822255371638903639002624637359417935978130787967266623273863547594687855364218991865279813138585620257570835711319083411540979519715951524661233253941699560494123820205232464376614205955902704422837887956747706587967728610084015421872351114390722720262244526766412805196688119036289681540785010140283964901620856050565321242328180774931631203805538010232514166232815484018829552960219941105416547139076172829440298644500257369144080939303750856932534073005067754970277030810470427448454010119707437113733665110488737301040187529717634979752016181085900185740429681280693329905859878748342091392450635175047043203634367356992316934939480877507947259549957161813842975490663283996404328223372696485511209436040976240120211063794528875513010917174706294488536857380138045179058075068819602904077948627413527024343610267521690738324553889518735936242396940322858267740033809804763650495788456243228719632265562045591837123462485428255669791086529166267832279152169468909082707210510257948711031975124994645004503560652786582968353191261530512992861580135584925481903941281122936957710993625513765923858502282783088541814263444238866109883961151940881904807404147714565840090687828649740495453247539538642235584954419606328806839487047670925643360021164142077727984604735047634370479767300599793747386077163509651234829701938341816057148674485235862194438115818283976107780331488508671255646025619584006654724754927333200058718537368475636396299322480942460291010050431505176338410653097454859571774252865153373100943270424098318624908817786186414995673363755479591426063108394983018627845468794958413126288484271098182673349414014971486991399334580149229175870705317246125835994355283058452673105811743296884390948998273088370136120942538817205659276845156769501583954801772195438529745454527419567885640442688454935019568670206392940970255067327130913682730185870561225811186003236550058499201353921898061012659670449943676921964285629690010693845736205449627234417536678440423893936551656144067438867957443328230282893843836800816254585785124056479597453507950998212110497637413770390948095914129541168929797190467613004455307005787938647912550800093860045664157851511399319699641253806997168964180589128172966468990351106494457172358951805920134460299337483697984236189637845921390087869908437842327410406665804201055232247068095297269290204414083000721947765131743903497891497093904840109967317326523989666123410527001232683224746342158108007092992490536910345217222100636737557488375427152439770208611506157145348095439302818767905404165307270338433105507916040596660806365856937863649050332372291851125668091812938988197587094797308457218174806023905799576279241769566764878361794638750337803874356961823140894251240613928552127143617959311702164160535589415880320365232622748188386080070344824540852558742725807960284065255968841240150082936464477143568462140637158104720699538221517254756525527723044890350176317971824716123299599094027543878331249616301049727422848559435265352255060283324812488580942353373805814461836819076796756860194739503922964597657228240188277030238768888437129729840544412400371643308896596402167864771472098272157794197090141961613537783734076286120806472213189875510195889383385803451900562161679221829846021987322618249029111873296341324618794154835408522956594376098458612591581537639260096928929721055755967836668803377759836954077728747722922071191021706752701929124050829130216739511129283348491674907719459755042695528169074215389423130830265256370313251961051178045301180448153209236070298300228339334464675582913533474925073586855085289394274986890468040648271302181378010563642596708723633447931082742829695456475666356943413501593238005155980778385628722090107682011677829010894665116809723153430958667219701048575272769208740600674858100254776847967666124429854704071009308851953046164621843191115606004390424737795190111959774829936875735218566921496801824922693642394974011100778985970938477750089209541194343489267635609283572180045702856851401774598468336725844908901648292467086002614809809191705661275226877274988941467006901605611610675808239252087746977808346884642541222606445602813181939947019599759418230689697817444989926175201094237519006172802558914487912590858804577459730727919614844875738402744758969242018021588481560123901314375173624955041918660881239526929903428949844163717157591871680450467742559278279262999375576063934869885962296874081026483729461396672291240645709040890091059699373875689073098961783279374823448499240373058702948216059608120100473808437556545494073982166711530905370265420206365991077953892505932756356438466004664234145646434312533764001973183039475173461932824429055922217539897902029178578544137193238248838817714501741996775851821517533661527191628688654691705956353769441836897443747606082295611736207410361148061901519417136483513769953631992005062500132127901091933543389264431523478313366511577195055581220925878437321060560908099441707609611427851005400037116442319123848696129108554792658105542341465920608541838562168536499643587044352647532776644529835689043896059689845890349699614182575598104330993564667729199950570916727549861220412902207821570865523071586833409683106664702609094881584456152139430040622797525651164575700586165038021768832086986193664054772555444559122901735725604306943305357634626368859694262133126545226957204525945239835939948490964180781937743896350491097548932682586088899495612008341480681863963385567680527647900874689292703269046610464147398472841559148990180722757688015246127902641936260101105899869844490873176648129124930067531610423733011831449184162184666823827980095732564137775248744030410190013740149328526106186353569089745878309628550750058300617251406309997876394703602264956330729251802137064142670216876464096124402339185880407661951778436974366452782802370244708326703644714406747348955044553660454811098316399659560914763268059297420042436738658561787125689304166093092083946366732907701276170937935241669330281057244309654816006099141857531237060768352279194377357153681446918554110494185576187190318488036064586483018020544923132615286021387829340262270778985244018458034636778649579358031567665951997901020879254904722115435446315542020477266863362314575779951752519245865531782265112726593987947150209355080508223059887623581741603163737795310023885289918943872782856540400492217085808180049931419658436164899860449796153684336428846858302729721636210376832038960154399076222891609141300963232548929953742330439030162025757740804385882176620090079139909904223965886689068777033381547305248026430549372879680079948523345021204531449951072592520458848204439729706004951847039341769853720217801736177368986264395124810644798374425630964174867051728638523159502744933025151262611909669121628780935353096174947781773382776927047415062035684531376245397097822463341682956799488802354777476479740937350275332950500457949434066413905591453462883431752187390153000191460252781808778606347879112940747387148751857100375291571571700563834644168241970440204623454045083087551057441547473009244918854208526661652077514419637161230072624334413199622581560154126652055581601028031913404830016967412574156409421129390535182926436491357365011249344675654032955247944265648450232554889434932616690002399858761152895632394581257920919121539717741881257875468123012689805953391151150288548429696089331134565311412281798568503885425796715394203702136310512527619215883444400997051522875337561382717102432572523505267820023487403901042476267399611379669989266666592233980349974248455129388767619004244123199282147598483953710991345712298441633219691466662816558078482371933791473184330256074840294424275095099003817284537359967201114965945210266520784762462538799878852377076801274999018967524007067137979889816460715338165937452317359273256407531507810138908771167228798179128900231795680865220745498351965559760692011097252592063631752103960382811469245787385958148060795838045043085069670830416941136547906595334758950951290163350294094127805774379533447871728074561404162617860179881536984258238328891712773126066978382611757801235826937532249843395797798314757466266748142687805928096180260641394804406191003148626965217064825307529979193511410543849087200439170081229862759361483295678756135654574489575713837274564457812254105912816987301949571741070366969048241829240526505978141281609919474036863070485683767062137452208062513694860008299108275406144881595856349742338482956958637776674371613739876241756646926186592918379386005937695634428328920784964940092837472841797803998054035395084326606896542186840557120022424017819397404592781931790527338462143675280795494019614838027238605021182972711530037917730428370076836219123030464094386930269804162625553820312249341186772367673136202936831444056825382273452155548773537735792621146763245615873558459723394146978755366690850543618309808979172620068939312568441359007175168918618516661840455984752681664012915254600425936873767490528037853951279079036722461219865771168642806261445517148635761618810291183958938347225224012352060489599953176815021821939448770368898697282668607475620487081739722848130684659593615732843691836962393382998913091166281372628924831301720533627114011891135189907231867337944986759157602416399470563821168267065647830354889398383073647892884394676138736314248212784519462353193423766060034045588041870098893030900987247005737428419335901490554719754977700609512940101998454319144051946345589325655161478553258829659608954648012350200685468616470843912079035056051155303403972686023954804134583593229087147107851207655221808746436845693340869422441988594375648295445086099899552660158199153095277701770937174960208310088704495675974407671535247734724074560210495132759936765580240157047711673582409372911641827418076237618071151004475782908691139352530390031715905126051369020945794289215754793771479164794774681408897184301537307371464852436560599608717653877084051905210327733311691068176718288201185744075034316072020350590153029174916253565129882366121751506781616175150643092953113333554854679368326712247676691122701234764503506226761927732332049857724660578529910988396732190669701373823486170127350623916818530613444609681680673130153834503944865261598178975926602810295264638543722144376731167640079701300768766245665539628420592767877330794710224639587652777437606371301499659537900651684643570944575883126951852123410586366013205474351404354205333440254416240671487985897535480074796101254541055807108266866305771523799097011506919808537553507131046603959041844517779400944349754242890297305300059952800428331507848159167201885833360704284802219478523527283382187711908538021162437660531393144111154834843865772651105140759925319046891977923107895534261264280108635070625432447004765939595265499898369722805010867963492300111322777356310028235822910642269275835242179690001056740117820488553232169596803579961714986976567544662874676379145880405909431008425379297697138349846527826660429352232230944686183350288892113809755503185559291251553524193273829161868199794781804759870299285511132682108429912695607533148715447950151834289631611999570845901212259523320281863165368142297530442300536128886002096988387018263023147327852461492508434575131667229106899189133327322003680287848403439130168718120183247731340715447646984780347152319466430912552807832419032815952420120888126991645551700160569919981798214541327942010347590652838556158850234616207006752209197483755552782375770366952686058620766553806688013008699894824616624364911308544773794531915401398028285235547704767223802099806154194544235611256390364107410546771814350132392952201772285333699867216703887886400733633911582243515452569605656245312019823971946477329278133687612793069686788319863508782288512894437717567723212037498697928782260909983321448747543708759576953234016788794815069252245571724671957103982404627706934598218148747172430442883645863087861684107062133732946349113074316384293528222899596781600699210311195915277740875745080372406500650912177893338180811300147241945521380402197886318643096215686419327939208083872363875448373939881629399180072314429391892522310884684797608204917140913344184369526780993476762374334296197978763123131290180514767936410108034085755426490222105377520832143178962331717534437409669426104373609031245087681241801513657797505035558297548255936835117602463388926274311968539905520670257769985115893897830827930467964300120143457721336416535049387577847342451629896455729219590762283418977729053429356148668607111626657996494553081694984017026088534067218989345852172228756019700679751380774200834887709097381756536107488268467084404375846434626516342296395482885191694351525125245194300564822337382293769165355934925121460088462786853046078616951484083987706686083998556855396386696717780216324520361533986150354226698115746595521692005453192269308572297122383683682593340220829805821882371839478695401840971616954446351785659640055192871188410845109914768841605221605703308129042837212534286308296890422643545935234505172293802702415322416302449714449619253379853989022113607162118336375238360176596145455373745763356558126765023780746037414460046710555809040244605253206672520295634166686177877266266533399675986025618247236282669304784189974271881097581468752166085858145329611105328215607255292796623702736247578762306969407375051055540857277728061777686963592355066470403816986014316747802875906747558602671117237321300869089662677131533539165961274610496135462999243853157737094650947868298887029744597394519913874497815092618994290714729514174277198163594165458621055162380306163523764255587172918526542453525196023092301813293600192097476089436944632838581915934813050194598369750661276535928568338325025070159519846972305578118369293313141456792543888473049342271426127867677057695398615205995509259058253416538519973296693800473083628378567485207536026822962548111900638955261533855760830378397907655871915528036595884623083201299906375018915184385644797082458411634570357250020925903943922810419050216510891161925496659500926968941783669548529213325275989553023166082174240094169414669828662459624627534692611799529026821025638024323651490384788591003483800476911285142770903045787286919414856540324668964706835520872381511463616811054343309220930264157907923797844406780437015669775537672008322637385122342975626920318622433763507844020939981427978461849633658382904045916074122946386684558830406405785982348502200023054969458407750962952925594373905876419990592721365219571089165217027211350035155467272664274599857703293848121006250165964628846367172667173530532634683446835404518334339234615175159504458367338875503781137342844847309107888008110834750906592479707874687961607970284235567897287086216601908606902697484187485332786277225510814650934543047201543908454632284661344044408727706481595040159917187618945727982177525711651300204226732470564800997099299221624930277093555368405968904991273464862258407271535766912877043554016140116764498645735596094153101284591833474301523827380624773945756698553249751357681555045832131657266640446058769945389536390746645206031777884858098672021748552237809224072587554352405077334249715373114912666624200201628985688597473630834592982478854237327122638959778190044226492402567548018061910018375681310327916344602027423235566419935601821381830300836493095734878734314947665036644569520002486585087162035165627302638930571392783116696432738423166923833845786869749781861005994650803686258748938856592408384971338644200473251256613712933377561664549303637699576708744970112614328068954579606041640225562314140830043923154055814112185252768861230908234044915124731923188804617837702232265483379821065174111182524381343132091238290333094023224994792328350944049021801227719814573120588280582094594210878907828531900122910854027519976455640013639105829093393663934222417237201094765019983380571509802349045786559788790531068101156486304058935316509290930088804472805024647502716150206150750941670633769670367780616800778555691749167572801474266597757197059605357996411826628542832310329643876143867358225801768128720031596623122322747936202355695058267440737874996307650519912019871285315001522079371550330788244918746350564313384621098988457379895874571572261431965821940747265054031903307667766550970305039435468121007706046308724012473645592421593922601727990316353595527374511321897819775759989776812523754373682380111680339843042225167906300162436527123155825931230118612794468691825101803429128993667880574855527499500489989877950241654849749625420916779713501597932091507729784016991691375194277355105472851143160959141789395805765232224631319794584005844657691516724507407906074407330337402145630838100042931501095450497380962448474745294775873732147883263286767575732405719061266742361238087370154374709263856869689383722574977617039373817941395819132702259329765189288986790184311299910515983192990092928657895181432460821654555215960269538977715213192247758332790485082391756628770132136187885852940348082468765574030362188757388693032068612427362744635850344404512091760143000614987389436186238586799583059865520905596852828954628345308703194343867939044332150922344477941664957484879740050124054692215299432791997742997193912682170596814280257119308886052248281262699309958617024674330283644292810914702191105842158698313843132309822087594124863634417579780906639395839690545303910455039777777484304890816052647210917203518221521927194466186633764158089218853392626014259721325881409129229128777514292701017052322508778947979192301995688831104642213368310258246052829145084434720566364603817568923167308867247647634280243382627877944238627505023778603212555053889995679414226841840557269609842470722454696225508651522013561158514695957038126111112637992656863868848773852286327733015004793395640496316023448450410270947925353312127863979836064903626641636063411732998744567015967396818249146072429993510512544579702944829197760394582716754474762534160583125399059018623368748120708129955927211134720733083369784258141797366965741436292016450596504402729861045641240633817813579104954325331811702072146157013080455077190292525808746455920368024124693544894305520750211963128587374250952358245020416868195966266522768780780529905732402770174804477670635789226482220471761919830705942683794780046723835064905852905512367492371328692733635414174489083120443376823704683875387740596673086239798928729863197256099499080306735312833993940360144757150954901323885366485469928533469649395192824026756641454568589901452565465423170281693234731376119735592273144696710024988286268653142917666368541422489685551160668356491371216487758217559778062742452468469861997381319143573337579616986350808371568971879954471491227141115932132143249790955209576257786147293865979143062724709953435703704685654956259423925830960566024525075514375280975131210449385301397180922666082866528406171500831676060259140066780433559793723851645531074433427687756849265324238065010291467154560667562781098967270537544073005887347199047919406615646788540008504644263541826363590886780784762074730446235465992319239263228367703583941777916352092970076569630302418605252658215127023490101010664420785295026405692203367273950306871207084383219804128997106676619524673199658619767753800591393919757095146618811270952602293263274740573922168766537131125453954899341803472087044816965818653239184833668446965457870780919946629713174072878812262390266891672482185925016370320183827962322014073665160418991933891570036449703908327200864906576484229726777407400394043715829600888185123647938085127337369115181451810536167408008943023019700197497706929249072389071457210673446422351213101831178586959612367626698825532234989684851209841589074271823712237687282308500078208760713322120863304307190871933229162560648234917875068014799022585123714638088155010849931041296237138543768517233371165761095394719128107473745733890566544837162682503696645460813850053795120232864419765613214139544495073556806680162127558938043972655112306416291136606900153492176641688860452379398986495751724803904030328054706856865463354460585890120045858364629475679955433871770826085975069594907999247863731756878656640161656715055922458253653516086984241584187578197432144670016729978648034716818738904828219328962502776536667607161926046921801809838499241294047897374922160972094627490947080863724524951046994410408278916969611440318709797824480937267075959297399647263030542598471323293584642329494015283605965606716389923007112694264128483683545873974207769323865151507207794905185893347042033689481301550010085058259879949989129325494031824184475374993139179235281763722125651792189135336564211323883857026301451934876647444766241550928954454172719027656741259266574122099439347614712695493746103119129121522566068501411304366509293362881257258168237030269185243859195474008553171587058638460958833901908874524803625973619643207917113748629252629949226625676406608909624218011023174577394897506469572759436753903973808107575137481752267235703565511473748001670497642164575875716490362059459798666167967925688576701474416023583145217005413270183472310337957330095169160364245209175268920449916515227882236053671028530139556914167011115712685781531280212212917890865824012869279831923313728022206161597909734510524847166044660864225939821296165589435146674843457744662089836058230084762159223689100769632423536627724045738112795450179888573881632869628799737143225671549103925312671920910208004544661798142514932001002169375176473435896579140831895380140048905685320993237947322683315763452650527225568863255343949277625680179801004441953615819571700371481255722763875778167970242214458540980631654769524111634146719066391206965422116028511362982940992857189193018875311188748852122348807735169050235120109873945324756167020648977351394186492117180791385018866272780429404607522673050337354232049151808518784206061397590902234162067545462945013532747570666219966065796419232574760882550987996246048697544141243129616210529517319434918268987692672612945366943819430574949578754614418657830644464384316005881110738805790411310537807037339874255747439320837241678008610496106721880289497990285149601923614473484200383973127378569962534991426600204478534795735606446794145692322295382657522634981847948972881243300028060676732575647097883634459024294289919570024424969622493318484747381078018333133232843351066213988477843880104358746568781675049209181068431074277893118756691832339912014382253538321321022883886922956761285282012541966180003561473202890764899636524422939802817523727756396132844501004521851009443516476287508971856095959645716909178396937411445750205559145663370970497924955610891482071721218794578010788309991988465049373873091428071399252410861213958924376417286402803451786699585796192463317026205564341350474039972156096891196900122769624192521801399555302494362922331242027616933643974297269419574854783768239376604413933449338317845273680117600492128943071522853803701439040208565804203369101009934086576399188020269326307922518608077090836081432663137794266932238684281114535485939422890259790380798507259935477014283393384358983510942740231457575157743735381240547586457567190379601293620163605945234641889108607778674450987986126980634684860645412691874042457859632797966804206898552399122247247239432790463204633528328509468760778066903309782034038909217131065764916435820252595633027590010443526862229492703864562659129849932467363723123021567658717304501743550961802891178807760354649295156623101170596469617747853705982377357410031404644852851283750993378640797457190133463957670217152595908669879774167059088012628124520818963956325690424420858315875398948408991451400868535611334580086550668019540054250949969991543707012932049135819253969972138216226839252231572291698042765839104122759256818066059273035763440470980264857921130728161907361868135320869436549228012448992132428647405168439770380175875953150769246602400563382156555703155760715178465405784979143179119403178548669524885019231328522592137469720154640532346228161658637572194554497395502660143751145206255229534425543727336080332806222988434119162445331823186255243678759465760158810086702095543898151116149130960935225439167051281807954859647871386832065370316597614326820975755738111919149451594179894477567234359766069303339601553390897493056831568683925138155530369206868907234167712891176653659814795391865665739907414690291972287203543129603244233118228446639815862610968082053661488029387097588760042455558139151262189931254921205947264789484520470686351496837814438296704691835581312413660505890736078087421155685866322143716935786330844142950846057945580017053273129338379725694024317249819275808953459502131251643906206780312278171571338673441521276918119006028054436306074944005567565800235565592671379981763067718527908005109882830570466173486187172223183394624918139518142080464367512799414861982822139416602544867686838872546025652637639413925855126367683662835543430371617574520235749294879258559543363102035336137449756564576242512385023978470163781234566490069799180221341973548970497520711373073402811117737836283132020118743001840074662764784089229097495033935846339081431005313325670882082465411858987713622988430358494983061033795796526668055009616458092314108671947202095932742727449984870485413843876077009009837702501978031751639940992731410003435332474169830713435821470597011345347213658684587587671038147590975975264766042328199971844691599232321472376381772020932352332816766344989667998423984768343809751321038814063665347259957139604254710452709407476916433489834680406673628373835042109216186952251050788157001011786105973772294184766336505707030234549416383791494691455790714232610522875999268362129397027543747053674086580240689102918258927900472694399327157199801667268111559495535880200912411047678588604000428361611627403579336697109946330275802733141289146114148348016410391019217043264675519148360058727856157567001016834804189072015559032309085113866243874261495427809534195934545152458591010694846876403994574854465727261206093148932968742969695376097738150120100273281122578055004338732396502005835093485381819762722207949840594709585067530453517050267836035497687409350012774567481492585492451187155355565629234208451186353222240120155260478237839293968726633265975792347652819235912214333661404821607205164718342325590854816479024657216646448229530362847931558987577626135702672528881664802118576275530343051075539628794828691375542497331675237150800790080506894889745389856405705445183921448476974628175935210215292641493461526904276168242563191261978998699440362101119370545863282212536903433187940558385944294403093118758939323020871055633244843221351719791824774023365826128856421964047722754838458856051526807862267613924953941805655712518837629049993945310083325223160266240252002947755084149325358001742952443385475104798027069233822945024895744956553679420155929743772839264065428441518559398824556096267056309007630834105762383771295085796304622071706900627655667331492999031753504485337494984942248814014941938926112735390445313795341735584935059449162596763923599566764391910729690385052891904837043073117375617022011912738426322944932720662567105196092331773694271364399694656855841452081739090495730839628733048982474202464840024140207682549452754043694612144670948743794094244982007737831210903653078947668645266640757253848077300421014352002142717884597994883397482192470230598895653402990303692099136930571499504759633269735050707746349555122291086251419752493758336926250156427555837398561903195506619175967591639037834072530816940998371339581742734576549197911621214659247296576748203886023707778256837899044128442903554854267500296903890520152779440555714672470065139833038609265323380678545419452297673068024980423075152903346274216633338144527012589355031846465465650761168015294089369955662211656576090588102135794927182200516869213864183531412259765245529088603353040679984529508691839236286620324983276314296459496725895417960183433724718318962230077190889225886327592298697035228067394832998091272258589242012142775948533429290306564722802862355429742978293904464172791842203187467609679668886691197958548323735749088166204549506133593816039506043440783110837844656718156062456868344291828988784965974816923722464226574201375640654490950143341604187067512316275329065893877498619238214127770867849742333665853100922028108547484883621207802554867511374442311074859607352215929367029353380196991416276124252253462088143743529330220602886689135345836879944556725419428029952531794839226291410413290145775452051062547564880327465053218689954381439060578673507551037026720407893368467900765491500437107997635279571952021283922991252408204071050374850239360193686790698241323565739383189663765834233409308044564149796674564439119567147968835607039996624862696680490258015473890650981074340039655708152404295414624035992414994593772133702529491818434453577821165628608285916959370731042684680732161074318262718319841836720915577396295656986162786279782345156322852568086828492220556332341356903392144775261720375006150163220655617542508098957421468400194053940249712325951365084260363848973189343516978939234623035045028409868390488480713907647795575292952004083719476931762640388115321633349739815182521235028282351096723774902875232515040948683071024909383813601337142603704958115931596387178300742799870801653759912925672658602448209632459439593270410957236132403746640845616276667700707575883318732980952480154905346022568587604840894446150774158141019180633346312389642357291747016505118515244027455507411325241776281962499743466281136739088637800353555065454585479647761422378072068419242983239734446140564637356410786266386200298575497995835849792490675828013588748717770927834677135604917777968493112390753497346885415517896780555276313723554279526154137441041168331502343769155463234811572385900398533709557879886979702531096204759651107903527547523743747852480022660016484744675607120979003431910369415651087815458594489762641740624688214545264072524894304536646270243039834753844271376621717992910466250180209029063254877228975474579321858147700136997399211187425226513228934941644324713847881310414133873749519601997939314724493875638879295382908089303996237592601401173712341246406513592217971153789970181390434587036447378074709812077788565257347679806009358872488408032204783254512013304565720920572204036800694297052872582151942055681609707604280485095040763619259122487573822409439723637168041724148311569451399016254458392592814362416268334570854857092672897968099306898128498007294553443739454464338737061306281408570264997464670040148522092088625311742108559912807759131429665081787483913183297978091340540139857348704056636860407369256661143788349628359572246311943278816724320099060768282535218495166438593311885438781777519329181841560172944830889442364261673472603070794508597455326476324810118209945271062778236461927616013499516901295729808758080167024665624540804775768202349319527982840504160343697649354664146319381457191819778771442139294003892753603216623073014781059348604439570117730206832452857960466156514000606810694955228103068694838400657384010491721159070092507064251437161522925189734814258002770850655817927886825766971230250675909394167440720723247708362221865217712926339949155887724744453204483093250948728271175364439873141863115691053334988716461888579971905650908518485021279534853784410334519465426784230798393312016995214674244420956481148386344998622842601143103157278437668954506792021902527059814743127444855988068167888612126921075337101973563779969417586526258302181811644352653878294741493654315324406623462903779500901078309594826100576648430799249118070032279442868024108015950123588642292436421295537848666220980216212719580355553403030233242541288748326339475444319317496057510593161537536116037098337200810015714248841922060024811639245793452612999430049657875416147009158962422705120477105681233191742526964725361151270621401300809835763627379376325409330631134062003418041806118974060623346145810636624746215891848670499084664216843068062978473637547161984268270587920377480769671495234345409327007862093571899625185703394169475999254270395778863413949515977935783413638363482736053666753966406521922216276321750139266133283760687109680859334544288174055930599028899583810936625708734016324022120191760885201794962557141673228522197489896068630818172127313916180031410574457296117815965996060246628991083201644361524664961814822455680904262644523131949427478030161328320082552485532037381000592490981275275703960076505509960516044408686971548978805653228256149221131935852659602914203617646016709991622773746158205960801370186025313842256640095584273120773642932825350425738369319260884580183018249265512354540352084969145335880619924358344249626553592334075602161143628287133216588244511911401673139643878142178523473409968043937535161724669815309105744465336836444412202437802230080441354739145803961955981333614567202021627984928860454423549925073798243185172009180819892476414284980179002117158750405162793860025531643561453888862195780106040138577624751276483055255583712541466283901604920574484792288734424227622528446621514974065291064791751182471212815485922911819227845011860371172472158046151638609945233284959152074515354399603253049281558694966831050833685644332660948103965322430458923903702151653413408846839541714336250513687497233276871042273719490343871565549791575425149235108363193028369548496723864725112085822164135684690676231434920638717626875266745476267616550526380395914816479724112919079561066599191711295368537432190349504143186610490542744353338466045625462770281420538149880372917598049366961453016925406323716188671003246721464367983006309381728352264935006848304805618591289918256701599357585100690629997436358790181336710958871328913572145314348566957577506308457569553650773104877313700619550461550999292969774833710190331221658118118802356036787424932299137261947237393847604962623515802040255924393513277590544826190285745836184396090524153473785880326800756421630978568787141262614048537464752126029591880331316924099004578435312059119525555188208481092213206101800812884565175233760560301390124310949964964163763757000118720439933560575872267490037954631905301563086944900784158770839375405016274129747293622239670568528156029264162494363255486104840728764329129743631137326671705962806125144913346123183743288389198425576013858635306157154760631011611997840910305946595313805109614305749514948533876236250820897448248947954149994561893985217441445275430473220428284768168469876378427456177659677463056327025265113262933601337069852399797102376666924875548677643087254962542767424048742788905249487008460246900127638579846900165989036542624238722679686335867203110921798070047195850239386519654663064337806675399336764760041671131054760259917910402236702175700872501874766838622184280065485501417072964649814052547667315860863399934590379424000916316252397634001503149739774612442317985170465087281102002791765900195937006450315266592290261641354555957865514883668205224772357727808998229438408101132565961853221703804243558861991899801132361552177854558717098282101305619129017942307730242743764221110514281263080142351721740611824870701016995355880592821227618211741663953148054786837091810011894215317620119399511351826088650776047684609301191409433790295811226697145733243169125215437367736690226261329013658599515939569801397209482423863599684167602154364053678871480093919748268587566653121279835913145270756591046941460897649632846342454966276335697661347164661508939374452583278418986501214651532233094666417112235323489681361487639553742275385116739924707800381297649927023973145291079944999507690171126682554919240954208879903226459995339654298786706308207605378446471994470700752057551161547352528093295283996316128825589488116884361642890360837919964565968656155668825513810864559537278126471989346611836977627440769243358444734426878804287520788013994686864309303045194084679132122577141067099382501454246585745556814838833397169391208411333171768789708812729245463690954979731330267673626009316202374238998013138698829376942163425874293416719948943529567488340752591810108889029902475627201704937144873282399324215218150276201068246104117454488097113877624760580919644509441775946603877992549898186984345746755091063031007099175390919166288921130877255027034016900539938899650080158315762952605602834129035097809626919004307178027135111887530921653320927657144077228186829164634191229458627858965332362773916731885129903292062922926508573938076587628619005852688384234579870967817557658403176383812978610985761518954953693761773482944144670115714795993182241884359963439571885284760902480298338080766929024137058000006964222315061405057733905142177056612143218268708686128527407520024778863042175376216822127102621008297177572901928036359507103453054941383563611199906255304533977820143890669347696314369331547423826476726502157438410435860230102797631750334617391132339653952888927754190933094140652875851670418533143076536829700780227112287068880949265435738300292360613113902401685489764739646026995056902886990051832358496061906486641987995557166370192416323920830575271073775176108464444753181563457813227655879331152757101861332883631582211031533121442497472512891081091011903450265963254273547984495818483338486885542191652941305532753470929519511127621322975457139277758080441219233818361417808254901101900753699017370317090352283545964905460667461827433742173150932045963584218941938398730640840292519878950557140450873334406826980157067481946071985222883349404186141345673299025507504269027272244039211753715249532004058862618147388376324626435542050627890331249194867294156704421843057622682787807201452710141793089865645732874102672855751722427732751096572765403992287237641768250563105595074148648868981566471929065336673218002111059364105132572826382754520735112791843938201796242872700327183689774008763331878144536431930308339203305318630136710357725813638043963095236716803424397982283154775134313284311030901090472169582068429737140122374853728713713358884300151688604210213433245685747715386043985364186366237293220590812435641761095260414963816987913978339565621629778434184369733862403632942911548483285816717437338292431215952431609529999181453808591738020121766959341348544186460824330880044755809571108064614864581488925955870561850539722706898334340683737832022580276434348715503745411267747771262052392981756873181189436195148605390696873875874955352600571183578725686040945061257929440917522348892358488753192301269165083201811005914894861694769069324212584216233364062223710620356384703309957808234398204180300830954652836814782026775296268906765917689339129910008916569295855858713279600340899141126416324110173502935686021209479755339378224740527545932988688856948821732326119736091335871464746954596276487805904460705746276894985315741926976987778602501146468758397676863792289402162895718279328707420497047341876979381599286036088327264817734303157410664124333238657029122894857346680835730727612382407376708028834142111829359701925041588069960542832947191149122453813491425051132242387718251943362567662344073300863900073467883226056633947642096516227912298439894294674700905364884897917506475318264385702453213043867294230331138053512845750153809401892029112436706740193546827226756559277844857543029078553142442263465008855989673358262278549780691176449299645372712316285184300156592853986680912005349965197128935958715137056316025397075964232499028757851698296056706661359678598671436760802099579106174609933037542652935981705628893074860870358420448732374069616640880023678639751589868532714800576957800781644472970390633871484438248986146610574545111568242237235271821373256352559582672373246999316962034310179834291304845108719000646486726868848592714459790768264043313319002790355465001108781902755293844931893260317970546410685416491276213988912904369816189517638212525504415765064144233166415172548215157450244980131507115920488219642604759203807987956454597096848508133822070774200215918874803980889919110812733152406181311267393558387919867902345526516420094274160428446703929612607455677772999013378696838399179692550612280850531943096908902512877923704420193883146706091787426069147603402546743881099576745083064895888770286410739871885565156429909647867117698039920443251434996969772796465587831781927177640668278379858209909191318576272550672635924796898000883285120810486876999578097957400123296128700815121323963605019054554570410100053289606060011643543256023653223181561503951415543020815091847691070148066724784525997525674007070757966801742566201811776552402888327866479560357131262684700551028830374162021350689181755592434191501347203140090477534288146066768688570949632660464095509385743875681036025033455854857243549928266570103219094701643237397770122506579174057078795881409992033696727403779134261776921209174975734614398019445325542497672461735226235187613370683874121529914039845267379202954004727229180442964941530270946772211067180983069720828172516986445455654636868779902533011413325789127599344349164527866823210772790206046861685518109536801145563434312285373865770782196787267651100103826779500369021197365158007488756420749299603393669561830639818138460824310469739149551479626979785618239588062754440853891786225825349881866775235254946959649878314825953935595886361823050932165805408781467171271879298829620034666848380613811163435303952954836834180397153730983876263340614563799441713340698687124773014724790187254848167198088723026787772802688923787660457422907735699413520077785512618886520842880675072838093366276728823654696342908640973165443599981384430687695826345757282199140082009596361802003983894691996007009144519630828315806569351749286213149942569158181613973822651648716031563726518236785919904806322613136517950328186068065902242481397800626464293998318170072100382721202361919739070065308123872458332498699125694891766638086536672127084853375127914580770613594172732524044774021110464583620747674880477499332877057943861556054556025659046482043277669356896627631461396532910595411060103392973355579751251680900928891854949054403901943256236903174925261896443575333691060128079776951994384024985878282857870407420821126537896723942292242297252342166618881838874836535332677189914049003111807653598446167648833250425197433133327405816534238814984754686542919479350962507663332898472252999831932971667860828901425453484015333418557853081989062850894769195099181931181105160326381953871120905057333251145745946950010364208262448209515657425946337430166298566802680062777185917097414188417213662448013775661648632168863737426773847076155619821308838272424888047217641581612119277732168296586253060653481802110767546479019503331183622073598547346718577578221838195672886739043712069767405309003867921319700023482775953348101959100923840156735509926684787681044864852943839221242456296041071064512298605756100231788010615731414343305598004332777404839438717700771475440598409153833191975244909716985707260981980728368772901867459532658412207264604136617269216235987012221043013670438612034137857494973601324209101407944478750425581857081813264753298359480459221750190897685845361426163801993308438915225463485085721093471568310812144523907617232904327012903028961235309797725677501140060475840885321385264143593617168657346004963467294902134979964781756039217585405468302311147675410705449582018144587586937845108525147324807761153235513508510603843121129946772927583258207964741221258538522635881308818277230650737921714070690478554080387859165144506891739177722196352088488971405788856134723530089307335398348340362118444507172360507713753407424872838822502174031957549143467475619007748454738206083300786854646114876943307106353140692238726563964714555099042813172982209074509485302523122834005642823718322966549092899212043229857742148000669018947296855629109514282067867453288312657107240359496534865628960029260126104870074890369795397957757344058056077071178656568357090936197684864222633714657859610330675600394852041257789090750427948773282660107566132827151344563396979246370321919798497668561835155306001079257217010090189597305037817833634703288520737689317254264012628671708745006927909061977730897072873316785445029688786213860638857576957182567680410098309541372296746521428064646768197021225001643427547197740770981729538059880152190465968670654806509818670260585221431032343149749956115080496924578528510865365161575309363981563608514131554811568164683605856304502057362108522218384040025316819898717091035754049884374419379582526158520907055595952533974873396379290792237130905945524444966952387370991217199573763391359973295383894708149722199182667081853987332613046418306882523816298360190273378909369522951837768107200124492008324003679706594858378481880660731668874963989109318447733546328196704007604542136196444519496615771872305966084636531886006223681487408736077292113626838879337552463673768950426422153733821811474923550562433933602065159167162046015883851924434021423613341220245558598194301343538201268625230093274130730930496709023767435089982849197498728778065501019122025586941968647059320838832724527394210219422865283235544938472096502052853051518298914674594264593469260010520238688756322458556895170921273219270948923048072709856324862868031205000467052707505173839379358462608447789172938947468303885508560193006968137127648927576846397578108107772964678349202190275368770970276804908286621233142853806096049457125093572806872328094486278103775595211353029144151225071468655632702900433366835714783518273143450402614616026851347063149336783623133156546593373752089427264837957083483857733057419446955082733533713202838161500538928265400589607837939471892324641243039376200344449395968798569972786915181989841230853341366602236503853935620517278774341197427948730119070347932288225324740924018894893638592236655642142262667668427212128982487026893238880826585286956809257980982936793377462980310903040268901755446966430684573712449455380307302672056040563893198823926237300230479217698062589067682288546433680141575394198506033479997807386431924580627887386282616359460974884990773638655397133836191829676739094691306353931424847012186676969579932069063007592774298600211706584028284547250858173577839277339102039030818748834346610966953176843759205377521646018779955552124261827610835011073330927949032849504612649666181667342045627158174691153518708219968129245015324835597498032351269443639380635753569219431634769439805076841072485550410467254328790336696262877951422497630965220192666480970417993957668568387734753147076699793517969840558656035543164452314844151682784713048542679880868971895440304841664628522643662659153416922163754824456116613638590324073508978001722944234611459313956841474725994335273329407623547324978969549192282528274641102696340869090041423536982377341501563524501771617549724744613921848870509463758727302796639178718964930423745244415160516947152367499908417966041534028530169211286102645421952361865259218816403656547162012079066269965365800513586985239290150851064525167978131051310424125038562085296593939091343883287772978992339913750947237077454094384415290549667734697292676326750790464401962911573468051008557826942876088148572135113221311209926114097690637634325737857591745551644440282569842327792347797051310978114080513640027442636038738174443368728893267636644285991776500470588045698253331039257431518498781616424623798597258055759160405998668982504151059617344226496860188545925360773263748009305550650017021413168402163832507127010153596903669534325050515569640667946762662239600862193252560527656262767535833985282689846029513672126587646476681541624656447064559567655746886684847830627653954124227156422564934805223923211946677524965426049790422247476100042567678198102273054957354609795006886774815536500343852025597578911323733700692549414174491993777619584169913570288623227713068952227463477577298492002651499651923687113112703681901015947897511479475756497864836982911894815106965398961888786106628835234856053759885389821351990392685180547356767189793302172637252405526954046551054493409079471293757031263397828279607487881579560912659380705975429749370260840751627785885598362148829592983142619894897401435894191745250001929692884862802106507873358595868507481003797408595050523732143825733169682267566329764626246660603625481509425411240853352389083891646184685520647541785228299927552432269801743373406457885175067415895450991345643780134331737574281345952338960892727812662185167334836988307364398489407821564060169670861224860045919898467698552803068710760158848122855002966126675895243253433809308808270456779064319004579590984942410353282469298938957577245248797215916790344127154238876446255771392325895197106910569424047008993212841103488649468142857548450842200691775851016794899941871568720716221076106100007487591394017670126926840214875278822592310515223384492282883781120372037721097277041830457545310389064069876426996633466294866765222062973901587375130245626342721861059111983837245120614399291398192307438004987586617269079646710143182036939867499002821100443614632844957596054910694885999432427338406256468721748350738004794348648692109108518579059552275103845035472718528655328406176667886581977556297171643946740249933684830422151220816277024243476689791163574593294661227635862280433035051167423773160809892512035355819263054366991607055731918659324387113820823871934238877989320516603171292952892405662136808964458042679553901850650131117473774557718378562402879439441223741542091166902789766648385205758059151065284711969385691241340184257751339971389558303328259850895887900303444883370880232380451002761295355303927637417672666870159693263666300290721915933059739613387158937038855064230553617426129372003383050209501635922492735506456366924755002812768291784379539041331647048448773724713327888391150963576669354194774778302075544588967955691970922244337547601972589432620622604155379342531286658442263032184929463665369184745129756425621219196583847678789012256891026123684965135622868612003474096262232870466633800942243659892963764072540707509143866492504376659858691716868857008373668291674390182423145703970336424508786914393509889051340011079709007026613824445313453074131521872362073292308010269519884580700441481885881485092257241928887535016467097943953319949922785090340537389371990385755350710784659253079956133545380704180197905034980403361933664828695233438471415398917743990617817811107683689509580614210844527722172104734156371154360168898447925875324168914022301969804052190606043173171009861572756933687529300234631319456865244265928144063620044637398184241870926376345453923304980996385930497474323838193721209542577112736445242002709966199930970479181385480083542403647519797333328096476805750840718940589407274417473078588459309160584688487641677561583765864876205355101255801185636279958740712942731973625397824053985172255440095241276441823104693630233423412263264430690666959414381473709603989402779262379429759364050057791591394369620396336905249554291480390310016418406906624079625757064505890080470463684198550628916441665734522335031904529889531565847743902036473164335911341190197788531083003519988015505740326420770371066683552558693860581552093863438079654463101974820291278233011705592458309398975226357223894762083110131182526818807466711872756488011461970509160773419852959772890751804783960705149701125933280072047951765858726039868478333622153921254439016754673362329369999780387631648677042998562647752611278597924734841359842048239158013495204394732202407277252443057941216577369483441060063542732589876613869405431754314284047374985160848938611871239978785367262704124644676871289115617130405117080830839427977668829345411823831639160375432191614394083145056669699697301912439006123620356952158125624138908199325146169786263206514476733686733363470625978323792495697430213258653414054049081618985470367345207101824880117796212343237109289862189329710873763867258955793517719392513546361060317265398911299610713584998303989577883464403753062010920022933056483814400419928292080733985925692321819481406064356388867784668535295670660795462883463601815020383426775350226283326463149207283304039236087557082503064569524297085334117746065512440469672964502954650983357593787797180804127655684381867237735093220750041663995360745603909131920717273939552787002964107275144584963283825831684951355143436644504520966855290955648855506062498670764140452048049107094307648670254261868864662167715780923755308040830532498365390407164077992045295935092529149725455083743290129014942391800048359638687959859678992602581665155351376426985056777963444806145739661568951120530561433462090608990597828596785807302609865992048955882472951756806055373937227146092310649049798841982070733842550495382852603635370654201586112973708968936345231160849812804347222458601912097156574038466946459394268202196349767133757450930112882293345736710306771100962686364255248113269846386844034595990120666081967795316098752465758515898195054705754030800059019593120002127230496124015696177649171069619363409230135450982171807825464090388567326002165886682324098029579145032454054857544386793997512096094996156763560996307812457976866397078360221023083167526276759593114307815078815049256604323509386491262281792922623334384651523745632566648401607729152652447921811756173657037352992922533235163893338366141066010510780841609604477683557651144384339961565013003329254036510836205185806585217310834574821125279985334131338368818567148339382558706041711145287454314381894031326537920675578118910624611684980897981631118774640516406589246876328852303999352735256068404449322602437221060464125788917555571096624253031361008184698336502887539978749013771259951544922356463979348621976265203233607888386009317350335289878624230795146860451380131905408881379800927666718951346873567697777394607713022538228351301865736527576236062270805958951788366999941826347245961125403459821302316556697215296950998933668169949209123167587986853862138437912793598275995929989228566818718686804280664862850206049755163825670386242311130185180378707562317757623220510513535061254611498976786124022591284594341256354820581755608086480563650314662824870468021495458613470941748295765502600250065605540524142418232765839059020285426062666547030740471150334108397964627250984639226022773927197147441076647672444594644823830192563744423162619727268120712155936776893225525069248380638680020944369586152903765739819504986770263635512190688405329002636073602241254898996229157738247100802775518220501043180770132886156680210098716692043140003014655458184681407714838970831116693971187739462598596137118169484787822048091589659195022964916627478498110791420254994518397968228937716363962069551611505713028074812429251877691841227976061847470316014428789388417458848276346518477665025349462369745965960354234058173206757482162986293061071705944955656529924259958582993167875395566017094289827742905693391323454755014446095733403449646580346484893917073982998121193640911031421492202782690867661969467239331341184392971439091667698122004440190288735916794178317242447650244297880842256763989381363765681687584088987821134638451108675904361160891482209674028230228828521512823842299802379851994455115340514889552724772344627884237221908191959395911605910162430396878947785101526612321110001460209287926999436419350269415396023584365285809112621396426574862476764665756692238912016407126163017275663534063034332044834571837266685322090851257478197571213912180272324770481511809912748442184714365644034215137863076464616575841260816057968476254856020233046158888067811145586215924742950512610305664331184882374100570414660074258391900218835251407194537885787791084408669453981081684088672921776283291392217419162321145934408002600510539794250295879904545673934722270000147244557193431619497151021416652921736318451561086761052710027031644126460653956111629889508617168021392571861433156290432996511650172989121404804980527069362533881739040870174782690412513298625116316318026994176936658039100150096712687933082531677601562255080200331905238361299214296771820816222309414844888801504880324592200535478808441413284826027318399865986759120865013467683248807904729806460486982566322950684113190304426570492136782940055460313746676672607403908817663452126490692921528762207343043267516245257083143879397076883867729852146544418107350237357940841344981648955896027469670809772586910835062173882641353311594658826123844212814724191631082812006510472274040362813316540694518849542139430558592276898337037045446956082198376504802984734532652430613927951696293429260158424366485647051801120575785385048221050747106336761598671621284329833325784806525588233021705745783243966735115687709707513295867116512020153488999357434453755146345184975853852958298077334595553621529183852275783269928105165860571403277707754734776703549892503534933353574825617396398801184965874440533069072162397689724017639362265511278292460828223207110557122125045904670452728053946095198808918179284724676317229986791903198988031076818629169297690798098853609481280104320498646190141278758238302782508332262667772046134555721344535208042698470766006691691888623677132066578670779766106138210577514286736556953788504350546241197551803536021053677732856755172122618812758293689715574630604107780674612949851098805599705743902861098751182203542282501704479864025560108098864655968449717670850503098827235800257861667573079107177387666957642845682690357623114271983308548038811430147299616438086633540542649285172844541638244545651927904458764427479790806232282056947250852073177029344588261613716791734727231352881824922274315071499356952206026483592341399345955087366754737233185631100074814469270069744829934643984436741006562325757909205043924327289889407382210202141853740453835189900879150179489839875170691316772492325490655217265061139479246599280296574201647843726486969983811958701209435908107303935817388203585467040321117968613469967769348304276937314171957613703304597564194161655862391127618461708208394776793395394976190680760238334429805896788266177229948216713529580536535991831034982942500519488838995395960998133349580986872151158404893843962395984855462057204004109413263274272994829971063686181055253134151342688288140457600012000455861625948779324198044009628077094980170777889892692374676845330943948003481832099188473539877784386309479004971834686571889307326329041799094976667321811811871154325734475212833142135979301081456056075994807465324290415023248528282750588748714495467782059938825504161127783645462556379239982524230267484463949723717084053031193450861228478044907907409713488132808611848439826921941550573526070346854456472547231191342618709720085341606158745121462366766121572043799830072229557387995365598819598923881350602200412600465684487580481510980826983938635965725457055001112580748080450981279930840911158720883073409191811136376832235791144316329684805084510413666114315009918078371752395240802279427598026838892159647892495706179648143958058845314435362650780297278337692475895416405765355863891807709555375990538925181997525237740531203543691442816459200501766161540976903163927966995431664008081918111354122032690135925301214467878817963801432604355830883955863349506527139700919318461143916001432145637812908359407475771265114611441142146012958218512472802971745552270252470366937235898542413400194391971586099425397458975133913683307553383640553882115359518007173634754907148813358320121769212917403299041855977569459329415587594169641539404134170696676751112810069896162912588681828801563510468254218191675701446433214413791890265634968995234434744615471106711571644632040877345367365941899585716006535581276002193758559608362794138608517886431735814272552835068377836266257051105295249705692058438167971644103918743384009093311996665223005380466699807088205436005082531435949365415455657630364481258888199230628453035915654312944722475343941266363646707789743271284267290767980253229289785618751768931098255261325765690412263688780772064215007086977225952448331055070076878685022830526303761061618385523737670645542894308871601378670599434552927698483650450641993630643242564663519376212434836977043470562731306104814366869985468735319377025887450787353894146022478572799858201668628960882887683349893894315777360100420864187751144631406427295009360425139406138484383299811446152686155907470856926649133871781764660706017612574224973643105164798340218456341519019928288053136532026615208561320877935167983182380987687473631013665109816598187748077787391799574419012260427793018139948397152411452834454882312440073205838175177730301638357810236843322801102216023567370642952703318356758767482191188991475891245064693948562540723994833531393182727608373492802011099744897727832225966479291179882689314038235916643044426064978344273360023770576838023510215289941979081532713883475520465130091165269966782478064516217935128509018358184221393631221055800852326739178324339024581599716837432149900849062355693695447778151489333493484095033471995058412256068020906296348293196607947261961528865461321160926131687965156796723487789367691703289665076462660677250552105193135037565546900349365873127563611717073943721391319825258828444486598586800702036752516407933484859595671105572248405075872772422734112287143962985841157677620583160574283461404000317564177375279321130363033155091473568679670662078384973451640767827939617614143022500203682291093245671434880789162521565291417738000130190058186287429508615508019751065203613142006307562913584643778228653881639525017709678065760874747186302729647180117538582002614700238087765643990083023287120929231932532064838407765244121291062713906189442479118269170528298296153629547606217806400284274408827703343580951640703018581810263782365857920010100782802975157587151336177003609836828897132792095621309646415304362926176227073354449694234947370489311451403919935845516647924414891444323055401790795969640582201156381794417875888635385459991159925227563730090189314632877769892466507545522888263421377528285388411279449935758572339274100790159602714330089362720825053414007302923830224463883747571397326054835741162307270255984747437066899250346579692329553848966206739896481789707562049932085727392736639955370518250916231809715137033939216824953362090725775614501344713042440266483629264161585804642892620305096809497076749340271144400666410330416946100950798668930223042129958032186397307298644102605827809285111515263552916790224946788387823222486261310714254575973581843632834722086417639582267212088366708843909942092234148443257237928827513004258640840598827797723423210443059036595002317619653839765270937453826612407185252472462881093573020594405104515067607957228353353015837757856578430341040453011171265641967194471015969831476350310857676371624371187960139254609682173489416716542322154766885043708724402840416567180724739244418114824889692519474068809537902279365170935089952195644187391148152476166452087860577656561439174809883299001095413650959528100254258251941891911696469651911426926008757727438495979293258855683915984745588605194185689868884714879854396617226441104735559855617711714046322526097641484512522332145347208318132347287411183869822791864605346845765384242871212393554259553413028868565805525637851248410908020664195142467946489917786677754965412546562087186254107281510753270993698805652613344439098708419826544637618944899131219270571242534850101703612086286393088705097010474182692339850272906059279707799218795840727796837643352543020672938084403311264807067337962104616030972762210852701645502382599136269837100428622393227514538152614319228857074907460889314538016461635236299022528870298982683983755100261516088661341110666297628975614691501985384178078242622465891653145289115811247281224716166085096256333356204313612938296273949994641113868706185910451278061422635726681992805831678320941788496052310340711427738172205156239857747852114753443872993209510449684476950638110766602496547623788639306980981744037445409836981645360913434746401936330066607097991389518534781197508796446725840636882466089280229609911376085023258207196068919216982492706095282012614360464675639460287092009392648426872526300278976373599902049691105784933858236259387350735534694592394796314303190363873769680154768385974164925545396684629895505915958699738703147563588556569696155014933839343269932024308448331776690818186426942407845588303826037100335563021885529361771756634697977154905253318412035399102789547998170058302601852129715750285603535552912919117958526958729722320928929722132853240503709081317980747725512140930650373136389848837180368851240800782980017055082207970493604064522209929695321739094370242582859274664652908847584766067598617564081792960736682530218337673228158692099571231144543449285075153783620525762305814002892361514198939185111087615205074032942210052658311018338179636121036472116410568871461194433094522849909999631018506676143458474319614607968458979867655246715715504571213436171077757412069496867260581906685079795688291160854055054282565301634696448556682780905428960500156486633314525144411407417908731624904713026372583064162704281900681727320197722513515420242357665616785558961270805167963469285123481238598140152326250218942086189298412352607366070012756276058571477180621506902573273642456754166621197551953627856993408435917352201472325135150587557486385522209314305754649233685821090262418566954163312662584894380020810566615280689286043509672498260807754259237829242203989849949590684370624438470493816435051406530125937869061718097294856228043163619368513628645927784341859026008734281901302055795824836228473726327886993037767784850043358579285079656755436676517983143283931786664243087961336572594459675952338039762366687345678060215169839628663977146211629159798479101384916124652515140038948805266507143438866364347218709842266302507101859572038682776386536057466859038353567370736490302914705135461962178740371198607808009091529259019965708168590001710148640532688732441446884211880118584621295506694821101717757035685865397992679779684921108711654696929677105641230655815546916743720991982298922335417389372231257722857071411388782298377427992407821132611436303475120905040610032044677359209539725214834500290751999623842279235199827005214945334040093115112884883157249335584658504971078008492477402671309155726230867561585479534591413336763005940716610331426925292501355580909812781465830128941693511505821733385552259070330954131298092756413744811445043063216424819580679798511149506874357534154062451557651555673870758772857984777537560326293098094314151679771327081241709465672055509556492032963697047576119674577383174062072798086870360697408659666884027074602707748524793341069952208626657948991654088436204522609968457444453757389243034935089784130065356461553660140302268378326624526740704283243220534942482181363323721883918326581484986001601243173640908774702779353154216084720548351696990777434568544322593527081782915423699146866033090620092711040822058197148217973989200099679936462658261626367980299340826520174966925934195161156610952243644893978664625797765362594280962139715183199752930956263904248697190365598861373040426101835637392950924679515165986749650681008042526881599752815594220299972631733128175540082669939882373148195415041347795015686264290918208764889296351251811195448551966532247923290613933070269531195475999861737023703550623623384178372498066638359109365364676204971110871360678624043823950766931135466626871895313575244639689745463314849003435748676930609609603556761330499373585224846245508700299733984003776200474699637924703717894385534078569110898468020101928746462848059706850636016638744096399610066212189973077519254894131668332286946952641171160115818854743829947886817409956503024901622882673690092754917138053012083079535389464616271766030618423855098463962516041214498503291071444320594920984916187652787135389954810263651374827631065872414992887804791768894101721690635947463756938455042356404262214182374294051696142092097328637028834948689082622922863424041798389770604942945411298395317751272484612575241952598371753438322780218671265754429664823012990956002697790334886608186651206280829040648431730644651521293667350095386175672850615318620104298794432070845269806433692041315095045255088871112745448171192132643821285244113121405186389774632457564717950347612540239515442373258608013152398072944389535688397855595681106464455849021034204990299294645403957481141001889918137364950303904036296493298822471186422182624107900482156658946257457510304684624976176646115727886541677694735102506480970894644190841720342964989566496399720405504703833446339625038464885900713173118893127155475851506715852369069652298200089635917796873040215556471275598185007476804302171995493245573066707098743115570410773827396830009371267536179448874979154868535509923341658741226620976192412380109264461174948432565628113641317537086860760096476263290735123238718222858612699745813733748653132207781818701604047972410167573765364361715912714809067392488142865068072062952206194307996890812923331310129627173867403229697723437004284566269421126370509588502529243505334734584953167688781340445520954691028829516558188265721173113638925388681130359305277835363577317760037947676325314767341288104507615818765629036769009761096913221496264975505053042702286700543335234839036820737105664202400918658804339295637840108633421111947601795562382195234096857605945752028539022730081251245386408696083238126434459766058476785595971142655697725285311550005229831176347945268193785026324452875245055053078948085333628009479053801334922201077409561697312374230138220947139589989282894653176846252466914645128995240521921434130352019274851355442483339938650918312187238145799568160042521648486763119218768281766420052484793449270538244790097368003604987325392759165875071240465886915474560406502706121764617822521716857239933011536886152073022317525944538344440830417682815718381296100158841001162649440582927918045104139270264983801821832931086945276123828294647450940099189049701103429799462662351662293159029091773390448233471192103680113670562744187250613889868969909691160281953433255838721535051434156206628272539235543578337561978936356993089574498124702013620701523877753109838972431097845010408287566388378954073104551021685791374960775123608397488147200863399682111520585748826164039116643552666931618965479912880155546497517398878759769246426984484981877079548977409521330229334701373075091490845888389814850225402480545134705873299526957063219774910044368812667763129590616847391297726292674948218725031461260111158012292864013900459596081480304378568221268432209294743747954681838308650913613405482829041159190497651562357676508286756875622293170712302394642504408618265404645947583703384690315826290507343943415851931542053749678950259973375233279932361537404841706700653232127193848056064809246943302401642696294682753885441858778058493134950038082593610041254101157088883347255205458803748542604904739965532034264130226760255864421864379123728026065718516287573355777963494471644154730554849832335587710644746560583126363319622528249466034619895314541394834901805871054990557776166281572973805000180775620548500024289497967749916367382959141989642828572169667487542053224936900140212325730285416618099356590506218453154534551196435283404936356685542811080095050470206907872100327603339392674949829329737881601645994786285414498180672915922250721999476249397716411486476941753988304153789011121339629141198759960481207559723525696561696756182481711019099244177021055245862146871060154965513771333034610328809949633355565217604587813569244868941683089306773905413057623473265267780356084275540156579926628053521299200493997711769937657664164448457500966565465942962913510108672213725181728646420255867637826094945898235528727950349305566659796048788027497257301849824375570773579183586331104914276975654046127009946641730373343243402603630782709003081256410181778728319448828240274415755834411667865444003333889007574855437932081972066514048526091054292906154079200728430635959690465920676524450611313702084718490406601415753196674297911763623561550434384766234131507173347271818392774914894346380744855469500875310576768753776335559632185171008091536029919807839508981573678241411154001001539983154267015968173110888045646025578681245385344949944577707375610844254527749075334297868622548756900615854312173113976241725590095237305443519174722577388764158168233557092662959961968525568343857954809779248921346822184232068662350229105034365025112416561307700520281625127506547288398918914584236610615759385365449973477476067805767910098985876252747888208919750843174121617565175070393296080027828313462074976363435489910516544601660165555382423069502580235655954308166221015351219909919776768375868680520198569416185179130752842143289221706784951958217705497677667452310565561600052731791400806726988866301907380576427607105595920825742207817983432616386844083269157319375456282556451894948783632907460138378923012448461437114943299600272543696707088258657002963333284272958942061299441740123075865504350887166082401976488005264630050665866128001903393505004655653216429043063947903674842784539992502375916387961141632415771826320678228361657477474697477894977282005269260098804650132340881183448947260397768329832323553435407144455419868922705579199931711218500288126395680872427976690314744338764882265665690996448133757040763838799013346548081772735121621915645858620902302641884615662310451329153743615699352787380431794601321079178774577554975708285520209311477168574352091303729698375460476047932640328490070444298191443842493251835777925125318234657181446163208702008117642677595877466213133659453931586047384437528465700946138009978245600763243949399010774692775590382346747510882919937411719710254124678055614398739281006029517111873576650951945014500817165131323103385033836714228145329055479043491632893812892554678057821056624604206673297774650407839419468935703532201639273553867844416792237491585643785212745931336256445069208597241464393700209719993326483530652594301597593389355127360446330400524913258205137340394781356260725352904811254398665631207364753561465747517116833865452334114427524328336779687971710753882366521009130714471520906050419536691442061357420632874080614028713199008744086136713176374315129026415806923393157669093085534211254909291351709060134209234802173310376593309873505547360810915656306647654553121532526614894611426927897172716355337144021408548929094939469980682257831838887745275212561028103060935863349213162161656976178271257305361741055892670563761811315549740734115586600590927489977062842871671203276017739444088111284032461510772074340789500722710459221262830160958486238364210463030315175173917160136007984140265048980155896280993402232307827106685369858968491620778405359864392961687713368102838423107109979922309514688694622777951319845149726883443604180320154554995272146698900476259517857024557756771485504190869124856133847042124886316110923373282665386983893002044619312300842261050311624652751458367655490263346342606826869163201501816736734822894372347248922661446275782292310713724315047786852994747584379264863674814100987177761867815395326989351682175967429978786984195919600495284261632632541678376248444943339393851448978752285411542653727486998142430233328467905668406453401442343152659613171643911282154276254700254234915832886091297068606817485510506065410135427970146980303329745626089040665148512972877021392368939585817090979335397313752035488650607984763118882818692263754755670968298842511807958466902237118102547830144876105313169508170191752289578991855708386242395564509028752441003028059676078389145721897486057078384978036571492218139062702107004047219530316160652086665004001915367907760713553315508177228652693207617858224869830299492851216030571774460357338003286559401055490425890861416470965090019269728055363342375383681775281514109847952126338074792825176808858039113177536349282051254915010708600997329145109645092668347254946193783616398428566524017658402378732287609644213862673184430677987525721526160563996499045808872989208726354780261789596896247550376151892129153621243629670667905101174481860059023110032394109095204233522780032667533817956331717972401304329414914661772235170885878149605093941830254102703561139591695046455347173942633301388246663594725014780458248584072210270497905343371752047706708274608759528933988013354232882221444106135553237110781600369562677105219089902452725908650917304532354108261517851390545473370608499980989623879320209356982348038762922935440224536999065344052930536502126196635861521643708819247024697804651253755551848129419661751145641474586475834439281535185176742571971332018600420869919425780574063993032381494152046564786496643660802602879728560055840424488777213806333912504143363814367058328865234986287846768625924143534706532128864586975639588985038646335010037708897244841663386194358539304486143500064896275283060715101876520584491977909196367122434458517084260628240108533396476773962738485722704129677521816376872290787332882917422059024485576939029916847648815488758929716991368642743116237887717922841793984740995361495074412791267794988615989541457877864776069762092759904666594800109126419944801280667538738959845598975515689727544976862585485270877160278330742908189682503743811272157238650367587548609719005701515856843288815497275169719820450484248644171779763866173712838493385176604682532474661659930025981006324566444892475807640075513477369387470459026878050816787924346243245319564603670926979044439994169249958473109732208586900577481986388474911455303171839643704998999587846320278385738377043124253845526395816097139847127694819614365143135882210578033555582300168654510701684745397384564061850921595379966635036298281306306328594944682174338202267731172586552151951037232812660015290897334870325350820656104272366026581374047221665865034294129319874150744737892932288313250900966252081902592976358360004834136411073482782246193188970622979149392538916654055579866397613568235837696797916279028604791470188521283296501424147482840889094480643558348406857704673615958806659978846147279471090869771215031289300323699006227031091382403016765202902754485244599205516879784346221505176200370488995424505134803703427110263234538818319879351147767321846288532858983685829786687158402743870982493734354314720232993512228845041293710108924278429290810033612208961704951785357777733230587727486174884299532216466518331217440371242183809740440572433282064917528608428279608519657588132699037396330002197738417117721315100934765154508570555753344008475800869747706590038501994690703539970652003949066939745970552250727786355339786949079238104326103238706921882375448897879796816257364094172494779232517763551773799544996916482357480912702699653198924783584696633657252238888223208606313487225573423230873400976756326898495585363819462814445072567521312737584429286866388831409248657729716932337397664391399609981796882526476567345076707499313966043076581473558587045331564284439851100132473897268765120898642744843628282049223129880500392717316492955120875194823429485639224564708426259336536931260961194780958602003836280950404431600293631077720107073102469701448097613835924778562280615266614670945780011902911907117873724612225331964354643654204980558132409495686704335652010761570513889404884126644390294714340915583792155660345987768931369592646472879159037214587229126992663138732967760999983495717966847598598345228675123554703971397088117433406469086825433882428945044622577222147736841612901681764038871240172176356975302838679674981940494289870176078093862981502987120337076210186477190252937870707083228947626836757040231430891902709489089954422980844820337887144666980516793654503179394774092226819338166431085653663663835850965765020913666077344232486554857537582880247826247754311189958054108515608168314655466385114259252696867654979882834234551722704108019058497576152278796668961795284601488103557994372060166258664719762550477233070273157133995181952367858990983471318128715324573512758915021995403552110810933224938733393065785678660943963688124759943976601449016070450626668221366711788732535141845317024184965458347891910936980336166438243942339175368162988799304488978612040688937578407907934296834551978961038066257040045586416710394399754492008089745481612234713560105097949659083812354802286007407117549781942963489760956744018389664185355614554064688494796071235415647902122328574946132590384583984858436915846592732079056031004947110024402718775760637766811857993042402257972608996989674194246403856162826373006251630198308838778715194215308779204570227637352040174204236763493270503186897829350916975465877745470766572782216300320861546222595185509526097923378317246688972524050459922704939041911438417737629499344346957760653598262770611327595650903234147449454132546834798878917201046553199727820422437288594604541815247345340099589670384467502355648418848588074744755578512313064150759500232230329446493493207214945344100469834808566816490709266193753723484128701942507219705560973684591729892847643516947552967410123355099373931529271735162858686265795087122039803779308887552884521522570282876740494830678149882323111727544631997180178293224588412807842240219594513582036642178059369557250130996456852944915099237731306958867749931316651008049993924148542366596753914195482843175581321812160221935094034324370584412740104934377869517465894191388930569343959700004016130185939822939068286667661037643150587440927269861965056496865153891411168192015154698772049353755895426079103916276409123203293657091239062625042024261860448717562103741407366499283385027115956673283320536091146542406239552289695629341643180805124471354482707506955604843704486293174837453429119695877563313023215374681904552289421849363469303785765434323239761989185877629871411888447124541269443850044324914924302845166906082621281305609125438219715011064316730904256591872767639150787190578082092496519737630876906106943332705798002581741867736808198791104504455326907470823898214840237569497002437397991313083404019447850132010454344679856156534658557650094734641436415036856569005457354902861864722822858757773270536712421812098040486009888823492844894761381383218777247536934031643723038308459712519223698256272817785074506206771544765800994196910038102558092139446128745684695257020142931287100735603634757444637937597785640191709819383045327375504272266899799044190683459607427600132420027896964877195545334114042882536075729968215287911035262243909294240798507344601636300328620130013393871789740309873330962463920350194603644251942976336339200543934954486844181370431333160828186574277223132345117021197744591057441754169636307331632636433258481189672993510245502193522849252217982142825075626873007333951785996971378107347345554092105159251221136028119651830523226815259081072735073636295508435832136244125231761939547033487211654104971697736629599102208949485628668467823508282691627425364934126322281118116354708457500117571177987136228754926694081012886295453985034148150050391943071049361482051108091639306904972398844223428432941640890184782099429477539145582404976225331580583192098119298091516822410673294554927299319548781381943890087692043199963328642048105294357677034072669613700482506627457263336502065662556543344910780706360001256469612053144700863150608314282353534570422287766379269817823169102908066106016186896337373017465289416419534051907173594118589885894688940234247555959913046038604209352557354337572575925234017999106959737330763808542253972313034626754872969717187078762619963207104721973084088334285324579741872628586448665965489015028800271495365805041327015185839717945975896302203365193088355494712913342303807012563550394685608894294346644158150471081061464438834638764910611035583999570102005878432361675217629443753895614066127252910524523333717768561500776767986833496951444724931587042099974727638161967965571044862931623424546427950200475168881774339145929246893794429665923071052276436846515126886748075055949530428781990565962791483007440535818237123702005513563503912450156195888886716776977695388844721792313981656183220773534954146280315689437296892516794851796244037354867660247165201335409793456021435334444764064967157688490356237892560423907720438825189609123276002211433494756896708896324480790536559313852054543628345395854833993547557466399161976614341387372276109577756672569821267922705840138234328929928146909106220357688896300000707990740418571072863935890984333604377992798907951512069912562367012624147120685560907287707681619222867490807256248991702626847218453275451928375363185127541443052891785460051670884444742720912901383506363729603141388142632192918334092565340137402374598839104313867215317762258264457881839810662760695327723492017355316045855504156380555555158734601300228144797343332684656793359556025526452407449315833365254370287939803609087784625758461529865196534132932366322561253714019491810590490657569162053138092826965513830936677565377828214068691351457058321650198976285017645139834997983973939621537417022779725061538123806618923515257847226728891551714233763458769898200701169568778543989251183239754953512461019127556382962491915049358992193882692168043510259766614453139519878911100386830996217914837252646543285154225949086204387031507043423145890375228405808732472649049193227645989906395734482016263068441138849614100616206305947787008074871096549077230800303776532331643695924603455275210869273063530888192806218253281390623443124153863871554165479272541041380351056320578998069564036609026675978457392521926262949995865437401707193677219981838123740036646378185255715051072516567576039239373711746626746746166363626047873576647841296088218474807366954046065747107402634907971069256276710587778328015019203861348704703786323706917059439687832904064810513847766522894152370280720697169629935291661006055505582060605420227260500955571456848364461737291732527649612258249904256877495827083122857773654807947120968085518981762455908330353949184420863701269712079446181658170418082638820296033140698013921229516497939760713708054861499953164572544375747704852595337874981295902161587679806606048125617780460045225646429497652984718595479784873612165832159438693881853751973091656491619323112375739964544181130331920840972216958786841358181443736749561792165136303734648592991343900673322125578936144334836357372181740042829684224348918538637593997410754376277265929286961053907179339155748456548723118273733620446196818456589135429087406693723127677417282731325570175648385684851738752550194805457056991492719289544109290072890445808802231495773178290953129080778036010027494814712844756982904616027266784003995881715942954358278348193653807357347296628478749760183835235286770200183361452682749445743281905874160576561995352223265014736089396582005082019340451983901781055297211059433119230987443259805137845100440332875617468904045857621938612814414827954982795853581993440977199482802967404820792720528063493015629480467720207271516354172807718397888452456091033764567923700391132038525066189330877739954428174958795909839563101320703581346751047768744854208614717158473078859899854101304845877002300088434880667857862588619699727097520373086089074912659180831761235254552586698683589381050307853028505648891807939285146127713492855660591468942004254798728831410579919481961055868744562656183699998348242455717341019204678747169609091321383823450437499183088525433898796142826834593426841168516419690471996476117197526403102881553575531451725803798085795467499860924873767170700512454210266334757997764838439184398226995583797587437330614866635634417783834376457153538685001622693401369141041181918325917998619331973901583094349928748040594803514711154989028116884042965233079738142582457209949975371128495233779600888560026759594626421204067858188439175542874937215127595748957215434549834003151142427611873257487382314166146818064544349601763255508511067255013162056653296395085553918844083011264270493930532808971265363896295094655021749705223749584153249391228011558842018835747088727911997713679825151001802776813297191035621828939986555577219010130408934437051992870756382196618736944586253549563750240212180621702873252143437819582723922112286677140592268313355283241202752529170046771600730920358313969777696373449908971802892239838695347888433922783750399462801515202230040147770384153722868533850404921658444881269334579604430100796175741374274709586891408636213665414289711931960606827635589014865775087028629834096919708887704636377690091578081584424316905364824050189767181314452299680666091863065487140793186714862595747690188701340886669132514434562685143455444644579583489479617694276416440308230311462651563656972026164775357335593165663522965464684989733613519201652890948270234361703870358762572864475084223182953784902797451799872254890605393970246585521668196574355259059368255013468856154034841552945787356791391502956894218915921782873991114454752379732830419057256657072461490068723729234685227363447271292640407803148914509643956790278406351121561709636858296642314958651482014480592948346714560757504077456663596187506243633891110499247205070000792767957904776964250204083224096517078451430362539454219966427108759282629906144628275005887989385025895214138991603898444029241909395877612141540197929959588635888992992613548789012099226360386217824691740417236903646463603380654835960819191548632356301427119383922781129612743213700617257183859597227242346763339298212841905237892045879755257589882893449822078581023967662481710181258491866097493569615336133662835441795331366214340898672764789323799162752758913699087421146477687297673979188011929663393687334594108574760077158838045552550420362735625820259698129478944935979921304245476162455104590550652651105055078670418376216927105084619594583516774320227215016579420775755534786544029526377918592917850382322045363574115252992772618804496635082762737251859968228118840795038008012725868999021737531066080154833868027093507956803846397058243611733421921015685535417411850730483571826120261720355842072871602202301127443107345150647696239129355746373068762859502223145125325423218790468818988500614535313325932362580090177036901729302747110498742085628467806367056828239396293837541866984675231897519863131929288419497349914126747909336922401976441527688088307603290130074961692627400868900695876045393798151796421097858918498136489102306565557255271330931681794857666550248137515420669115275074077812463751116344068313075055787972840860391040028407497998992912319551583997828007295267615169729702488124378907523230995631058476215910685845012967549987821872721823699835652345455615969979801926633982374140577029078372808608108582916576185642141092391896096702861738133608616934912178780293987853778129611307086220099914271559150577200767861925140687798952022609802120004659596802774116265178598029875999337215432871247649678234385313148159567894979634282347641604153926751961769249703518644008255544915387233847745187728448982204811457284296920812480494258996020950367391200799841878343816880697433777657219923948863151389204379770988192626867710883482045983215809163551129302723052919899714364358997719003909860562049324478800960402543470865185085641101704738223508169869641553682434878463824597440603945673375724393988861240271096272469125624770234526559245955678515398997442167435560402593315084879046647190503683863844119610487663285814250776832410637969399375125762423442647300847867577730968661663054634539942093800381912627950910683207691686785974192573145086595230781753258710911948953987793514759310296381463340128160032449136586359068659909264879403653301310000959846487541733215509328220132020972458147635866105183167269721529964518971388565049774873068177012585867985437063794640462859500096235160325510073867132943501836706838591713308053128815120928303534099212562608736051341852989186666804009616278931682410134804364176661185941699562419128827927605291486157945575595416032478570655231115988257409868330820934912433171962470403349423445929088873474481133585892251768312302982594058606834864727276311286949785399972001228794132156162601019770479436281202951623472918856026843524652379068429862238349515680202481878446631106543767280762285347980913129939778093064964781015687894012286807397905015578104217721865102725290594451268028058359009024167757203354622974400106159794755704037749382575796067638892787807672939248570704262436412661218430744849759477301205531845142939314784635419176217513157142430840734698951386524510532246711068974966866570442960819516647032480032407459968063084783451672019245700323890952063068374492218778186411212846094157395262494302660411782549790030161500316934614132993977519530951201961186552952925930985205598113686087166068228756187854522999761347049273410182166962805829971050112210426627387835794656022072895728042842507537610533644411111694903369352172468272710522572432878219282468501132696279968130242409963225501521293608361101824125325805720258270283562554853079841740567654100337485536212104366334712952146290239769557375621240135441546584266408977324682836964191744954911527873598916997871889162400327599210643462101390723411490697818549248805346824262439760307099122111455899107317961430657336583562472471817603865119564809733927055899227961772923919228317952448761572907604725487694492790639076859474447292340319779232571558549521808682350808141114807873690125995480707602404194901584760070847350988453289315184320851155036821082888022149894414369530753314796333097174153005119135984486935967710760165210240216103783244535607147073808154527868819802717495066786027484843862057339510189482678979265143005010579951330878383276004034328804278729875654664037902161284604226765652954845533914625128615447295750768825834933623913877969609546577546532537418123961874991132271049314218503642862628733756530471882118012880405309038895782967165851198111770517323787541248826137425291449360659432000545532235958231304645891885403681020717602786194159544221071823804496381961428735655410031408415589287460500754823889113304480866924980288296721162921196776664038389699779584814606071035705999893807111944460148294115043564532228969989868845254866145652438328646724579571283733012276205233599410962711352107124162414119094952215515907485797922042159417389731983020328924379988008222242400711223032806739132375816178680887633813464136792443616864380301457052237067006363374875922328610390763766688262115619214941756858346842089738578089532671659007018278033196586811826025882496487326456824629241080196801994593961811840066929077514603175604710173137304204570577495514812998968203767541285216194270436962922563421274475523167195228416179658720077375983496198665964206850090717272230882576508407791230206062385060900641007534174347474993377834613166070985769865283270090675779563936191378691532253171602056415559557939114803615702933896856585859430542075924506751336675108624697282395086467316578959474712607506116474904538995531600795485616553555573389784365264081382229016125033590641297376978386814206696668266193125203525178645392516309596873291655594128863659196318110622658110313483841702328467856747437049686030277932926352293797151807984777560281422018411795721644512894299433442925495568804541973804107600980181356932115219792598342042001552797980905185651331186294270727683219111083743563984999051542260755522103523441660165548546543822440354086159191565304767616855356152208182252188452874773422297438386489371338678105384040765976285926563749604554116057592123121262752458921940731440631958673026709596971322216751059612545127618441806615673324775956217649758191522357830435724423045586077080516941333491997225350150700492126958809933303884433046035186249869415869799157846369198684242852258156679197622983084399496154061568903516153308054996745881113843264899589875668011618422563957247006283030975506581421596285195984820267836683316404643962088468928979510021825244191708111133791182532364743849605762240130041807306450003920557665744056770989252319825366462601553997159825021035636653319981216304083167827830868267683908723610046074413655398287241966083553775369521046125893057729777954074720270390991445665707385440870549551950866737133326656158466302065503804956343198519670720757722792696479481374249779690516929919680648510665527916190444985987513041913422037229069487724588608133689473078949735407921088662206460237747639427844604167765499255610679171655127043216071305883525669466040056389319035621005533118006131488603736327523904254820678875517598659930955071275084262396049521639282148905626003328981114686848006846733779735006213691661642376020396608755197298082354732666041224715885623524857760828797676810925262317256318540034281764163459618317671215859283907316891355086969147823343342331367566822765875854785447366227310381058701550187834493353747067329388577838535855134335877399570113016114627799925259559742043474954278959902620910336553732336577118849469523570596593158934070105220450687052630334567961014732626384275975361481035432280499539061321254227306980135127914861352524089520816613586186829010949551848341304110883418404407672355086351501771960097313194474661089026340385857211467421142541448722377125468944218222649765590905979535142523389578857511373956241412757729544168109111325321445245793141305962007268059717971589978667978719606030822660957504424423163744086314367945525057243598654770262655728275982775292328957032774154289299881667714543871966353405650141988277142772885324448336841741179435910413259632501507630512181964327327596762921613318316904983801642039489941796184755057049459336787745901978237397037004055657816370833465772988689211986854921826175035648775690132517355817669765524181853519212068153431997935358371100047558154737925734048891549365099476054065466900953203069815992667112584759835120855064492867693576837300716581167102013406212321992069294508887199723385949231498779468250469153766516500537482585907933573106404824440065299532347633653107971132271927593709993847055887520923058818471555780748505679240436514048338505631944269172590359892490348162477451563471162224502215981389407207678120386919780361414532740076852659016643855486144707876511684128367544587172387536992692617899330986250427764356521924123928112260482711048556642390231338236236930110993660771808146730172652088944387025570823185482536916971220115989735490010939223483746061404424011652755739627750565835546298192644692359687360370218544066848629494250980701737239961118191125327903868980233858195366707586529633198479105476042440857914872752887189239564402572838600103408248170856530058288389699215333491203137141146890050303791334476335114879708772463607131925727332064239454098853085444563675106870858307300843663705866340763412822436426781096616303108775607204313087376280295250722981837283783185209735990135359084001799548348288488487528256806293260132699688656524740180219595887644557458896968199517410472327955354103822042506527839021351911201789372828158807568674614867478903314637370844474587947341196993021242224516809469644700987119595536385591092155520930675474883961728839877687680220292815317025181196630248086196643898536234192789710807383503974417709135091167481513396238204649647970769812283522835128332750020330615009504870538632965044962728579124459631091676320896012749280479218528636641237762642516434658354581349851397451609005432471694601588970961453072598390837901431878655433051731286901462608572358056579380787784886696048311508139190933448046929288873697626226451169626543093454134346982078171972548583618669337185317698301432658717752774112959588512155351695140632239834209524734010096915774648169312609438132758462711165425405453693401776656636351084212857700232127045414959668508508124636610661019752995734996644804870190956727425617995186988581885157229597380086574399699816628760491754959213593798134077707341725048626563323154429004446283877789151330465354573728701246229112810609599101480828645897618223346008945938250001608020848407378643694646442208607490106839180197287181936885915285165236525559045510185806941168252006444200500686053525493792997017267252859377538554529756807500017742391782745462271310010013260764135139381154228696173987676930213708648463574322034130301238488106737971478503772676387966550774466888902327623359280996974512862367269345540191244917828024957473056444279860225293662917343160996335400390673433284929243155351554510884996685473404647219490174093655311443289441073266947885541201468550052922472989820953752185522390986991618464573284788827168566389973460894885384935491229893817985161418189856501925131420181624374338153538602497709392192330410955807487720320932560543542911879165775646998744182454762696396884511335950809285890083451691929295308665023007283135386621559632222951631505003440293732887301940144869630536633534715160046041613718609110609095790424610542824652573556281467772524745517131463544542106265112801568056597793384430377319878515255243368465742519196551377842685048996359147478786584161662446723191792660188570864255409545291688938730512071987574311824723178924308843772631650715654158956199218913987283599968144739114747288881170200914589927890879455511787755980417502133258424270026874702272665913418032721085204186397512836228476323000842085732274907144264672230321548662401458751881553879005404014827702960422253158522523676497638294109675057294531424066753654429558529083852457263285327193197027388708978126408888560585839343031509154607030025761758145210182087124365299720293255286292865735833372882228591448171124592091664354894384800660194521224217663461681551712583622614947563511811909345729516376241937808985047349216208366395995457393916792328679663349555171317446076369944648448046180261297407141441844013053783362939621806492542772051843404697745119458736769640677898780146711282263498649404793139787867751143631957462016638202828075922109301396973932072226352208578176808008794098766242655936928947686647402520116638724145600902234620572639944776799113340360697693940835838219105213789017889402222776577744679920117763566851999896945370043748066438169165490741714545752295022984751844947109336349466227583396404233069899660727990991758660992529206236608388469294647403734562440185371246656368608889134709303979347649350601040929942876396274832196848964815844796938642944461214510466245882258019167045854380480351302316283294494562776308794888357714043119898544652853826619996006722078300912856721408711037125933624698068605453658640251375462856274934680387657576490303080414958486522881586296930768892702080851945299039718592444756719623911876711131997261886196517954037549502998723040912806851497796577897988382153111464844046362685526656493221724209262777521954004252194679526626781699903252492036744012007091642814162876523505484532016657451849298007987800193995100969229210638975520210423660907600969275469537684131938400046736671290387564104881034034516434183427928140903917134004946638026868124992151335568178917257061266150029967064266311707935279233185604557539109787463240196778831198241012036592178485501679583182925323245449100267142939053898296737947980908488678877205954818333313268469887917905981545460610048724474530743653987212415407082460484476871878440759306350726415465920530986521740308135711229773800393674443507182124083535540625517284661512670462736873381432025500452662730824608249857566169095680660078323680198267677431261817247247044467156999566290466195934154470017607253478423941735784304015393683134141066294909845663244766477137348250494805455641005885170672166534651471503560085329690432557238822148729697438215306561086489700532749195424033446696416325801896085883724088851110591479607032645882033376522322780195631428990003180644174671703588959351717700742672823157932722650857190413220513330013825171223548378183342503485282195732872855712552427600551247455096199098010043581642019389760979259880883761346949758911872509991370540129388927541876517996809640136388947273690435928652591694219093171707386888148385155516026919431707027596198241061294289645022121020444632276292404363462013495728549096244481742560667799604077954733913967257404127510576039389615937038572752890421803716246016236612367588297273568626832935878576502363245073479765409877923430813193995590033231281990643936613775662933452079094942667867783753834178358437277935589233477690680843536546071638512191553651451396987441933933224205717523181818164645176569860293652791939808966055145554826206698194610398442101533634503679032653107337662036284169355646745360503372283268217991289478035126453752687341391657557458475305728475666764642149453682627997760914044846433647651891813910052192206935771210425155927801832650840470772041362349968273366149283236567052303167466937797371232855846653613052004362615639193456834437432799000470199880879885041513441756887395770173005809067437801123310180087945783508284939425288593467542128930845726826257714775663310368084975850938113704627411627731628065799052511993637395757399126267787836353722373674365666676366779025873549492883543044863838004506496809842263764796900518843699355518660217802963487359355002410345802469994013531678491061692540864454749516953357841086086898314955974169588534401730469821403236105091605275137973029252582703149756751975164346471758221387194486218454649596469140753468999667436460611182377342940349465177093232374440057437513932025965516285570057857228065258971306356797399682149397059841083307736236914096032176798681980006246461983035235323956974260758672934630655478272104767606170999434692206306422268056265301668848102994607711134142371249895655962192441974043548802774729621330760967232734748013526469970389564082018359674617445013531952677115122748877395723437133522900414367711512686745829061521925865757037444086274158525293128994508512020977128229606210585004884587108243296598694817235015498773425848137921288874545819931754567936781363388515916575645736060570620549471995935621377983394321740010044304916459767610054567194509122142921482149858854245242556167948895124695549957225720792708887936464691988527343653402784314199510857596771639374020650477445311795860719086137972613216586264513593635442445998752112594538280124143601521204906371321133277871089606157239058266067918745019882205841962792880555373156251970192225046810672105794858801615154603603091935029007506851221562208536430924257364170852762264450454435251717711609525720396980830376099985408045519105148660837799140902841045593765981878895598367255018458283167058723420338018467752537500740544198502596984924451131980742871318568181843312502285934231597829551322228151570388547992393183097248054303932830671660413986084218604330749592032227522527365957094503051927652743869736812241095904653258977997196149291811839943630257959913329167016230508157900369461266625477586661624471945925177667959604703739220106467359622160543713220474701431169446215660997480647463772618383942713185591619151433574888720082907851730097930848513379876541737689687390601509707531398435846395615203870466419208078117121078217543358244106456753692733300386387990649959781940766999952886825715194235673807317482710383321834445364040600908557076660982339805411259750470977980207815023897932739211561563734159031714539168671332904900607549085950100873136823466324011955798784864334597846869249224493777038220776353800089160712079619605983280628172782450069864874096755770633029950713947324919599129352179615107450767600239261254532378678925396212917962035342663358279983214473012328291616186940406748989534860435138873565245630328959098923470084341930776217789278262480550831318608794927527297835659123734895560313977504041970815627911619527455752541038369667746242952243933180473359390133413173988826306365633922731185547756597691171384618832301302602237919211559263034592448493431931648167411062040252780105021454865426362040958614375607008130334174680529523018592643073324237578628195935905535524157235504508943974276768497195085235042134557367232114451452105795709290413591927586322716986718836260391232809720589242940191056157659230631224304766695072087158553891196134704709930489867873159640209530242345702116729832890549426930308842598994545333751051693141061473513717933494936023635041823393650783166610044890469908053640228815338194129875179828371743727113829144852367393654672766860037895999705444365855424147791062664271264358652672895955721182781219827691372265148836550661171889160394946688355215861537721734812944700473757372486312479739093844966513492633315283506570169149623062574173892580802243743659979306133891005951537220822110492596833269882726779962726130261119789512145230180485476163450535002371873425114914166434551295910362336059533766629736248535316956164529042295042190854768450203086918203025259783870783805213334391754628870111216452424786218619598250023933041326140044623669819682648768206898025827511505378253224114605692580716929362540464020633791147593929799954198990739329250951448447972593057683276791780986963176083089164678577483452783706316456282303851713720526330941372118709547937442197442494427302185425188483337168125270081512894325815777979410767586938103506149217500458642421938780812560286324575022506142025702665772479655182211075537112005959975158057615584248660874246484837353550872360178323171882774290859578836987701641009332009774628641761534226811082653357488800664811319250128129690058834979637565145352713638884584924927054888598608293957576352571099995845921526716324245357975996979309407431819068810632994840612426956932200815979904043068603879090194537086521551349299582207837073853101334231264138152409996805961522367585683960586808701601983039967135568538631625875099125777516006629568189529764019279925797798323097244370786859352545391034295091126833080442486133470659353419777462096562946664378688763987908680704933863110067236342290397361813909417635328262066762340038280800356120420103808091581485669862436024633036004748951863692872323160394228672978276050297294457597068862347466142183081400480690308883060648409005345120735596366890206046238855538512383768277053448885379950875029530588570700049078255336046572463158671183508092018653412179390188960697131089484930250262530106389789066612255837048919779174917991804111243797447017521402725585120361837408461988085448077991099898400935408619856269851876506631679810590805160626071872151738407566993311798895288167698334119922178252533068765107746415358244483209892638385336400519016707759737381406133654691002501236874954326796501250578017832931758635160728223608807074924262378573780235106528541964879328626554890607729052139857739267256872767513206149013920972032955427324929476901323759722553878274423918505860299564168615043806402770166301971361789072562927204784076107346157526245333198933641990140937470853857329783470423367091588073309054017495809993884458342646310719546883227838867484670936446634112537015648280105470886938974600996758282420867082715452934916216316200605731918574890337572445457662525585739846740803128145020736882261958625452503727119262346838730715160363553959262476640651086849233282984122237358133714977064429844325172388706236018050202103203320023713709016321082784929796913434878940996054466013458941454573530056448354025356948852336600302024367494545288095255998346893377695828028591829720178666263167819520825340404232531071279104343868638345331084208329725819621286743339547080612806801322640340678209585791206368146248725607582888038394075954032614438202362290144932540010231018421178143680522120161266713578828174230357907831467417322230216409577376632960515687781160946784649459242021300611112206771624035828621728501420101903928917527761029326445437017316901601161425348138323791099090759958524020706300319234153038174967370623981705585179296649322848557578013332245052228322542687532587555617168121385159900887313394881536274974828697197306452202424967068236936585536911748661238919225414209879151110801276840140423901431500618983623215167418649340002536208691986694687875453233786866617910086723319075162572764892746082105513354579582536433184275194860157674337471702093717607582968728267432825335737646329959061828111668344023439816582386196484059586662116096036877076367627800669031399425932427960304736421155232893114124656559385328435628258906032798371580515852282107564911219215180625450334887983094847940258166042582437478783201641088459262016835851871541891336609393018709001799339594846997623922407360955428188682012055958746534428193682300881702628425589359105443125290274281321830483190619002949367794274766178642315835288335856761117327150665256543151960411931804138858645662683221844141615623915730534107165284533367286967453021873967956971044415965104725713618088133864944554167596103068644896577429498947354642326058102808597912318882869809877707406357174934270336472401357741379672194831315391959659638203348045292680570267214983844554182209536921969930345040867340382988638767853650438265014124960225697594155635723038037707361371197865303661729616066372003070432213367579628020511178785662760775273624368529074868126977697915384874145437163431419465114561997261968668322080731535391370651440635772203571026591912735475409987024631319651202535533996967036226530669003517355590071796833709481370932888956683610488150493728084545587194512411021801947913581276451354291757880626488290983143693146089941357179349329055057634365677390267273828865031667956460795694497331891287945883274426076874242748989284468863448062804355674520625553019143889023947445143578560119756113765449899232138022238812865887188923266848121765096898322805972787811700444867235937973749171908743253318713352282748461647850504525901901622185987712283754791010795368247715710956869211924885031331651300814783986263846845667870643036766675626728395769002007546503937748712996487359996658383931980931555866960549976128904266562018676936115072728185095491839641286925731838594856363006865917418711018485710859245571217725872602229921698774353871035638678298949191853726255595679080691639302027521207598224024533324149354101143936936280579334152932661511657722557703567227595676280745127492428612751395014969936452218480698048201537277258189182628567365943350875546753644026387139341364024807369097392132104064230380718248359618553702526650040384210487394604788184487801636823595745208174334908226605762458807930188378546220989911525665835720903163177714867503813195102247865866400713789462059003580119778018923469635440396470452132883172021713448088012660018721304358171365231917977919368566855999149396082298357676394609457303681842760450401185253475007574377284267759692792129826847164340614802673915908378827185680570844222766517885913498918545282857265926625358644172216781188295236378077481607177004317066179866411695209082225279917572082992242433514485792495016508648984246710741588476146649251757031659449778590650701847429777980575696040387937984187088695490773452552540166160745936115394488726564679990435293619700106230984765097867769214925483233366637101206185213844050022668329601359222550838126418227173604033344678668613978709310922161335206480843313336831545727824740299592507949689315422088518002714654252363838865144880769207668632969449722609897706674577967319009479823636127868496427680136871738355827952466969905643410837498489499605484842748720644569995821371042843285289550823735253899308581838181207261861430403940213956898996921347572621208264120634441203861450396560478398228581313504544572110790540090399945716968882804389915173095781157140764048574446300488249890849680220947271900634072302934504773556933756336446226186970724450438464619074854979418300805863704382762908014167359661976108318822171469387011140201632051924347602586718101698722751116209083178487006160692642288017777984429605518186119029184183387013207433470900242904511912309687007809711162518049552957211913169643516203341350365703595815351615221867854211772603479985918218521125006232979542369720176740200498166284038758771460600996008629134208287660173076559869138388004393937302188600454067262321578810664306182675500615132007510266509636915692693053703116554695944707533943013611217749000950647273567983149940285396743681277201745427576036409617794420383769233449891846655990371213068625636106095349621170338541372115897252578492197525913058431890111369670645294908873412082224801887540797747053043653584926673757930246924669709963938190209481658068525481483399866043654703666377834003843018454790121966659485641072381958255855840761438728231854421082817635769752042588618135431685618269381114715546182585907833701497842386136124744609126303157101989162427060279259513848823038748518412695597818899621363323640269236822083791375498703611547088286912977070401985709460216066388871224074488344200104253976487256719364170210438256639515339374385330699020046515831235956236699775143851139082947404240324444851348502971744351640036339874059643270350976323633575971622550136030512252066031390677487186737627459810520858804133348544674440168453122231528587327838302102686217467140773258407739665897194726439335080661696911386223391616154900852070884016403303316095495389092894855413128410954545368020817635297914645828969807354210390193404154562124396414659108076382290555660458627306735564290220843407095819221698548015842807563199712249204161218282510050170904864366757781824017199222836419861236219862326291114675345526142400739616864445211216169008929020335751288597568216148633857733705557869391135495057150052319524964840656336803440869698768652724745904844814716441801815727615730025451385403315111296519886294154102118227620831518245337882739247873690681616801919373774759872063101320098993795776060081181782573590615397453642551293726107088395632628076973640660673324099489289668715250901578034085801373596922479217855114566367858414979033308266493769053946452786844106815870796593887694131044771798787886168713981869973343088958736755331748671489006973226568309593052615421504820017445308879535205262310766387868806732824618388176888146232193401621723353892448992140420049867249316626078895168425847833456755262389216653893320949226358356327062177802317115788998074261719726488070982872732540947969220098616339522233581873283235836339888953773183416125369871462230026717810086397554351908852807392749627203812273706689407377741648478267911814146005307736940851860240624312660661126116668221824814428401933257945967405783692249732883038262038476361101400791471341723364585520471183256056042588165781912475009916272969662553968514935980346023495420066940977743941266144626362639245119477538393232849164151230732897201839262089334664639982948171648490327979441281768941768659543961921386605100079617931711872234073564880996898160569671976225713273649736031025333378822073019993073058288781583423232565069342954999615435881268287064594471779253438133533980062390392329986845065827774364131077396256783456032898505170387554617570796064985977193394738156491668440928035630856025667541566245931624911570969938156009189921638367456434629276239112634373996425639080069176255578477172431071042024366314426789519749799543044934192785701214283705206782114350790040788061823695090460542046397878105170178283048661158428972596442110031574510500932097701707062785361387659696599664408936062470534838773594284463300492211651283356743144638254489086905394463285170630830726785328755793274564240531536958972616360783049864382901616685630063660364839065484300641255188906005514554447893262398754585842082397678391570876639865120558815189098481426527646353381117713667789138051523970540847343728079252013034482789598157970008282432536233491451624130735394905942052993894651276740237940513881755196611064963615042474466659858232643007405048779541027110352268502213734493993752132012913026943374957977775825122984742816385743013504462461045218444179568128432214438635905794718808651173162590432640766618780294707736028226106460262784305611688769151625571358303082250308894030476580311714138366782454991398058423605223815885686393606812815502311553989456316476438569131549272520618564779999624645692028154007304556682714424524492059491285110099687667102738248621451434344262871930328156669819775371354017817709869974183964598203752887877621493640269950304857603331068002722013433156575168806466696546103796647702647786949636903932460623215308216185907104978333046259919693385748195339657048732587385077328586024725069938407590783580122654055746729026292597825448068469887481127641431521447240679712904738630550794281887439716991652756857560135653168137322844686583806358015006003773191023710684786246473898470808685801344164065472229425260724441226873867703013264585410913980620448353585374765758240588962036985506508017335211709821587009696330822009520994330796618551973487046396719579695111202008851784008342996752338196905638337628406127653315075807496625047711898788751162423055100860071505799155805175899121806262628301167959769065719604641240870339201714986593156535305147249982874337163389150968254911877548688735701015164487765068820678471489245182192942660980775336596364361894147238166949681932527897673875134761414895621911913466957336206132896856172689242302092957404879462502886430287869240639391038902664784126339700717913571956864425469270120095755072772094690490840302626238517860307356182281873330911943560186753228345421131270538006262923622366039742245727361358562169524011870429629015132937486381871356790588654303904721945209327247402737295556704485910341774499829341349019527378418314928436162949339624098275362929469837544639685952965363199124790901254253887241923682173599800902602241258966500061927824266922741952763560555169535895080185177659465223202237077791330779609209089014258624132365800311653068829983334666382463972754331701556505274076536095838377844140234564854847665061977675370579547625244877038166597301449117272562856935141760629087766644365882482884526745378976193757831722756868143450217089577567320119482799004560096331833086862621048670507362711011904388545519930760368809388764827879085545426486319226689674906461946422967211910560860938609739612935538220900812834694447830997972499612272131671115110657568113089648335711676202951536804770232064438819914509770554603099724127617142726872631670885162637955650845301062060697691298684306207907919624666056136619117139684674956462365059731818308719009336766551010729823167784641512677470622685072542232638993184802809309735657707927550448651085445695289060579788701958303148295699195999065599977655394326098181467975664453363020575464688604435108829914052729209519103858491791921251601255905918876116976539866666392606773476704811637966950932517438742362996860681024325122666429229507772878430825386560044877724147276657777091890451355997819804654516060556716248730119475944504139113599307422678983257405096519606827229529268511441087761433396775194997855040473660319532691442899843018077957104630129061769805517645842428642105087556882956082036967542971991413055461252969430439344611385789039451359454988572686080694170252978852236037897623390745905742385370732126451734048286641294260798803012373973132993594229517145254260197003804276235754980236087791631891061396714504072091681414864701311412580394449865447630094773801229415912169360232238875078893752383060024915841606371658908925113961349328361447103060827329292907881013187672941099458703252620599418188036331584806162083075438660884759662472344530891965488316466358078052058170653074691098444502459041217424095664518641635199098029581790137506143987714676082642906473883231318578940851894826642092311170333136538876250884265469431063625912500332841894669731057618243393614412177278775540691056537424893054293794119803063525134624666022774588355225434879443533664997018048869166801717236294671836851918987014855153277967754933066885226812357739267815475844346071278158759506786910340078188193482487300132701899273900599011720049625123811130218006574311801185395240280890436002082056767196612774015739092417946439022773641383762173472213142465695141172193788982171945832399636363907059880976546430342753343923933815651224308779600994614553571123896713799858026203137384533099146205751383578396760168727313152878356593340076143334034689758241047870087824361075584359926920163270516560472023242612015338193931792563682294360697937578034655625241460704170947798507256023903386976412402166581884922933445743486112705435139592526137122159046881960852527923328093490448876647267669495385091656965100557041967884610072313809872171614760280657757027509567383999507916973084217344481651425593395393228099902040569855876642336798079557969199182814121641003302898798625037007529248207257331848116663002192628406051323412535204486113223423755058189538519709516427662961220264767637029509051540637012983598666379358433904387622083620691086402644600822996084171543259353664703188053034692328398068525505902080486963115171835787357419443828474948793974361546382744978193071400469119014822631697551310888958703168592669061228720911320541225267017470247574806560348736199176327122356867091088388094230224480622862517822657320560470039721449229287227680250336059770842759660713091202164412124413767756376917327086378761322146299763022703477194900912327964374616070402402908090047932893130193684276433073319679899542352265965126039103009857682170007204495701999302851126772543378532725083409639163343094563574722134888056372050168327798718112773410378101838236064623423791697863723471788391698584661922865834912568825966592739909997773760376719635125604146936271754298617514735271561903570973663884801785236533432793155766690579646565374300827789231166941721757620679131813545901481444176792610973257189019851355211374820280039864022417324838117757463106426444257908015033401303342637590300336365040976983954866918511546752211320176100870628082241410920440042273950314958306920854045450915623664333355397684737292142744252593227428931698798620164949070901884292114379558403846387072428022967640021572427302242556116352952698080045943435900756947394246476179947131437202454067056811767512710509403620068052696758343702651017117780650118075233489321834447960140165215452443834498490259599147623679138394117997814816207824620258833189597428887282630558494913760109251186900582379629332685673293564993084183218293650065849201794383418055032622470655122987030559150912709358171855083762657326587510561763700727145148235223256204118813925770287893895257402629130884524472804967698219568748562460711364801885560289423436787745096617669586729926106495063080183572702784350041224489372455411526114564945807220695659973947858486181938685617174174350746969501009128031616692566064598313381563533517460905425325025451076166622287058829655665788740412795830861884623928019197189421131207771593619449974252251371406562291668779969848252670060241069495360571148232980164209279733060524142947734966565982143894644243680236848411059696125516835917275194168613473180994534270952104066465671346008313679012179048728968933259966583448298254930481976393431179788505209904113855895710291041273062727577979630895593380663208436027435335231316789692047145084310025198360141295254594478398208574966936915143997227855655999194208821845611916565380478043471811058003697678199518025710592558397158380893512784191449426381993553389813553636200796864475492183809946985805010362785993373691261159669311705282433101745404904685492437913917201347814603008727528629751223954137012322764288484795791101273145510266133951324010667436513892466676680461062837346163488438150641347934985055020028478576942674769811044682595633724652931016936971473033311654324281102454146545695312871615180237431554465139911135332758670797770735311133221102081586494006189849028802022591360494014942267790867972788828208128128208819337706355066429711579652701480890549776182027505538864302365894206837488818541518477634537732772595070829335882927360602187726251672331259718522766258101574048162531596607181884937426077591817370684485298929862091125245194524459098588635565801033924314124228282698876167478173970443815490697925361078512430743656343575528368076649416262105403324551985532027098023319738787217712502538416909346236426390115245058129633529056845016971805783888724013520485937068132371410634801033964469870997683475767045217119606964741909534526540085819402537172022721904146250328519116559623120474521283312771580709147184591621162235621029598209846491629731726811801988855727144608270279921731686514324732667053684965664805568034527569388973664095030482304798003047836321135952244654952182363242765786602138723978654245189329402098015276761874977906756252557831975766653617362306436542229406610972147460700569901659195758827397407860811458519614255567822490101943363595054398692735978315869955913030807710902139235077376399080684130969490480419450755098021654565233177387406907154649718254417661421530559718774636441903468616049411438870261330481908573665920522471527839479191622894588893096102435782208247889717647328833954496586498846724119936713662350787128613295273044544224809878834064617248035618650271525243861417219671583454931867466077806653053424119087861808598661646829873941357601024178437140096569088064217096935987993383367711520417453412961046981650072880436496741741920827556758979482137214402253358659926311357838866622107301454092769946100097300722204362332078149282532010917853620574144832572353951899961015918534459202370330541699433068756202354892651023025773655765312975006747867431656878325281184870892332218239993932753875291966668747744140194173394777931531651788756118993468759246573448923262000451564907417517277045425707516687011949520841199772022326099842088447327602930470711262676945375179380832689044500381446643057635200666472923386203296383880060150586249394158112939772939977145950113553132645102980157488040719588522013142991353358191646217761999224946789973814547993638995678286496525233175902272773121989943929464296550589308732845299623257095684870546899395058020553692938085702069385532438741304121335549275373737949748058649295050122599031882660457316596494073485295807002810006093970174300920683343619774748046303417414686201337939149465664271911031651280899510021073523057850502902332525394177885559092270675103221834486077967459924848718163679935545898471977127380400136145509991158093772853479204062532383554790440694846805597339059553671130835006669087463679034972505205542537428837837177193953734253905635819316302767776183375160329234889315836677614292820989777311682184717084343464535180072389496159640327352529053567595553992621585843471840289017747751945790545566193559187905359353999907710646518271737342496874629989469577198200169157331176856330530539299100929810261507091980968826201313670174083566038424132307801303359734920921387802909165483024877245347242887502377981407382937919345675626118043491844136113231738099313845505652402261478858447037665811658908444602618545888849708707811082469850950533595880031047335164659682164796897724893658102754745094578608762609243214038211567407903013583201668543497192605625823542488089265786768883320562298130588989682807207352321926340447294157899834842826902220544874120576443019413014844633214468544913732837086518202779759645285578890761023879823797928781147650883144006870541406056896568299076055178118268674054800465868200193300826181693275684145961823382343538031282531286396425120094404902374477695240987950562769541579337998053249800089536299871318187312274656824012470943104916492481208189657495587877379423509857103350359701883991907222519162722864905266094528109089796148344320615947520285164740478133694405295297471109647045267653348475188977075315827439800534018969880267634409235632987504959890428669165044137851317765128758440676455552196950827558280552174055330118944202097124876257047934513741447214740802429003582571218140014492589629269716306353290971761058548349166384432029834729864757332981117534318888883318816853493309075249492796719969793883030156521273740066317292673021978273889633193584958620983423285657525818326572886023293650111411346039856224057439646660404246950822525414895124190471546106335496919481475227642813718525900487813196064646929257704608501418262400454447064961875199762560839607989839899395386485257650600276624537066276218460813947341017707137341529730640447554899761822733307117960625251209988830912197141639533412643268233462162520389455474526050179391078228305802050460229858415034316242044360174043292052609584844037062849770723083991785612816035103156648300943729938650772768729699913866136719324707322902087584771972602964652746207437480533182318656513356495792781670269412083151716100142768865193779635018732228412944832966599279622226266423714459001432815194794875745318945471543219436879474600988505000147049234265649615526667692805447391589777966702763466067781813278802390295277008003166174191346345371022116721146662053162771627597917069570929161190182635602738232152854361142784887607277758193158628606103280788464711462572345517087396820147218117817337426005159781538232120463274867233552975165121998592015460060076313573035450559165404685345235661279793637960323767530156306525675687147898922896662873558697312163984444377766287672012902459481632442211367261122837801225471643973184723552826495673814814456764865081840496007217044637087363496563682061047468696570690738366617414709959746250256087195733596444154665673223235404153346510569705808113057561160087596743017636842048398784087529928842222137793458572915884623540758735995979263690657958806781406922797827628163341511404689712619145028383582923339235070097785945583772866221467930409341796294025575050834334558951089042435680462943551568915253179776243758996513874146527834537162734159271924329507395053765633830209382891799621678682019863479208558194188178224939887337249036860128289312436772241693313249057610700749044528489534752611435294471314241109184680735598904064525034761887804410859874744601934759731908661690698587616488620060599481905437386410105234838684578347580019315387471479521803131110380456931670529132212836576862546346449071913443039173514291747767562385581630455110268882452439983408197997339324502437976175465574491322775921512269114456213720667737864597052788514515748132894914519901915882629236492211901008864973591224002004357328041851316891949090570492915421459791282156763767868533851181022363089440579297389820953499097971809210502226405389806379157510110340015877050084716309949033744965742013730856479524428035002692647857869074242345483888938620096287804200599946322603954364490222086557091910734598630222130486730577500665710232170837750822157160567485218080168212500494996580459894423037732113269001003442829793612499845392276190207543136944281599596702383010340418611579791876081080382128205579039267275533546708450691699100732674081695608409455136231290126887079411473704236704373261499170886667991515437455661511746049940504419892817616318133374657791317700306797393231812513415582520340683097899540052738965539716476978874603218890410777041247902251459553684364358591003846427149543207682978710271174917671496785512024897891105812808124504542333262571897765673995440323282659120894768629353932678304927650972084261199353787183327366110304239504422919550237001109037761146144536066588064804531193324870541314531429047740802880835730391765284652818813209693379235623335162881208181599820924615196853670043947381998191951651424136808539215513455294391167872994290124188046153316152080774179797244626249415705764156338411029845757754059708793725101147645914487350731434455286329174952525353940698771384397026586076290631488785946138647371329071548328213428213445368530281736265100696741981259064959246517980050498919538817696668834627594615326447374744660373357877686276077460445784754744958137095219105837104378650286091841692949451109958591667663470107300899380003655061285470611187925403061264579885468059360908725183388583323737683764899783889710152067065088967151504810848538101186138812779143482757294389276912735806808279320738525059626250452200124441106941570371259072793725229999232507283424106515791456236360126517862543470123659242521078205438629817107768248516068134742329710620113419261540205967197481675752168091282618231406213084373794124240373354128148526147537581831252472853703461181676141759774609027426659535528197505710577710183330222662448720803163095836538291414208015854588751306508139038729737741855167504992611035441339475892639475122331289077767366410514843097350274272133470325926858285308357367725254840689342038643194534239541963921815834509423921378660093653021836121494499935181012762569063049290966581822277683251142432159870726361513290225334884730116120338515364555851575395273784569202662079583750392198184539919130028815805433728036757078750411174770336024118251816633813471457854477554290285294355898488106147033096871514267327596554121283541234399309920653183758232762428447330992560591320173313831594589493522403528703438356417108546807988038041624299982859510193930876702998296679805632814971829239674055151835943083470113251818150388341793783396843788349782865220367540771862271531804661018315645232204398910202342763234022124604499478951096440297006783072040033714261834542387273805739982266001257722695064507568805035881082201093447025336955776188295221312298719001313254742192560762928440662850671061850415912412313420062361184810629454504934998993367975182973171059031135236342866178140461014427739940067014122376560583009046035236537228609994053451450823166329114217774182155613560024910822286431836140800124432871652455085616909852983358324250812206941686865988706703806585485031122581962863496654346464785269261389196427182569719923880144005059880488614758810583046253397663486795508763565679063554429406090769018135802512358422667420894975226893661578582841148538141491234715231211766837592552049608199641764697980037639204276907959439767581742184414275458254238875482117843642509228077973109004571069192161977176632241987305732235927594662984190113385221466061264814561835576077208561175148575268224747157115862089697104860968435847192211028676389360534408377418551679246789458200887599581886933849013179117497081906259547329178801955133842876678382154987569525190277823070669679137632834856073830203811639443263769062480269618838806174737338368596045617988945253246250139014713421154197588767138484125845799748928672896911053305504071410104200295786706623743234906803960826043034839835189512880880589409069606943684438423419788854067535271675810154717843162747553673009539170699885751442613200455950632914300490230720659888246606222631070591689803474727981972281378807674256123215643399552447612017575701816767034161727093098800889594646658687704135885640353705412996861901159156438598949013250955829892691601021364783737712668125129541757112190395145117370692913797221996091326767945241199925824262382854040941426284727038828429732048946993073146242815365962006904033462264332541502516900848986519793086774671036113001600911040341551652154996687665753487820390534388013690811917964706092356153781253268582531517645741044232251696402894181445674084189882158220462572182187137381516326875112713752699073175468631945245286079232799837022882272041809341396307836427964775438170640801334293093497138601806129446873570803696518862350018719205696262716435481481793597431612930400261266419453530864399433079363897934089241968496823800782112295642192459342761385580315970948570608006364620118709181786608556056690220474983523691847162880228205042978433302684166450044000933868181661497088972919895847632381393360098908727357127760092447144038659776653665520892518676496992112684146409616717799564869990406008236864120054734648634293336210334233298689290490135352874776600028680501777313539850252881792605618395554152236202561274965433543603829007020880303382094763406829509351782006769120159518461627025692534883225241841797693920437875799577748854932774277505599266763343201896983580734668613112499889079764170756270362473408659541240445255236046421302221362644952918947170113516498391064858216715035088436108413960500351692146799845745887110172864146664215710887289793788502334866956888665983851343572860996646681976870494374180054634048635750290539875880460563328315038120683845959259708032132825620303417373923522452678948943097727511375626354099557393161102591073264402553106798346975098055037575574005582077374665115425256239572347382689436023599747631105283966396126035770452160998993282512533545383908943668146057531614983337273838775893349178488932980868095649434739395035143322958451320673612231730703475462240786158888818092076685268119565340154162975894643031563356101777468520554976201819958287603595282025218762483872564649240083954260461353840627905250385873958879357134050783761230807145405262918108463119423626292023690740894632594426062751473794885307314675331521251957934719062650640153657020888734488301853620091618721146585155479835250905314319985911937755292519354975584664839284480295397723995125890753512289911959779358275001103632472996365292621546132053333790923317522563099461818961967187834749909208593846240895186143189042552351853616621960149324974081807134556763515179483226803192206407267051448891995728363904423996961674363967764535015101025009025756991996418560213456841161528408333456238286042297413088441061032924721638812718931654386171996178226564182153299817717172713575995133106734080389035018504661624622032846094543466866535551332863274944898715433380173873045272868028758318405922990255720085796129996939738465553805523446664456462565235213195980960968253567329667282870086466102167675984497275115042261857728948493289432420626657796050727031441368474895022880591317220837604716606180513553398170638302254165256316869797307623582204331794990784728704959208866585055346932354611463696556767968654392150220747860447781301501268129441526538032840482608330179337151132505630082230438319019810239748810422414517825332095556255002103149616203080055813551804600594669746022211941164476477395338166636180607444112929969677665248506324838499871878280084256666850047903579683773356100552723275723899687672034671577987733250998383741360214862182831633123893558131177060613880271309592557381790220407463651259536102022944940073951193645406478300760747895397422961063996130751466680353132510535806999303393903276237094414344885249339585278553428447409421771357874263648760954116789035368958746654460087979119632264690310945047682633381306174269497212686293013527067978348221625614100568333875222838780285230937016420662316692556674443934482375141250550444416908530116266072923640841937403146664122980503715769902041563745057395922882564829694084343966483949900882822980657274476627726327459372945155587941841418834946621509997935171325794202268723292772817186790297030554380751264698014401421645361481856447002050070268950688441674973682097326276238718235339912910561736109881026050192587148142520136184934888890176419532282818059587224232962822747776871012603134451786978972623792046510418402272789566513623683803254102467818528622266804370628570477681646708667658448095940823857180738603718547552841789437515993204999330868436382366245505244021469915797026566393172897206557614369332813082484081673771351850746827338640209757327889370308915331977216155323133878990722826938323237820229314630068519114533435159712624959163888357330025848230456264029337213328456501182826045659265635160921764821425396036868624225065791089783389081195983029565513269720942560607827933668428492574946821079305927250887555492058339668537414413899586411977747656434480538167423065253211360067777192779181925091859077165322902242667559849793458512527395303373654777279288609948974028027403939293511836877610261492961876875553063559043184732764128302005686147096802812189984668337355370644261866480597195074867198669226018043093297774110059687446540171880685257243848254857361017901493468109498578740365247355032673056692605996193508790126976967155965546787001128544352936391252117783311266927868787705825414308593580591457276767628773489369991424124585898393502121044615996957272432639379028835763842911348867127358410572920199912123829314427278056376768224041868864834592295231774214621729333122040136430808753583779706863178413715591574502080270853737161799125401233002789023401829486789360509398194287102588467398353124466559185836791605428186354992301312028848433870764484315219597695020523785040543774775174775937288526179495642593911953809182551034100911125588741173255927400120438066647805159873961676105361980148437611450543541902324666095659002629067565780845790445390111022608546036373707098362221608800052895291309837890146218939231494758130905548874240196737993462021543559376257654464663504906164142231761481326978120514157179345341484693203379836703188115731339732963177958122326142071915012436611022082528323177671894916328205498007244614697299610186927899663581650821073408803609695464754453936826340097287761706025594677335096518745009050888070744855655967848531455539846557717418161221505699800207563588676403662860168398496845423068217377497447758889710607036677656077043832214418655988285713266236196911557328341447790017691464407322412949069636802572590902768667132429995737070330049139662097185015830839134140767192374161351335558702154918842390318161956254142386193742701523614457008285390867038704374016482669902087167927444814427330517941271668026193044252321912019548411752535846467887660995068909104414740808759645796592602070125758117208366308022267316765983301045908929482461869609353198626455180212166616811987957450485377223295352389427346498674622960870389641172392389852273615000678889506047036772871965138673711236832140990388361153191373849393099309664347125692242548727358868920739336398723334441670535238848877704162097099664382136832229720073104787386630652282784901202566423325337268563865402025987308952486731624926869081013898026554286430135246368298459179285130529601659084502077150305859243914864537661087869988371782715134199958276636313248741182586130349177364142672108092337211420534066596182762041273814083764336207173785659215918749813155644947971475444638502565875507989140875151979616345760135224273522084630301451815956993346605761810858323155195715506773478140739569144847101789695391236701392466733324806900035610345657596313049642947203434252166764957786952102897588493861847913205369266030272516553197933314327657936799950166133652951437957190489371048609641464062483200308412590149007796925150901101641687553522904040130413810791202587027856978472051666953734694856415688113201710757750430913497890778660010923341586817153506394132238291935402932232451187723809190619362326658811397442876257144485058490499118162609903752541501629185598761050772492907484034419903976517728920698635678020112527348046858109044276652808386632443775266576632114629169911166666284179301138535100318639397758746634257617777807301473368388598542290730397208601689084272783055874072537237831281852514356182844797266207039223807173625573496533686134303025370402596602654150869236533573461316032524640724808656067477906868044551807422139888888533617255510998631068462518170151256606685579171941060713301010842567483192749037978270484871244752728393688965454822674902690459099349370055676936501165241388680119046258802257892135960515143653926962361941978666791178381399395547544154282587211608902707301475649199997729159856287141362662825645433830787042349783731431760673778626320153831556161185212800348191582864713875285007028050182889316937653486436435783615681596931424178108668003593326350957990012633214844617160455466361003885048473533760505609214472381561222463560648383861718517845663718297088123381306866963237786885674531278317702454739812508610715383118494507076206198764947799783469384662525850730344890906435875056448278304362656559105965444117640002563039866204858719390619368967048702078515935408532254828132493279634289499937053908118381111768792648947098127875544253513157522448658069159162757462617787393047277524772830926187407725183706189122219796845868887071840144141910975161410810523573258015415727533942226301156477425798152208057234765913640524608160376699033237476640463126720634735416382573739619851110460938831290908725943376749225725237067269964320290807526203541431285295953698445329123677962978903570899135455064874200274596458535486008320932213977241687402779470247334822474294176972785091950636162525241224490581917345075576049193212000846378628316077303978919792387811859410442522470933957800389561282530338016088172704096325951273435035958691079896613267148085465931326844099920976899943291066390907549056372444107921772356320786989020342523032437923502412946775090915488960360853209182747665493731813595891104940881744786307064333261283681111778797396053094226750847888186141670277660944422121708012190224991557669709621547718842908930585995046509240855464447602944299102349016204457443956247433283856082878497239802381834968614620530796014333148490358377798199963500117126260232033394321154560899890901964120108434855998826787255618902766212567978633442706531913801829147923301910097833621949314942022762570537532086912570045527712086782870297893930012639569821975126016211502524646261322823279380045180097363971210495736818154339077304102324538632025645001750182950959231489286102630141254418775787447598200847453873053086666061933519290049965905614728070700983624652871643431734107469663367983123806624628572492905545005535344455733759653809984031723417978343158508460901577871477919952387315045905984667672917958738632604150259493172051403615129368337271079818864411505210107794126645103509088268403717640405901963368757305495367570121617525308740262308612725312234395972247903999249268464058485608395752341337574041807434839122897852531105104770327743086995670631815305600678787497777931974144234107680128263151924442553154737267727850022688146629583621316631481423191332271243992268049773403377776365336717629804228792606850000266136630495332261517517922727348922178349749278398934082052002579979343181144249277332530105822264705840660767666573370953001396576143099620707902690404583425461033935126797041410355129046860611012494834899841448072446820124445318548086053613366386700923538034067227004364233258783540556741435348564194616016571642382268208790920416281028951606835800809649992251274952735224284485349667370362504489335465379651513545678073463215105674590294308508053821833632470115299057725308037235334375025934935247075247297993732121027204934773826270960825909821828549386564480465301403901551076959860782016925544112047908673940179743481626986368801244753377903978252975132446738706268027073665298127829718169459246583322777426550503287063542679580333587684215402204404299220033346864809923328984021945085154256040085298594004070317959906350009750620026473609919093637775977682498783689224812142960428360417149188005478709173662365286376874384397539526245616426263174501481845986108442067233693836928907602522441602667634733806029877411895683546561426048264737857138935825786821199953918096846327659526326983185579243737982052371837284976335077805054468808885492531648500969545594302281223494422707615386826279131495878561936297816252047718794521071361366024346110222126389246233275406462833019304920941315629644692480539760969600402041412443126948983031607165125965273160455871500323060622888671418899861682073622070494000498022012224762651676624046856670047318762359068923659307938378634714672857131395616800800209478839611798923975001537131700780177910356755712931965339865325957720522158261315776746041743936301825457523535784926133292026656440045323704533419538165956116435383739551054087218678614039564512412758374354734034128569851500722404816771988979356890706347214233047224103694436145071009033562741050895297712760388056936207707584077901575865387661825884424073772467978656806729104386849790898696134199131086192031808748309956547050601176561288932192236899258354285984569162900451765794651066521657132964986010324099744351964138309037735578248244031049704019977752966423945451941028750122881831770456943632317159049139598356331057295584366684487378071655782270884845723152146591732918320640084883221905388286654745198438977451332486750504766059590322440087793492242419636370435768564299720594381660804175336431407729427850541829641283888220621674150722637513748348922262046359130436604238276297705761327563411095230183600443031544901493121211875032826679194571691805741746491805299178944011685386468214587306990499101607074369751090402499348222844806789313253266210014343899917067467994892109421341140679872872549546148153081187393238994596394422563030352974451610340149273438613195765210194832011585772943530317329836474362356690140638149318718614706497991218625558273063034908074543779688650850720438604634659991176363449112357520875944557168708505010697237539117324224143625033520641082155120121548142063052311869784596827999182905954170618244832518209627374687070408645179556456257544921589785396753358563137457139447706489996152439758723608827721769942459415703795846456313594685259752802413155445790636785763692527478752024660926419107647081791637532196921437106395928809646601512195019946124142377126884588138296073512774046531808164218140641649049273647631861786339620735181405797316576846287103493024010705181122654926413089818068492662633528460687688312916649298757201915436611770944678258315649373267960230285411779444193455910486823969804198676718542735748498822975941866090259907270861849562321809355318420794890593587017696265238466868858568748735575507829161032022635383743456207623748897538950165559745573570182719770190909942837385840211950446024679427152574285158510422599129279273262939900081359506994799996340942755653440611388433761445191047377236669839441475800772914135578034002438044087467940667639385610830065397621099662254670524959062008495740694280104531425435917494492574756103521949788839485562002727481475921676480528759480667095609956780812880584382409572672865207260337635884986330296667281899337885785243729948312597272088511465494749843909772064788388648168195518887718532620716109831356494185754104827998709358015033526207942078092622384893394010617931079134488356430229070462790166847541863045590447488490461967636135410666474717745898755020462332091592064827233882364980685614274619641173868652021661780551576227573370627577193639317344661204058311159377535990927885626419611978499803333322092553703679032788207372588335760206125269333496737528677661044996474458306818520623506600583995563269468980344417631395186334494852046843997588693489474139264577678119118374888241732185287145190544707989076440358675900693308242193293039716392229375190911282049763967467240091945011579117897319268135288480431507094850584894255924240369203124921571859896364862257900601220449766919715693560537050857482746608636588076929931522327148798980737008478128286763505063835012564810495559772803580785672420512151650024865258506362728517011422598967468547839224602892314533117067728860106808718441985601516551470784611581501260815176341532136164513564504888936524126215770676344975819173643172731280609364733632803206089530654050515803852537625990343119486686435952092955168644865707663298254833860341326955409588534429567654595685747238336590234104575191536389834229651082665145829647488968375033354432689904653733098463488635553267632131279151864353906240672160377234108175388873046972165332313751062619599024303810346421132278500826270577815295167040822629012664653949415822352252599408113935379385023632921923404321904258847377617847240178888572331640839096417780843496002387461031946995169665463373074400916912361183842055953621573462705312821124963020118117602944171969785441861810196278480416501141375435930343512589522285405289703685240635408291439757587140705245298201648612283425453738266654770094329763852351656780070944921032161382118285242007418056083227444530207004265754212707880708054547905223639554516858087550372320219074450269369992352607235982357949594192076123369991396343646896865257918246596894584317174974768488221705541903699369472592020103616286687455732424992098019591751525195925428755131301044537976361071862224262571258986881714492550160901500172959336441497835515351464333906620964892716443422148370467536703723164516662339325711448135845809122495259816972014707876212265904102194488250670828505476953872916537199919318989134101936658194197118029756823150329467462864641083528161999016868069952732262553804535207804967291065224108388672448131350963192992068852334314691690894270033735281253666176501375157323645385325238729084497549985283451600906316791384159522561690844901808395194029490860695084963064352597101696446029627741950379074492871053776935155686052764730064574309959670179438204037824337075226964318285483869072564894540134694369523272339050318933128150650032199825849277625928042112683834084655630036508770508356622566233385093160470496068001771556804659208460257920915976689511082047615040404047542180917788680123072678028636313453697330595103638158939738698886092823319752115276727510017126172228299663827474110284460148866265143831891807016632591903256689310660684659721354958886722812251362128241895820442366370233041688034744860364413679886433682426053564414851645452953152382341405739177996383339452651776836650767428529619994116157962319654943537671311312313578711609403784368354697791480531401847484007614092691948219680097651130771827328737868565739225499793537883066680969536886186834908313294864997729735550506911032098937233373805669666895731924092683622986340797956742356378476860718108796656930063572707185399505050852909377287812682934202649626040064493716060064544355095331416746356937830299546960964455006139025345484622203068979692866452266370249183477447464556896776675318478113123856495287855920903829446809680548061082102182376672598662911890299974026244552074202687370808283120343924888301878103463657990936434432526704782713699317900222495030606088011913079305113190367022996024460289324647624261091748607054186715948341503161237441939549683766929859780342398277193821128024582785871628889496420164528672117699223300393794619385795528239147795944366022501639952372738319049606386859233242869821506772831500912956154677548185266485492360235851423982542347120566152560260608789685163476053945899394787916636408157742193929971994762242051533653569536061443963154978517468770742503270344702322665185470943085008783370724032686364036622066289536943564394224879034486230676251220764053877281479199777562588432637213230800442063321153120530631603510796354087580840774550428498558557348755276151749623831046611573109678747473454255924225153602946310855243046387408567474960844848102490926193306256599521607157060920672258257288998365869693277803332222665872309506616924804808717725153303292791969644349628486529333899432714036566575688750119033827101685434062585332036380243830945185734235304818536190386659290167445350374705281889095811613680157096924071252660082745687941804731453904714210172863815583767323282035624893716756915584911228679271465245527610591121556398231710626575640523765885532921114131004248145483697447772991287634199555771468910525818074637086834424634921901771134349778317282085544902078357721153585322922381466433109021215857620631332977223494535806114078798015435289217037903894259653596732753176104479526764840459971063504652817667381086191933278538376751885480184730132481856867620963318447897475398716741634053987613242379901388169453778059453374455521953891963749925481986998501112398444089235846940128246716311442336670707867842572178057009018328208040128359597661806688343452397723278900048474691296017902434168337904703956073354042713226457251752077831091357259501073061677702863906556462036326976879787206106960881327917720686128596388052045726823324822712308065253182895089569558644394801025404571195289069827151887319512937636645521255946804866953585470998959721108099905933460376390762153297398063243296290822407887809006863568733637197965866029042367204604378903822412392108964616533212507868355467087358157574342769289421360051958580885034267161649175480799742356375151163050380605761689971937213627708614019251603031255219755049149284817489151941661653251477623895790654600783925797144768157550706846932681139777574676231765963032579077475612678125647443777785269779294546995913590194554892050485947633594042148695423219187234505035831018384282366067110940668412760835176898400201247766799968023086945008262241697001469153943573839383390432484712640513624444302949107269143627920690842838747166580440151063693514185651519767223253815511172739690508901957168870864923491094414396010610264421150731463341121443039089398308008598987451482864702182503927319669131262151559295452987645345613792778225879432618066929430156964901000175111391897812823845884050785426649660056408322141551500908755688976358799875769977844996111546456911717277094905150010425214695168730278841276219734899075525253571803833404091318802553620321008162706922638238211583648417898661484618458455988386729303395981915695474242909119377455495636971227097055385852013962872872788815312137398038352252377920198444804321178849807266616381350613403063740187423874936868773104035523190181643384446947675423877650924275247652327820738511375165536349246114722971417578340772255312675706727977613573195830657196242670653207197084430620690532037820589363535212104192684624179144673582629508036980459086758323721558058184299199554320020124427519168174482050174637969351007500334488428463298833933221917427145982082633038851414022576869878479279420023844309540718345993757417879374724900277881411861919138246954794545709340338741909003706055705796636557115706563458119786821322187470367156949520208873083413228600114373704095731026602419964372900246230893595221449514754585578872444681224656806556562540677639418179130657098012125329164442718652219501573953913898077103852104544752132738257491502853974976767746841785671979215979960752318711601273720519679649701270624275081220654136103750823776321848580011920432145574226786060146048135322605668995387263443907219996270460218000384124650456476056746918928703208881034153058849275474903023291702541756307687784902322441382946282565456904861485612480099209182190150959880420285487519278872408629730899659242775642139332120429509722061174138781057607193218498201796441613505473078707695363955723737530627897390624042469124361617204835045964337108959694589631512788870575296482896253805539899727917930479701814404926508696228582775111629904011559600970184751518760611447539989258765029386670428167610784742857624340097493910294889011620258288731380832139194697553043981405800734350886934977627816932158036512969801367945196803159460008092313678779599730812730107256780230501820520330520493133867523812784607109377318768468283114132548079756936251490758494495418663840952312866989213512831523534291798336162021697226652731322091929564558306692618497941472131021966132012113776397730543500362567256945811811441906247465342674683496816115136023340055897816133451482969869733940919973097698195469370718468875604447945671458398411938603196260100736018495265450655097838981140938338570438157729665668703180044152949155886335852451038618418735331276867835096053349272789228867671287021087208696616770330758296548296945868377563674182576296450592909964730428296974790823435873527459711990129727285234835181953074424341467823050047017751474056741417716418685947996825413822975435449784012409373177716420479026463177655572548657032761697720384639739573798987554531219552341318028156627430503584955646081361614050133855115264539137715400647920976638283761565677984824840637124772224417445112426405570182360650358647547232292826494879424869854782766921020196186906955640199465660469205201425199946905871385984310403671349570217860892173634705290183887936503991510801201900035635017690704950399600969076762388671281676227261328032797208444917951526800448310477712497618406043151421015417461738894730721358784592797911893868991703204072611104287429040786481379991574515134134624472153126177764547932544055680373544902093720707961953569535022613813510077224326530750039731637527371477119593388703491179732520253908305030122116684436310525551674728516017036747154577423852349764302716040851152561132063183642854450783817793816582910591958061774059121115285942772634627425151289636666876107342724617804442534921075628663566885062713007612553224233093034897644012763569293692125998754280419936804988133432912707475977497535940388848026534878223349111189797443642914500708948083465331081977783948230001858998377036831578515903473146958591778508012789500808556484146170866148404826313300646859708101274414041103506216345129385781409360580605012314413456420372811815897826127566637983645822441551820757271739544747473784525336853312143851027876761017564962543198580470897515906064784851397911188756742257507418981332131883802227616684628201061714968142604205007190072823887995760878714488253751586959531274354174659238052548957217234163721656600520954402371134022013933406153358977315049288703500262680825174119303118750890214568626977687690567890816770728603940667714885819948698258226696306095110489276478747717960740886975396171445857859614426102691958078270966418732884789743559086071737475384691521828170188027846754477280037004189304169526036258179132503993729844656614632109836675406397013342702234362492570120452779262087923034227469583473173153548964230822283193356327410535506759688336196289180014245848438225223394477156652228148380393850893063419769085049470612785088238816604245708600130101311401462234813230058479161301582353147929736226021096533420210656384516455878030850744570961904039291300728815438453876301792426729948662019626938643085269818145283338546720660122157267646036865106959458454002628863914451481770494642819034676292404159836745170884150131518401651821025317108050912095162716141555020849456714229462405457611326144242100593960084122913237020013074373038784004462654458258384989967140585503058696260898840999206382018407392071812259526418807407455571115063684570673655786399781184233049552698677533365180561560740195472485234019937027369070211626633170205434055172501759393056160646316669398537574899719417040047367994633124227489194264068594303913320744575275822880090802270069707469673636832406236397725398168395718525485880669222387171373039575150664888803272531928765207299879375997226767655757321351753521504042981430149001150234291163289361021774651065460995728337335384793694363190690181747554130749681374178378499111064109754804969074294121978924906350828461800447428265267858177583512560642053423157395703728449474247230835393463167239962195710105093651147002414360586957498328862546145744588505887796476150942852983260851697310505983123080583513629901742478485320145881287261117470955447154989531708722426669638254171612914941447552982021080427170034743914168313320119952803950793615172755590506301374647701522834229860219736232594058576378419241656155120306274794465595961216762925035619374468450674212506292832474486701211756562808490439744970935871640991150752955532233614640204707665881229237407364097891485307773728631063347684138327001760647434368166684551211934748673111189514407074175115671479901445264012896740464941068655432212824833148645396325203119668341515267858255767896012812884482451417643665700973103393963325145677701335612958448267767404675615851512979212909822949812237551797515020986492534277989427799149496564606328981843443832861174537166254803400759429891739004505143501979385634434247813844588765860941800010899060975533676133997073096039591772249059871081958992235940492646325041486925485075062921825361573100352169254681224776732430083779412416466790109860248832445064156028568130085032428156882654493551686027535787506305368734507747375770566523770840882495716997057939331181200083484154465142293957943825939445254182723416604300431630949296171206214363050283435028419202984836747111031361195126766301345234642939371157962790115091218368620750694701736705019704973314000418431054948904417447909152020936393227460895944373641852257033354369532516653855489818783243678806795550668888792845390293540369289174626515212690018441413205924241658051279958016645033666869489451225126440836562340608258338413791846992730601742926338125629686342011141552875339047856981363678395626520282376535444825244115667376734055981769872466780867691496698952584064209654305860497590058930878478448694974786613262367532253552557634791704673659473549290933541728231134492048859834707860449571849165340677009117564599783938769183023727626236050424787656097710244439068112737077251125167114420599155138467696087544513468454647834351216013335997418531196595783576833672367199539477833419796483445872973097695901264093634645337474573208053514123365455183913852568811980000289815909623709060046304513801296321708233591704514664987286918929100984361288040363644414092590944913972657884538093225935731921468179036223097918338993623837431674865301837625908552940148531463586045899872174391557725852137329125719958231281330023071781244972645356944059827795263915069938128960793667438277086813570432194574813926316176264825819162094031543684959347660614526945389810524042758220275809328248373225666619888936241639267131977951957524915907368220991880148837642984609046759947197513968880959302515141898405540128752131409891258641466666332551706956931584914854209243056238589127855959840070513845642471455434737512626659069806261003758155368746468770927573230032427329439950278564179747763103648092285862185139184515158575041684551031165816779148659900957426857064397439597901686434995806715831664837542500120995013737070559008829906245781532047736506926487055037009919979655070930427338089024433914159254408427141971794874239359581828918423041481579118818243292999487826907715921800127886150930414711972412991087044202862133013579391813465341273532686734884667666074816291239130288595893576070932102985678579843443601464484245500360909601306357711473853960885876677874575340255429222162884631388365480699259879449953117450373031627861483537827586465348220897368127539715968983901332706072494714411627245100143416222592348350892471560675718549206861017483538665480263720773332074133075612178853237552380405730700075992383007787692655020670926882663017602395318024966864004909185627143121177581585392874453178036686652449501407983498209132033010434726092725479196769646047805975103040733056897969257934883157052535830461016242289823652139572970515130837078867756820117039390897680404113662662350989010956707998977921051621575683207356972214568932205971663850824507331404756915729669184444693129407708585914424363177279627458775337565919456276941903188853851752347460513649102909949666197329505983834642353670958961301872091779694205176700549412748444424060669863099942907701544322830183670173961970470811825725518820237622882097253889738020345319228108668822613105101800100723271125120560452891518575277229976672320192561841375863371287992940079020935006677929539657297054472479881726672557077635908148818447817125161760601584256418960673624902450292211463866764088627748446805164567833860501417488655501462438104646160236091243021508557351128103237951461785269571717011135432408390466573392228325457448935562527560869039438048330931335337415566702047716248686889773380546018225867505947374404743196780342775570124191270242330659485160087239314159920848379470008241921233346143772071965044286977986274023542688565826298655845928657735541718785057884135621723234925641415042745904115791255726681902834081078248530636643127991355566180358914421741969180302506382876409250490504014871408365617543534174450748450164115459070255122098478172552418476511032105472406542717401319985331229908092647021076227953610504749744003362940862009453819107248877369258361381125269947136039962445777592593042895927935963807795472124407115784328327022517852923374905175744378702557961359974531854934484569931342684309917010022100739434235578097471144919800278595340048938476979724067078084459592697150327480733842492660027519863606576530256221376403713189839946687651913057658889999174582788371161725834915991056569372828878547091266523395489696573806654345198759791588439437479015141023030190548301355646180625480519225364899299415969266796682899345424984437666937418926173721151958146542482720614048238312849236255575483635105922810128381467990302268652318349428253730443399394236946934282993218675186790373146130393980627080777732071170636263559168954446045080600060360566390725336411579593749782455200667227242936778722264234173202152223160664315039584167551882259976205867236953196592363476104941438040829444553496567343650376484313700044773808725046514119318686879560013725625237152431243217881817519865833613135103011322050775981648069863885225217624843278644029790743851005527952994889422381346845212606841868478394738808684638142955350876188744070894620361923462908591744309612115887942803863492777083860606488096810607754966323381941204310450924672892507998510204256205849160432929314360622615270764119064691052895522288781064102995199229356831913670843599290960880259715276699644799789242606059154582927288152704085087033878790675533407089880418026985432263342257243793452963253895236876347810625776554854236146408188781111730762427105524184858425077620854393273930746599278957261974911576751130932795616168175746037412945683860188947431574825679305004361765053173927221428085640736643649382354617226932209112392905722619186124393454876295900237909087264543392999502803738940198823723533923368468720164799662855199026216631758342609166011289633205562845568042344127906598240980839096216317039153013160341354141247358583437461171707095010760094304677361580684579508991292665528268081727231611909650078198249124237312849568940980694478003667110006403962189174775750941329707727728829946282499815074498655394968215364325953538856054129993525778816361218396125177811733068528863848255187380369830627330444736051620527522520089753985293365476274880953670641343489686580746223611032419172955509624579782898433841122662491836401825143085478523274714456847176994080452734527447276825773350167971632205643737063159921516765614658956854590382364238334683749389554777389829350034823964264125517617593253626838840507794674611322080659666877424509661700527877362779865122548153382501268426322319798668468809254007998282786685925598440764733065388914689405196911332747483360905075603165916656860587610654033770110158467873065975297460826120374906919463595036984978903885510942723869875343046026863470838456543775051527488363804425595971891410150354540362935992767184033189368002409115871907843710458962822824026518643808495945044570867181849900976314842674987183424142966806774645725614278084464593575567594261622677241026917057491924912547041188677134188645349384954561783594844382284567122052867923290127414855707483012983820733512352986304231596898816718215858803086010252357875135287485666746087887489696887104585544275944194737507350667363434867328806226913925136127072601405309571534879167518186784587777689505563056469165615499454089309390245697948105646030021667017943765806279229917628741759164709807267238797068853848314831689817083231429459429931015904582410513843573858437211776006058807705492885276920589906504900085752390944093706532687207095560783570401670979649337007192530058443152023557019357955300872128387088563111506608515683075485433553096037574286331151387865012483204702137960274517394397770103792007830565854602204696731932138086440013163951273929312656457488197573422095023258246664776914162098606004448946879515947081520015060686472582237688466863003999952761307270749651025790948637704364466540104964177763430374283845597160279241971449163192110356522382317111359610039530122764092698530008141410155191124490855579438399480788896099865484429134776076420552935666465428718631914759782806054261926032216773746296645493577025509645578977602472686034158024394728933075692162849240283129263335790095250211214758769105298758799229257717764198674370606784332528711792134189410505974152455831086685694280219687781976706796039116681659119849720071063742688984134236926683098477302661852971351599721937753280259316093864779732884341407040031580904742141780193983629259947943362940480369557101704693947777024600909388474140414310631654215605301499492349738363954616935864347839919071392747620077439019549678290562698841124065888539553327332910657158899818592001683503601109828375736731780203574125788088823648484035654566195029467276230032220722737511160298573311483586514780203671356418112690371775628790249455557112100584481668796797197498665455937897556250981685917888759205879815366468859549367754220783431033519695662389410245491685973894231964459839520069793272821529045271724605452676918334867104342069005835505610793177530324615892391751992621099168528228523477073735825374097389858567193493073579376306042211163189530228447109651910940503616109863137602993174926801296363847879794148850280420124801247277088744947819048818990060645171998693303466071488134761466013774156007740147013125369359566631102858406133690998810159502108373905235630003906364831371474857951035962039276226817210835851538401550292564306728538792833269458928232760812570263430652038740414607922883023154648604199234170182336462852897215542346079040345727639676771892661266587956646904871461407267795437280077026536825922697859512251856281128420264895940447441796602930697133929723214818841530933304597103194781326865796239454493799555194669778693461985666125793592850916252520254399564011626132567489635640417530425301899030190980457962283630094185593203296079713985017704049485230248083162378279882264160546186712940662513319053761570217374920773207460919795967891388752959116483416043842843068054362648643080176350294555157675012767995437196253337232138992768203224142430194119042807330197197743533424615597380544533806236902860109194447113909882697191937772027566144571393666541903313159885983264629080432640692554207556269685334641648054906826051061489925114640074521693640858277761916121997680769582353931323949198525956094064721899538811009298118806505247558606821962844581832389706669465057174756386964614649976958550018261045254486093482409364882802637617438516829070486821969812148194252675302157888426532600207474963767978084174186930699061225346461574938216332770106211116121701615850476474406585617894640033393125003057454112074539776703437916989587791476773212473998093015435685061767828562348289224091484281988480953747150998653511320302154711523109215198545635653084548881297660799332519216004564173335474527972965370662065814515601569057525225656120321478070164621692260102353554714838281476965095245834080647147618618741116953498038496078791563370925764681268957412922044477435534354583779944897283688514190009437551637469439197292120708053632834208482606773998641814228887497689214066265011342581104575618352320776439050544986523202141503880575219327790369760821869818811707665528964880508974304226097281569486618874672086007124899414670537914443406658104875478618009073044533091752972777802781579843945392489929618544284983640788059722694157509486437160710622557793341008625786457743332423933056563309957815022082049724303864576022165818987516826348667902239256155377384135063264673910840779594237115065479142640890621300835180302562328454625425572660299894921332579626211800242247910674181799681389666657335756981037694319756650617216898971210163826601426412997205620585828615319726919524244593740499081705709832618891862811126022359047002251421380614116973994008823395520261614415554633062337089252660882944505011481708056710192626143638310071637302484618989427444021950675077046845741541300207929006602028263073429331284400618663449254536828182211024899734653526325321828984640392833913651611445944649084779714833119563021677609934941859818065963887191763553464449466457077475163665538115515033047989870219637872743123487724640907251178770365896286816587391974920889132133011798595820228051089886798991938410087516421415086840067368116187004851785236329608417832309804282502975396079756668169149187450374829902519503862887678816268507783593852854290948017161297340675887243266538462059753876835542010456818170196633687806441312422424766276404387946745025438413576873574907500150448179028762900962169636057536934642359079697908656963150343825216734714828932197569499285032336491100345650536487306913159894056837451228607762272563444132082402428594158449863792383948276426769069596601534556672935574634423166408449084507051875715370084411057837518806209311127337279351496587252071784498797193739535403224706637899602759615327146860632415859416430121206357409087953059563224510132718104693845898388618535283083794392172416447448700739633867248362891009473962165140361975239563728467222899439410183670604955430571270234208591726867411313827271973828330938583398300298604339862338230427588773728143657540074803451676016040308302552482955655040430402512741513485849990540883535487888265053733494723215302396419446975318785092122680853380238380877058043499189456406996999942859018180401666319045156841026267550747908529238114139084072507874880911449847912295983212345619917533119728418480101348505412397812507869744742012594018469026888428536278310338827662367162050273236360708332828503004963883487752041724622235680844226465183604404122451276394224963371085655881715424465992072910058977232280779619668559074203718370146049701734958083746436403828954476969748338828059494567065580387800242178771326789716080816167200039532620275964968367962729754991324004485311967354903949022712543445405082569827856847286461290568551282488814291105763702380608121369761362373932423501939251460141917989241700415838751648140132558585201078281050152952135903913996030732726576508302515075942529280931333760135620397364758859332396559737031944650484895121902020756803814953089212621159606484514400550836961055276558935224401706993257632237965476704419443523209131463400975998356067936797262090139392500727598506527284215258121812039404538002687049934007185722936684278788767961074046884323672836637394526204899360087692796782105496827649843067516008838099781281350303378634303183784927338241701427657818777722053380939313864544372831765960264579841842257360134906774128992264900404346560373968426060473918737208712395956728752711153050455518961543344294016252373265648027317188142594670755356856993596333721908480352332242561793881774351609788494497770264550084108110195056292415613660984687702728093474988222486028686401869866476265807317565968810520226610639417363232733698617519899209768592055022174066103058792262617776080211470424436069164745680311017387057678891240115814409936491491116588919563380470956840566400223088703037738539064634281418068513734487338887148671784793714370383340805851804406456617574892395274393412009998525795326975248002700328791486595282057528400759515138175338292218246728303612824208396383082912679468214531872570378725885703954682994447220213554505563138814543116813135910245352193797369442375793149925961648072179703720583243807341015814009813596854378737425500618434942240132333781074185048569823971635364759686439718551277128046207516229990880504701457538596306869073002100456393223815071099272106531422049549362329758934080512712178116405105294826385350292640739092273841108316490152519916695304475101590367231834285080000481558855026650740252341787409083654427160322626182510217011199102951906020346310088360833463735769140746771097924845508950778524972552804578750068173949778182256865937230870647454165287956461205992592358080989327545392661048296277314288616516599320887673602815748951737330220626794604366312935927928025922932845487209690992008837154126430831005194951552729012028883540507467375041220094102324554379564352496502836205678708804633977231073820837324656707845243018187926724424370349419238906037585428622590313063239056626876862548670061970560376613228067709555964560728305735240787888806269369351791837306420440565314994383249865405421460184998059823092680179867637364824009169706808824630475745338459340032462256618454409012674733505590341939905366288155839722003475749627026269587842763566566721746433879607881066699628404171180625720904376121850003651044301173583186992315115627521287137177287313350023562036525668391169051158182587938638559224412537981833601615228919245772513646599701180219439740460651437078280714522432593319163633798297237817506322098151911875363565554248518086068673564150925550860676233233015783136377185808924541526149604750515192357309318939583955187694707461028678959059287738704511831483365095055841148397463600872052622420448809887734400291181514084636552296617548154322419840254778699334004600719513169187438157863868198265845036122644964970973749294775957799782769577368937887367177587736382669506350791873558291709063594328084307539707493187280391555062627114174781102112862735381028836676233934897113575123899328010887763368912419813857106593683772463347646601665082129549702195744534537204382677119817422014677606722977793777601545390682798949392191785040232999221102724236808170202984660133999179623465023248067814271142473543137748432328875419886187440463412784380340804320863196310471850759367078409750476646204713675617408206872024860169297183515156187957382935899584428760924219723664573177248395217572507539084527285344167539513931216891205488436606042742917382541284270140359504669754884113036417860484331558398751157319259203792010323551891170850438184381974976386344331089500479218700775447341881810150933542383973813829740606335154563885111812961323104145351511740745560421629605041389919307007926829263896226147179353178205615821612396333683642647997157011481366836010155487336678726285283650522762712653828672832464298607951492166213477268399683069282540428746849959495796653357890826384654962013238322789467550432809333108502956676434209092939883978680190325474540886799242213209636112944999262616225678019389423862803949027344174131067123103186770676250310645338290147875922549923753579647687660998044471323396709553365458010051988851030752125648773883994750156458258804784980657426535937491406465393743541266690641727807872685558454033913623478158921522860721215791582677391153714284676990252062311174142393612139285362833581117392575997316646258181115169842358607136420729050080775691393531510134525858306065301220177563778388247641216778254178531168442443244010892756355731228148655407365359406645717685777811250777277081149196639341184689012848682117103069373066581653630832745042122884053211455903343185245347261267273588768318085463893232450061096155404304883087913279642909357915806209713500224961964689139338199678061430335452505061390240665095885312264138522816872132406744961809265318419877316749728241302986567541044511667527490137523138221291989018099440429054595914945000297931327105886459730294663456736149070741967633469757164137113760540493781735368911023574234087430159962209570495522809623073396079283427057197363696604016534932477330236564168171772175773876896343343140579573887974901614461450056456050400915096489685005449309893335688906907913253044641455134932449114362361500105801036256514784341005949640287704593839409612322905371064950228338458686473548478223312135072344107602144487402500210109269326608068385228828631735841460664682785637081704695409380527368595725654731361474794437114010495218767241486847274825828453140928365207239911781925513177702235581229854777274034269133377350788963239751253505619720134470870641656738639018783937826727294539859184219026695230724584245318239851802607633074963290506744391899266314740119711501396518095607261824949970345073839169590414223967945037539845674952432830792974381865949187412563687240739031256266339634253217672916746308569146146629484247642396948243284614596292252264569676693404539169336990684535144464523829791627860256185065541197552444751279743560219136893074286107448616280498036861780436591671835820081769082575814770775470601164783824803632377972624706955679540318722301248248291893390979969818993267117229133307318017264967692625591642777851620175147133645595462502598238528639382331585623542741948059951512078451644428326960546937727254315986114996424981224654362397445846538001700984229646078221217397430615941924349665873573043742008086301885282693580860220984131208515498232613886671698867478166161127756213898014029991609945143450722854812437559134748383624347733028937013733174069423401962496214065599688316059533461073491241591900185586344028626637197323900978488898043047838908117015885273857602839359988165853921829751220737409254975986701193705891899834538304971967898917452966014788811519370131548339284572275368943504000862390035893107251511278947656598208760741773656874124438680926961023538991583132854563803795956373982380216930212507440346839997626564783890147265956707941017588878025399645188830783209710259548935500527068845192804385640845227051445536305189459109139557920110168517089078891878817230227767983223739294314295498762777877911639671864110651195890123205769615933979732256781455965800378759558267435430794581348880204608439722953874554487949957752896533069224848899495915439217750632219576874895116346839280021225126997427320618798958945943094336112062549411120946853086449672937563808956279484070650728135183435970115459728089795865601828158251058231515560358068956150051904198830761497679860918721874444006468754800427769932383458543326855301449805930023757481083062620444416196934177453194518537399591826804518407473707095894803351399504801604428125863227440063760754046202280083173513464951435773609772305879978034975555523413780671081878414115906117922615956393885171780160928348054348333013857583925414270861088747744430800811805575926945705218345346824676886087349582701881792340498011884149163653761914851288363409271593191727601076120103363706776331296350367596165817989638586381891045860007312766496609398194507936644361065103187696778681422259262142612092421618910543017889205136463334955990007901487581252562417628324552138257418592323293088810906349978569555693676102682355821970506447626659484642789576856993820811548399765336528090318616474558330361507489518604094584904528720437011455407274428215922869133598793774168556394904398678543172628472510547701314862329151441494200232176920977742529524974933988467153477595072553353132712300515474258600482216347566454085938764457058541483827966199332491749172596354356182559792126472416286469676900130502977383385949102864668468400306546193348445696881217278882923557150220076242740766710271780841752250744879194346928660495034154878122887579116583302292972777810097146299681595874618868702743991986445060457992916735276672872106087210579150861962375169649099932210408435852332921258356252429045215856679699800178208017063468712444676377099764508060906714306624962723938484589980660301595782275231711363249501495049249998362091675127778007145135114100032034608614533331818200504907820501193478120817937545994976927669789607814344631589742209133272109242615499360565213807472041916081109618782027907183187943907255915914826951166642499891417585226341855314915814728877670424881281363749114434634386007249721789101556696532944031923587715698420768907521414533040652223873597005287093420311946908454889134915762460275518558483328345243227663460175080214503687603141799197114669231322417267124547973106472111966726244032589476435158636240833944331497061569775463873386301314049046844567620564184627038749667928613499237983691389480390615495256509925564835974180502652162927998433066227601973015004358262497192427891913949973245705973066541019201716365157812696525487247996043862034398860662277777495985120083208134207725809404976053877206781595234839644437317537895701636312718421833545931580218944909534346802791600581318365271790639934482819327873240774799997270089604152164347508401846408592852948831169762760036086622012271825736686060127280922504454872328202870582745822418731061093743723552157439038409085804257064329653723386938170785676306838008220084355551056798196757279844143176193938190606130541960754167181170530678327502590480007186905179093816320443275024302236039926931865297097323122956753605407188212880719689036856899988813401005763504576365429798923418049411690085242313885807176415609297356794801911484878996693844856737944598994328857390606392070278486722376897384045859231607931759108964618197565221002300064469013285342956612378564649841963989714891636394831703430028067232900567985969758313017225510884585600881583157124064178164835704188392721765894028511315845306435142671873987951641857765697838595036611653027812122568955627312448564292590285226381278810282326295270743978370721777792537795674303344514423365192296773593205886148952578156839892831352115749651346596756662078805680624201506457227877935280650624066359291161161346472016138301094208351705729932982751450838040749275395411206506354889449105278506134875466628779620581360029052540300718355353128505129320406674001265007699208527042455390390239830123674919071987381249181055444190924542168004357478492629095092387733405712731306286884825797887995093823105033634014173747328052975135303712474162451606827722773950790255217810468888447305657510923378481060547321675602782546873065311262695762833337525147556358117890987488061888419018902488012544936328474544012197320569726467517532669913142158269559142729733586498255454589855497094717980011282222475555256102627298522174540488065320738750304151571308336470347137004161621797220582504006224056032910598231113044719685336955958249263429618814137236724268405466358110751753249529923008580909668886301775119591641029217190402935625635810020353708447825640555525000743107183161185070124691604351902919098485217865326296562704683815667070475449707537455312659841242662276524900235184205459205078064508281113455563832818795176657735769192021489064428157212294043815257716480995123759444629161057879660027652714442029173630265009481231017120672115562413025205545091141415498645630576796430923863139637163882714861265185221290183861135475415843767322019248012464800716465573912205714480624884455377548666835464952124931068150225401454922542850669726780701863233625560265701592169154726698032741345173678680063501904488978456902195974882030450136998981000886222330335712130889344385372258962983284518281117563727223259823795453958089506047669141805764176701716080394283879615441994986178546766719583612588154684827362627697199111511643398114108978954581825712604254598782399111603336057432832646757731027739245305140823932016642433303672728109288416249566976977686576197271883954571213416922750732409605244004258399443917270554547242781970112878431538182411633464833156543274178612122492167589803144170111119379568013833703657783427137335021216352741788445452336913380537729321273397453850365940049067358685351417280464005233459385930696022193368285376646591034799317864071126618724598321901225621168900869976754891760586181779252421720404004886897399871565433250784339989644252035158912506188116713493978593045405708287966608714789819227961846034564024869604270812062787364903688422837001701587050128332432753784739620752815390499717841354155330881685827543456359602538677664478255773360094396903755627319301320234139425113844649240090243353815585867163609253951889209207758268815486340775455005730697058631414779022533383907074593668462676557512241684913872218230649984227913244896777686508342673013322985809632177814671393556416374376998284287425503029038416444790625393908985885464439241375616640160855568415669416449872416640051587425750636290033394505204116878418375009808721425731518292045933365127023090372265612691351317566703641751654723925034214036257483942425118467534058950834700808639911170100843504017164226073830591701828782338188511722386750604265285513480954975137129026583909526273864050195411211452183830433435417645796975664225996812046619947280260816221625877479765322668117893377673648176876338719835212340926777124050851970311895492818070735214056670150574352985405124356372403417340724557327033128945712119601304433578039051496155487790559207172938074047035454107434184510547058990298391944322654573351072681316781054949400801695348501724020674079966222866834265741884916984527277187565759525290218410076198635611565806708652902633583981503850951809393505422443631637675029117702519883213144983385932909713074204273855709012554786117765121034875704666871980796837726253893699482483969377451506467735042536805933434847786322190962422751549253240478897161461118092203296924328547053286601678142937466377139323798109029383984811172698619543142731300960931838307447504208605507600826868341047170818198361542145966700630224204350725507609884073726332278658152103655018589509446222945115938637539099187587884762884013563964570044547418389329564173969685600669052365049334071336926274658714597740321217728458883693051706134569238105492324943998459478175242071215322671308599857613496965579908540772198235969307806540247447340844580119786432929445228667983973704033166334328399934127698632316615497613460523297959572395590775363225046429336782249347521878883611901369068860970996327983310176372211402481968110580215692580013264595157898862820779166449614189963906783470590885922620779197051815268919483417733302720257842892319493108867734900957993730659623809286824677332465242122246309882519449462932325335468567206060474087449430393045476211904017034021007507249377303066102489148896161282652436048568332838084914797329252596470998486241120185422703006184126629226181711640592013048500401682983246219290653961385505013739483923816833630661569538006106695809570192278181795968425689350680209008862713666605568018200386280591167674315574182058136741943831542391203150996937380162635614303622135758001703042544512946387610791771295725478044579377086257640233515689560339401282488380494306491224453668415240801087060874193924507364913542265028467576324905736177308705377681625517291011887794053257912941060229051064579738020732955872160427707817873439756687879499079731006931808743771077978860429751364141645169784890071394306070730217374587590571079686410091250840556055851239330998140032736980143734018537863705171390997572262826340363144173220633150011930967627267494555799552647349051213418796058721200925154610511691519027897222606327300955249408129092049279285352716167027613724829582614338692255465071898336796167087438698467721924457748476932193143745778713719883893856807401893549112221985736404566607158484475881984340555096624180102752479731873692934649967717107794946054177705911311705802233401707675075854283048403280664789175472949963528223662032610323630439013710072715458957064809488433552247830941906518023532478922070061411319881887087013054741952984994133531995639412328163084398340014709491896132049184957267525825923172956445559245848436830025047328198608941261903596699809938047952970294809285727653186719826284603272529382653097928429795444512734979238286489540600832284653637448759231638583028202101067106442589551949484311127660386599896486636920248572854252002576358295550329792654236638122682638488532294059868190565793749700294926842609896301956733571360462724305608266262669561775801309777965018981715386605852915083047229980684557373586224240847540019039090905111235051815236257464769918171013653768815466969049365460217315510373607625188520169551880553582288445927259687120754586756508117406380409091066857453505490566104746594622929691598791167663906558167915322442055537402455440613396499423150896534221759619887902008370950773134796658951385208034312555745589508131953892527967484462029387824331988524605882186834647816982381355821570858523197580817039393375631636034483100559788097134605741654964887742058557772738842792443907025143565825332184762853370368474362798611117649383587253522257694228548054238433097300814727049010357981417009849837245305627287179020366741840771494792655398311041013216862864437590273187349351350725704752669183638971383448798494141804590143410546728868072635783639105366896944696683022257670071312450280456471801350177427256245692679343853814871058585723420147336931535683772803549793773214008468564500727808350958256842535223841402423335243874412808491624798449525440505529897186966390291259060908745993521847065961373417286696505201505213926239321676149677936356395111468474096117023294722070757481912808228227015373564448843689838284273479565923287031482946962198303736555289249420373795840919955401487388722832311439888361747311766379078215655217745865776737041917272858617100606926719959292731699981210756135834042697155280045628326647928195381127777465942176614699628472472654650517141170046057589826408827794281250569395307648316733929624093740683280373319721605265023111296446147354101174977789824157034675687045889231267614490348322283086452498309682966386964390099142210889962257192480680422030322794663520007855515893579741761114994982239656460501901883841581486059809431116157141795366367584873240064525398608822978883128696900328481278839726803605845732978819231952859272288106022451066530022097652172814422927132333125549141287286628116973364144292005544238318354901230716617023823526328938759389312236985037904740569280743165021076533589177723609886259235860556913645111970198143463603158316141483652173287059774580773509194740177876532546888293907108888107721891999330707444207698202010423300534907112633559857448031285739544393648350009928652677934946967417576393697675969348181690113250240626547434359443252127753990273876178617193611897540454181414151508453807772305536072062679585277358446393443663553966727788590375552953130392707763001712300946137665556663412455469849603014616065983958674402163405566787566225599504757409140269684782469564494086925621919972054926280788930325778522556212065168688147460663790918687846516235228811635003684405999165536281898842567291139749068852887843570648373795253828073545718530757876852529871206437208527346205426383866955681867579985238965425669434757402821957530140687220609652511007906005218267504379219427435453126199416648262348173895520983987164570530946547228608471055541303338375838411823479759815557696093110713911400038972375314896742244975793828163190643989083702480771579418166933314461098280843942466783169409896572011549768744611777420442575618732238791866322542179971243478000059460839565645292316468491522904305915784135815073355511957610652604726994762825330941541465981370585343766964287751995742374593025220814114758574188404622829836822420014961178869846776874245819078398600091112715066620964138592434480036247354566044808110461052528547034920536026949299525705696632337925637721560072282887478398317196195861701999236122671591624027702764311987599718847350056059258090981325865893216682430347921336921340553258690102969107904496542685025996436001941271087221212352177176048256900373075162337507229188812070656642508207663128258292352140780260173027459797744878885217301565646169889223600606667467600261047623027580707416126870976984295943206103125475691970528734690623492973499045275400132331336375596004374295188642247003943003547772767405563129129713724958285945475456111054816719162199678588270836499464567451754730367341442897522805113453580126839792283445161893220889093786598419115139037460726437789489906575546416479277788178311346760138357518977943831156261151546222859038694051053335560595527884603317850896428753995661832360004740018353193854765714176709808630713565215394069929880075490761329982733248800165299293383745692844316676722787495441549280430813878785966485106447004866965442411265557040752116835841809608538729919675561488035293719242770364429201018876182709375113014845302561011927916969178942293360145494366623554266711959019134755384357370142976480443890940936746404839507738981641435194015240776777624411545375179855796371543591226037257404322733979153752293256001784379196660882182584140419003007132652406123972245753909302155611531665194149902757049317991079034792102157749109040244236761760892373245312549567431789659562614769201759594470123947708474174282406286520810772783321576590500565457115338209618855267667351826606548131679252486223809466620768214143321773104177285346254242268767692228448442455382187939751336483499413645247083400763891875453289168927719317675268515828467124591648308924401011208606713717363913442966883523123674669175732144263246411175911291287795305224063787551722768680518978073955381430091303588592653343028234574022867176544780930056770399497607930891659146653177322153269824911133110946577265468732299095081047817837352844119528446405198312468354570813832426892202484887133451312837470606028870648595368973411153051992971568300051574310182071030362909281519204709393906836318926572873831928896604468992588475860674072479973980516350894801765524919007259884872668040859093564176839318297713155083790468370463816221519230583040620147627787891149102319438497385180283731981282363433086147356828486845178265764507971705000672432377274508010503611620847158658502698963532471295009199026340048510718725489480225410977823799155353849838717041092306384205347440850045485921008675806905572981576496020810735851737819247583340279251464553776292301697157850167496297876968674154096576813508067825490694742975648815122403049197895564245469243638266348782872984997509042001439207097620699310424253898755019691400058196576957035863697722639547356355348256412624497473790731613756065218537646786536060484809432808879617372793895227130042123157308026153519673980673697833831784088123198939946591785266808482687753782258440825630079225716125077465580885384276339208943234418442499662495202299952142992520152814884172414470855495409827360168504880627221247720116964810883984433815571592944897817282192964893438610258495381948971804490811132570606270053130452630864763602248657691194526701450497769185285712075887379136320562160094802944915383280672836206112415552998899247168180037099435994386348006684396665133589230372811871886615411718479168728780681238379985145692914487052381149254805430022394011348212520714997351396053360430649693541420481850127740426362400791731407019650891469935325812578562111236217153197919812775367520857259538328483420065531139003814437447992298127827344285488272919033640647545394041143502793552879955127430065545692245599206340677220528853017826394339682048674347852738748755789325640027726117936217250062265958389569956366218502477227871431069855611054561756199143315039734735464630351930235970537278195787069137256395802709000437561195550258577033579895171830721930531505878237307191064685104274940920678067937853723457527002090399860980845702130884550678544280378229986575332557485626588138702415402693213403346888865314072578839044027478115622222741442600758909743093800025605734958437040874880955786084173513946476058152314251386674139620400786933301629312647284047230590117692933063263328489188690400820502510706013816667992636652562898828991843299995224222114820972332665097386851298364567082013499794874096133363834631027923525701823983812498573964814861194623469006760750778547790315997878898699137467574218566906872216216069688626317586307471719105882941521271998117325051151870850624487909934340004500907379192201643701135016016260450508197056340587664054529079074157771546074267362706438648221566458929422982835148503652250296932587718205082510361955280351077283296212367796778757433562820280723781791950923774921382560483141067325844032542303470237340874292258552908073868934362475483337704924202863309331596787343037978165552781249150587915692470052903177784736078280868739482450050685037159102283582438286693146704888786516126450209670550786648296652163220301226525996352455964298292552807601011683777506868421145420541386345631519554316374850166277666032723457132031353428489523239227094320100232150074985994416867901533638178227224639302985958572683629439342308112493755285571623136035437203674167807760883837259190212387006813508040501159741511428596145080316099277188519238357073755687913080781875627639128843919631763833700244354699885856958070076978191270737027120221785451529651103323797334296444260948237619545131072113076638950349493764900095967280905842898775948271331876595802146493666939920571634590508500161197732395028110467651512353069477348435787881647734976128350008801527506144782269945375898301452595174749719848334676989991823813405082797423648588698490177919209448299321587651994898898383174796239183389807674465400453376213651991284160452502931202692308061895683497406946951880077956901179336051120444645629169975517100865562788592564587033709338980200529934396815831635896517020429411297648036847091746062847388909938724487831440984974709864527035655224482522546743394569789770462383782427589228304326092409688070984155696487506473065060028063016409287778087824861999809523413715852025653315983532579666381433051713624900946773646257183308374058581693944189695744013406833639963183940839562473807500869312303122201556760694109662689362842160852023443354199099542411706235740936417987515192542490660083826448666292281036656392479259682489382989160338622115297714073257026132140106702772458263366356113100227527291919834921449563914993945663817567031851937063666815698772679081060572080854796003369676334550667561347978872876695215105622431347220566780189991216685722554740977303332795867870305208624930567931315692570820417751636133093776787940956216439387037205884539635336269026906776725195327851593946607434575501203086523320149730944039620805836946096194738953804215608713308790570090163748192422866541072006515855587048878804008892121833972597371032063788608163550706543828424635377406734343663153425306239941772106072583980424390577726541141891099364038783394778852724028139419456462136177256978173546421022182897593449938384246762773691103608225815395722677094723493927269969124218344434683266781958307192542617734610078415574714589075920129619889676999589930363686558059102524921902051443821317803276070001783258784333959696238548224409825800459394379194277553206359590028942854277269810796200852832591869434424657725939915102632158678914883959264037032289580992885993103482569101381256495691770702472090569272048044868163715569816052701744813977975153711887567289599018309689626794393278171184703771593302873003499742060952316599309139635321030182795608553728820014927306249177057473338608297635653904606851262449814360140406053325310661937480164108429402981919523209659515066907734135776320754631399760663507027059027506262353581087743576732096100406418925183106252169366500985212094798332906279063707960011756399736735785319317425180777252915043927754004267121666557049615197711843559785172743339300058211216290656330393465664264159475649596123237414424965226923309110477465482588931072230457509335416784681436052296207880550379129131295013632963267489520381353049435062470179549312027500708543166460520080560899657649427496662244660308809850080306538907480127711941910901111891365266465144533010972900092991634069041898795088789386238447636508459816380277131123790950458986111595935360563721191726143661380060145565761765882773254780572409659310388047518661090642767198161176823689184200247437842308669985110124883434428764913720657467311279710375021877633677100189670192570876328174178987626979097432385137087512710866789078299227695511967274657826311709776482651835733780078201233464603115438319269385943933718721970010097141622584615105694327851968181648217345524185436744146663218811484756967399601600166613842913575459844164845909190931738664032113036036395891427615942105898231031582540569536621227943407888687410546989900651786534888659039554710860835485751450435566641688210554469056459367698124501452987029213346540511674900430146435526446439011746905042386209763762922380795309455096994353607938854584270005083877635300269716590980607330164432591648405515240758319774176223515789677508146729121012868609690268312262212995116864132180858671036250957795073620462386140296613366015188570692456924809060969237068408911562860585643378420746410905215418252720949369107705687957024129231966146317982664528860316040032192879546515294357319660712002465351806202830975094938974743519765648631529997873339103793654355151998664832617912653998726492910789338878119594774733070139088129581197698345519039533131649840290503907780897214182775589509625400367982781155219296552781771365306464229109338653922174384562344151536436066388749201058320803475625721775691780013780940614523536740238947387350500915730013790428494001217599567125004887522162198533134632218464032364938580456410646066503457551470991960371759151689579898656552973590897564938237113872257775353648419321665015648884775503304953724113080209760495294673152968593777659824319992879107226526284301181936163817911658095612011590054626300583896699076415229887080746790485759347853857927946632370624442713123657551576578602500089995734235570799994218543352986629988270640284069695441942567391848347805389230288783586663572855043248227415169134161468169098737211888932752127377964598943930732237405025433329014547591131166569724249277281154630408145942889848971112190249603311175353384031207060167467473129033720122587076589996809585705906761846178125458491963532901948581572812718072853674620610004181041669844534916126540754929870463107451194097546424276893780512862210191643640572118483084114389000909903050916988698233746793611036292352190299990234473627244488795664733427110224659385131094100395367052223668745168852215063072252917698212852851094521125943772299390849509293661788483292571423716689140535084187980328845152787972632275401704176263979960872106778610749865256165162918620403166987467993530481142342432079150780375617653954800520881613341222214300463119873056374563129344127678122977257515692078119258124258845569936977353060605310136620143145929424251262070937896464500421668031236196337385845416054689344922353044350022070055588327105280149895582506595160525881683153040557220306366737848149355659791916565605308047376093429744193862456636888967774659761911914085104437030988780343343167166569118625486261272577629233396530887161522804361491990973595251386464749112396680874791716031901982040805195357883476406020973422309453949705459823382652662650102982084680358879996668013365327369619728152101056255885103033393952161250659823263971613835192207567132465611322902726038699872963463352359562101843270762610967272391104468207420891676408939121713749314271992753849508255314504097906551126410922524466951874160997774452292962859911483230556251130378287667841089456625214600636375704860176861439313598711686934680417503906698077645018517775755559156655161048248014700117028673641007673552421415310883531164446092422140301077405643680324875561798188348714487132694885946413740414382326070147876689726759096247981014247424983699534465222328687399602586336727266213088427463093268823561793238156289555417741550915816302308263120644165144534225399216634293534116142745020351942247688405410696237044365523916398932850040379522718004742646614490433244673240634459226489711924509248364295818492694299167038993145577641237105258974014624027441281979159969108726201214527916322819589336799372140473702235814036168990824414205936920664157859596056454005783131292842261585100983680153052907471402225386749952699083954940120081732640766374584980854718712285178010406870083073088172068357852463061474566442478900940632748126487047085249669308707550751160835121469982754335020483190663255888913340861313951284475641911241916298665986228691560063269429376279540000744327525408656422372397680644622772514571457515787691798667125965751104320809171948817860447311524080393351627498455260001714254090298092166666890103211474949016110665528673329401653437097095624656880368959552264149484568140101031572823584201107410792696324442277729339531587506515102257396293344732774107988041492670043859300895946580255729467384695501010495610701622954336963299771034324668478506617603479855815096171137211856704904529950946712299452201318778128022712828662127461247602179773493371064383914206568760106962352295950473232544856161545264074201452299909578573414483074723285330864448289047581811996564173817611591770598205971771148046702666893853096546975627252005012737165339543798316243838584968136594647802096215522243146844336303331688991977103765048367536661706705706976508702602959424876024621776421788467108634185986234875702337609015959200623682433962002386268711706468787847195358465917200713923546639242563432669575399463850156440624729935138578641525701618965961194772841828279518802294954725092311992847678263031489027489360727606856705931861329595491702867485886029027503219000590000426420870709271910280230939407460322590510434538229836175862783056508085584686482419064837597519731214016627590519240731747633671680328646132380447913138490808344143535451451113548920723592412459793871783784159888207499195842413704235687062014305646629473286426143138146579160132828755058697379865028776164629385606270310335539002049520896696411979600269820906363137256880723061712986855105305203680369371650846110792965488309803680740029534724348387803464115572476810865444661410868369642935635549556641776476882621365279351848553727392470964902243212185921113312760616059656933318089720341751879955644860655257896823064457496908685704416923933968880028919760917761386886236358072111614563376575534493525915354333854776086571737285708271505739423823390566070550300654373732016024288710801523334254221989723089860949449382283041896247515348318012028978220774598344867435239487586720552306982748592063565656693169064536333531034757946703408734505421238705581147497175986829744391000548001145585162370078899884003581657515973135083486050110012892321893799171438925697451565426780679955177845088221343188981941810421791668689828035618000246833786838252751952366728405995559173422879144073763883284506215956009782129525234805748258668473314030150386391602154738936537193045940883355232433319418305868225319737192180264886544382467899655746197054051669998979115336293291883820514712563505547844564228264882879089608824879782255035096399393137600748618671276376186879145632585264451976125026512040993983548777169999371651366931351233096555837745340495269265614253227132711333884388795055138363010100394152658178251467530591798329168099115282616323513171840321176283392810563165029493156096696061203401934427174545108229555950777750198260630823600323729657190746730749101105653557344201399732534344674809158870034433200336908418872097032156288944562340906024172665340064924854555833219582420340242033765039247946458803350319346811069298153756039071753285185495592084591689764757033905044730334780456934807963866086524948935774238128127142972845970290299401599982982867637130117265620536726195546496197135904595578664604946560420725667325627394423745605425607262561212084023151531536544481205171461752902342677277646003323654901003213054957128862355367334489112573315143273460197859834873297110680042229897576910438931691263814563370302221730776758125252109926881609956196516586599440629960987423422566372336892573769542403034135915044124832766022037952331711013196742799050490509548502496827688001646008360782901580398703913272092657554054508503810906369843335529768785504300655168321714844252662647967775777681488147726758547601350052219487410724119433211303671643666270780306689564207669958528801946560674440397752119915515555976735751780026091490468104357718261362141800002406379204758532634524648410487498432243775965130604444827444931236231287382673112959315241533717758145674482829766424650316341509567229925706831426747133785671726290075340640347505151208529603053016983075878779917404441747726521154883030331844734356426900903540989702571976386319048547484403455207840813565041149607349399202085699429690779204925824074287583576661675504791990372886804884525343471196999276524441308348234820084416284090101364081999783705343846540154017466773332001176557809701712080890584293101771106252111837615208575080618593251820456352311921124335162298909153697717539267417378771294421381688354663005664031723242674402347416366682824507647430120739582453249517996058834147203972375054601797025352538212194886689702683536082954104479801312333623183600754877390648620202231493052827369175378459527065372916069355595053354975693963312464185345422749354685886543549873331271343625682454434667082768808360899731903091334381995215262259081822428491091398932336105142628497864518260007202897730677228834538768840125054232729223917190418413800291489438704362051312275575869959659408954065363461159244933937562618643785718110814088044685628086391130387521133967954005159702814961344785754145654729475993163301020115362990823049354780512953218174409981417331292116555689991907943729523675478119637535354964313796995193235188683723020043488318932511115325390230718038948729138197361233620389579389720535371509067187278622739895540272269193619738650893059052923198532692168059521997107891353284889834481817108145526941642680153982579001190032964989726429939967623493559267234654316583332667649944010972838407167688710327044375365064958603624234549631015002851072611676412191176038391653616832523297698210086346735431127379592910079529248243664847481531974938264434484202112051048966300791648587401287381900571707051331417901550406356060088874333832622402131775776979549791579219850739696050395866112175068775907957410489667341167561829651578695790347213041477015005772879981508731782448774205705044347640780670248296486392334027543628003660695051719462667775699056037138321096626721406137926889068700467484278570097474185739516651711281667957685488876174496040534139436598001675939838838284419316751648774913231797997134989515808116951289833051356106644521287081711068999592295127681355955015937124235627776128302985994478181840586094532947294861728654174483180286501581410834519255340731612510535176628308265580690290576219990504233353056170734519635280422381292647227404556613374426625558878532674298222940236732188360972878796714222425507137227058644101985419477434868701909396773412359365116820079506290159909023516294786829174716189595390412446643885361117056455728207230103272171242019198844701656105561627175783863302244491376583396659096416304043738297948462833169709537113680048372050775214777582567872066018777562286979591741318165462041569967492996750720914544147312561608659631122221151999559623201972489111793701161163123623756497453255896300796358661396218531357216211977023086672502611841855656250792356161027611327493952145906801682804463501420264113848954763530652136690669656023841881861140328844686037977811110979391419483218953349579086791716756777642093492382174546077650271077083528210547657588693870844288240778622811529795740762708550726706123713833361982831496387335884583132872793724719873962386360275055314159936328325973382436914448541171140948935936403427505254701662757353734173853563389245022485222127126038109345287687024300621854588908448966319339827947210963618170642952719746568439151142616738576573071596789102252640145738760018463757024696310940544435681792943032448671352950427069301937946245566622700687188289698816866977788983988297504982741345951968042925479872039380103164704078225552364688164736163185043063965168496859319176686111565247632097669390800973344176689783980776138395065589247949263050300552710204817316909964793687013850014216076646376838460680377963316697962060840830455409374280898019090175168939868523889797212535721663625061287591272309776707873063312113837829514529574258955459296495226027114132181505674599365787044721656175027912981346352625170840318956675266105207157046311945099273535473455009668529945055065904608190338993699074323674939164117812190440724382222910915448975516441570475411297621346955683545219908732195952844386892408922132213042088406184366167508089095256500803920957123580482068090507547008808743651324068701364768652366798819434696366363613995944630664533364737361970658866745695431482132448130166404020504305361904904283892350205817896906753416877612874247778741082564586507200915983007496535018481199376384003213125235688104405787222874632679371193945532764545056557805109431530330463743142554995787636390873604656292118533945879776519270555433271662938702117560507366738044455451670776710906757956080575375644569348435011495001087944733467344302069672032197794159891345596487912071926899275088458187464778797958071788373945048706912866072216288630455936531985013079161065510688013783191571538741348486663856037379061865805369172121753495758505702307126951027747766633614495138501577345220137660140401676373347354387477520495318992172073540760947273353482645420072516426077849403121773305817735631331335554408200927489510629572292368929628251279963516392675390400134572378576396926285227900549755369720486248571821278059859275677204803725292827881016258356012200809836017352390597455444685016805511409950994925827359993709251864831710029113686437065162882613782637224588320273494940611236890841656704407279274806027401131225243935340161436236388533663350700091790232773300669027219271697844263564116054178633865216519123869708578471064456685194989722660234417020465044807097301275482048756271491635018400581367476337746510987978197565855459966756305813660711123670133517010701129966126332101666892918043365616969634156948997218051647523861273800696459136847159043317586348849601719207809010230416539268294094502194681366193550265033587502174285726370081489862678899103519591846882633187432706493139782034310316399849570227460809640598754093010905723611816533759257478146787609390510902407648711831989587832783979488534282394108805624105513474801545329340570968883044705115145102751495935745140486213124215014813887996753979176476766018259309900426904761408901401575807316823318279533900317575730467779664758412356858211633018298765560490729525600031630864883184783085002120607867451583262963826678085901872412983635613824434576775763008042165866754902435135981109159598048458389052233308543839546863304355888053277799510541874113445711863042165663953412346505556970350758282754991013714570065634802095226826990994489376132527458479069802105243909206000840884248539382182101662865878694554724348050200865750434876083252300290760665981108485530543132546639419960869667415710852851442674307749374721759001102965210506826255942834995979350376992372531893624461333760327246894893606950657663140960681310851768319176932699186595390226564453414986290727274139704762534647817228313527812028850368078065026457234939816592003335834362683065153747723034038319881048769882288252837718609514008658303345526746194609208407595697661305030725301197662122136519524643181934266088318801771069079846192143630793332160995022536643795416838676846584570409853844962751516562287869950496286216230767934793316491279255935652036089822077575163134652561956188444547761594339007853511351885265868763483493513443356909765317653856921298210685049995895896559720117185986463620462056258807030263946064924718244646498815840421291487524169780835164947948511979461451531969798631227225831313189568747419747203805046047031078869901233235677718264641853431425402492510804652848433486900753031750947312896367388288237014465598568694600348030438430724666082785532459707388259232332646957389638846839314881322234606145496210678958932740732308143979972185087584462983274396728319073914641807509310782640026577610796847756722301184286180296718331797134260238557952348318689719297054083305186039218576385768762801569874852434358968712164039299580227075921303956772553760378440249267027332489972298567008001613877908670389763462603613666791769666763453752224975723858638442990851717443495988045101144623239992164988687640707645844534405089869208567137280427241132191365037575469569748755842072653941837792607062670139231684409795123687477908478836898437382857771946876819573645317149330469384571704089100579396698528478494271895392519112220330530738057366182924150876239697907159827109073511785878135729727570400056635611773084324983465830000774849808557232974462066945930624400741367833605858235733319663730877062941283675780058803294237805971820197925620054403050170728391927841152107876895825652799909039659117793935298104396819400855937344808446255857769429474705593022852432505610029655652895265208987782444407708157465819581768405537767549831094510005107142692718240618929460399405162226200149063953872655887030679437527215283531351540364804298264278530352406031631947300595061696644989802170143248416960961992896033575909702445428373291801054575755276968486448287641888240977163191097373925140744558040401124854642012242458115827529569837327547902883116354840007041085200308883818553144393424784877397397874317610683249024578413502806854299563258229433447777265432715145450291452287640776324732504313973487800971255440723794645000833257997106983114992550803461421184095490177288929901758079948579866337261505276460893775461365984098374821648283569558467019043387642690192040233205964197315717178179394053317437856665151965641775410044480412904669128215027928465717519820380187825057607232618039788187409709704579272303813009754655554581516546639659951287937466466442094784032379573217779819967516377680115493123414043482014321320326383563911285746875764197268779592518529681218720247290441340233324727263303926833353218231542096666215899427720459934357577873153298387259698721915739447526577432347474283786002977459889098860180434987096892126912980002216148142775866887738207013780896731126904721252463310816759849252019849183567580275607557566772081748362276785590699420732235927718667097324903096112188296540014283386298820173463365477732722293566031479449191085196117458247131705191072655394170819723984798905951771056231825037776776910305558070329709859509288517907483447398566303938632672121438221658112994490512162190088628004142221098117227593433017698908622700856030093558163864961130470665796441131786894431171749519624011851430118185951813617006683570557249399440770513633931754273667673631030037405056022530020570430474758595527054370361606131233906376059196115263291384796004361552959232428802638483954021356983614307690580861028428690355966585772941459749592232273060813510265947087953173206945514140472959551274248387576656459750153353174845237402456967172249735301373860898114354315646926630517790944145599021614182764010306348881709677671380142458140006854549807428413766539673384847832469641974957551484700079217984175720545544020947670976369351444262532172052243027000454069866072311558190287609938984103917415013960796597368753946594062456737180347195042239212025440385890263711213935062304391548272764133911446179317037293870006044133019251416539777325619465335744418234156131655515869319201886816759087026120345808690777302463252907254922185038394046018615148693974236076426333088216060535010377837818452341738787418962582249265615770192338545553725178280611124759439913074917302887376548116251192856178479688547411812567081777207338458579448584562448518043051339858853350326267729552803212119557850864615580883781349936289035593328134490029978607925083030685718070855359889402989909147888616813223228328423909203966856819064286492145575537464439960417325370231040990216928936204374050282383759229238411214779538577204487816459215988498013244687700629838417758284074480077372005502356252049868108076112742081090482214558991869926002756443580354057890566642820388041210979654623114136121211036604193203221397188103377595553876495886385864162170850142923865223203835276698071363024430945581428434614534722023798875391188897394328699441860021891671650890364426735900517440924585461135543703603868065796454422308108191908213481351091914790437732863353051846488343577575065381301529430165475515909576727054517830965133777799027234715725881760067678958690701182800426803593935781338947179102599301114508467476679240249831939963488528680741487000600259941602353284149948712205700573005327429747486727101165142636954279213391432721294597746940626228248123910611917759831368880486969333294905853999450926859050351465236376053750447043498550681761506494219590636956010621207043252476962479047424790644858735536554667851785985013615478157187929949506417532176397886493120792219369947791875803494071775272105839752795218875977533637428237814391543486692419578048112875176777990961968439702859583179729605892090268892833424574249665629997416806744179283143676765281778992669229668425579173755807410527468314045421664481718943659546167639346968856015993228090985810807110905153419501094644609594155558456018558127523365120249290775607603403626962693612195237242464370042077101854884516499184601298290891680751537722889746979377864874617431611705126033173743422076313385330003999568235302065315137484641597411094447580802695870308949192260387037613324096858133647203097354823886983086518522391691799005726597092743035016637850704811820661992748772143611237199935129644666815395190615416702145223501414058936289963653548950236841765807558575865413865272008468951389053715201738726829694824500182426911279511677401380940542111585237527356150198656911037971129953996008266872814506751346000409987386025072858166149000768147370100923185386972948801370947891645566274487327295842630164538758018359216742413462331428701659765972850775115428889559454686148074448056228865496499871276380511782645819355065142622418923857249713810913215053374847762603759561240700703382962006187583431557137906611572001645895833654222882055963232881145009723397196595609904075383690930276501930557593612111330364066234979562602903527510918536908571645887011588113111815528133978975239135628847304990683830501829429243028592660575716213328178711146656758051190395342208846684616861908683454808885455406596262627448587124694187304369358480377164750714783567613124190771068020664162091229809269741362121709468791780871921320007482959790012708769582218292578896640090384366499860228730018595866453259071656828732594212764048223658914046235783328723398841216316849606316396718042603780443304622400501615847045065576874735845324815828553645134987549325742565693041961461329387330113650413327485039549472513771142286028485589876201166571992246247574573470074515935760317595317685251735061375734397619174823882992889139186191397939090105199442837947635334102304581022483072670948294636142964212037186393083206759034226289080887373808614419044713610838633739725776186588565647504735294656816625814771607829481427917366900497410943942365549096870044361424562006300198458728456960663815847335959066211844273216915128252951658326293320819348144759804811013970023679109156378969234976265437605214632824217574370602612689687731172769251031388525087137017913011620406146691260799014579241962866626382733995084137798513149290918101504645014597802188933010068634314167151727703556737655917448026345446730234276866254854844781586033935889900802593628021865843055970860350314097682770399741375873507836910925676477580425879402439265798510493926964692333951181219499204376731530056944748933973449235198699887182832868189331255485356873763590754969609549031090851115297834130489341606412722105778426746304455715215216583935657908516823502690859711688088031233707123380987471977678149829720452285359448323310309383903220515080900155549028955868968153903266962046019957661057606459495255583027226845229975796096653874761879599243937499199159997225391762502348609628487044031180056428837396583649933941925600924519015996346145331573595391981720286285763401094004389296676051598504618497972984423654567727127115313458526414720273713878054572125426298034948736670078222679195041749339302548711188714503505374329831013435015128090420495423923882008188779330665172813413138531607381096807034948771342237745645296500198632461263960966820090995955965789403651170866077782725528224259522274743421325377212497965105032504404208346403583899543228793462533078371699014704855046748560716209250736930781422815823599062728048840991933103172270047989905627812708858073588730910392802220394984799626912127789837579400737978892483294407676762930964731633209550686255573578387465843359541066346218238309715095965709623867734072714428741217652829540672191511586290482893651492916269667619413131885161485341508422018511434450836765845961323596929306085452877532546200711080553304846277546551753095804162030636251767828840208660999268608738660186726884084853949692201702081399323972334369943246955158212673210694726615054849183847376398230069302554352192365604850260794783220368954705985838400493964286300907527394604376010871828360168702938840051391794334110591520139933171768399689416344887255465074708195689974800851443556082627503296111012378632889107116105376215795089015936421120340837431209077428532603732473636968214908614427323290780738551363269163003092115920440270546158869596509130334933421175895091635054835338728829270481286403965864483279745848129995121043858417285533112011211156186287898723302455420423718957065157409970468069801499375876391054467230206433491124334945065989123587559916708169621883961988106180521470810795625408226655070990884973166945440662754364053820393140105681485155643179747971458374809644172193290409540901366667160910103155709725243075348523060561392866243609876451181942187344206290400980150284705665174495276558763112092194601155593543831908204037853051266435346037412289386206506654207460999976211367983150318136697492775094291249119241429317217283272386765196821176431778853469476592887881689323601226697032399861429242805864396396731089115990878549364552944554115137560054729089562971475878449849080084246417048952056407684218151525466992190833064136444700108821011609671467639803470568712608181565870616619916289728169793988608317349735894752431070553254224834601288659696846478138294877024778942796546708072965387196391318036331244082290532797102558244374406158859001755314089606239786204208146552054277744371408903788973312185282436491729914793429402846498307658459513543176131830399997443080648891039854447021993789671505506947322898039755500598599403543110494713414475562256956706065188506080258919982977224041765235431725970804921833210229188364325866336917660525533453391694981134303707096410833479937034738157288175979338780453875266940515411106693014385073215007137831381803361719038042803124922453506284494532293177857138714739793462520641775528227575572970603854533150410753800753673198321105862208861566951008418698786842656671836412376184090762998335691911521644338364772619923416256160250548154078325518594464425090727735976075752680027875321509610356965975791411353823750039937139316587860453037968378388650709437235506783248577451924972879705407592555166851374472082239309139060971999089579974611276244883230279079873348268671330552401356169249905375277574820516287467048230654923350036127259825069377169788752194208546821148762494598169716661295147856404576291962961772923762301896856578022134421214322101852053672092001650570970614636308344538836812801735879734078150831690293834563543404658333821243990345703926253669391928768198420717281730983315016969760097983576060911897214226751050710932945697502186980902314356866964413169177757348429492624502098162114396959390116346255447435988302494760430165233469862888749756361511190769623750138953989264540972679040865157974084790253373632288184471494370109800098197426650021941358291206329598710872279741868497630609659384954792033823557063878425501698537309125626163968891512029865503955464381564812876119781110177006433600775484618175906498556039122261342234135215590883901084660176335403955402969008370807639141267720936873209436142991890194672869637165229977013815367732705100941437434222772737988513815822705800911373899642455479366031397388909129675515316123904554418507476733555838855584704573995352156843024272390029090993616770307793192441632921884293675748848013621699100457067791059845624652891622813117392032573526772774733999636829433049469025297186791134123527948070693393600865116151988123486261584937614718353067570189077806821203305034215653238933065582706831782577346139396234898112492100569725253926998582707602345782271058206974514564012445248476879301776226449734038091138558863610219290739680547056241054779539964170163248732425023953237927441189771193110225071779286564621567181050122421064812478907934675021339433453917717612127194691340718915906109830973064273813088988873873530229696042461722155519370588273711826823680454734565736406665563797293841497913541276283925708397927365938757581796111726057259244623699559784516897074068659001940295249937761054208771522289103545504895555211427378386470358861414854492504561929213719703548580153021670493274407018510205283575464840267792173325432020269111493405618549808406662903523455686957268210665744675486852483860534940504212376336805633465562203529420153671825811193356685340441057682799205698597771541439753511801356195261455407370733645066783034547669753335355584744807058737914594829902970845979018520028911318194219259308665333574938359574715597676493371549968313956784754009516751023712991756508777859737207859439488203015026957034273645604598356127887621012516817241203104489517948432236328660455094936913010932022537654933820533450022635970635471510437976363202918416000497081164130727106260646467032980635159282147300739238930973427040371984952641134352355049628870610431913091743449714707457871746092423275979654136279038530073746544162732376460586427564278529086504858064873615165684595561754315336632635271816071796807092456889421530663102180027761211008562191270917459578327944825234144596486972631727228270581476723247759249725964291177311623964007444931565473811624605566191706030707676692343892462872811290592343355957748853022115044598372790598666041885430878274169515586776495935066463532788411900738094502428552102488668826099332942941767831638449758980896982443697646992224570487343979579990319683025973628418633620513081683679237278927970385822708055087091381119787583950856595501572243702731885289847440431147742213183006987178135887748532548884434945677704501203940501167206837595991341034891443878347391545344769424396712552257270627441267526540255327157079327971827939498199433919504979130395864761928800322068947126474199980880589681845715540248228997205902420967687530952170662038834866955314731614198619231107481371409549456806284331542177707401538796054185569323610622097042405058720407938463845401466214764013119508705541607380865927877424328561595111439631605839364855359057894060280153140266876218607424972135881322291835331895402798622882599297297655476913442557834004728507539290158048905323428705803352011395274577775949333638030660656168418672210089601549688040693632572201634427159025895652983102372757757998447149907991812495146206274586924727622608507903904351111281925498603814607209045126789890059955101716426375442813923375113827266576847579442092395624424253303140087733547507174606103723849007278368832702370732102903551062158230921488217137459371163967053432998677110263867863949115167607620283574232408836847425016286432852072422933395342775576724522870360324268700555346348868732228661173955515102859518464175286431523923140539965942062154315349595501863013368112710836416878782187873259215196484608227519194954150063708021050161282039054578379582214096535245419572887214331101072084548559529822665861822353656995952733126223628389996549512422865628695291494486871241002450362132700109443136045218577500642340544892403338822379292247860560701767861087429963590403489032814045093783443583175221716934708788156228715567607099882632187993217739445186705813437534604598312132382962309162742286402461129241184420859129443964324714480756873887047688171214955827752261310362644247693827965216996557434275169169149939620187791021118090477831823943700617820666382910176281766190183959827801398481370454037111327917607073314780955351221473643176246472010965513379086211747292869545120116621175895414488025494815228674559734452479429751066999715207467658963775209634711518009861134689101920637173406220201378359468839026177948482932259971736646640150935629928360515338606617398141895482488448393485512827796765969299945627487509542500630996610782491801568340397648584095378629954906867069022132047128245452756794255317422419249027976332122785211245117629950295717035121351342024745151352382931589870214685991082539842288143890495454569640480993213361271948221063941799277785482836301411915116236952766869963743840022894934716500675356838308417215203454507572718932471681982465170809281094928509324141580629519067316059510975363276401203207709795235550753541467284222106073218175905822826385135109060087375418218285805319256824869512807553937492654394522137160760462713044671662002223406796583411055823619449187375379946793159524413034983953170443645304741645693429361706593904262430431190920823322562869619271591183232709031716235404780833802102340455179331614411717421496652318869032890694628771471388519868721065136537036525231318892458909183865765525018243293174783608458316560793774072190012794349409284991617048234149804593119607924532400685181230632193576746271067343991175874990276208031601284548618576400783942677778943795816239705681175096268084547432491354167808352718913006688613340610972904079867381267703336704575967285922600954208263119492884455205372335950507021851316475750487916043156485608200940324029534240420225777379903246129570389584634878415700803012358064434491150789737466745411260139062305012969977601782595261780893709819358721079853242612729592184401372113880596704510529248346414365507963125898931703596558064281134626500213106104145937503757494640745192430379579406667816630640778734772527661100931958091231721315651829363961320367752053008616121212720368956502230382949180692133378015927018194566872384820634051924285752179919050179514657456629565175221151025119212261344902978418214602723414628439407857573570976989319191380327622677978602491227045630434513913032527072452615009467271062629053708637059871837914826468334671076975553606295681497294159300390362701137669532625741288782173479096923686920640268783062196864196483528031883222722988563412631573957480676329173173057816106284585494149537519875237094394336228644985286082480551080536049192558796044904831467199921666107087743453397985332660692642055319631173681451144306068062712890797757196671014852779133314190332235962418338885075513880039857739126085938885693540424345211182120605431255088817037966644519049600036481155191193596646245336372011289654687370797853303370962996844774779583361908343637550463981829727144730934397962144759966988530583599066639038936677118384685720354539696122475631690947989134228705534547599537750693279054598014749935746997905833381786828498776355516172659554455003823034054585586949123485827971150892120427570682764922032866361240964931110503799690652246281454768648042102350895648015473266330136955426950210592583278287028197620603641172129036203741874735285175559700860690903025201769808264324879029351026011842297771924524587312849130342930197109091802836927286329918808410509619880812922145468502885427871158947302225160057289099653000572533783914493839485617577023515723643890577616990307640147936503190602804236981906672779225102879787494688500287688031291992118209048338327439111963806877418679911935718232044164886551008741680088548536951202539128438208603642606734574427349203622304244198399670587791826976896799721483643334645406135578061007133884151946639903490190380227944271194865541293189306618786782841675681154605387285439123700313205630904988731171933259934131114842553667047577090046148919791688726914009363384073159492251257319296632510954774196259758160521931210738646575598502759074165565149547190138714271727108718245112532466134329070286340428833568783256373385699170728794565783554353625233678949672001600104640926070862589196660033149653659298482117906687576966231303774920049590547110049244344422117181411308530904875290145074629793157682860788590914407985101049376867831559226844623551938154191192022227122900226279204836799406273660188042055930191781958637630228834338344536094601281506900759742570207024193843272638276473922553702869502002612654101001168340527936934283347102274833895258852177778960535198257466097962078720365863927910391678708591377086017235954222319670481830776736927905410986334738082644058461271217330781164623546625203541458560735880800749594620578750929675378601386407196902438668017413913795854863082136898895848611172101791786241804618198131607547526492744771035609020322179279934838745918030567082767119838533701068816203285774508142158030027503808739696628830547133855703870561865023248402182971011476028700299623056728728928314013380880921147628430178387786193944771216847833213680189214404269444685648554453134836106447680140346195480467894307511989709900604510592927909506119751707540393467644638476600026286222280833847292013398613114434060213407746579357540420162728029656659247949440040768537375954103086889591191258893711300184175104986119310011147806554582782674648972793226017405739299565236577344999945615665225201361567328473824113425656510236575217978489474421865118021755866003943739382739973532662693591720152146852953668065359583844539930277067657022140052287678473661993099116864573465700507752403347251454927498953120739519945340589003202772225608560270022729471927451828614846685233840916038544143436083563841430694973994359603176415568537440821402176970638709211293651539807276605126836194829302379812613875410017860548293834060298194511175371407388586150158229264186453791663334667374336887174961556098234859662642926570437724585572818459674571584285680499787571673686781199016393424609479230769730152908254066213239781954084458859503482949374911619692342602811277871466415813672110256662992346947167967855304814009101239239465971876796100012215193397441001326308457763965597634806152874852083228676154453173566278369542445182266761371891361883313972078154361017599324030800233194170536190438666032216993127516812648900519030112994451307353545575711985572108418012466884408512877723813180999269471361847891791831694426374508953137774245631208382069370012428912572604207465279895431396455975911738834159789674010257638680748629755116283710220403259304219667742235230329726941950715890465360518159187740232245194425595293387580718134820636714803935659973311606508676241878142584352416513430226087189568528171929953957112583403793213990762465781819668583647744667462003145493564252248386092286680278806081192078208092454496612516901750153704967799623298117813608829413551667986638038556893662505230050059664089445535351524701338080869651340445410291915277097542194787346367080402300597034518960089355201005118852443044800181785582439808557995319082048971819364492936578622090082677392688775513713036409091191482128298448269184415988372848463259126039823711978096095089846966157215999118996551237941598421464808402889319293163552699475194224988040312700992224340802195641003361153289810583564725792171335923565639173825938405976932303306192036482576167886984056619153644608597926607112143997657952259215251376200409805915660060151580559694617533169058704670668691745707572854324247037111757508314026436340501643631471333810916083222517095088698756582516497837083837343673578575050970958590579937832516595915739017358297717862297318392642274866774981220756656302897302297302800863438797743645050083995588164050258472256560263518319160449918597300988667893821992228665173957311138023162786936463726301838573314621681735745806013573622472923382616219492592564969753823898804219420620372805319126748862333786085306700281866926132192855118386636732463005540727893233637228324972293952724039847618282990253930059259955821005018059179682487936007579309519434950517478531303880340831769057546276986705620369106272670226333829305736920882097563780480804147992260034636760550226782047012665594631267068521523424792735488095873214151656836713207999221179642719083042322115065211722311677488308302209729533036937771383670353243805855514055715780443145591934260424206698466396034976138143539997783393092923085509767024627025947906445090419496055713876614827720058869680845328473537904391506756248177274773239216740504968298817645333098985402742441469642130526640216793206558544378804828862120817976877600336061312562828840754418603551013986651174501335588494618979579441643683730044861102434286931988590114980155034275446253929279309148285258142441459287468386484588105553216113925481459644573389431512128134316516302117087617225649542655565778971173697206636707081631397695494585841737421367133940502455553736302419414151228485174267938744130565649479362116401410578237695329443738086488315978765533008301215732391492141602254600827195743721625529512909959780974728306187038615610417030332476995703945537545388318495953024839152064893706497995804949592331775507609952698194774937540167604625149359569542320800415881141568811980655593405521105714444458388313887944981840079231182067597116010030660332658634271805601158104515991279909980201764243219111663780450304736286573985834037717905596094877464849059739401948873971681090138579838941995164415692354161912067149326960869597056980747937592921888451549115853054514816397289336937432560923177912779632516795483050800704468109694845900343191571321984837037239796847454076242919039558042252217036128173408263574705222583421391669872594842526008663447000671721164579130003287544505099050685788227239494718797069279497559632054921203763331585337844427668331859331595615557009013534514358117543503230736330733728232444965252178202731285071824719460886133044276340689198832031053164698667883871768765003214127966051668650560388469294542703490517436982771978954732983595172566817945395991745183742188489234515870092237113475714464216755227660463890682815009230076734756981921761167098679048270703640857709762694538997967621300415224066758067763702203988815596817893862179878884744371740573252215214195824642075959202242870498374556461832120922198763081930531554894339164565829967950603372968283191112343014621940292397103662977852212046909559745154439060841939260787353991484548796377532647592278572014940383317687058976303724218356896762936213248532769461173275977748590900128972584006641472804832268250474871318716188505830193335555590720122741609430896916256901795673881950640708344011085637037381604074701024137222760180988434863904882639816939193743825217884238296647677627513079796366333466770359798853537188651646185037276738548299782734645688455845079397235985537791145859892445760037173720050567488878896872994616461720020130008033040533909768335485581429040791132004262354056589151698565882570719318171468072539218991063939235050265305347114039633324653351899979421357988971635019194508795628331815953210986683872812897295322308987946439956759510464572965585788818461096757384791910257107855599418009303317210368184898270893369529443224182341448103503232244940084951343238258851214385747331838471356502305935228545487146348927265795149409781678891173154229825570576150769529025959377230098503554565167438779773470602844302018394125007742893315363963391695850284213399368652998843361341732685584458721157112308312504241465498056454781150115535343342636341337478918746304843477269751525612909481695688230889574043025259774856509642787124674869877174012234444787114796129826145951960707365256291077980892800272521580627135406997720330571072550211315412326046880865888125674945138921480382911038435013804297899153364173572709497169853077279221064499857481910699516686770885432893753907962056918489902367029689482776239785352501237517364586501656789632612626276816494736314517639170473604417035129473268395880965777104011594696659817944641092116233449153313234469840747266457940740892039275137403904849452936456959784749322195255383501867332191851508277206435638054395334201605456558758455779760095110286491496636004689610874786014013507117155508773994749757589442196806947473287182220292319269420624444574196711034434119278087596196627213645527576539148193888387373909624248077952660625069766511240751698739338543978627677365353383947271994729743685925361442669697795567660961761204867557023331730980826061411625621898636221232776102228180656626740966646823730555769168548077549110876142620547414741427149593240231261910910323867199761422567471922104603901461897663454222691091555784248682370178940935177594154840670711057066183002178189736932334466635646123913080261940470583942556752897999819508082641169980620733158976292645461724606593450200423434579298232899639008659400491079454885559024801039862455514101308738444415378527980971258615059572046998806351808843417658223957536056194042050297423856338930630266688789744082041517211157792049050803029403075939175065683726595743864581303954772057209765622151066073243383628624107785773370881730961895666228382875372050460302762160260208015020194887419739119672623814633098071500180550595409695916025165957377584798414705821460449264932627098816356506566822502085150127481294581548459129168137607337889536261256453425644166500134908415588744530357117491091104503959897071268659631819751298112235540761662680630705523398736108548320069464235112383933041438849994007507210263000713373035867061995735683845754784293222280768780049421625405797194450655151297567211162014174116027472633368850441021141281018085570546819108744603524305976738141384584532076597162867405210268684389770218559010286033595129638581476871147038538700559966415359251265860594639138121977084076933842316529568211659803141083515123758328079641090178736279915262280746073230941105494093377444314715710704186336852446412143197803005572479146023032526853788980355476901169647272123798117426894802155977850484925260963304699244918376048832279882837794682708630009577136329131796158324762502306111482017565064012953441483286075971326561800660795905470897597443029955028446768485135955791446345880792076566262016738346055479677042031313490470783106306370854256700237483398056790942513059763311402924294160064930510415011125426058432736749044631632785703360182267796198861432079326843285749226867735064508155384380334146942612139199138944889468980591994977723779639520589297989912199247517113028957795486985132523233101153163130366574419155602152865231105298735096626181885049045835063988149739426757527851956751792583306485290264591628650530542786948876621719719635686351722528884422972488082893802094157120321765181745226862943018921214182458827920232028876734751914374629748782563350348205053286154158381380081471256826450960767055843302623038551984398031877083784848886269029421781844834516997782175769663926281874208769751994988842659563920759911646746342424040688150567715721784625205458872327257032624528266610822724520048376591455536787871658319889649141668650417444545817478121642896349141879010655483786738215670888954376043432818933930254236643500621792806054244010138301237512425661472222453414734769443507298789465690667615007316021782974567159874526719678672986934274175906440631907568140510278079820000060548753953637988156888931948117491877331347677097862134313571103903738470649269155648586524534247214923982302762644406783153633215419243496700246005279752769455162169207292625932599452590077481343663877491513249332391678121081329811385432226996257454516557257576770334137699491160188879679531818634748788113394295666755562934180165397635974279530559644492722384269083500038493542639577636397316172509919143600106697790571288633986856877567835936070279294557390121132733234242084614008940358318310362177623943323342247982975810838590266452024996188095757717229898040053206894583542529544017042355815345841541911656977741391437521709403265669447407624744494707654026946245107864900336571396387687663733756251437961918348816046496644220193243835561724027292564234844977144717867566080893181376529623093473998837100900712697509097406633531710159607099700825344013733582354468849167614283704266496422189601323734105462670417875544812282967829468165737555665229648839215356097305895554624303633783011110744626059540405592555339083445546135428608769377228294715758891508531818004881719312191706198630876777699191247973779355189071359509318408979346705150284036643842963652459943940242549534633775348582540436872003861312832606309870777638668437458809764950450357645862382878971810794689455370091919318403251897550456236035003011789724265955930172620355583293072915771593548349443901402957278612346986678126846865397260057362493706064361970796342147009403576853567820532906724624787086946946861018953414354329212987366201585220552864779016576577161251710557266741047046550578764357636364092800431063089969797879141020480685438235257047437066114062234843821367564843807634558168306122544498516042975204570460451752522413254933536636616961292691344101420180778589608450266736436662903171128080580977551883076060974567733212104739052159944553948916204975255835620431987459946918220700583748673411739593581137652247272790980182344265340478923943758583954929616592542675139415910581945682683342374400646338987089189313487721472647878948466649337348257946077188057589737436591441640882695323648745219636012924662329373807637413151135052313990188932184664969403750879715416650845811423040914993113591261226564928661065369127769046515695659763958997531001102781786026500606295139779100100850234413007647899521909213975084550408897591474812098517494265698197584678952400746057970347544866337305067566182749821574391105611788890333810837626996613090358584288838921063900888457663450779121528410972741883107600032559446636353286984125699465527817139126775086571380611309134487922306580842177788506735860880599751955762590729200327973558202957990202652494224810005282952968125838624497217590164031937546593168830287871134007113034587217945351463886852358101152403706357227721931954108555738665207173250370146296571357764519109301942187102100386048532433126556795409968039646975944629310902499720383219430982892003824467204353182512438943498329758752622634959195715462888536525318442724753660469699229887069078692806266303560108811216584494580525268261008181470608383046762144868998603798536519201649603294092746009906300558540271022658849674023619901504235637640937016388851499552810499320510465320466301728448800969320078776857110502013112845930553573878696584582330635737089504433877476247079182767753701409299596197490517807899099403555661318693841980995038180820372167088953546362901484451720736232284203645510654623232351942064335535899825922571323699215640771954007447478774004776453012758568210972311883309912939443499791858081510687842217194859785866725396004338849757607604078200734308568387050844738702579943059410796989407381760692163271035409999980936749457332796002406601596927389680383519913326486240102986397528062135455887491912721657140251699451905610468393322321850193354095774358233567026870977063232029987723684758626175437806301932244591078056094671355207323265032005696135626547858885323667975229875125615552157485524555394842780791191730854245663746828059134096755248339979454643785974244644351864929577224272510374796574209204272490139819721083896022534764006469401179809729320831538266641334556762110537722056217642163743645794406129616565605278977764914359070848173966366512799306915770758790840597883816555662321407245729079931297329963188653904690327357930623320348885882713052154021350869358367356204066604858963594308739798697340743078689920751297264352764332350978845165484616312091470651330310399631182183529039843778346785014208109245412673753522602232032457783831998305367989209894320979153924852103192954289377950399197137783962663414401827653203730458350283248089871479515714647424028895581449423592097602907333617949991989190897476647450513412709118099745853292877901143028295724172143690279925616755443142190810284035348115268576700189131191687286733348113277906422755853020426886831446523369118651949523841203639781418336287499482720222049791722947276343850216311887373396668476582996744823726288089653900153333919010832785954773903125019318339477113124391656986307978529261149006801728238269972961561387040871071453524309862909875773203888463938490920198064434987128903719338392907140928090169630020762372588420584942349765326283278612209468384686025202735663260833990985367220821594913480113789885656356937148679024267151280460801268862113894316208784720113558475469782461458586904736798514045635349562519260313870781206349691806791648208228299128986928102645000937399885134143004223371832918681677485799530797616763287856172025436071659783109151856355045859193226413297978085052449975151158545674379456864557985716943632725519567791989132142988055902258509434727974382505892793738937109220386310668866430754464681930776738975977152771144663682767161102276114000681085264690108529516185223670847731685872358408292981028019482675337746866898157379423108771400285648375204492614090722937423516265256435945182602082994405490493629920557195434166909730165365440024725237481598138362479402413179932345401321446627716660361625666551196860613015277399960642382080685519752588079590105118920832805834621813389597364997872975967245363451268271050399144918152639675611450287002511537103531004151775823459217734994843505189536910749959021182996249959886495144787196219971316184485434958384974873468313095347715216002844399480261326025624188588089126081735028521790331999068749220834902996254458813433395389372994845940892736664055955522067281175223584583244332714360988524099583618718995884040756641681769375251345618930412525461618232391974480884257545513831246890503739286395558073701067626443834891397817440045211592423946235136561257624645790161913501339790139895427810948413216906725018320156404698294330524344093583126905032597120815782462675914902030922283184811420464477115181729030734534836336911120491995425660882810717497491532712347729134967000983640445484340531113061809583970526481523454330376116954585779588868416977426157246505484840109307278058248993178716248745747631045271352605601491722100250684019897892405941926011811064380742708339242718587661118893118620709173630144611436035349825798011009186953443174489563775655587068520418021316222859628538857290991836144820524322390797479837618247981201041535903256055414933510299243562329525314981863690197669533936630381706394605696197028427023484711265244343717402004017850442666644893404528233898506434317925239062286913297067178740520506367205593456371632996359825436948898134241025312135549544222014199184167150828869837124184451919273784197751331231901083277972295061371446633946626559268506712720143675736607689970968912531280060178936933049765513662535756205885013826294262433727724317555917517234435248178578591381603247334839705017696291294546611876701158063880969668664443063108554281366747824373143977915693809588365889638216416423518630176493203077686796284974675123713161000113979158047260299715694930048390941646189307811868246997153161904969895387630039093206053697659098462710926721337781433997583377542531245877198805660513852807870170627034532293033558883134205471093096295908231450836930698525173111336412631733823488667306535904332079315147931056819212227212283300113213163257843599705722157960998394919588228612242215053342800735631673268004069185984051194642351793743597863096622770633090976594951415232200091163894905000132201428646471543305489231439401148144887467512852582571749122218907855613691210962834449666767775696394463122118550126739336930278893250927136914124215536321710975233965246230196516772181616652334235521945617814217856205816143056008482919489452291765224987912952876682978117724669017646018271765886513497594088241812798769839556610182079660276826096992598695275487522899274410528648747510974540041966491666472167120896527642127106288745970106469107724581862106613923266468672351314912989255930906929645335153362979148247328320436711318592362461040961493460015464473174993459894890468663624490171678379353862834268454876330200132373460091541237746847686320333285235840407169325910307786864033117493754390953036148695371612190714008403543831875519596279642076859541605772396738333392858264467074886392785010272981473598135656926180260094969737805045953305053505089081859824099842687439477823582021075293434758633250010171048227104497634617499584241282892209991362116877768460880012286272571517305925794219765965359934906286568230926926953638434706522525618783710558733208235056924306525098597102752506504163120299948073985873212716653809363277172653501973796638536022093183460719470936923079304756901969019672692594925844728710512504617508764978076714571262921031923729519829836174226622820719059719021878636263963187541937386544291152231149128533996361986425477815607524298778655203402261436482723669561985642830546075548717383115429299770051155891263524066608145165067697398808738634529130099696571898893481138992730944378424080726868716906069624028550562954923920352144233992228020721000531530971114032531754416424853836810385578311922583098511873481655266024588834930267145557816829900946269142333274592871364267142559489411120946137240284762993701425705274764690688351420867082480978748083798787790274361790464008881953009296125674809043590408798678074137469141006392123590749874924910568538465499298909587372508380541201992746811502429423464759124325168924386835986102700158528107384130621891008372088090662035739942737598513690557467347103061510298836556033928098536106659443456266833862863276002863477805391370058208814908700192490944553629083831493362393610548259059386362136750673280842909561419035079864585265721354944610137693827804230136467356698481627257697300071623067813747240477034718716644764295437235862729808181131833652111305079911720153348761638210270834480013509113047414947619474855338359894680777788031732786566573839154684963945443204037384991487739673843213277327087132494662864156156095332924372318329689623623437091959017828428247825656737956363510595935693604003277482787498943417219639792669398189222264745178280921461049234894012697427593674172450956093082707566996598904465276493218315924550300008570622916480964375860010031285934612466810463223805035076058218927289653034720137731557692081812138063219473760129596561015514146922585698728355340938074705616226989099861496631726115519652441011107319547879456410289575190340153997705623283597475059087489996658874549732458825075682596825605683616211552705442961942419961274070948182626845834792062174960886123824519633882759725702597605746611485938167963097315407225387596994224332797404183831533036650064288454838388327862349684926354521059396693427846931545096461300374979643958867030959065841317386011420628076401573830511031811768565698997339772618056571979073870843592273357085033371033151391514253084390649991928931497035398156925874921943974767597755894802271639685714299727688237584784466219815229249371939834233317589341115055709423235857460709454730453607172967681566120466598774353081790149115178827140683863474501939405947654416060901169132783558893919180837441620415813446357891449416929046670598677397048492728748053022595644063791526180124896490246882906332629465921756509671519701564775787144162212461368687433771785704824303034205540881187732343150921607805041101913001770307905001700422277911414074731145026668657500952278156953689172067344275122487759384382002080759772684688392231286486720020304760715184583449864767696128920745931778999240084450152814903378538513953374312369126634840204550399327392603017907154082097550358823842113098455814333062816953962226775591607309031920326420583943752708288537641583429534874031093337854377368587695113078990450108745659407740567413273447183083032321856576030972785791885517868801031351433474621103734674434813546697707834711235531826288241258370669240222914662291556762148061868098427766602396107855349498965788047230687197912393301425065495842715188243835119478478394454840952100374930711633936186132754102529168177291040280413123494903421880454089137714336378975436063292122901500356909226263523715039634559985570889019117706118915252251804031913668575010472309357194174684234523168796965666030365730656529736561880560263935880539100885784730385022743564883471194342560829510879596648549544241175383399311459813725077768692146481809125321348707980702483473974935075969843595152447610313760624886381420067854890261928232453346789601682498012971334285937404472077762487344521757089811073468565969188595635662060486421589187077416027602223969923415846626042575774225624863549398408668475628115689186589510141285347012958051805365042748827514039691351355641843916360624633999942909030434394042730932755777142826349176988287273102572812793402954712741958032058458366991153995719232147423351314952326578144763504728217814974236982768495801082274287152936657202789776008063654657806350473975577686994935233713910075016843506741294395895581159199274948318213930463055434784865596080134468311069804830918876969291834771089845243876838205046788849340635111737078542410630678528201541295943412048938769675903837368417618767139518962721592945274671427472458049314880783827225665248687371889316425047973559339494896820970883507276033660574623689164036013365725266197445344993467235501257853444786230380764147395685388187419042274277352046442530113345965905799586888689642983927594897545058413590250894433147398472659632355803969565668761817358716431842721706124077583166578503648989206721606971253851242792417482903855810097197688892365080642498465215756815494889155173111834165049302007137482310512819971960955588718262839127435361651418773233059337825286040255565703478084389240669726321206362119207668355576191655307970375038089314080866051026664871311398915858981359870279876211698940359991769241313052459582870491355835022922370289764541004716720799603376354646755507001687628106137682376674867553670772608272609148536141699785594939886994310657590809446051924259312205938906929633488042970117345930828183107159262573234206536114319554101585093808010140200081756418797586047077909269611504838062658604307150279550152024918070568648979965442125807951462256737225733918126219127402855856453759212496704269367586316261461443834382298885165035698812328099072766666785475925805972006625066397412637826379049143552984472145568543794182235682193702724706949111781243220339548012011649437775442089461398597526096217385466253054711054090829995490180292246284240334032293884313008270421961666838660576376999614635921692625507830041926876059322629697337502647176292388856944205299490942302365062497255346854519925435333892517777639594347701355267355289174462939301957004447037420441568937414008189929206481277693614593021053440645989140554365427801083482171108214439277507138357064524817424423970745722609676468430334505381439319339789227682534023920964504279713878425499973085012113653229383818576580107144701196093941627860913614395141646333864213729860622268267215135731348245378969790828802863898523441394964476167323488250206533368556742809454912617233196102478575038099352130525828085748158278222321489307520908553760946417661989021854339333625674268043969835748164184978197390948642682902605954079363088971026115708245908185849505708397771614281012920507264925471939498925073341391731964553178740428325864425041599289330861501803760420881915966599675701701964084150746523876925071272790532833028595101523937676326067003671764904921419046525613280255743868313641250118584960696346370781185936951128288102261856177710232760123894242615505023835875373040290438542997116713808956290678695774888303414137173717101368918260111878784308692154137665645261577975395053381716577032028833092513881368790713604998420531904567069867119530745197018644212407823594820038538286612748871662765697064252460232650962676222418618998893445910658879890684904146752953907420168580557685426114586634778182482807486282001146184501115663781225923094121109395067222400348369260555235033503529490443936691895227402319887092176428722085225064006167779137223930713057401787812056683532905724357740691671882744797773309973403355673528808683275247763768549627114772181616112059736843064779628317444747981670959259523986276235198673448382290770376229773949670325514482692539763420626851477550641930382474202462709901605004493753908299275556584959084026609292047373389570636765481945117997935422127004987082330732051411642698965231127068374961590197504564130183141729849265137287802212459351858058647620157541340699051782761755438942610769303300353055804342277563391139232427850757640327187325709836710924692828633800632163035646566087429827302926498586525163722090387119541147404621952813590524487453033979879244033175284090156798328404016715290253889411056784472408364284991613943771748548877937223471280807465274611683453614282728521402940385733960176107499678050227485915964637655534219965689973870750069972074240414238227681060386564520895466195727437179676564390272566606236690545710407610625859427461168875884911842666123047131657328801020450297284791421193657993739404965265439945193294557340313820167807443101385394620110368306318980853229388637816706224993504696509663332604125323059157370122779206087601903904428590568463252594710317756797670478607657813453879931216592572583966847108306005246083484071784234112109532268500510649437800312312526966997568744483227020423339541025175732585748977787159753188114366629190606319583277583527912500169465975663357005665106881335561826891966566982716197791198610253825586309157750212650588556347082416318575965559499159650782356367678168090071809568235475100351411948091364139121303846734244581244054240557622055883648260044595966046143730525004983027365232202477018850608693043511270914207742343019116208710674686674620899409973047976561305941488515962466811057233344641833386374709284153288212548286249428833449690689632901713379435099021433758962370514959747316727444447879038416891353300950561365940394260562793888711704969519171675400224169001659066411306169962249559137844728894505482851960684829029983953728684591102512366147413123392564962983926113740952491486082245457311719980594075436924319615908564232460011844127311318758932987741985597738756467187718473438733768187553453867834679320469964151638391893527916018146795126527525123553899038570957286074314609131923962164665036226101252696680083522966129250699010079522413172172639180978891110454649927937613152625406205643948932345349414115296860411247524107895845162391223725191394135971686830157092313161380255149594789797265852172858628680640018266280694046089343180359861365489345814157358422042809437670236712983680697017199389307994602439862922366033199400171917181808894922462841355629265992523734522218235764017085493084757928660320293472461949773845184217279529524779670366856286292555369044643097731261404933639867456386551938966505736335943879790115191503382672601889520065760793391496791532344001342151951652114195458959586007698310965690403591613586320334044927713814030185640940414153782766284338985994469313139579168868163553493140067164375903687464964340635302457350316889188886118197022076621156603032793338110029509669747036627253693597782924236840010323993289768367745886169168541261858505604032081574535041322843675327760271528270302986654948962863500979582791731562982516787819233587912298427196769690325931561258859378438861339512036794537721166580291483783475509613286760170867578456606955355755560028968336736349620500812581353832665295915149843353605021194681094346403052202082096372228895398098463967552821844205801250382917475843459223146425096697539460318285601671721740980522043666461181069891271069146681141840677759352639332592876034311866122279230702575691594451374723479351521937166717185287084540284476461396690624365490612163072744353042835292519431488709588398293597618423093210056944047674332600524809142181712721448388203670792276439650229264480579028783005278911378879910516394159325472531037531114123544568606921250697420405343371011520396786892573442864106975280670378110260309162158348322200295919235954500554922848758832937030932864115094188338507451473849178497908363625670598114224766904615968828531976950899808847392202551151205835087119864799896495940263708910496025617009697637017068256626459642472109076089996229616114002710279390808329948059733771242823245865291915263414834878221553637272810120710347930581628578348743098937270634115810351929895550670550887563731633624544450625074023441299271313348995710561404495803326067625421489948919168654792031919885204058382505241030118769286146806499042839805815475961930234508504484740636776268101012656255870437084615150190445346115122947035063749588541483985477318483435481078105752518596335586365059489399084166688487413852171655229086118976961321036191504305587577156772333559221992775659633297541887009133220975744858613925394584857862472086020400741183024260041823647642388224249323049558144108888543502866030718084809280181349705346285937729499536800934953740455405752743832815238498611197117963085026153685770805650584899900105898559631671502261955484935767094522715442813665015014811569239968584314740830960304313379450992114691721439887206433050021013052509232982003970885145440844026775855369524762211297870684368791358736784049539204931723519697427282468957617764609122084997989296842187067527404196239172260594386324119856156476005689611001018502760591423979506254162363017066428971095232089356889548532905388395578435649517922670882504212918632666303238317090119092688031937881132760405333575123516784705059163157620962682319292595899953319182642950807030037109662654603574263031632210468530119215586324705720454034318894348705869754945710316969912878146349225141516158990747392238668943335069664262799361540308361560602445376218141522159064593424962261746696755325942315323204857165525961390417251630949288351966081301241150070019794407000961044631619053544923312877245515696493823618488469665580043897791816813776034906247979632959924106016136822755721766503125036269950295200404515035540910974240758977170133707203126059918092689372853866683267721984589338260143618337606167972309689066728874682337184694707222428798989095371997274614642244068127036709611263642898308251832445484012737014304520940090724287465277250296664626686110441190673604935393688903320323861466276795228235037493908615503473073979610771148238057042691882759480878191569368251117118873739923489587469017608606769612207190626294536805084633962398927559915657987972602875413257908690260243031151526585025949310099173283053351016141923254329090768673177780456300054504103024076070077245454566823370166708900381808522809318712153311977764237480022035910212725050996364830849487063667733540636159018408054485672654179196247064151187023390090831606284349209048828222933790660093866938471803081618733041600848697887726475181332658999078455982914038229103481484569868989228942633412100953150449952823136517720734417363213623806554510838107560663299308216999162854187750530811782072073414248120259135956412240863934485334899315281930650103751289496432306327225290262309429752282399539799647133759978473076803407721268993294885018328482990397165735995430617213857671063223009312048983401190602838965943384949588429017418110528440490190886939610962367314306099473173073751068464526523563437737620975602022321244760239221692426030922305642060019912553456098560023015703001571673878471124864305560961467393387713341785348572332405701774722403282937033977167180997243505605511614788081938010578425076809502819141123927390066338086928359915073105727152444154615771472490829217633924395504138306091598683798162589966625507648408771663784378376906797987377359383549699131380794804299356939621947811891878526682818705602422997393894215272668082563734797769112014763824291826610133397082195000178527718747903996637219855396433139880545011747384657453513873695535629850776260046231911662819062809349443903047542171574266402660992117083245983904710964839377056313261473849395105658614969058027660852297714200146663719943015359178372598611747105174000849559044427752289719099480461710264092150083195249988605458509724898491992082063760303286126995340645590005607765255742263213522060823847368888125533966026906331684064347988962832536213782557824990570443783731000985267748001930971146259988431322995319056117322588825597366409347471651224175198906438954838543276953737321803867652560184120421971262020010529882546762268104754410119693752928098788491996876154127383364127209773967892256326637541148096368507976587759552880946142984727505157704361898139411046772648981989670576987872460664604247866726375210524884387686828059041877613105308131687879333138950728559839600299198169362302377393076075726775447535597489698596451916325425159119612496320360442014712874799150097575992530835933118959804977066516754796120016857367668501389259091657791801786458101612886120916958577712681186036175483820048490520348879309462125826457596928042151266844857926293920040702862996855574661873937683191530105640098586450330479695897986372526681807918215393551082054924159050847831092666651791045852694487146512481178334537049145499308307236353076500454277972014488220633203393992083400187160926012850640604178562993481158107093655275178883674655161953343853185944819557068567145595972005784006848127051156202665718696370696391117762261047983668240715588024030121473487659824465877201309356593663639183250280017225521484628170494365175972331313459938461614883027769163505229910502373481492430097440890013472596309147614504988639809924321666814010452134091124813531735996984295089435496342301064831051419192511683246942274052999557528676712113717339355803475795081046587847078873723388878962732924506910511213313216625289552919349946721845295377724570893313340584200992063099548561557922740228110630815489881806817141386867152278495576678611838961152671525346100095667060340289115144832123926324405940039038773160234288063770706002788931243222128590817276247472000742873384703438159360179042823887746759350533331803290837565030224549878132834970237685494843780548395704764312240038594217586372636058319868642191204904820064440650310530188714692097295355414689782038885020780186340822789171921597057467165486534527603938011738607293113089849671726450016861804654770836834056322035133736934162015713560263751255063666171022368599345928305988574046886123182155981041312495823825765206143263792283796986142892625216017685671871789431669410691932915734866748964975661150032088551548718606687438355759134372332557235991769938386066789629027901822088362361584241540598348766493318916005372170847813114735866130523167205488934877542137901642330549862491190485461210067359230913383428295591022347111044772969692225609693075737966540792282214773163738226050015083823789834584259399611099064545727507154177194680704939456491591262857495225807226278343935682733363531810425876740586505973532020765543204233553909123477693430227441967023460318581469887953416425961512750040694292587826661110037610349150532983127566016012091017512802019977124543374701457992142396338733209403623093373656642943062217957949257650781450603130924945497927335236792414107475495196434995943592533935716846787609226914981338157307676952066694267031340339820372450581689355995997145225132851771172286253199970955704232276731248962285057439804069419782310418082772647127562151538663084446671915260309827085286498154008503478987699708335936357854221259110954936151237536790213204935662450275175084655503939729453191747766910046637831781483986244688986028594198654637198449857115106739234994997941436692168900053723889582606047213125725597486377002133887805045693119985959898111430842883900566742553613203753364071535096736660341875920177376279641810781053832119619895385886374087939686551281552957659495387796994681896078379097325333071216776380796365096072343155138390424952656181111557515679911063434824914163760419062224567649686734757850842066154926756509063209428827014239517082091782653594554144353892067337015782279738473163286101431375223059126105313346616800702580365080192663162359653303445033919271762179129508350001228236169854101557354954928303972191148611367780797052006921302877522613297141950470011165537938300320351533035914601013400702863818293818253515797996609390920742015490998191017262558806512072931814526987093610814544374789702747519698127250744335345540118451887462672499094744572248490140356167532122107117967009285925865996759778789756161485330633051761961794482889868855788008825371635165374517415939176564649910008508005405477934052951920509614581441880108774333504148070974454928753738178712828859031721810236605065334959676149239505735980395929898896201271303262226465624659223894716799884713020006567816702112349370453021846824557681200276498417354381492558511218930289046675033306647102177649262930174953302134076121251646385324538478662544311306084536600439180850655258111751542839486915479325181321467744173593900756295520135046231736388085109688831146864898134521042712836156696581928806452230123157125766871727723076694624286601066597548241092616210974562107221260317405464629007808970157617796325615481301254607337774510284568743021116179484889664881841950455187452660729741192686350586246203891988259418646598565754135034169227600724167847882760333236379501098519238795271913764026681310640048204998812438370444076262144329665336065742968266836575826861971569886754647008757192049126454066463490966028925748422080921977965688563517243786117003140555442430732268673031222753166223672791905332336382420664779537285125141146067329778078161664749695739081373170814044892493220905560166690013574199626083164811831545567656950934834054147326278847862851205120810410449926549081246259034865295832692589742886832526323060579096817226330319992753973314512985296367531151386342903197700009606951436008515411920962418945093059323062458926840203630844342657915891711175470866478224184206869524806073012570008274581295974318803970067353588337530749931298493052457102805190736376862620040359577289646284143229419076513296426194250508511083714770171719861815990185187865492520805196595216384902652922055481761376288440810842222712550890345606444418881395433598209504641923396807786981879327336347628865230810799629446581279506492308193522993817303130482805534669089354965556129695382061024365765925284753148787232237462657479296506873697591438474840199415940365014359447512141315665372584648555896783394729855086492259342948115578738379868371232976280447509787883353963477726948564031913629610933821591401006304539055592690852237602814021283387017248637669586319119871192898084397845771833236464278929572067634536593753492959881908666298771529705297301500060120874422270322363075773772675968691887233998603018534696633389676502634078326854623577148609418201419630895882082379604028161256223138229260555930049049870100255932891042793157793745234639515904436082832701948601244280417588593698479282315602876906352853979765774420788676760565775516114237862259150761323141310015276755729354825894993566847064915241886292077431830588582543923236097873139668215097921242691375348537537378462245138911370055300297176213021744299356282150306683212998160400012101916162214626774958107429533553673848615489580186434233150100556316801991895781854741578658948536492342999474861277731044140283319629437150221647427356965598838220487204002627535609647468824252943285524829509050916601843350118420864694522730174978024821181040083465104380746445825777967978863709397495501189276276420412312550269641123660624726569538844818285517788349363689199373116673625673343397593630193510905976867777460182959143052829325891735692704042308113001087123035780397345922723552744899132355296217868274317595189154429644193895111051902955871165962791271359148601502402164152664906384568604932305893085198328595860814320677040362977185805775523479920737998870399676641523502279862483504686783368126343820498650391332412417370253112873748627770209360288466396490232106823022417852329791216542584845223912402528393365905394853634085549653078610167158610131919345834856574534422975667512306351152792076441840762428292787635676506302253859554395417941072787464144436078730790635278412443758291123480583388345009328764993345116125184153825499352554451732387918541948855288860712988234849796420047915706746041359210876483909215141007142832580786876766948183490719098932138459742512294698122148638327811186698784855974250913870050665507380669949539766780562790851780422948202201447708439311888717047919297792028968087866026004950176948447874971161784712555665056457084334337099761670720903554087982935485064650100832544430642380843162507216644775656068055493692715270700483116449733599679306739344264843830087030359397205373063624840147617536108492286967953262005682937463243140721082078763629529463733587845458350065340536567109924942155374487470610197112535158600053736381824406152173376264131860106204334917572870090176071992195525950599858379990739471086222308319730821489233653997900039417901484706009339743249993478714143157355669944957382613192931968955150888306334720239134240591674783426414340516020046138722374263883819199407081090599910991373158164598584208712060496766884627343381023853982781579187303374392906463049430035181105177000646761070131314457633476850630503120862251537891106510646137901016704147698728187397611759271858751020320176265578871259827661576688346446654972278892467667810788993498193450437551837511533339619850649387491333042436281219818709340808141767477094698833712476837216687109990179465136120833853231958698811132086757227605444038417134285890664570302887407126099962327267938103037986988218200614354169837649227878121834938870329071805575511392034198896993973500699243445592626114021269604880718257927966795380525103099753895374630112399765252751463268959067656911801001028985831300283463351233913348637230561009516058842580218237713787569739308313505093966266913948445951598469687142475894918376575860054865750661835943173559672290212947628981302759733385928606597159397009718955729787222939021068210394384133165203786718996306148856768618543857076559646824830350010261697965445335898144286646183710519769071141793626254739945679437110019253618335245020312630568098979225237718741568405534070754589074621691038863178525748821082642549701641039839888810098776617159187295016328998687170400223120890682068446066357893331421738285571583626493593898397413235546423054436012065182839998039757973608642262659687018124347500885289787685247893127372924221837341224300196657143299207983173146513109793303018298038484126432086866016874782563071202943415501356172937429048680582238508048981741263721173754218716321773321129690036989153516960394699044081041707553039276736359830559264473827771060603644176386554445485067721977640826476540106669654864545265858523907646804647112242713835890177267941951491709938631480252665685493823003197986305885955974151666328628383314984187770358359134203699800025707423565468578813528354820043208873750152629833478885201004225345376557611140032184769529142427704933179806475503561128502103499079633961866123351827449905866415920579246145287767593515332914333969972971677926788166759548330995458779213813154576665219882671680913340433547685335357073006324080823120146701550356893891066624261946252071192193963126225296427466627364384939313175663378405693939072617800373756025070715172587430886272132436909771283732633136526233755670797361612441587370796800854859565707957927831643572149978545766425450578140866911143182966434709906766694006704126652564100712083914036715384563394414249457581826393885950601141017667330813730578630236771954151781845323248776620766339642495931614964748772805915746799542377555089426016199290607112947590575668586625146827691550524878993461288965914617160582707558497115332702096154340259443905778779477340905955931797531323714367580322354823164466473848029878636072917994994386675873243419539577478970969700877602410301356595620452197384205344769813218739628379712820758143989133560560886119440165548332469705302747120208618645267288185439747507672596468213281262758451015847066684006444222834398828037783462884332319846061057809346729918424841270039737682817121402710398815310857988715282382191400299557262552894591886822538994951930902418581236527659810600395579392718849526336742314508739712047218905576866038680562268015744299706989151453440486289714225022846998563188147679892816823374861360379004412516947140798960881769139379821220754720864838963607804972150451738105431130368153987143216858021050362451335878641734931583355428476214756727935461247671388830307269706351251235231405441488142028116938134874572936153689028731231768995176769381296770546951333046847059339347282278487010153306907520476329217588661774217822247754450517756051991431315904784199286083415037803993218695638317171941750534644201751459214942598406826221753365216321226555515992622616211830886578137914152410793355357335870892571857448844318617517347955489284700701827937895971348410650013192480415299422170832688388187327417042667410050765045653466796839011298121956704674722020382893595334128255254727794444404837334126375655640613141167868765319857732242439101577477809559893748627453894544186267115878588202890182054452259656632484198399878987006058234177481341744856186815526012586925639182813157528815740447235878816405321148388200420540300958553240433620482185336561640464295504603147082538830815711167474615819216037297215812160580974200769854282845100227956703370018463758959245281712711368084720997254211843214336700491472539393158327067032668360889233809209557959981943558091611704504023949659919900382630061195559531219252631557036173413214714112664027409446409679596600548139669366546150244971496212614414312732670748961466812864865837328272320401126252707915800367388001070290348801865346415606528479059432629597195855655359879217996538886070593438794496863703952433940667572888598984988018212120361077112152613776290238562713584968115798648156292048381019976940176733028353964389253558847024484504912015809008700276501487458518076047967361793073776745190248146557425342788253444771511958775087198512403220562602205653650615573852657351766427890870907820310919577490317105936401613081757124684203898159634600491902060355823720267407204314583841287256456682852034884937239174782600372327076583774831304891943869589326684581809450270251405883021557204848642915397568549927388289120105903743398183219706191421353621011506038184972409680814797301540321512532313447775172504449350051913937129708899672084926435981391858012349028860254598989351724656329779766122227839461924218942599145251628329335219611052707450825383176360318987616617634853587915405577782794805855035825585250858119263833349293157048568446535608310769425466326184231064962334368192071811831579516253094920650168403014555804925506139728219225890781629758815116608535466111884741805847313778285787370900977814109455414843238972231501593769923089585674722295893715660114495826316827810009710558412302046552522695843037722672142796605570555160730382935893514568722887217467039070469020265998714100656786055003019783824122416520713757197312753470634823124772011913661329860671583247356461565261242889857540941166054663571880311954284642571581998547535345630600934142193669036787891014213408454068909794255560211818851182283100630033710057510070083163279024992537339650421392636195720498751098422295289604908172811729985863127043756479774362394222451507702476673348036135800276479542350936993261176246419842753599442271777051091001303343904812045349046597153679156957995765700930720447413711497106047528526146490718866497106067637366352247375455887652291060114992852958206927865607997610613322207792028409180851056573111710755576205210050019472163605658535042482736126802630159163131602085605745716273561409930146114438504165013271376712238488763793131603691706604574066019241247371044023881631599778710111505131261670386360816838724895214762343892674319372998978411665676270592839140405632255259395836875744068563345549352744870474730060696144345998722940703178709476527835440307335299711862670310593203472733363130076153517243347032061547611068275632218403984434595238144787670513487369343573913454679387038278747586792951315892230352750736610570709978678058399947124449423318922408963341948749315168099499630519739040752752942231030015641624811365038443114372180064134278246727674398726423704341881121500925087954748789509164619175584057921542348642689358528400186390121898825224444124524315131008697339124206846817230467443942564231505730007599896841269381384073516546636393645951128790736396618401713977942867094647217422993484805573662327989181681079088537191273827211188060570296380556785377113613969311548958376237217887829704866603755663932079321440060922820572042249657562506009901714532423486992724055814476165791033552241403904586817822126147783945187016735615192256867437452719533450698924141781640062247645428246731165704463857342067894006562195161049215627684898507237847450676203881179888930947382778233431009116850166824086820311999515004638887339185022240339969764624366131780068875746731610419975890978498571290843900757018349385506723539785771528290861202774073609619554392163986669534043612247425369878448673539465788253346131077884997480921797271766706089748237633586705804901265789693232024192157803689435766548617725742665423697557112683392977342197752882539247949510635638375545857858755495293631856256857004323041444793872205821690440598149348693175497877319088599464359243603543418301356947564683733424568076235933711264345645206521722684457492558406671719520081573367175566361480971205623696845562762423557121698534945907062165983464757929202956447790298545877716697826983894383225723444957106939669566211684694896541149735721429059283169527223916817963962851643369307090884409586144800719783079952536685704453707902428864614808495231740159379842502265259176326063850842464695474222895570255644751657449071359818247658996850916696712995135317840343960533999951056891886342121727527685217954544256354384472787731051890807654293702755446470536390540893262850096744531259664285430528364075494356386709865196977481706544374566474483580602560231987651934699281764427046457605020374911955202338720690583819120197658319843060453118391366425285916139798944614111784488632050170819376368276963651799608781304059424153044069346677090696616465405448224371339783386893866301960401392328505255026864169676101239245483132106028090114349847806591619636048512174009528505017918612051332905210725446064880606712651555439627296113335103666776280277955277015126337720839883739790370873748099985779066835680019902127525729846836937970426786275350930368395384457672825077900411841890810519475480816495563502548265883126785408802489835573584735897827845868288957226914750090371197404977787445576873533894306603974545055731236134965222194660286348136696312492318883301882980775093175495322334204339014465083760158266459617194567655252733731900774919962781499796738233086687523491203782619439752151239323966917571354336248974887238190179718152711613633712402979087597633668156417129040212648244093326727553130215574397736391635525718192589707231156172687944466736067425193916776254342817913070412086859832258135004419570982500707263851287466642319961191907973748184301673865813414713530527937482088601822741881740209807961965015984140793294425725426211219013941453510151053661055871523591459258223934055172062428870519797801845175627604711650245399369817580653149118691212464870327516373114974451516809721368793716136834819754275716732119557938149508618712046669520727052695062986233431930275502264528401360509769875492491128481314320253404404556800400254648548112788065411226174027028437799644257202829348176632153481852753593691510751542511737391647439064637986024592459390280891113329768967975614737829241826462332876080287431462710393848796495968508609052508543960859916570874282936578434095827994452992973295258057470280063654790895395264069315886007211000037777780090674654717770757169116710814678044542173241936980987971448960109183998633522512443650084054672943949134982480539114623526447953319184930222034422973238830799805596125381039492382953374319602903895518752898037220095972519705178908922421267351832491661372506092687124496540416495811432212313883702439218128069764314235256507586942238636643351295099994598166314630181929695362752403684977740917984747602517772012986220215459510810288278314337273662527655625003116269276616541488724905496706705988042147864729736176158106069049502518535022653244827996177380050191196501724984318955481076490390580615284912221042276014131609566749499753224402900540110537370098718438535675318737623614213062652622122017468468049193194616255770950743018444248351855488340568008570344225460753432884048351843539524977962335469182479597068743235560420215425042801232808614482768898884605009418161530687377487358471728093247290835155414023980665117899481324856216704990459124225999507476326231329409568091533644286924760783153053124999345185545159425570913226538436202204488360471070523649321581916923350348302739805316275153962015971605901222310136982120969480087957240080995890875249412442535408530311526419088734127484530919083918710526518581088800179603401281078042044947928500389220480384583095125795776667113933590276851808114559059679759330133222625381680523133060468639155232410673247140279087833403194507255284357666172573370717347892945118940196448226990288332496492507238640490843800847587193686167848007834664347108634823504574965844812647271995056493488113678001006633050913100269714209971808144372794864794794105529833948268184488327245989297370865683542176138136834929825761428560855531908598576347539418410937476050765794609248023097313865612092247205183994536514575311971597521841956640943940404420458063571654836724094447894762582754741169051390492596370618294118850132616897823959680214088938431396187700276084595184162810441487891019724374942320513583912135263299145903507422451003440664404089430626633460585950583678159201142184176922204174416458910391258142339630756467366717641795182464971847293689216074336070110244635983986238085275068781153169013933080115511407604159677158365747407990307433286673495334559782315348028210495514604606252382436168983628955912326216197785727214685925833749478571980315150288094977468312126852298958897769986813627238658564146829192165821874817144788414612290840590992162727521484048403059618637433914475303934145577408323347563426542735216644910735298956363983855258878934391361938793280995157379649746588323514185579916584807221300139137759809843614640482671777710051403272313156010210607260535337996501594531472474937042490857481320592231881698420642264222132185355005329915169810442195184624945728215754203413804057774259901104175534176026478118862296033560270724488884259998570608183095633046226329115678330330625879207616634609390799924541078232225079014891966321790549443061921958111495797975245870045163191626744989471147122570119900465340088593995133131547955879797666367413592756456825022823137651936012784651221285793252777708019542462874316430496888946137844250643407602884497639458837057067537989162137337247460004686019156378660267199746328472231284195163376166828138722867787515333827544952086682004952417818445399921417395252963532938423905159400075833015518154156672492365228260516066191974005068204242498255645146036344360594267342763487738539045221011099842720943638483971024971295618681528769535496055723368161958113377929674720555273053931079356483790292535065200976137152270309365505358085950334003110235368193934209138811246780020898818786267375121116142053820123921516995200062265485022799585870763820901268920457089822200507097695894514480669341453855534131539001557939935953815502538497664283758368862003410276879251017677388583305360338953664029059900483142016621395728123237879845453051626302519172642746624663001319099441813445216750864660680643363752066939554368233175346844673835666792168975775657975262113685723098814310760472950500191399204005790518621580438034952722116391211727696653085947911203583113983857188935781512266865721399697814868684001368051455186013095651076346002545689101842186809532341973820644128224992146283204063042813532517460724850570741428190035168418316150091966472945898131678093886596741047838448538081842830055205806247445033904141736645246196468576757890559802607699628239234235485170060514916481039291956288220311689010804718113778343072133153106045399991390174928823590228280624502100683607777426355130472800795022553393654762918888976437467155759905183704468883678851284594155291585517371737790934983311113936345621599234087366479150116673647821156473429102986475158391819942494423659317417122457631958789579877595190923165693846016874126360379589187980390116539336311249567655610990004270988324952980009378793814512208042266745135598491684398504087788511486312886235143894586734741418217995494281742845354664042417392389239308533356893354465275503565903059919170897669957342981088935697389365734577883248226931912716508887189047734794093984222973941458874685400664839072346643630512924603464850815817026676623209855577474988953302583917114925994315828917228274586156457752152969607511110626926491894743090204318577294559319163584905673016191406581678468052737373895269744820341734569916819099828820009436942149670362562572826231666725255228412866656958776819204182331319581053319558428397685611895211953826066568172130794290507739375817129145028966626241455593456388305294902268404484479399539461290124618647457059875588266513711882289587303286320860607868575325518866813406655882087756711519730016482309396523882082774193135914280401121878063243428146425639416802765523713431186076907129672749224335035722174459103578228223375191870885160879863049384552702530367470182921308576802639992844873558204614361829408194175406872644844960804786937383735397222069559457549063147710207323188690239196139310217872884628366953462290112373140530795168816912584325738057982050696055609845636379645665242905353189904178537199072812473326866065866991460345323930598385683758254885708138830112393364530159202153873357170378363745449493240845212087993282494949815713119422613755500586758703536352808860015519616515402219964907121371429029245659580900963201729534957919676455120905209846753169175754689189761696570234750460192477516893432071872759859138255562231933979708916341268864272964742003628927186141935466899723313193082282272548425823555171881692455707542658603293519404555809977712067839970040363479372158404197695054080771491151230094164474471587158851502483634851133333930106649051916479908745836495255759731237525170094234742260615133935086879995570515818016627685269939151630347648063856141980135639651680009550175350118084446932321722970852882575399351640928527936480327943753542627118521034619858482382031034054361540853775583089096050356017063378453808764077342865124299337540337668561969144064190805511208761791564164372071616239089441243983946000279138735626920738939401501851858179444284279027494971533745666649889871777005167745407278094712076573050817017636147900288179503279475483638028862565613099354050550066118242098423313420730656906216702174614278059930422430242078401259220919009822046246534679048474348316973469807724167081313390585676853094854771247372937351747557085708555635063538079659594921734089102877668265105580868042836442687321570441351865096821508574070236569953043161190266024924136609357548128767926347765480163481314084175033065544583340921563953880949436960121013588265349703600000496797900239451280604581422505252340295422530282231974825083039708377620049271405603682670478435934578831304857916893147879448252405677246715957818105831933425102513211405937187778711862571165593332502178497950707654126749247485726440596896650460996913612024656637132549545637786259136613196800492729394654602339902207667406976794068321040579856150088216203349022296620015922508532222484982691417462423722061319418498212489227570423699251954278652314570785968905439033111429387820248620971755221077527811984480400128235087966264286865127803992990362958691798909972155603339690764102777928292834742233269169016709293612205588825913864306094264654233846221102179088997327659346032074602321570021497887947081351892772353289649399388922408117388407842007803477364814161987109964875881343847657285215314394711154786662730688203101556265671812411655066316860976757267319426780430338224563142872177348330047938338120529149885807088793897797500672682751187004278359315883743864299590689210194842026316185975604047016531071948094414630102510973823239228343098289008064339276478671383541190812937979124644222424986275595372692648911014203126514662763737372611067881526297659643954803707738788746442531712542645570713617343723832042236110157279121252630897846430113172467949594505066310806310344595687644189823645195325621196934046431456419310619967610748848504473367991947877508283793362516342539137310632295647595694384063203395345860082146188028622114681211742361436988487766567544736921316685507929244164776646565300474582084952369095444010829634456078809921066855829882546893781004091981207778993394693254433699755022021496809100412047951853636654448873351291026954931835344421292956000944665463537725965655703742924704952249337061039927110062668299917603741778768831353771756491996966214618123967887139168862737364941435420161532489764704767084082618038884546782565654919588341190776131841353412130581897357872582205154305962982445744726652489730604441315024033018124055685295245943988775896389211568033813232420105462315534880315563920966793608661474122620345710723146954127757580679156109907298781527624062589209594751108791504470025514432900868897501336275214492567603264732844138904122189370438238413637350019089591976921093034542795585094900513195119044508253506758827245853743498569629551841667424475938066787166353452247384064323990544236913194032584557750984468763752857822153155693936262179243672962477935545523424370956593530075812974538849254027386899052667461001196157045280816735633747792349215589376070842088272934991504902530097057738716987180488040900800863750657246611507665489456890024741277427415992759612619867706442822615838402776938564999849029776734844141730043708051139372990444868020818478991202688377064477032742740455948464647334818671787741057948455095889159758711273318168150811856719111905724425839357165003112517364138702350403234165774375266986204341214631094023523235234644664828007403684291066973294344977337538402992911676774645969168565085516299022730457522256485055411981963369136210199900883299705474972601774053034318943248200413843698771777137619477378313878608387480316315495561521294000908959856355716461438075866545158085603092569722831713664308272947880770053900294109679670621207709943503786941528168256224056661578058394355227268537703599524469932452126405038239165606689106097034066323510964664333466405196872893957798150065657943197387280517321691278521663662654012404770532997558718329676121239185809872567385878271781475353685642146946312809479834501296286433154298434667323456248073531091376993093102160677297634129918628064477097851229557439687738307925183439587274219076711181058985646778748728569859403626170833142471775205568917148416182577899810480695248646962054928262192296295783652485626214839505663771456226331236074694902585047336328047449332330260398185865860483106216819452327021913075893539389834616852389002239867614874040935905716090352384232859328638847931246838784405314698305424944450766982134541063260411490542534386767473668881424710352293778882243143710111942640460759509934230347875263796649993828657533906026944986957311914716922378274039514039455103569892050268728211908129283841130569946208209120866690031673800987714263628035839599107266596169558997329189080840986854949939846248925174363826969586951461927913422292077676159566417228339459056120570579298341984699775814752773314317482618092527206908179539579773395512776332724337967173068257229994924479010962886775982776617719205889640288508657592627089086389626384959399652874906576571076337577113706161401878845155344066141463633392144910314219707281769379890693545665023251110093608003393522667284205751005764056283462333976272352081423149820654831078684047770066574988865914648792410323204577891946129609351319721895879759669543623443836818203467963126347373321144403874211492422320663552711812890723323064955292506969999391918105286890834322733713811437956293703517637736300590669129080531974302980246358761368398557336277061488397094598442317260386419732614919986589420388738971246903760508924762412474846992926318576627209844816598785890325524308964055882230643437915140004893031938309441203827274584721237047315482124181594722949173334848517350087451857234074899198503530925931621438197527645101950791694792984551362755005140882070015124830414994549384716140069462676213491862805470374114614492884627393804753772644847095833460349822617397698427614756628498135581246447965533355175427226884081198868235885719338111605145012844129214629068988404611653264460257208088910402364898677164906678551586778411233075355366854597893096714318615163309334873819395291081212251284278188154840156208733853721553385754589831069173928260766462329147080681395571755234988605939813233176082266610376707026253704851594705249658153720120141615242802730318014835827078445127655450025891658898386003151675147653157588595355428837758933427846626273760403575924925777096551114215102570704867387889704441455035131324443760358920482401573057267586712202117905476477304764301160224164013446607388961068182418402542801609633950703381059385113615004587657128190645160033592931186332554076376102987277362591631366587579763595010663502053559123320210148105846820339511000803326267328641608557372088376996105462526395675283006466622229669031066327316424533832420188076825833470899225645521448466363413458528141553427145573554429877802616378894163361402764240449916745063624978632362288232748197119845626205039996723715120191654618227427389637455079572106395093957408384484351584200405760767323699909386731665686037759988722321371105720411774832932437462215093651333710996094726163531705798289453138002907214427364966211621455443190774697883635958304026647925009489781129100465639468955036131491039175796075206963710428381639800749184821093905204643313786280646977547261987629049238609888451687432874279527900580455477977705190997804051171731176553805102001399400691082065166184856719932743692752804729064742354749478949891043740456243520453516962277142351129907670006532873154865355453909416249575564627752779325142909542345258113636569316729393308493469548046932955209768168808250734466131775670004432269842619262520990040152171913129627323567130722730797597457624336223444753975196682405038672214724513957065675552407176666650379156537316411524743746818312018362680639157241529073800680383920857476813193819242850380297007934281015806019231484935529208343623823738230612201869704194641337321954847013310281767217676928499016677892889348682751516380905346502322930122109239953969431844124480057726664252672335762436022621384625995681663678416278477226714988220235498754191080655048404388215047830251562068475319152939248002384193073597844777241635758222850790200863065750269493348379272983875360902331910865480135839733323884187810303503155948544045020641914820715978277464315464237286433898722432544050721251150493358973038974404434801179494322271198685280075891795719169740560021997488106887057173796368522685506296834555669439613171639125108362533173654538036494702327615886816739323819074744327910635013464964197389402299082743227131637174979449671151243171966390159667512821209567817098745654721918815410386123842744228356523000684999755682319987808129467421534205928444549956888513064731984986430689040102312364015317121019386490826945694639943997066719167019522080737247612530045468824301030131782770701511643189283219985346981902820033721790719448760480065570644954146977324836555767836795888309555832961142631465701398460755591016191441042808719993919543352710940504037954269991466107119443568536642780368455267634975418666796300417714027690085340926744610321673931648561787611990952521947654074074992886679017325737289017291586390921718686876049952933347979390065607109210104229559722297365665497840928373075940004526765323310138812395564814928796034402980085410610122331340540219251458930897377536709687140741918221987542303454325577068572539383716496201764531439522355991242856404463782683816588911432710223168861628435216209904377180494927255946965151799552429429672177504648969238144844551186280643161206467093940026124354443771559137295007350666692333843703490275052881472368012309741344894013380239101025564124077198690281276237536035119513412391288481769221567221285263016208765238941801169576054545685796986837284453231933268048703924421716832523312749247644804006056055927744622852495966702727766448577976641136949595448809728530066977899929977526820859328043924240750668818841044232157338470446270974802429915451411779734261135503658537790086200113237526062981195825879150189406755428303512695821360418721743187194816274769207761754101396827678587646013629197717994291984908655817252267809739703857952264831269341945986640530231763974277119126551810132873081170361274798278022618891859713118306373807786193007890126826073691421020706861088348672937247899442512708461302994829936588001064062186829074711798526102438018808330617659878880584905678947422820934522015992163338824107496426774983751590099718654164736933985010584214059935377391799461779364605928141597542454048323473724471896989951478251690918694493057610359981173995340444643636718812184364220691325541046041127932207384035281436927176718806609197204368136673230669564689182613724863545543437546820457549718093001079207828417409863411902416358434692165869277190830107021659318128964459951784352770802947428162059294953433133482969794163893639109295851602485902414186586347966185545019527269804826616794766336558295185361051887940596764811371068944856705176098497690313173373330185296899628168039669813222449659516300878575676242063763623518171241331834331526552740091413737874816856631500952470549032993567918360220174303211492146694894547328480171987943541607764459178574317421435493527776626361230442736453542587774707875440540083342892337998079483555105249084989436094488946928420788144961636273158940159750269650812064060004042004405919377209239246270624292425272742389430089293768927233482084593807691084159795954389347446045771481963809954821020605428649325331544987335609191021945530041198179445038011603684078545194241530131596717860158410172796880326356831702963853164133359451461721150525148245147450312042913931665619175047419215633492476896487920478819070079939241275097387732015798384222485039448756920793890368552551349989531522696988308114113742015327058010093381500779106626715212940555108657114106258505089377252455891918080657008609465348366296182919097337427477629624892916459317809027056730249130363685932822543349236257479525136944324528742600662536474075042680354576574484525602338895076988556727090182066412198677485782578683465814826231388126990812835738891123214458720126073430320810865272317451515591140921176826801414837358964893579240036367644807555218025419303941108873007716484639778385875843527586733661645858356727682570672331006546287623498062126561805228106437708194522864252941106039394497225852155594864117596380737652545520474247026154142806178424273019613256384711597186401718896910641458840840699048125262885710108110593814242875827910679045817848389073680467877665752101243444064150342513094106606135794559080933412288202556985506478077267151412386584377484652516498267853220884885301156390849609464240733665239100920392037651403709684665473915968104981985415508628370427238299810916027374617105315192661539790112860390217012778609833640224259736022943632347771618545070652407958383795252814644417013851342282337266996142211888638696537292235081094467572502122457933073041923917170568790864708490425721208007505300608278403032571545379641987343080677646524853334294469064138157300964646372750810043239133218209975782422490362543299469351055048260583185015924478269826166033945162363328169269185804582891886426128024299187048123164564984177918583278901875256156157148940946228375662889635100217982759710692446937152256298030607047140582090016314672840178028015741020989201503259585888176690848144202039215018891619205466727798887758943759985487989488240066962621869636402577925424480417375805279186390691218500839428235667227729448781862012005424347332906125989053450230144567377503637729702085119851960013052115497742748725193141056385787969811249196656808513750886197253982733397166686294057927591957895051919095162423756328072039364242843840921165106636307713776656923087542166133579153788218621047185626872838911141173554220152391086793477562023353228529043326257720798965507840955760611629893654394755384051908728980764349228756533522672989629870559822069589115946127244021548502207903570234661466381225069296293664446916892398086514984088475234920386658931567353832821417868973539293359456193732110977294424872370433559518160261851843940863207042187749897130751256890828049250860540423882336609053358032666889675552641469717110142124392853128747465249105588769277230916665756320251956759798392054741048668976397685676385635790033165340113159730839892106004967951628700793572999515453583213750885617374161153005262152155967205666600069487236539945833971280730867085670739515724569422913111757058274861859692634914345302879578883683893574900309208242320780453725439183899046365474048744727347563832395669046520802050109605646285559299782849444517682772418664231662697426167453726427843764507042386866437666397580098249742911501114557328246579160136237774389135354826306376650232679407778614728653224600875754870922641372904290745501176679632225210949905501050718500559339750983851447886495735232850518457883762823332317825233484173602758500879405785143424660929849380740139062288779427163854943657840208572160498748645789011508649656567973878821846543129153120969371426963565708806211797004762392486637563223564734722625816908277851880955883129303871362963761877384510325364704437777223656727429476886486677192638619530297606258723208584819576119333241602762142590422130004355370013186725721074587742719345155713592638172731095818025863415479194221401732757917727709569563075732278277102804227601427530044860783560194445411339342177116351312180804113141925095110753301886361281290323839230336185275750639739794928555602427439553117087342038501538815525459830485481028492593400626303584691710683975919681378958211908315217921403544423275163601406965936565674913499425071142218542404534391800407209132047896998779445533241315082257990424569898105440845096863957311614601715476053954181880352395426300287114024682930392849759721839022189698432747741997949038994127248151195992569330778938198063956683927658296934876068664344712315997235507520451455434578840639478467511525592972305112684540754589833300242860855044642815423260049877453051033821128339341404671595029828999372577935738458544534931382333666547793736920033607765055666404265727760290107726928804451806559937363598730461385399849624770723691034620451644806402010368688540935503763776904688851261795487756057812524656482868816690119283755275297139270276703782878547647456094910146196850402078544367005434355118663797884857769546247833226471280884046783874829450978907023241004406948454997027384251008971169392163150121235366203724379091521655032567530002520288194451049755375301860501081282260351187683644436594945198355773195851646190688945854908922970401551673173185664083065581311963105384592340860030438054247177116103186252471910721818337919691078465773305524380658390884370546986184843730661873175285495545482018048018197566104215678773344887800161309271774285736834465544831282173858711262506349374137910447294031673898604562020798206038344459664182219288956634435949891217580011821248524132615940717228902050125543004726755157429812601530942128612728117762898900347994120584407429524275144811335192671669103084130777659496931807298866059001443449683121131678022751712268880239440868350489968338426715818063029606049020215884223987293516929463388498503474122413184279383916072722427470431449661389328401052292402266509357126662690850293414718205387528909754007838659866660882745261220165900389183106887842020178541784925417618594358254308173609398388645990163222313889678707116426162452988831670079290403430023884201684850841152223799084958873052997298895403964364191618665458912702324782233447438534616627979596163658019004086482392452398337791163317331062463930263844440108330382634225470490086823232057826900398415373466435755401249887594049874265996882789879027747634067768428263044049083918358812496981949389617650994522909227417609508730940342616937506444461682215894241029692230000868292233423147629301391474566127692834810358434449130620368857971561377677519669590105701203860548609827903772579011338115554078951149327206245812157828721590196704555914358245489335730377790299484507690840451363026313572728775133414052191450415303621421401222190087529750216932653552127499977062382542107433229725670649285624236053094589543581536464662395314544138453202215637382339356255209140276805978075583337898926446354670348779656107266712121940474095649848459206286164898648641964254882565383435515312480175625762246777661747962762046239013377166345930130702754778544505703329305681470431172976135424249555461884439010618914826720776585416852596439460445418675644611627478334692381830263111280400980865585507597044457260760846352182699850547968207759952906854573133607053944197547401141818600454486271686424782141127439126626808507584245910499679577420637123993174477964957647248889251192150018786815737547239143319280704552461848591810051267304063922840881793100663799368982639091615617972217124225061867969528224756822563117507324850918590684525656780797219056769262418303444760734708986413397643253222456245412275829836109182272645984414809413356738637016744201089596245419056386873517000233654712749157987192277006460839444414439884240651464739811911784764144159465356254879186331584551355046695177112485958794885068175673354695635938430461920175529670466523258871887189502000970107388547539210407063973836705823518289596858711446598302360578007835528944547921055034705709578118150234439934215418705969902467467058733321131339087763721506859684412080811845339743584089517969340860997227757898218507961975034806303935252512812617866886261858622524706991291840978770008726388701461825375300316018509509753441956391296897449322557777680467698983958186980155987164066520183921078256152053816704900148220303579081371756190487171474742948906094917229448447104529492083329969498114064520177180606405701408594282970081550692879555705949731256734966435112116288729919424032137509104899737702657486398299519697653367655269684487586269258973452713912289090965723460045321752920486999652380936024763199772753084454908384567693713382750741510908514111950091068976796695519945527363982969592659302275047353506808969124239277031855558951757870889541939274899810659431751338269899389620139078769638375489304185437594549290418451588942349459206814740826206904286302506447305989201054150424190338565602668020718968352192071035179709914415554121167595851432418181948253343929004228016551549433877464464705762701498024091546712056067352319951673525581837415179807622876580903190724536499952134639376098058755325549165139391749645865382578745416608802133227137659336544977200816058304732813365515956102355920382944745473656397370631204140683589739356161896643985941331187347759639042465387250811860177742457115309439471373310386539921652429347150245276402892973925075959327568946742211702165351343433181343867467389165994744094594582891484967445653601668835023604261743535507427383177481994288464615197075279865799318246669622729740891872664081539391792997961118432412926944815830872939464946825723806589199902813412530277774216853929242697584589323672604715625061917071076587029670868107973556169116784643880832783855587869536205542630775690776909988559324257092713360514470615017945677955986159693117860179540363888693619972626822569673102280078181094642473044168013491998793737493539961030334748047030274015386993135171750782440547548978278645073615841295107664033934454107513117516350367335276639072410838066606887326736192269685097765131171349561171282244579836434466337019237788307178127037726598908008232842199444425971522306585982289359021914299248193316997757100079111197955108095037942423505172681639404362260034792479939323812989173800675168248965791183489667165920391992441209955933347479960843948753688405409928005248008491543793375834097181471353425804409161378295101780802290905379325766169256489727613239708480618001836053564322266437333598498444012710492252038598997022333880647166309750824778828881237413048285752785347219390143324002332588341179274608965566104764956329904336342560103383578922901074758776995919051295078384258600088267281992850291609847413176245604977597750487208334893792048540349542701014935752557012154319480724511350671679628824259711944243537874879981227543201044759778633870413964546771072559670631367530586030705634105673714685208665289242445817803953379250755535254276520109165443652199346267154942005312772294720883064339845771754228229614389530878890519689481789546054611088994834446684404568071575580717901653034076216682581397084271751993716811082986735335127914590402478593745854035948890401898904034416767879438896551338786720162826882802111124198754945013775094661687698474760053969593223992124925673543025201129295115293854686589921959119987115614378472383453780578614959484350548106007493794890935964570407440036506727225332403380713274647697932407439620767547665492110339458668380678644644182258809045610318203398882880006215955438741807272796725514515196007972457466832167844625586001565642335228697996387793742306978576766074702060336648140786582154475513456267163362479287915784687794341891685320110201760131070260348436879796213110365731231320958411640650125106229910097532257973372231496388037198606097577192166539195605375699819137067344657348229341118307303740464459288666542197993708192079082916287361759992680411818510938744911635318282312176513752781488180031502400118217559522652534488134933737261047722441494585983067177975806467818089786244539556265710659121474483523432763720977804314535572541862239472900788858254543295749738919520685021421064271756197752770404858621710776752924714656109741939413100725649812251634138020495471124630945377745994099822284629606764271784363402962422798250996204623095130267934459188442600145298431319862027450957166380896729076342227821209785325403632472211222089170494504780962200927791981883094542285101845303451304658284300784552619610645984027752647718365077613563863296108772173925449285468999087784897133482167933912915384823962834389716756257772074777738438551776694261983949533922382489967207247854921598107993167323663430910321390068607368758780218146974065850467801870779801387225198455798722363926803843441103403871293150276456642966089743125211535763344307269955793560431530342988005683982207105283278397176815894560304247672010800678054329095410318441259490415843314437521004064812093469625144458478279277362035719893457460334893451263254665034193709231529821203677925981022134365098070867529407025237314144772581163029084280017028375299061815185801822943185704028206582417138089396146441161593615124884275115264202250881868880944265448429149626577210090336244009573034715039661870380967360874805556903575882660941522976892314723485399707105037128083571138050219051809622767012940642751424875351123398809815633130325037049112047592082843791004083510934715796746680842658333289671116366196950137989846714309034889579406185205660655030469095143527096825009397658990704976781542248444084169754852739333173536519279912641443530143938121593353239033043215150148660927034630950756052061502572223965665406910128724891926937467898766935501093406368924025244434632931622103913140554591833887615521283246928282889731587820830672506227857804139708345552262746134858257839066470628827644176106699031040979345323219430262376112675472081321052690759532415108309708065559904362016520815079675568093557440820417626747793033760842909078536496640954019467986687601494585592094820659014493756131798757647224120398864496854340845998391488931251107492886783270172002042426319877022211763947535322723898570757570819363106288369636965920850947006484929658840561837533407959232802727651914570516614130917737919874203048211022350157768091974150907021719453935204997158531560392893186918892848730562168061086955876835412684395476772623366194548104823244748690718061230876935411422698970691218681904756427426611934820101877580719008190668631955783823058393422253010728167126192340789463028614408740076046322900516577317551454041758533012966603807170159992986963646391735909737747776659100072255306983251676362625468867093578558665687985044105452918140951394060444342035558595210255686922841527507676574919896739839789739618177793385466175194881369091487433953096430144298510562205850993336475723008793800289517523626700668791827916187129170229111085984418464649134853908755942733316678522325008359936185678075171657505750687903331995492878942848186453040072483143603978763650826196106007285851097123775135686698018365857533807844773923044310433951081055207599074123459191952087682034017742421797707567610270801585214434475357009732744779192845123760662990943316403537513813644640437338874100986098314660169262144783568418610536067122364274843385342940310604125933253782298877156178827234585620486444809362782186446600715295087619407020641287448332000526069186276267365534736322650148551161502973500746214464122851991300798727393650296756893483381380871749366455779318130320345345331224462126309138697388393239810589134348562403901115316994820933214163784525224591612168549004569623509408468348194767886775452112188043105240256957832240693731867202996044919017153923916436931249310658152374683600281915223446519603547252115458796447670193290756275334594339069632641655696071323049278734385746007955749094771675271431361780919212046201468505715519567736370037349067313252247246963222525827736503483888145559965190129474886396181415967541061663987838438619750441143265165131560990146025496775290693396052920602447298430419320279902685381084948130851797315783019913244450080227821968250573437370709712301103977463272699068657864449757204571598161597734433863320709552631412841880786165562258416434982346760235202321429526492550567580186199164646350755680725201848452354988312386674290304014185672572706082255421986815990507168647057331398060114717060457810437899043884039540841526375619402303928855371679762810255923945984994149303351362873822661212059395211742923797959389675131603395859391225906071401510945656229779320935442477762982270507209603218926752407229020599988319411275125067019087427262993269490426469967013389672820190662649078942636053827802594313912921874010921231310823518597406763118767137338482791795820627389671079783928889381215802495618724740801196373641978149980509697850782250886774851642966413762965196629168293771350234309299290208522391845511676494096795810171987198161312342846605895202732614274308053519605131632571648588032806940694074476600643885356229712879755838545568086294705643736015476916725034107706198452273671300837457387758345423743062141400491009193458284407374611857669587806486293933293755449535671581278481164362750708887334727676133733432707398681027432639622969925704355727829286962769693100205640241710732425615585741980885153535900833307626242389887787531534147720654896383219408846226008930826358013244697514156854390202813975900919766285436802483363001044615552112744307103072324434638556336895543175744727984179678500616471692371997361274882492869733102527453373171134727881696541870048810941979256885347925239893480877828125805145767711669510596760299214942004135686950460812755715920512978647262634185142628253052315577519917737635192410951055695455652362221182291458638994075134805060307407228133087527240053166169910462894678369082372857460421586203062531676184324101733768055902241063780884064662066177902469833906653962743791266082811995292056047834999004852851154985027052570271906928801542912952704837646219158229371698594657908282693807548356387641297881770703333282315892159267115158468949953598485918498139499830551857147748366868581849984740375853750702230685264388484729641891614461290409335425965568809336301495671416788651244916149421740149762961652982581092317982699572767636748492948966561595521019861236288385894079358534184161939843369807611397199003161531580207679686586200099535684121356760094233036046672739063744512890201909592655584676627705242051067150765400358394940967233031272905059813592259523524219449860427690930934157372977060985009010321516829051333916284869337668727756407687693592049935039330969462426714933902345746227101070592348843432848541965067231086407545698856038813250745939793457562650541577891566023062527949320811491976505535166896147847439285524313871365962713779467790080337182063586986943322238304160164902843133576706563605266217826893902470402928663260920294520939891585866709911691018749008668803085194656937725748658014279884326429763675741683879732894590438637303850571432217806429105223007586844556330151840423464073196664444593404115068400870040081472564058333668751679074305636430158633494123254086345594667740863592808117043937782494739629730281024670326980540416768387751426197765517567897822746859425162946741611231026777390862723383649796598968353776400119258537752445018203476669663148090258085021421825685513136856495193008988925309418507702395958227491923997032871307535295117696544353939435316558259017677603843892649579777187654010266181111589975195221226056670503998020453831023635805654364500966973767000507882928538134313459486370111285643465614078041707307619871546385216512960821860065186672358106572251334468544625040734021218842779094488177978059717810526802117018347794743060559778267061157198771947939636241062411040325218960982240810722625668084617203113923715024071331679265976493868063289850246240466812152273419691491329934756465526424580801532866432729464531257549458226405640351992438626815068622260054473007342808774723091112655616370102505979098925007971657613058412294581007306621813852650989297296181365599916205909568724877391208210495700470512140843362940349511775298198369220290166127709068725289222049235772810259532228314430847806155391932972341869651176606846870988107515053222728285160950075361247901963512207482079502417427566409071855181724165920154354591762647198676145371352788059002351528468765798432683369794953213300599207643964497905808334039080285144005944770769332062192985149398026390352292776042401478806123649720849228331563672557737806094223864407201380833350167809680870734487918542374465872379280019304609946056301260985160165098634050045811350127913051229881752664230730035752521315503364479824612224187009287095513993175469314642907394575785540359226661464650784263371506795414871954209336022397636200076018389142881128462822790484684445312394168927377197267802135758337521441701646228566096909814126426498126787676009606272880558367792794198513005069886430452339397271119865587317528037790776822886621260652480285571814059191107246213918641441581450899323207133983776222156715710775570967282192793107740133055704951602240357671596239719783918498999341888175345650237851515533214338639417149582090986507273693120918893711381866919577532267424088681909831988250497942592490915545413382101789830782618482850696609427440798210761878459921943040395873305578102147695400940985028951689496306514824059450279971321574883255950611728217994003252765178898552014154696452928051789973281260289432453292908779035025996907346750051749761530707779376405667344491963580425979650822737966794436952121381439876155780142436634342303971681845684807722120039241487202469702931962796104464467500464554906864255785479648505809144760808280883781133047749546856558715100620759483539311062199026458063306397642806823372049679101142190824618937709520744333046314046469509962048038466773557402762933803984109014762039892316619940468817936434899768294960984644016686468575819459273850280151810729969640461028874404055987084144449542992652801453046282545860126960483857170080967030373982660567286167005014230409700876388260635035865328219958567456455949164722878529287168686883741488561769068746325711571533204124894416685389187155166819689428242524311161255047589376506558866334481881474494832720948542562047534694892885598943079162137328841853065571168480350541792317076543984508730229170777600352011286037106179218281913755506595237424939464509025892468650612452238453051729689160902243115296268898652576094430940864175486204472098481611484841201738110265380704858137136799383142020519996430005680610101063552267528477343459256230587875972166283872972824058268694649287408469923924013861273946140964577814722465849184183704573305081005263648978969843898399709656463046975257316734160097675222972629286133226557680312672153755666332977880806756364765124082484483810882052154035226789002657689156069303081607283914143246606743298173863774548047623973210329059987164602034327005508278621570426735595645422102960199620490452125451372230164557437944747161871659120298660449838528858683370472786424256782196589609157660013649797267286021399507056274330232703453251318437736508632351764232888550923344119783191280341369037419508100246657589418317583465730049066294255522619125789692620871555380945249116498464304520624892755387740561255184142620135799764476121547780735936886773324819692707500832376799625162161240564441355195431412433925674262424429699186505985407672029714380315793400058761562507125906732411760749685377497213327299834649963992776612830610875438691614654382490126628844271941201263377440681508385689435200715187478113185957580513738312031290968281822756357525269892081983635249011297985678641867317967827018914022928756052346924073114635281968411916302674495585097905765019975494991274453123346879044882437087848504721573214428381813601389912502696404863554525438193276190746365914630646208332279560743529638734332477298310697472319646388955233678507225906759436919910491579566224711527471409954882810269618991993467169379923985374016607618715941735817225262635017101732473853586563954018611811858218789492768333551686217851129772698039990616690077829843344423154619944397565729358965214847568372583124920481230170158180044987436529054286251217278446279263377807893372980881220220798659862909439748198469418815343805994211157073936919769512555559655288944486655631037356522048052079928411757020756015680659153946929223339128974313872421115095031410261150351097519350217657840604128735502166304145230969770150793286981404063897479366794965103731979804465103859594767717116584610471630925625106549827329311142886712487146412828763197671828322998545838082108103214883684119985385048910452556786917859709261985049311502966332112848481110538820963857623815068491017693417999446648623449685606575630363671382770238820125460599222567311689656680426101516402952518605434645361849249279025209673717185264613602799881878641327975558342418435135955019541562573720921362501991349433263588435715951600920962583575652583974938851260298149190090660852696108828483836658021011162381339859996873332769172912088989613123751304274839832484092990339821322223120931074936710741817690579315838292660034190639260096746524255287433045098003293923631961791283480977275511084464252954071226916555539830077972966982702088718905565611026654611020294821773730118108554662908815001772109807768628056891597612997917607721387087957830452151121815800562802915905248144898966740592420549218942065087588831384401586209919759643600899557998088584261600734583697886608847807422489032170531351647061932578516915857938593279670790627846801211756970349565229261048826935419909620075508901853287829590326660939385154254771901336990943824610847674592340281853711702240972521291843922426996466542819012226227956566783106761496318977844258771284826827642497572727671582629618774380181176325821507684014157505161180479830484385001141983600784139523560605699445540225155614089357667649090750663293780131514401785681288532318740402750269142297107953268200888955338742998821476096024325022521263805508869848171121248409785280283000251752005341604532898917580356153955715106446182776453355515680276891885919087971617733929228649150575952958155109028672125127066996625435118223622993066363968616042317313697046821919936795953815249135197246824261375100796797857707328651764160663308979142213637627475075280828087472931828918109529057628464868489801499000422093535471392498920554174543884055222172543890960899172128527853067938859032417167794593880152533434774604885526096697945351967775914534994005709489067064368453814778073202789649127810697075633616835070215557857385371919804365681403694864426185299974921821818701038790880727724622207938789674432401890770232311246186893905899548545798682422670014309304539060347747722876583807535703643524377451837103577594983433942013991538326302098551989944051789696879084747875208434424307927392307329144378709408966195699290655142513912933685005730700838116382862129153897868653031657283334609250905204975198949735594680981711968164845601028447394491402879423752520522963795302541097048898343096223013231028897177103628867014418289632880216293063019055063430891071244560562445591045402137996322441232058789347257799992168476174544475638092355669615952681379866828166642729241901725996241115909145578996214749401129719570595175051598832834102077358784347828819403239202728473287807343363590101080884943261893991870177549819749907299962801613253532213011830569747163887060194733743537099120227234910961735730170674978295040240341319625802419248530236996951863760902091200925176266600470703755043983800851018900615097299294206816881116287344547720805247141611692710950881215627174181050996154631583852312353291285178587128678300832504767518746090249650102031195883895702955930266852027265183925528438553276612130388384847028362982272162799868625404594906337488230329488229792316226396638420560647724277968631660627192889332033084495518626082032899368941364593669452708592158251234455334409854326354711998427480298261205485617011668021529975856802023295165672578330118300720181522828763955239840433925118959622174400793354518856279253877346555201590300285956165747485154038812281700759781794832318513103316720711101058778950970163232808859843513242678552357760082971135189885776618718174079434275857910775136511317771350698438955143239497578430652814500254392955269826483893455941885396238959228729959157988090348831125150876912585359691772353147064971255740359826041976404495522000431881410745949383187752354711432265065553583053507039116879430545736919883124511763139684581482236324092267333091831085516195405890363481602807342381993412996086152228816157638587946572986100131512647080567456541651389651996040173592963777157248280224759052311305103109910920041992056737303757022949624998338636207584697930074819642127789578319930748674378322085086441466138993189641257992925825914442604275850050353212569006164082653185006037821207638286939582834200333065599712204313887091047565136284590062019413878038739379244407207319619768707575758833418313780946583183692525022879905588785847804281226007257110880694344077586014356621260679253090625098792198607722533865498413301551505480137244291683425027307722472725530475493961897027459619056085271812126450711155615935349001389116014111729014389478931083211666045079819837935367224961662610334005292060544884887536790589385631042331172231788193670206799874216318985998121179130646727059069619790163581799970006495922137309892801841209033117710314711380067093636578465882881894502924304743380697978399338221063575767728496192204559819402131825816993075934864640118334410738968062781509961710902997844639984529210062149481944855629786480853798060670997079137948513940717299046451461972792717782984879153432989925038431232919057522492782144291475028474089961872497409556239835080469523847197337076283499812861809122165402790899284554815101285995414185353972681163254953290195143327386726176624752860471019879653355123923240875441186953966283296546608188935720427564702748932426659118919424633736698318825376340073989951286289142439849048934643439958530281067608051820168914708799559449318352405439883967208887776669794251432422355653998693819387319076407163414914018336538777713383042201253475285248680398238271396998662335994658413946244463924228100250191063665036173210640774907154325726383942158823805247948366943321856405701643932144665173328818411138465713379368660396497987396495353484053492438316653315431879270081078271538294320859787704651248487676550105299473796598168620092076560192351896897424272337705703665213647496838210325778892964606854943559840141968691062306190327867924996340706791156289318433550441744159923738385834065501333910227009271769125828066004796290972935427501229579812131994839579043990340798972352011939260464713333746388019233387075455262547697213238675616240666169617407763700915179748023135913739025183329018034065261048357856279752155551391889437248064206654693537503779489881031405082293198421032183563110688894850881557123202771449848800473583973001253453508181086325106617393004298603476300435372718271695304852253336266001069306150362815148262017887657594012365087761555230169199047413014142359613344638540252510759908446481697465688351804880621451088032299916909643206984042136832455597403975760159146578995196692280030976730477268559012077887486580816873092340146461821864234525073832240623276116385915195932326990727194458748814861063119713763479229594577441810815135243532781691825709041484302853496074689624653782007480874370706940544961447221176472129788374225339286422575805457404743900404409781129057576245999516412902665852698697013355584335170532279007066368197000243927814403158762225748733785171911182301515583247137258794054698859099853465284279464489813781985530371241537425193573085080949179414464517236536274516372344164008770589818825106839406893738428045510522277131755368641060176881352576819000448432850236338581252841342094244402484208494549700720160076792317639855533336234617625714566424426985615303692679820739150305866229565364558728587037085731298414108978905208883254787000045445003069097540682116021086919633927954247994224670498944850877589411209960677227250554279723801679464230123837756534733839821912928753116298347959376832662310027355191894555193774699282460349576955186278600999185531306385396572541395683330142139580696700795731693908172327834462013692485504480906193126944314642923670890163368367847309775044026850458835283903368353559842431244505135609256724426078143075835609440073593653660018865487626018423613997912296657960954755179031283703913645635218411801793543643325849828060528795764613817741280821537217339914394828066597190619536098573467694975310948461303426133738921604819715610167972231481423659231654962504782175363008547366684039109529194373339118266804199280351534525288519106581157986469583290059519118441317777081162345520269697674595028873864224244629154713623402707498813960559957814959516234999272354607101751323697877878948194681672376242811966435069930155647000079742604655037217969522617026875247734929758502949995362044124108832022027844364745396455441786622774588699667869234416219456270688573573021212476204385969688803572903270710431054496772376175954549448957355716428468032251878190458923670984138590439573851376650581055848101951190340530487351046382106732795376558540602035210480445509826029156484609424638685310366653141879657169129789908439767037789373516352925411213540108183038476775956140857182547452342923310532284800861419589862525031801413228452954220548805987629917401049020287424089947478205253949946049399490335553105135514412388617510789970823607872015660720607640697411607721256930364740588346282042724632652999374816682784416616223046217372383973263968443591663452986573562963789019598807432815034571214747608523331520280871243525718534859120588819096488313602574339733624917861174368117524347122184869414728084714358217936920381657132090882503452896864701769270600371447984476261059490228792333195578515637527981959985125772928345790221409196283521346726347093043394848248826389546928880168991826094700307503825539911840718302061405805888254638811307725817572085386452402047371024055671722379675081817760718659564316672119530851152857818652142135610919518792236283707726091913840248381970944544042551505174920262129776085353148666415035660591879680737592852516111522096830756553450305735032730521354453388500716551956324150553071260786422647702364585141981770554566876756739027373586915220270365358779940005126433985285997443178075460266481775362694132490344420505625658323184269854861471594269579677429682037032075148400249707957606027579496725148108226184348528583109624434425409109534948280947437249508552669139075064289754956884953317319752589598876466177037234366566863741375924565046756203694940328707475320924661405134415689506993764784463746288543813084366989582232297888969729179846542264918514424502436582419067538361341992300055072838651371687278909069931064754630046713798767814643927607865667801081211025300116986256426913021698007378153433138498695061497109509570552211988397436396310124763691407719997832660848415599356298480099469924891035685382329504084035470133493051396078530775321934177797879872365811185750501124053444386538552774891231242323613277258567747414775051148992519406098404227946170341404299885212994322919449011399733561449392321231499493676731457755537586423038381550356643616892454079146499957472669894724011700413226259209431197116557328727265102946988241423146924812045943729108760662370063815767328134528662124663430738308227965175413273255345724135166535085675453382702791808505836799749182487236583355715170022486617082327703069636087391539285657764978056490752338915283895147666059299698389285725732021118223246865961449066922042815990875509825609227353876946748282120055876421185471681187811501824059693526899470423597712170598144323933541171551917173247165249136999872866001389652572061304847352639917420791090752823630808771570686692417927192027468163134548199485102522726758533097399540661074004045304229501276291354271753851166531020322777788124393629047936632356049455496288772696913775476167383184280667322601197297353479539799372825928637125244029999651740637518555411654636085072170496178262443293246284567828831730877208384917917207468614548322126246103936004659830521948213502823949563915413221325682620077589775601340503429495112680194445431786103804131123051736780538711816541524923459854782403859592838432729041850189396821521780035444596298631049206813192562022000346331084566938633498391193641541003613586932217470010404693082371197985966158399749188285307358268684667883349372446292185413408457494913983537778044096322033552874480030433762588076556247352522473786645914936685769617130369122993320174281884094817996444219845852727225543363362338370497338498335687506811497782833384729187505245180885489871163052186784325844179096249880821716086438556471574812234519998564891252017111111382609960657087542861368976269303318779362731618620684591122259610896965079859293744653184704801548047858540575485343152463891431895896940575705170200420917637890007875094973351027637791599980500285596029035808455034997714637952166657535104461112908442743171421098718341325147373033377421860136396274147179683908603078769985004236426436981769771514985059153962106960655768753366178004014343773261714688369533373758259542806221982338290301877428605331243752847362938879125781587306144646279760558502577054079315010338807404334502257854037244573190712474459793063338503913348212534228518577970725231266522035037169447859754443956959145964889152941753998919427381759722720161361711852718196918945030965477053256317598144995971144721994465076744918626776881389222473103328923549293421300917512519773878134734888562466832483487160115607524531915025419290013502939221508533813985504989082362183643904286727561445399912312509642393604366547884910004293111262481102183808223025047772630584426975009248177451360330919085545406984389313517309684320979189341669056816807397082031943337639969329522968170965544356387751550699469951062006030221534614546803858062459718289112399457555639090504319971462013185052341679602403969049496130916309161544035201576354586769681304816036106416818782553227942483697083355543443140362785259147037073408578984733018235287823504383507448627371294705770532720645265364453374302855773808176093306307171889667277581796156931738537676638675382751585732355033695420898353422937296961702843191384033185465354783254564631970189282749444693075931680705332547703564723572549393165567411695489116814259247725812496075475438619547407746886527130429721527588290239695454323897157934343192355570990103384034576285581525123812319829765615363008418836682224389867449793887176054411931123288824145787573204837667240633126693928029856174808334012030808135746387875586431685526700717158359389126769034738557239809900638373410026685813106033449132273428926768499800657105699924157048671261800495805401276808120132741659988307485481276912425701461604505416948777886566723015682560786900112920721605291225684273970307947476966038920228193686045205170261282925877971011798269778165114880106757957951919586540030780637868865465212939884231010711668005303526655330394810787633878964768762432148094312679392034350387334207638964121555845493540559711893039546399287887322181555764300589203978913187119305234541514942636877222618616632764205677996500236402585503539590101410166353765691090055660845673506199086906072402495375767938145680903205250103778245210254059588918468580621377792384113820261889087953128778330671801274840405267348790307022360360086775379645028421716821337848051386575768102523694363325541745360213194179038439911525139799191136984674539035900860755835379485904310378055860237464790737160481593300871436366592811876315436647173065672863370329359093776178690573220478877114487318568784900611272023694103772521871515113419350925672743448509328083457437610548385642584198134561218022681597238156602190825934336058720964168246802144043962055251451358308450990239195413409598331288451876083823635142848491728514029219661804320906099844769224084004347383757070089491835854678050985699164191202474616585791713671017702483792147485651573940927874588721861415549771015945197625350697042892514248431000575948607175218984757847137489627942524173010483239843340583539698927693102842281962803204545314921630288780357846157741835350782127317227476385259838455385249645143298378336638755870077295100088346696825150935193446984448765234526994034956062649347000544058440757730099588336207625219636562668206779696910233350392174644917810697968596412308346212238355569858048421249064576944558321359015458335482091568592244075570308020853943650959723620200858609790963766714904840770793194250332226950957403752936083133170943326859821560150956410834330375273782488739295346485319202353833830755118686101912664702020783228976684282627616929900572250432942322562845881339882993021771678346574515897610669464794727942950945110291210273614634742385840361832555549644862965447382183522943452611938682776672459910386876698097615885534464656149205295669569879912699158734937080692058602734884738782652437028686628916268020222029291336282674818504544768386464435899990547874627310116044920021065475918458461764053542540607449675099154540379788285434082319331243460623782414515142828586241203970590232070407318609898213911245520467440759947836862960871841792094471650578346695979617951151348244247628090713565719709919764663554062096903530414867969537344337804032783878342195988629873832340949472241411195821915250201307809692152895169356635858214476964126596670700125178918597569674030023735472350329361958706039791855600070984583818344838424207197145327471739105928326808762682738522240350231825845350843418312021939782118577627354293656698525550922335769656216266376053056162209454713877910486433583421733880564963413538267842984501470663099944035352989774983606394115792245253561633932708279851054795058807489496693466514465416095105132033182582010588166159362102903691661758472832840767255224819346441856454485500058567141831246192062862552250412340322568425254166674512196747708977553388925805657878261351269005771187467091859654116014266002748996325848229020949965431129916727977962045060436295470876939354244455368750371643674798603063601007759461412315480037837190488134047973707213389153516925777076983778736612154705299962606179419886189176870013468259226297576399548064901702684236786144264198643935818082161316796121210250500666301354427916481365090516737439060146672597611491301003049037923909236953246865041689193649492418100608126427541825568981122335902836564801954512333074773316834376299026637682090447718315371195475149176787187861387641217554355198688627572392180961924700486269536589196717305055459893758678138998167254201773919064229102330668686284902198056755583192395683440780573284799280820829499383553399418542343729516766746762290143839132859917519972258901444494455230647175918674484307568020535110553726418739496269648669512558005114767855531116844733994093140127240356380477869223312191673589167440472508548697826890294911916424830446091646964123303369195792371119578507143879933026566857388677480274195691567248709926063365723249175715358266895861314733994821163617298419046265993020647434891156655087828131987130275048576757786246921195134837121135146928805290908112759872876717543598583188847819594750575227630458719208171016597392928453345094147603190512910695703706252382954739543183583073597108995762042907659417974093510807619999373340838344120534363317156288079226849501363295103942481563258353941569822998074589756516678937393055566860461196691846855720619341210085996605405741142484607083821143914816632897900166554550088171348874504286139557721290360024594445392153800231603895912166227031420651710757392160326839107538289499902015719152127758960909726733681543744853541065491165677669460274459628518736114816780016549985511398445414702487626843289035045039199213701484417309467398468656817854384013442281823888679622531981433423259810590139408392266105744208932656597909529073346788752463248645336538544432481104601235135769278736392228257197360681920790217773281745395140249272106467841506034975353769395272910868386007887060112281436880488373659810305243850402264650120593685032554024541396959385315084881377988970639747512866588471815461435283905223181196320868768137366476250819823976437848862941461429073424516634214522513626651883317298923320304672255653302092675933282948576868290586728741790111904595324926267732060202272881113101518784784734886768983656168750564504566864432751965501143450331065062857067659784023130983547470171129914987335250446744944956994330850836095124966793158857805977695803812240215488216021533531004340392263341414029958331983855737660523242999610721465153594517692206367127751620436736809323672555479738875029175348365516253063450010645356508387348595123479023584453167715361830159878317050980556926212004495877349131452232424027569394591422081621215422670512744942460065763265988919748869418222588229886582062172309316411341928653197618818866249166154663319207431180401417534286786644829994273786259549548643622662337323450718769633346892372354827480697729434325316444722810470982101191943142410455376967579498187871845377577691852095395668073626193164439295102409083702134404444478245743603007351716887740495422620663583257239479560343680871294137181374578166517306990136476092548337179131080878731420593478408026946279578625923235319295497759025171260616482032792592253167942681560006349224933413239785310596298210195351215514851547605729683046445458455748154857199500610737202920638292873695690837083957346276788460575275870892780647819185182849999586528311994836797402690961630634007432262101074610713822308469716616605319656955360255936983725964442235048773421396441519515057377002345248033478964754337381802080852684154722148530189599993983722789866730547548765260191250553248825411039767618554454956501302778166193403374180366953081323965276189666723051545916314780598146472647540744180417081197916814213246940275418537974672215599056242741881875022097982894108000551846057030477569344277362218179767503312201705567700280085083639915435640594294627012906482888749030781728008780598690215379637700838117548904922174869901662891630509803573416492126410245096649421048017266074763754996176086068508520724238416877948728937717462451391047380725340926214386024943413616581082420279060205490634025181886346239110960060262599666867494558034152032641327490407749222837371387126901995761670685311494524771742613387936320329028564032653038163204810706942296925260695181869484435169139051887310935795863811402983019420617412295813004950364462774830571607416258499278926160823140941066198849363510786096512381403410500239228490462990880899342511504966958932733057657185017313420280853711250496266893616719767735715571535453724451123528527126851296436984350847147416200476721137186705332944310650105865717078388752191991454517659896208853980436890974802845209333305250732823811147509027734688739437511002898733896457979318722269185535752672437273767384602804338351107538607251227670639711046116599967334233827418041793748648357077931961256627474012138472367783145711775094792779469350792211134309832099419416663278847132950979582196663028579481328238182563196947118979807302978127138522200851474490247062810529583902734880666782715405162418103376345493266343334687924729755738972018844401372327530457170036333136998902250098312883004496446965303577549411442728078971323834107975634348009878164652136487668352821091664061370541629726639242763326411197410109145906517109961009852099800718605125255857251496989634887260008045163287313775885498755174228067671940095488320159065966036868508697403926450687368042910192757966789956456668117970321884686541676676197062587542400214911886467129102799241330333810968899113533406875193183464399347030765506829162841938530492393350125300364182522652043445001579975347873451061132311751697139683897030446458239194241613157617859137832839260697104546316474648901914316098507555808489570751167234405121729853837196288094721353548905543899155451938910329874858432283178761256270602139138564499078849673948039384809191744228927811191563995360204544222512052450713167650001895489656321299243536249329676367688844417215769310304084272722569889414943807566729861283165833298374791043764405367376754493248362447142248276308816641229129079321992225855186635620875068484311238057402906985847566639015849301371822916554667677547093962665447488376377524045910428154575359940778739888748006737220687977521932484773443145071947062507530594928830712302250140331695346752399658818012997283888917975442177607545109451215902670298738320549819596328194570803369046964627648000033692604451104846278772235310911146046890843713049310902061862271809302757006883204647875445617543188324602928249064949200441401137728626864248022733339875885464330566424570597155571413184994593760065249061489562211371238640656350478700298431886576536585397580479644182108133351821750877931160629285502584233022500920740399691185964220479117211166841046719274544238448608313829293002418948148885965071549621957522946836514964730378883856113166931588080095845868310854907191974176701586419784014477312297345943465671708103146983487918663303709129447557679420986143841333184343834570475988179714385964105828805155862931561929975776168261397977090470607544826666146827457850848592297894410544353703374189469655741551848404376795953432553387989892513858802587778336386330704833316219376080744397886459342596519211151580294117764394875825386913344247649114248285494908035741626180130863221930678443121406170412067737684545544409195979739635382791977444405957244222609926960991175125583478721221755071717555999983463804775151875709167285749032985966516439082314720317321260778456533616549278897743738345129207943641918876490059505869741240528670205955704139308297188454345167485146083332234812799203382973431967441651053086216725756526534914027276989786712162010882038029222358326695819100259390918783637812567544152789035843571649935096001017794589474825877992651163073360448927007233370246002220834019725301198851717906114558926515551413517031956105097350724195461620884906844670762720638341114110744611704169130434718052557800711407206543213102111791412905887292246063922885797906961594811109112398621449664315340911988879271404626585782426034607056787142368192366963776563124518761617947430577431245975026408848517829241534290312059026907102723644955855743934190501821654637272732569006039527253898323105365147433077485978802091880994208189364508826303397671612258346865191283658357984126192822886709174449219012711251834337968398712502044028832388339391958535851144900377723541172415336254914152776592745021192119992937370541460671681304766458652466319847130603038359040477295310169830543865423080355549447359287312690244560739186701071819590330292002927870805570181293633947403363431779671326343270301396744213698959581745680819478265620684387535926865642814431977524715600402835574979106157149275449786399808117505504019451085856010894693779345531208581382689569575872394509996122314781637378594912534308256534947621429153304414360249339230302192250165748726748826709584763077760908871537993302000306834191921079503676920903050389604065599950767170555627017306504669589705624535057853832062853824070361344558432275324282047581460141142016541726821577506840587576884495567065824937358310167536632486862336899576751146965775846604163766007477672586760410686715057856380235652086607155284181374019159036567200966868124290365907536879722713999305978682110488350357819822911816292633432429758057986510267001466360710094356578796705245035418066907109369408022454104967232522582920951929120422802690308769837308479359909491475491625701952449514489066293082435747871937020514016858537672825996271662718288237159591493172111264659117373223940760665761933753951287706851140350637372194464536148947369476743803706905534365114826324936882816736991593614583643605387491580556115193531760860747909587213818936727701792861492159002386294454504488056182359228990530469032790539941978332135583393641862800387135322496028772118013533504563025145934143032063517501223188089599907562334018739685095274621659045343406127528360101166204194154242668430578572381794162772035295477984404090500155445798615617114916540807505006668401487950279532495728555661737872054442963508959094129576820937826986273231396558924120506020639050082812452696669338123556179635116598745413168006445608354539965658668000441445696706136543256084034645144374709891664629335696193340544489741620747751748983067588544737295095003905469354377241214815916570356644401423906053622932619974249171575959042834480690914687442782047866696575579706598604082805365364260980975041104140928647710027968666161811796017653319905273079879670690974202059486723481823244591043117868131118236987054171964821780040498602186012802348086862262196673623231826834916354449068354534945467281031963165598267139791325594658544674491487150142280669414692844829520606767905659952216854429392354965878367191686055669980173793529885533694345250506356229880917157595695355437664063607802798864095380654443885378055556295133041331295729414663431028754685399691190092533825228516482100811954767789789486214719082764622055986120906858635232583815691294985665219860134380667843728246439012409673186455342531916092696823889742455376177861161120987787017312861481609929027315167710938111992459943855407310615243663439695445198393112599263073384199173995675758928061517083995598435131785381111869923192457620745301561420474560157482854138319687015550357865033447683526289812552802604157523856481126184138532223836612317198167498318541025978750471649652996673286058306014405014250423496160484107279279457078342589708807559491929096488252347804590048507530408855280259920896700371965358789348177888765720210323076576485399501334662811756039919785046246100050439762568137837539793174787002445712124567216168088156163716614993615786170678907677187607928412283836819535370508303775621555176542613324243474676910769505586155329137757286833678886341869289904620672108067914512803441298137714906025219161220616272984122302254984455671510823793313854976819965883027101011243508043738157278520688299947348688124703259390754188292241901060080089966944140712709682340406495617294833604887440372680617171305681591606249536661255619998043097804873805600132380159749002150578201243610596359208143065657130196142972750719410327702944015718079207220714996610483565218345284309801071978465816586979610219374533280639283430913996375050378128637311721303948318608963604868377242987619595076122079906716272211438601481974773677072748302088874069115164428495354808296456047523881060483400281381008525718762086771427707474882953447808880962358481709288280586012385675839978727682613739611149954979182981994405851114125121661218891232970743886218233927665518561975384361238149023978919070626982730115919223492757885197693175032828335182152444289701263423257186929851857670584359233233009285738650281669955206195460265223306395728983959207263794825284990685175821122543966287520179159085339333385097245478115177824460726037377980818394123684809375803765802929618891975102818879770064597821224098437419575165340716246139912901658640447741025338389026342480915111551613021425425264963232042158685297673318597434310537885253735507643441242535282624782663588438424173684168245224457894673651936531427701914713901092746669013523878028828585946122649299927041433107077996927540058142324851136675924124009073676519472676540309920213103137281298758112826890636319090520602344414503117093760069558726522807504972296337484380189239896023563188158128863037396271230897794709181022512366292262377964145817100078130459057655693389341733439510899292903840273321901343020008332756126082534290071240269713215706009217449257940121018723476985430443283828583429846500227930178957930188004286832740350465218341916365887599505643474119389005423000760220696124507829299330181924279567256780210711246156377524757352027851893856955249957877923812482010621332786683170984776892730529946317208467593378599344263306382440781455775448684538873027476912477494270758141087386842075354401920787571860709349493809601524822093718159960712562062153671236837642090855273589024770165222314454295198639948186472482355125985531998472279835612817392344401533604802909164758032522740458492886901313320787304188440116067977702123460350504006337150333972306330077704178447105927873465937306788725002056035489574170699192944498272886522711123987177896867467889208780780678020004030342417291024879818953274964228417006884009116818129734109904105945695328761850883163173752775810099927309297969558316449629502896264137792099572234177231043834806372684122272867603001593132003172971960873056059994178867310480763960230818777199368476661197117391165306525053156421593666542528127814182392597473440298050823310561693794183950735118597416954257046056856971084465623256694989315877640535016168438612486162000789458384423992518947657384089094757345118221852350657212743991128044664988434871398596404257889957129808153086999621146135486124295947923015019250518305970849086709856086539026085873217912788038128084109472011600694042172443400281142529710394122414267808175771446243605265603501955455412042048858504429950321194957038479548743927555512857271832841638745854343767046693491129972470417780700993172218206387080590786694954350285881382847246125454598501745408695218991502034896057581698786845588826118857505488694819433939976102896882993736198157351578677590014307690283253453898670661046247363856833772795443592307204981449185721328797828965085244571911515428127073150822545198393977519050912925408526582374624632647861249700196853581037581295468209101158942974068999850102437528571581120673507576159651141272289763336520735008119165823879249809796865048882138919611889274470705550322410827639907173676285954739955616889529057331767387804979781478897982176739985894249299278303588997555907985637734889696687688536051314286629254343695535879724376755455949929074081397814315332619804989282264817174196502841575875985098444760273566883666657702365122994911546569932004251020484481222778717263756654158489714704959379176137756953472276701760761685976863432374044510406484305304420652699309532996918309990370901924150823853023822210994922129115831893519022671988978192845541551160230425822210054140653547712936551776383563104242913369536718188236274813321036642237649667980423389653045761502066908456789197116119445461522915031716576027180722560195524484621149345078536300714925352642745141237006578807685927227421709552095134178176169089792518458039224175052500768758011213066132471591199684231062933478318221101890630101959516844098617211284437612637629646989647753542493667816598305211224326451650690122365454728705137052493379864527558355049922764511103155841040655089714155328414620092718822161073456137242079706041376248999668108433476806186276440117826524703921265025867185357288267711224316221231049148086830344214784462395474897349163719054059371191561316760408989621697420617683268981539011900707414325255552891654560271913771946053021809827768541166588419058865656462697643979063958455900298982200596760911783084769311485589330737681282774375259456454170762142954668157651822055787326160282644544892462489130522084359585574855657438444256892356334320757038249864328472055840047623674259555713789302435413634760688699836559864003800520882369514432317240200761404881099823701676777005074921590658866473358337412712833513831501444928094959534581785511255993839599051129166675586921500127181753608735521865245049386681477798471093559001053892603003441259415749828217204229606378689619079513660247553429782829780539521694934406471012951596718084474787568699736851289089729234078407355999044190507309553902797436843346986087352524799201947256487387884302433517671699570361151648385299511154358172397906716744365652783762841723128715712898430251532514677163709961599988089954184186487959398062096573445429487327184400819129877386331766410461841367780767841862538249398965107567193895230813392408479104953186997550292029392052683041430633544807690585380742904792257188203644017502747203686810704993693547608083714448400192382682240907800694776724403350714693592878267118081984742098281692194648063671848278349526411130580128326765693115496767883541614167916459004038681750760320938741726152145953944726930425116268485752973901982429275132894471627921256462482627898333005627870468088179900059524331664216755829720896927672663988145101881641938097841319144145536383085502634001864222634691175904898493482037040905040477174646345095715324514189260669328625491799777728389250351869533700659061015883899154036285257417366569205575446038946085289818584409550269727050942840800117438963717341365500829109065686545208124755612920991985272469508015892199081328878752544014511552405064966239159586405038130298297722692802630734439512737407465314361970534488703502424242726264202861934044796652183747855829231476835634112095655360944155642432275485427061177526035096685622618572553210677584373048894888343456225789228555460327131022725269501662392318721817220970069831859000249363098080412236379269888693928931912890442054632191210815097349279515568099692214542211567171014099523675392785324261305811936219894017686696366236818135075066674687256177513419901654285319322460795308406130230986948254901000063938474385693599557879220186532340326911089361634685607905300441830019739418498299915903073465037131240587145030664982630181858955994438545647533447699014634709416392517789222350947523291116611249295907879088020570393405451468563716055156707208212940960576635963813095252379644470774266331402906541118845048781564692408602012520033634504115274474156079907644917089378629925248519118519010623089322251145750866601583604540482973428615779419237004800535103048656247204168399155390882397180521880620624964139064604622164574787584363823120943525379524536753077708664378409284490223476690501943216127906129029197623198538379032007060610988623046458814415771223129677990758192085874254229742411842905227418965393426683713097601142343939612507281964953317144235414687112781298678706129249233201559643034313507851231440583543233077106816874742848127441882258381716645959455192556863234009551940257822736656418076472718502789623632122010504940674162756003330930821784150518857543448749144411089748345964747530863861398208357180792692451799894466507664088237091402922445332933678563801249449787373164924669137129159680835118325282368270392732671407601419207482206732827477410556866095877296611674122850576779308426747762673513346587427719155962534688073033431667106791807673579174968578440960962869592693106107056919651867980495567462415528990778876780200263025674657941178953461379863177230949833124430190300211546122505586480498483601908861349914035367654428042476482243937399567138579240339031901100182930867629567795948870618780913275825244534495267732032955069045422854708928958388362030893171034846161786073952812312224940096239688204607591775215513559925353769157823339234753288665093112864189256326073864190462018891800195863035375697017321036416493554920214009042130691979620559408498330974968989773790134950204818111938764869986170591089770441725051069954111234067664441193642579168144478188775983612863376285157243183623686521800332380840323861779525076846188559101676094065153191342530841592683254307629234235352475569280596533233016370177722799481507511083230211051535842404620110329626252394249281653826674387868454525234700642107794007921934899798494687109958848942218384983666075361070315161730474117453135133930304690476767004719270700195327027679188241501111581837533510182262018220453502299772055011118050242707742107238783756193963079666820441240388213852679024431349654974591745538387920507070454473207120970863857303968520143547670649568353540137094292271252712837351499753839826485335988231239476373552400948096050806029488238388734666587889386150684637061104155941984025369618416071358922627266154172562385641602686095828198337596960822983223659762500222295176017649097426709459280146163572547584045675324021143346235100985071301925456725310065812129214999605311371877518805435183580357393014317329441046367395306163669035847045912373818045805494099888266874555381973226251285827767607285117850650733208939682315671614553924916211703531287742721087854894113787642090854378429224625569437176337431330885815829747762236886881249872079804781331270561879896063330182453930156239845121475031799532625385305228674787250486221149237063269179022698792933373743664621244431179776574631839113977438497256512529094618936335760568097344051259169762137405844297638532555519192797879107163338420843054057578262828165669484383092212379273224789039980751379447358306024817367567545495433760853061343480535876790021691714082102576770389345561592915000240143952741701498421242198211214882386401439236859573869051953183223043815463722505753665546715835315449563462574618619616358060920742812346566745376734489531605952498519993494941480110995232084106518602070600709757858422691362529472208677774910436802651568254436292379870273603409282597941372474488132467623053623604144318362575526129492665814372521220511379829786203560602558237495510076529039944632349753682773718109466062470841429360955860809274697182391761852507874854039326092495818255756358013947989862514129712038920611297156559479097162728699858036912034147985035459219864574658213462870176996022387504251313696123964018116564272504261401626443281368214830906591286716345686397434309137947071699550964946377098218303679925212189956633384120887671463401431896451093208755302706038984271035418235895366781880643468834151249709259950540911224304432693466386623575098653831042970504899367035015701163888122901548012481362385610314314362867172343917297107395224394613802009639152494278493041455019914718197101624478831356442012245182096856737293563102433571842520373862107761188637393191235856449669027074963341024209657944662476077545439815522196026272422864890805437858426579284340184332579207634348049548206520092860439266869557173159133023605375489928274717511156420836396823663932438136112518958137642219073801552547514038139605435700980433568435499219703929924716306156694225943924721872892421024578077425630398553894917604262862730611317465904425116635036130636078055638216529062013138500079741030401956285295624512008962753995628358401026513709149165576899521565734631450969033846560589793527981807148039567671275931826249367168607125934847177728133886100665336847729692892443261369407204540220755722938438244964550410106684242143848720013330748108211890281159208967051531307229552422976671127713362976858411458158561310362922325514755642825639148052217136841980559574866451671981873111731366914877371733393905934788598462568508403302057588587986635815658905414520480038909985873787977278751934452598270629251232158019699127186839818278487911267895182269211224420398828242877758825312013005815229821207362473511563456481127954168274903207876648978822906456934060172591583603193161438077401393059623011154420992591284157101482272472628662973849468970040083266032508447715536797570034676597450051484081279038742541718176650694252784926134133245744138205570554217646506474151454886446425096903557887328739608798164871509483082732399187821046614501215595502952697497500394358224057029214608049464837806105752110823653037855173577607406002809329548973037780918540104795305041878209965855697988215048897921095895198671757456982276584144761202259486122446085833572697735409785459292802826593687471410607655996314722405136365912386967201991973584889677577315310469571262617398355974007118209079337215117389069389384435206415653778435187827629931433991295786174048758373607144892477097381933028909026126721384246719239910771150727451257279954952188852239611495824106242173084566202860811769990927179902433152271756856423387759156810998313759491947068657597662990108091776669316158792927722600325779145140009257554851730761088669247865403470907282275455422825070609289078523520986552144138232518060003344924919028971921418288611786120351377137159413005283537198587369370215898925983385318437305420255192440467776139803428879668458167270279274974870984936643688527784597230038133778814436639189577953095424189331302838650281006788237122863584696876930922366832157879328294589841712508476309020904164421427951377326372240513069493279784994527191453771887701918190394544504444364270153387436325668013659139897976403217781965847056478117306834352699017093441310127813194499866694087538175565105642080159755006098620087536661821729732359077842802710361615035840340744244815880605411423744332741908925161434489715678538608746563256044415291378747838571423194118705420371576656923509793374822579926767575853423752867856122610920139912017586337128571980195957312484075664458817172882952014567887977288766720562524515132524315874980083598982008751270432132220669448413601310641094469108335795307805104689550985342703217606346421018690904872641614017988070293430190812445950140853838607652850913768452844073971996494555273614735620827776149323223187376069768034096945617291780794310303033177350520085661964911777283634610198060744708026343270538917331960873357694863106440856321089897135611618079081061830906628938758003526774695283858672546649428013123402849361004162075257650577836398823563581143713098267354071743801930174064809918957371603082555754957554587580378026427257332798292277805250235108350138042618528042602750347519991067645865773135015007748491745998915060806019931054541691223244951011089832948406294338776518324216371385618967269770842704630157004028749087365606491919235759414541662682139652864207346177669061404072180833237824880092742641383802016535363167694969231098872057276828163480982270102144356355326411312835136273219989320373976636462119103256889821221785006781817595577518991562837233500545970088865465971097394341196389023438373947885691544483282062108000443595931232066370184050858658120238634907310600963055120939449315273553831264391758726725829663621461339378695767756994534743421428619211906448350525567586072010187944701572099225605914286293086704472245817984702317969279829530959339937339064618490674967496716152416809840496585369473637775853700310752752052711008028624053887396736817665592838536515274536100671409525356572946887020956830764394876179830074377576205193074304157033280676294871252213495498505736809990615170265733224510689655386644824426867292088457259014340443735859609260999078976378889163440703797011903896581007394481367802411134617545052487984050428282992554631430433797459988303493690825369961540012620569969229849664570252323473246399362064750392556076077190999442425581307612162127528903801000533736827612857320575518373469155766290512217429764250078279391442661034602394012535117100794059279198584462070442501538196324332401099217912345355519187801458996557198751994940206736890653171393035533326895720343516329864044092116781561889317758508548941257615055989184823507083771674059633390809773942008627733083664453240339992781279205812260491728984969841259188047591362251281172391630063640501336523157902386615918347637592652903209512436018409764347031438975111443295819822833258749307383404069461455194222753076584038837554799597972979684812567962501085290791052796996444595989029952265454945228416697484942037469303166658743829292258363380992616830498502063585561421109219591052130127175196648753163663224174821904725498494437993258396648378653249526699845536347196550495213687620864703397984042575206490708945216981177996571867705205546316485537745160564203168884516238222805854472664759791121825174537945948291209138487478845804802907895074921438260856105252602173950484112042442775406728808647302999033953434457604852791207309324299959892654489200820521236969612274407871381835274861445162307772558355005764904858215956087915743674175379873509442583209150261753680880678384757843908424109370893864799272777735873120664245180662336421943088057614635693762731771691107043019997923329703801035923933111904984360234085403768118533094299358440245824423793188993601472889732018420535300130468498986351468301073994886963709483207473073898977640281105243367164798112260599699624894807825409089094047746753543993978748521360495685937157699633911837997235877208168682287208593660281097244926907391396426403613837760819144444039598720262047702017263708469860955614491673200329373481523889311851056322123504455136414768248745106498367513026848074701648035089089611774991469871375817631818821647196430770213937113446074134504822005188859337940906625591411590741104495351170207641908434118898538817939506392128310572124252883554374864150939519069932599719616844071310667799161880824624961604390802553982129205953632843837109686779921778304916546559869827119948028747908082426454649718326215766255233740722785778694946026867501373190339406173302522176187899940983272868507232260696492212417168389284287544834079598826772596685756858818872579703397005761927197180622928763361591313494619365024076603442275157779766408772648536741551863700669327405190072868001161645824007188433696125468944222809563515462330500391989783937153468454881467187983059673566511021140247362169796800792799442345194064425534393875035606522686011463726645601381141534310820936136275672425561887912140002785861375982597479956440346397221572184627666501020800705842253255716822418408836626394674744008207251838135235061526085025397306671908248482806713211196643653574276811963632452612300215827765999873107182475778028402600177687878322571735257770790686695941222500153863129991187787448851881988388321121387841761369365221231063637872468983763434047074398047281838238249210481881940139994873158138804841093118519715240404771196214096246242296952577980861228323829344535448531137220984273319220134305549822448574051094799374798795451992935699734183317367989352771548120844506904875911082079778082321629200728149232793077612340309621353622493781997748255087137760301435849470794312465113978836305503791913688839862273176580979022735876409354709265222119737780850000951053657471462536117361152238092995650405177236253791786397331148545899384455404202264358543275550183821782190815905180114742390657870425401590314396655262830542627044832534846015607624735193750898353123784749676566995632637162679666608274872032851163463327767423906547990459014496132214440228776348857741636448181520908176595251159204117679081690059205055068036856231809605400742410179007188236582803887380118054674062740311557116785258496290708058113852911528267929321797381591300635968220787498002261020881744796031334167351380324932071771660073734858501065159107208269344451826000515824239568871533048176408586941614024732181971129982259764817864794897223648310507672447435434364966557312709071878683695981760784225257901056597569168694554777028302948598231216851371443421793547041748819077682131415754621955054666918970876861336842555040641877818062653194272283820575443555549205956404914360662187373918704733156587182425781679270464671519630623134158531652305366064517567225938838644012422395930507386346190608659794190602226931856335077825286811965385631284157630193694359398376842071286454133921270924184982404406185934187042382851422461353157045816391054255513643449255500447790796171414955415602543131751102510467641090288847491354673247041043799222729155290992064739508963696322306021078383863217874777171975055605639899372680062231344459205994633061986432262296458067284452965185492031539160152995820390756486652039270664230027274507144813922115839775018614456643870712607061501818210797448966208389142241515511481620184773565986422997193426996331588383598497671686612709802163764534063069432135231495834576149610785764864136714029771096604683513226599227211505206410514128497024894505314405089657395283888421849027860689880079942546065278505070981176973135407770859790355581302381508952848227689776547144208039353934144450313682225090346128016726482721870237436460778035224180180551408139234658531660412600433203288402074871866037191129641276596858901464557500887722563388467151299839657399785122856952437875841650405421677093277380088839418579251043781787077835595843064197922057989577198132342165985141056980049001548382985682120219537186879226153099013348180240509275008187193410021411981999995513414581737611357195214148243182449141492221428084007168581401194341765385373481940964623328991460980519822035062935779806617498161373610174532269255752901180752404122132509285699164311418301482683990174524184972058918737214291614297815339022797735377383266598827071640066515852434111784940618589201766178702205692387168566143174270587250562834108194503497688891717605580662587350682712847533345304920496443480779160495717657543306241777900290392424617961053430414996114731652835546817454581501575145741391074794646380290980487351960421838490522640893452060187457292226080277515754431390450269902072756167823706844920289202540452586688870491214688211171782682236902134287300489375041341982883227904154611713845747094829166063119928333445487307454266930874385189073163747654255108441652017372548004640044110729668336292772227698506650294938680655562920477037641859104428937038267784062676872482649311771461362837641925378769096458651496135139709300406888065449509495382389596133516406600848874652859123251830283288817826988149278845967628597463495486729561443060335420247565436402737481944787612927536490475756036118679225877984226847915097677117869726877567645289900871798530772182340151135251710604703512142241648675758578127823644088918206042851347708773264891973354041980216939718425248253279192294413415825576209981699113183045126453221109976775241014620682214173387121678118793888215178378683453737479193099894433096521407723648662433113500176713154204535255880708484129315920175053472468145775252983045651754258242260884136794608664034869623999262049800629331323903347728021435619712779384808790102970686707250682001717852711563804886765898920684867732380232085670743878939093309571451349113770961338317231266967080267164708262378114634148524939322702746071535422291586377139935271907145905121641487250294782579042661992028313793639971809274332822830463072054401380445446573943260666934196443840715906331146678481832706215433992280188651587660781533498243070164709163642646168482842197812065783047100888492968862648414578143763784086380644730357444266845560768130234922641006878901753921604956038548316664641572810982786627541843913885136071087905537030350373804089074233790698203300818168093706234309038884076548320393001952010003864578715378321636231530607425959788468416043906028068591376618920842137628731207861447193406410886244891823778300086175433132401212486865010841037242641848298729206464122569357423739749919032854024219168079383443660460340685887347689694767557002961870064879581852601753468621765569458468970436420781649301192222395922083483400999023085915925236633590360082838352840527857581978280338329401611269890966805231495463717876410539153859963363036356109367345981194114458850437325424065215117071843395257410630899506277333204265596413749975891300837889889700883332260427126453906542738638969991713231994798184775924455691353613944706440722473517453075582967337648507312290086827003348952099668277349877961567447320112072724328027511896017572498221905306396712155748163288805311141092563341122014978145889918069418196862503220135202464986298467886412270935099357701694328704457202388666191675254904819618837326732335191382563208061135243104331889172048019764148596553828937375822477905468000953646041919108417344807099499494193036053219721825883848286173217368626247923953504923251603398743969471298003041018386032995456210209236473467669925821178409695581260909730984569205327331188791112645167958624529093069465941492992145945764920480959727827962174386305348242864176011918659229015104382888087010174143829916663657259403625533509186727426937657646708664157541632986800232927445625400068831399706462710251543742767635531921676800288327760304387995206747234780519664415405364083345595897457006785998626311308529444383774845679676034380314172477194756281964585773904109118329553968097704185509518189340250253553385177191208530703304029962218338128440055963734162129072473202750039806626032217598364587103760828789089243869545403957042811162037449931695226129486276229308905515013809140863924566687148517539864310186122163932753511769856754783805323962217067532070229605762241187294557720588035378782493529317676702256246467120633870953721178189102747197411763303015270942804895992364249661283747519482396754306027158389827417809080826070990915504068903757285682460587510443074767665422929973149690695863026437810287368985203318349692863789721348167979948787215219719067774748586293736239417852011332399018093346985243864306104621964808681841703868228067574820163151079347982565479833789260201413642333765576991246564631665198871604517763163661525434774765039864888504020331126618472282070402966790917864329119002856174818376336244472494467413056749553908518420893553327145556707708826598753572564978681907460153441766764820345092016317785669680099451418129773786464768936688520413384602112855353744325759356565677190766500810720495783074467843540487501108536673575407144755702264257965843618841248411131157097188042958816105411266510069952889661484418524583038840692795862422239247147131156086973375527051156733385469675678890900859821263009588696194488518772793683796870091585351475185051041623081458362467648792765771665670160506343687558588999696703091883426691894369325737930233543889282457835956166152122012960761882978723046287438297249660946346315250427710493147142198187325251686075078152764285718150523217223559954177773503015158489894700863685486304448045172871353838380599813858058059923791382203211481109361619053559207914324741353229212039380007637684861015583372956451203818473495020847679059015092531558742374050691700874881948121188285659855334356426349566892737005654631703473204951804593451015015409736728976641903708171048293236667199756000617388814820136760149482160007598130733951099066354352583449743340837246231464673416382747966070735128487851171568632557163410562981408198488229376615461171135997879399265962762562061496348598972175328469770958848114560627602077284061058002880156046746000229947108157557574975617757980339783638015429689031644421912068522915713602848013700642655579403736571054887292675326276137800930354968724260965519377417325533671559630679724627325889657954271049998505524414588977716433993464375077648450435296357607489227385706600618402722772629993875141103768839798680924908786569453435849391168562418688821938333054983037633504638029277518975835659898816591884814989738569856764440754113722814689014016899164812507319920766199572420261782690582294457358495452801856707735032252866756397514762253497930135094540078847245207508187177417081120395032218281961787401870839168365474196331950416867594030477291427125908144808990665512826497351592456539345419169709548327219969393252295991532964455547929008805317123186545826279944911925513284017008855118675745936768598488038270157048410004774722211910176423334713798157361305855777548461434852427590814687950618014880138957934785247196706588455482118466111014634101364010456151972086138749570269021798800101635018398943103628089796875754618513372554710020612072558606261821911682232345315610297640686825554318887849603582457538475822943566549401199356382329721559030327987320060907801972513137459189701301493167561118503475551094167975135921632824238910286363472654634469757474711556313969520913658028112394194444578399480637744242274301800836978672321363903854957366984310298675594319513725000240865712625889752983664554541275584942397483784727846296787824730430281720208899602638201678994995218561461693714560421279649101806071127482748856249443519209046019525842805370365791751963148578586042134496737843881495007292995021085382159630754864651746456317300213252123302951892432221175462834208278419461524738297049162295579760727719598515627812169679754649254226089951113782866517513855966431394111280760156564903362946387539618020372534801114569365236149453089773619598750351212118453002121304464393638494253302910483198569500581616797563058189483676286959839238823937589825411734514775186855957164386859944339528839183483942559620384041642834468743887133351768351165185168483108989065580691142881386542073324791437250757622038347863220968506243544538303488449610766672731257778337422517845892145935653360820056231961103844800228774162016540365641740280839622187291823553079722944748227183395606355249830774716404425860462622096960111223670867622618800924980541480577981588634590885144084393475369135341185149147247753917551293300711395591826615732637571698144493124766766082510838132837178751357296547845705301614647931769595271813770280458971706719493459191186528315099886454044872829410145720773678710829081726750783339156888788942086907252480595640151532431172067774154840105130124132877265719302527525693196035297444522165950617764704472895726525766445074535861130952849326770463737515624816290342248035558385727963599944933954392220933133169717836852288302442254069009627634412042889887025021968783083051587698113613624683285196277394707865913035655776599375869773366148779997176076905006405223497777793817259818791210002186091900343142461211799052313307920344557194407159082332965818620226355218409444162552198381465854421332817563434709695265539131321470114276395816704044166387414015545930538918053881743192195138800939684566723795359305389147655892064652288454992353694789562872310497756396121630880073169781956735136341045472766123227879104027566751951520668715067960742812151187629843853329547576868905468673571504301489517943297029335104920230731146412463759484190191894317082109135151980485022133302964016798550659853650250479599269358379906353169182469919639307026615744493635720051347841620961918709270795064315216860205375623059372112231521094063888603961502975464376978288876558949748152321641385021609119807612597306851191841295398811109137831758052413855990534769791708443725517147754742246555600949810825390575931678685532335386938544543414958988220612089434525580667167713750393776330971165242351192270848834247668615474459149505788701259131029321542813585263235752770010647809847907804456741455004384942600735972638044364417890101218497252348645556601886073228844938007563229587312425368934614222351520507725490719173234838100260453803635683549499461641000287143027828345343785971861625521159518581187654463213684523324297325273615871528361411348626403863808101314239570546859491148062988000623820931259394476575558468794448719796928775882360462970798417167167472264575766240690667262981938616354923766380320454039559635236981205037419533304170794883548367044349408779411819846131052488596738348068360567548154399383280758107206458296235628051093863831014262848472885341312454811912564129616795905496469737058407670032598412573282589546273898663691989908259508306989205298343476053768694662313217571230547985238526090673810832208258975573484050790575316359372667630425136629594052514919023341435276401820079401944730009293459905365097264333052323467354071428030350828493538697769983051412682985431007329290301955632360303937208229131677678482984812387062310347655687112919296338801068836303202231134256311365661352736959639188342268218378554402681840620183176954484051279242759140195623141695980566397243213385811084886232280373955383806771061560960007726191029598173523278277850195813476234638179687623322623709555463531609619451500475018045296322817940171897907400473397080638274121227767549800982908616777569302638279596267598281843747958496624430052132831584813305405258580666313231875633886431819063102654872085660043677362138235374511950881309703174393965841483441811798857973649910600626726372974740287857600354675866148826710698386551811698134552323975914849332370222312362997719129063686222196877014821875314350313317505218388255194089209051083717735849089471179520056533359853157926354215695465517198340553353817686946625504363503370047684693980995225009203641853265036094740868172947254582947470818551568649322721669552453989703078422946564532592624066552020906188887096083364801130548195320960953901040126539807354156345506230926685441702660146590428825578805031963364782263747641104551887035738259649127468680983427823009276051715455702041415420605292851084674432388291534353132569830602999112129454337100787248364219718164575842771388506460137904037127009638492678052460288843020711985612590839025621719425747252248608499031135889176977470772107597156289055561870532630723903448690843623391343915284037997259975376264503612351892468059871649375087872694252110652351577327075734655883488816427042712099291675261990898528282931160597307149272869588313547311493528558036311954413282347760468169066553146153385772027450121349785982067750233557720055886037236152718412073542026180285781185426875738093682749298927472459913280211839665091429573350545429346393745081284385676434274178526678889579492732883950028823540659695886478078847317719348852973671920806447991975274103423098334234891272226488258629462839475815380892312607913492564730146527923895024585000612552699100542935953995689645308565144788478425072004192566900616683043740710684667190420263786057361601219182394731773336689467043269925620668446687997453829621015416250193215843154338605976942137207403341899641040948760546488916585738290090114018307706692612781160789922536984445065532638354233432039346674720980023462806864554160915208816562738731467021124132871563162160292371447895855230566625604545335089744925798719521925839942374001043128690624625038732629901682409836504546780669470803264060087713399217438749052829767691957716199441994246865759047465805162040049773062441913785321628563085256459103629157806715739954142591723182613839074453211835099430992009520252729501386137329433245328007986285385262678288357459358308761268619460021179430816010813658434538211955954192584112699657451929528445490741734203237021066995302115299018831294934831637635216989980102275502314388828212197282438948114439529391015779389290810448636042134796601614518922292775374756985208380097450457691650290428220396445263688054538381329132067972742071719998960271346471898054888403284486991984686386472291294966054796788081737498009422059797896047027042962516603829013765632230877376336782732998779906600685299364585806247546023976935162330730632370196056310006634286683315351581521462683776187351991635190862507460371596313809635787441766820455337139174225619455824857883427600431017630447119847086766943201675970988932568517329015130932028840619929337827313633442623232641984731060610073116789895200569874034192295984773609911998635448784700951876895477722118162732372879003226083205233216336266347386792266088259350205323266984517531951404655807257506022281591436409132435260775588133122136044372703148338566641693417849721498539968459986501464835846104041660155784912765699339466964169559476634700746391567654096642683798360518262198597782505939868775714692620882650416267074717380004640580180968900643652646414908357456468356294707074407585366254800276113437634770550618859204957574575059943838896737883567066301842904721080958938444458931270359087855339551026619016539983495586848854264211845948440831767573637338481377959135599232865263110382644551198842384180137114033711009138264798037992057330049199782832323846671061119526779039873750966371042873776030530422640081119485250203175010400501272766002060506270035167138642730634794931338736458846176225325997874904243711110315138030141418577916832657671011394577700678930921924178893649517272184645115882214352624436701304888458161070585627072541578151717803033900892542235463964517482214196663195547487754748616916498910890172885315713374745123056611416267983930821752381165721719442284587731815257971919545014297083240091742996854207262806269777014266557861181387340685837989289336162007524748466718856406179052487298624922455310925013977556427883670979178853466811902928830709865065748632703686110159648218537521588726356709807434034431112093140848311603211698586374622532515626782852654559651090552317644866712231711501108491324582891258967962696781142870455391939103407207929767324042572211565008766573914828204954621778961158320379506704170380311485554333947919371325770563186277731860536271998511622257745804284629703065173138667189537182612877262367694938439307817172920544340295717332746180682136824627309803254042545906843447851031903515860954020489075231718666543131448525148998839129045153340216900736285996557048997943952095561443269108529547105593148014983355646344313206736974975822501548771601036392025713282727113418348330316828942280521167774083720537772825632572071102173167804538554444221322422294753841996332134773985838852881045917823830010486890109161152091595267100233414402006908161039927070296770919510725888418209708346521903796917867204716258140084357193243749395544293606994220400602174692830544847798138762437969786235716334388700505806387519236395656342913535651019133248534079587750108103753593021277746759457169611578698397107228777489429690222826804950596652161593572698398200132728461068950766200940636020128432645187360246404555362185513681591601726206415318439892713495815495146674248100784709084007366874996437713711848949656333007552020233556979522424253446850420171579863535826282168641913883281511145641598606834292591987976432268808587615235839454212201761658081469829454582024815876360336428698451063534527611265400456550941172424111897156220530007634065065131207957849984926264552532636300017436573139576556210071460565549700552025667997635657514004582246383514983829785777262961180223318351871377438956520225124378983819481973390820834348666452115671952936021664833627412594640788735508679378558415468184535919779968512054477935931562966496296803137259241141986052312530489647125090221536543440838499877029339259112076905700010569878960787629471694377710199072538633199477648005729896693662361183568539977341532107315362639894271181226818241175016609050435028185742015793641362898146007283458077677753584357570123025975853544977097536031557291151187161032301677071341217262285218004335309749409571856947349377635683186059945592993869497257662557571635501027665505815895695085485069288962906338524187242678053374220140855934121361563141520300650031452427281269239602617377062313474576024388575306514775730221940805698796480661639964045123581113608785978879185909283422670637258961052893923253564169578189286164032011335550604473569563023527574238372694437657584729324295483826280325066836677750617080989947632828830746764295480913419616394166854043148741677527710065661902569850258013721551846780581979963429160001712322535055596981290024696315981270448664873253170526504267367565020944659798562034717330386380482997404588419244255911568694881307597622242308610690278834357832146323468515707336831136365866544797790901749226992550044985017730637272257836116727576664724401350698132183643957128177845279093019604254490115511233539801734469042632757324957181732459879357304700152569072956702179519851350772809175918398372470947674483687747118167794616974304535841512622276403597579425808242299472479768930995530958218188251395724148422067602102279298304357677812438302157697511126480251651891070526057537286184405854322641684236266745816776580256236647971286256845330892973656288309094820046138682509138271507448904610588694541516613749721109734763772798143466082188048287705973642550605596840789765074635223312792211052393397200400813038395707208854820276264244507679610644813957353532189406082440131883487170288950047326633712439831699705510419951443845123696042850713998857790778151727066304507417772902048749960792174232965406061632331507587534193916901305160871708437044572957073490445229551374631216679882802309155251578453571942131266614009181030150117868425851424989077259448518989169531563686670403618381211128088240881308407068593778715060772532886165468450769384327759490028766978737934752744000999356338386332815282926580868214783607943680432131104795863123049047336123995490582994409346482999453686907505859315998494081745792878269173010137915829086308251616835624216719121297777512444107788175969052882709795548105422702211052095802675332533397310668683888733399327660932548808720166724580199606008368970459082528389715779420611096275477515131366151621593485168312138516277424552583138493604961040290184933736187330109819584356874172113266084686559173319935069840740397851618084377157527340884598361490558619407037240177918176163105502704693237261841849794040397871624540171296986602790116523241908367947527224705234776609444248307650666977869790841332008397337910861449273579104417355633872454983506180052649198286368782023014734221046945770663831461717029165982278357448845744172817208697646211282695804094677842111168380772375537895515624534972763155293373034214330435231016061020678769044003118768427963827182183730879550363232775081107941896050011265060921279280379585880896478106505887831349364575686390863044253015860557651403375108990135912153590433305835930505616691804518222976844195469751020728738751176786605495489608140408438431073987603973417809509591571667158701109108462035101611421351798442072814328666499922631756819229101588215219671190936932734674959560239145950282747543250746796470549446047319178718637538826116189776223580209846106773200807168179421630383118811484395672895533627725595221544490928620942945762730432591357740558691269888089199557490711751919596636187205680979878501127677488058771729406258496996295121166736218914498736679065967621253001669822865060311885247493230156369240753544142731024448907887268102120175198648635440986514150249706587833083514448739236611270428003084229337386237834164542196805495168754806994561545345530518327705517362780599175792526396507171733525043940277672735626055952262237710644887263743354952122752977237754122319375597547063119120193054403858060546149869203335807829999740971304907144748612316909979073780176376688078155337188711951503645813437024716156406844804576588482032321371425462006796756169779166149337671459402141587303211031447793583136292915251485260982457441250623354846147992471502130508235644958045451588423552207354422307653825629062461189557831715016918330502516519670695155741052030563976705313034363612793083682788091253073573720791185833601614958148591862065491219121925814228314068600978653651925799814089445472089239424871976402284725133287985652162608603838917049641054046486589981891528086499797043873297232880011958348162409719297112074602829350908620718715948783563858011910315809115571713495341784610142458876612051817007686661035367560904720490816360287699318499547334462918899568273580742075170711886663707867241517406733775879859333980014440142958955140929307088003247684110939022121881949009818596841410751446258639786253759067914736783516375017279701424412718448851166240263138153150634693695095527345612309724650268391124349172578542414426771319044897030151709435389022202378454557157031063138633968159290450398745233900387699501556549366023066178988687278421614323901369902627165398231387804173276536605336383508095807710302139565773197499181988442932108148851144448879481499681760009967656872401511978096033545772713536116380845652456705220468573126691883335503986804595436294702312913367710426028499639203540287205874009420722063283094919042229849613164743927750149838785046869544503465642567587409286661966451302073554172580862960388789215946685902514373584951763241575206477889780119789199443904300307219602931719047981637054012964467749677633129091546916536879447008334042304831652781477284328224671432970404570882174715979720461423877237772056370904959829238022428538237657629176476477632883154942364703096110249471203207813031218677604207623146950614765893128570728621428956475322486933225942714392465173950990083709315367272428079655003353062623982469605935558299995583602965361585744951489893744870190715951393055712543511245973681847700604973647612974526595235711365886508606814234696503288239248256595158682783824978347338160248809290947403179193263551724750034105289770819149008397723781462625696936580235862044620845026095966460525382532203638873097212888278420944949655348907729029366547138349790032844978471190694339379187742914676195877698054029122775515014928021559017412506581340741052755132781382084919655701246836803667212701179786352086726298738884864036943560144627623205796148215604710918594869511791747677294412175878007727841225202639731049883141907946845532601138326232648864120127659122221552480242469920800013626337330305199893121009636377534143610113908052505571755272083463393738142970900474341332726752952464735751980872467586859322982911346031616595035635754104462408849387814300256639423260340011844375629421774919868259675913402551739271674899698211980902774486030335539453546056303595937438650397822654552427391042089310656409534876118427489288291152459408710072110596808508386524179723167868227794519392598176195507695795365165193391058215963031574220746012675393390821395903522796543087583519540870979125310660313482829917837610861966298909578801292451234869791176420922162512083679159271668851342894427612183942721148921375775483363565576406363442644226394093660829671637828482256176933378274133266017516180414946101193716170554895386870011673334439596281276920580757852483690242538017118337866813885982238641626523574814612885316336739435127724487653774304387366833542412548679737541078217276964754083655378278233514462777741829158447289854209870591086770660803400915245409375492345500506962120121430351294758040432065872487033978357880458039291047772823188839060585189998300716091486164905529847140785914199490494517016809698264259272068310965849000617231933782552836354121143400264873012546429260304696685281367144743976655766293115294734281996101358035597805994741269813166810324855209911318007080235271887564904966895018376058424118632381445219013501901668130252714208932307227902940757589745212370744624339124398087626571094446496655477507427740190789913087743632105472891959084710695411012460296104104925118090687457602705533103601613414428125084461202335333247360906453920177575574665365334564861959178491758327860299822290692463829269338018296977087041790046635104396338791612227452843147903748922355373281521958216612096718692634356354379270773120092994202337108778311984129723674423499074600162991875654443977715538288342052472071187038582697662173443527538856232311828699845709534015098192680404158143757917271830080845838879507701037640424391871024890393532357204624087647500315343801119314368364258297843385640384367137503401756711873361521060277229693496499406709113451494703222539441156105895768614968368765120690502577211638766096383295378092878008310811926876494334625330283795256904765929379324408068598222056123357308496832372176609415152418197368068052815328590611647486692034906934511314564348836399810386973563183304816613825887728753096057315927125103060228573784182742462236668064765933843605923351848973161566130228024501376985783276674346661993921592031658334433886842846751378985738366169271831674734519324697349830722749842932691408550094937282276313644218438248898958343669342789919690821154604523187803414511049068826442516663666487905728216248804466377680931119197669880827053369501781922162002342822521563338583908329959854936269360664341691730288615519647042155159890793302302363220163840354499973486919161465487642279542910032229477615063860807437948691718827851762149057101481611966287603600181584374883844849807219100621191206182416879220793846330441385061966398888355819359360076227720390737759176872259808653300672343700594504792773244571265595445475637280885142666233906904497582357133910581213655271399563862283373386772156960649232500265742504704087794560545859618760257699614919873991807209034522578060171469356494307982182787375081170074971706364366524596008929589082187757883843561895527363412024586903176126142644838932773710911259532331570981476336706213318925861902526034429664185820095401100082777919333081332754408725793249688931798724294772988975758251682677003844869427437074130499599467453719788227943398990979211338885524967047070627196393762082983240886420070142862563790296080220550475491440846100103994833280224184478216233735380231592235200692933509090855027742930077441542652039811895743581576987096650624235630027507414041680008693466994525975371951965267270073645683864399891571646211001159382027677003781938966555600028368678737752651475462431899696406639387145866906593707388305903480521076347334835362098890368567384195655592635434480214416313720585671517389439460511024284645219123974550168125316862144402202038908377635369229752100129771229253198397972217683865846581884708696221776518283124838794074466025787380248221811888408217291108398253622274421090207102195893116434762369188370604224171805142824312596573256350899883186606014018122947674270253195484820061838373963924355314861696836658094836547116975379635160168391634545698729958081220793431022361661269861972407434810864186594051803894866131352188143402814707704309562499479188442717375893028439657699760677035580494306163472027434368371519169110130365990909926465051687095507612574219577174849098681133235213685666656273534287623955403916242174974587003633082718636077196022588051699634382585153052887659921614191160235535130846463888106489060226864864156502929133140135871614118462672137892052451371454406543704645127050625098368685957800675966229585955154965372028391796558936157570085578052291320492406355715607384718388437657597164074194862295794900524461866848952426020991673876128336970258903179621279308834119096828948140317758976446452138632183911844958552074748110738283294641636151237962641083645146450671769901651384306137017085940403041678049201821158940064728851026332529229406358528143934713147158020559130485694233260972458037910087255368422685105497284616947960472957780888048732064204985331365784448186404631501798182680948699604474032469731517833791243792471833993712189808352708133145914264497082467198235261833879677633481275732720380196446280539476429245788149175130605868923737012834693485880464012664034620580943086376147176803755548662456117476821070744523441457967659220789596473071379730341951756821605995502205448067895489446406961614970374870044475377304294435150913849795747688221256541376720414892274117407753242421422283491915538704675801526247643522767795575556709979631235536038722741368448633068881938992519451402199719073665862876923948249407774992918952363546129138998068356087625088787114927965648778726610050760690105993046130549007980702032748742745386718506023324017405912040288572430183906663493450299679656968941497970731037614057361421318353718281432635341033401321761358572440160906911590415440978361517502356986885889182680110204598688865137501508287314357022446516184175552251498197920898473519578331897123911032010259811878923738659738081160122341918954671594931152369947184721037605018915262786372261320691621860145665690006844458917035698295538645893570558722958540424063028162858469367121828242348948812752522744609507236944466014463944457780161813680522033985736511124712633832394513080125847744343623561670479324526522518245446719394274144887850069799008631875699141207305153186123529979382740341319260848048928124673360437636050029145087592901229991264009516447948143529140981023674361653385586887366572415186014959408785974604208112338875295342211927091437901103020565088186820781694601151068129802812464490882429504311842756569419822672616163380902191832746126773998076508338316546568955747573725734602246765203444586647512714822013024998959645117834628667643280429539125770586394259527100534955128007575381856348737345867680769320826869467308372957787023569794506924043749557885656602939031954701832281220913647767808837492429339333788274291663534651223808175720891518354925290754219899760513637212627767580516626884315694722796336011804119571457988679657545270490062977909681544462414477857497579931626283179347495088968749227193013642996471806657291590270692302681599510223032509139551593899078592319727868198677270669251013824654219978914971025975493632614761826273448955450804257074233449495071172269610692168292217182626498580672215618715139845761210533121393227629521120474141138173229837436635801884985095942059878955299054712431525890715750908521748465653210527638013791797281395211807147558216449538696654173065006667980889477741785366719761258086129224185486561814106643966997005167765822975854643214640385046405859435075743095589441338577167171400427040485552769456866380339926431337448565520306313777842431808903314197775656521422081897316737975340965215380966266906348614322788350703980066872550555942864117174108419508188820168827664128670034101445968145423586981516584307738705570354097382988496423975402656818551297086326781339212660614425376504042063900215648906373773280267616962039985948749756339073894082077041866032757055331256651434695162347383715322835780757690767187782997559626957127018088116135206236761191740280457635493764752162729343602926100921102926361231111997506126308258007425523296706079112437329607578602807910786658903674768972424590180335904634097019670371962861191303787966829677274110420733370626618576053840540969253395247227602832406709330568719114192163918532486701520104388836868797407580560248039641582044927577504767664934651011785793112894291263344105727446606344454123405333045071601817852915061567898818155334352774898644463659713158876080381333342874000616255116364214471871937157218095223741196038443749475911444510698657339577908111432271520818506666164123119035221732212247635251133911814606613602147364987798561465855703918604844402527950933168538039138375461138056342026523024228453781293647992864036553410882988028029012870970278568315741978482954348381259705033136449946360215275330080599054929687832461126085464334709382529857022799749394231029788191765157728381047444760662846988648666496878979534279643999641328277123936872707521458195315596025018970595468846591682712640338182888077282805022769692933104064788556977706896995337484750733250661234561850554602822567551276885251240150302565668920468852522701581271045374365177171406450625387016283528588106831050468926725240021012922124151202087316651106886185422521777848114265701455619825960986330236220273291615323811122052746232271205094163391792127342635232201662015754391804614951068145320690046823696012279907378073377788509987970914433719749479765007983600421242026938921239953323294819952450386289889399797160939780359943369097460714635809978394896417328808654162033698862520177289209753781502366673815322445455875720893966911563412855956343964190040227205475134793093651641155602667492040869660241506273284773582915405593222496673420794081711225858915575787459255836446541738724522818919744913978915862764945260940770258513417083612487615460573699395640146154955354450828851502022469682127133482387996975604977619702845472867594774215208390107807171043202246392240565513944101381789764678032486901721861934589458861683528864481991983896472843406372224854236825569094482547176661104719043233717891774133285272051278591873563508459188837035964704756127553000236431625579506586576898454223863655594087986957679781255386872494332073624240761279105079517017350792165810512174060826163899107083342860071423249982100227035235453616612317971446290146047297943239921997389977975297166598646169523804857583984817832522192835210744640105975700936571260924720224405001683329992469763820481874928846372403474143007811242332990260580372677139189259828031689617343745924278169851889547319074516006639569236552099565926620476596800108742427336817465921723859395941656753953748394263953735103744563246425305625819044370233982943107429725048251271363993358710794196501039024511367221043847737578031850011859425261282131422347714326484762560537403847143435963233533239047622380940483991781230853110114847567337731716426736695991541795858084514774203140151967353472760208932345823587174524127063397482681250639207932304036232595301375034077407546780664695567396378377130614878429340549778190124732889790919661984250629422328395628659402532664839127307991735326766900652281455056213472135980870677681111231748112676229517500101585610068351793385045428248590199319558072364993262083662040281569006836266162352031863474340052686074349618356756392209743080088900084218765074176171924158793801190750208977826555150352817450626137720570093336919905611066615617051485821866236923172878578379533325127005664949318117324573141602978827039646289944018999638461788694699741245069986576854617764124115924804174203398404045997539003425163558425681796556052180274308674529911857062648005814682726658561919267059984166974366235690529932597336144897795706515456405903287967653920361536243046369985711766394190252213088159757804152249756613265447577719764287059357379883281282387293836554057001615714082137857418985566144368958753926629418972831371660540979149835251739374019944950145151770315466266579118860799699541213115325666814197363771795374948270773875568425502319671896440327265228888696463760652465988285436420885539397769018992700996641607908038185113883608351867502359076661906633584612438805997851967372140699966289656414365744457557441843159254725950128158129235897328447177553389679420157333878469241038615905622962592732359412867191632131153622718073851928463562048114453881292091203809221578510637084538841164665052183833203955395770676297822889407157722522193315620645945664170463286404858946168218717714699322319461847828246058742221374657108483638437822188315789440586317904460306374303970979057035213411492446036787085889586605373813069855391401077543831043268017795635163361370204768269188058664734351411488849478944750480088658521068620599094870471031787769781896075592346597806520255396343342304048184918798594521952420909304610741646361720808300946233502127666119928383518315015353533382182506085409549791582613127252577434501945278716480885496282419665614334280263156700585035412545242332713891965503126315399278753604163411612422766276193177573385166191595806533660822298676915525303700005941056022434303560200347438837920520588723651228659085981711204463964679726304863605233610091894288059764434199812708194429079439492349433526040726840689153479209614128841736779474459878436139649046629654872069560126858225519502987878150354677683218841117355586161354272946407979714863639497110225496043994082024683351343213811990722226047513330594329003700532465816377775417689345727980198713434179326666459393710487116763079884538540171402481059703178832112996194697531473369443326852614395518707850112029452820231511768249201346041889439217647325060641360182502187600275824257796325303141711065949662560750350786142833332735917598499067937924783308474878100981387194224719750300201289205356030120520823354713236108090041438965754183403135000007813891722447982828282539252269588728237017288282007545510627952904470997551237597950172020704140959987792576153186888528983126845560134468924007499632764496369158457419832084913489691645626587903157167678589757960085713058762438334634059764665852377821404182919593015876913080135895402986534335555364671067617245302816474749510823199149696737630529072818343221769892424602004860992164703100958865776859723931940280721702637987673632916441168376028206783190945578466315277561330403465216999106077219577786564050660968530560769822492877137535353428322328778267626953391197086796021015995138327470685070139097531325117517008566206246450710185920759332654547199327804230756644083241148917496197281716661174454921514764198173697120723689268419531455507809961115685355559009330001381036887307303107435893526816993748781516809969858912722266320457971023361618213084274934677372164352895469456422844088675678186234441216774273074111127015004162440833240417125445387775921341550751847376620313552705109158133500324861560235117206240499074485675856551947141167615291936026340353472662109143912810150806709370511536862869065273241749751512339240648052230544970050460258649505785221797645446267327336213120135917785490063109097326018064749979372761979580527057832603935367466966812565966033137093048669884055606202408269097777052447645044260609092271423790421046741137267434670681586978058111361622305181041084770302129253090183066285887982544741650387215091407769922114764569918722903754343993226461738203580045460914012889176064213803176039092892850289250442299643967897303993630129990434552883660702434949534040112144785374726484690115081873705188604143415334067782407634747597445770145904185453518557397493882983880218731338257046995447590419038051612819835058405185077048457411664184978998740338270509826071529793490881682457268608771030253310062166212087899741887861030953455893609393813577265092130971416023840169653053218907006969268822289804453629355086932680888208201905223963866386643767067347795222626280400011489803196465326340681323363894475150826922002848579811091634418914740677296196506959715810054229836478700934221507300630360776943054567370764545940513586616043671938941983640570319683639640678421288544905517181632124879584267331758048558307938142447967134138797172215979040277131373489357306909390447556089789144406244584173735396275244357865409110304948189210741012781723490677242069586494226102073763506934182151320050263225195547258169407204865924993257392785703671475835232483688837978006997134866994297353115834626258476884064533413217613147309405676738005053544322519818668136483088843923182259678545253105590909750768986707288996733823672143461293072429872917149109361109325571997046955053851014084113002787776320547317006428611890111672567091534450091374452158303912245090928507777829063570624018635586448923194819643719480929424834190532891702937989008900900383958023848711332640897671806650672940676249245370400105044728269807583633839147355277491036462084303731324480465946638578689495604803411220854695912237293893747712664244730250028439588829055664367560377981698445182731867423053011105382697512826559552745141794989076706304128470648387966005146555501806466647938675382239579193530541079412304974625090252405858698529671715996094576764404751878466744121891578639980228148298313766491753561844616724518177811294111534356087762216480817431450137504955300730322334587464922338705233622323086934774830726667566230794686292943617555365514979192474032970815561495681264794013535314511412937223659868219877195932132329166952943731912229775818277210521509797526260432536190714588946217622762576092798040861240326643043168534957669188713649663412762730370756294438152946059463842681754050870554254162838797821711386408783835609683644186716027436612921451965578794130054334591332238833791316418681052604911406368265605676146124788418557681859445827335195027239846053644809613362840689475956527686064520551045844001160407518688104224044314448363164616420511162491182023078692390145197599106972700772421045377440982134676436565958753034312773396725965949719509826715698334767920759801712622809641705434558637234372824674938154278659946634689759239461195512765514635715735002209465835018886167158637022490274948654307857608764365978991052325287110603784086579491318263506289014887478659690392743910446702937533516578158767225868258643858450356716144948603784671297295252880908468458959592269342657075595662453515926995870991200036395164449871310147600971612501697251546553544109614115128779316753397912896680222885809773923112208842319648432059392886528060459917407606159508195927628522061410767427722166167228791812055259073395555970640700100690692251444346945965801495405975188014294279027713428810369346456030204701272927749890702057713279225989200926165678844968393937283931029448535437788771967537202886813285279668290354387049358320060346015782479303739009165532378192504230178083370753629362397672303661420216466422640623256537214666986058748519572618782266091909650054848183280481915751597842493005507531060939457686685579394208046058718993278915304150507515376404643598855905120460715008631292186918743156688915536242369420255981117816959428201823014854063734020375034027813527241422071057477052862246184980873187745581160876468695388694091693149991090699369413201636774763825427975655973011164385972265145162585048847293067217032732048395388991877677212251692395524354969574568304062762696461303386227802137918853022775520118783826154263346983962623458098404689540177867663088399908619594532924712946672294685751348791615233369378901050666965148932548495051607674181012631189313862230301602043864032368292227210959048636565327951253518670815202934151084717675606400841186482206412871243431767234589378151558680340419298546511779389713416143601719320006623568685066689685525825466830306802762225692944416427532945112708875313848053492703707369174092787820334103580075859897173166784860470370740274919391254438931118626514064812777404905411842674861552801994701495614353074272438541771864466181013458299988020749772210890237084398538734731143600908034175127800366713936047488839489079984059843900055041620779025897045890591568100371803369053386226648228753519605142428733237825964817544542574723692314322449931070089297565339988956708372044220338034276133017810603072007960810431510667514347681074747370160430715300635545037789371970147385012262830539296893538573120007483221772865900614199724069143608417718332171197466903259704205296357346581950973884220224052610429395851809139229175828627062783743075502761680395813621165508636585025117144137219058908573649990984873368202918620908989337534130875157965424274661069306500610411768794873778557098734475908699563629855862702015673795928655211918083006276650808463632609800171587556596195238699179481429026566913055356633250484343852586326637744207814629990249605661302212180448080872829414675294915425690137226327232199297490895492991600532459627843946258457540328991276376498680903963159053405660381058188689471875262574353214431507730109553382138488652892274871815471419016161604766230346770335025319984271190344038206271280043958913190638473990242166640842049415607191330841767534138835963764561469857305778097040004020347018287043695009224021279441781540001805722077468641856042415242325209944899429827823683253797709317560354364383878662709623250366528618252515697499220680204872971026327585909588897627176427923731355555031362510680503953602302929141138031630520062336480471757239794006109177332905637206938792298140968758701408676770528830700048915838666022381007949179240956359161116523554315787209248953634221866229839736073627199807169375582871986462437538652877820828629050447006228030863047158390655210938116787311413418731227335705895017352358052914460441592859117010735942867422568368508733159920526204814183679475312183827528388687757594406513257280562408186997209436478809086452583055132170470238435401224753474366733918452604549342961106991592868689868387101294273298345365384740247485294841728601250155156526839929325453410730310217773356953594423766618213975898197945939215959484081801017465926415710346673791687576112573553131108950683814666381473122126656249677374955733527169068932955893897179980089391063003778553885574663081402145057147237159403356427924664338653928816653842131176548346437983576770541032241230322018985826683579647429048629818507693450238204426030435349111515341887954732087581897942407789941679000570136144317164175494944095948772216402309966859515451914966589748665907346034747289011874119253104453394905827924444605875305006671667459611040513634473947726002398082016594943328002066645091336641105483799342879631016067188023571979849032938826728329447446665622790379705869130414135914040624156433922607041175532423204473143598409234362513404645888233293240394277394155771607839321794309826837947319905106341772745648231619114694578438326143866429811490895091483682668644264426592528801120863853270104294506949216937781251619429880998209481700595524301403885734466800631127230073968173702565207487767806065784386529899205866141318530229368212380980539409427616745530164347023295269694542280242959150211986487579772709032414669295841007097668916466577245769131509571313557319909631530392069655402787764229036884681007678068760763570219667008865671276731985001897997796601607946997032921881850226212304500469331326080737658507517634449687378927435776417434166243868653875884993019096234324915416336234394009126837864491402735521023361851060637834672769582873041164333941516640405633175689331064456156865991274019279004955430540210333583805006906249825967239221396773526345808748242937237350996331726446040885205266925668092594229443051256068968493266849832446056515994946369356480739446544875480902212318491701860339886323830150023606457578516340492604259654044509672656616121290936823431124862389406897044770082734033100289434757192766176180320945730412247618700970662172840327867984667138335858853188668937029188007139348078838971279313294083670704719312735964886135874555328596730933703272203922387449938729488114714707245672566550145337227206250488596680351479318394616228274744223808384477295716253799604731232619001488627691993173981698982309100150132941707482549381232115855113070839497663335857574238325831785273176935877651387285099942335868594934133737982087871960807756087626640594747591678743119036438380899265571058120659853410379519301217402673387879850862574680895124997765854644286888897460536876330272965118759630608771476540990128274676992700834215917605311504178089638747423986108545493756815895846194984408953712748858894259920361817960159827333397782075800381321333437606583370029906769057306078097934070058961883644429971381573451672103991234365207901715642755774675250504036109273561654728871840552445334637871802103543542583197382686991663112853537646983384479147274381453646519070705178576925973361303671671464805803526028586409497253685781143673145981691660087007172197848394319312009069934673729770666801217793115412331202914254483678712175893859188182171582963542079202687590004749753260496827642531084512461316453423999510625568537283729357293914242110097412793172441323792106046187218278231007473571296680262848088477787592882762380244659663717067506428562527233825748305693271251157645815055205615588465731855571028221604958545196163868663834730154857672978229237315106022905975747123481367267119412962537378134483108058357419693249385674429645734151996955456249612377065029326089599755431984694884586574179983461190728445134973354250188482817158243654074169317662299085318389260735267362124704947910263950597914219030725703402103160986149589009038939494137492602847730450569449388361807821294722314411073012716095507109667578775837458657660608726849759624968975179307542810018378389988859289575948067665320921342681175947277250659312157728392432049510686256058939078997931008600512095503056468585144973941629283133637993807249674188149519773527020033627748600726483316155555799062319530769614185141383497043074545334285403821791633141125514747720509528135234155802102831578494530366027763768408692643563660366645779220832199680681539801795659255393595119572929474520063042255371906499703624374456514869711778934594692776168245061934723108417191441770587775816091858078311791498993841809533648225429162961030385211400792065133709536670151660230606189904585842066070262216616685974066603983670116710498912527083033000281170095025566509202372172546387792263291234494052669900673899310008847908752225426156046292049630899067727555732429567110382766541226993376821373478039187318036035281274980240695939675798036462435716528399041466890545328036413807754268105684878539087233843960280067006107422636467280053324174117550174564447640637887194709592734032194151589717687803929074077639119557830467437099883097904050786310893013630773596713116223666897701991613938821356165174723406881447867545467989142650071827305342107354344093032668134403290914385634087398939464995215797289562495784454126366515933593427022964537476601700524939164595240895206428763567249658272130051400504163001351621939910219673335231139760066615460676768929414280104852642614486206640142193708459774842792661603501534459521215691511852768506823021278993572733438564769679943175071895298610497794591410172767158866844509601972310906778125483236793048735824358802088125443019923963719327925658188178293542604599141640622526558584494864808022141382889295425137326058587497618489466136439010506685700490940939331798200935740857278878317063997638405497108044230931043539241587251416992052315493269386341536675622177004710870379978432955203554714410786391651966034939861493504661117973429891639009728392543179544894641612223864599058206942090562785315088503537509254183416332306973565652752395334562658738987819692432214485741672558544274134654240937230631626299535617448214851182620886471903152239188180278987013614775947837992013926809641817667904826840708446449399459101221214275109412723829687262296355313580753427546444402717492852298154920793458468623960888825551511442231254238111656123818671482993518758311430380934094973353789640901341739133635476595538740628916768487529353169607394404730434743983248603290337719455210652073616169821785182581600363549469365565314631469350606076828901490062766500994011621717354600368746737066955586769045592421553991778335886580820090075128613945006349159385841117601508080323829973513528059897482286561898833359577071645478961947716672803077149065360195708660256924872054650687887077549099042502794419638167175442900620563928725643848393423814979137959891741404932767405139238765523013635280521921293095143396534966871474670547355555027740153724831476039164055510643283094666335056583573884614268077378252936673748755364655598280288143007606992646098457626529903820546605926679675147478948246330243022579287159318545506130619237955236230415126294138715372530040940933689783509607248336961326743818417108971184654857614471425638706916505994712167689362284996919264190285970171680927883429361371010162546505921055120421549814005315122673669605638976781311946888588559096431688354512872576511319169379898681640446173819854937365789143512350949910598350355709643693529258338304620295683577222858851310058024781339634105317048358911494158071585758556130177743996043832726110094248881579320215773971065492672144523671414376358050506639079060942975576543677069348568634675480487818490080731010577958552558691470930725318698351883601459524334673302539898495133142288107406972288277088643700537993703565195547478523136983472040867609760226734661612905135819476654387260281814630622352554154757437182656912651096950277828843596656165718966115997683795739444034655373394827812061615069832957136158205318368269155865669809026609748919796165038026856265067915067283961957332552853402432631811744945767522791571576781490224242024793108577995123822448939154695439164305880615338951607110792788017292709720945602919500706014582688513493932568831452113058008453368763780801416977661840053598288419529338331974516209508610486451634961321971423589069685998740662108604568170664485674527669395349388454330725461476805754492059818565213966443213917727080766940903878361296068113942378908208253890927419970613500639223131063693554434974072604100725067470924749590722799811116946770027073224050944185789526793700995424708861266863529818181789064087370038116957308437666414653632554038205364009074482704828204127849177462286532136012532482688812932475601844189832192533235780001806379244382083655192596647899400276322203697243438661969964997817328449602964779567895018764621999873649276630758133144750883561261054206063758461130456861812909830069009549011742491112489541880305670777489296091677858854329386872075599820605477326960533930803975230475111971046486254721802288746152987749270332222943500576908374304919881288498717643593887291835441222976947565816802041086222933880071080088301909706298431343636109446279017231283132772884971474282481467093568057909460918174046011299239691610549036512735431858271404910406267921119197183103146029195778619017455542910509163946498270348517654306390701409652773647805785751476093389081081674662473006403456037985590225751934755436065429783993420675578640863136375845369134453967595722542110717561022870943879590001633844222144500537498910250348222513897527520221238001995149309852620409706979732694342292466032821985042295704463366676370621629382000403748899803676303886217395532521688498940496554659282402000718663105732412000991342194063988681046427814936012744510142018124291546716058289402775873506081796816417817539894204629956902281482365958723265509172207077459876177373568540102385304398253952400828309710326928646303104893964277991267468852585742536075514360269080736592658254042037966569977697047175868418034345682081222579984892699685357785424985626842692196520298816241048868722516198560521166495517679082360635008638003888036834717957104206640702474963014605039177559564389229364599118303794178402460419395719772952562112871892204451672781829019295903596718139265637953243656551473103674547313110713594601922231179122012013717959409746378528794960511358237904293439235252776926558448202640201693888748962690427699632044682355405390564967589002908516927632388242954526806747632039790635197558361549244171653976829149205342815996736611966251232169726287538028869095565838510597762633146656210737656439624497977323926745263665168512644964712417894974225807536886384597500236374068839609334261703097521855832276972985721630979546285211763361597660834822968092051406480226942464108915673205354285053917422956201142838826699046614728735227016059148210184165941215563632708143165643602971570501859642657145530630506247509258220989388646874155391341583891926686611401407204106121388792367483419606514656832391006006491430526804040163031734343498908914249635305296192512635113421426946232935307974236357021710343105370068212930986731872817062999274744309848303604950481894971013305842169967730155451861548609416406224598693367677069302036084634686131193942546958857487828121536824373392706495215849029848596908898633580784440696131170600439957824798038425933095666095515032151031182681080827446386077099362176042387048670261993864305984200611330869804883529781269852141957146162239816766379980069454618554382538421512669661649107934673738083759042389452252737604794235770233423548275718254199141828982705465955564599581475237896225418398062062249358592393458075986243622001994368519316519202069833844216971508417581411961352034613638270694515536274461460357042117716975254290033325194941693895359301276864018790392725439621847373221569991574531655567142736627966952798363530314381903898261816845237250558196809269245253196523715194924468178034664142036547602787339502676662376070388146300629004127205780899934805264167050647452118629022906893071433163021178814386150124176190321760674959378681266931753980227100080900010884425309153068208529884796527072360327770793510973400207986179857125902356784957472191723609556718727751696537166551191505970454336346564734872696413541838008199388530755982929595552533633408363144544014211472130448222630142356466895533283535976242003773637276409599378321760017630211367052187962559051578725289809600575559234865972368094510129137803707282331280356736303462536928783915906421899236505071596349777220090147281368020225181660113505161512183341065724036273303818792834268662643257943276356847878085307113282039535018361488746248941169266782896199868303875117334432646647893131402747337372323389498652630437180036006358248624711508400667989239204280945107517939488326613052121510121864921189015221095738201999806418764150075815408924700551379870021975965673855115723330069446763219662432657272521185598094535441964070192151916761737832819850048591097527828519325454793175979784774244786045614841698866891073021590684768862655135755339890942518537602023269434834047793786297211922355824297353684267900289440725499056187928062807857641111413768307327309264890012790722539887351778517536071184393666142640923959275243435523387491508821284718125617261663762186169672353052393853274280949756072599241945742328439256392198944825587470725017835585786638730074234621241699411535040026277373388938797235373817515360060098048269613933044221455230730338119471655342437063800361649317615782451327806791665450530834218750873622050588106747531061100077293010303573693607383060755594030056553469533094925493824790222140953740451725075249451603511443299445755750403485731008949624394380237798149062708513836694235714437906982998733329519999748271246106074871517013618970081283742999659374621484738027677689799355408957555237910032172920248268313126132718407211487722319952433955279073354096126105815291340292497734116024054395285374226970430446641443940707081840804346335114205776665781297281415529408263688870030418461780028835410163256550732396104092803106642536986469589288745212555193643459693028698770512764808276293288031863748591786855125296153488803155026222546319868037773253427848932922458345477887279067642369512449103413555535270557046241395976040629388016725633118227686754981505233519759079331953132896379395361108650996641661103284001590709560251743885525649952639579236822349725487765118066175081162649726647215801152120543054159502932321320534532940060023367944496747719017787796309492737274137553421451713912694069501859888992278055458233213879760978946795091441575908442724918322180000781768026459210616775033612908580882972182161628558588169876445303929534024340575270472107128222417814581331681962091429603448933009171407154159981347411983456134138086004273854634176692376489715775261673033205256668317084676432818676715973623875191910468505265896701324269452011610598609305204569865454719586601005671819830706332020050441680635912240367163927777743660080834977849065320923184433760311985148996984944925149149434446981759484950243745049465429941125528665339244336957853138950579844626570541368247771708492026539925749789451658823862619317501101358994481709542870076469965189759790948539041188425257322573455287206306615828715907801378369644841704739041969810514741873303250244933673246347045705478092598261325664071735195470982346164487732988034645274475592577006626734593517833758306749415464218255914139763025340087474432083193323331703921120619249381236832624218013510953633325253027142823920884280392970342304767965750799414663196523274432578921099060272165434102593526039635080595584622182640171956772572756967773028401278113316043665991457083760968234385856875957588951598222075019935711611677021633282914393803496998224618231686474647540206263121008115598621039553948253815526622467851023449138168634046848295581740110195832652105444053904364115425258789335931899670224139895725777565419133005683673710931879909466652639006109271059782426859347225352348127675070972944934338909728239065054288991205055753458395538495559628643612625108707096366520339551988260916981694148353281856468413908205625217577299291667816781308304722747583720257669056678651725490955320413257317053634522453827197906074442526147790806128893085197868006487803655093284452806910255394438137976316376608119885011870352584657085948843805161986039461604658547187534544892698199023078080444627634334747304420924808745434688915817568777815958955755398334311126714554660317468573436223625025626648336273613411423765554686048605256002611846325064091810141660241169755693843413181171126263643166684973403666821885202573398710654623149945235730100092709752466726751481665833206171246616491423620712867925258122194222048760915284379422431478708888031003133031277813427652869997457291628261112642991014205102665068287747358176919556716667953281483879493605145330982556945731763575097801206972041662425799376676716419391798133066150846660032568130549766795128122370057195184646727552637960021780215849366717191056399183072249662673610158270267700447233926031853585488766601765234940272162695880509533563006496354320476609873866261922168702609304704046911465891422287999707525438546678450719814105114700108390007445960328494552952937616680912684312939258500044806339522622159533043338488089672611485558052056305749775506510289189712342425991980693484404025300979420979280113914687145268068662720820307729454986853120297046576882875561342644629515929603202397188222988743423967151856432954926546732720953647927895837208066609006792197194666880140592231602304099542142126612953976081326777854412893768447991416656751792137230182817841557352894780850833065857099360922015296609822021515858963330294930958400382810141271719844869199665018219034832139302094501313175121878041607501121018251026198895812376018232918755232797671444870252711002266156724975012439880685428062688532514910271443203163490393959106538775064450149344249639852876015020540290368061023696120198118354006243104228291533162649816905745598419760050469977329774004640247581108844648158681073340293847341925560151518416034154920627989532746353664907969851948882199327700428363965288812122816055330509542944180568486820367160883300918328653725883715085523500304327988312572602512463456553764140329789812647490686214974508794173896839595185684270319274393334163452796692817027832842055257662117706847222372745181544999331220377755347303619876636305115898110114216393693924584045735352392618071973918240055156668342605776137969617895913009753842392106809147798536439914005109694410010849798117016615420106690866705397426866784863768768594479473671692729780810614275810285465632894187163708209313125328549317014022640795371351190557592558286122006164452975860208765169902409811834093003175031673943978529436370519558192058952324349238343324228541458984526361457688947616702137462253156752024170167442594024885267407301606794735657518826973348087262240644790265575928354476554408052326998386806175687034217895894055529279590097606600858081457483719162971095198563103326013170848262923727592703899318435151706428932344923232021287774011425429883073611835790058505201130936674018720181706940426968876711264049120208381609830444324651640050670343996078418696099921013228136522583380432196286240035972021322130974352642445231621397092352945952845644516096566386045815366520728683365755867446396385359183898675917520551005830419712883356223163460654237275314497793439849698108962085090450931369054859497656232485398264855909443808782409341840980491766367534307339301393833876801956994816507237114586875981260296308823172347273799161054411592597007784927835262652139012382136925704180766352725269581292539013239548943956713064142912071293390055130679021246402120058689737937881487883163812995649495812772928290277825934982431702308564693914923333000535116076543071503931787657748961008706286053574947536064936911444083520270089225303149598121452911849772704301698484227596963134777211948173456684049250155767237699430640235345030934470745509471249568194525289558782403282433694710124874154757539391375128739670951490940787186595760207477191195735241659279601897610203513626877557814073553614653703134629872121947514203855245278845834313098935603496140452007711975304410415652471620618578374109359360910606389072312617413566792892154799787096020226076481589455638627317000438930430537978074676832133461067061198221998353052547681549924668731319290802520404999053695515250732375580222235417850535865125991083145816460465049586672761108155920047091595657361002479070493090914217802288203029801000485804455984650294714904175403617159948025377605179505453764455076108867946691512828084158701229662818609838612552308836540518689566325232012835681064994081634104213441170618449922938191344143802471966912589575410626405720621424276056212629370029110789650429221399456635818699940078133528551541111284052602165446522250359528813629422357872726849509263624358467158408506715675811932426221223602038839811766283726807259828510907259044975424503925648945116432145179165485339056240584987893373712142355525122136487871254288427958692561643481054513037797909301314820161513177018376611658422806216739309166842044381567505527727565359025394478856729038347339025868906487638131876253988831098236044279421008592849109081319347879778303526546174587372212965281331032982599896459783679263326082417070527620645066166392268551062202650563160606310008082222687303844158406872106186803543684340437990693108513841635459074506219624895042963741206359144089505602181143078972200211294746684661301032158316986482032417612970329219848527700176680200589241187892849071088953408574153233186000305974844537477517974137364040802370615125873771639936349056435365286679021020352518144159636703620052291251370332843822487372196039402632868949501654979668135744687950912705200994143541817256891095256591840540959273466524028955899638724624134616143066141173746080941913550546391162194983671045563647072048316626778960389100330416699802443005780619758993823087267606296080624686575289423358358778971365322513213932343486360426079874776686751969710656048077967905597090389191659760111307210204679911888878806601909417172615897336856236444045651094790392717350716382773945787533253352733787790147760118467741333388302219915811883189300744168631834108721163655851762689339495519387643628344174088581800726910955866383084310334494367722013710516317630509231386771429123137714274913365411731325365843061780140292597543733871753293066569031415107181665531590131612742934432977900321615032802758168273565111630341589689731667807067028285194494559698766995166225713743707538799826816771005403565811950217297753715169506610200392725253975962926407933496504525722006857625200640521669678742315233553819427059086052004958628027155118764601473392335033024920510958298553326683205092679284395224588459665822730577628863797210087462955158062597084397403647013919842004584093332997335667613432970240254100770414976380463431542955637293848203867819312414226391413486627584342163203754881896921172645411797620498928268541615280448744028673665827897559546273096611979238971366699570603722934320910804547717881914745759679252894313703055356377672539421561798078901203001176177298513323637954227848695172418683514191172460036329579898714457546993075223539358357367252052048754433413684330739368064088938870704866859925863450169077077169571043645761794512072639340135785935010534079654204753548110337488973401328999593534560489971053470978615445679493936649418038994353447691277739625144508899932457471854739732494232420474774331451576625801454689722009766129507855300389311259685290240031128358519313301219200192463286531584005861711824280720849221201224481132110029084583412343745183722579524998836855434327133409732322989171183246108489817488355613603966909831912974224613652809070900802066699392875217554409740084935237395685542282920664252355598196586790104487677653403644430637795530421974421764667461644923471772385507092810791204855014917608685658860872568515823744600734399900896510703455381914675245847325740499088434382310944287357095110365340579636907303859331214899970642353625979632622380523830515282081129671050910712478395050018155277884708795958040369609800076232298431530109995742168055772155090565185294385559040975458501945624745228558895884056062135771311059839985626461660702519380301627191874824184712890936776968450471676770368255993000498606420093585611420079401367883513950314194011045502473272128738625380723405977312477896722073471641688690832032076096018426475896818302027146558022652410950907104606017381253588605520040790295117809681774929861419725263503483114662104684001569026413877748913799501778051672772593331646483146128544085146837369993215469406660537909472640392686424914316393208851395642184155741105929274513668634976362860043589883711062548759340090374348293068173177551757475533074500597890212417165298720749838674193928291070470221570595641363580626455280686707780482913847970686037109808144160863061695820537216099486970139078347294995394602602614990335939169493868470867914387859629568123462336870847232861016920971297779599088537076794542388830990594172588012447572474370869206886180141073224412752111314092093512617374410242852304831143436147126350591790481971004244905523993241492017911651022455082815699987067336188035356738274731221977241184408638354487223560550658331096457767787042564199616848802676851532367927857005930328182119973230631418502846760625496167483135075086904275699882164842230304534355736086701180876603086173909114317813714271302621384062586472476668327741363283655233429865632314378266271264189428322341851458496898597246506416149955375532567522542185434169253701619028170628523315873075158589863741138340352182118490114060038838777332389802552334703956474538827659998463879041555056673310890969316697643522567132613782367779191360168803162482509957548104612947267383874279728721681218874041439023537795895101438337171447867113294268422629882333567036842640585457151007104374818239610547203345827954656389098541518872380479328104127290586775874537162057349365407882534621573703340884772345483725113035652795019271328990309160491674009517004456062198354292954660772826767329894474545136954004792810615898651190972529714648990846626427775517523523144931621563363943412179711444114046618719000242608841877014651035439224394061313731873073870952684717255143206260976273624448644599940865632287799405334026319525512175859842949097680453511394488992672227450451137074938943204078038731125100337690822157811584035290786535367510355087899062964467933879728888667724251400469576643277106439504799357803963782889184092405341046005052165251980338717495827984163748227798485762011338917304884811162037162613639583824655556196503132162988933068637215294154969202329714716199823126951514087325452812312445614779888957051420212196623729554115466049614584534896191234974166535429081387026072335603284761739886493960369694295878891597219730524729304531375444052299629585893759724507032422965210845879766102868353896240356341809501909377976827976990831359680036322959759763669023103030461378678222773085428526525446222122278068999537285675290848162187757187025240784785972068005609869199192050499835530443043285144970788768486132785122051857074873974672752090885218473517120828526504122524466091571910564833901870492121158019443584208124542390019907707879073549815905414300300601642358377595522579266385965133547827314343829758435007229242291554857304570951587886992052492116927773763360197569157649243214368338307290524574336936384875158517829002066125275544066139054529238099307353982214966378522514655922239437115861700737257200616292387010546766647100214450422400822350286903993189564506055441332152909667965201960812046446916775096045626803972683091182871824472505286953798918000708106867024527588460467243262241919289073236687773266790722114186768032197997433863462444275085231876647518711444530950076752996572654813069879627604785474696879896039482097310052114082891586476541556675531165339989885927201487124364626368304138206516784329285807358321469643496604597739050032303159416761319944679658078230858108204325776494182083623080715174514973060033446586627779841210100000800107381324877152143836124828276955575125133428712592297685771150255512396736072522279247449920048245791072080457703739581437393887803343698758755441480531782631890765159256624091781456432836885177736600447875239975164438181970631027697411409318889245664815404750882299633429988371211015624342018245637305287899036823527917910797199084157362996393501779572022060282539972292890550850479206186786835752025945057962056903746641097630735088117741273567347557914707372806447306118395306012648964086555751914100838835547622689241922743118459826190959958031117338711843274304314305422014951069101389581608954662857818588975018447309507408802980617071681207678281429731627236598558164760147812154979195046566702323404529642376689375402789948532928014707503168915513105124898938095012468692882266710776863262175229626515397117054878249920953953958096751639413695887075148405519146713732850385140738761472513333313348643973418098651266609748566030057566241268834376396615652523287856015165488132694309056232252044709726237352072812915251843539393562157315902994581086569443553452915555472794751557670228432845692273421190955029073042180833610108370352793561704906604316159691363237050182966986172815205077635843289674375352606538967365073819416108078073901539381912691321738051858488520231443686500970490762565137828422152984941744120810967050939679084902591165539234224931843841302698006709878923603766238172911061608475291791197603751583538221700313351708314294451927504089553855460204817692010069482641926816213238065658437405934330381890245520268420119181168031237109444700982263199865337335962299899382871415227317407844004815616127393138368921426533188969682743098530554806919874317432253824662854754733467248130716140541660147308996344952313710837697302622033710798451562126301645381907917718271404174870473983279506069506128042231694975654846151367885436585163377958349861287829896229655405882866052069688016038126614446567256133855413613122267952026381269189942544084929385476212801980264757830549001109709592256181246611071239928500077677740209860787303928203675388566015641918032511743580903549134676825064892176039380064376063537046451986613985018885742520949996368135407874525954278394963741379654930075770463388218578402433084028174479751570453704880319945498316097569316847049616074434458477977469569629743543562589287856881354268740065767564917208267956487305806991402490234355932352611532476765551343961557844918699980446769019807422052328237692295815787101465369302724572935758180219817821481326408912493570717593409284034384955752478744413954229846816794165434706058489415908001479949040629744338635513246592812846284421169086017608142659863167179923078037568404296440057339176719033407657609519667733010690581322101382103827212973717885920375056352827836172279264219003462109597900455904856326769738508433878269278546065345790155501584311566149172248461470862872467282012259540999048762088738627232975093362991151406539190910492188347571801838122701080473283230661987301700869566569883535331785526127245169179819090949820802244391652596757070356169730697559336330459543865599852038647789612421665350601708803248148597953493070757152859532430091187977061449543763023895621068973786871687971533500392101474527317884158054477058797997986160779652636545300225784887004931256476257238667190791224406326675015724451724651539618594338605231563168297256410739811053013891837843610410253329937585382955073113138937022203202053043815708565343332490878801513132129709702564831658177807632248364477958671242382261311885118189193197567833371380678540662798726726658203478454689811865712849251881118646707852820843342760309592077866431831510339856926886654183233149501088506714856973040718686240740193807649030702079880394151020531885865296133122558534814722566897829149209625811592198403012755667305588827685098794167274815412758154162705882096825643790614949084008143763544937235926577783996062976305444598258379397567992443747218940273457962163782552447896355283159870844069131449438367013480597225751063262140610672040813306986481668635561356538060782409885267938800314503268437662609017884062920352398607995983998007877612572385821174065050169181759112147885760956225668556710877454328877151424916115641714203056453106155401258914927886661129297787494261534739583603971347045126019155984123967440966924409548990550550154041029140858444277381326321849474400539367141467806691549168678103831646560419588030939783211934121800298154920858305618786901402914570952818707269561895381247630582888935174072214470127020463243298614723826815767936064088653138584229421626007962085586382340898750569708618281710927880411679457529391910108396454560613059685700250667995307840119940432854241112996039232292217197000732642636534992874194255351692562579992677551969738708273421221143504149012455844873849879217989916449410571410709992629861651758191092357311225452756881135085509386577879427077976427517293199851857615058531899930501458585067827465611292093993321315109626125019288743077739847524783846482408979177183592841726990114295553000037751671347307279114289585975367055434323270995258668506373719792522440919881310182637503755308550024006438363748348925086049446788681826561021666108298699483738418077908688412159449746141447940580025929206272479216691440319142123325966355367973092476692323641997761964664324526299615451682949332081452072868640868924145270179855896808676136775901955691357957269420744495783805688729956241960549688357493073639606512188182145715888157421177854953309365827517211232859123063091561567019255161961343955442305741870404739642440333898367733440931051894587167233707645764810681296781136263273441479993313986904491299199524245820164116416079287389114152073154110549538805686237678397347944884381588894221655461630631483248262986560181892207075358262072236071223452778594452485102861374841809957790624926445964897263732765377712704526061525195661856080452817686842240843596493741938582395083201606703115741423068014749880697231883707590171450383898029195967923619284863493056598865437984457191721279241895959069305153731770831914982162231047931440025168284861011338031093995034921695684177438372446795466441226476005957335592471498050750590649420877108685011826784080612531409148290836431011954497257716013908807271054513325760118871471345896596605844195140086891846844858975330420598431348864850207218795640623641276844660579116849968336335686522219013267811788288000355542628114396271436156555570127567803728417264510318044497540176952081014047970300951070342426047806296786906940028224821690058771794842841521364940180536094386460227551682053724622957940148954913797298111098172320354016831570901210856071233837274446739240373970769350209293764158157787202154553757198699603312023468572121353638589567031996925076016871700009563457440894796148366141713285152182507201770934190045594398281758860350330033796081185098252540312993456318269280264270297878688317073645908914781503903567481979201372475205829332138858460571090739320645359795184197500817119635990592553303027228131756132667016662140439385720577502658150220017314688017584425060253010821708823415260806371578071670144919735324963916982877897083197958433619633846823247585281054620457638871946511321766249866734210889021987552782106604944633113054096014569533160294197635890542945532579022361867768053808197167293875321520403485122433314653576835879176962948350494735997452706593437408429870987387761684454042711949600217297741710947628229951219601622653819548434014951209766464493058911397467732358903647873946335926719720845043111702177683421114640592343012390437645355485974013409689845873137007084781934650063777307547686324064229128869293180317727316611669638712507401999960184173422209013445923094185793524639661365233426821179249240329599281837150200402422068889633450106897844722472911977473386708541468566073335265182664119345918551429281272229519790745446393081476262061707669245416139880983134190283006810600478320809957722290162521001452207955940349544418648257826799762573870795672932599771846476252445727725856951717747652643639944126609143891792949753117478303497662788305821530109256282747743554923584840831640253912449931233640137101044486606228695063740508822163290607347966446676917403413605511924252345774404783500827834587958324418130364302852894380368143117771485660120521323083702300954688904897939692360856816828529137899343534274125017264371776689779311072901274312944851575713068951519300204957037721363005438944338665889696349211624411892092175012614584490450506648631367072918511940546159206518911197836082771575017086676792291156532008707992980749199099504733160468514738843099146958185539074744374222747007142521924450208708650308812359840046087090284885677450933481037127131315299650792522071525060700111195147237325068329062938210760325466907478537471008441139168088206202102704476917351581056898462776646381938677878459655210806141940683109999793843716847219829015573712528491933046079677017322021837257473676857299893256735974790919412061236166098437604892097677774020425954018210908575322729995389491421626276414070720034942161638105453106200121854445845088861554682702332360664755355476305633284567851801538431447781324213855281649903971583023952320697543252779658277539602818360112163414967385560927937663599313966154086568406524975206991735823793760729292421939311426218594754410646517683096053486144543685998727057894725142310853679010337037613943662418582226915550569669394139799547452665614576529401935510906329968508962063427293290861307555136847446226445106605476227833845128516839202010825798491252107442104353221799971540246454920762210327218483674631076579744880519964587055950765645206931907526429414913724273472747795830217412726595644686693011991848832432877180388720612624723431190115478309298398669522866655206854751649810876147134631772205806902002531018073984351679678681509161930431290804810113416107844950234487290308043769439412754684000005297961993205437509640739364541966650470042229549337738704379482815015180407292822013142677197824615629188055492642360423815857061746318340316815877445337815204830109801430823629761594511598609486000704683496696357661240320401615917712837569754621082650782873687262314528095481653219320807931197276253226880969475912401566455383357280052997425287486850236097753637995858176376580645471728091259624415060011705628512753520589247817580316040900345102673672019044888704362817080696376598326068009115597594225431587057275405516780167359069664700757911766326503960029172057327043321064132799116582376205104031469943962315962780308263318090745225795252041549453740614531359203271360638717988043963477740866707163778473083865227078987028962174864857571205078918735149055146787395076307906153575180500949420028415672291880061811820125565670798369889205670040009048304293418436411431354879384993689117919146941410874102617778609479735168548708640710654333234516475636591193138027911467015020248208329282445974384176183266051093109166749788168407200973279047363815499163665711164841732098455772178724417992146654050113264892129652194985647204106641921165597974209185778994915871184270988415987770554263490408516978516250905804788990846345350115797340280759465393542243815805016850648012875761198677945391968378585830866824268701891440169541349630039850086118785598956034273698274056780081713280741186470134114488778039494354625194224024355182585941290231572420776392599675458886125183781056273332950007302806440360133952323394981860007645335521104366943836361738236085161511457585922821542058953578435332658584979089145275491326032976392954393074811267340115732091230645490092675023302173980971651127554130803265896320305523851485975121885011458233840656278591648443425631119650140775322038601086923385885284821940524156362356864958905053858540212474607461333393765405416112244175916817969094809550077230439924780599292173500770504140688623287682202879476336920691991475521468033982838696527609485764409283300056570871970402753203021008772525289510234491499679639322733796172096137602100736291370847900098308956305629794154114157562082286967565526363933687955527649154446208284715048234949544962547874839919767908149002460259877399939023216147299022263123608873784517905293408828906173007716871595186320417569521090692498426370095610915148080204053566195147342606634623516808174468497777186900048650269247661948835673877683993577669741249762892189147042316119091335820812717755696447512609859698539396258807197452038109128298271895456953894158587949410491657478643125900386287555342282087783885657619407426246830002405890548892841666960299238399943581489857259129638113476294083681332756211575908659429884631294337279649909157301966033621174991114173605097570060841008821734698286179043594577930839424787748140637855185849236593134775226939124804030223408276860596755812862294444141314235104070306674002665014498418865880552424906668498178269233564395446743578771474690185112554063342520850155437422966328216648007334491038729368206125824388172669086795884433197326768924584389831640106129745680363817041354963466319580382191592717512483095417058804415548996009845571317874808311057273583525043697302498349823256796256464855519304848056227058435082301777722203888511072768259998273697432816036177248229385509247636227312918831168487553533785269299678456457431425405618242217322901473637960326383738710260460291524905792217791185222900493799633987065234328477183562168508448071075015458117936834931451595874827211477516316484492300985151079030371257429278865778015323215754184895814663159342622276330841481644396260175460053546229987012226709654860610467831022861768948946819078748909214475535683870667402933873783100478986645376703164031851167878581136887433544550799654208536511997646969275762050290088900118641186559940420282579711709666396255535028788671912437822151748066069110306522383276163450170940738882875509476711809478326161599505653521415341032592217319118798507795097285071968531034805861043530333814178577476958059491385355900214880029004168705914687670315783561801325142374706781368087400329376361945811949014174563630657606538391576101930086294479988885343757664783328512809534382189086210930578972535449117231862505397099492504296490026927506450394166203065354110899688656959644686459507727347728330298126778043840622513058168239069913171481958633325633659286055667637127808981464043374814538846040606003697909889904574245305798230878299498127723927482777202206551121663658856750029887950567185427641403192465153378060350695629402868825336132040497198044715554428113887849272899544309839425802371105673902894522026070872812886221218641324598899751595549674036158521922167740914974790185481732641174984622298852117602034066777898834375389483577533750986135847095148137242328825239839899099542302482884979594485124966691297748879770680188165265572817087508341903323006423507080746648118081975790594996819929113844141666989016171556898167004674921891789738018061874148593430418779583944624546991407331524610299222274907471920396921100683533198028915638768294941344244737877873809993144882217675266479391267340430479214025025103276492761617852154149936436686603160943933599204393508040886665898262147527589179074720399689924446145481806885975436382280134869427243172642707204127808261152181783315208130208467692678742771490511842189832088608205055515041921502950629304174956956394423791801016427082312519610261381015664374022749404419107307012143498646352469013422249457281631465432638628221293727335159585484143767595545541845961274533574197543296786555337568280522878139782736634406529641868225185251394439228663671646263889070846302627628391524967381239959442340158529401422274288650251991813846497339161179081134305796946553533058941054854285286415360752107780533358768408415881390541110545832213500709307473429375682614989472876877093535784279671290349150661518448095203653382126046853065467117242907886333470061207535930576842584869472479169211443897454735893116929978628989535499882163451104416008315353731283622979129345683273018805845740100608024638255005452829793366220756877730551256062333436693628932176975445912585276747134000833206002623041842107639451489114753829445966361242811575821357449238023121193282503023609103275362012105446129162804785536668738864815129705611999938423182008539371901231708647904587802796934871378043022809097672031852823007260058993829098331544551077896530246529645216155016488913169399550679816957085161464541168403390716819593239648506903967411075408408726080641883063652824967378198432463397258363866288977034141639395899858571764492010616683905590229046565411510191789768782287157783671474055812941605055402855440470362825187269915830268089192074062194890275976195723492337659241474830485454862620207227377490210961660236104184760779619635914651749424901828486870163167857428117711962140935234916454949910785070964826448134310296758400987464868155528496537962744935900290471859945830189018315487680581525928374184579346131784422554704406269809036853494862573270077445433595698771523243565028975289202728366932947630603893557263111517816583673902451238240185722853383293487812804972991191088420329973359886346511432595872895498398265716228173622655225219017727365529654154562964927194850850320873820025741207426222810756079045456466850895189490386596835964070110460456914124015102143020925498631051201846596106863901596996943828340297117312731503631254781946423005097509931975577860673910161594248091098605572222927910384764144598584742173129214066029339103607380185894068148377671350368438360211121674086741146522322614466398315044321928894191482591926509099908970283201684104760798584085950854360151775841536194838017269148753152834282441159861378152266250168249358100739498348394539573983881569367763241784630627565422205246934961877661078871295156840401473330771964546150468114524966229515767635359172086121926252175296340893101554146779200126996103506612341010110502462088629681260179669334826113946557009389673578013074156672451325628597041627523730679579249808879284097453472228551245606745472001005040247478101995780148590180624159449220219572469024654027403816789578518350732269988927656294373654550182718770728985324284283183052150649512435208354866809261288035710647454550388387819753726359819136270452155357078589722648231703624645818968895389346754037062399006190656145655108276599078721590040036942104491011513692395982602278735046919084518199643894590332049788366895662678178597227001187211769736546419871701200015190395215370166838245481631189929924497264322910470015736816123564165967423543342300923475145933598017220919653314077609394062428879122235867606604308813838886817147322340068106810226339457851992076278473513933974921665323619005248765596955450923808899334220838110865734402497012304602570801659907266835818088010005296728622428325240449225048718113327320273920367132852757491021723029178720632606173895477966938381678295442054348134577554983879542288728966902699700526541999930257694667474363396146487534476638439605906361282500638709060367116494851083739197249498287031062979970383715213665614269372227089364896086132305542939147228463748503271650441571992330115732204720960265891529731019367016198187783781953063209450132909200313341786625521272243004287114347265117101732055233533752227113212349593573464380959812704662376602350385247277320067462325903602037148464901538085695210845052592454000536920192024811221822279781506266874958913601877416006436961620639962431231313660155430973491054207770988680759717084919857283586217765426511951992324525883768220513145755336691715807144244848020844287281080804669404874155774962476790484661252043820326358865884711809211728859840836733708232666310081102327374945554501103564427167699616198688124294771938491698833133863304975519813536390978549863017471101220240914544864653427811048251193098985793654278743823303297136528379698643859171461352407770544114572580365965783867818619814039411813914187344492831945061823569157504225251839819152404989581054019841441517366324577620663488823649470098662664176662883205478295637734929616365080520308121645326552896144079343855162437315445761419426462944647689769034421379147797788370749388279160040670137072493881600373842114986676139129555386997467795103713411117047946983268154573224765907533982902746721819083287824726239318425143180438973025000547012553814029813148877489964722911019558286634442788307482135008679426378307092084222545652850408394722085637792590889238896763835111867242030850675336544009917252237900842670015412341009472729965632522184161831520950056636405471833282887838638491774420753295062720116057075596233020358450845534083458360323709628806341738962875962522335263484838027711759648285679066754849938693387295074194082125768100792827845323976774114932853417464123488648934909970500582043728760873725961001248018977055961959104399682146034708140785005717685444697732110623082087736536783625700420865535088068435095206735522655780116511517389468029058894338036448334729874602994254453082037227588653397221522292090047287415776043251146952388209899100901891434388273454595014827850887556996900536744754143716724106053155089811079996120567877067564461709402865160735791599543015502376063874054483568458602685075734198283906727741508668594284064055922121354710725701189723738830676163083235402838669690450050090737190418904366986817630404348257395075844477676155873527261058127147807948614535115161170707520254356846277980050533916305773250918663205501397725837153364528199845225205924013944247993880694301181287382315296347150877368542752953439278736594977107218283030337451234968794472613699802422632679282729323359798139292560065423690433998275320576835238181728204217963731916656690993332231184169119849754491916130211593006986487592269739433575017716689023898094809295946159110777757421207133847662007672986688907147492713445284418890891325463314967618334572696034087391352399008155731385320988767089420213742322864086634294190833938906388485757860394484522564180033294926103236344252311766549510939871107935704927613293906018109591869101328057114550401421050932717658668235471207180622989285496587315059561794731930977989477225622729681522153077379289235709833481311892761229734970274608673536994498298751358376523531119183437024592068833920191051578208232993733809029453346705110393325134602771630057596990902116703448394034151842037628889658038733441579800714311936296584031240741611455649906958766092720085863307842137160246591475921948937295390834848642591682138594469065250293281787691298746820648174786727836926819843965508201008682768511755757575973662429746130967105961726101038794930222187120928509470445576469335960111632853500499673541581120801223254713025485045068279755971214293090081826519422188767123047542772960171016789336024622351601743966149521685692567570403068898357205017371206190997592577864048602077164274809366035460521242223508417123169258097614585093646348732744871703593456634336335399967647379101339723191009054996887369990775170813564983189087425490617160193610558059155994261286534940473091124445846015158642899811320015228233244556362493428264848064506872068290689730371465068310355915901832192855673402963102971241709540581185186437571786527483391316115385048647388753974967220357785812135923638990372343533825028601645031918529439781680980281411212003609170524427211274874628729878901635460188969697772694029834712392228455505745179698397210291147739499419202132390900490169537927926936192473836940246595157967090165822574668009124567954550789076119179700725070817367913910430957177784540315172368151387824477052931879102613265999126762758341904950704332307216014719096129670093254928320248693430353121022308323558752738419334055161922982420168641324640985656235249158858665075460089434110826854068015622878920720472066432528397373329682277945254991106781542439549899853424404362472307282872736972134996142467806077807498349653292272737671700332576606442156384236586214652599031096072042590936420244479248584522833486836533943436365626955700558618800214151195840298139905542136183286331269540539070735847085426644974608024434800349798473873602593014439375302040402177664333625668001225350733910996051016318581797168628077788859405544902729166047200570281359791680178227897823799105254365530993630728855972144820380933124962088027793652871389651085841973944214407971231235314544698827271395523625881997579472475742115441248578193459916423361404879721273189067454731080013720112435166021033864659432823592188082144967407981555495594232149916193570603512884187616362685028773093411614398935085073782327915218744324654590365042358875079026190348393604165490612026040823823795126513317301402576865413211702970623179957898990480363428362961006177654953451918595576642367385987136778359510476724414588315397567318046277170966741730478841817390579060392094747425169097288183727056127200934086068884773527960958236975484758301464303684715073533133782889931318360045070162633357515506425512244877448936550014497517830730470948357414414378347853084314804383192098363388166261787523566173281847015446299204122021595879084811477074089477072274291067742321349401196729538925197508798955700682246996564146875781969793531182106135605953711382643286594137995858368146541815616033861592809652963883179401592728620930851996078615700089574623669621575081057199071943915823024689063381854477787564290983920388225992395368461463434503272935312658224476669456469816798858822031250524969853432332580081445253790941987207396100136054701091325269985942823429998900689410632864062409089557357307467008935963161341406175829370244118753981050368815375224247137211456809888895414292934953751059433836714021353487002669241729129296380259939388538597418038195239257411717221518243041003636731339272003518230629838190931779148318533441554836904498556754887439051729775245102565547402362080484997482913880562152978997763915373107533463759073829679096667361042651219472396444936891587639859397376969816815652780839679668774726083720247280782588730343678243809440653711553725658786205592813542791538258350963511213289695055233817966563071422580498902904845811812728252432464883643771310516205949986027631502399535967463599872979326864945119242105722764440948264792060697036000707455103457943990839900766900751495518781356739076690073635718520852317820069928000906460317709320414627919030221273046279747605672780425998366344615097149595998761404729983998774055983877302804818044256973768300661943480485038763811250794894289020861750737365173944759623183029961269487400514734793207995861373015635985009163401784827235540782308668077344100343388336422092494327936324981440612508824282640144046005299111787587468559047325650208332953001418554810973266614910920607839675203616529477987847078662949774043163881975385302130116330817390175585441383520533957212035031794009871097595515085254455286464373711909067971420756289385239112292801110216169378004189756518618512238460396412344066689950510629828525664302882443126659642319433583098747221452613593453701506548494610336874654987087179904809383114916853583161451023651400294711258309868742508140007342451285014632653053047267806419053307703148408743684971382778439339959421202977657327600661999045109159890892298484364048297578000856783965944415871884190347455273115891320014145220232417166963884081024058623233152991242130768430438386542183357888588543654081820029905420318001390874400564094749156631810799604160579586234847955061606678552591324860723357801447476384510118512569907929736843354498247005448741804737568597558469288090437832746813397886669878464974076000509543456072589416744385469661349687158660026041097319547764156414228275710963009700563574979936727142454944939536828645249965927787070927097599438409417237924737072817203645131870277309211290471567945032087599114189086976313020574581640293050431947467110467152791902335595705800942897241988968386227835796614348713756035270177008423992375098486060281873589095054435409419239360785825043041039271870811912853897037995437120829507161231188158733260893868149844583758627241096481045821191041656458704718788913321139097059375088309292014479587442928783594434062951933753492890195762156574288625981791774230629578153709233256355207558488250601649842102307259341241849021421968077632561128221935087178250669646350620330415942723755234855597361790972552337906643423047849084988319563413045468020939231749942502576710187449498008422645886265470258250938553820318485816317114548031886621248111550676840671787456878870203472692730515062373175788935577546320332668858922684659502892361436690070986014620043909304435920076251930872850970813721060651378918961747292086701313374180141044395067806109500787484252762038825368883003229541489854037922100631302234657050554209799172465093462056569905223900252219627630132446458183357213306963770750670655874650356784801194698067962526357536658281917849356729326621465147179174777970821169215607984021731297965176471296175973076171666725727499584291623881567189988734501775219287489662917217483207724241796945856514343050912150654490522680212919680762973722223919283883871363486358709419311097903205394547423003985803649209239450333919216097867543929665384080536814619389138385707173753055281783558590755218040116886720011357932534350614317763711453847228424449026019016950721180296205072582081317153925986200838236119898185571877176497026727266318504505639704186225997669896942668945143149967311657153490017726771570113433709478393009969185333834004405003493074568372822809696137969470770392187431543000237631933886632824155521807703031939438929459719601636639218532858852238999716440925003519961550823261705534914205656331858729336952282961823393964965530422523495779890218992172192116685984523908564122041801136132858574044635922630183376551554955829721998261708132462738753124866529268133620739430029900167915883950802050265415516441892801677095639369272475816471463835707005129245312249504530130201334313969343741595095746504112845659955461087697308635601000885321050192210552290423438868899188332150594440989230829771001349226101795282008003065428224929404551778035931198210230231583024694797033314985847179711506581775536131846338561807170330314519285712946227867788825835289811820944912048384045397378032853043268827691334410359550342167877856932238683809159107348903591134619333666376065367893283709684951261550357846019574465594894414506387300063511533791984858856011500695319483400817994008578160590236743865916213885079907377001753257144788920531784902384342806711417614156822051767581737091048937233594663081069336664048001045603059537989224983184589510614515112084796314795843247855509606507008340693026661361054498903559813141099019133270757866268146178202875891900797074928781822421270805344868016469323196798325707273498539186554393443600923097400586364989699218339155123122266602816537108666579165114023158419770383149432672124306449566408949841879381584050451136050385962144025047275970023237045009938376498189177273894659989269659408685170117125848669690435067048539404917732452924998195093821337574672459534092415354209998201306353439966137346570335476766655066491817483299154208035812246744483825561568346458871284679186392103489023824669825973059271824102715712258779648790710660777556669054654073056140404516536351200507035863939396159999805735626851614783447392098059187122382790027017804788085234455630989433874589590327578475994506221761412011402741677308368517326875077661574101516371775380795195006532588804890192586132708799917946831068214224219209095384472014777695507757601050296535608875108587780591576378024319652681881124742556831645008252017941101146027215586316119462182034595586627727885746173518966028526033902945697892917788197394663914174944867643246836853128811883983918624110879830863095850895891833635711298346649845696342584126580288133246443207911890104137823271179802097741974456931629459445779160436986128605167739323722471310517247867346134206100134710708412401097923629341285891001869413535710917877773317580255559519828937327149305664242394250434955931345516027240847614536970360444125243030278534182794236901415227572111459217820939725215615602968830835542814535774136171098544786683694885242482684807324386808669365459319954988197588755452844517496460769831368174655503620120826548603637626711883650808324302618232176075354613125554733303510910029325099115004665583253574025305111250916196803683930429046979380670996276711499710173661942568180482908332899620704259269888026873723264227941220010611476366596882990070212571221635193189219860087653860595171145217252198591572896722593059151684269652461046499447824557433246953551040313824386052210837100383006304922481701622789048281839854615644213085575196143742545256492174807246889224216159796731181893028490341436914674142197946970980212557177407287225903150494577031695775934717186114898680056275728182873804480505571553713407622341775489848654327502050245900165125049051935971992333102798654455062855174821618257785346698195987124430085733403358069841001799496386134080595756618598035519210441388212156970169520077863881173718890836085814116501219664670800275487296192316898918160101264010637701205492061323556367194787728449700543046255761564237241720464812178603436657579440646985191041375588804333548026832325902973350366517656698890111592010975072530958522827369267508920539930724944880704371821129807313931196202388240231523822897216276251172071348214988944759617335607683233847965715836959924953836331311015575726714298784101216400451140878380875348021848717657625616339837152357061608589801728713847696479802299049147868510983024502700408064933969700698546650788149210472903371308709840784154133721725701222829523208544747409345508857271407401760584695068943063813955162664430947129620719455420826421231934503599468727826690824246647077228766184625881380597308231753002035174912986148227064251268778796106511186110184917610843507584572069931151587630048411162210013039667637397769111039999297436101552581244933346069785138955071932342419121272040237020191227971214907446255615454679023754797923372427356626914136951970872465302878614084604146793976841440788228449990396007267374654276051974116230077712689237628573218221922692116239091226757774401499114584346830187156499316961566953455770187855002693858993170520384216032525663594806367543587326167376960571347780904337406013509736851907631981302070602682817933801232292815318815992426786103909070449072686651884449676309430014251054404122021012872901483414869264761639149372480655346775615576625832722921881607582130358082258040242919644228647940104000887013876142912345634681540358331043526434991402112450233977989753709566284123794172328553785440041017097004997521506600045751735460041740831046007037368039031366687119830897208606384597448886545540056947999053788127362826449556089126186191805411716562603293056768347754818673502856802473006602463515504255967726043606179660674995387901027923313925612698696565282319529320847841518169012751821122695392855886142434475126244365493017551029834401007926740400786409183506300347763262163038131687502164644985501479389144580382270178056922198543731913848888048378108213418631534657639355173034609103555292444225998814442522162752809270574281412227409745445734523734908022504199023990550664997195163049054646584191917939385130802300448532263698491381758860633374117553356234692854624313866705867428878157955364918293780102328860247945238234659064981049261548225042141030939813815803830226767679458186086502249015781814841143929387103244992891340582326114784272080936334044172372467708330300031500473292645095158278702644685787882736903547308250269589458638528160576092735643650872226268871199965455343747347533348067305982983391653126090542656110268440078096706127641611760317042218470325479453269825575039104975084429860178455227853148803835835987725439435538446665889005453060095633841093727585289003351856881921409166031615540069652755823902916431782658726183647174003166579230023617465930133178618984896898284994075824287183103508467195298201714491110234332691588091545802154608104398524093923012380050112366198805649039547344608104494446519057061502258279826944341443261953946010963397116521323458754130616730303012733161763237565369943205288165468835573179035451109782618301041353299144396325188222045012631275027765274766561648061987959219524610922667098336912235308614911886594542626208083835013206987374192580738377715536717044502213366105425754022526159262734246198404383117720572022819636375921333218684439546231307517698946861868238429859497184000904144073477836689309421857525149610723947906084649366829481629634211622316380200979637025645563700503756949656523382220872785672526579874826719893873958790069582183990426922553788561027669564774891567758293282176062693666822243226025235499188490628387655895405602486282666108957061943018471570163145493654056800180866785944549216120601800246755489985911486272204355541159572885325677405184115135857950556494298930272003503178969133532548765580456738051909364553568173010055833443311360757539130469715880219788424902428362695266899708777618483157701954807524443283315468695268502083695547622832183870388791596201047974881627784738630976977312762422874613191933284618790889454491388046249011828057028343396915552650296170009981539721804151034847857981079690552543919363687109246190647296719372685078884976254990257771255222731141393709454156424222429155658630933963832185340364397089202564975341109810919067922799872276759059849168196075365751555624385287939475398939732641464931204588386466416132947518606931948528932560956974564293706827459581308663725005455792549080381720703057270714805723032518476734227820922579554664852913725938172552057615095834283641753196046083289254363611708153847718659257044248851417395171615560159939305162922503852013004195643512998644598723731743877026633518497097077096220563309125859887589555147724780602303997082461087086474707978530599518010337857465621701905809596851074639365157310655557228363809483827330144360741396121445855257446456536766694918095019345992690517913473259025784458381653246350548091103876791214874631212422452415315552733217382060781849168394981430955985804868569845703438704138780203590106648302112100132254536294304086403565687934820291876097841302596397093260452258595891555015324897433786633073264751321643051510000660353387990159604872785979616508352679845693327511724310582234754307891329696551594422987404018405497274153311267714554462697267581997952639644179261852222829827459253373931050844950154876470610107473883182864431138919338418116139956560136827942008127962481495976641178775086205239886763578443873681963034793078906148628348709694856056600735198478273912844610151800495995993861336055786881819454557678841402602975104301970042003703374408971193418376137865795227239834252809432267172400906689587622257338941273001545005408982605911896430388582447046722644396119894778383872003773618398949048025578787623894426295683775432091380501768760983803992800265298220403400384361696036714305890438850673421610105443059505920759585714126450404038062225207239569246517385638989637395935951414729979867542558301580083143305217498102888946928506883142209883780155730255504520501370853353000341395046784714631008431783414488697889665604050859122087838043712471385355675543871572505625760862410726336262139040392989222488827521300553231986371692861283361510365273816493116793092242537716554686866048829859417106239706334868497649386329210374506568014485318975445667755301438558674100707124060828456087504957435217331891608194000376972718930071402424295054262775296273174298709808560480543336934335029524851391484339638409752149553258914394902814825590342793469091130117211629844721112672551757101114570045675518155740541223872176394037216332013608159756014424724533412728244913980012472443769521539008361353278031504569730002758044242355089351762397856630401416829699393652562554020916637052375022243834770525809786039709928120525950201988443576484977743469311160710616389750940261093992209208245980722919455159553359773345217701782195633545197067836909387148034409528377427518417662543602938939555156563587388705562268110779615004403467688374531574982204703481928820327395802825154626864403660692241426029636578484614379539908127290420348590193117410929817840617628259357094985673155591270230831837940074945945055306100723450221722742995816781395302145307540607229274384698662712911147580480880422213787794087335640077757775398754885672705344195132851803157467624469246802978275067854429500979095034362902784376463565898620866339410952650711860636997953616509526926339151337187800539263415931769687019319624929066406941796011443425807031596320861388203463778005330117012136032023924455403933566489283852069443329469349164865470613271984319326364498235540215382819521418446147769599950435879141628459848044406035050013062254795395217148284169362344475541908283563375935506675121272660418190486595889341227976160242681912707445230077925176530590115918007355934906136675792988950615711984007741570709920195801486253507034765044506569257497984827639135989802328597585220865084053185486283575207457814679375159647113119155131786037164865351717217421731554092651846733978864616910408250001620293320872597209326244610277675580553491260013750009566646780890731289566203783428787034947401833902154534092305080623042359145829643973739614868388963660982462926678498607021854445506153271638891664180711543465105279282502643686838770537408286466287817147251629966282441829234211563124253741221624548381788003525197264669744931628084725464953343344841049706984428838631908062405987959851408997780538915903552656684448594568726766318159087044118384863569051472178259339304764797030322473423908163772604644913972516829173982125511327074170040175288953950149189313058988190309388985684150445425187094214663976378798749699414186764974484495302898380192552070466178187139705150282525321470561605516980028607765016190175102027508076841993679477657642781112663529576236431019405837185874201615497473964773236181312468720735627346752909119778090996144262031755954529692321177017637617171979581207662078200186251397279514038589210165684610152403814684560733072008124131065440618593263612456601797187913055482463928665062851530118485568164526551344598755037065584793584976869804034142297368545864847528132175201063442238151183691081091384947369335744092162671139223498393685603283811998823717064102890699368257935577419046158459047207506631797697108804614291932100838532918094866999451160879412742088380244517781394974409854269079090820119932572754480505369796098939923366654624558800864810248159189741683850122445090010963575863467822876855155339331853781466308459383327385862137173812091868337096545985692915599963564553686976391687703904958593447492769444103777536004503168487112419055137965766291734626428648250725563360178703474202891755107314477968389122677157140436571691227818602190842366566113114552384452139474024362371565234492772965621874782372554879661056843781862128193629579010618256491847056485654429299755320586589458334250648552261585485386086596443212257485104009159667367587132863161610166809736843248576955633976034093051747786270393493189253261731049677740293932613961343629854018316914004046343173383895830892780492791232427417209538280346468690749710284859465564114518707125706764989392974623811822757794589108874490529847693965493497831997363342783657639226329664283601593042068441269880262590199661832641848239742296442198420211943313905978273380013841041911106604682364628569193154761078515023258965861766616395447312987141348137604123245049897652547185103416911425957972232220019247451925269845047682937183836269418156816599182429680125906284953371353574654310158524159450311527877918393684525010670140656257763585154791272692515020775480652443271424912445065945115834267682134836027484554398394806924847530276768792437974229875801198757709536687834224624598585901255897336053981603604677906312072904381587955403691240377869989894756541324728206312195077400605739226258863206946895325029412930711858721884278515385263609306053787534329543344796926971066498498499537270610133110457210619269998451261147332228237471945930821855743019041996015408153820924833186833404484554797124458252387962004442677460243859907983643331459418260786530365589692743156842545255798071601049456646201370184154187910261667380478672947870369430013155669858419734155517288699620250064167373206311680319654908389949678267651206861788102694673029802317137026554445349166256796001634796456688993651843697919761195486990291705991923113291055839148565100225162841021403894856440391642299424864808409708612655570741847788793114230550222859244990555789896424908748887981058419845468061194371556180280053230923300541225593663406371680532623022899122338897669610646494289606829708563519842196298823268888730879295120415185255131709478039730132726526111036219788674245629781585009427207065081764107124285954451349296118416081615897048224700275772009281362691833616793953757792060499362636523861151087993341144691505342185335263055482746316458362033926079536382648935412528651160189513684851582893767579216024773572368539137595745641882269243194622875520507538701407187994323391140290307736324272120921527624541606804216329844191429705738405887467594218487759063614379643759161606987041288751068626457619473002032284942411833802988533170364051682637009068102360609926949664120434035423259483437958284835383618252287853051443449006791047591793903278375861746858448418044733714754705060783689002986964495665355003657090606170232196761249173403381066614492251421290492540615814157187017881251252546559139459339919303676654023941727946910834125846618079894953894627177711844608703289653757743112388575468187367366991971441166276260226311119365131932972851563070112739315675529742733259490782278883510100824487914199695364406790848536243472031796111080999175140349729317264548401807064967295767480746836132182764397918861738191154516325843671052817685422876185255339010336818652520130181150148042693279053936440988463154445267936409292579990242030048266578674171342628821891617516689549042732519607008973195582388081348454465512070954131668402171398711585063825817616062244612823484228690775853390579371742418707046935921674890048922609065730102595885376840949064216457865543601252755572590651502291685218092667738129463513953923544722411342186267367220609470106418223137359020214748652877137529474934655913058526164949587424095362658086007499430373426193179839459986176182855396300598184689011128062774578479127228819956214071837469661212839251337295546576692117110603219024013406593143706676989043173434453614612652581364955506080337487677744089568246255737532787074768911507562583489178554207045898052404669586142947526893383690586111741975930557970121924897359804618848970523699830191864999128693969169171648753849855726247730296250387339433444534183147252699982838669942577969999579653005523763944868970160735349495514573708507547673195532454883687748203620732578536715255256642265028598477787793769605059663596248714668930756337517788678089913134558565165393748172330061391797800119922885558833795135650580973467012870409138547377607574105482754659828321033272522339123224189828411174349980919671802656133124918061777063937909617898609411588708232026824288564917026923675636474630561000459111259605688878822999274591044439826470986727221855724959099241766345552359199623074561303750681841416522203561530958282117108391996747604997454302299250609181916921077560249678452145327595969842990004937055332572544058860753384649710864554319765027621508062135507135414055564438461359607209217563111581625373257395059604585957125260711439510722127299530733637863788724937336554055041164938633810879833034694657629181745811693988722699302124875362451431011187319144846188787926658695809155560322365171875213752094854880846646985401966418929121739406532641039676319435965636105607734434648718005695364389780970221329810971130141475539347206851968711714508527275125529622473373520722340550761066305346608236948829899133858110153954121050814807139493164274163341715123422768219550008023368497731690238076744978008379461301529832917196662187124445558581853198457912096033882530032496440142394127115259105476531260587775824912663525951330398306802017650341627680249455237127682117801256781954018108834522703898699859632255061191945569055713692122005594743276990160546549000662568383042347021632300407121621137229829778855855969955810172617571012105456689442115450536201407305926350134011468428120307322907495646720392746996147962298075333031620623277885455595914007507704346995052476059192262589750574366599685253880317459251553143453879169961756178172470158023807063572688710702747636835806682086439634742809521104844824196913290368849663198519929758763682059048882845358314443700916585118433601566740307147316137295520334888602505385600879056350802851070343222775605068618770583040919742942004323018622721011018310839839690251248042064427358065255862499958721148038953501545012323603379782529486765337601047576235454601261502954942630093960500944266671976712536973021218483116273426711286808735361347137672820658395354977112469209523479933241830022028351909512329255275334763952139338870068435091778769449187991984618884498899221680933894035619264148387338936946492892290871682381091752465924103330444253258282426041139029362777021507541662300480310088112502017046947966418889226751940560704981010793728942039565936473593991161357859032368765534483538147261938265785603225320715252952250661956773335397880057387543741786394472710953149499885811110318148171399994872384774932785994165744831691927071670287028633784784207449287534978690064574204976554007714260316046198668343835348057803358873420422246967884934460442774228048537731140834569436721848860422111027872735658927761372793829222962348272131747455837506507014274943291779595732939606657173928546328018822741359308647464052148776011938840976475427399575590724443702081704226836760811148210832124878785892913256226457084110021115883286284166837559299367110177624381674832596451007023677662975929595435368933943694334345527221716598220436918243645476270337029646029304771060500989034891131513501772759577299857250898029140414161945801868473946789494932477032587036124079523593648116328762263174057390742365528989874868850148303651096378311634980440864245286319347124023901132287208594897950462735851511394598212815712483846390270043685742529733716336253148391745149746654051974886174212528174223421149990323177289319471982531963112325900096189513214759106350554834872504582777510644993710599807275911105484924040735715565222571600623864761875940327421840183996340825229851796671017183667664798581141099011237316433802483329310906341442379954950502626289569167228486106969874515226544602535486567230530958103986905860947078082039751454277542869143911269779777714836355470101240727743907433407862109311491713581817840663386471600513329551103161884750849680435330589730338321969542845111790559344020292889084908048769863174374508345035043261841852355019963149191328563755703772115539352652003666351732786358830610664897082173333735479059661666271710995122790965890785973897676954956818611390047642861175172766895314026176956155035285953196661304245822239245921316538441681728079373798505571015004579098273340305384613996279655474604252808810971080126015618731389455822601404500156333049476050346639167335098466949363819714527449028886220323035115797823542032370141057665738703224412585732270093683429711601950479919834491213960941458942029872993434790034498990544613459404473986790711992542868560183042367525702862084584678400265298501201284193354482357614507053930679925490419643753860373076834114535262644165389173271532462573597613298360358178891731502536478208457060480145130958516124394092027951788446909024678261055485541020551740466819441841304078556544730202429386938067499008441345318989093101547635218122020010230123725288517677395460334304296113760901040947990778972083585029858590211556212394949324532494095551369108172102934750420252608009161875012583938537585842943621169863738579645956257518200877714364279824024019497355578843408399491607507310451156474376951805744534541218036984905119088132501008922397386083570739396902422646564566346622049657638365952566713496787381649025861039873037835937057942328052877760540830743473014334087039970995728892290287364060104036260781361559809934301436306099793984506494806154739040384940949454165840924661546628700710517734755218819852015408905384238034570319026813383724691267854836206499531198288358072732739947095585642642015454866437129204695768846416323543284114857079907107495714288428895196387667184619893743992338758046722031273140928231862652247736931539670536093865418078896016313078203488240598495453767700056416295154956361600054779485025367735510618083779704537842709258067719777150888000658317023501239297108266807338664534026297834582355019025886169478734972621369115583736018638467478792798047714397161570091274502190650973990885568069304308264314086553251153826876167921516746832526327220533775546102578690543384155745734640221596500021755155006483094002168312391757889605534777618479507078001151668154355473031566378467376929753576183378599326940496131752429358075848907799624477364506041303551522356548003228462710438012119589706769726400568775917826221849912610113567913543742390317503572929846783090255843526179212953780497753829082608215452349154128301506196257659271689222524464899703074638908140381052258946781862951904034280179226152458056932982875893106210544692917283954321990174553095541181444520769547257562403681200103967320755805219223606961264490999208707172382254219465281513334036628786749247852151740696793340770231020008180830211170187219623783475957171812548818799948650347364314084476344441900970222793208798533464803455015112188887676374142924472200114535052109003116374940174179413045994006952183502580316958494933149472746970379694026437390179670131776098301517597309366583849881519973216183783130200108379255099188317914108155397747846155158192463019055921135980552159739484668022704624503835699268268217934911237153368747093547103067243920706218816889548493927344494747827041015627405173065669781841678534211173254368126712142254612763946001225307010651382291307610979645173667157672429122032348637189867418819916649645252884132526763904668922328947159979623813960264273427798785258540066868298870579029935706315617490607899803883313957601449239449739154062960119653122918320988358569894350350247397348660078291290675359749851303207670768380637386946626652878130150550441854770355282600293241848831461508347383762785122428077759741559861081393716427243080668939520529282135860623316151191785257382241224831043438014441313907091350645369978482958061814619081532507470103323144393721035243962160312334214438580972416812328042749624413561121196855940045155045176463762998639178472264433159193694914765085466280053136196090730714108145735277869956962274642209086167245767068774303265181358865759009984445001069437280685484660502584923903020655401043357989291221600523475623356512507319078597567374773968438372849333231281801571006021055448718351890223518411039330321046885377125765737306046119129375014850745200236296967190401502217936773638954069906248497433625723777345204506014501268707025318854007031008838151899516921437118552223321502319219118235098118200811140754585828660260585381957824884020148128171651640841385013201228412163912273223426151917323336676723995262502878147126407900266165653925807651054783583290119041928765615876366184577948074333251815212448551745346287029014341096780193508460335725295204968610851614676866715796992476004467454897546693402872856562628633015744199899409271235003535226139809870160312408886408986958968657318359166929017392964502596612233876314148303780867004889059501483117263847033588721366818088506833969365012426701036259877596159673845130724757723664683307704941348068980983711702299413933137822621658239827976732329977683484677265198605049466862402127615483965642097617941322623874206680156020779355724054399205667074323731018004927178562624822128018705832479441457668889534741280591561234526939393248042817533718632774236885924472981900622949582250972096848969602187386574974274268992620862128277226745183883658843020498492644345065397740833166449763401811350939883078065410060578221365022357853713797244566418170394796029665852118668679119434969291077841357239977278364600284158694051179944511548147579865757666129509899066267610491690222946706546877111250150176446820475876511925534077470864597968563581673798527075897691076756215328891229587045058707541302888295645259356212515248701153504200097217268777437450759237061475788062280774342367964878823571065956293544446457456737793717982629404807216212096656165917142057298549377023433674598486175325990092144957473749216429069057088099352965837975916964943883078634107690202393406043873493216437970879895162181169008804297803473736682152647383650429204149428324159856681485710980490082998113129041063206195522573456995452285534054404810063596835860664463930286820764532825337891807829785205913030109683396096577062667262679263937240793194009821628464079985625743116851955871923060352543233844846820903551745875418527832373428864883149736883403180773645700030583432805938519762227350952351361781947285960689268929893405758666976851099768418041118447477409966116924600336319100905005309382725684364753978821109957032357295003113302314935158297680888640552168531900898817464569376114048180946294095670638285332150326989379145384894288036420365761863232913704548466318620603341143970527763269697858306485347934554882367983160750676206267673752445730202234744251549109111430709842601385065077135931373626121288094664099387355813849076151441640465244236172881087559959830851174285909389430674737004184123951889005764940902960096298701214268661972596569221664013526384568853016876329268872542180999119257840882007963282028122057951365864281850301263785478533839453815696275477762970429305501713538662916741014478857968914365598164507983145254738092980876554438292249949473944350034544290090800864922445000038016945391311560471842373968956045337735687705660309097183752833354202953515831580090780673577481814373898151173066932297828980599027548356361885811675568982383529788200572546681228094457541235241570608502419152329263863224018073472473630883586388030697552645412736071262598684310865943996055767940762634691278480278506246915387400527151558911747856746287506313329577175018724435999186353819429335011355851360802368071030132109431576381005706956043254174975629444093623241891252665078552825723960974941141295730326220081153133287583119142289216996513625980305412675553608473022439382692049041633440903113561397792439008915730113148345856599439718261813845211335362389125971125666270431294729765452585707838525126701780548882213937961068699647503621296739844353933764767652818861007026077680734496666388021085855270785331627225829653515232962424642678443332338762142344482974360268216866056040431456233798341926996196969504479166264491357637638973619335584234022001411475989315335984871665748025889570876700466817810977059253443860148314704503244470168972906827297786151193483195678102479052031270168413430667224285817233723771562081580021743647679127702499303913020769977792814566488490223328984586360994986396338888801345864888342013344939218480885053139020642704637905196201970568386151784913516386892671181363530231523943428959403424237158682720516562494778098438104249754025566592045687195597470168708844651852909945055763031464529786344594153557688006180609727632496643704661848343820975367057422257049485957611830731450768829067670604479945601640575307834755234173207848565648218297227330169166385354734128863596194036124006054732884361002776455350397786417422410997973157254516766490016026853567552085444766878950486980145662091695696210331114389857267073432217475317331158072038536836749741560786544708777637211516228711426263697276854369501274992390988855609472369969907644195744525596622043829571412095999292611323398071444630045879741596950504564683868772677933290879278673800987187376599106429715985099955383889555187636336612677845100481998618660485934642198826745045463134014817542913291343912136509412548268878367480047375544969078864484759923028807815310415024063148349617634208795102274075994656664197147146842274021270837817422232028086851943851592834213780447614205677347107962982341292083498667031830784323971103435215598487686233425017483533579105262743923780142487210061963238221304589842315131568963221174521897199274071223004266902686069088469075218661052837011373073342813824872017005977843150246594681935040862912026241586378449163171198507394455268234917170622714499358518519082705344386974831897733532270503361046052883496474496985603801482027355091745186564390893771620743540385922042160406030415084766896764947273441108915637913274229487848633027807665165869469576103452731928522188553747187595766868905579817203789791325179935474245215361863731999996280965011124975431021896573579310765171425863029038718838113043955690476893171656359842656826141781534153555745397093560588395278852257517408514169053793980223025966274516107409115170783642678836236515320064987111832364475300972615988304864328464374480974795161390544196326114407870900420405258376986174695586716534345258147542333179488589956260551839542396528810605691821966658614315983003702110596502882867205930958101642745388511508494998293835331677533732151503417457617832768216795320236607960901033861023162135503662936884616724155705297250815033388744004545439958056563130334685629181978014952708705310832617745459169506994390524318321243394720137104409503493664870665903689350717759843858969574917900523782313288618313790858711314622120864676172145477954702138555114934147252999866876982449979313768618059070066798728817976515001623563128110518602364207047802725997811882496026249683263829217260764846774427034514396496704970034023321043239238449723349375303722069534997694897937260572211377366100751067184160851339007422637500944030922270173089709212264665410478178233004772317263224176669762853297790979122613484359304814400753003569481440703652368686464214160225959796622675338539563303647379065540889841874535920829298559998123580654903655475355489187046260211984018818463277234328380713919068682657526772975061035107147516064221904517942829274774987489906258035788918878244966520004262932771593554025818093047685589319328244149405906253705282492804372223775665925971927609700398972454089205281879984931356354145127756750022880886535398515194546941642531899491124110462485663065358821757931201510846092436480788482519938857696681264548814699897123804486481066769910943319916114983134471922047006120687653854863892342786317052350749448208572697007095376443142803527275352306700141326635518375800626324638888719893171377642097347502453140304431143406437726885623116065739016205715341510002988208034498746829004871308003218489288617001709941405459505596464758595112732938212334189362898078035148778780309315504695117640002281168126696068325999082624155661601830125410400452127216780888097287292224209716651177860683563783999520729177075346715622302978009987266950985618285614863089001193507101776547419444943043276421396507138796100516860594310466441996044361677262512352261116642444951907976997012686034501679741497219542623584625820517600459693506669979414026661650259660779512925148968831520269739933793687115971395139073525522678545532191326674430854185464301802317465847709648863425394433987165394152729988666201245126015927758295176961153170515755539036936666800228301604611434482598292386333133413081624812848243759393745286443306744644924451436664739084305402928215350828009962631858876269079686295254359450730343263772732665715628683946584798327868311034876905485095002525977856566454494068336558980849155659929631871607707598052315590112536667491459280928846566106052147551573074868787394420062839668319669220576503529930314490826563428766816340896547926948349201272514321385058521448815648384834872545422930315179445681093211567893633555307877171363490470484591844734673962783786046623163248601311334965658364569537773716400408942733033857829990557620088321207605121006958197266686829006925200586881568561678930531006417280036624082062122862945908529125129046061307515846043874888351426072500346498718011805496906409191241540917070655218740490566719899835602081369739252511506488471842495781050719534507979116124061859013273885278038317199970889058558943651496492693781676034750418406243667564652554443694972412851308796542870133008885835619432706160310754046090063732445750601113875641281111930495879728654448704427267288878692741610914268616033416804581776623806674783102019038622453529717406448577420269749722368088414247449904541183318960222137363630735771098338253951824318625416834385702545026296748240327040244967964444920235013929938624669621492962223346906372803941039184777507122247582808077164815628505407073416174739137300143499933137229407434237479003071926144106821069236873325067404485974730100766566001134670040339062238376964288189834446872022461471642482460602607062989368818182259009116997923401692181535989217022089510882066697032505437403846824122987323988963982569043693988516453768486841791494333938279883989969231610132563125311253702288786380408573224785815363986582183231550984708222558994850544071996909620708502448474064170607703487370545326207783453321831136848615289825306315078610240760887998098864548259192714042102370652537610251724680825307317822623817712683276725039040825687592752459012213621046680616165234463328075494980829891461409011001648307908496295486690399082575894460190071205781111543635973876137300295186043238084557439716325967760640065342839749832703376897794187502053002212486660855939987364463573837870500054739386258895733330950224453299390702185135576371892271978835208839334276945672192274893850238828957038043174494800411493450831586565793904904079551502682791390181432394702341045735034202908128401715810079449532077409401738384513457162746129777012959907149509262403124711871283984197453351892566394601845973834598723323505578560301883238583132671504011661975069457213955556822458491323364644557831842355030888565442409657244939363937135565566000907610451592623912187191385631017352003099807636267647611506505026281249025629875762245417113599524901505606389440845104191641762513583485674631900260965808743732448155287922351277778919224907496542563265485314157877923176853484162350303697512915763620309521551669837613061268582349819325859905280266081928367275168216808760839105249628353780847144086774174012998215434577426550887336902647253269363517613248298182011070387016151260179408031880200276841714106469556054101985605705511670964994333918412605847487643971361090266389580727183508150253864714614203883436782754989040381547076004350273819860055292836465188522307291525019754141913246771952574541712714481263181733305803312237388128142384354376704049360944410016626983420588107484649749068990777040184240332721775828732150487355796518804199645284145698515171678748217374821909241142051249033951386863149281044583329400132767176974648943946726705738381733640075853622077524867563059165735003419732124968037436333718026770541933074960240736157949143273610339806832857451793964659904112103449540833135165440033874804515371381959693217816907765040523537377890409655763935657396193495581858657243900531136908130051838125419720219495194235561062847624382412190968175547755193244320726178740592011892440853875880565587821287112701219608239373797205884330091384237731432530624823505673346021644682615725794700796293434407564999653277277387269627349311948424625060406891164149019357340382227314782012684255580433790691854106560557767160895095907403001133406803734190565029261673588540875414354562763836572392773860373846921676126124205482874558272937084178649818596408518643479678674376630955164921203873492244818068127268772586793941950366254948131784417510738755143515670903383292515102159810067191939808320450798073708888524787460969966477089067627563931378534807676146846949866820359746359489885538090729977588526789286035688012110523564130135581796883322242609443782043012345552421524831658656420416503991550385068739485237499724874196838857983510657793845758516089065349226859572411403291595512579626229762038242039769883507374705309815480954832800147869538952875717457914559195949906189422376154987023181171395031754580217137431713937791340486351559765999924654861334245663130434681844121042804980831792132719503119251413271500812133903235277415714840775137412939966506890234441596739718465528996072935986156753646028929102413032477697537723072352070096625060937078692646574198241122273257704086548738448403839832889438305788856775842585060351105179528576582247066275574192312564156899934053128809179161886851942340764727090308677484538585899344055673661761228957075502944126480648073022455256969753050663180855175604786591651488433292543818744592691490337827713065980896569750469481025862067122875153586825202108674449584854652848418525459422340580658126435097229186665236670046546212369991627651893004560025311472521657015285988543633517643868770904350602506169916406458951466568988937212725975975591985702495298758140286070632029134888979227616098505307208825360833534933107778601035592625033528995933925200035352417268984656363954075696915151651437274322020649679269346332728523369894571623831716536223952780966488336963871655329334729764126451111683945519658605749806355360514248464867561468547990738877328169296942727984117071499827250295448427615874480090756720830679054726115249206216498100461252907891716988260457639629604101622147628856381342521752314335982460395815343633039416340021225474107493735943033914382281732941415287160844128077851267795076689848529871227343220732328886035807584778998711601511601920524573294769098522028656003578595445914342208182946629366194565951497558503711225654013894191667077511025668989156762261794193405890857154188087887853840135088395140423287952678911895192612721995068725514617478499147799717012529587348604331278310005973955024601369675987089472167197308985000979180600357613514661776917303108398930830040618759295040512886784425970688955337801563288363609138262180961364966625745906964111061939905861794565237263026657102187215006584384844174101226126842769229964707169043403714930445900572583770126266721813584938603360227578066739668411475820611526110099259502148364402714024219801801812334055165465316218779313334451593201137835968404684901113108456938926925038779157752239023710753693028936661207695953732445266667950805053772129695323593651899850427107272312420357215784156590121236869131618704023209472657446237320477871024195725973070125446030353221218390142955120271218608127172067295136500064547327474605426623419815802943196142100612933517416928149266915801276373247165228589361411970089195476066343964491263881677397050518569089431091275947997085941820821866311746719042535414214758572743838881426790683684627987257201471638276345976934717665634148918048342387136492496642324353301219411890120992112300209422242818213993722653381283394394274064335012689285245099856333562860315207707906437175391050942319796420729761351278866349331246261711562516973557149112816003915952477258822192698239548730827317376988087087755829261000594728966983799802016790713636842288093045745367348934014107482110771318151497526304575337805842973241442155779475035895708013274706593733833740217542303347972223279651591178866763021601398303539224676574546424877010010202911214699426148820601558489424530452421069815493324390153517415011628321292138827655033990326768019439706418242635426168282473150125471592941953608258133956618376341663439340555428172698882097419260240074427029278242184936096446120951787618337247523485747334242370489427332560639912589679249413368401076050240081776858533521576771558601993399351252523719379545966162147395730567077326224399896155202828999481224809323494939421856814261259829796365681295039075143126390493996941033772167285809126209429353427720189726294551153008285742007973479660093077343273942255680918386238809471991166468602526297691543138616832818756962545571058770188798340071569755220645876420098944112875026961788812149256357631721986776363809651109761332201851665635552100482056192921427732027046613749822093979439252978369447340668735206522370016867376300077456590647990214736053285535455011076906978318082624035345629309594963764981296388296652561056108628750696714273972928623056439831707678068452296598772374566655672721107153705745211481240829485599349055080357485502726702937660706958621738172819928648887004282254974014767933391443984280368869097558397831146665540349431969978837032616012098107320010134780894537836888312411760669572125029879893604503691336803513909875270330514405623795386478946830806069203122604828221731799120663686606633661972902199333686371256781874362077745925858126852314998201272373701191491822331496458159800651492245394893101755428111915228448472012381817320421014769444128113417913362571009183680255060277951258191067969909178610714717665262693937613625048850433291837399383427018937809132050734658927108991011424695418652767464866169295212102936154506813016160756072448500916650030944874263307133000498787114616455908901148754188804626588775433036448188433097133956221783915261590723637935367132287004334590564447123479455759699858918473377250784914720638240661326221498910270541852058486129523212750027826871450150336291190476438148221008470996864565831682648825053078203981503809959926733229443456021552070786457302967355580957812122857308318230676365044248695435624384775553996236059771916186104514916015654757416172361360985419375174435048778233118459780209304426395253836023497648377926290424006603224929071236424477982212467831227312425055198439055402126562606120453727205445163155160397173642572920230695194664725194421114700824551927337074677172091593745208710746506348827446615242846322631121928506041557609865622270048528668339582349414466181583448244196300332816008832605770856182737588403425669455785539712551465586663315122472646354253891120703243878462233701372047908089001077549103483646810540398333617312489155883911370825790685588665924774233304041506285870473729396123962348804037485842564991875552318597985313335423433403266024319565793032153759675874982293780005165619272154419169381853826567411098825385697987234596584307534696956259839028575154940846690600658470648795518655882401703963800437615990869604453845869118925275688153904083607054380833914611173766965776199545668361412621761977389513452434292135805501414900193308108590185661921542725183969213758243499875320116056354993142133347635843755062822692299459895350705567060446761019540664294744701552953793316174268009489808230281377498547464081236470351532653168517535237917222203298682879099720266149880272450689679513948532067842111751789332328812124637584596590004582089383123423001412122680783899313376218550116333356689382173239083208344073149846432281060454712394020915178385312113671562844772131185448210346614763231913765768614766148221929066314848878952859205323717792329353018708747232147310098579854567108746869498878428216959573800632343800910096890819027632063890946462552172209274522491552252336960738980770927501931958078201295631883152090032504520400483543810158567221976416866111180122904682822300184347339266685176638629634275777451661934078277225853310727341652869042550984853190506690661375043560945729245411202197375098981621634063149290524897510315297742921636754714160251504486706382155720833641570796191721669088678479366779135728411251323735762088718640869472829530400313658887413976032560799692455231410873701084540064616310021974618730848022629668764703992289271571637420573116554638565838320851472398057975531385520035100049586798335266695999934808049066048620489740297763625282213099261080479655604825343359132743632114270278066493543188014618261964075398737017591463433468469787938156793444287868089599025819963871280449386783542317121937805169776133616242056081343913863159652741475526308102552304871396516751614498067477374399596343712092356650028889399506366279100463557567962051754434023426296721295130028895137247268338534789018856077844302401557849071012016604388788034317815196310158570978779897053532354463187269394517864993653358014698498425328427808214821138986998383997914525625516042368272460868987992958847399906751731053178249604804792327457929388760213620012516942839244999705513059886947155813576809454314141161527071729544687594921090210656830780117120215304295477103001920758024409273804013694794048757730725025168662546539531622968417817297939187674030845658141078650242446292996903618564043573663091586177106900138802989933228535120137198707389587100254234039991825041130064962000695763047492104320756737385276410375397085705152625170924680759637251652638098921983021604726381263729676653126340394642356248120003348382063140892757527450163017099751567230448591124300719239243450767951574448259677188800543537031272437354827515306285021823887410689617133368124441594165173114979474988172437296451912517025819802432375021197533473798077646821952715949351108099974941199493690906585112739143156993272483690079235265172120235086857579352625246903207803918069573658574838045322100338707249144814497874928936083837586039111717570370336439225387454960397498110329205865917850711977097872969766138140225292868776827644210684468131881187656959679393685996628535411448224609601772971345091748512183647567019518437245976319091834454412575798257975046644073446385915948708758706930295465194719410351977549161517993008672185821648667021738034061039516885221739537310168759891590565053647752910688030166863888942170699849722696034545358712385347857476804163628359456477292115289663730211428871338848142736668113272204198564155812223375131618429609976244767572824055237572160221390535944320869491581476042054412301105777854194724076179483133944468244460545736772195949382022613599186989329240626501110040191837269819143895115345874114500943402234512798060606006638802320065030641759016355726337987662585327518723461802822297923268840341356245001921085612567889470191567907458401066923655214886077956298216884780922606092710162168327674957643911995953902638848601586146309469107649041036033214103959554961816717492966204921184776340047695916759241942621150808804083763461890443318791654874879723077272477824019821520364024825855332820128629156258818445495341418151827556072361890693989877996770759759360720489106842247482776178050076897683081869520609418343749581208721068777058267804633978620832166380546804647003787344094151006424039107144989467041807366621082040139557007049054571586768230260440558503299950476837254454056182153379887731982624393954087715198487685844729624930904008814933614026697167813517338949162346497005314279828468344188187257953732744162916961173520169463773416857889250426993422885615743910651012734115874536913454786012925006083052599364713451024177479319413752289597512224426376091101920739382666526942180173440021204907553454370018041698074179119103173794387515766229621281729335872768910275703629480872855721215012670435601455794752885499836740406159114705984405920486814955536036308342923648420618456397619416030635717583594008218851691925888208662157486521200682556782094160027087868736451881842567791534225423398277219524521372110060223152805348352837457807957286934035306001350223519100440265663620204797651044656267172022141397375431566166481426096095510258813111018584916363060516793297767023283270614248014922163514658629935917528875692974079550786695210582089420410331526529010484969271056611413729521005639136296741041246241236488826457688490630192508539022243236518608745086347086168735735285333206354330906351421073393420756393695022936188879032889302535000650965339585370044265683228417054487091878155256365087551189355922309499445721019723215901465349496277740780375830974646382512384414728046999211899288119094274227378322555685141331529113413353441896905387232976566838518434518504650865313936031551253613264224469839949453194499547706576708088043483222870921156976881195757259381997926275458413119261569667726763120807195025854619655848442364304307177533962207209636161717359796433411165567734568049145386890083233575485013900671900170628420626940685833656951204927877937871089023037979071896350931242011692116304958360665453767411421378257654903976178787761642903229807309998250489962105757233537406550240226567880779444711931690584510760473113037593153727370525427966996911038946839699334241016064284671693110264626868240380688337682508320723492638907020994509471337412334501762586688014109052382941081694405141545920418795120021478402535624287486675381001309539473312750490368158011290521077038640108700118314222510849130648215050672222316393123034598015632448687109438335086367236653440824481538295278882865840272015320126894633572092151023900222699341809988883811959301316405551359399944721260699907303086020146343679688645764601541679586390663922600205620515346524252136036299076917990130828765188177787109525806397431803225972613730118487448486981322255059621631283421910748432296533008740702892116407381503206628343669956962204176551814216134753669339799619811997192822720260887868162715907026775616580269997696412114444982220784642595075664016420811674596340048745083114910954953169331360629591526422738350892518957466015995157137282685272906449249417722467870189966041100528373641340271511140153078972892276913612842145498537090988957998070112508972717286647693773157661274901665778693673586717876261644702996554360232793935340555201351384912703610290534242817811422597712589524283406280805048309847626796978148653299019264061473310314276322668898591678311917816084022436705186034123654665018182966627657039655350452042559913259997824364313167045666544321772792138796475682212276998275098859386993599639926938868251243560458821039221401191240435397070514976095098840737575041602870020784862451183530413555517164112247130364030891227461660253604872636225376083610147661544155514748886509304366159010553405305877277262966171339018369030357758224385402318139058950239954909093380138850735887419063072473110385689051680907437083956019484583962442677135495144841984146097265076192653792752840146606291687756129399657041770780198554434436462338668605469229460115972310708141134377694298430214894579246918136506204412497245803651451956798482291447194539153104574927980588570783725949375346196186007317477360113310998618083413121316147127100204149713642566267923621174867209312691212322829861028911290026915756740927969542610969973064888412155130636898167495106688086287203313242276187523086328596660136719120630528288588227327331572055201266956292833700230663538847777376748278996764276083042738711350226422779887608372922707037114192710028754946448330099745420567053949734050925527783231994811271096070589141304174696655318580823696238798071435190067823052063890339024044745816975884685513238214066361639241394937433759416208386322280328536058534964953400885315970261465177708252180497367624119241204537056229314300881448768438323335049694648113484625843497501143730300570747277393070624370892536114303283045430329147301270617026432868765889370093448504653644910426953287681678407762901445776119153520797163805563479889216261666719648380933766944282038523853589013000285185908129845063944518585320985231691294582000803918358616664919210308310585930722224231982197569062321077229242997533099720541138147525638312855869697193072364933782474583956939747974618300256739788681952619755304225929705479379685225921611722915558011691619074018879173451065710158883697358801183377222148554779282279343828250495765835325732925110875986056442653084439489000753962686779053591130599957157641374712116417186052886785471696776706278802505729592674448782318841843761563944204417185190484885066842439230400233983908226375836458762941190662402970784304331372446044741077907528439076838672161962723865969064108942408931902946422359383544964642433733817869879998337192007565739567507939507684348834955175018027591919185301998360048449109217667486971893770009611525706662177470589016152657671666267489034011052394473804952647224611857807774067531000746913885005292691880155985517286803505475400019799179277890675037104070989246954139989735523910516635572123482003947008388251797092342974468221295559962634025921781978308448751025038013983610339408560395032948834478321941518484306762609054935232935013746661324036988507079128865379255324161406028190378708971083739974814007537817784075806528544502376482197280980619763163613486082337077890146318163955562502828321760023733592046329149118579287838453685226279989970043810113889262160846439503124506814278803140124021996361998486403827716171695494987146589590810334212434849853408839612779136686108634039378166743974740236705319207279828929764290109203137092541252650385729597025471767355967022524350998689956689947338077819989685614963300836285479520785801917836585923747587789946070855935827128677781185925591931272724512560241501525149070206030515775923491211328428185523739911740216609009118613520596487596407553749132597619123388327723174747597385518660502290078979770865243956888578045046795695842964613769937048355942158424911082577965700717260172799387581284755655190851312977972752594628192660446656290002828228600489388536721344790192501541649854029129147191690946224182241975938028755992006664713514348241219054450645051865194947016984549201573519440485700571003589819931801177900507594897267398815015627365379963007266182138453134975716711528956587052726703867578708120713422997892119924662252054813688724427184936601856690216090501145191873967041396769701397384456171456923825782015386729655146981904731187451321921916897252606570973823966500348540336522915154970010622818103104810153377320550379223464705557788033737494377690104086913744699521340201857456185166321946946841722312083383217719736432406186571493093608207901622024517621928784022815256162179215624756785232050737080311019109906829127446628931765641291831844409545648491399785274371385698732686972117925620395246185530234670432499036375089269757542860456647133375173848588707206171670410090203683807432344268790355397712448001864333988193160303836890066099001813311909316184336491805934383634331610960926729495652808772604378034984199164855410177893763400594503511518266919957276418519256760787328804827742931100961060410862090662265310624049493907884089163784287970585637769856668569483674164232299213870827169306603835381893990133729793034107167095499258464922109087961009448812603116861113422667134806732702083118878608886532019920612529468961563303404606183489053078360467233481642256136130763739709088217830354028510778426824642424609959645117784860558221707811051134818228325377830520579371333061887239961859879238823833271904141816772280150896021431126869975967465320715703752408468995619421284326713452430671119617821046105691527656141610906800487970226056399678961847158154558888980348682887212048978062377962772857073226403173620143736804523335430625693671202332711268684928304051959644125854411574817781400447976994821350433740389185344374083572352780706661015534170475226952753530508955400352642623118724354642598389126677881342049378750938997957777673119516577308053351498661691118865494389650331445230151687775846959824802546959621124388656530446736851731676485200491617687942270664080545620810885006793773471044449444883031873829207133172322070870433550712029476908526100030727168189405193237565818382406559154920831856859004778846663962445565070842867634950949006948263516077205572088355952495339637178383577536785609988551120620618294535380909674145211969312378649191449553910847330452362583790739989927424630376752056892652039146385955395571388346275621694893665453580269078259641579409547895563803218976040553754856580737356685811364215580395807333925965459860659478278763120208559247811065802518136430690823854793483025238965016229835557007462850049169763682254317745366424344453313834455907360297888602766122943271091311519819680567103537390642672327986358490050410084287613505728256096773868458300758767984102727337553472889128740116731529813297125119932990632944580191436008998337661684050621090985449322025933048284968278118405750758129090461534619698464100895904406422660344792810668704729953443044052284414139944418845998275353289273620739746612705319511455449664005954116650808579996286264664783116975816955288913686285852712918359743707322904504637405966769335311278393441021800388221716375250873694830862919706047065916066779814485399584420733449513573419595122981224270830227738695987766647992660159271211205312551938438858322078117055143952213198298822837227982211415140085725234479847971114189656962554331888585661580232885693593227574809026330920112109931664056090381974517775039065741088759954686893437257875881840272503757027746970761130451818053398166347953465011454763826310441585686078587245431761288582665094332940977936753721143348550394623769937128338928375856988398173086057319523536195697698946587336683245508060989215928558995794212102441414349958401241118154269047303830543258808451272718372990914710916590778366436649458130404969438388006333238892298246388287345296520979725919287602102920425615492998618549468358654427231662015905157130800545532358250984176865080159729797666137472737598717773283961840320597098031432664867272714326085011701062812017939983296648539062758672142657783014208726397633556290218565219134319657437332502635878168803351272729901529061988093454655182372470952285236966461000687920787103075339219841758297493154653791869547841360703891326637752079663477977981976957209638352074848047577758210197649140599980360577611257279305481220018977111954904593613013383197089351450816456530763816096734376508434663089469146263987432019144972583014372432153569767101747261058264489480915662573605198012223218373692582445221978475297640272348737244386712802530784597475434527089752501227353653817838774088408087706272075097240682058776469294470442876020452323092507797537790488701724398467380145909283857238934839341608683865931035504698443189763926785717570852266529046988992322859084972445842014017584365451896165384292558980656412187762658427858915605963727543577657867680534348523385252609071963789787705802038941132592294365985703771475541977240555540092807302695203490064571629146360730614166491463506434884719337426223029498719299591463521838407717815375094486835153485165737806149957057391732067333552564723482789656049434027454236957970698653834085055204493493400926870254275829145206817545634439141168776103275382593827884865313345917602796566823100690926121766476002396727843719844679588126556424224582273972778306997890817708052633041186450934066715421477873758363127335991955096136782756675535133043197374624335857755863840264080030686354342911872200286032203769876316640720956017309415094803169013578404245643930562540968584465181985080315270020977377128438999186042128413656281533706508268651504511089794939631592070077584304080514259046076855943019908646372115743924325495241881275104026878642074423292718222795786557367649742038909367863028597554697191642475074529581126361052667765037054801588329507017244165737535406246554825099514931327781423800012365561537987722715473477491864656589285669989133347612869054953184839513665509204320541223410161856130989746377952370785116889396642467732765630046126397313252801309165905518518761601961972780115072688205055351819594339756895002299907962608579711152550149862919103809345801455336249128817525147929535091192092829872794023516580869511925206842603569700010876604127054215077465107758750524415232205619334562609013813530020156687476351890683672491706507947228747057967708618058051520894360008206029228560604992310539075027204522807790500222927710631505810545928836612481285639681178464022437123617400147149259817096953190597960025532527820661932883797886946739030234499833436153649319928769301167720432591757844563491306593127865909597427931909478947692758486042123668984788373129239491488892375050878717055373244819849821086478716020652374061412342766400208463823310404720184439070345108921438880766844029454611587153708773391877424177179589205022182662644138642732588591668365862723710143348679923271595279738141129390071776147708373805097426071656138163899454644506781058136565784819083227100286116147475939889326897287417575659922924545484337839150658377329414646519772127329056734493801269847507813912024626116252128796874474161340243761626931035361730030693478678682399161775817036698862606275008113784678299390774576453263190860583355394676255761971701395943006767853184921329542795564182220471434505005889788636745380803248420276009034315113249257673276897084175873608290519930221196599593230880547731169968364396400347771019672233432388834948932516979589803049480171065090758162993821619373810603246852171980415161449869075767707259195921479534147820139708857261558246993335150447215368815818255131620092957990209046831620809853691324473786371576228819890544485555725058805683144094976549270067355455785383261764212318199763812396211699006760905910857550887029100014481726262281238915659739074202229860367521111836458850092676835187268623915271706188566791006970071882398816734498823557559244674235958315846664030744523277529694804391908824956819763024226966411599729522353637352339790594902889681225734554758256845393446319662446860835718759751512083624714254043556468602819512024926914444896720385585104931286483876859212494973778225704002902139794680519418910695186966732061107185648477746557069132318877953572146642853169005811558480200031441597333760448118595851310802841106114666275756594602825475447584925050298516906581146250215355955588689184135537594367187033155263830015743034098138470774149695710068475686859281428181437750706006919340965595867012557211806829237095563684308388683088874705319520302240593686820723671081104860299202699706247842174893189626185410391231570780823828820800107954653459829614278159210529568840424495438372166417721775650922796965653015402722190844213080623745484519651531981457616603724337950559487944158555950893853614746861744533236097741949404778874368871556293913419266460646086677315515952964239999831449201704346721329136774942933832119518552614488413033218263730825801089035351979607727069553589484076856966725309323758755922323174173036560540521950065023197444832041368989000601033881094431828831658225138313447817878672359305850148954348953797321293745367152093874821996090096761252208726478392053298735777938369401654911042667311847363990102621634794066057019175406838612069876550080228201376374891755320513888091212863569162768821033933890184260666201951757044954877553953391553528262661858644876783409368410085026679355811459926969254162623499626350072295898929286991957668648865980368384138692293956465758495053237594957561592012101950511868462678626504502783012570251349341603854387513899798530067087041133615797251437015366241398507456713448894142234109866377642451278042653568336365640130524159541904062784417691212095743532852158556988543489126047766386672158121088923355562179685060503396864838500958318069856902736378254358192032547553230382251523529547343855221877960109972403215275539342202618948589459477380645338947989347899442281969013565032104699306544376812693139188695569159337765185003405476981530889221329080680656116284897079061481159747670515089017772291065607105493626171430594111010841138299027970742664742318398718954985707386110168347043549825694388410784737110241737235663218189628134456372546266888357353607674073950782416970196818700524318394477206505895982063827998468578102185514964830405946646557821822307642217186014794985100484975036371982411859420412334918491756584231543902346817769763947868068113148515905201603118984205394342212997501670912536793947276337481990797995728039457651229583429378031560667171234747620127045737659909179012781767083583466260671379994206119081777106689085215968190121181767084947664096533526510039950299911709982731762886336922076018560749823845617350389507809953198124909900059631297713569021003441107413943317203361176473777361043476248988215977967882931423419845966432694509300078030679701137730903236533171500370338786607590583552492916222136260007699203644671256157137943534027984076380466037548762065666020286885923606277959933692616993011516564493254854689355445440080186649203595835701623933217046844460907746735524137391217724887474815891482895668673288641386138327199935031475392608206496110684197621981301874352515848519083573169856139570991069905831265131135426505929538093172481927608727546108105470263797668568912047374482247762471958055981661091375265068542605651373090822613329494512378250153184399247463309883652088882149637814119862721263055904217978369720274996218124885625838566319141057817250448887997083062049451873120485961671225701058162870202324830644786664945844714537212584584215963482405733397789054032006230640650779813255303090810892964980322608972316499641761598716892253437979974863254822731147136320034043969308240740553450291863790255255982863602326355769801153674315251818338310176439362638527177321297724045687131549743908643243707185170857974760631578587930538502317029244819391123533029933831447987180000132055724035039364398092981184150835829397609565815512720293393570292229863167032338419182514397662729433196226232276835637746864182287937812591186414478649138474902947986161158142458898795164269743230280084925568611475487154915366565377004894630344305902002485707472509931568165147549987041329917760953773492135490098425255667495420371492344769591626924337437276559290583089819381539601679082101018655443644619506226095479513577811606572290904879018522718566609968098034833104783861999082746394754452014620776828442531792684547924753577578001056538543444731533884337126863624711816999589135384959432129046827048212591354098829310478272446107744416149998045641304953922790106404660865550276292062727687388662442796467723855503778011521398540828077419880757415680253078184116114797251075778276384186174841890754132689347809334548589337452135331779470530508141924908456887906198775185956911767853310255112354628553926816625823078659928878661685278826616157907085685447715089821768022559668647482236341056450304443157064105257154390785368165422804945829052332986456127788518470591468615073223994735969242544296874382425516502756590377703501153376922143575492046565817663880681106640588225662935435165142150220584230511706249020568192930351561667430757626076052668346948507872489648347170253286902147649759655217487437738451729952425262461620714849796520481886819303507875845425609791689053259884093188997734495443243656706873557379025840584005385967158064944805094648113874119953815428003662830636081912541461194009867309337479626336990221634968940707357780065184024983000508776413851461746343154713749529867147535226785245080804098435357538372728187464145968123242759692659870648163635375188129127999648483921488913737726047936698840030732691785235664879295041951229386329445022667354792410520038981934352132315481078169008847694829544104434354707343420868381188586638688629816131763851266096639113976107917794599756280747311012813395809253924703975851317221391458441512048782464776415344992591272705161995329426629947194813460659165848348122037515999142479458197150836841365140629731081480807874393871733605361853153767247536133615173920077025567686874371307240390233624938643423050258184349012286330865021984377165659350441961603846347561458645209455877407621507954690173110580259893543809278034642647198102466161358971462107892250361212343215385204404014544641258312650873339342355840127846724090761406806659041359942765456153752855232449433512364290888769881290717483635079895824763480292545639811805697141891853197665018297598748147127474033411494321512570509574502115066195628447093811272422445074709005221750898917838923931050256190632476086358132370518248495813414363624183132548754602621648534830350550704707927315698471322154687453777944333128421916142398975917936078337173392161705622506365885201280128386433746285713809521523107165179100072554203647823101953121264669172776009465033123072586913858609479412768936853478845720394327663061429930104821129532062175782799100892752156516357065251403933254872178311266079234229260543820484614636604294621000048822353574213588384149348365869705852876454993440876731785492969024098398514053547251005191446150389087537938199528910508690853001586485134926501990476274518850162964227428722344005158125726100871934877416989684429862810156518827039068333953410915851939750896991040610102031220441232203671463460028266418106450049974858512945778906891324750401270386255521204757068823384704236918791578750122726770566473241860104192883156974550546572484845952336062119012827662151961963694426609527121373609509025760831085854213503290856404756897211765142768141560267553859309801552313623650257645536881230082234728741215333310359500743616134038488659976412867496437230039186301548412352714315720529605839854936828534463187004785193171815214395227986148349549914750232034988592950528090998708249371035472959549407054608045278793823939682456149117251289765884366989929576437251183588771440411015159508582525763978603654197866822806070485282116409685721935392282241959527162882444889564125337710127947807044905540128418648131169435197055484690584146216429882090807223584177074722576353728814453501872129647714280106575251459641204880198831217886493402583708586223420843843830231066966960684444276854034071211594464682122307526855824575213597898036612106431449456012886449054027283838534640399082668829021240883934758435695971101671099450634920670385431683380869253571004323798809523606676445855378718850136901327114024474254292844123264726830975099391242121648131026852388342283695095505163628883330048085533061566268178383310406036151239377646472595020472479124737445268632208214515264809059250519615488918630475388434021675795492082448705030977795961107225445071349421008126544324806129917625484177366252361717664541235336982872490588560153882943846478213268425560057459164914355671387990851172604718745246159043496489978006810191565304413158367754874882155601228148781723310461886101815842491334815015086594261728646531877922159845093315595416731196294830283219000739747297766586746565243777224684231150831848143630950420104451679836329543744605799605772633158960162579154391845689477102872323582472586252284740338567207904820459666767888757470994386831682383632540132224954779442594993370204513842330031931475465502223579400654211139614697274953283064391245418860767372521532534508939695035729959885781098148250034870345217913470241781690289852075755524732187882095462536349863943460161626630383171795822408907900754935004369261337748031074857472006746206231037679669657962508101607046161227399692605917088206875217653235545675357477190053227173776292398728326282328861525674608447892064805857415563439439187320023316489120124220249544173375708872629303463278453622145641899947178077687079118190166707162084090769812787835248753382113699721565904887725343850821604656317132536063933971842701803553196708067871175892910811858001605038500935221564206115096136651130878387659394547901037991727649832471171064201357817804459162729755264388339311186383956372108387543768300408690556611476648388982567268395647022850569122587063993364914791714304904442261637747526687729493513787908277034071880475056181156288971969083980130512212697959746994291530153746406392277062860018681799347109498430583690406833986556027897887441137558572809514431691243828598731114682911663307523146416084800053636589440644736784503451792038075062542188129017631561610670698035286322411192066926328870732447891551606381308632852906559098089822992181625383380626011704214709940742108775737101938280492531911531827264030563237377339836774281551838620001319642203468352403101968182869815280917240782126237632858003402382050142450490736602223940220880209383254914309325876189320788976227877035202486837263362290112025639998684741704025961335875259266637510875666102988825643272719089848568420899054862429780846403137132599909830590136078092657277284068439444222930552665331335916131697663135493213907013044883926665366173717083355007646616021393421669683758436090849762450782980250691073998352221245763314387117923911187019348708867655548441041866504933726795828158771265052267816747898616922423316265513828998699359302758862288427697228188036900865695869318668553253461738165202657699052693507346589997046256612258416637195009793573232134049662554500024194429735843626305656728198536670698346513694692823909760573604663302224539677782157145811706891768856863520103133030787644238240015256275585574223584245338336622378691081037318395405387618385715842349099193297167484907680431190938066103521939038532295849698529621736199150464329692754506087563259350443532852929666258955462460750210735302689541556047254443663356181056410795432037381422446566506093035285473812858267751279898788233124445824329413135183248245406777976955274106136362361209092868046612576106196855069551734641174699808439010997477056845283898940003800042860069870057513632961298267209841766566187459111445240291595179846056340261043218682123882812354677613912827992491376455196856958287381383275185877923373940935742963123463929446971104567473771099702689047233734388700326330417974848739941975554883430345584144982237811514436224223519207056548237998867584092983051057530622138124600793582761479525509703906392841407441606445524908555852945636399616310681843725293864089960611059690422965538816981279720974127170370923810011297947656455951608521871552103421365018050786021707741046692494573550684884483066419783642904473034440659994884765242922179290926888181784646394840356718182537774917358252845355868690692220299446892551421512343267986067763800410706858353045351808790390385893877595340233365030352778845530216762056182165638908092583587019770180932781072370147412710702472998106143985925338639342878937792798792155174471066703152907465620458268431167841452799145479747334997654488091386383264795749735578079373896625633448089773465404092464042815628034811845154054647858016560817005115052007015252296540890718730704640230911762432845506141496312290453851141956212285777454493833109196010534854517576411666045290300994303295955354740870571920399280353083337015177871139936432607937411944760427187543253144032760511282848972171717992959497708521751061748045884809686680641273840683837496848131132816390107241989124654976825138436850904923713631444622731270840065374543437827823295726486566665858164178099193385473257899841526302454998790172870172850460895349746066393495734674620024623483783707597074109582783430651376405199079716952873746420169168382135494108714705281609775626257171871163922220203822032192525490376874308590241310859585266655694905739862879922833571002510331185999503690538506305617306175409086595349621972435806331053867919400429372865156329316164974135542103003275152913386599731325325314684933835503941230997387275057589567830027829694265300374743413528868819051633068975539722160971726466976297926398115871192175860164758943397317498542498410964594647621654059084015882931546224691164121506170185459023058963837087458551586088387914030593619652656931459207028801129716554869401900671547148192115861887476251600488081554418964808837830679927142780957339895574426527648451016937536649116863800759386503005778673025032034095399555127918632691545615395979144899085184462221530949156229548706912181066516312067719922144107919600931594303308001982731824722932374325283069987574608482549546454218895205919246513390285716549096661471847436375247272751355879366891200852539393457772522515359876932686723458672632109060384607528481925159350107562092609673129843613832353030695759800035633752118068532031843544505361995301888601813028351886485976635320435803720474815444228153571646536460466309904236695427603160403460846333027878288196900477308702900834621395900081037285065178513754371366609115551547362807623714765439927237829472753208852656226594931284694133850214462592850698288336502051623060687393600850240177386442098783121978140338664421159402737978048874351874488868564962939680782496467567231154099845252595860830250299602198096352816916647958993714905967996144609035831141728626212220163833425368553272340636458401022066565568747278030276929945603593894374838240635875633833737599054730684286864801740982699381645547584230934222674839472003446734016330211911829435128233470931012177951950155986558920639166051571592293703927984440429508266785889538200679078975068631414116767038904089168036252046194061969285292951213930099562417684455182548927438042225611338487127949633970884116661078490439126677652545455055719713017679023308648252070531524426825695125614388827764208270400077051193982320275198865518663454393172636205932882333711447032500973609244598787391721244590384480449857124933206475285054459162117523546175542713800559112378323009940925263815777106515597903936843125216690307721170647872720775775482093431764176379978040402126337987145491844301346803906516767586466957374931850419231566684503322417482504737472355435406505830364328788686832423354387474067970854160672914305069360044834296442099511004523544597164874531077537345369719996389987547864635496312519115912088901573083174694434871856038034065561759914596542837772903810285516697614453978696662741377958731170461069719338511234256714386525492970161866977677638737549691486869374378774369930792771061170983125057836637249185529791081917822112721471275221544032891746345994687322976303248753600625418619912105474239226488414131460982183677534407138372038997638540028688901059681482144901162943974945266703868479215477210443291070972172651222584640326803799795217258523980384554154638293083188744420866881316575312520912359174667346859179775125187813335301395874397349390391034200004510703484241808322781003097738495516353696475111494376519149901659094093745874844319310402555148155230293669024799031080366921691203919133199959651371240132957043963871980803550859626097590206474921378624757117707146420556823997896800842910312553280761616337365634283529745216689311535584407530902284346855749850771382872942702584968285922838401180892758377605989656049073768258654226861197131877944178517941543427358211313336552059995862584650517155711764968913124216066298194079964057339595169198081750671210810737104841179670727171883812850035283938566209901267302216779937710208141534895907827240084797740750757424572131259269599000193546788568028779871590330018006487116698914226395865513042591008515012440123851568556256528963880897400295486350881815659419448557759705164523026894868013152825509056391355372648619147270207640418112168552590952113081161405990678807792601318295253451301143956691514147850252881723411014797914849876037509272214460774612362272060041760596725597334436203594473191850402243891538733971270008496452312302492813333742639115932546616835793962886001235900651108598807543361475042142467563693582588276998899569876313824086888221636653752524849241227559546978861837216464964592674353601059041291640708679620204932221955532896766141990700648694029672059099861806642775922225658336015399781773621978834208227412260858410329620480231689928138569433086299050990123522821041332317425310860054917480039162517926796971629495957182892550756501390884854736362472277984579929142942545081244687470853636154530996152527526331873116729041100118312913193980681803850730720787671169894336951785582830390886894576493159768318719065776123463773181230012580216275563557587301064361237535037913508280441599219260385884277615591685601088298487144865256507035971026318485992943124354891091684979145347220954089343459341184875096412481088340372652318203462503677719033293759122432555979332593986794271637366356824743047533630052831743823936920640064098019680293496743105132281194217116959259943245089643647499734603584268653458018584893795745988203587442254964906229746281652891733753317598277622015913868909246917853447312819569502599816042315533840351225745020858800211396179313659761160695049731804328307150704477212246128109050084335000796322007312498992660993468640539137589711729848370065364163587463188325493814017336380989485699986672773504445366372215273093506624929035830251638426923775754669322313224802929437105949814956660096072336665251289007501488787831966890694724752928646501115296017468239521646365764497707454856735772393443447269124386339498887408197706852803086765473626931916613746944510711756002912374465002442181832673781140007322980799031788869805673970654366119797334007177627570104564310263621741576694013632583100625503567707996560255700117969969680847854388658922643817313933776882969412687208761612952661223301982115140617373565071645598558848329074869960752352949174570844011812732621597592181091139693304498751849524601496613144374552620078891030715236850815698327787010975131291594947865178271768882398443199634361922789474177771674580501292835576652384127990044689519539465329201453249813001783249457668569354454979927310598218812232181655588323721984304207145433287666694351747135786107413736987608693318316479935304121013662643461768892843746862853325378877147907721894593248416651145286575436474932390472680948299210530259333509371329758048552141661031766982760206516110976821834606431947786277348637344198110304688983479066205079323096686505074539918186549873874161012282701574437371695914538056978555336476388999366849245874217463688040375893186263527129892237827947539868947815614406711661335520761384853407750346938074601705488681366102211212770707278624357367871810203486268474348269833672626736826595272144487103295326198016040107332384204618531042685367998291935777941231405954131817983639939934987407871158623574138885161924153763779456905532428476742630160764348301682915164452071211545803781957218722606433840297293779360761334378136098371167583046278950029272402294146474118259788516869097255738944875032766302780987002179793111437984088227601671187479246392613196374944235791857190925926538418045694433089327925015847190919929610512916637322752925433914471544060760697992834353180787337847407822634936896742578179422860782210168026283184981333898501477645107881521256661317162016252918022268144947589308804464967586860393324222165620438316131090262083736179553737367767874304666980235779150322244416408335215173947644560570982003026258207705408855988083430384877745916577180764359350271927042815688401215832548290772717439837132401525251754727506641815768249353440215796718186164215138149271168311884383740679471654521144765974356890862461876737227682224474048902773751849185980748918167899642715993883345618602372701975595354352736713690981748820152114881831368847345930180654001858930699583833050578514008251485455941880970491427481791034762303969313197972960857906554895676888086299445223107631406097328712475602636395799091148976928175139429274305254701032915211485927761930356295208414126818270559402110459737969830005168294430386787316307147053113173522612071623717288420026687157039446965814762412512405235216402891791609471647123125294287482363223339220601375185818926393060986442867365641347121045329200716571503529606985256134988124007188669583422662459625625513890981904759045691850333377097573028212041549325866025304525301761276394093259475955651409435752553732188837378174981815127691769361465227450631564312987887137820768174106814965065827768075608524789836403312302674941432073536747815155543019695378867522267797624404188296747189894227592616774898585353242852115442021585680492707609043612395768964373208221659454663142911640257012781923395506090939311609721800475571706724408647917304909150127783694316599656854274935593941570887512583622171236697005584332790447845159308435997619873813153042575871087079483306904542840841344333972223391795730991529368510183678483800981627890987531005391491035707331132146587667348015091446587918927393371665225801053241510944786380218639743000138005063678831319691337148472671098739555226996831302350882946103313216995188476163455432255331298695779974310753921397716672673928494339882682303048251960450393468982828999589944805130624854801472583022508831869864713359932752352541426420657309466385403296868148116594136964313563047315060165035912193008149687810986327451757466016152253348534989251563437229827569403296682373532636313443681280672525831864601825749544225213362485142174016608248348381499435292758526489804190669152115898454382441108256677304115985606162638487248656497216831842277559309904150943752177006750496820837552579983918278857507151739160546306734886947912403492271346513970533531681488495775073286780930968882697230665312716973318196850985970997684464369520913133299862048775437095436874360592872627528050579579001951047739485399570389559878125357414036757301133512813657983205737420293664305487802982998494154900499049094928567738284831812000323637965657272450939301280650963366897020203649128855221925709741614746060271677018372171260473006738557999762526745533042543196855449745381311043664786630543479974358045765120967738776743071305207935735528048785901792799221517820074070457302480852317858565943529314898009533848106846152093056980470071354592556732755413841798794130701112284871417695582596595530221853476223921885443229419670428211183158630705641115727339612936250634885282743524361993085307772377802271563152087027835003265410475282697995644411341601847087801171705752760696425443520909894750655389644469367681609419320683598768518814377777973399790092001857217389475857706662909469826833411489540351738463712456162249634628810019730011913936476834845099914529224480223073129270809950414121943287285031391684265644337036661632306158797872548801187315162777562136042632292869039696127887345277737940526929374081980159076443861322876228874403742078918379644852961658511983347692510506980302751675654096046515352153172836181614890510105216935168052194684351146899156691157945387259347108080876109147498480944189308268307463979845595998819523087974049922051057517511042300663199769783193586162158827606824210418800999934970123103616788554311953249575490312490113279082298449143679965867404294232559906801288287084432491592827286719812807740015817167832746530409529324238297588644280326403148185924588612766008457947371243340045601595267261890949271808734389703359440523931891954402904810259865945427609169555977415063870111083390696603443656498355599400511696070618308957656412323071310585896877600453902062039925271434816681823165599172343279566868463249268737915026543822216035591567563899462741121136542729616860348533776640398381720041955679173596892501088502836718802859269859397458391607575387798101739556318270606948359947337012192940380183721271731429216976555962138057827672315590882107549136695288309190934716611929997178996683897371027433126488990503710465203232251082658634759548489883913727357647954205971235556914185784484664198181542764203958770462536991574551721610530946829240789864643080790130915755900191826412772588577686141163373351319480661426952964142808385470645349359613290928222746004704020468900053975110443992296496653750582670299817777604587767405268962473160292049602778082156436343661460421605560881997988644444493219102388184641008328137218506733688558135752346974476278106014085193305520490977772350827793988490752714690638158267866003381285001217340275377984749139858315203445764374633278752782577848016376304306129686690094701106779090323659136709879141374178222635495754904239408603286608622007401664615083658885907006681987697647847594539698396558069899102370938215132705821957249130296782536234195821806572281250820766489694001981297868516160146160333095014414835531202580642871067792534094545869447712859533084935044786949679834416579440208306255839460669623995102603741069181495631719719946655902801350783142352105298731574992555129466483947494175564363474686228401198262636254557697321984969712796267651218615503105555493537576725435005707548884364959952798658416198046023407349270924956523545409986259951781079559729819884615240200198217046407767158660380235545833885941958315826934582883820799094304099159846104138617295528104118146223314852207115691650484761470124176500896766219752678406571294529359685254078337541736453401157826930388422703309361469600149974281847434340346989899633472394593835982639532002189267141658876149485683369546200975119793062660801802706436083960568615030026394117600950492772500419187199492713127948547947004459066967030326025664080914719266913575851175760422774482170324065036688062624480278560995190463547495339198932973399854922949125418141457529621787121928911088299527660302077310263358946990933113965580940480114688951091281848118822053991450590609600607655111066695638549987023733529484456384605441325050824845230487397723148763879311176647133874526133883956433344973588111463220183063962454787443661688613693759991617273413407546043053340700187397965047122070611101875251925028698042172678464048917573807802528300847769553932533192624640677995406554028022755459361587909660385786281045811604667267237062428671962337406248609291808109012861293072941513274019823966876771697204281023749831524555648155223302731446211127546508939976271483194528202101902928199081355956840947927820290987427836517530176488126509910251066071956838188408880554369728608234753925560811845367729718986086225521191728389651878811607333720565221906154915988572082617471207043583840796273828479458345602253444123540051971133321500632326624999376118838744415579003174326142805227391102690425262318860913660992411042961334109071295587159173177370606909757318646209668689596767414642385223286250445089571081988925802805892192593849296763925912718915571218053564571021622962699318656847112038368907818406933418196330451603777967447665884275114215057640167117166568197778696542541469256114232349680918898720175639050152294242208115490725842758189102362735353574818644741597687212300880533804643823239219830881424962393937033940474450075957347516215443797113173150837801185198088161715043098437505241698685580580970661926687603291862718609935024826422983983892439024389462780412932267323545853046414979068664717833116593093095351491495436311581344641545872004074069867475348100567126718544932579117051396889161915551859975095283452445691196533083673137852024998688089367231599555741843498727766712222443174220081912910252758739195408920188081257710643630137113454420226706488240362829441226708882998837665690119087358661093741264192727188040162040674956232441020877929357713531917268992231335975011952695163124337125502145476702007406549448644345658053314840469438880558560395240682225701755450261186042761798944592394911417362259341575946736511630145165009829317697404485076205362963327216756886800323059309718511930659537480609247712252450120765934165309462674644968144497123287018346916157543948683370764189049029601755825375102772942081278395363190990791582117668389014417008632569649148147656388441364014674820554155891878906670935852840003568922953164492387556926477871288676486976214554614095650366062394322041679602154294602888604507706312166573709751989599567305880404396404904196563111327019513424668950715671138756261756587223435640937961483367168735826910292377695152606231676867216954799928850717093697536580835386566350455608040937738027366151956254939953948945321183905785581915330660250679305387811886087433412035882788898924706150777063839669326094019903552636147362979935266696056499693954291547902241524869394236278961576934766260938189896453969018408863650008401414369409949191025616995162579497663784772316444791106390908408369080885073974905901794994746829686679848111137494607600570003492335859489318046761195735487726260619949707680652329532145209198400224331831609529598021867153628531547044788382156089375563990603605120682407895407915812908165441812559619236389524694294887864307776573642921642967154083940141560638745948730192790938874988534488784737513208207165882339794377220704651811015019332289480558537838696936140062730715745901088287795433885182556940206789913940192217030782165621322547368823826253565085700366595598239384476168025643852565930708464478284253438502937297090929948336398077810561568299784175704342122907801453802218489225178086481973135209290548544042441612527279113488270503235874803036829216559500796406101777826038867310568543341059991280459287266996668981760401411260202053183437329546518055626448254321687035085458757619745585547764110395473474191481709726356139587876920001731906652330421138114393240861714995426063019122759036492362371521020366388705387313400628858146518688375484806310845264888356656860928728217747242747177486558497447840219714934987538535277734903181551951678880126898876439219711340634875497409667414046041248387916081507382316702934636425074442736148799029589114832340490698080472538247780037685035258298884736660382213387715197624083783100501562377503453426490080011444579524557118413835035076417698497342402518173334012898131746192446249237061325856367529706333209011153684418159093365058546996000562459159555363372504105975622059053644233368262996840190057061453184362596485306736865304218824720349695409448914936952920719684528570742608380529838272418063714683817218103415073605537532229088764202786717665529189793538883134054630987862976180987790049701893587494967810003330967152652249306905406304381441841431736425199701621257508753365614540756496338709804318330586860011318263333480403664903802605385530705498025274401247299163877469047250623906427735963748334648104521642607359468322445450315873938369912312778726694265516023982837024610261046718349806140998517527558098731173274736874972733606393105792675320915528685291262437896888523982229351842316727600972301395600316403009883804747366091953789877647351591772218384890489823966536643003355604527275984559205613977077512250235936519338439957211424211388207739131736595746021141616055275747564504519461123749224992716802036189405361395056661445751416089852423038815980274821550413716208804645128062453838340747340521950171258996645631137743559508962921442956248358429953245263908519124379014749353470661817740964459519837338555528722263936570760729896349779699919285656380077355923711556715842292917595055721647091262171237069339460734564340661160758106354377060779494300905132677252584555557933799464932174995436689862503457226026607376504717741604532921993014415874476747245930373269718096773063029849281816140434344970576584962298957674221575861935228081068906661363336082238185309743871840379260760201329297119222421185332950186133698172972947872812631937205928558878691549489797593016444250128380897510045830944203181797199300063117251628996546355158992443115693124149670644273654201215673183679441744265577736727486887171741432923178027551493957762841101756358431706738480243231706397786412765337162177386205170281710322979236097208953231924798185843790099351364279973287101509327528534390692138282365393350499415628675404007268017063741529248682684784663706213676519014091011591345000975022207771320292375745451765683040275718234977851153307460331576905120885963756725945696349294234003162753674392940393358204731724248093147579210138865389803437269532646409568325689516430818297429119191313826735741183747327412569374429895982454982514815016832428481284529424762364332685219111743410356746167519546107204275312113819058156856525056023753499956174016141328472395898479352160308896262476979955318575665101474147849248374419476879421059352525787954506662886091623370038176513701003532821856845750029880056938125177090436575554685283156716052135904295674909753366537530575870607927642298150468645149195530527073182498297321069498963029662727071660063271864107291336792449044589911896644913251562597251218812735077792189503028798307111651967010714589436174858094754150483500941804105123431435458623678884439961348818324157980460729605248108408977222025604271876315261170724787961403414691759589737905702611662600964217888973348647667231393700113723705363760190009689501600361790392988072309502395677906359423577027602318798510733589283890161673916258081184612151629156060310665686270865787653344760657977424441953222987580477868980684547889657268787463575164884109207173519019003166480651565346134974691968259389734734267973152479618229045779583569663374917957767795512010345529255307055240986949093783087069839341029724469715955856371662915006578266929477561739522430862141353509357322954693145238957998015382542599600001927171695783109459340039738080382653642324864950721841433797133689454069019447049188241928421733852382965364801741457444707016692998984894679382731748596609363826196228260515901018250430599964296262958813719563720461255908622273449957834468309823302613903242785313357517939921291982794769542389404396951531655276284501322415850672998724542024717503409188060018426534572030979892769053571383936606103475515343794252703768282953884893942840320096339695377218367069119366496241496944396946633695752070950942967925796860551282642209216471211989800722862276451846343582899564442611202031826026009617000154110298465079441962326222026715097156895887852530355140480800574887523862632977489011468514489798861108208852432440169698940252770435239671646288774044818308053903749956780583891435907888664387886323282250333353738879132979075333494883654112924358313719182727892940876872777119195322182492370433870214994375508496152750794063157907679898469080551034178082510961070769181442449991035436575628377873864857814871373991121025796743026140597054375924168037164816852871897825826818239888904708028234747739604801540805197405174472275233719131083986571160897752707361075637223087802479851775554694898273122722526255543152249664578562364454828114051916806336214454336751432734097558524527494786007355807180328244605056067487196210928700599483817874605231365197256562404757920913358457895727954666599638973256650126694948009396532481966445425227411236571137073434907802646104396828658929635212902643148890145558517717164436452407788357049889120992797132188748358788239191439465375200104444489728268470260859244503712336469995319189890070661390170301842210940224058106984095650100988077519923147616382521428892501362005341119328423302242586347271362038590304505028386136486186099209354884645723857659323530168101887278794393294943217784723187705872862337371174609279648522452124133426725982921846966471660486667120764288285068453168368289656029407239647993939251031909104177158515431870250140528108247020516839073130405862270128109744248859052952689055524464168174286407118671484215746373840245432420220696600835178997655143985159573843621761594480692661628221982226751618499936752724282345170968550448489216301200614641933924899358116250233395558896792445592791221206867090480217433452251196670595228961981466171915363947275041583907748101676360243646638225298381663050236940489823888962984560954933731753488563629222159934396032036570569813323249548882115710608488390044967442204511803708084044587873369827611887775048632760228816089010075009266467023989849144047505761119556666428716297584707544729858732441621377823541165402150568789584512680593083005375243044036723804064810051548116500214307717626752919880112291504003281612862034642730134014206389620399288980785119610153185755493682249169323609062027526267604561025188720498187698811443748721924138216996943272638521136018767489393008237240165881611226305215195131476309798196910464418159590164531218488253257225102952907551699298268767709856235776161428311099494253749301878838376645198349410001463613333706964642845903080337659901390068384643861353866297374071576135131726955978454904764302438163483174492542110446986638506777160908247115730977616452002130747902639388980250333196528265527183110243039729687700863964342224184562458483014556377160700852455423981109529417774694672878037795885678730709221772805707507193437222903736841917077358079906237634129923088762899843985177549887902320479751394741450421216251568672324735233978247159423450372806054938809031099768614490656701274607452936966712468563374120369790869054165515248593215977565873779926953510125738948618962806151241015773368872369280610753979142424967094176371515916369318424370674302830935035017596529764633262419071732184352643810634481067555032503684976222982155836333844128589946365306936886950251926229316775753239138456151610136194475839792864678765425763684420667287774461632286122176501981581305985754251380348211365065497478419896271374985882115640506577354518880593320984399255726229418789880847439374808803376586188537426728777183953658376603503440406946850430640545083588522461802683682165260456171265220601495999728165210715607246002262319893915732892659520110826295283837451527413159730219854005069755526066004915421463210131500036769341874644079644516591022823917687510323202494727923814661308166930921602309883536774462074033792624137112539468910623115227249058925405845243684343273013134307069509817734971323177399292034017585615434589028385028264688384939205660646585844968541124840961958740953754627509909015301729424919241681221091704978701755310777113637148178108939145362939638202569008425303941734585707938627481750706850017415293349608371277993045670282536228686006165687440344953431060604952527407523118090999684702856598536207930199328607859664111933557623669773710217731489047324815843353654884257692345620278873927069328685290323195647054926020545703846299709707981152464013073020549598743117062990215357498637770954454855413023011626825293435823578697138944307767060298799014637521497315349606657921416600923500611966915883808775951642546357383226182785425865855354260331103348386824218861692832082486930715979578642421705830698582427476250343800369612305129941689797577612424857351819539712390999946886037892092701184777295352057512736581677946976841948571044776476862332241639581889370815389465364887936329472358819531309436511484518250398760728777248392630924132506576508524341616509193568038026239859539210592417632052944725189452613264917644096828859127040666371992899194437000182168444509609902451704399566625336703935879245793352831938115029944499523900019120546921731553416139452603481503949933740408303263682704474074691435260281284889759455002853462025591795342501580087415096078444662844887181121431860515530749103804854776054031861679931366270405421366008949287803223557138758397831315881977791363820354023351718083180919683552147306433664444384028825904218268858482383579068548319690207224828031850955618556502697067993773281347780559883731255207723825065297934415558405815803463631002254186029159678901563453143179002958697921071155075094309794667865437173234839990095979577866639684482202775425885521708053249910094901620637055106795103302853071841368585988653599826877219311669190642319248629602936139303985390513704694018961919755360413986353093528259108441820533647150854201426758848321139486183078667408865763019360588242433251368168207328687186093318271894606004237829679579890198353830734773807987234236914305301010589969625371451480734416955441874679927530866423513699139237953811741579356738866148302603509805757057060556079782893993953455739952377889999466354946456245160961913730907095786703541887639520302892873415085274672523515118350346454550906381187556435289536403547807307933797496280590723923212346320910922560268939775249769824058390567502341069974988740083652177908265360110522043679064250519264402355203978211966583050289891783597880583162313085166616671930259816891022953273701068500862476831469038322126212075551794498305011071936965498683957062114813525229716935510393533170748705273417844104932313117382281936921321279716775806070771530307662699259384088867391877434766518543865445576105136513571251407028886495854743572408346732881277371557537313275446298674933162397077571736840055226036372691700834414750139245066683260154947070770430915561275930468301553852865938227440589371128280746436743601667965200835600902669721673708567471818670657065323310551261304640088033643878186713363762353142303622259539118846293146720727877765445276010301746057391282063253183722254354998751916381940523826194984241912710000123290399508171635542952618913071660434882235036727556408048140240770134443257614087372291287438262289233248522952175108396958296349304880843286843864395379123024381374134312935776538117922959867304381108389120991047070743140874832367128929824422139773334981740779416375032972209606089105243980308481520465614023452782697105328955221722827192510540857624681083304998338095954182502608432409211451156050112483059913877411817457396080330246662283846254029756623788295196839642313678265970615131101143749175007447682035077238819821933460736626209228039917047061153591979636498205458822680915214368613809830969906308658810065187895005275719489270330951309247361795570143155731691859428103881598501456399672362135136440647280509315879986567681075285535177134016972959017133493698324300896978567221885002895547346529586549712818577364406945646660404392843135743309973340759451390618344831754608027008872853377771436258562116848723140531352144618896049857944809463310913059716581832943066990760440184047216405286014115734941005852262990781094898133401770669157174958187341598889327023837297845742713044767789178669741500707278696335463082497123275474418956078236485029201168739273537275917216411860697428895447281572582725475625619153725514176272051973236194659759189542370964917281790212925826818057234813380362928143677118762541459167251316954362147132657984620571385742289353651513856093104412630123777349661891682916006744209801383009296899921539951391082591135916264933773555271911161569982688255899802963026152559642801563745053249477302381203386929055687183075680449943958941442771559307723591447827319993014925515185958715429737849433776003805199046566639172423888688524807149450094581705550318187722200786872098180183042265386617131705481421999293875015628745894796669108592051843029774761893531902318520905948765090302392314732344465983416983002242515788127158060114893345866206301931878728446797518839037525550664434815606071322729331331222591579751995584791901316428457178938132406495038202623325886135557111498867603803368361885608285971089686624665602944479866215783075252397090688931741738741416607935989334023182703639525550240836627813552519426001873755529459346516314232776414057845597342517039750639566284010622188910091472525913557987035001933716164169789321678351848008912754157562344087668552760598084182112467181327254730325389613337072346377377402714026099512665387877207508868110393880486881126581690695440899453378418038275335774297732643427070030492121460573997878960222821454858037809932690048733845894744874387544797915356596429547805545904490148830132486613620186185055752395697881740390519092480183875593258351052371511098261612674412709220805062273709445172109141316883329270618946396527935228158179961216299962151315755421830227703415310142624769041232544114665935448510671472989309296864541732775277184129302835846617851750220814856432737799544015533631865903030339781127413862565051080619268823665074771981027993991256604502026763268172221739812659817172768616472951340686438046667635872478920570444057907959295237345315395804523029798021024883220542673427772459692604331895682684538355916444406794251632324707038801260757462348615592526337069008738315830148524648675882895773847412723769324494313398646654522193191372812005856707449649821322293616872337192801632814809882174712789765585434235434156291285812362446014583711911487317487529407299234631780096607994808899063800583422158698781503499848728018916808836836573219938474610455164652310193315014963339357820904725800835722355752607407235244793364544000324175337137948105293542695627502554412044161813020783030571260333681203756478675331931434485265490918506276408241785187277936524367780571208551865321628140694205435781474275070448638659910703018419478341483106786646473253178734246461671116131284080314334420641831130222144461205002026139933748929182626972239592749009238281830496193305913304485563495699684552078305969204304494498045310029711761703728749644435225455946434585428451592989424407580932367065200193173999354433141428884169160878852196748755309941351609487916868647943800510751151163933545987273388067134942279266867580007685918251577275683887002684858605407689532430340838046729513386684206574856175009722215049354381854644175595091112682701746595515776560230637023028037955363158361432550715600826373102065172892150524289108350640960724956461601435767104604982139748052016647317068472308129498174301701425988080525081110165446217412668309902248068384707467886078996294682322057864878586313158998072699501081316655905459043607750513550242794653373126904140607136564745237941609926148148312340992103060695821269658166537802783160923240323022201941635934966039768184265049800837884286690776862298365369786273285696106288445466507582402072438327722861769575983409527341313941016235382345771095677417023974006761562560022324395093007143371827603536943951519215986128380422633509805625512355610986433747302355530291119973302976100381934905223508008688142381954269283082886632015796328885794428161499222927853352492538133351692983537322388965480520302807826507767436855253056506496267100108328754840369912934393362746573512659248522997089273396107942803765911743183989481719861456516605147471902314005147139928126371176886491478668288533966868400539318135973974004744323420622744193728837894097695116290370761920142349759795772409473551430287506159783600802926436132773157565139446795350067390262479869533390714536027139657712760106335649076515984427053043261101116267426377548343294942295112375443915345374621741479644372609042001149104682454483143579734598967652513557063931156317667653585430889738942939013968454878758051732436105525544619724506222439280817442494370019320769661135393646074750961444576812057930037839311090710621702369786427133376447068843317655844556021612896081618453674697347690993699326314809519343802356677693615267646505920061294011955054522030040322696386374867640525712160561546200362201574459177417063164048593423462947271477121833653801832161220270126810959706880831650345363786861667999668998287094491885011936960463210997639255974374714887527528329266385399937156393714243131235330727679539082233474203252271006050394132008563002757799313514255695225886701876853345821530342239260611185344298862160423606727853383592208192795445395982018214457092431374275157713905345892344732672049938725285048748414171757259641735954951171141669554458992952256135477399806226180909847785822368368088097761379138224276150293442881347071076471390868309854660591301010746887702122154168202019664215073838343924519110827260254205781860330698883461405332181001451541332822279807851351357988218486723766196531127994206318194685309328505311743915291830879831130266144472639897337622813073326110120284260066644011411188654415082826139838912311526329077135735756965617980211938408085558897381242990853268852758352024032674168607707154550838501093688507637769969800934973626652635502019101896265804594143619204781430230891805185683081794899193245664088781456140109970343738982321737175788853914703090148519890433628395945842179532268837517424704433044354816849584813573585146392749741659117954040316941770324148257603783685109347669698772654266878223783013965411441172928631075575814140614882539791587276447213410299080154723562303062018635354826925175608786793031924293398757824458506432693605102347285943816894006899085286744502404701609341817428108309906183119521573953198484883164671358843347330732870681884828536193375666357639060091204759333138269798354327627961894997659252181706738485957254019759057415646024277540248684151955825579218767899274894600946869795368952493867415878482796447299640680955838370737788043457123875199820681155167739921302815816232459153745808995384979919028238987216394311821960754942711965722915176320072465319796184913277121892005576196804505088787252101637759502443042809785821380667219684425136922127614414746776248925623075842937536070852960885605301392469799213728166961601743181027995509781205503925341113503912992566663521780177233519905783206389712886945983161751578497536332948176744399692612398775998139663190064098468351350095926989921918948444203221357917560439574263331775700061925120433329286985511689460322209634109248632948804276480796986757802420408436674426782131024697305504026088956652481607755483166093276038895929379561219374896840327900776142598793382096646528560855629337521018087144052364032234877196276356955144547745764475024514775016079230594361114278054422360051797151288325166591634676379586171099983122362928996434183310661761721584088776634500561648059932389906923078788637516948087991976932431057283478839254438215326208817356057809842973472130863460736670106405365422649622261112284320542160007688568489156469431398878579426456536788466916674679946704652645250148349774597860435828588032858906440401838927478889648079805890364318006290688575382213769361094575705085937740326602401720720488809471837822203510792053436451184830299006906180927447171300044788735337682380219428450627133971319411978285124802786407590224593562931697942984919085334200558077324322214268319479930043385005910452915527092703006738108288370502237587917352213283259554777326950177826306558940377496059849633273445654054741491160556608600301761340948251335724907777296024321103987102373627097034774710852427996992035768187406688719571902796236994301761489680186830882125865968825216973654778810745430464172100987848784263916165820063878198670621057362755087283458297283988972402207167070075751913923891514859371849884038499243152333503892568488004504061586549143065656656461200803948529761047100657745950878296582127385043318414276190724407073698746356680223841111464167437595010219353290706072029172520250097825746594785561339287212904414047229475262185499887391820452694579180879513605434294930033654358016464206717509939160070810880520711479839974894670584117714664886038443941515019208423992458858968096977563741320087508700950606728177746299924353860448589901056805054716677016089421599135563359238388376947452657335404307177069774139705324733697831452098520655714556484653035057463015665382288941176015862469256128670030506215607903165565112712158078214247530253543079582477882518036518957097710577617167391161154207050024127418214160972626578716773076372928600720419125683336866057260906471464223645324021968089485453841849480444352855887637418193583201899610081702978646695726456466924993854851145822729474204767391160827737673071665948379266550495484585615843489750797242245660884392817279765042222734219033682789489153588568444063696531902012423163178241090086690076965920780356697188923343621380632147495438095973120987403922442548080310451851591023066812966455315718010785175151276240323315427216686294451576221803978097282491922635907388108268893697804788069483878350225724289186043611772365185187432696870938315755115253415891949045200307192064616003469803991643627385638163572189185074012065598410837870729650976419623827490503468072055288345174916777683890339593571494510559388519599280328685003986683560936556870523373301077826390280061064066086596674296206903476655751997063838787955779397930669107549011629174760541002245321679297063097826789594838870106562151330122499698861781195136464308335918673712124793574225986216898012268273596961332523958963166586987549235465454364877083877874852834118941578700361881562136821695762708966336553335733981149998360285356863750428912735320569639906394535610857910167870073577303015311558653619864635464055200886257183847294183596111593619465061292947800346147327510037910160299834163934510734575682497392572880654292773769671836365232361310409757519000812729971771113407467752811218559824184380689118865516402862510487950258217140950489267543297945390868844991316631485490076293710230527647641615017618009194486052998732096799489136813887141285190372056723077916827760802800608462102708850902927539035980824302754957973949988361489295311180317161792317824331670623997815639844089719583246165500579628455360757194729126230988338150305490270498687681444927337689642776576675910514403555941737401751600771579913869004225175938468465088629040141211688200920988176862696291057097917869888611860112847349429724518361272312331671673664615821527170722150739284798244949979639580269998810826162442853123171992912383696233208195667301695903410355335931689638784439302545247398962810442238771234994709845935619481540269944911074760283576858553403639885927994512297007446190305096177623613208805027850657768954418866479249883545376051499342350204910064614778967915555815592956827438909701173774494817562942101519435134787662731933922292572911386970303036463371156120246206105971703473379109222015934933482941544982848517368305529489120120660443220010398890535997364406158614143510995062286760044826734519024971220970770579049748793634441095347940085479664474258984463850052532565754230472424051484092226857326918868550873864175379834832970640576978923934193258142858979460149055962989848488327149019950850562482785444274021113738934435953822960666081913424618770033226323131106364294643227925213998898936954217885951133882560452830602799781400764065647595472455950954300477424385486294688617108909497330767220327908554196340791804799836956258972736386764318970682889144193024667362660858871114390773658500733586189478626175768059976321620304006397074811924904869804036033557967264333056035464023025760763924031539511426213675581390796877159977912982556031039691340217001329190519999841948097049109244706917812289345547449173693571329753642686592547025119243956745861614418599206829308933702052591117199512762118252383763539293781714409420425993135852494825549801520847854313624583423579333287246793752542467116118663548798609234956487352480170747190397728440839728835837824393348713334344953936400631586681736896151108899988293760034006988636717815173308508651355139388034177842666851123171689063860350794452627170986474429672828148154335510684643178692355424529201710892305007305581753454979677950486856685205671552728452454701432497355165742401688424119678125989334822854111859688164488914913016913011138914524433617685078358690059232489050631806087538857908402757070746996128046332104803689508339730032047063040947887633939214703522526965162453335562575592234812396429642754885677383705688551280721251872167856991739469809225703418295194975992969848393387068583403358695905715133152212613334406579562292460960188893874146632187824502166691452868309013807151929088188438509995050314216047385152591330086888020544575527689006430230255712969334409355059164797947447112387998791971001935188372462808704961932339440343916110860066648027897141919078194514445008945781472575384446588984067487945843266245913643674545485902899557214880760848118285373259306333993325043391386532792980172142311624138744444688905048476656171108098397247166124208525056507873954289427985743075039800116861309734678430517635876549474527528283884228250794443029169902012501861545451854374980265000444153735483402475559694548727910993423820386951575910168488694529358194419459818702123179945012088467742564755776179215629286516897228592934445949274387132061561812154117635076750213334586045711411883595767229751802913472172181594850870211941939774733223948112097027957005421636831723432228815859631390836818223370358047660706431954054435244885632209791943997221280918281924544958768354196812986639895599406802195451702340093471361177028770741736079017637398569951737589092392575514514915760136852193893686537695517652907798845822054485548738987399502230167267157245130920875862276998876640192014498832924234926902765685528810094357481955031267830685565241608594078152214349985123698310854047493399058757958600091901096736014237053136469936430854023165147497223869733607963461859523800542460197930406194917944718422394347347436524170626047410938918843529064151732856312476811434140558251691726427994824477843978676108152399817921897712773262133497996110146888205349677849009818569603674477520117378303007615670272319837738846933409647732927466662208374477288547591680391216242762250325770716222146610328149662756679378641696133942506462184485974996208780319381916673464037721927760735922207829345348208470867822146340254303718362101923680167694858275636137061702711234538240506672345460188603983529213574923930478215409324023760955493887483000017838728039057797128067069802574174935123575110474794394304723617290197642937992533605439910643543233927066080504553358836540092469264845754237865375295507044351762415397368980741597519562724923090560527244128865905297092917664649820402562082999438775779479109913965521815962264055639622424061164294196930299123366669533490178772945779958343304867319584592196548648956699687906622593256191467530153261617622431266979165498115163279068812872790684800935043987472369305582479453298951019293347300683700425513728626076728347940349349765871712936957086169793573950567219959630767962805980225967549107437773825161434277067274245474305998471441078588392310386433998423483418503430573024418207612288828685055384937786549017515740116320067693790114947760704701616501891654830802803402622540194178035841084432991443181475018650700557202154292270229174867650300508244836106827235965001948414551561257228465771318207051327707078357203117220383207143411544324547049848002882415251993149159334200665148723447637800993128673916771887405929219124534749478454495703598473275386618502894310038703877238096683210860602703214249658719546267844346498593221120216645081840541974277370908718138784771086050691801484910904548069356260996097482571123664036110202449585670789093648340270842045659847897970914469488852143929483130827108194080781323709498456450716603107146832140068072709987527679412744900721624185226151139839098126679499528203200054781019673566931585999362457641672145421996766938243776168845387212688732305947011185299375610978730923909106248520893532854096618740809713372704419666816313158940351572730831221298357287471639845534371232159647782064722030181058908664545867928688495073970923287207850144240801285595003959461418905332237842462962340928334754211161824710324997083370256378965499658391314693055171714733248755181616289984194869483350481580056801815038637670931529988298519022671166230836427780749981660481209584395376430188994896035593446116209135007304009808863512234297435384091882940398337844778764389719191710106246303878318904484779875823037395750116376691610541452745509419200311787172653940517357960027425129454570499826118782369270573677702581431413023884921994923402550015089523618836372059807180520600103920955566922870491628786478039290735199113652224381911363325688921526937200910162584906279534397940724346394592997824329501101789764245644462859734667400594308876661655377518784944520501075877464785930856512558531388360218654196805246335325227633913435939621481448016459870287470552200610137515487657899436024073504185424942801439262198202252572678068088271676407061532809640193795606148975228017546932586103715477097464217396330403340874824004306794696668735969075124011459845553351147201623853173018687852233338598438155183366871155642616431868063460693572522763654705672968032275713241336923059584792232023074312902285312651260879573484747020592662039629333486336848687797220262507242500023350997820710269705495434809864719250299069871801676340092885810050453695691177014891074948415196101558598767488035597855782959411753443063653293625030612946254390007696480469576678743141995451613988357623270786286107817548130478080850509045878121358687089376979909116112244607821546811198788396333560159581526280988850015438430504985493270090602741308168379960533908338559138748597131575359266930390026914589158495778531137641951941161548381118997064541835392884956351832111822303064058437077128558948012313136854536004625016552343391896541244844716209037056411231668524779366644577962500045278325733678023898759309918361088242368576607739746673711955491348995774176174875078187306609268632897492987155600754227426224571015846498318566696789321002281698314862372610149032310059668051206697284079335147134946146801175478669152312683527376323260113769269117480418277663074335579425539844313609129255579565838072959209301635691984985012930246528149211149992901271767295064356823206500280738298562384323946590162476536102839748888153329324481201158868207175859316652553254343158701405565694342804662301329809924165081278950940365415659931286344170912068031074822593825035234142784622441867286279475124320220081971182092370987492008960669016917246832943559580899770282532978509005077490759176158108951455998579598556024068819472913800419341404810706421575015093993026529412189969630613803836945999003363337423603773377397966152886045699776497410109760980399586635087320353215753586523258127060747792974090637867755237318321815389048070706680433820334634669869431288656051995640218098969856817592675467942297810288647605435904093644624257097657533726713915048773406903546044281118128665186053784196467498204435071376249394247555450211973820467472762257643336918897002155010179338262398085585488345705043252036564478392688409101091899940626204066904932951841108349176327098427795423807774911502428469785982316421147937854148523948957065048866129569698812786939166054768878012445466709124694002775810833376146352307080357973905361299883613620036388587094892208333135299426435185720426966337576232334181279977770816625730429712606615691286533394936396529281539449400440780878903819550499374984336353215897591475865551521992893997609889793175274573039259601289461346727938061214774636708306534646168040158569587805286370145536095286486534017716646317826898925304743197460477522878952649350526579753405112512520656254591967493895786901201530762214003369210274483578442174054832751074591091360107883932656189529618546645295298476031192160090196954486773154457751225446649678047811399026145990932897002260717092213760473158462765739059431150949473133577332315613520067190549765673582087673666779583449590740943330730349652727685819720712862949445164930964391029852296407974881534981168787107701314236382539706722727857721046698191689686933520586273068895888859654499906127264520378321365499957814705787586366567563082113361518465026082991352823729380158387567572445636489470431737090930490395773720472491939312294382683334180129211706008437307631180138054644893239031289321724238727805376602811735429172658837991070523802802105983009203158761122774542910562864254307335712509251257646548585244666466905206664327671504170357337984675916808421258721531255597442090899767654530520345622127642254159413496154609245518737296736832040412756068026509737371608581177257506605322851992205995988349727607165852496907256838042307532063842131706141689245914220696464415960304783664570814027744470102454988943063694522715808438792346485994495421373115769132987794938000518331530749751243447380397360646544604236315574482786221606832746929458219122070194084496562173927275018603517298460705395307296806626863508335859387505372937512197812854064797900158252087111271378328737534822425219839342505489798043563974655455190193758099383754996590773529852477197070798136598668807995920369973836703017279488441760552275730687504088282808489135647130544644006964698043925901019508635598711395757387722882688626706060194662884010245733056575687105710074724484214465386411473593956571528271516408760010356222906527611497039698459069021407715722823940561461296874035689532880468366811624258975643945230783293583053703604881433940363301080085769190304504908765814566406472035981061044601554719554506109699755151430898142681221673886446839901266600094390448629155556607929120896881258333308040264250434634353909297689578871087817275150522899191945866667612461485547175131889279010438112196683347560451310103942562259548140265794901990042766864621699013179720703769723573231269944114428820698869482611223668946186978173220889927250183246342133290141148565141906825718602632679373962698027037968712738347554059453626217530839601481377015093939735806559409314461207128299542481149220174427608577783716029766789675904723095512807867121468934737305635819956213552284487705560279028232730499941131183861417829043123671196399682224997841042326879400418604654851542842415369089847751287364978253161853915509191262084666777598601026867796110659082198630868940642707240232728217663511111000009877609680155010211835340671484144414540044131795234400868846054422577187264675800706961191873275491635626825426549515084792362947284825702319866312631690633263343446541279228720606496837316816601432805461082110091123834291525523131607152541973928747948236448691965311899942805520330232543641706868746500203122774704669629358852683612986550781793021582733977313499923922605974262012396896171872648790702925032217089781067795246396326127520225930177729683171154256423226521220624529561385198825262945654534976077106255058729673909915217964712243745402929056024632258160373542849188736635989363422815171261938112794683343224798194848253393141287761919170208024518868474620641640964778148292479210960225265267086540996368273703576993682845658647898981511967836818782338154532211518256465735191208950499994661030860826934106193078736404587529764675936818136607475392331531027136364001701157791894299936323985371393338744509436656880001855909133225909352640650424629145382731341325893288863030522141832258272883823359805605958648454066921833356401336413243272253814404571951624927613167753963288835878839486043829546932288516256650862266154390179144389775026885364484128630653092159410055137768527278673068801383095972911244231321047346227412324965921028732612894706269782687960620998164363137873643338533853182998432529910250448936483343297526522474467404892140756163747045398774667877979648071879883801234202792771164301216883562887833064246201671763435109299803503026980392992026325623030691890009436751773561389036791866901504677234322558791966546027985102157286586231922191477259941227771563548736902741279601605735754522447333322545060023749914286394713534657945061775505146836958903467524797188375022545940068914831342946681566240203534789491868685910456505331659690671870772903231773117016066641886035755117264736157489655060321071447092674611911063853186531101034948075091343689804578810865549943811292821679836742657825343167769479536301722808808576515831052514566844471009023041680694880666441275722170645466784297990434469969470156136208320627821594014170719771965952685733761344552855112339533365008395972824024212894802458706080361494422900735264003701169134579341652100598235248185796668097328998174084156795936494395843306032819122295539260792501464111438226970849631047471839602846064006747373690936902769203365112871252430437245644994320156946055745335741711464715934113693948240048733447542700322029134364285363318598154664386761351469150584616427505622081977934167071135245282353838725896054955803286905879140369479025325702450388413768457608819553267287928749380408249236366340242676102330654954024015406047879506603327000128218552786247925457742972763189077276932928524429916259802552613257497365901871139767655503648642289324960537550012420975059941416102510533069987232605364135848133206334550550756748427012477907709374893547139392751014942857609826169465595405167031452303282341266135885908823264994085262393627299960830034239098490361322361353142759523691009991948690496168761788913683736429371508951829595855863402600869439772803855875487024522127536095923381328451341664052985633064782023971070786449338174103768239961348531782645373904839915388125581901731629251778258491743355537002372376852766340609346087120909736949973411600038634031191401578058200129205107961263152542032445264776824588748305712086336303919921947376819867134600117316666770279366453176291407342880375118092741209559426166967630254022607174843587818977658905897739106027927344923761848729278550832295361556336638411164207099811333415491783559772827235687685768341654740827860866559289982295460960489877876722037237390230249015624723061452279418568328938489916982985922612943263414760820570199354069056908058973486636702617703646044769977078260717584113108431725914608891890136788858612994055803303662599770670601554370815990472298168405866406426982995677317059587557418474170478225259000849831901655280677189514948532324402016956584657137530273412570941685168354345744020761633207811695344664550175291336557179567079496614284929627567250538188734604667331333848892916900160978833990330137081310920267794750174745341421313718899637289539895187796110242874021340512456794936802427555115804899945928281156135129782817516074504258768074883707000656455715438401082730579009266215070807647928356125335882824358058883998399829750812759836125337696205514639818970984431916877965030072033632745387820100766913682402989343425331914771772425935238380358379164896978552699689799518060003043814073470797097529754535481260391753418514086332125836629247805738439895099622966961184189398184733844369216690285375294427799654676009261860014399412661381916524646922636030534002082075023335464908528962864254831688956199601397283823037449192987794111119923457735249099414888852191228120482962764380663605808483859373526921392268271063339885951468148659336767236287623812340423831527070342082817183600315777800331755903760968829841447719632761119362029505184758413918911444234863678221580760617475854811389664562177027092453609041698681633329435977212941619999122006035627812790088021189423703106308060866140956504246728695022536273385823329794372370794175860334257677496962749820740144588503441013906253229040020080428555264660553764360593243233254203841900078638724187361146982693997486745199879014000623315851487061653900774016190277976607986828349023760472360052849380110312194183644892905165873812264633776047570412254734150690421468750670751231640826330367252910433506158435881663502329828152578203693707223613081782138098327897755803658754253662621116273584771990702541726167057099026603907046212545848462925824908565450186583882950053760090008583409562812556162605748281770527137500644677151982680106460182183125188089758843720134023218763380804192800142050971388422283566672737108604553961388519008524040269296797435290819602789760560974389911050250796029247687297636934517902889457010778755818708833403213014460358336121563746776412750820007637915988626333788537990784563118570156563048085089410571072301159525136800564145992263928339138056769956574959103332979867642981437599353581961315163035409418054679299108924066135496075989846062064256055080029709270997368129718657000735781285814099207739319716443535393691505015724233903147951960258975810182804460910442795209549807701147958044721865391918663895954607033707348275232879475044462495274071132469581226447510923603225953602651271251713436298536378220373332833273264008909983315081087056360067001505136931121037495681086609144764165765669162717637260920981804485765914557738434862471109316288440025738589493422238676095315681982727060069944269267151164322919353061991214686461979270459968638758935717835011703713586524957101024154610264449662586608810390589403627496777633771900718135835361885858470855975134806969518858840129105627272553783571652656341418797970916604497272498244890327265748338353224661243838070866092561392242254255338598579989686857658616997820906078690575176392574691172076139418997325822446183650298397894745163454034139911813664606551129217198959146598953849911619718966481381467656290538500989695006611881420328345576374844707769349613361199303748339432423729754644100340990583132549260896421599711935546137401351874634234835347535109766281315966943682581018494668064897993024178220915342338306739103630590366005174537418067418628944749340933894468726447532302231114037131006734378871068841754790862119169444196511661017775543334158182336534818917816104914123070533850598838505236667894172864071647516883895304173576691638270347181228822683003524559866861622868971262424242570636541444835997246189087059483080851435932704622331942581071963597270372894137783610580633994991399733777206125078107111931496680612739249686564060471598222390654670536728037796784614180865712760037971379747266079790120723139395547621624213073564402321262162644017101314750608169839657440187085410991627102219510365278459583738867752253668946266284975402919709415340001446932599899487964363857064219404343141572692216992625455537614696926519348856816538017613185708006104321834609582889754460716691959718727129718286318757550963213658481467829291550570663609559220197821361178826060197259905308758009631365744160709996996351992588997784261641775666948356973013415151393069750518713307111248916109653214110216505117352368808434661756319564243353922943542016820542535792618860593513851732174777127977880548057580906128321026196122716731333005451642933317387342144010137484677530571929715582278365355452198274585907525090730724446215279825950809828561199261801777195371337035737567112628267091165155333373835812092781182936223961740004847708953978127500787509494203255408649429890223833251226516608925091150691914502451540290070328134372094594605154346816814804864122965733424652708795046257879766286605114837822781341151829385029389199471777783677608178975574700929645151283689902776997637375581303386067371247166987326386375265179564928436818713384827064504557315265139861229711976543643163180661998262888282528951999920353987473655202247246022026898280927392035485594199350124297590181993713130502352598851210975902070222254156998935306484457210481290613657478061112418643552093537196663122968757064320697327769351047506423538960398591469724852094304124947862259537694755413793098560337038708460469982124779603293361631218742229513553842075570461205220831684451848052212260370757700550721622102401999341303275936298124704001931513477270422648458993280486613612993962693870980405027393443799555085505631147393197162991014533549227916143679827903058265262283214153563260874848460828107169535805461077756450490761310120336138584631051698268559763037733077297313002537623732171561875254264893331046490560860941408663685531556028364200701243013337174333179811147728900749817422230891362237356483345831725765419800500684441817552231858162756799540451430939940286601897645119018786275834688649056872573089832894296414420249855668293179766939747372069823829757685333403188279917593787660999298515747643735324521189983022679802581855654530944586261364060876375071911257227843592653513335835832508241132624635869445516884790155227835334839354618273483394207742192869324646017074877012788648671215026037618423772024514947482041478823190573899494981102923788034386232013453927342947797737485559689573070920649058108593320668047867042422826439913871220901209825105269040168449937868516032401776540440718918948861643278905017117894348891031752008316451565282268981349006769024562797118474768103558757324488147223881807037752426650467902940146599239779263204955494148254428342027652246264910092187957515698632542200269355057734946379586612919616746693528243660858360301560625334252759274901602173494923504972701106312112645429607223463319413996348683061531744628574862142787642639389411692724574891152123233733041216916584839712114083464047328909377393919158074739095846621349970697611532557664397833973854183873712119880917952363888292748993541308703120459322832251742941720177446844189070255950528021389514851399294139500040825010068130278040296078818004304401474416207715501034756861293282126165383077842163808697469282161350218034771778217292991359833867570598574644948046498012407831279382104313485694814203300286578455604491675660447767765579111244667803887739404013932588170587030561858347727161835477957271464519968943687631220185882520018788861456451842581004157411932972400869519376545837458783395156846624393823489719146383234249584349681989830513953254299669072293391022394901716179821144889123053537356701951877719544769488936266758620335862295945277396762823786319962880283156261681523593752861293377199282142939201339863425713368977100630359336335279934521649451468100521209723161510998242773862882338791069217813763311245897349713175012462473689779654235494127013631779655820158737399155221972898326459141412037919544144448420328688747207310220916750738175567919016721861891195188026692441232750766887577660081827924829922272973691143208977087322185098131133934546420616352236309972445694947266875603097968064162132485871520474856627953555572777978300827183515976226252630069136826232933683305942134829289031045425150407555076413847265953239370414844293409206245788318920200750081904049545078015307337110157834694045973809287884223658251481280340314001358873587279703272580464090473746853923010422525537184456485973445671120249149779839896885615474409803173730144054990263686192912924593065046187649061105603047686732288633329919749025391401914943090114506772551375644053123830021631514134458881597564105491592420890393826748635529234146618250149514228147208415084886842177093363901686090027380992896657904435651989544986372830692244069952895823101914620982077354599876851031044535829736257913029003820361342173194882544347033058546005863007684972639969969619172261269688947375639379728511429380540139759440305566194925442691686623279817814593063207967406662572298048624299938575979196223165312845352076585454342648153050157281006637600294716535646456295154128461243454952192832802998517013537410876829549188031202924915891804748360187390048591826426802746874120544197508990439344895287690379190900921037950654601695636151752313909921062086240904412047513845341696024397102574178415989799712554408587740202238442171810809354902219407517482989165151142447031942167178860364345799725966232614433678980142861364038507439504817147324384234204359697376494862125504503510375090648049054475037439739036180910578025027236036261090771455971817122418131229163133739514506160354957053917665242631832573608831240911018775806329521594673496599233105730923111709471982232669153565673256338020870045588380487389874270948290227919663442954648827365262222721162116596965840900863535529129466459988592880856072140720844133493478922655174955971892196341322052378347884950478954338899463372306776869992266541835173751684908276647610686995744788114514053008729611695972446908642660134192963894030522888512376985798894891010659887733215354917837557736961750183410220487726999488438315948001172322392216008939606783017989485037886152909246859271025470466558834612184502522843808101766852779854472602130314392780157861607044632199144396227052000293851005928035703753763660346828023860328759338470135849439276150999751994088432648470787555164941605133079153272355993408710222561156040249471881810642339731678508667753142307939941467492337264700147204605280524852699946767179844159425628512764455092999592667385463755621154215074167220810656908294453490460848143087491531237702613703465722422860706518642585135561235182268989699631997538838346898504707607369244442362529250374403450199823828249293049247674549933045504841804858294098671297613147467863695562999373226838038825772644673720706549550684726440449176305453926482428347292714539045020533711667980304409258604529393639505669192294528768912682151955441124477207158115034444789887376760298543260514790238723279856239788822181692869000893616835204101240948903005548857618883423756662720983751650083212548082434824300858912792852254701883214658505632673240124656703406700780364702913948874855478181327539202929938549793417268192550952102622798217519143480560392429683851173780707530379589528334347961880058027247728085986610112811420252212599149272547857352293977092208226398393468162501605892439217814775537456075235079175514646594597844352217930292681281374635068973433164039664553690430268355980789735230974277643490604342026046337995039723097237171761248745147673501040165471395172078766762044869739099127099424115920148584642109959154559254303770270760419700307895473832088853860779900469109778248064501968365604319006458210814908758374451483124081820672066763902294097826828346774985012302849945296499758887501492125241765275609284262745102559525758634324248736778095615146524069238572797381388961002708758658584316906818725416389817207439305132305998911899846773754041614078548138905554893949213207231788395643753748231974720724934814716596804034490472522867413088075397279209256917587291157244266932469671815507198273107049930345385355428391676844762915960018461953776007800769536081773718081710362759715180215556734226903036611364930967257483063473361173728902697175249009190288677256557749372676113681963269619423934845983353736549261018980177873840846888458874147241977998451085306795175227227715260218532709347314775505035480113931895968797199642818174496792465238728702448102336591163423854214935094574027966981735247423589409484466862413011473309947941379536754201175926566319493506851771986850135641086667744793322774205521935277281660039532597324598677527975244622650317606802657309126078122800725572775568863719131267055863977800632007368489105727879831903140245104728966866737734786280378027461922889413472528964597913958932751106092929437298612284533126131317106464712535190826200021593501870441673158021215938751236582212237099915414145048365572581335852590556322817460012615322486357119264130655227967618946641209520798025946824624979494343266059122801335442130884563622251045641452184487200596044842207187668878178182364222507892152298399602410423997410484659068968608272853400520650824893722979206409105813053034476284499474663466532697671197199095616080797336556521778321043427292177550469801620087277346569002982823038464071253604942029436135382422765645286705412565908076911704277042432505331524140371544368710861333355726649034512328956710253235232348750760089973478483725705422728579966359621734145632843987105271296566649143862849174568337218387224806126202043321086020556183037372283203358428502214903048461503053353152142643517990843737993667834258602746401064480425595502454988800029292517051085740796259569294853120059839881294691625689937091138193708921875421062025758647381106920047430864271968843918170106408756350466642464428425835371597916922825008529000499885988886638711038813434787462436378195668397874778327718739776591938690374675798337068927196458400963404357795092718775224771038443684604565292730749377023604238674324567395739282559382252412377862473168549693922205942039947660330419042352672416296883346591876603135861627215046291424897970944260160824927587740763473325791913272823834066615472288435538346153735550308586404678860031076290037960419702827265088384774963400791109394659645461672713524374708708266405223844581393218493270360898042040335047650984654595026612614499014971802804226793456639600650763238836117910335131686826717477280543882888475445828891990276885789521392568502930302893317968747022814431722674002599967858427902734312804207696253370151886300484818634574011677270410865805425172012792557893153077853000441853162092200826137640185965697720861429829749944627263596607904266710224722911750310973873712771269967983934945312523457025477828005869115193270555395102496200857040255241546036446398891453261581243528000538235153192579546568360917874390660451333101051947301090668763560840570382301161665204618177719853133464579104668723358244029070124023008226729403964928757166185775711962391478511815573436924993751768444519411112170907129424533973504352806582354395872882049415756974484818133754838358438399983955834370866664685233739480726034680865528888570254363105933580212637470980359914125947067772349793288655745028698784378997297419182363442582397156654237289386905289300194320896456554992700658525568502716024723765897885288690633543055410260444524989514071214897846067111289455099989476309026183909755260972423294751141365570211603372542761398025219013065501678982401336525168241574974147473377734316476308477140163789113607315164111194784318350668993750511643807851725544004265302638022227197457414928690762280627358406349133681928672015411536680345101180461079339157050768661682893417554308210819514016230725098797757840256336033451107526405808634436285223018548249006593270015880946821124438741407278802408376090242288238610199701295675497061582560269903778430106893425703579537286576599764853484006689072708945671831310362072598808866396825791717213181642456457653583039612361433399258453793294160362815102279175298424479922580489226188298818607798221617006214745340022346733714390067143698810676225029763943998189469058730625190342652405594752686723008754808276957412005717138468265061607747371856219720247110530131619021821307747070732371952902708995320268790128600749299790302253197389100768508977811022565968317843781588823709174536978200754606262146829948874614490097218617693776220819717716685196508941396205766795687980219665707895004202064044650322128174586344984422125244200210947322176876805281450216429280933598581389398213650112946122291837030799384870864413034536436439126464223530226523974394465371582716779062250846386410244901824657722484207508916300490067212689494189257580181532387479203942318691286254628657948890634460270025654033687189133460626300594766777276910103410225197196182709293851473887385859746262666955420702885084817633233170019687592909372874640761314843049066591122968240441050723036421972828294305191751637671138104303322996133972854328956982708635759968878575236654505207225995913189794393404605682821239230081363485292506945345179880661796653754538217970224628549363492885014025355933759564778340900127432862127934410309312236331107021639813286029776540482562029560209805801758327219296235703100662803302527496291233794430066710374208389995073161135985859885049385323149547871300572783782657323257123003498729208855197675772625323686097460508923393261802838631885142321090937036697723849601594872301644101282499030454624557206801895642311911884951609197787563007301639657004968210111601868666014851523269096865767579303782352794107567071563952076824443628035545485799190087271621460382737038303725092093089449858617114108089304126162543951573900179820273844524290334299334777580931086726094083019990522368429512541639320276460490037075062283402713879495216086189283916780676082616241178643594763672445653473560171442763317415963408509437121136864831337314351567661414219717426875139118227993199114389185212434995884796273489605466275841442482907256065110586814281749144513153703220445440958643665191199663549681715817512770898306923268251440753146226544942623454574371874802658267955213606049855027779876491710239401693139415576681690409794578834181548644235179344362258162417813354976360265628714657285401036867504886695745528742776862511428238033737606589487215837439095694210830957238051187163862721060166367335530257318483374722895589704204916466064207113327221868688056102166226223690066084873219400128519896214351949051171292029020246858850165199275963985444184699164438245567918728237347116463184964155152284943818103780398758769129335826673864785734006604333542688319550933793622907137776634441668771541277788155615749073683848591847066077112889756482451725741493308542505488513924891195898312839343200527478389537430287437968515038833027326460996112336173213572430673596497739199494897867463561619285332091540587979667033084010823322373982329001281433759285113291140242030943941297263967009932165067259283347656019366369424443066410069493272881764466163643723874593357937357674747382501889944312539179226711449855281520366201112135802150021818750013590098529067335951993048868246444935631543538260936955933992633512138866136355973556695622330153511230397283135910040189394504248787780223695498126984870054803144974256365640062253560019565820776812552100976889184691059674228665008197602022703572502555012742489255840113604666678782049849322218864332846567818199814436692293311210982102542118066210853101877426963876339248294022262130234397196939798723195436372973961252956047137974407095178460048678051620600534924429420713213334715200538457094715652645106642356463949523319141507298087247399119833499339555201067527654712143337050598536634277954214191513125414335241980421961472570014463372777421733051362941416945760960296718165814146385108722019687206288719348136916171505671383856855701697485265833351819183358470598052771598709864067787418031608579711012326333909756448572156050797322767449345827091050036224872476174190541384931875830691163058924153619062856964255483837206040728916670487533627818747633036001715751328049311669988708728096507711077171782164871615065763181414652937642580702480046075041533036389987476104631563428591935557751561430759715742593053661399352085739045553140631871237556603539172569501147168297123093021630880176010845825211215378968552872159924071074969466022347193822321401287563968843212797285436175435153579271894311892742619590812566067598751179041488652602825212841857895480117456185449032962875071229360395958498202683594291986497156921829197708552959543741224503185624911519719816132078631401611221713663241609082602245522992207187702911322340232096249408640402629477201364724455419031425176535171824481481891050076393102165631727975708789826697701106288822264847083088139569382378084030947474837035100438191444413792512623921965600299187772509790905364839465508220839860681500419340941482776733187638626885364624387009192992600380078364276345263179541163519609649805108683491989634982352351098109514297469361830321213205476458554051673228526090077014359395524143444501518659975448627987290124021408362253029286766471881926929312732490450962135412467650297075198915209028415587852009785005300498226296399232871560010560939381744839333143727169024599264173068135220649339697580384319723847486828788582210817864999999484376892949242350815286834748090451161848292446492834096161301423326172546853655676199022253083174675770157855576422776213110052169821604093300031563372028521743799737403312960667380242444383367862737560160269997096299546995314070163545394201959147811099451507990663987657273529345206038213021274340770982721297493094360002090772588450090605910101077115088112741471073337052972406522831902247117196511063542027483542588916696599674353276127839806613503307986974891923394523925642171241801653234829651448360541328638146387968560471905363611173394565131389094673416526693292354221840994457455511635035766179396977566584270370540075864056792646820733258013413609530046722020011092151309596175747176521516740085505849512021300593470369870414359741345320007260358140679651608367278059754730916317490397041388177365557222897610787118566510651221707956922922650473231264671568431021880588367991572993192288694397045671746995216895249981604773694490232396437348739041885446639715779397059856976923584847834544036891363053928564093835607357153367957676347441105313810379523716979897644857249994766840535862844765677615412465401359245472614971166869433368012009900512978836667471768611702626696194111588990789058468481068912300321428826834353559498419455276500575227602302021605356176436029638333636498322731677092868704242327347624467004977152991123480299361173878427518868970354357866704873261591150192078333598367107222343998534360729349577025973270994843528510745446530617113422368592789801219468679663258388868293459750736291169709131369338969606691143321555846974467598600556319048084757562571514957588513838340600636346020925618498645853782269891187782806489059278503987873277351045096407638924434951264384929971582572798179026556465079128162667619456182583767270070320007191524027949841060491871648013636479129329731043958325868458512174830439130342952458972834622740091440834816826338919069629318434524388516616026258260455901705072077083282843206997836335919022615788868959070169540659652868210421622615851960611626504179337452986426222895392423106550680475405417181862898655608128061535243733958602527014956217417912828900936582978117924190379463180729627364693429764978653318161356326033995403651685820561681713839100158892897852098411130193062119334848085496131513492891671520766453827675891696068524499032639724053623207998198101324000472193148619409477350430968391429124656025126073232532459429782022770560719585406909367796680553953720637420318621574006269497010480887736616777368299349032259619841036115998254537169128632649087468259619093159178613743073744084372878357346534314501885991687639625212436562886371243758919618665155683917558007106359614297624243528343760942069035877790955099221828487591002935557637725478920028446622489866918377613402807135746207359554006588781426989381382535365156634004537115884573788617835827377190243625836597970333787386144152133871299563123796572749538868916233951936730651929975182867841085168140566321118351164113501933588016330839953067935536422051277067372789698692453862227395828057720112733823743420709771130013889749048326344821752483626131647177418908720906212916365233819320216116879110454764843232644395582019309060823981305140817380650747688127000353200181786315726675931169892550024412059512112107608872013407822128949518300295296076340659239499175972770938923369565490101044408749521644190973614786337735787183492812090374179580924027670467508539674902926852718761177813207221328561203082870073113697980770170681357328968152713646170304382968039938553448288033924846689631496005769107190376201256226648953043580696550582207973634183128008355360826424087441324153876523369083839611688352349095714962521122742439272645140489755936120809073258699742792443193733623775058352142610008772998522006194699140983217898749385725867971756273045752086338908405424554543110697414507859512931025820515234666844728224090025371091451971737907079219816511247048564311921869312343002198951202200895312638170809050859934386045486363242915863466491798691128918647600862269966258377241526046303244023684804979074464299287345146027782117795495164296775302556620206338163744069155249924649640549900474727224020417658979443129191477850832402309870206717396328879670077971112691715190281564912467797552347938685799941276768186801870392030560123024581442991252433235785438905087177117783937656068207261073211560197507199691566828639579088034126498167780779405051122673033440709612694421237713862143957442232914504897176492095215071634241163763040255877013662171253640008557932592994813092008939649860233123047536267480152086236423534817842037723849546481173006437747718154277884885323151543460688559584301547603921755683204019138785051414376305408832040095933059253633078589490531152856495189689835916169843905372262067702058107084538847331462803245748912108316991776871332491542785935893284127248447739394268074433145763459275179026102868182824323497782586144106186021462242161908590081332284126917717565675661622393051317708815807418441111304651946791318244465150494861466557388532874591754543397001881280498678645212159384210868672898973662758131608043666926643593322537065214892732057629677697996790947317096441035115821499093170123691934167408465377026134918774085751309810149387281979422568359405235867199696746501496256688653352291568237403994920462136340079024552030188132080789117763142056095128378931161286715002653372997993711239829820493677176574523030309354324342664557399830373325252466780773083070560520831020806748933332811817236002320986079097379400925965478168495427207974239384878933100490696371466036362536218501165938208484447534140567454368654279341447363732246318761065050935387199561548617359009288389658498665892635323094027464618469692670789803329160237466869665597760133498569799772050260193709861957399827370839788315615247932475445652863900830390083139956529400347814568084316743764436125127915051828271051278672756877644332272136356802034159852776451257660394344470741370609634995044208993270822908276546510145169272925478499757425167988002933033527912636827336526967372412503892844695743005779262203042215878084840462935331158176958649613955608069719073685721373567927336614024685812649983968686220237792170160019053528274240361099167628961609421983696440267257781220350154430974172006511515820002471248412999992590236455140125264007359573157599388700269002329859955370039666249218616133756096749694344497345580317909301654868401444732422501730099581250335083298306892789849156975659533860819033737456535373457937863709566486898917123979836753940922385388375842237353615693655783177273058408739971789337696875409205923349049996166913817414998166274758332980829831067160139658799789460459458078480825898937124860181327560440026596338568373425249138083146038249735283478239259641563394069604716409624020402908538366843814336067633319754412631627313244183721951824024679997395509046829030215157466092900152993161522964783327816604452281244007120894944659402484626582079091797429677950517382897534074362350197842250030785139692620514004719321824872258030424912303609256160596465591833107114929385974464134994298735378795935949492685934358805402762050109288199919882632947131438349642480247067643540385136954848709949673637799952102855059703682343681465731469793303629447441702243550067107097924767353665793125891924381315164359523465226201877683707483719381374618931415563546118045853647921591484928127401911942803254010475648631134345206890798912258768242762918035819169573369953786696378950959420664733322069953406094460035587179191200088795135910314923791047515628680947733444197539019740451796195156216286540535493184073538690104362158764415855105123979131863303608820381486368355349915720135393221024989406423848863682544384559431453294885710615663071672345691129565632713864532043959242679905594856499636793228818611358339553407131089414022858242162790411224419215971803131925269282299004780872817421681705867719056444363564625427553094149565841387404904502929809614038301828695154813262948202871019253171949891649936937716921145290017166291726151068521365330062159979669048920727487924453588987856283290461362287793551268149181152847092946409926912673759547946341065122412603245207235692842482216435858888394083013551376273762707205625307626340828587325170074526673327453768081491716483996397587060692969476308260167471750484730787722180730728267571030873099153170128602242099285666395660205574221414615611113365563137498859463118236330137333558217813710535024841935474344451849348657919766342878172532123029109226989598690858963181644340855883351371385932709837395009428671321109784879235437385864990987350610366429505387141114704788146175739748197290433204930426545333885098015313902664199569083986788052598498385285805890395260494297068816745680820235153097947961534904982840177655951391143475073377830051174965598619403387587437823024267165679540582643806487985023321172225725215187547033554808151907144413223840192151451798605388826869282268459277685850023224326075848240617715469898205744420808792990065602905501711077139172092873120002355154454346248345985151691121179077528711165071039462225104080569847941209875663801408974290520012564693401424331382741257240263477775038101550474661434080248107225392891764977503646163788841169421027484438247406106083906178009767525501631863076942024287204749142610035186528086018203871385117323919696852303328014431478577432045916423539390629606232070995908464939589340212769778195570543240819662747487099715241038486784579828159078443707771550031068734920474944817797294077684327003074588481065171365560378786335126813031865223897957290036729836230775898976431546228653582503103167134909798587573733808131900049036772427219285682086396110868784286528959203445202114128623682920393354412299506240545339553079492436771285813732553776621365243877577591563696183921526306324231995208638925058193471982037869468135123536761488716916897991669839294368858939170267913798410791833304725014378473917936439268506884946587927557561647388917708308949239028344132910360280108648528253128567360790282420344282059463498443247363107833451577848477626093743142665877947456573689353677831046651738439239711932688111764068984018769168189430365985586139303963708901420529372535827200548316025762898904925228667125506391606743623819637086253269853184802033154594928389893659822022491517268703812283431911699271904227754357659568614287800815089616406670342953215189208251790081871698988223227730670406433821391860862520843477660168000716953629704383870215000329812959557903108528365791201860465756483158676212478597588263155482835959767544340087451012411399503422574431626212721988101099379413491097204483037371173184741740599051081670399785217580923430245708841018222543919510480015482228477528257510553410688799460311287790615904719715620334485321052172085905463308482395298167153431189443146463123126027250909053036309866818907755789856051540629229856709740208720828100813207803314514418883357237204465137263547709619856014910528530770903769178837566867794136208096884993761136350070307603604547872091811463718944571315306908653466293108681628292868028448908138473903199661900754624519482808222187631347242602408797162494949863892673459744711072358373109274189498449843853121590028109820450443789133324371975426231592327764433077991996330501068917541135065830106619871749032490593594923757466427192075086496986672598258646689039540319598004380158165318834412527755477156671862068696668181406157943950015107623412176112775161635943276979887568524412508260349855620871059622761603571388850021127504284144667882200110067426986871987077821295992269420439339722205250980764630903503054927318356065512819542197544989685718393989687556947349620119232586033582182452034829594159078522553316344186975994371133838660902862109452854459541670630110312633937882710443252420993516835203069702555586365404938292645149528111235411330288726641510792183521406788555583146205257255370701714256007970440287406665938027209411391800948054902332861948898953428464199886459176259943517837444432055158031045705305353126084402085564395386515633945335072641051028868937213046647152208951558825256439140373393135538826493985353635858042371793784872768779197699030139867199202780368823037355123312830311100693526839057093662508479128084707062424500594782324943570329904072161467553842497180444972695077224160852716418524361181122550965598400417087933919378174526264378768715216173788575483855015963847202785558135685045907505108335899966352172636774242558615764665722002086011703947127018977889347217013184204545091876629146612915178525340515303664579516593981923174680403765021868861749080612258739757357763703278515568276073005222751452595413136850542115632479087701999799586163449433720591880787531868786132167235004245655804859930218295489843924851574425826317754216542262607061737114865472235172047730041500342270224154347773061485573413870978926987031137531109357134430008153506129822850775496184751692859914468206115726130124978652111990272951016101865414713950307584438660672107355153388645289754046047844502313466408534196039235564090635288186358818113664504120349617202746618090070081660796123249583858504419000040146502729587411454130304696958116228083130047647194018456312973125419280191811970360338528476202595385057133171623794586902127021122862745164362532968453909112971614106508485774222998344889710734533418645663603201768964106225990103006418411528322810250270371254247752283675419774505886350356948019997835861340957887772551344317332432543905107527432960175642916391817791328737127704363938404374836017702326095853894411858018491955282780369666458682354026181169863785553616966197240821756132603362646417920946165348327205610340083682676554067750720119779156774809386475169421291658597413997154271996251621961296101125532947294245597518378296499635092237385230848876918944749631587163099961462161268431299468749376725038431450194385565244075408813038748218243389333340067112948620886207409646485334775336251977689590583461290014689354551631365895135268716002333352687077664136260789794421050500234243123602301038237636891939713871283964210738426854072494141391488057638178718709336957112600823635904749639863625298226708155182548881054728569376723167000333384144374761034069742410334643583579654231594179145795011019364200716361056079526318832224714831852399144408526666745843083895672951327769324116342107743870933112446223017911590779284436226522843227995204527693837817939782273522413013197583237230664047246649705916373777330529528687718642831773179073934401229159625697517149362893540274274281241387636868683610675261119844533343330064969359654037309380134694979859249006869586311316391190413553565265651602942720822825289105206814699777704350334446964866778497806684207208395007240398165682555326613669450406089087061831846831569010982935364540444877314328595155089937579637213122314226310681223677401485834537965156941170934632948737382550704037231056212560727226215460513596778080404370963354063756434446785936278406979405865805780535644217436316892755840626381860223325683588261900682207497900420438295876063826807326116005308305984869469215051297732989629850499412405333261786711710471846294707531429805001971847517302361233815615096339925994035954229182313732943691726002873445160420444950618284270224745815595379964851156546239295552446044159135539834111126086958000804433936237855486132384406259032353318516222638628555018353017962452334165820953896471252263513307875039166061867446577171435431413606461888323420849844643695124590157405781522735137611303061548417610449621150076864415569878213533209274081347036853588136213802831021260042075102191538117731687289308394742037911824036535606864249999622583704578401904969563370084232150499251588252022200900888952517191129075924013018813666300547233465630919953337763080233275423619998387141633128682327500875736778057454523684343294588842090177568747899496501108287033634601808756603811110175313179031030711132627298886916338516601655859597567699215598639801114264263857147642057949438323636367788524699478506210382926996541926833826654937464542487575184011148500227218678216366650377057502433041085347708354927187464652334746636903885571244482865120292675193998080231516068835665596114387939689775160381765888744862660850107874198154535281851276525030918693959525886242747347797308905245931858194613675096230190926000462512142855124395669371030023730743979915372340499153013805733339372023867952514103680745074408780916484096890177653906231717787815061234099574352261000207275367444052019672922464309044537520477661680751659639600411169009554243904251759087073293676380856430028997626633978167697396676827668475732068223198387503814808875090503059188245789389961756755410713600434452582943610291767038904901121050743156549022042587102772432067604512092064987732991256334492942805092640658989598069580868901484003785534172319405781719330543331704284952957315810257440032722798483616673533998756791717520374210559157812206648246643453890725388448701827902908457936533606374817071705612937258280731343465217834487204903787793171923792861514470507067659046729767110065690009030085524621625396043111288048672168739942908456681553418152603581099283118425622468445710836830558798025599268715307901912809723433683375105732460547119044861439078267177894493951181653525815116765336932061753857734677601489839699783078940677722954362861071931124437976167867566371328686448301979941476096483159291395690436144740706515695133919909831638013700977940673963583215553393826105873779658744146849765458141454343030153298797717123450137634531100575350404495447285931247605103507782063168981521094601879253954635605058703955183932545395755229057368753928465303279467890501167736141548117439102017030495100237587644343973024662147120901832272565852459247138748904721108566880465721748735434912972707385414120151358540755991339460155506533637971790973196816093607020661822990131490887484122719235225775163717605669176580105644850321429536198240249173491400960033562803145339192824746539794248615236232080361423000534821166882337456492199566881683254356519745109934763383945567932580450943700843537011914335231516851676478639322254066712717444312777818984530811212441926167329409980726472101300366879502741830592291865365634010868841004169343292490591713018926746158526827044672153423874478191601584246402590565874734984990814270319595618866875212862638804004869086307619237622510769343583108184372457503311655569773538284635859548956134161925404293675636015763468850087570802329291124561220410121639005674402002012600813897703869228741779195337913992770344625886301392924397411501895760115535427326956401625575217385362265419730603308859903266388444177702422092392681780910437413563648980910938634151084856020961084406558441939408465072552571799791336025694636608566754544103164482775745863089418183943631407592405752610303368684155548430984343133114600351224736650399151427927696583392924052432520210293620213336460591684002212433971296267095223523141256079838355041837015661483055826119312406193890104153344263079724809877208103009279081828529827799326593609980884389565566188628596492868287227776287311772669518717295940880795181016135297533610771858804637101362680481843694224782499018342829168686439282002548111121719812724524304005286771006410041224617240891828293042951223963652862131984146915988226859043465101032070866418610847644398220077068628256212057765671251662236320610516071089213817796289576192496592396985922784803879198976357488627906846242026350518738487776410467751672618805348111824345729153224250504075412282771066508744374625583852906205833826626347990803335640873978111112604805351988227934361601024836735968836072395133734281839716330047481818270895165113227317670766744913600111423043131278324161205948139246568558273882637432277288626943189748433844111211553301911080905809280800934725605640640073113083066545998071898939955905365645804963602830880335869469977838190942548230080973554483602304187879939196576752586846107524669512605717073196074385182555026702189696763443068951234062074797041192170190349506473014541034226880683841639713229400859195190475888605370950135173753506899275515702689357799332851570145479035837635916293654168409114201778664457064534861699672810322345458647052052209030735761735110960636929023588755678768481296777594555591832580720363337410683617114918676301441364136540419172269085324739682977711014232072273969514563181989403665911618126634260328643509919457773620505541429494375082997568581051019755502102125562029777421956660891853310808977246143438375152215084281797981834521418360640812351797216455253994950303454625214774607127238970797217628599544497061572685789705816853050002595263055496607939090206306255229887836441683555177825584784012839514669804622645262543898947077679630580426497617176936383970829547204727238992155592566783768423516263229820424568957198287999350869798958315318668049019150807204740701521764858577379090303327838838637690098408210893467738677531545135745179208873997901539475336619444148641233351462092327515883857251006560575464598853421083696797809796682982367184355754991584290782627671291294689607282615442728703624898778806091082406906191127322357582589957512020197934606164168690171509338279880655878865340945595003585754955273977421325576041784888486019764162379556301066332821223250089671562606110898967771945603379955322187932058666242877788613131325594965122429259455396199135050483381195526636952871178074735196742887532125546950526592522331645838140567036359503509090817108429881978651985146369608082495675650671817526268645944366478395308283837164762247659281050882144299508388248311400815149055785064549188633007340189213761792404324966669409944778797887100766071529092198523698398861415747181417118245329584956518880038409378553129908209692493325861530265438664493945971558803118086202986634766912378892160129340963188477675029244817810858361025672331145215527878400521100294829805386164422179431150160075319372760472970466483275711130789363656946832131572322589892007206263571483946093643017293166430837009808807922629768564111963895783303401736737277575852219301886711517077203824181199582139262828984203765007909909089326153234980077696856501762643583620554929353089399121044757097815921648945755089711642938982044484966214592219873966271170409137068911811955130308859928354909563203390156144856632233771574395350382732612472586880920327604500138435091864058913084127744573006125150689398010081511641560722904082412457437984349662086178611966372804549271454628695500526818182994568807193956043894748483488050692250976249296224121199984769252240899759775229048199404808781617504946299686291018141268816328718041083036651228720807337341762171463463389646347184464780550680700853334296294623891736835293566851284678711496611135346767619507884993552648293846106058685077901698580080249213243880888996112558246701656583753432022580897403362197249236552898816175389783425682662366255633278042249017856688138985863692781452620586555942962703090839413667145751994428386298567104067462414338111548153770209112797363970406656908232343793997235721968469555140707432978834229907908601545605861012913403956414211359822495304197030205175796832291015974760638402912286929444311965956668357369077806988152513956613641267640216972638145800184843824280652562726252757075618046950917163035178703843451413426624586942594492415594737896043111114109133953200353249204888620376465077343114046048985577411089264732054307774091941912722333963673304688800079374682421832566372923605252465605814738848713211586864706065829322053641917311251921368203718072715444038395647129430703468936919562571182661255472932867485604097176511938227242456053098738818712292666436806154576933162411919741387898887207382818838843462759424271584669282372813183858996883127817343593685689662373056771857726780709700800873191214863331731579336833930495648882601122342875967696462099866991521380870007572362865191352958317501660320015312300344524916061602258724345373357313642035772365188709047449279908148612667489244304994191059957828364481941404131434486761268538481131173878728628877388202480078257464692790005927613687199783035187536903354088782284380359613422499969372275195607289436784851242328875433382716767648490875379813425102610566930641700231922282586388589599574574285189178303305468199434374744949778373601423566726755891441715045077150120873525471796714981722812504409346888335575438688244341079614567643613764125227881166224431600764323161867937779385845492163533484460843747376246738062855050895471029770501484865292831665157632127370196575560549784389835652253681229704513197090812224083174632152412874429912978359283473053472061160781885652018382269248277297906183886617829338342238039195756356546463416858970218271785929162625482356471395699222989987113071694106121276780375396944097726809699703869013929541918228668144336473178461284801902018716588636744634175292004408554949779408160932091704498549577321896558050100255947124808825813034023566984841630425295133118865840711801745970159587753061027829732157110398008027587825494955614033699474054439534557960365239523461594169635620304701324670021469712168151908011430001334538126348233001344622196274028635770169719596941454335589712514522593618649609167892357022214221350417646355206034727115424501806919464086588099614326067905085417013704113655293090256868040343149791520253411826765277198554174091576816005128252564404120569195328172868421595726203116047456201188384883744279599025783551265473730274742963501696082683865654100119756450697292159475024037889624005761858415721426089625688359257502235320304051671928633056198984751158592874329295711731077203234802096890899574041823283085341710227935347912214361890460900013719980173090335902156568908940125156855123903236595699192725935073761455333369085696656393997611143641332396583370794522697059382139347590194340629736276904686832176645336791126539782974871949047299299679942601091054376463882960749886637053251830348908610130835596946656802092033355943171810606450766090164136428904184248440633224212335763932745747777032137886605716501138605408621017805642824484261784293338498012463924906699909455581660359966995676994364143312556614675847501762433565433378928664578576458534604412749783500688966527976852463254633814777652427587603187355594453247364086439645398629332835819284634979633808260058098222847173640997105698419109618957098930735954925443980311886372840793097466387523193815690866295678416384210061395120440208964689795742217044177882415043468772943452709644307210455067065872701590759725652259919197173950311317772798051637967703829478153943027894877362595214039638170560250450173930498626155256263364627646283445019311925466927752615035148609824993555067930574381122671437862222955422341166979219312865760683578227144476481065943288422363780680479085486650894583413106142286505009477446079670609247651497328290113753419413965950673232290817075171727063351284126498567610619435245765602431753841661081289941942860798161192826471108945109719474454959400584722113471489497273033749254455243368251521237221897449775658905524335065021818175006267204187734706970028865438070471498398181282247541572208922717165419562526514460922252365369554892473108774013276326267951053487822929596826818242732465160051447145482357514675837399651320111448151877287039989999594219182262287137081959915250983709011091126625070923353674326228390802451875601531097670657222417484347760057988573856335013037942845520953811284309698112525122291372315246081077384426016556897463659317968913214064210440272803278438571228355917222473966512696668569856858970248774411461730297837477218666221135614075971778149790730002866775706479794082448121655539655750625488445273261617825556961354645057613158255534047147098255728598421390600376220535903618678277810463537545800197927467260520959558049403798654638065059168225003778095041244980406255188456404217541682908389512357884956924456315287652510493590621742617361066531675870851728972668688280525657989858501662558882363135705723937087812828982874246112521913158246641204184742183047719270614741205280686585200694815697574377814459326072109519261682849022260893842288249999326886072429833426965453107087275920034978558763364218669222470587554169579114000273376411381955546209329583566293460454930595212077860076067121578030556292156681043721199696981377795355202032380948520378192383587104139182780016446722119638075472103792456127592196963666434218314543445409714665446168372318544500348590538841644828199819426264883165021303774852062785435488462697749474152850010326612675169369360408188023241219205214654061767985296535283841478389494691690660626617144357627275054029949531880600808349598451877038605077586774113132293558206659424623162061337211419906314089249261327749653904389279536578310366105335895092375218671029913131683781590384435129297548174323541559367657325699132608889476462992216811137794373389410403511270543483658131528777257999808302601577747803887314735563922866412038197962759450422065179690061955782232754754791260712777150814789154084347910378571979942623338100896208556426970079219120650768409645655918085077803301577937863746623305620448596429292165170609938195403901095009204150525017070662406176979592582512344652547238621538990978151360713527688369789856407542729005113474619165558255918854702818699359565479831050456539219676455387101391463779552983855293153598624830595556998799949388310276582033631529165391183043572408446408683972700211981501645042044487416838950898138307887706432838270767363132584916425224487907434710699852198180019356280766477280304454456415035877428118830276968142820143935754558315785525303949482490712124408353706071554495945349091806017991287220242874404409109234498579638817443496959720257209997072916722904940893689210315361703191930142461262486893728981495735223106147518513962795821394572857167618476265718324161554624774022908459910171326321426899396478653050960837592081759073056102361705106754856852615826344842897513404463238388483545665081717685340446871252137795086810265302018959021286043471905575472037244101076809778968513355262260512549575351268410052663268698451964433091126295127430679110759263590536221920169883950637811630175992354227646721437014832589857980618838213614850126020412196793112405857571369490484754199528723180030516085014656584936562299130606562830580794163550704712213280627358644877078981758346843185788993453217867643861260424410830037554849603382992018052767157072594963813394100424777930539788983646621625771252811469939596972166232903435400916581013826844590560912966569751586712252303125220296004947998237898877828279404732463773844931408462900407379927833710689316015251025773660289626409013440896349687214715435258607263852934867398633600067292597741338227387416555031274499019780037238480326785355636248795889037007496645014837117878074661866225637367147696905777605726758045462749353041104546374292613839820781252298649606091525433162650997810928216836791280093964875260656981068638112820812154360928176161750165674267152904822652726448399038146619894874103746858480605519809359002897012170579061150260034662377770546193720625001038289212419421290968276949938470873597346131674468339119894443014910188994129339617472338064934389792209951102662741981123626633658628691925937585297471344199912031353831168912250601409715145533434899771136533833559772502148188676938799324255123013231377414142055362742153578351114622406834615631782271704039057720803224408811320552167222010163791390733327082478943251461081520827856814182250467479153855462465167215516647975006522048359141147369015138585069053318832134503633926916243443503928760897962001166817902567903948823727525874756136185757902451209978797732723285612016216035074315588324685506850687674527373237110675431963629799185598038880389711406690078335660865162911500724171792658405586111486604489140219347798469283355529112429445112157853018993438664971890046484932242513575578556903811630927758049260716316089117177205671735072230364306920039265357111087831099587282136570608295137115205605652664771637457174934804141268126926889162507147550110338945539117823405650428132193383642043526822270550122481818956009395607975711042741055996227380414231561706102861270546225911098169541763358013086066788426672249156566506867555194202995543591724493329015385965008660110983419562450660164272941865146346501494060225751369568882844772409886248002160717061082743175009265073173120732060329031760940422160248128107822775099100467868294100277339664645389956693619902536919225785880153068170377716403341251515712061946273284126199060832408772468218977324334041132810896441392073427162284811359647514500358903072684402724220878690161392551684642702254520392951368868314421486036860707730843094690892384619213854311196396105344615063295320602712094719737558031153958243391599779714157504881583376716240291261869053333384811940824914263419339157433967836105876561656879842812099695639815209418733999576476715098238183006380061839594938303145218758219143487556534740106140474219154746080932694997566180092403177776168424996873538089222694839733681913785086953113128165882296370398329047138673368450616684841566549985904822259782244998004764934326291821219573840416488185410609914694785738307876843851561461988538120000738828746318414047913957444459770601777694858181842212443702635317875520543039454146672436150652268285991822983265456079923942596954441709179809783682229434869610323115269798952707980732940116189191146387027890467103619274014754950653527208453168812387755550319459916377339964798240388670963201365562778035301993380084192417105537380211114817113796738735360867482551439793252006810722183631286656971566649977611177586452694612769568071501692085101641036469402822090483435700013431613709450811435808933097549838535585191172428318947439540028565772582677503267938037677149282680895338499750190332074498505783879562385432268845566333697103759181293376488435945514847493608825045153318176599301762596115225959957411458045582197452251874266665203792233411096113446946262941681690504708532056380653790455212456928965744035561733752474142852414866791297663336160463304577063771919182129474586474046037639115319471395228435306966656809801499540720980563874998001621747827421313971659092630472959687897040687033302027401410662686346628586227786703248359656868185998545737425529148661250094838585434733324924816506555141499086452625843662488442580433329780666033821961883257132862586810918458674967480678090783940270204570097927337687744752282139229983973899523567817471491069071703088765011233537231043281055592004950263830237285610086472765437736897899102906773332278454987101818633958149544303043840434370884786453835368643847608600592052615246664687560670548567877395824389014757004904730608908686953076462177964276881272363792099646185714356304239269449812279807061870944767727030325167780474396987202585625329589929894726269491530998701499307749480433349764556979675612034362926166899280498379467963696680130099199099367405172904235264290191581495476175629744256996930893362207496002308535410371521496801867351168178701609564731037724365985780372740792394752845058010023606546982620430061082062209243210893605569868373571594073621968073569526416072885852942607446175723708935611117185284791540239747153967090789551473729223398551329477531623500009363439926666591283277475323495219276005983943798868735958465369463494198617616204596674089063908291007530511116260385512181288664360262056997390636066092356164570154747036240008512787904421492622677073288928128659284664622075901727420622210919118786761583262183184610374195047295388847507167476409804809351653196505084061208538889793137895252497383540070474437894739439542194812689882847119245629486531794435087190405919419720471542276586080887397566808220986097826533583998131585465090963146923422911603143151448753412781014272317378655785062638149202409803431780889157879982774056485245439995991724235569007985627923984688829152768267528494136272443998268059973210653795776516196071789924134264557584848445699076275919443105900139646352609526262370053984712467973939641438921671409583839370724026519077634079588479692582697485121583470504096414210723228951649272748680036914514918002209965819631211846982664546322046612119004050099020259467830682108256070400018817060150716535520311845275511603676839177132978194427852877257776070105463138292308327811069574537559577387636105243634472820605502315359190802232404599898576778004117788917191582539643301900338503209893517106524871978945633279427240531664309184644350266663283033968663984671260088293560299663760498824099643567457771174209959299805230576090029617057960788907778532356073995031249733462527159551481192542374432860289560597036954419168678202621752003065952106482741618897294423513568371481353050116039383831245631783452626749892172916557444016884496973762200786130505100815057696546352101277547941187652963473959964766460976184952244384228800228306690078730549820415565909698374642496625354970874542254524481891895270289651885947085316670161228733487076402579415840877974309604801612136427873062336921703911961997426350463304873126912839917251585032000134808145756694037945488002950298368493948911551045861455050610364480678262182101302708190789814461230827402899355736246066136235177014003238273883760442651677500407302598534020538480207080009392147189301886630256667077237360800378547734508894756057574997693547214355404408992544445175427012023576014977236610287045004505866452883849670333417125020084139015009213219178086828825504333971930132019755107569743373068781200626142567744211950931233700509615478755847792776073232265543406415657386247011644733134228322174071182636003911729347618711782575839269845025214256876811748949216544553818394267592870355180802785417063317612641138251131038161736506217855102844863464104411191086839404334267215165868997205030967977713293932314996162422686732474527043723957161497981216425013637730878591044835386287213772945604523579157926821108402707845837883863182319062129126344462048756691743164790485428389576799403898195645949628048365518698866342523251627764009774111318231555322958132325119847902446230014556599089377019402897858846731066704315951518042809835035780771137672035442071429404772986470956867747317421988571298027265651534724738427819833862518780803749712291506129492222609019360044583695897350466050146163171538613610275075538911874823758246177931483091087123591730400213871751590174280687735033527844351943254357816917354874064412385145972743326943360510472825581619655788286551258328058189424575329095827597617469700238440726937719932317740960589719113007329755041467500031540741644691812165516720552905597938078927765650917051345582072989643190850060712522823260286872133061783010321964823970301164054623459549191287823598842235731022972745390593484596411373137450510545714558361409245661496001584173817427997920141327777956705393684654648654587007319240866280806680892335700772766607621403962903345733151994188942811165757365905095751637468763866748262236481617038741881040523467206509927772616933175984935198854329704386278191842173615878551413169748002276842800663040244674689161485490712824044634601466932867582574159431453260138479949226730136066521234997892318231161552740506901982372817439799154903721371666325991332615918311328694917631246687729985160767161304438578085857801656870356095009963224760062765506653858327471356776806832901669209110706733157295641467014466245322778557496757886619501644703617817278240994950298980364229345025202746445905181919766485948215382139285167580932418648890796557020379841090892171788577958017788317740287776142087654533015212122658954248608046612403638660349312861955921413148059606091407983996504043877965978539918568932719064766304839061592245037929301651659725591467897876925554091682171867545517540278184815626613651892350173967171158910227334877100178590111543743407483655379825191740634714490198573544798163212470131540784586251051176226916840056425992403541755384627323839934567901521475190717195329821782997557347374490785010261008187671635006907628831485852322616417757443384102719536968473485775935552918686304420764359165328033302678174775950138133701420045355154669332339229933957444414663013141473696137244600686992203446165683484639967095052744445675248987812822323376748030341725047803068055072008207153165237249222627746272711358265723387828006894186740251280160950300592335372900712838814574871595256425716152764264069163024800345970850713260643485385496684101493965953040551194270111576651240386373054191883257915445134527229153222546058413714992226285663248914996709089915806309519622057977399200080534201116828612823881537723827747113719097623754930662641474465029963274813727016416961737940215001734198958738966309860088773212500209846248908336049906375203229398656752415597764671589559503450833696795031555491421527701111089307502080425218026339647618342937687132514491801055653990129068256232192293562554961185036013203738884110716022605371812564707812729049225777005687441417752312638124956263544090716074684682389162120768826677853750013138659919511275931229566139535872627544122416572829400230854437398494391940413870179831592823625076883652261555808583248801237991313455609262504285169058115185645811748315805174700386746090385785938755963150841748424256835091139067945419036691699827539804396014542039087616985956706434862827512402024005131439619045280428145355852603992387755561761568502562104254592520573822665007211420304838776835788658159000907524452890699249923363677354366708344777328759745614067877316233627654385223095589206006700557206861556030907978098938534095940980197575561675241540906185797477657637931698911566591462799685136006278598450251583726850271279231560602675130884686934594141797960291895047208649740869379310693157370337975283451860967604338383703041756380536569491927699764957108441870475546048209270079956099928992982803803655683354035977527273101573953264327327837685905840982574895878755398183662436145404202836886142507695426578421966469408467134578186648109161128468059020011272524832203902486311888589111394041700392677043531314776203270884500251028592963859063143333990874032844772596023349874515927584030611479333085838762462633342003395454826484243062879346040090225367932039469075138718633131123582727783302975169630199512476230759353128342398487458510390395517772099729234824639470487790584713893113433909118930312552202843447276642260463776342023329076955124934267316392008340382160329010714573067993097191245506094428104943735539936852481785003381872588395118139243644003332867847030373031187919647576188662835251039564178766335646853385533943196070631817749656716586256197408604730673678777134515532515681691813897892602374957266529617061200366820470441286648901208733266506188422146846481914328144694711384178225886734241925414704257375862756317789707191127060471459515443156183921996866792897832275023706571849275201058924303242331712619806878141598058842690296358395460242881439229303637512773129518705384421089821751835543584174620427278788647540128569776687951341637825933158236450930607736666427419601496853022458868897428391884615048381495538567144844001076652292973614784717759266066227790630132511948421729296025139982061195802127593224709730081716588932463121801417288648442748780606907798817238636561300155721126750030167634221381802438071430783470300630052862411305772687593278105724188215055740014214207728522343382057088071621441566867163589926498674157192363731320879490377391086891997776505139029057109652560352595191778576737583296331066374910698270882000810895928085468890296417279560899224885583719974598387010751425459071654520872592621762613564426424628031563496673362385382112049559550858164503082594407620254577782382350561503580633445255373107871294142923997578375248261778377714974465474050941288106967221204990591054575751892304207359351392051954235640152188475699339955004059981824133354005326639122508994539254814263943111014573022398453494952363976436630214167436235220210801051826936515319523025456562301108611682910682155480966055003981486836654723828573006486119088517304180784638349750869061023126313602552419636206554622462435540850419825209768582453474601241637402343605184459467384716158568009043277770419149151667762104096322426650048742849661976327232855169017894978887586622818022630375761198168507463533501267235237782174765365070712807927770341353333046980252679464238971074551767914490975695899807409963292340637398241442891512545594766730524811827386894775196267869165231110594983599752549501888717553827011059004486844807658694956554633525630004262680205096139190203485730270671110886078868150586484758999657594379263896216239647665791330500947054163613603196982906605604221336031178411368772827975362590875394832103390345390096925753996243124588278177954447577288537295621570488129559727585831605772073737667478489569702132997229846919595768722989783834672752062124826596442026097852622365126305372147021516237105048746596836216206152195437136173980103234574145525424092122537367467924380086657120661757306689345263188427726523812563904638964308341652275716637856076626492832334704427794541777156021829818008694291262143293451841683826278157128857014243068207167657940814898905179234931149709905423540943914194618545029560319611159026658743130898173087061727359339270502961829075888585266740376270485942505904127302698683524607338982648202711402035589970643225067148274164548450061484943288759835473632843917230141137785010395122457923609496027280961135545686919345291649102947568625017794838702237414512008427446833078176313929548146499195109629106872114186707206318742574479822509372626679176817445700809568252399260806706165865580789092490405920108352734009552467546393266435388030212015012331656526678281113853996742711037946934406358187384108771213949049350113452621911403829184560007112811856536811281025449634406474644294887560508006367211145668069022793001785464916623504426693057681146224579732880067579837636906967816616701926251746793643033388003097720649219814625911865223349145160703870239633255812289405646080672638676156758372218732715575196448544629093956570120388489393684238835593039234520781535633863672165730719178430418992727046060595919970706929212413136037273788952272846345357055255278400482045845858736503497741864679718119165545969877543024884227777849535354605382563620223217748819656333683363781937891155978127348961188142649761217507969537556526510494195122408601928104007124323899531637209045442675330023951831289001727596080713818229424814998938031709215478581036807255298885330777948208143884974803254615984479912232687870413840698827763337178801826319552230237343238541815868317816973661770075134381349633406209704189916287960888866367376614790265804750333272239996892528209696899312392595626023596556543236770198288890687537133929300668442239991763441402361212002853789967773205934296104674643727397995791653746189020201150226177309969747236544297181795560322799329284469294080896041181202131099327419065325206281207722379802344746006831878854294916384702555952002283821583375285320467403865438220836943806606483936430258109779058413542948138292384615360282021545082780526942515629352846066996442439065231281989356758543351642084421884134225213371956123604234186582130700799425274091802201318864628779408144973022129388920622961016480480736020292929814135605631635471029668610299732026666613016460275447759790367884383546291000207681440316929978046290364892489258371854780809403879624494479588043209181723331416607404096021811502374902108003080998073821536611249658273699136393946542131299775957504271238509564087662796545226877557461516538956921656963400052360768775716955154188734041589387480683384670052913226541758137754049589817754856687443361724096625364410038589194914502969656360201658729194318060977400256833466338526591716989718922776488493580786551034041868060957633792296615185390630859146001505920001713892367345918281541541009468266288581111062840856408349361165278108121523818238219576994973387560201901183063233118441962402693369911418042653428518517495246884801444293955268398163277247315635543452738094265090571757043631236867300711231018111256595414857342958194399078576542959254361191736335076876481367248494904835547266284050929757230157950162092848463685992244451813997715282072022432371465734538236550403913212755032001493579769231002284947243790268477515056111344075539785709162081927180110015778779063943104605566471483355472226726318178174315753635700297392938956462427181749339926283350119654925438525475529157775481815604653346548061048527935666878902777824811419486601781806574538869881816252163619893696615073249930833659176342762458885648518360405540044164027429021382250674338037387324091529744478503958553788823677772557773958728744889353386944176381700307397162761090765743850224567223789285470237011700518061674420803972453200673954824258347143778191283396226353466298399423438331667675878795024408219839192302158168928089557623614777400230059436943495413674947022173522728980459694089531364211575641297983456761597291742015394148492716811904854947226146981159415138826703967756559270553678812472721140061446167266587832496269630081832021416374013140660813242018236971283521315043864165467361240585656481843957128940637493105878698085033328314227749904165591337112490976683687407660921766711387803958247890356936054202077324860615445993876022369633844606366116561104620016003874135725963331890363188057921106430627333762980186218620094066818646451988479313384959033307681411038002237790411292556243418061374267316552105773033598617392682008826686907644635467334825901683080989479185912067722252182648521480221406970484258990389486303738510621167238783406014696106090670160938969607999024375526313622951604791056996471363954377511344808915395720613012116286877407239756238636047774241130920362004305233160172763062119434492579365864453746174818315036213584710169667030146088831020483031543644957524520527073687273090285667550655882477114423086708557863437409279950253934797411517013012600056306881801703546159313496576924591467713663465474971342634791000309001872782191960467294360395438912248260305964103080887188384001381501516372419024850390318208900399857015761758302089195400841761684184000566127025513538796930918994591876102262345897027158940968696628849049311334850591298480499520480647442473024549554416052947832573317665454511976269541740932349775783688255203181694009678411568071259638156351001279449733803751809186457957462047041367869885245738615048586910150854273577249914010126965723612780187901335305234599098316081844053405102245346465098074766428062756840084574414524121950420225497046563670739143288180349520862538806691002570345903415908545057061070428265695347510615500678847796167263124365736815142229147115438268111967907734070127659352571197674024570325832660408880393896476217889885593881337799577686771463251428248052037502849542053329984839472453964236942070949322862566221790277612492613171749010630010633983076035201354467498405943426831266489174311568509588212429332449877489436002533929432338147534616468166295984331527520533775660167271028936888877709647784340952616850573424276759261272200311192409853368219019548100981657538884702430332974716434124326820389662864573636427215658933280729002692464648006310157011349093813737351307035036792823006928588023360040969484384406356906888781091789055706497328784239683759759707278977758503980353206544459047241032181299563343862424525945276073983815403674597126873594904626406314043285114372165497243253861630894264885027095638323031499299203203969043202890837780734427343362395468439233001023105974881228110787042708700193001939554021370050613843872486773324381071345961369851608635329256675074754005113377284335977765258851771995532141818636824177463739053820308993291982911693232707367928408399599727856435352390437321759681206794778948114961508934287319406982348247219050758211930690418905255549458841378978341408807634694006943720856118578585748270819784883129547464212271028429104753836508794625293389671532336408277774696610326487433793366395924235746640082121896505194419598548012125284273652160638674072534065662274011199182683819813008857586638374116344792464862591239188534637512275123057178463346186242557119179037531911603947177873547616391205311661505141897740240130082184605155119564347118605084374581360055602033263063606609786286518673296331495183434595908212575167156726047262212099530194730624510579327444788610800063909601267822380755539579223974042099857000809019595672920165265757044683925086571835937220495374906865695951763322810923402926235376101355175615213254534761455129535945893636743523500198702073198235208285673520278770623413154604848334395879866657971782383444805924195157076900262525182197060585173338323273661289095574451315762940082764594768753015183794426036921339382290842208613257961739880735156325625417674506199659448390197911902926294565661526785948352646717752333049428257109491661397549147684414549453843382403019522857474840280599102540399997242658573602903170869905735038019240417157841370980441538060896779743282734769871809015779924435591460430078879106028423833978588460155703378308157905907056809121959405111562596205505967758406172066392983150187075700665786380729474355703904164207236605278190728560339413703190276258826575523862714404017103495891471252349514954360006219441197245032265587814611103036306016928356453404900882411027482414940535976964164039166861017798106793815042219220644288592007613327522004353375804692205358833882975663923310026338640934566975820393773545216576952675983553962821691420138732764404201034464580825362771660342151579431002273468172674631599895631272872234117539674481993123604596171285034127596171597472460566665842345025678521954659023650490471337123919620178928654188006474815029398728492277234049312508269378961367985116296287969416097811959229142405662613306911634830187042487448810462827794233179885732228743156680843086425000905906224612877226071416464737894325016956654111302022883107673921621780562999775706528635053107011857517005308087087307469396648308617305890184014285765150899189908074006539212756959848091056448668243072708561711619440819548271963257641436269980326132029440633772456699800371760953336793503483737729001448121251039809397408551273629528638776027678610996158188483371561853343519302030872258700241665818070028327991903301307624969889359394556287531048666996519296992305836317601359138361019283739980891681752498758315711254211616794602030143121309012109980761941131258182624909835446098359617967188424818105187862357249533316587693314962149803191761667367447616516738555231296260491987267210651405514257921911826311590671321909761158990430631664654187637936113317630723351978266466877803543977992990928953706675321862457508567975859357676402897747932085381676331168222279575592573430072092345973926676470973054524023366442855522009690335668135434330864540828660161869576944414834259038946626250888161971118231464573015721100430501805234474758209141630838793664707079146826559053007367136659950591659271135922124710676583842250850125577628395745532311339259962368546966782081280514592822052243803744647104268316001626994345712107402135716616717470675615639566563482202452892859005009534588419578455112703554562323458450555323054562036318519107114561963381290113314322193950562671264965884215411273360876652231274028816705410159134028487665375157324387992453709323438046278592756260128049534165434840992454964640749196346827995321165525287743759944243272757557766018171164955885077696413257163187508114830086571702391857109109446478107711851626955384118623689969192226275550141830227738968060728992597342282386623642576679447192435024201719006580398610383321331404412970161770380025353416632474807767435298593498723809017601494628971186363440580956052776111799351058513955400433055587310323974380452392678085445867683635971363831555776376165694976359850243822383172325217719394858627161331518250309536284201889371121351183725902298583416589332679153813530540436533478153613157720135506736281874564250799395255244649872579397903354891052757758460628101614805461538241459708963595423527823792161685894175522875547606183161084363055986986038493831544202257706496874018999509708977757813075170952628495749424463028261282977086512051092774342160008560130947766921299065279671381905619216564089907172044044743569599497213185931174794668049420104778192342703094834706678334317936991341674882413665649099233221085916135106892689119839299044380458926698604815314122592057683891397316141259192434414179693893728074694066183065173778831328838490043338509465073427809971661022422139341936299076608556205880727290277122894654320213289525974452772635300144878762716436405364355975557679493799841596186487711070499224242321399860987913648314637572845807567516358937112663692316538738762594780570812383794959862089245998804911464496893359652269531130182165909728352179477875023229711411691212587927061931593362582509928773021994787228671710354985222745857859119543128502355008088451722940651410375567753343279860774528053301313580812046073051936107726772731754595451795658394060913174559527698919704058509584930401351971174349516633764717497244158330132136215254053633168890213924839270732479835325486862776711131822454473137189395242595079721785832800663735577368384233429261450270489427120080062001365295271971648119703601455161895149942009977957201090874254907562630846427410035819266315010105769636261246293460014551178492006962344149118128838940698714067087097405387884478659176796924142937643464187571064996527123154749732445707669158206872318759549264418410319541345009133000910260637500566020031146764613584269277879517076120653730504952995082091382701409473580669861971722695786567773370122933632618708182929052549735162180972645209204059942314079796186561301023946120520062461637532073795411749450123116381410675948486101274269493663950373851970769345262826979858992677006158463232947634099663303292999985683568201507860001764712570438809866429923876381115284503312657391624262434991531506477525997218194727896869441726877745185872539069667595373405740646804319418304734015981131080257528646559682696794305559013391707143461436494397987474595989472316369342163497719925185430112991266568218414200956901952288493946301152750138922726804817651399371360695137878107221674988407533484809577245482956964727154608599607948209743780537569981261299371946373625496479158229794271769807433805487299561073647327145330470120137662272355338712282061761584001095897283080217942916849101849605747995798063419774803294010018361008277557376763618638913668543109004959035287734868378825728350680291797286471783150863492639545696286566906320237086934544254617570490053799427001823446634061522509111485539858351485416149678457206839162145594055413242560952584656453516289848123183469560501116094227359500353274015551490683625761680857898059040952434163451961584805490545969350137011992602840417795666586135445648872852914697910359820819462695148729730806078790606004777516907044230476248571839235557853151008917494099252863014675291999742873579270916736368495740779760148568633669469406481641953061017331495681446680401537888442856876478898791939764762419239296504152262424826024305847167007062392690410280241538990248092209648767560727367680978665444285505827800746941102071306958049420410028271804851661190047494747437351106611420169441270321789465132373626708493216058523499504327122931211640203470720350704862144117274346315253001012115289303247123856224312183466199442911818608429885713433470454067110430827614774510737545117782714112800203130024619696090002644414802098254660507936369319136952561677536526128523767848054000159544271985703762040482193627312073053985961987928156839055360541604162946058925502100527002349693884293586580320235999049490174640501753443902037841405644668981358596133130705412671414474075430108893015296922251312307949627544927221760038496258683140495837771506558069421282297913701657315217922168575982892558907737201194474868642409162315531747371201212649591324161417529983577178174088156294949379851740178438257066158171239883010624528044332434951186388923073943576030688769379408793533332143027567327100419265416533373466400806633437917746058874597769251184591956245343423954809273061060668946831630886489342398223520001712504521351091697963448190996618413794325246669640253800630403364969785484622710918649087202454992942165124507770350275244584339528082862525323449798088757873453466500124583175957135698789447366809094209168461173648428694253060140482089709382955482783712780175563874124779624604170179921006465653971966010241853220913096078154157731050756576146089101269011460194848419998617900055588987169522685760057138281702905017028104711441582194647167716881319904246090713590607817280857944767310075502743451546137532145321814509686557476760101032843557185369006918139310090816657876979428635162581934815279278135098669726609498248720481491514079225424128658383011252732497595984897230358406861700738625813601923441775514948588901730927746325772298285811001668176382155665005080067756175236805164059496828897050451239450098997144283561482911973405805803216335052994088810131441507350437668976216584803686238972330486983101627332315234377987818936450272949369447722557893533090513168070947783264013019672985640115321820868987922192352398399486590214674792692580005999088850804782856911763013685193107425464582720750748630079302748383503836049627636472397535983708431921985352628622852091073685254730931718374880806886530341525512017539194130063391471297144292688502919064103998593615233938687260852993915755585716469774280618710585888296779276057398812565043623979073328267231227951143791896686795492866682968482478109926213670135695197204347167687605332413385103504058205261141947157605961482345827629968578220476312534018198712116016847867480004851421757253864423357857455533747078885112191650255315355993972155582980045155960104644012486715888008516748771804804981471923245923791910387624417629065363293152587845095601929283488044813815273489243831431152307128024694441463728389961161667617411616244489917734250141410141135077303825809355776404789097267323046283570108373105970361950477826673745874717588431386337528256218440219312848399390288682813120411381984888140251706690964810321671267861102525019148426804079188690796392536765321154422643125287281365034220324193663044837675203433722119057062127395003181936771305917532311660667702526233821069359254094802038599083873967955911930762218792536814400049511165723616657456707409287064952007307015253802705626938247878911516545595128581660384663440029367008068555542285733835733545577829218697415642492019202695363066628424733101648800454221598589866587195394817084200548641358896221453810951911646086314857568999298795159957187546564763413655946931925713378791319302759145078564293237924598000137666624834177803505320925785507091597560614542468760184481416471665362642350676208521662931718793466190783795839173655657037022564491179318564871980325767017760461149825539668568692113631975690723502287998251426480964342202390446043272398642217789738167847980240541168001073650938379910879220133475834756566318392464300094754898028176939767010067209533528092570755771694590308859147763164445158326260503255446525294682731938017692821406852938543300371021153595388994935277352873418923444015719199985774608373040854677658232343501454370674494598757940785363398277229436037842691804527027000214041762099180530352029040040308773043602062213736807744861896370655170905946012332912344046999049445968156147289068472079648916550513848506886307451058686930492478051691843859948095612920515612204301809814327327974963929738328346313183538561336361241860527229354725771932669162441296668406254849042789968184715824955751063124621656051432508612480160866962409439579713726185933014170460477513991837882307993829327033344837058131501995053026347287215145107942172999837020554432824980898480310101549247125179266336230480379983719764300196090962080569535524286729910602732602669424935746579731322590309903331564618206126337312657132560631858042245862854473920329421027949257257355345179811852811112932118392610279533148494376635674960303868374241597896354487783613470118228500712742099184757754625670710181259740482653612604321532986143290942162029014031851178945037802076238928882926087619211772929460083130968673024687828665012161885038875895770183423826966767539469816937819342740364884423527265322133951898317979010060721539953992873759059620862745166406183713624320635230394627304014447167444191110279422618534387184611891273147094997221986233783813533805442404273356091933914571741938635021943974037498111814007890491302541368638502268413591539902929470738669029649245943018753071606929596781989968676512620124153330742930943966157501180982273522108733825396123395766809180948145316414800645389572040639988767326910570774714837279840817792354400004401540705148828105516773211895003209982659090493275455106746109661938455641022557728213994753942416713621992880682067339016932007512037461266748301915002002852454619125882323522013809153310003098198097037111858053909287674775177974445680805671446590184420301505303802289425190091329017670628453379735887520046978364368497080533452306465429305299280806787393034864942919133027618381664246608881525411524862081566785158655114567882014028026854567346171793665741774361990755022871264750117238479271630915355976611169984964143007756929933547271813436417120911084209971232794962255287276653643004952376503374216452849992120323971544963792708049348525479480570647194433008303845640953931677309893040531376842981114030542284979210650350358072789351879119340284559978420892785941755695969721068488973256048027313488479498188727265420723550863584489132929962562663824022886885209721467351690574781018643270712400582307724643902020765555332205326144991027790816758973287956300972350827120392956477507223802288923205250475964264194188906468451289919842993098173778905709601138023319944019298090607902052663842230302211757364448468533531724273073950602235151451697346719444292645099551915404163344075840900680327677463000240380581499914748512240566847332305139807645854417146393869879173536650142322286271495894447355037960577832397134839016120600825839506435953122646494757580505856348792121321092241567614731395610299486393675000806774846129065426714493469938239600862071048438911875823624036016960570788121417418488738386257680150787220192104242732229091979237378845282723736963493932333329202100899102462585965772188863790884731524115451866863604594975295921609271197619614503059378190494119192778807784715055401692553346991568522768969699125101961875177494379428618399403403991470648673790463217736762752417136830422729526397441155271232335793463694038553884816950203557226100477197889245208788029790471080227210555651739563546710107947366901736620309804661074424410585493054811200050990557428438770091702577074331199041472235098621111839482447590671291498530440830435874611456193368512789795528112102799878650715674284882646108802781548188878139684845731603452655995652142587477429690783131240266175736700063736683770719911388485243418101555091648031688617759526732855984192569600060754690507129140277189533531975315883837017318036842230928150009127953923183940642837722557820724635073576026287908356361875417454576072720669005888791775207402847658412754593223847643498532443611919558359655553816904559165613202706752682645006346285119767365321180763412129937988592579518160454470660178775301307443386471169675214697156711336987619901478696766538999507166494589689360910823050900677350831202147344650324631058198217774719721495892526652403223080044133840060441592283126979969545228728658813511517962017641553959957740068786555701606449856287971218603184551013759935203847868415420707654460862395267617246277755284627070631843124426364258919684890956457960288926714350949810738049427798348741448005209552851410142767062267141900581333086281711843841557134206634042036389841701240065330551024419838917364427676990973042096981311683014593129225652322861389733159823947539546245522176600587453660579139429752032626570355866536693979047116425661441890606844402100786003111433189793962369296612154483749593527824756769694741737733054994011725991782560246663029141151163024505864085408301913305288820733336818141617720918240628974255421832963882316751252631822554645776930549819293671894250767088038640637097772729263183704963322796941361345819385844040649021629139914877814975511514449617328190976117149337433025835540321838940039674312593190665315790691679106422837442879078742446145286659078613496983425393237853724631621582609448540653085626829356590949419850575520787160564599319525211173387542096698434645804047407374516218221115041578243241163172243850319211001690564395040560037893060339651312398085265695231132987045766796640042230334774232192115143849406743054983830780080098671901890635567064683775638189896281010943814523601204931818819347233990176144310131083303779422338020390609143008959675581139014763843732006827855159795581398650106894817879806673215162846958245570749672675128270294731713117239689042550013496129791968427324759082431489771143364691279535852668303564999504747252227961948555947011347976094135196824357459117766521908704070439381659704575529118803091078857890755394296678122891299883841378590982114224898396921248141567808592162342723370973531322104747441185148907410849873758426681316631926708307733538295058441946561607087106863207683048939257645893025153706283346079446606434384427667567554183971592394646354964180080107835507192667358035051471725851243123441820805641117664757828351503512871326955251787290168740932972018500353710412752785793026747305642595835222968038018446212247885168444794223561750663547245164961667881283043570605541946626914418376874593995197112241607597667960487989213279226634694300468488363101442475688110091586553162363745636778428723505303326010161094540892871509529565722165468568131107419659448620748235146188572740315937266415651904543758744379986653335162950554380059699782735980144248676121232016622890910211216438158835268378862786619245440556827734791240636589204055514891820431115073726112274992012514925465144322917541884114654704068258358765468543206087344236026348386446401480819191988734600996099353212103766490382314786954671841329088949776215446654334301687364695097893104391745484254838021694694054809977831688890248488148016919352875135072524723164788095945407171627166916008499329029690767908497184581285507463034580697190642745672746418494088645217144580780915979093866394683833927354091398375596387515103474602954591306592803337045912685490365475289854463169805905734928940849534162347922698738414610989167354916620704735180155156951485804288027267596105805276608367259554188076846022846148549130634767537165037373285056957760742083587008049681285590185609679038165068087055806631397498088121850909074012904317337817106652827537937022129322363363913915786791853127243657875615777520293349640484612388761324649531050132494307595338892947605802594645164869494277829790486348369439443711413674200663393441824744963340041879589868865297034925950715434234527499777551688286663108238556775223856337894671701066565670978463579551549590389766181262134667926404587314657059486312208107761728479347760200202099571718842050231967434651046661876002834550338376899445026423954396372066079463120059257281710765704351983985693871008759487939269489628315339243015763472163891768496555262514654355557482313821242997242856306068026558155261088153775629956021587226046667299407258148667831793737745619738831545088086011165448215463536011988818400761554816163604856618565959728421773789149941596857448892538622046253383109866088970447400735821458336282493835487803095446200887255277911297874977543043094520745095127402363448762890801170809932870795568738607302123142468618898046646332875243879495689389329736835560504237030518961457813727426966674698876723645145697343521703546279996744753982552866945965372034099694609040285989304747831694539712607105072005146715888356438196488632501122208043789602170258658633054053580716446576954070781735671267906032777515077793249299355579187640841529185246222494733604427521126932101262972280529783898349665699973679603140536903377410172879798115452643039665819995393582367600486546982438467818816673199768400320510167076959748667529734822037171656399107547232042886453775963805617961451874407009146578451526424175959905083172435682717220232454330116843785714693599803429844946393637631587328647311945960628644127532177936075320926904538072090722138272324338373741430695851294272756182082644878777801344303273894728054025186454787166112867615098306883577324249176325885539845482556310013376328456222568335271391870154276660015638637063549918767638274502138990634348122056952524246309828021526836154676102732591398283311382606792466963695089769067812674381091531057941214224843004674574212954611153208222632851173713772801453139533338233541382919703808733288344345432515373513212731803854104754074007902550209068771799413154217008185108192850345079269579995878682927119431382371575082443888320398594745452837742222224604543697083965298202120148409647796433106505909122180271478264283763713656660630241812573119431604517379569025102144978301741970297738992583627150499617970171421830069920455885038878659908892579741769422060835504564699267019783174599312624177207438732306761291747044135238190033034231052345262899437427527310620381444890839510443928095417633891008915127808090850246286821130359042294029660943206604929403980442457070119895940077596534268514810211409885964292585944353390958496593183106560683540851021254339609599962127060319423928564724122131782286152139830159044718797355671651902334615073315985916656981783578907987712801253923767559932004437267361813607268052550843834669684012546153488777019609901744202009218413571789607621801431097685892043579729276134406460928471469566459931857854254878329795760663923453708348040471733171724461925619428890245068848790830216786067905695384543033258436355442489961996392004443268533322040448616593810954336729841731298895998161839597285647002636556944609944379789865794325854855109950543819117606327778334010242070532724803836211879883112179311641701207981793628775379702619593565160858164726639749541892447586115673699784270606900084947306093670775608115528829208494335787119545231228554577327198206683223805375633980195175141807697567655408900342826029744748373445203829406772020779185218709911715598365936366760510743196916162579598457476199539313131197159258770730445179940569264152355874306593737056358522837254746232955196134831174478026193046756528866774661324177030437697337061621888396382210229587445493589150260199746797660265743229326874793617277525758307193362065958567551277347431332196485747716232713062773675446276300698579247407163971718625897961993088791215261379584938643610972329443355101729276433623693771429541500183437949232226290377669060898334367763208477990883702179430670725378131930471638468393988372775832014507698912793921544196747278644956291267814651235763372067338842831389561475366182177993166458015026227167491277308253188087575339652230152735143572462312738626085107767878766253560083915763579705056233153335019210460871607684941566639876666691620912526074334192046984907814768233123698135728503858278994728379055601603740348100360496628505685969901702442201681626533659259597156233184331346593467332573742989715149138431121320130621968196659387619597235329721818997860875544823833713605432650409647900744390802483945855764910244198492655902330812543587031949026630356775330215897387227887051701245850649674480667420909411396853496473770609236382434047818069547350495208477109333481866537300184463215538545669149266783538819287285512933667699078843312716110839256645903689473038777137668551100022623704115140828980277281954182658227527843947578559080579570003623732721144839228416697660258836619339415784521328158181427976259691944896432116818016573690681044900363679841235676308443748868947632528100525842544389445103815785404938996340208841509723919613395208292678915091427485892322817989333008667375873316172259728943563248821942267604783036669207123197488172347036888966748877540116219055662367774873379601624630695167509097362344076571301137320710906156414510916363191778803869118713409060101453594849227774817865142547694891725727454504051008549680846110933767544327974387606394584353999061549396464228173345477134228792762180959660766013178944463548358004600633000721955659671444180399858835424003040890835631971739433547003659618530384469504864524071129002447623796060862519532230554845622393732705131349531416098751107199829952285065535476691052987825890448811680557843736334591023018771839203837481997652593878684440507612854853897977967996870951056063155989211703149552816099200616858510502255741294041340711501702647272732383727176734308376381199435736238840174649858137626325648056046045762839768707313187982881582464831765737067921942101345674119534279547614994633165926358666308694611157469654327182100451987531275109334036337514560839995391826101614638290779050546823203501705981702048128711045559570696163770796530769258532869632432975147721690563226662631191632947768235549250199366141734942917561714357302889221172018824969593117801371869961283269349963040637487983341694500885329004106878657641473050197493330184402327055314013515611167333174778296540250980716204468672102500739906219799440386076720461665277787914086143342803793091675357751592777301167960882472181224583333677949425048526865135825125958582405282723859374154125734029502750603417143559269709611287797210640190123767107587733786211817866930494744064513351723304961579104608694123632971728630671962226253715163766501620207743340048818287603763916940488037015764310248313483686254120588872340421928188722657685482518900131629273565593234542979847768612688312552967485933561063215097391674619419160630373040427563916067346021250208565828401104352659449023481805889460680807670694957020327845179636396872367538163327166878407117445905247090825779899864384010433823186082813017697409084316270630979840282294290268759817403472247934584758020092207097363311063720141742080537659224189411603562293558762681256981530452150086136660993451398503420127447619603757706669540878998201720368314873380060403652228679661435564253423441928957023217035594525474492651078246652786881068439189141907420585856886575287784754600705965074073923359307711177986776554563109082759180805253549432969202407145551707566195551833446924067472536727434280382310959614933068740903442911501526468063032127180295048571039485704433360325866085944590810227468632969910302763595968658674928814200255932078103893899639757766902775127830032142475671418232947672030322737625805761482444809336904373259208996436606002747466281513587242626596469428977814962879358392066635648191763966990543967339659610652261252404295121759554632797881459779506692619470857735658869658795292963094882113565721913122936206200034188976976950457853125974914095557609264000646823934820468073949635603179059464140171240886350853291500064446720457305452132297332879458753435936041458354716144860626613642738467910568990292237320681479238268649806838514766673870681791197663069391212591782685964249319739713991016909690898862941702022618137598407689520818377551493109538596975669814492378114769508378653706581529751813497978299708125203179464157410179080603008415577429194337619302028150535580994156608645104529206833424001350099558650330978597788714153928224206140118273934581237882196832769209477498288748642977136781748219869634494747188561972174133939646361205144649779918983792741912989773583416723873351608180211548872017205875159812116575113576588150522152775783613428808955011346195692202888030631715444463475291016995781774500465472645489613762966749256759870461715585418122839066811133606893986155957485764786187189564525176495085191605446359140515744824972199816572769406373097151954037739862696537774356530356767895267725081954000327240640678676155167744536885436981340845349492257515781363901658830030137796790068422332308575785709689322573890588155139209051400313562325276090935108474571163658109696861517637164228234040227265194952581742413175585986702044775671169940690318260530640733003542394956871684482386344524859532625982812809319430233049787688230703474533064067574119268787951440901451685116738089946241360362088619685692573044054533743722942151873027367938638228467251706881225858447731439126769352556077057896353349773089829356054381542302044427624298235072966093387091455877172094309656057874147101191835247049875678696337606343881016845892424108698382047664992130111744478002436203315519701633029194960218559021564634884547742710436080395657041017826251031601493661132690329138156174068757525042167321099875023203937881866940474138934675740075484067217107847222089078405484537072736175545746214288120703991124387245662985466162800514626566367972787717821173108130772201914585838363811894086312739882065131373434054995833263857866469155365798749511310141754202763761805506799910282160857597480356881497807546256001340633976414106121635143250787562501358139077652073350891995222590476104773197247559959957250234540939560173279233851998786741694189881367663115221680952677722716954555959226356498360391466820850986539280718395601409150543791954938764015571835019775649716665975536872601287724449752289567694883813352328091296986949352489094035484613636563149564320893148293780141605062069363668619541506773375877917457793861159168730590612578985075475215980238875326923466590520435655200554202305532817172437307535131722259423775904768239396529695570754118961218026989870242119566669554671861406672877270084938609589630830359728809363218469316286593451222907200749416729085740353988252721313706304438151835567660028534414621171172286913674039986198958408211241472825045731360542361189234165052270187843535382630979268553118053009030770293471824921821577319685801549876281496778747336269896315788202909660213682991240627725910395592905362848800153382033642729792795310808019851324797257831921054736284311433992989564378693839319146043218895769257728734817830704242779123709073731785767020771786187374919879592411848272278216504492696019306229625206009297139106729006674804756333487217434712954168014488869701953599755619468857281535866120990720267456120262908388085659292304717647274385185597694663013149299620813043634027339516250359284895873072763416979940451896161563032629936912220822261597241536973056056505882501879609477206590030762181785820497891353875832890569959497308030618412303312674958247319169980532561278166245671699981293308334455757767682844128294703240796845368572902369974026494633657798711686998189882224993834031187154529567503053300134504968611282324778913209590992870992678346879703987319454618913454781843354623787265360091171814810781684790213738618537025802641708211825356391679048701879776909132060140602167502783482769798616698320319299625733082387163321841768778301829989247380198953745122399769302997185652334329569782323355520260182046659511507158002072190174518571819167645947899472669788758880826526579986768920152903227194795082796697163506120437994473118522073810446121271876172094473894984460672910332869478095210994345286616934138874716351329973913311443559369756212677469698543785967515743490419382617563767307981246941925162092847207812320663463145163498456080102276306527036342755061693724474342195295904990458213629806315564546907863809027477517128921662575555817498241568217778636627216818261681122312679688518679391034725587545613872519160474962169961339456949466577339015572440892108423774689954061505477985706890494420855301274205593306226254572076339504893919800899806562745077318596017278872116457035882645168649533321499388081144978736042877588652322299950568357759941407959782474642924714990370937160803088170279189923064158801823795000708938500386872871446085269386107049207194953626770392598538856390814364560933203747837491567559122510788606780313591827810327722808511942168520287358015266065262790607999706971504424598375884769325812952220287102856554957999403616083461229613759756220840744871510889597214334569141792109235992055633161099104090648688246854518150397121843436280052686566469242126311970082298460201150605717179490794877506867391569542367969815543176107805639049679663751667553607411650252277682439614856808048766431981174261065482969178615714682329063578419938295784413387442121384409857819864636607429613308225061789481938621170565493813302194000518175082348542642825482340141954717481247746734382074071215074639928674966085677089997575202909726236756287035938265428783475622671732515660289942019251170021598489146484133517560831852761969825602842886850814626252070687440860184277138038033847057114460174742557938344760060942228219928936975429850273137092091697740918394286091283325222783469403503862881782229429793396917293655434565196455456128894168635338544025706032704706323808820261061062542565249758977837729785544097862863596541153634686852490395985739186596109242111164974272153659414454488110508991132588254534953142697412766453036534317108729025221616103497395526844189704283442823949588478657256677886750724876403834509116027455249881049336986306894451126937068997392838880083240139400693937962262236963860074501143452156578461597429944852174510488296057109215891554255865425607930864315299855936204162993427302705898340360333189987810136765278189601175787672900173006256338593992981438412355069574353942012726568010239204385043974224748089035519996550951809224998397786130744282759906528829255554157116909859034223300880284539220547473347355460255101317952818595952791029793474565834235553570385165722898015035151253051222194358116666427887630645068434772120361162248760140703068076410873819831961393717194042238885264575957707782764529438859460695557639206584818612296602910599685089323247077029464879484809645993942426705666573553066332540626406810856792597764545422768616983202327157706760953085326523039865082045454124237197749008919129539568518797126183958988992527674419318791357110924013900804181567733369063423320829641404199779036206959952396930080586965013419517076932988744452815091899356186221569788475989861676677288450408794716457666617711827659799893923996938297709565797664220699535110608914920009202707365585144183270256990858506762071044964096489804051608334838721570055015647557506697268585982305989821646770739971980960204446690540968812011893748387944952179285146424994209472414913755715897165903944071682320257352006253994393164531791351846433615262895695427480484947886000999024356091378215360845449263908915710754655606482435549956273498732731688754698578389564794205493500230601008826769726295699733748095998960815671797056124608074702023062621634472260426063485532616359392955304478325234322572282311628273650231434823559405284556064189596713736652285557393809528567591566810754523604281039259821046207627254874119876107476437447539096726622983464227944953272968053943100407936199501923246364889304961022559823383089497749832587934513905340296246806533303623239312780784939499432012331315475803985008003366029680365362364523886017383048453764917703436882834653957400934731475614769166700562985754359450367902995193435220319476987295961121524972014571188608613091996983834823384013214968521898693558093324929736711925580495421023867438831781733532594508097041288915517451514507063984912735915719449877151472703261367910046426517503490653403762250498077253651667549948945293497205795002465784242338991515437942593756898525320855735873481760504770124167054891588683276886472625976911581864537531654098696676305175884523617344442516809979316687347338552915995127775270569347100907883101616898595214365186940780180078296439681127993091791258698507972794644248289014858529855493225172496789944147301489891262353516219134176581695260289879380345486000525944020581496729326755355649508055243534065780447008620583923704435444725532696504338604092635823764893701577956209882940610573965603900653717735013207810475873775416347390143200592526663740151692169153771709163357233176929295728403887529482972021536297346602344498050685186536613946913353211159035242079044994398607143967540056066668059575846528634407733956813657953485893007104840855041580746548990181254975574001866428436799984403301261347096476527019918961806148288860198535742569085050081428502216877746281076410838822326552403677922696333013333878128630041371539864921177261470365958713790360516051409692006457318799206054831508068775287281633290197436986489802898177903716355828229819206829888190965336705968451455860530091103582818972334173303545090384363914183115594059828876996713017852958079077943524740800859323333656179668742670506518003805272516345446537088296087007758731258054964941525909378879151705840154553107387226405035823896300670668239435153184400626324019862448320605548619889548768172024673662707095385719832253727635087446953878592317558643510216785327535597720234352204086471973032024313090494531194827868643688092986294579287997552034503243316950522451196355811239270056977247109270694640036076829647953811304058435503236122449961118724551843684526606397061513937046096653675420774721469515224573612887058185831734959720462894304417753414905842698722509369312817165082873676861889578183467415034656209026013994150965476893222923036964195701786227104072128061204739583465973981465770704045886226281874658981495247444667947728614796321950097678390954262330579039194021925007304291708339110976125286995767627160125636410972293232516630266108047191855743314978478400236416669028145419152831382186832365034854439316959362349376198077765203839580661337612801650545860552196301731791641965698310594522336345597438625062439708433778019013528293359515427034222915625222843289644445844391710781074439692704214321882543460968531310322879212861873819141134907850145016173409262580271449255700761217243596886322593706391147900035873525851533405933645391224921217519202170564144870563504739266603181222132147562271701329382188152668962581510643100606295942284194213672825975111032337059055016951997524867709532289422185123771434157045879355219265544532478812359062898713424049338411250444204732049030858080018177815978185735895702669507163062326916137504265512657537891542494434500380029030920560750861244526857682962520145237861609905003460457806436066128050092218977718419737345305384213774091370827385391281736321931437832182052680795557844018823692741111059093257000257772973154058252941322797962271952762644386871622561151186405478483852107396175016195710713043468068277262522669528189560993441747048787584253075486544634644612621891764130565817482309642734147811258391636360417733608021002304015379025739099557252868146317846652143846241885784307306805063689060251739486329388581562623980886943424958440982494436723916050327435393169845333887581893442419166042389868856096926667824144826119508743893354339146753136965622387888261731361417678938385757198852013302607625357755909638017440706996313609634546842970096809313177145028893330230139942325442459829710528895503464324011038051517815660352903722790185526068283464898905463612799831701333810240038698763452227569932733484377867401834509349015785612458847210238363624557583284179017933849427636014166728154178286013356012170231397173222951621048233355404144739906733707900224698000448684971897538960225684589735184470370583277175385811533009367400373833479257644369945107159613057826822573254937345251122640126564045045277308638817802906705995978529538672199379844629968480011425396244163825783300421509204412666292620444565631868085318894371008124699542438571154793334418523014421973449204420318713064096385209356247314277668197451171364446480770890689230383762539976066910869652957266449504364666176304257887902791512995910714207103575911227190749278506769573433921343028993427801510762535406325216157080715090399925616774458480078545712346206029022142279275591081746088850062508322999787271490773604209611605920686094231589090388668998059653104373465516768944976615890545451181628788293637861165400289689478991558963153401902741266591068682669292009958426939342665233459787916556759445011372197375743458358517772254218889734915314154772457980004925408673192385702986121110378840259504058893242942578021489442226980644176981854400409850089567625239427542901174153415702982220534233002327629142907814891477317718246742395704748421314835100513086074106456539645347798872058271053848974058595258907175778761780450402825163729142882519097590846060114231935390011631468286863462216265672604368457600254056871409906983476949484492546568769581099244654606672241118152809167601292345101862748820374013029218178825662746330820409378613494757615934616286047598977067175677340934396024431478248015765143833884779417678446882437552341665618286898410640880494460348376750244479247526425002039107724468052870317565178846551580198142124863748342337773063105158053562114793566497715706040673032824749102300309872586427357869892053661628734117693505172057388970985712545320383046117040837172404810268870874745188742819671240837905678103801098310763565491780973787017466869752239081488589147232637933312542372788820681247328404167952499637486066360976151472260403223481993924096693920154780877987274018212266141561381765876191582441062695221771086812284836524135603992085887412132561834077336955807037989651605139374226197157443465279747260431710846877168463185081602394992159371910093698440975752160658259570160744520496111295939091655746133193927054581552155907319645043269178677495548584604642992282706804517468612302332144305113353540640833466999469981610710248855409247097668262782359241503740069063403338113450668331492686400564139272548424143498848994680543012867408142962818835222669688812456318818399643500063448107403563740492280693875037074798796107671559175698014235764643417891106194054143339383377503131836693629316164925250015193876288594474898151034418894277820296587827652230041681886182982254901692189648732291027589403820323318470167360986028939543532813138608148444556083001150835437559111250790436884177860053575551251355152332996652025927297121462489982631032330925273664536879101474013242724403875139149421025309921510595909060487412799197297581718058020514858880714382350063830893845637567708567629429535402908796295399845983812716555025190961384774583134346435432967424040467975830223575581676318991288244010311625526135880361544018478874144490762818367433842801317988002688267296286749221113342696271883516570562678224279905539645601365541988571859527719173705929600079977128806432012542474896473131049804806820920418622515289666262568044245295500381651688556517345739246457294145971575540268031677149850702262110331937908040899897725193951852480806386556488252808810452790186629723358248420940922500367407510241483798740789983074614431912580799489362190790947573594469112601537461609973885750282543877818025538630255172359227174341915376213582920492973503635995628092111235199849551377263785374024067976533145667749135224692832032660002746126618955724031296674662040427004986108883715321097275438584037395479179706022832130694221816833657670630048660960156156468372250849845219776663416315145019889069082342677497678337908426730295747639247518666849050217951953470309304686850319855193889496445647976391160001435642404571227297066874993995027321269475750658693327893374875530682964130127568545986487607261255679825338079337003607051497899332234343514300517581753653445657466881827178606482681607047565183488980954454390124918523657749684042187666836864002198185680031012967563090720432285601260836926736428243194033714306628032056736228233350427046455889426052827571574566593925984675834257026672975926094977420851963630428690964380325788299425463171549909231776922139526936559060829467064131706259201024410307621491383963967355545818461243413197451543593957086283137421222959288544713232398389653731563671971225695519105260923327698765875290149855721507305671615434343340465354154181082729156895327725927681560654635207587781071301808469765568694657279522243238525314102639372711585479208354360412659128408202855939204597495383218163945982695727403862636313778223838264333301232362567227285753976683237316077266683782341759439201359040807287965181516738557748658800464848064689616566067375368731509000491164437933242637282216013688595645684435838914958086398402059802801648441501425197064187186080453587691539330873171334263114960322137059290943894680849772557767650507204325072828390796381590264078443001416195171384103244319189743032589938761244512272289173393753092106771053281298692496316584741006678677591762710437131833676570019988030846228893036031822539982337488725246753052620250603687676426133657995353852223316372032833071676264917476907608511889261178081748089408577073900233169342935925228664432553071129243433551068558981322843859779203139045239916608779997099347845222389769395180957546146765562056233963005333696354317020301400180809462790326525441072846641063454436196165759936314707889374571730013901787389016717689780259616967142806459144929240123302973532659956341093172500953402595657191718294212671185888532659652303019046663916823004782345895215541903507077299083973528341492754792190939741458805676464490109221282770099222917233814509910053254518997709106946935122015301964944203443142971568311946538422231404374625056786208736438400729344084906865770586241606026589893510166672104386777268596093395695775150040865699125131137980931271498634864029229545501015632765081993037238146863528327778343360837432097881874328565888749744172135235499508251681682125643351694213459357431471228246366926729912826792233869984070120077591910765308423076155351173353159645537671052954881910215509127983695240061342501904185178746013212172679037658921368456891073266467539978039271600802210351241527382236356936815008551423481549200499510937885635769114034514062864483301069361102796923559852294596675200125221991198957212053406835554594137224736237599227802471238225356931713383187969423624173828922365704976737858004768778559059144126274674678151138801579234877783185344090064925699733146736123945130427989298397828830241872065709051633131962841276318895474111222532289480910295687277284665061159958012887575426083934949323052765888527173401824141075822198003618507820282151937042970896101968988157458140232440887917121110124515222566696969816748431156380485567212408443104668385277801629746549586842648617766497519846516580369430645092856714978249601680155844339820376024923579675741906480602314744944901169680768650225049383089355922601063600193136818577340263266758041895519617817516360609963109044890795875556863779069849809739670476009362346968077633997933216139430219025310877322405319370003654836402838672724565446705966768767552463774475819479250573095648123565614580813235932302159473514045921933369416233640053379162193619083789307068836820427471341108468172407894188088450514646008724253778529691215609312390370855259860366304221317002082059371060388160719459795547076187702798581265356909805884550827498744103384364745337825665163224301028023136557949497351524515450362438946187009158694669714661868124691882235042203884885767409434361955283298348668387109347746511401772078721073702340153496090187097101990219016912954936893576062965883167074898635163231907895251443289183116415369518835205267385421221590682716409682978544398461831689666647152189389392423547256083251217033651694364703698641632421561646463617191603425868199586895424801762789612780804404148805297698990550023324208332062152983337799012531854317411127464138368971028349300061082012620674358874309130589868313899228214268959209745743246319249169453667812122469151356641543550135016974387839963666537977524842495242693911462714787036715440049833481413912079488513397206395475272015207472791671711871901797356381322764181542927714138239073399168151296177136015791013039259626310724884131534222242492596259469929085463131824299689577186313306148998884492340975276214461568171900234716948106324828911426510817857290166523714490841608036975981263473177567379209910076830991452596085378824099208835142317282050585201774323708769314714407342615305142733022311453519088171468470102433466786247400434295381376418983800412913416580525931088349905186510323276292953447167406595673736033786591413675864910569877293792267165410614348970121383250612267351288595092350666495646467660873581990131282993823081746077396017132206048808234336711683860466841293979652823329202333632462545672837552015717180167645609155358969778759617745083639533979500107671892972348841983543760854400643296018662207253790255578207034138779258335739301613425789185311636683145436632425699890836002044707808505724557076166138971432083472082115972800917427837335679345972630498418995224145601326129001020856207892885764093230926022125229335857636044180469749551185368699072125071126026181787325888450950142716200643638250766517705444677327485472064547737545637193761319182924190108542144340210031603241443971050961013294624284985610095204575282477608252175396310906849042264838432261163297676833073221482939454142491457191808090131980864748776440458666837054369939245622383819097766614085236688108070584756531616639469974880431723096504771350600171262875138392749137102397384847586463929802597864143651547956840219128313032560954668217351696549454357294110939106900531169808549341019087357463085287992740696487656066561110546075548645781885435852779778009048932116346228927471404526358867440999035066417827567107235931378597330818540309651700176263062272421445581848047884774729065625130368831644426060804043457566487601911994541875855201365208937564699286153825508051524140357881913037863945150703353243135004210445406940016813224473220637013879392843882503202367386270720393387372651688489557493464079502726202482689093770464790196750869089611654890052093828912163731673780940922988908342579523881248216805808714789149407387252207768747990065636383970940339911430636443542537862167634249460976893962364483870803414270428451457545063470692061941990080138647501757915682181227042954279074165419801097138718537631126812234947053149345175497076770182174366794353826942762436742555843931550076750257624996682940514568678022949905136303025280696091452219408502312561147183019325205560069564289446741036899794792152613345649531528585184575071263478074925233109797141160253715927531089027327419866231773342089521788146545006206261438704281286909195678835475718586951425466411692851769045730490222748029808008601679856157442532823279652083536461141254994776977941140740377979115820292272518836133949523341589527127074823741851098553303690479655258493820233781884172679160586948900265281285461845674803489458644979389215520869434880890930302372908894914455668156694177299484415454520417294885338762737145633820582052993032252711930326107990481324831985085987163350706089718971454710239428681643581623416143029601975820625886793536092083775479803575586102209793533037984311282929166297142704671950298680451711031930592128006355940786814657345811605438748131058277189089512945246230683840469396810871012611722452062617106722599736394597482621030077773295854092668299005543937317020683058656803156548893267070745212160283557818501118902483494456029203517462106993216381525576356530187251621538768179348993316414694432409216648813858727532988366357024316629969860285846321306432445151205767593967640590988142211564200278637681036803295737524641670311845629073538593910413524140910988047683756890896086853045183682103341516383952387014359756781685965236239259118762088454652366252797224651408451575076116045646322882034490129424719030316069961910436809388718193445924307122035405381135935689813782971184258178429666502137374352003719975932957784663068866399770788986585785130645128982083762931872881736802481547419926221732819307725596635071173777834922063523042552502493916054669138439323555575870793052311015957403548958120292756220716210109838483157293900472218087361489983493554821287659046127070442653131019220171818143374306205146030928189301432569556482895416777162652019595140842495888501402917295877928734122425847439484860602501070006049759048265488203088346730313515316558336766496516822881465992109494982970520380720906780951758894558713014410102580013641431437350453597658287204952724761502624751522398165969487752695407872578029118846948810076203435949505671064240739028294647781705755210372180127992850645787185000593316164511143312480039392711116894372152167279638522722490692286097396720581551612972212179509466919916798842123232969898809327470289147981738305507716368316578843348302265569631345191330039792820554815915462749831315345800254732430039180717012344854142929415553457475726431082131171977736121856075595751653885911008800541273095692337581058544030991947584491595884706574229218386011810546828139663394273502808660629548122849950406391369996985730332927974893232573531384600612106869659633481296664804301910010607305056579330795613854663641397541883968792817691765558250876329278024301587507436778980613367603386985296435256988960641453208311876722764369772153376415172198071811200553108806016308560782992421167349096893810352857704052677113598733563953776257333083281059226063303166029050553932599606211943288497785138653295993122779938416639095199025859789186704043535735929090155453067305116675767664538901207738896462201980604828696571899151480868646070734093108047929641522762702708239402840684194070796398294338184204882510419627784556147503603940709979626813703983011070013724975672868195862706347689298211365279838342318000958991597871434986726716012323033881276419962532398380305992583101097177752824291271744389967665916065613815204564608879514637970977998952270689252147137109459157254757753157287241401252536802122527923981803944692963219779900182998481326311407905103292332558004550333183539274811421341506649306914191557851862616415973824713820907782172678673293748271880312500723716379442505554538949106417405133470924845059642597424144004818141030465300241821550324123725328440654614114235349423040832242373374629068434653188083579543802737949018412518787396435434567014440013158680576629302004885016854732849904002244020534962326517234515103592485554930142929686627701674248799864377672345352528917004847405658769596920575480402122639458929667543544140378697321576737619202900200721510181714617247092443819623059889957504263885240243858516532966199254768388603338114578714704000186238910383911642592814451916996435010859855960595649559209376694348200907139860926662222017558028851434672528429553340286761298600277601025977664343295117863074746401706452021952035117531881522012913673301253972281330282235211844458871584794868690464460945447040038969027032051874595045450912990390332222348732058409168085925315063592545785863803165185927996138979784888208685982071975087972681078034258600189098390784483030715388442443452203806146782846299784064031656007396852476194662118612385617694476890832929491158111526757106659328058546018273517794409774467488888792401143800277416124364451008708158710534442615508867117621958278610402465364055717037995305292564387475650888412511398571237336353557023844533812379764039580713258218656625618742688485377876647578008481204551052577943550304285919723839126234918451551656268325506007568509472271242117899740769883189492304445899698452339912109861775987532057963496081761252057152702832152869175641289709048580825014759656800792696700534153839572613745522732737259442952136642642651673460731841586225648496131181083302383370372446569193871397375628074948566779040681045952530484948074892481843145747033976550646746088006337007939561719558824678042074283289346627469709537032360211893326906323464437490608153699133574175735734123429999986224748542190054525637760399641613311045423784962267881310052114150851999183133751466615199065869463554370623556625945380141691568868035518275022294210001624784123186165836079430962449643553592401820818565763023654341020392139735940758231689307850735918733748456394265808540832146226639139809710844247742622922250965460212143348626627218997577506549777722541419278737317626629304664098646565531510703326168561093448327620571911514172045634308612956490020784829891503103184148417858112802279043777495730950679802744955015145991221750218577581291719657840011098282807018723531248434804675442971206715140121804501483550627590430447548586937975467807698512075791378539393786489858758862374911128155024645157784132517846477119391311047497990375288558595423794299509451504158206436573149650666423177388885256930104094442323544680515865112669886999984702623872969742771723742123446231939861370873633149365587747876920265437364940035745571349481325713506601213681532849308003077857203021435078969046294440376226025471375936223742519877128736605296118061777911233408769797682577308843722243620250930454553177717906645298152379790155413461402301694043247412455627582930117380909568187223441036948193203481327978166809543680720113903163765196887850430898497052404425405382441192970908174220244497181291148250420858001493736106516298178730170241797793100985313100792030612085705975334902184832479085518339286243152920502767425014823263092105463943519518401790500057385992915495872073256226794231103362655083636769733770112971549724389108405430920544053858069245494112274857438834558952253068001076187614364211924576863216250298292703640406107314204558881047485252083871004280148698819765029521598587675504006380585337435662938828469412034564730440966895127231084753470096675671166894368993153398451407749397161749870843423756539031305380576379537099304746466957944393388302969497318106445455774977581548783792502997500507577045414877449672434326056929290062651947589357774169859967890730344397793048650182418241095401786274383207162278216282282103334019544970277064610131735798159584005557795764746342502565660109545972275861977330972579436923868512635602076098417273494567369750137298274476667026958396863776242724977726163594243065401560569440588251806378316369604225212970775155295416500097602641861476319653942285263247641983745321315778607654979815495783969362175287963394440855656702698519333950582272274399334836716836471890653607059149283495328376691790108376880483644043229184668735129444412475186103360454943199674839113526121759026437203960615156558636383724272052064281076693936909706432657162059849758601369563083221212751181801802630134294755813079287623213725568260808571372085012989895238867397173496877346772735587699379710963564356919364121379054558566165647908304619607483344487596639302482691134044135267935252890442403959402533805592011175264084978839342851278249191296072196169427483662546604919166336573951657966211046169284229116035854352601035180496335358363811995396428074064703424498835888157543967281379453402363109067683673121367012090693837371805533007941251437373448988950845422118103594699814947780314526644322873586561881127217606068531915025849257542878525645734069391034116736474160345175535538348294688094407780199231506291233852134610933830237486552552262906690963293259323927072503530507191356037498821220568117916806700651540760976052876994035747531164203510023864335974707445162085149110307910619172155774300553355196565366211393263288259735702274042681977189317996035955077927992307280486163843054597955020088956024360037899382253445019079795132818087041482007087283727380198499689946581835145476069496823178702899577901691913453762258690468911407056425556311244544826121890913628593052279838635585351902885234035944392783645063753741040751319947912510265860992359910281497283857895609991111222500510978163796707685839466170257704303255333252898692944408836443719972343423587690965379244362889208832523549045679579735835499900514741747728193356346819140106378139613945182333957124665749588362593487332848774799864260285173682485856545899727088923090259434092999338726896694042697068838814361121549668306304096929046454132064327759043749030261962997995003158527771263143232275261702649306269669263012361830024338432816086444662864845431482104505138963932355793434806195879452641045645657100418344025779162169028852324027655323994791382342672430530698344834848979239374941189380837780351140620431486995122711169333105294701748007693018617893659733604419025125883626058606055262730256083257745440181288879978437151626329856000254254269619136868948355603552626216710014674820750518320793216293891813244935089657919855253790878995678327631774926273339050971045054045930963193264433436632080343178569472658209862710412938133565398571828869842355962553801792331014051483753774484339066409559377180024000330498850382088064508327088652144493697799516968981967982229084261109303472583246205508571209702103023256290148584614486936432351933803979513912518951432207489638849175670001621914968730334928028397140196579746897639864123512085950230064477080261611600302879336089788599434312943919176708577527453801516126606339123945401802528413750157695285014464321594950656160127514767494751366566003571873438956342128059583605681241372971546887841705788796023743613882017561870191972800895295072422820857842482902180815837703162351418803585829723632632470063674056276219161905341374135487872693744914605149470554021566955212463517534735542902992254925181216196841353200751872014582028637229747721912304526444229033151562502166843651536428306823573437771231702278180778857695953407751313632473910522756900941315795141275055231001143598231871168326526967335992490158689384210459868783442747882247452927448953067365939279827734953463649221133344727247228259306569569161208105578122515392723268558919887438674528267930155869878400974537112112702213037810156301883505139669923682705636143557111627678236034975594394117201926680192987927875799855470378999788194233320216079572865362879581405960991944975243128285818382471786914868014889609380706537831136527429511682195400201994993909554887999235743384787583762345558679346761490468800059786604366260957797750261474011063457227848114320514634884910633211438993220615542356457436824978469844812078901177314047087794085190477586099587429735765094144358462522360619578483200772113416373140648214146714952351055570158791789440803137510498701184017488416491831829496605001769432903630098099716882016808331234703370009159290709221212363989631742294481891279966558202035503808103008205444429838173411778860635707121424081053207086043875776055763699571451514056949279266008086736365223270324747796057993092987440593051780007957934130288539176808310265648951343052790447941319733924257555863604289215925802816826202285299819374690815348454689514642783595253104417829166075270475302588968627194055251151820657410143721300029549620790384722652164447433132583283989841487286066379910213020153685752430664840604927637117336021424321397446528673997233194049710184284175570016426400143870019597285723105023507705949657549252535374021348280791168601792830031676639080059239870925761673319298357617740911984237518966640873455712868256111295918653934566843698033599741439436261425133240823926374591652435322340996370925652312755433345085643766194738577156007108934289643279908378210831820620347931660422196563380928545618345480791577451874202032391982857212941878519228801212096349432459958461677212061812315119301202480129687577545057450356482733225124603550872425139864234730076409429150873313329564767014563682433534258509576036007246357563370474923640177824902110156816334158163935061158622343598479588076915077442266224428763534649523513548931950380028253243255478398762219159054076732743781209419896270620536754647177184909557354752273965942021933783334565325747511558573769118106006700894171377955364982431781635180959609305522224546856152781527228355953415152169979573840481893566423951665792932929262787093166924267310410543054235925800467127748016975941744769252132323618080225635025353870096028769268537643733086591942966746269281345047279274610697290325611422112761723493517315433953282104094524050088386311598360211310120785690970803230316258331015784019410534287657813915885137629727612807207736107904482031606940199597515885951265756333704509018867971415283832309757811372602463631217441347001261995206160715324474002942208566490823206523928999093854783746214939558458128507654669506745206215115522693054236866641822583920541953878987840205264904800219771517096554584542028120550727166424741408854194135096224417396448696904898115853474600026990934750893741645634182104200031929648446570876103372359242293168977671824796943856857855717678071153912969322360383399586359162844164934945917228735437923499974066880588155789523362007525299220353959260545159149699213676773020287902528226141715435484138400582673191529614254702514752537450120603353594439653376897064368143334634537136687213941326222060220059255973377199372125024859332601390075330487623078018447034558395877676561976301287045094655099527351878312023217032208714740522871565769916439287613285984256371876632015997368862230420494570400168719231883353126502189099377568530012744191253493654277901074510703496438865697044932843493214089008123801930743306977182838560698999040834090299604645834649144538802239006361659524909623662369563735524478208076815245796877850001447016688923412791594931120849976573234303015339044608931375229087404209361826779999600853222591755809253538409722006412942850820036743349140140111299951935860375238153907551954125791364318912566308710920106630026545536776667600491186171068042609942256516755597781218361185779995146497158765989527936817537559535583705297901442094356710899344082851987472824380174658513042435482004206280433625578474427901637799020988513950941516523423246187540425482942207950755083083876803251500616785943055256983766292031870947615811483061666938892637832739778920998875093138579416555562888778359657987932416343857715527485866294504588046442083420443366313128096371022701318332712774213979325115093003800554211118921868629661620895816611666131375557248462994223024176272610009028347472942661235061880362591612184451976955387603803798283073897078280226684489978748473930878106501741593549688155848768454299556355745403697364564677834171984182864760592582018794995778562420865125981808752154803465319394454665117130151785348990161246544194312412727990983476993610802954453846037937532199120372949492463049082306446255815648675235620843433611023382629021755326581695582868339374708098694270226070105295194815259413422414038071856187966516872012007922955104254320872948815843724732190190447205773417947448688272129912317878726874295234685961919192690582871607250949742689701191443606060149392727037738892935548748540783582950879684065350503461251727947354255886575652206915664963910839570284671387895531166122536006015875324871191509706848695764690941037234173529997538553288199135578625859491685197825343566090343438627958805285028025824942565505018977585290709651553923110396415637393845643678023523216267745500278810145378527308218517965549440618337046165588903237238299661432685225711061873406414355663915471054036878198939562330544973008511710339026220106033517149496708566355251573624232559010722498184598241570300292725675770498968029656088220820351876704698029723364290034492087051813340362088618273966754391238986110161925800231055617866542937346078267694284016757784182213103059108444625933787082009284596994759978838537878105176093550854873797899171220447304000969384892747026321996012274517178773978260642375660749480944577981187172153787796181483233646473272779397617754345112852186496007155110727689544757184164020254042577050503245562043386028193051868106637548519721028287327680924991088513108556131963214454095032366286425258446653146279705429526547400999980800022241598994557371083114208950742644394534417789919894920189430493463322302418866225483450035252887985370635598221371094927455127614842591112841551774186981989063852815152888418490767193865257532307235713291106859608494195941734808290208321599259462665711095256973312579482015186935927081811234056239745067331858140012498622655570531500800148360627678758574420466790396350753082564614820699426837465895528616166266161071929151099353451038551841758502381066698701266596035289710073808312402160865898535337058441673283055592129520626863371495641346624444896189586001365574876729933119347013165125402821593133660999985977993804393846877598127716974549847163156596162867667578243398090401322697508202461300260994031622631897018465359958790990855619952965741278222742075676924205185312194771762435308096063493224972940003391940798361690614381241879928796058773327335331683346876085711851013540483761078196237753421935943041924245415283867345516430417752812344419197271834259342424642651404923135340392607886871771756398185297141389733876923709004488930367019995405662728901535793858263614006725752832148957114303278707318689305412278398714542321723850582152417056605204472228628452688951932141347831781084884840187184305713789783460347815843608912774182248619969471442263264428051191467819552722473628842058841617692268609911861658995508331083293445513464876845997215275926307871546680314143324715773805923104337619355200609733004136254182535084178852504355252127942073892337571639606667203938160555481389104180669226349587036469841358188369804189959061963122054668861868025341578463453242084828514085415021021774926679382256186080998104466059632511298024861478441741511960809288959678562516106696749217282119700128151528082894892919184536348662829458363843400444308225050735157379372436515349477038022297560274830855303803325617303950126333741211994655589192916209191281081260211352578995041707366606595587343172312660946482311355170328790270568411790090136352877275919460547917197799702891794996079658925010337085885110070582370913229305668879592974391519264258848905581939171172549143532733601623955350598793206963462022204082206915273285370164869441508906333385470190620062609016073367320141814694466011396077394600059643094094010016184791627002921807648083576573247431074968664537533616896480962338164600904338378090709142779074549329210231178507389255750023849795020499130589241539695394515918348460089247736334415878103310909779399210826145497611100550301295090873009135679959554539602204041614711235889567517788764997209073949579566716798907039225091393571793731155660260618920748875949353010865325381741094133043368931013857862303685859493451245084633645274303273511721120514419741178076126886544446866456684421939162076519398985391960799543210108291381195796866282659347339849886365206102849487712483634086079681957520128653626939724820919516982462423417752395698732771118600661928456524015866130280454292968021943891910593521542588399945021380037032502267666886032727759232684560818623451416212104114897640928601588349501678578941103990352364153385520471364217792030180911800881228767713224863775177534620395670529069429301485975231434359010886270562000514022490295318995030552109078386530260583334579749929997097714631939797162898607841450528612479460301191037759854221852845148386772871895779177270224788423601452032781860246192407210396173616029035523303009774079118928488757434078304326795953183988463246640554557482966809086502093487363941552969815023039323868189852224243671738353013671428776656955528860755942328245052859000284841034747597992335593666255563317068142386694464030634592878883958814346071348131939449271389057745263593040237900651610143896147238990932363157446429625671027594859621524235401526241314720125150019301030232341190724624455871826746547905915689696599125818437099297780871971856092156268655603742249702078929911205744083870567289048116209784919315815946512054016118468374665721173548901422923142183169487943462747330934355517637707645774453576524013953235346083870186818656459677961880049152255410174064445945968498918613727727922891351877111032980169368802053390542083121442261041735961728731317647528177942344476780336710301242245472190424501964008883657926508724408700289424528629080220146303614310277991193370531208463221819057075300041415099105299161597251633506687906619161607683152115246962585823965291666959255580172323533967644276838676611524594331005269277954238954771778911955485915278323615660432898579537135993327599791823347865641866206895628273025099742586229413863142299013700996807082543703412560855692831354491851170918195364436486459878120369325768008799333086164758888619427752468807246519083441193814911478769530645821600262702427234676353422494635852862096606735983434730079308770574320074653633511671963863325611078327357094547435883355395453280336560679900970019200555513705678200618618763235670241255341835389750807619090495494468832561105463470557362860465081136745565289968581253927327281145723760098096275261034523200385062745879744554873737788242633371936689052585317920096148447803532944894949764093290221455390855273255826563659981829416409710421430847779104816502547654913046224261761230661814379863858313347242171292041459499934052617410540424431320638688633023053900451131625843878912950158190152765879298909733827393223075964754090544582824508859500960859377512173002410532248147761639878249149060286893565005739311034782896747790053698613172650632071183391808107248895946457063564623630293238389413019405155709108126247374596019533342702041548372718946090643484078501167537383592929783990853708768672052292414880441897397528703708932952384235019179788064872969990218683202895387753636259516438601216529014018582101613659102582919915682898070037486569311658176994042954489436213808225723399633410231283255882314558870182671256581257253426043427378866913350560336826318198322090609457649526506235013547677160174344257467013861047083767843264368737320325120515777907542377781210941977107629755802878249405153061277897979049245336076415889904603391280041446080440563208693427196835789403652731493852394438527563209117165243640529872414431999898367198331289212542836170673261645585939167076301006011754412357345461452379330614276331072683958933564554784905128662621183642296516433310620369162211888226606181075627153019616313725312785312500085378382730638053368448111443267966185626634654330284441794776992021043621288914066632747398125527752019769969899150025875056762182156598745404049597302593299523633544373222330934075389155832927912213830225642430806846031086227565394394522242159242196921048134077699086335945101219134417391442635117583883142778747578525595724662463979366648846864098962001085137468202232110962535577188676175176205387151303987844445737442331624947861731354481570808048192408875645857233752768211977845937670088773803542527150789511161406551112593959483146258420033451601785136386961124533705166708621529156665393357894812335510314197716009416509576589614417430607590150706918114412412182156912792974697574065789100204728266470514548887284764175617224632968534526123584271414172111199012214111841247082370921035045532514872724151090348695945456533451337856674799883624842374257691015943254650395094596921665747591440642839087377871908221441507168108657114528932732417657840651074252716400903719290897952256773672185725117886276022458629082665511892228673078836949670517206094901514207759477908328700241474342119128240523166622791079627712521828436596162517099820517165322566195912593607457159035319718923291686928609943865671143055856449631819688734990043735393836257872689715248284991966091897959903839925685224431037616409888552303473869587539184253990926028267160371713818669402906144121880441386648741231988926895183448469204277922618701451021996596570876854397709859922365233892898962017160605927219284730507438662144352202815637918071283982530460981359146620537712875965821819711332084565759201916791756752427608547280663010580329225928668856112960826942378667234700329799387766062881876073426435944978723746478766841031893770081983056820928747542179091558755998432937614280441337996005990402815173795594657517653137583818287403739533545921370616461004265372644113024642870873466754546801159218154242167418401394389791733043996151714651344529503563456458783152158705223848269424653718333569138169131800541588977405141061476263700696418718252048015548689740212978853829705553495765498306206964830867638990119814979762317624115961579812026689009837081696228109512899746575260515418631471046979867655120322727154642205764267207084853576431985525584354137479508120887149732188096746299991700064423594654744052066336070497631028508644761386946769629795519615036983137633835097817636264686970365016582390362252641626044644240678795116314952811334716024728272248215433825423902917765829176232866644694448827480440771130702772135010126657386764430908095163338108905943385329024673874535673661708188594878810856735594229472242836220348381259524904978463131943978864442466089295342600547984552463480268792939915134618212821841526642822762557361716574240708938137783395488454174336753460107595772850359333117673865883492179355459035042769113254576558181431150467026190305667914489749180632302156551187834214757181230476190617016678249766333480179561653400155293464638172979522781311316074154876144076921255101066877394180087020670853749128111926402634380565499853569695899596450913726271190635022873126717622661728736473597079969433290711265054039210666493717342043188846382374747458811394694782164761299597391085256928198268338001301834826128889326606558451643274343964071046365108583970184012767644975285780501502563506328490725504607020466900292016523180732081248522547532156377687595230900182702800055498129331102482805420928877058248708463976013267522882912339235590305547458746760201796856090720816114502973530589301239146370763071321682851827784418176652242026582981963219064709196298178179297392516260833103512709301124655243519352140743241749679737014087578324082025265945909650610281153200281380814132938921269336724907061881326716744458479984531650448328915331304087549693375404250844878416865005929868979223828565741644990436946374077830243484423359999066842532486077398224855468173560765376234453692906723931806825935436649473643303702312858993770579033181935139635170403753084663989536259217908758948552979431449437642001280238606254029855763991422513511551139162340400450165515811008165863732277018509167905207044138393758585959469323453774500143207642000677627395588523266248657964036275546050945219134315656857510607684843464077230441624230202186432546672435606230771007816067027978750261103679800247039797360737471714511142102079124703238417127733506004338435792879995561767902700717214543647707545435031483657492915966838457696709567428356461183805268140246533023673970669000149094259101523554317211306333329887450308976259531905994210306553916321189218949580833640837852969381427947390294784878828338726093770212722990627472765578366259213566965440762662152187491123279589545782205477381531766439288859128981963941919911728633572429583102907721025439284144566253587903773989805718311571043840123332842247866565475929236889383749105093889185896857803725737913841129433664453159032413611463607927945280427054338313909751840663501905486657705049727420204888169758002472370244691850316844278006675416697104635781164080550034241727104854914563399751258586850418689780560887125894233265178609819993850885820343423727227759186878870738200016606735564011707946225651942582091221143841336810461527367911638508433411654890175704740278064467538125366270872136665895188666999030894599756414478639868978226787692263525568645736245730158405175785787602471347536381839078208183383925058810022365081369888055069559154997186008760354515552618165327640570963567741648977245587514372827378650855968338877121568325255579395922860983930930285600292137549497568797129097523591787399067791640374734724028647937772572320479204410636803765476580330906339606235592281387127472163476695889559608154995875831610979356105501745738765215335171312870819873415037938671702224390601450322898158150252578313957636306677060230474307565884267082753134136624562290601164946978042856691956040267901242283037890887189372723577555156683519079168221885618703725967301045077368608474874193186367018594370551962047827517230289315956402176730063810662404877620197328191776160362451165009942495143918565020365820162098092266780104022983451994629088982155786471190686577676759217475058517930571003530940374644577646229037699285528729709964392344580735451824397358140449476323187044565166999381467736181628137165678561281994507980168878769754891478438236426037432220037221758557826694155258816963980051250507901051065938199069364251534198837041474497301772390777152706366281314428661077611021998108116643248780650839419764051837406416746596398693673936287315755384631117931330006635817210803928636642291424887970546171191380399146085246048059602611973075814332341140551534468329908096823883139822214375658257858375937952645775800660144870508536197211380342698445328872761737232669135475717434377771883879032941465690516677158451643048340551151332251427198328491672356760760536895904017870504145902959001856564180193133581383081338048303458413580292325276919992921319875496863794876720790510043201187540611448223787098179152629843652624903862452350328619554719051768381649320187211488793325389124244154416957134561227344385273853243898798625486085790045718771791337970051903877725248171049417853646317323771674364237545322769358574911912002449106264843351338395273344634822716822821336994781321403846531555220997861172755583417835667587447528476088205211183355451615234783420640364420256470773015332133193339553252538983537405078962195064210173773734892893496627652179333591935328565630329777321014861536541838081141527040017749923038117792417539072340231353997788160133505417582525812373644418420019506641007153433285729236520163234762619628910077976750616998057985836510055241286806375188641047968021833151339377275861450917168610295938073160111241525087127622117976356343037510698881525950959549811503447234904227283013646092063006999287107297240697897760668249262285898331078365800169604057321530252950751168978543542179829977995922470379880869227019350305254943955626631001425527305735244991682420752223176558791051530458021725030980680472484458906295205889971683489856631985584145530707623040214476919043385073207992883594133299669202391516732894092387130625250569608125491578725484157293066667711606259909707762180049285680978412142336014703872678054807748722255874269883938004514737348962474633518022090150405360662158825955673179010174285609534433544449377944378279185849334137544274628160577468956794227071411416047817992218915690098516726031391093893906753056294015474720717037432474609368435638199830031457098494060950359599924607743506145259962514505459804030732852785047232099572040264910556817650950818757218986743766117056273799945518945095279100257309665236060206856952138567860016851376313944111410489991819183694428205696941500713718650420641082417162637306282495036940094851449064198244005004735534373759563838060139809890649268751184109726719874021674554734502923959001077732280883865658516438713971175358613785299852364422543038418394479625171963345055686616227581656531466409839037527719230037673303781366363704173978617658689401871829172132991169241655046774804215608501976946198516728284488646811837801739802112865917170212798645223316646321629496740972481569272592796951104466297061895032989805872552388497452831971639623972346837620264440018834758862810563293158563766950464490287722942277049022047925155879877814826639533488006152181187442110399034379990220943651496691068220794988195751469070660623005219249517638021129923233918331987048900194424083906592938555966052344523567650794670108385332059102152084164335673105330721765631569475312583880142133193963705625018074674321746097054231765163672779646739006635433488257277969469958246113104096323279886404238147645373628497735851051588775993440245802232230011605381759168633571425300768782854191252460593739860764443244089112383779427237902065320148086104498352737656701592608846963119288213237896171395096590173409222894803242157488376368939631733598685650823548166151548138582451757147436856414913276249085143468216624260075957422933646491573399036942657970545773391270512504240723534023022778065681052912698982068211693114120378072705715015298546345373584182245037085856151183520074963643852432368687895711158321828667320907470085425207485638298505584336775699415375430477648341538847641927423280924543756914243186673852128272655463779168071070683495828475310369963642349906247319108780663249836930772969451732669595526429533017121606616257438765170895548079295058197438240765987848400797861519752713359961179478819358394018497612766182866646622271830351162211254276282267648179165918974872826697375350712410043200100404848442697194194876461176522926381055291259826163727921428615333129406581967776844863453585480101440116972112925912035686321172544767476676693057124762716181132707243143809258636931356703280196336643435870261406402553883616842413773525510506689588001666097996590873967330318079089575578657930050933156154404278941076967746941579756986987098495922603248107225593073583756536755312069723225317714336191193497402063394008145235185829125307182480533622415047977752009430911357577483593201361744427315855344855096726107659922112868499131769476676161774881577938412087150644617671044911318313449739571448750863958334082486886124528116179751516039154686139370255723661030013751429065275646980709803107349235346813331152264924541723116231280499613724323252617193801198593681057742634368050133885492182241537441366216105720731575105600302885323309409528131404872492598242724027779489234538502093137191386707464446324731345468140188672162035879378450238536579593054907449053074136129790692742580819033753239972023352678522981277164739788657369967605891545654004241137411249843276688806311327495762604779128157577481787651943750653615880603052298330278758021202674861043818859645804934497040280935979675553231667295432302914643827397131829066113464914726278750973248092334477709472950396743160560927364450522939574869745917434069567192396252503768415703036741103792471200886845583954761045716003189828904384079386677551859970721914516695509903823633072534544195149206363522059000781243953416987443465743772075571646117189702676547158892139039236510234906834306313846566445079495837375391728628171075097982758002287505425968000108268557821456506075519155938319288609058471870265823431272373061229661153242069439499856452049118236328068775271548615047027316259184890186904031458521856146928689250899979542907083970403719636088912083509875952881106283024398865124741957784117294143807143651286696679880605110181743443676675756149530064149566550855496023075155050604391609088390883952401655706716772430980214060666420917944434418117827923034572553822821030123439584769187642066443831357721714683809668038530323875682952167456742785561843475604521244113221839425123213526300386080140716533291662157119529367236276434199415544711718842998195572915498354333384062400573179922741681999335844144712465701746654935806771164702454334180090787444499642548569053988593438897063279935337256058925099367067249984476666006984345233675604997590637228324389917637446169476644245879675776361519026483452318073605609633856533945804063981505989816125871253709573759209881815884630064896467656763017525738160375400070605959172381276716953388129353496150410893444657702689038184970666559006309532621731649401132207404292724227229806186042204930233858566338003662731445678693044632578508723705316888991079154921778597327639061560127605852632002195898553360410301752524178299442012056184299123801587451711856536946924130246677971929015690669758400896766256585395893231890051945841823926090883446395905672218126136476437934512065250760581993669330227426847455302263757406152212887121264955683720905049890039350466360393536498070985892762177296397666334813837247821763038901846281165041195659351269683380172834522476034062761581950599255737033438221381951592155479160342484197025214125234647157937930098394446404650746950852982303961963787402811722394651327386570285270605258636619205184977582041983999654785417301628464101099949650330956431266512526464330530298630199657747637500674281229256572857754018676230974652829568095872925162128388440977606974561698212106287067000757277843399206074959794386556274626068227608504173871442648621519839994621600328796514858816691637850293288392855701771919775806747260718003305079727978825664248399527746285314206387019642963750760672072553105509617482423416014788764343717058635847242499401463024665547681893608170797997324289102691238011632905416820479406199694434313038844658865482172772773123898523087687520972763518148034333503331408513792964827018535444954236337009583714061855853973910372444664189002372367484517596186228044292271306027182407933353197193892711371253405179430414175157680884699287366973523989421136475204006441090162874787546916953047892066592943902252075040642569758642840074061371328851892851547667461841871195429794204473393808184475703587357151546078258647359855369796696742769892344145371776124676140710483916558616615127354696111893781868294116121333759731261776969414680783888667417131784723504691290455151106627680713790328713936666156203551367182024195282505248935364351052385368943017282512135547850223951033088399929497378238436963602942882983451982611910927517431141210940847445758817485044694316644667861922290260773792918820483657799676606495518864530909666231468799947374254975621803151618674787741803460557766205331431424923780365212248128182731682269529284221306666114023684983386516523627035149193909213909308246592992244160370141686358422873951965879643649672111335953416936183257733354064910271956703330733186933590727682508476650434794077993165060681442988608238155660743596055859992626863122039144984853749985136718293445323896002933462623559467538804188880249224111986286257924392038844745542166295970236993442546266646430919308979462958044236201941586475545603434955539598437216391933438778963316828939099610097488058705360191072811300514504263646422167530617073542074767015846422927452571583627100656123961456160444597023756948748111289707990483312754595413889903324187218810766092809381803742179789275878323387512302594696326478385285901984743264931255110559548749964266855159183289326350484992874650677865969847122999409221193835096330468689790421015050869668703507206941358462715514789890864723709711853223455107376157628353029824186703437287933759661679419666773610441469362910329413686431021040508371082768183392986911516623612391843853207478982748196963769219501819429319047730408235769421286500587903622060750936414397259478949758474209587487448812433447922952935335100128412565415937315698573352650605479984191710103868095994469068185329318599002417791826723512222088208446208821596190874291868318989555405612450436351968384577169464525239633904803830069457024680098107955072552453106812698947767888905584525673568108468369280756827913521724335326881760026790903018034185461416638228256254472446251633538937820990849779323918470133764652443593266447145714676656142206798503076459586651104112693964949899482336914753812932418704753913093866463880279167115138768045570907339190763135276003811153117746394908820950142292825755065082696781965770039616760679321910483746740501449068412290035105617223362522819082309658014157795803520550877753420344628046825221663595629216359310137310391556789976860463482518208048873980960477953591764154392101904457298895004061184472910376685261026254930040934664130652627926468025222340473007619322486939151922932491670127924027315122185028578536315736520364623008375494199363745680629521127387791948835304607580263215112320045379772208843183449265650172429520120329509701518387635923274056833134767175574008210313428987115779899334649354910949780540612555629380691180931730618790729616021184573735243620740091209395605820633524133743275380056413548592498802747240400834036091631590220599950390961991575071604087460162175315962744285047114477902369728140387901103448588889452968010874358701031468026369273065882010254223275891359540946433226858534302295842360560507896350428627640026796746074402022558235017036837867002905803023350698911653157070191034099965962653792335312262418532451549650032730272198204941161554355149602789606504374091747880530292553445026960551657753507420751736370923892061097222009474085218003696670784446791738612238473132789977652992348177149121370970169574797627741618213733654743572145147193601631185259937391135664299345847004790995349823835047146918456929880823418869471742419662351879693836830408086635566943497563067564448919490208223418519379533924770359294108458098385502381806812171714375644538483377373744100740558704825019445798160416612119738806171698748773803311061218296142491175162691008338283179263836858205289498843075410884033176202552104806866813559671128280611818149622747997652866583090937558549603294451954370930912360876136261805127336035627665474458891569574954083041937982518656993772893978701351993688104246828298872731988891051689864168772608816970656653863445192234975185543325315451811360371024348438674131323204442779483570699069754930036085118414816528474131078779146775535982929600499005576545535612277482333201516567502703034462008963000705285515296407412091373835049171336376266023346426217627005648946901561923735310929981803100555809234783823197458416632983585299769960747681008341788968592884391114564939782442139590690732701689338675484990246997201967402916356076195929479009544838702904568893611154015805000680709436183630102560975316591554390500408397556431781946793655088959407254938321799285615656371998429510054195142318144489253588023212210110084268542421637100298072039391092230384116818922060760908770524073750102394239211374647186793647618516464780770487411406397952790000280652948823192944745616692964556118192820310857328096108980736166344801755281477895206268112413521632138283384860221293978528548211044590451204306511624803957310489186660935671000145037238377002684966762612558514240296667431490004303018687763470551668893197117739860699580739371389304040488044486558979532299326453256215089171384692980627569689817057803653572327036367131494558325455398258201020805752302567561083517975004738744737806710500935048328374069769226045884159374837435587323296512546544657146860914105533132158274780659369680846769446532591764879274469757862905820912433631498520132966734758586818226288524168462531769851537618788969209262871845173721820466534734381421936601665440077672691996712754299764736770004636741223386693408486902751413193515483660595451422758404882116352722550084392849005068486847791948263871505807696741648205422452032866543410812235276505947933757578484268104626957030923002544410324189972657399785605670042763405990682140536815136989907917541301299781734961040459307926880446336558779424050612321629881125011119116467805508326413282789146508873646156380868690629191132194917499890270301233645261340240644008016543493916553091479425599253698658214333200827296159091168107841082536212403214106784018047382418552287750237760131541920096396787872207226787907791666859718768085010846339347393362672269235530279232078054940969123123876388714630783066107305237713649477832432860648930968391121189264977640195546202541421180676110857107047430830603373685270816285065290840478308345746916374122692477755344683637383035795217957055160947590379786103649197444664769675209436973092429633444063597500087830480374017799104797327919969335271467305820434821367731802612102021230254853495082455935356765149609448246757391719115728850408188457271701892586572051325531931212597858705685506029119909218743070099658002195621090567454153111490332893328025684489465330725885485025287031571445295886436901205433536001786208797760078766317728269649642755989372447441472151438483232732704613831753531013802481471507471828080329748704233837416688609686459555066882800625198618844321616737616225430493225143529751627702658104769958279197773253652156171968105422613342788397924911060519509193625674880798519973362607450926556618540308438334281291078535480286873774615088319457918137906843129497326696257451747557573156173190898844537470420245100090881168776431927675210459156255737472361226265261123874988623458264044513600234650566711137879029842934988099844518118951992221523943603913883636943588786188553283231242732199455923301509281508593802617513499577936181966051565282201458893166074136933529785508878875915723600271835918852855065402857586208675039131111637275546485317669536092476161089942391804329894417076751021655425897232255637239319753236323764073483388037323168967385878499596044234763568006134635810745694694185290480102239316580192201620651699883496584779868390741847537918770505287494623064188805378518753211346243742411398867618466353127258476178163416653205032982534706283366813686451758906556023979955389281000805860473626934749889516470128974077655280494713165864072797983672551468368199234900864792744365122906203344536887072937309861012341736237680727132629112083549736056688960340393685802548501711484956402107723708784743369755618168338870409119321047728387684044905235335133876987782043372756342435273143337223548652333084324181197966063123922073595513752462040020899882917641156155404141680922352101013344683899783484531345359670721458675850536755062508472896871737348476893945244221910567037402322346257766132864726050152344519771620637481952041188157983740611377926443581915999983107798611336611474689336527977657361784084225617287359714984038021916482759802558236253474276652004155472243378791358304049982693976375309187585448669163040555783450697751723030837080180864190463178162154688245758613086990890571521140401679703532782638159624838265506036287133015778474232315581043688552337334076091664514490058820966411272393379244757812293526980856616279303701827012603677222594933418229709371190312352971154532547002935773142243334629067375072772488884211665654561033244522301075122996404267544183118790174552182127948015476706507573885061069733210236579848702575444202504931413125222895837407819944689388500489681692187808863531979532401029980620320195001228633964063004179858274754071578935776187554237457657346470267115708750608453571563249514711565699986356343536990004846035563605432506600654353471860894629825741723556757816059686032222866415142790115183318097806196578532356244062758401599883441145670139729368042136075088221413072174690722610295403122936377754089933588554386502602269980379811527975564825144402662828312069232187488534586229271800473882794887173528536960561762892254781135691103780383498366794667424480752006119977856043016162452333923610264260197646025287137806290498618524056169214535842723902437958745666654551302210618142750855021965278541721497955353596634567484866008871284327012610517517954294465547185705022702644897002065769401047952345290320549472867426209285576523520535921074825766240126591903647196523751959685394662831977866661587321587095731807853127063634062074831463429808029659027944241224235404462127751957027787488010268415492914820300054367429565085768771615700503364889614669222628111505660628188189830002614094715241778310851080400973653983087742836175113670025604157725021989614278839134040567603806488057326848906404448734922859185859535513253567519627682011302727124037831571310403160410565084214993251524917586561880333886432005832987858179299892779016374293571052202888122248473985612238448067135851660238934019584205212731804057709792288194508461633798529006738959600841290388248297186135175203368925232566279344626925385122743498369173580857707165191812788867643203833122417025110181503664602829531493314570596221056692166147717912514131204181236411575920442903065418179370567809389888254654953394642679889429876482557882643557498838649575586248956362447662009268803439485026447753339911231399925486745618976007312918291123863193956624426483183619286034937381007313364472568159805646642211095056037762392118312580289803498941752655006078537758123768843076624549356668186902010663030687283492392772787426106246621083292645849550433303718066108731389251396183584039395787599582054843332742415825759544589351427457625323907731968252628584726667962142572228733910874352904235493913354473452216849394747225905334481309599710863645723222582635287261280095693426875683594629100122852106039523139505404368797455896820409467161559992489802296995637643434687362758171439966155902975032216021848409197091411378797551875425200469714064715140335348566268179517485413605866814440369232627212017352943131157122873779146599586290335576960407815316316890151825265566493355642586086967363994232637935649938446439543593162559716452482914661025028184741195367272629559465983673703670578346139320211935152410452002527540805828330136426970130741686363930435507585673711745194989488117635225518049148715586818105555868651618569804980303852739735651005636263865378185314847905069020280838615674157952838556771186806973658861170437696639165031855215833758353987933879808844717566479342067260638233243056260035677301209810652117897220485771526330038930106899761490084978993825500215583981712972006761656436934860992590951092401011324646857278169969087855416097408832451807702540854931865805731494380171405784281233297852391284153581888167046575794192643942349179991153775495188572836651829990844923450324213615429435722981979879722788739306765636030261976029870538052372115954817547797976970163042771908515787386640115665474051372945433699599887210666868957392489364485018053326455403890071106976914648942391672569798573034285093841435474187056562228267924833573779461123325670098562872320746858376812439542906497140373327434257650430166993742660836310438976521023341350701645893267345040811041198555802604167473846448727783287724567664278174460895568645415741221414233074430023199266549008501861116724267887333112753323053742394397793593781834190963437058060823440832760654046640925797369979619654664496420350045872409715058622499967448645081431243871265256848970577608175787922790887809227524367757249165615352620703219290127593364274423384783464578231562822895226347005682376722699768486225197141969451156425297526639768273467154811856889699379658114584538168453458171764117412576480990376080626563585946737256088579476495474790401042670982347406400318978442333136444460284356517799985445758713986486118744862435211926509144388502536682927758356903873370972095298891668934823714829522861389665269702306524882366518445838931809222989165568608578387847776721429053322565722246368315190553631101552024959690993243999064925558428423952764913386498292308814750197688140405700412836603582750331211885263399635166627062601826613603165870839326539537376909550379712053759841804369617687060162415576550096963359053655873897825384044932517680671504267946406141113589359580986744212269385787757423207729777377454374064013380013903524530542791106077604519969133872350631209650630235080640073318691395881074153192080034915896236284992597317179284141740943090767792403878838421075737246441642995664322566376997142570376094982273631955391181205573824867081311863814148197983882136899368116787945218667080103084566801391818934504181374642313398628329848044572583044131822442357093100872993627157008857897029279761522053919740464766455310266486698847298589996606135705848040247980544328674304336632717819516945368694715562849393521584674329840282861857324346293005795037832250876906494511857659842301786860846202005313483884960156515089725870954682922848322600568961496400529108289628776613517797749753364508832411612060006376960303953388354197349252951187052050611669633911184489575929303337832813314152204482336457101200034948263834663508815621844516978289607041003178814149999477026171208459433300402529339414854671587697465941685666698040505316090319583835386457347516496899949038259998108443259027087001972172917956231203118389266632995348650785830502944238604434735684619117711422916219946002584970778330191166758354284157774246721867985118912985121573919333052864044251639894849782027247739955221057732208026797403664318640986447614372057524570769456893300762955126998925010032751239739104975217438920159229356711444002896560460325634342368805254896260977554218222618350787501796934207866971672956041837815591608200625613747331281195454519153795914415925862184425730343182116093453578094694119136930803929294109438092658277562316690082117564035176379372020884430190227040333019423321839042765923477800510774499453702710578283034600843007140026492757898984482740828646308504631442042588856045715391185597630287472678876237014886444926129294460594197536745679786857000626176875362523959757475866713471768253718252839143166269913535698410067300807038313567109537053260974995306733273689338542548587683274510496043515652977530254609819592579677387914385652342765555589733446192363687065924205932428611460111682510194569342417266469341566569897131466179734581115547228816796062354577585190074125010749386952691398953880648038858205771189504866386060905152777420766105066901430767686289658514918235959428193512153203734406182142815089340615751548974657072730940275340912273922787900133055226222544963668772855288018517538427977099957710385650438864135721657851662249944740934186981905965115521126328292611404494274882772732859548894378642726337706617720976508255089928958765050193199400781353350908520959946143693415378333476592289841068020117054871766984775739700945587041143505903443237941354836557805129355070191407867529892902963912119855702814058573076704415913100441898506549164682417131974970888516253268930753531993298595084041656084199725279115005170966160642748748373312425848308290126754504783906640203754547058843892149222034854093622155514197499931415434472640566672888903317380458773214993280578988879295769095068622374665930010420199299362005247634631499776713470899001310174925828969695010939999731152403798749780319729416035992949323103930352042054850774415515537931460567134213764495495314495770768116271718257885090985514509598420025112469583782718662334639020833501996682086839004202967220677007337691032616527505336162977666875788715262222389676915230666807952876298501014693174165112436706616677872933754648176642843933423085026937728499121203354792555003775198175183680836009817968755645425370065106235944237524023752727230010979015804130745197468118222116547468186210449487195923224780129313717307188212731391080743673741133875465429507143479445252984846755210318205666856999536955414589891970177004677289913501895186861603982372877490900060929925633727974227984731118416605570519307734476869099279690134111917481885599525783099922171658386665216445860869584859967825042187991894506662302152888927924374547924208489837905973980436554507834489364786757216935363271081141309223029015940636994759004036321803304828197333969085822236758796281386337339445881647792535705583416801702373335073895273514476166761703428944637091094201335981429970407771859779149178753428758322210967454973212111226143937186402599213351843932118160578321086501354865864722507436327125176921947636315042953134862356051925938167870088267420627551143146984535635990627062336661453388348879574724979053699947602112200837621045890877307296815933572155177022236425751043383578588137185958628234905696122606183922711778424483196214179753661970419905593522950009571802458113240811711634913651669837626041368823255144047430620668689027145892162107172188991341281393971858728573311383020873207440789297233802030965007506375837691324409272542431034697410696593215683213056873916330948287681249390230674149784974886482925996129490519845530813138358068037498030746757769943528572851078568127812905554188978889855329482696701191707797223747544537654676599368593370790751637541010120894656801505475089150378639258939502483657366620209858081610141781875088104551059052765949259626146732783005131089872442083556471707815680033981836112650656047675697201168179334182676771114229878505238217601553612459599746920880877480722855427602178800446053929491089199174936301290504600935340055199766703576153596198843124771650952806681212853831917903152205868279371979586592449423565512848716053674141408388303961939137879735996964467903768180840226062672347079415293748216109006340666793817210801106697962454978420092071405011850819439284750160687732094409437502975213145258943026725315147722081844890537896718887681704046856411053523898495602090973994601644536251086935014461739682517575688325478204807912570971153720211427874887177495450006247269942134227744546385011184945050957208986086479258072684065266908732781073148135856044742239114441863508720571127199160507243661394668953183843441385248714193658188663048839530747904568086327502176797145460167583773084789324576622371074422905948124888527897567800862658211313460897481365756979345946585940260438207799748687828812029692736835189496946376222492751709836696075407978650696540667987768539691407611607106683112883555954673538477394170699301138034387095943100181085421590475831637048601912042891232763387618284712836414788735183300539196479795355665157210641928891025209084663637983066427069638436013152495110630085359303817883662520263982472317522320401156295059870634226356380681838001212616465349517392641315959039108280818713881792894229645674819059058723898174904820464383671151419047034489250037004590275554146487686818283053731353347697715231028671033691270726018708911629225249640973346726823705228443824043218850661428215524232855437075549559660813499715600960074207028678427342580815081982273483626170068588756820207779732915169876209443539254840620535180369311224380308441624299703518875415498917832587413487802142543355464711867057606810287066323946332202053873532761686033315577099765715856674493416973853827654742015973067132177343424938994492142868611842406504317496067868840536238067266324573759981288477759983041614645017829903401767498196971299458369390786559490498800139665709415073560720714828627650808420876611525128425765956104924689054007447647720155573446913159379102656265950219072086548378256465296324591918379657299877826979896316775798247571146376833077487451325238686181236084844985170507283015167654718377257582561814837209229034652074283737083280972159420572872263424567993006282075727440546088467854989097419892181971620314729699488563486838788673877019064360800665409945973804094333669959832526654553631177895047459186454104736757079099626332775783461974821018751372950851364491180715674353619583068611167263369445129741111319866301066470740176226580465358858993614615927299074053719697877356110246415069685054386429380410723380295998143840822340519314408658317015343938626590657734031897148379447839772796846985121615081706160888031177391588823336131315410024547886368971671138310032442882892664828132600605639607785551508112492849425210889426088484640686098966087405765592093583586065303875178249013831843019033343485068654829818763009790337700624735093619429535562660386442933467297814957211883770706296386212120392100689485140092785128452409596992794984703200964711034534391242747637310755084995993127786036524488551717626432020536183059497005466889334757725990333392345543698609470831131921650746813420326548348226610638327008701758764485386800441808064933666538284341277920381395292181777717582279369930981680916988807392835682709544303343445047387686265621290482747373645544484538352694935648703588046158230371312282287774060775494685430500716641991493929988087561738467669336883335762642081772536905690795195894054908194932310381139707553183484647832969170442656201076351070569873293064131152745986536004647788955598425420940903889546814919133822690712779945172527531996969658914953132480008597634881818243906233215607115633782972643218645749988749098508877471972436446405325975245856808503252180084486468616466834249922033623254603497347718765269206971088642454105032160904972749556399102764261866804102781244902665791568874364096974609297480349539234435550174473821430469826831262702946875543821905952206971310555298121336144179323459320406903627815138787012027354695323556483058637684490390993515488855031460647584740139519880873680942184020686183282639606559886901240838840348831176666668951433002288890078401589477900017144701662143965930456177051817135766767593264161909542759723985481078833669187481169260533486676356444841414654583514437089843730853694900903919000256100167606270018136105696554521997285950177224471873300668993325596678830170314297206457340551837127544717483316459157753704442621309034933995085160913832811887493612374236122574274510705852096587845615989828939685052988921399923015737192244054861073003488743446280149967124955449520270265832318094022580988793150341063946205929178602626421883427391106115502467843122609099011680500709058665096765166649893681516993779105711686992800171048159425064576421862799551473680064787383851148378074981399144055784590536182192184889628288546650507665078383441168774973125181325393889547357822510744043324580346980124325524955027136374346040890204873831935025902118820740477427015357344014741581333858334340923433361988244043982311804924546371083521075299262205238109866941081080936343583675601543686716680276677259133111843954188821016031899754911632921969300394981253731310320241061800733108228704575862152925813464318835575711697616295465795908370238785617247323979196327606707973954103183813177559738006718515670974934936273506356662387446263836576866266374290937154682845608530510722710708221993679613044340717483219634537525342940335911798967371340057607692960276338312086451680427656445101984292485861303717375412165573774637005068094464185871421929052712901772813781233028310367964260876796912665702181033740403662249017064135537153124063535569545184356529836245826186140938035323693164909951761771655447088978972888222109682461998070659302273390753943213629025788487074103583377241429977529373816235718727351418659212581518460544179401452377579410259814415410925770019630273279095243430095343623867815978279856896229373961335401355363204975300900291593398245096371534633771181635882071855589826152792878888007321889986325663501463304324468259956695543599936255186895639171159462878014268937132640607153174842423521205946906586446785228829817049667798428749773762947408357106785658758165923017948828801745026221225591345014583043838950525222414799374928738763534151131500180225313204941671529442535343721412266187413511886569921245708551628776600337486460550809601675440132529445012613275877277550866442953373099937556020841423848606517478564436850660607183321166208060600030045979931246433146653421164316446468936246104282571129831135265336754579203405782699832685283184864774944885604895828118732719156495070994864414425781633924846972673244819709479586987567868821946651914819563113236509035797500607217496987488008276717598823330800684764057077434674843493827276910189022219539809557339616738188329869169940487783353021134384837230857846740214265260478114046594765504561395128766707265981215478749336821215393040124017597893160057066183805444447303837764218481474936780469742663661409417785698980694543566531520556244505487855740870337391112947262700731648309558865741824636018236572112871388740738603294544953642228895413761110162943727430317012204504075592594433733277059957580966216964383474012300716221695161213319598030342911685663183062708067903572092179749831105942125922189332049614315635820215046856847923010232474922301206021259629883647841674418043447613779485182867059687205122403871737241183846235483558126102122505077690160032972698769740831039081428473297406758325229673990557351228270471327854607661065480452037888503148657554704600250257422242561767534889521266638334858922154174510680529304453540383562968110330373613578699272781832174567480886115929198461666502458942117942101404739058080212285210630312591133311840082262109259193304807138631280431311971318692860944056111143194483990522482822809200848412530689958117704839924630936954850462469876289001792777203512343417521095416001995446672920482692795425652759075332933008762700006243257933114468467022615544263127463914349358087484484038996625204006366711273851067669362586775954996875888496632416425870901282926684671337027078081956725168647548528011960670318036071462493960142038625791436369443168768086455576294132781026919188569112933447221069093876972709330779600303882126519768436444372617904952420609547093395858666256743892498040829753134562115893128975040944397932143956364830357463377209440490685996456825473357843063302902282594356947936034404437249229006331848075705346450765763516493599239793066760276909548166741539622361321416525894179892356115943961321845057943355051004481601626638977436290251524899666690972709332958758777909390313823562538100121595089382321359446357536266905752956857867216826052780887219046482013481014813739652023770318186205935366302908834641483304079438104099344549925311862722544455507693365279780749512806947894419542598397258568620015039299387692341563317253425223410088634937330564806779669455021541388744622318514284942789202195988242299591847120107871248872425113480659877453540381115393540433019232145193079200269217368217498543314321052514251982780336229952781118703104871703140533496604502875062156577126148096339221716270324173188836510440092793498045411696139850899876439618005477401508657931629517613637589875584929922495195574281245574319299442506122775734854439969342681731484087396294042553833104717455182987420353673608589102722284921153140418406666919483540149711805454342833434542060579753380410676407742079655054572365596524212536773450428117964966841486998158642900172612457366522195278644637605369383721030256007806925509089618200397453039057553327046538958890298544281164685271806677825104612000450557685942042941510557013613108952968652998796165535797085450074934993144901680072182267176318145356439282570265125506348533691384817499721599151302327865650490037770135909316208343902087936151035855838952194197420676059098598660160437353318535731315939479334079323695164200314435581998895031857631642620526516175048594282104079359033341752469562464642890741552911129996953354666317050653070748763267591449342111797144863988236869931384980457161842227176254489079915261088094010661147428624825731026493082099934165415524454734082574373745726688640998739902504197011141424005982054061448720715293266285792025649322278278160290280528712710899223762490592950611032442652754570417499568756851139940931630722860346209621351110639040336292365427167909799237028789359797605833467414011089964241954474174602085439167461197995164878615907168346879011572415839403321794146362442408991772655145948029949272404477355198807174958665439732242636711144906837257578489454104345510719809394429907945764097063019446902828044571894490402354026986533201843951889291067589582040763663458833893896323351274925040813664982713828759014492552562165572295774159583589118597760793689855409580349063845041763135141657759152229061264621505838701011808792209179875802829909316444652938266703067861003638384650352021768279017550367644471026495787559435986763823974595138063281010494428339960637986724903127188481383653341062514701399332771732264738647322824892343486767371063766022421044802421463697807689897114382769768290719578451301735242783416832147191572656320601913992813262566471833994875971204908495358675673336544242086635421196187575313558972882039729605660988019099133804076738934363796496651647806684772317109512149598227618590517702047275929463420682931039150772581702648194871304675971359127734432802248482690663213999127068689163298389653109320699155798202977793811577090179750964780917678943027278773463777532042649058633589736890277993665042777974825253008909593521078903585275989793111380297563213117903473795183358935287794895359028290394894036893933380317026516129709515043664277372936408314625068114470852272262769015946728583280397355779225034901631199413657851587730271541498830525940692212991260753371115476524197840064158568129651613717496378743629439966145321736346743461399096202771535413357576234813434960237080887471970654508288363190167725713343415481015591758618322718981775777964398192515245331744792308010588185135802294640556063184951697961842283127978330885628010321247213190811373246617245085784886693373618466571597239564786469610431122262824696925714729990747622255629206923584678841854479632999527877072166951643581889449692213230732479485948781318311812647530206564249799149436949675537734936388007487359143445944687882652842085904528030764532194112301804629806309818826278107668989531169381463297840662431269188155944818781974302065840326611269552971363380375883705042307650194621870405435502764789099517880233987386765592365109609703619058451068577464150632189248447723627591465025862451872057581145355209657560557444017709217767326116325665746445856730828147194264811737186900094791479929313395035212046586881852557749659354772429507121118185047252281138543028133898364406372744810933691197981818312194470828706319828633533031803852704300797096778630634683497957079604287687316218867975301674052150694782585343411229665055986845416397468734362805962774651513619994440364145092165242272513593506569969619186145674096353277448857858930829603909770475830472283041206300211904486791530283120762153299522411374998433838019025698732365542050145131280127600741607846781576259837034809854631085362962768146985106343702413514432646985358520305798504988301015086371961254118218390513588346707085598173452338982307119762196396224875149692884435874370248013911479185822402530567534053951885290285668991483724363566974033662566044151654533032199505036996624150655522178445773323087552783748390149057718467720345046966644291349040559409431819103456545846758056825199688584688907058926921749773135219326418195092316904911224617536948475268678330325650707622531781260481523314372416848832330540135968908298609082152981408229408563611921494390405164558038600438221607607758147149957671288035730768750968185736397898257333165991008510709304985192514391766840563071545992850015425671997779090665767355949880375993661002703849938484556872523057051468693488268402297573949094509462085803576584557528734424295693960450690662552777743924959035300996707950728306436028483287546657323210983354287412175233594116727121333936370487987192377172952145943515668683332633639397338714047379751373606478230603124558643927761525369162843279172768632285227980215842868674608603341301997477029341228656154891224674132901792330984931938419217951327828282413942702895194073322916568651481797925267524724788483838409960056444823002286195162565513219463858453970799745395578896608171151341179715264159075219047390420323080047875497741735610512957819316539895069961347475969897447641762679360289230611115270714304592290220425936213247965631170212561545848519230017033874119895719464995229385916584300091404781974791093776393203665561812793651216080666921858829108181900019109074322375929842462066793086860921508367243177499653265777995775747514112020973922648848345674873160815199267403077525572985334442710865911428588528761858505892273091198912739451436935876952603876167791257956056887284517716121978903084566925596441627926121997037288523524283897944086226727845718017199721889605470064071017903242895779198058751849461861243800317256115444791370969580237597577787631559381008401842517529582062172896502693768320581131472116334260809048398074264410791820508557726231490148289493086300952037535110566781318495181441741778161124412903569338504227303835808077127753509089173495369550048255410935116376459966711305943972993431167763802168084561783682168305275816240833587751192540246189068216275606082612833302676937396275359896053837716752514595870562614555436244590701016806181632963003113575758776521708672714037603709360982839688268624012898002197374028605845260941932666654610476101772059113641207176982367596931477457457954027297715730257602778747118991255870215495072867435073719353736981764722594356021812658788397542250797962857132207718729605340640545382119834653891528398761390474159908454915213002351297604731296498690055090775729721655915040260104601186430519453038690291470218695519866716609011646411445099957756898018740771159742447778748598082436144005483356944061540751777105071438520165733348205721868823845450617366973810114181708702548448012836271160471550130075437767376694946018756097710057375387622506266777110309589923393411345047199195097841656220014033173987166356882512779461489691281834603076369941924771203915692390814208798263612050740592088754818621608662846190278721810007815071423625029557133298179811092009363129834376370143893025652380589426780231204060294963007062806763939974773798785582394539277363984006359601044273698819635941217722162489890407457368586514218626787751249848524216399387281440483136138464773300840947037551672805022520353781055767951984357169279169445048463626305360907999434484022280807551450059632128813047751832484688612702422986481183074026663666214058066734424451066892691880334272721175106031630485485382492534842238608288171931820468738754923679325557785855578900205083522202183203339861117734138478502574790463816976369213107390549423121516466164439860770218300280434693055731679729195205588233247899364946824028114567011155792021787214833057045955100939775358134245993475376015664126607475886727300545509442434305632475211178656316577974528938983739174431750529239448229275950418220498547872464327460650007565554022608959465375206025027679038080059190877304246879315572413941684994153758663102836489745115539053289769087025747409198345802823952953645038940852770510487854030051349470552902321542726492545960932537667325541862940788145737313670352426458775004558219141392864811197212537144032385987674538638877690569777790125800892667230198705967301490332020170763615620484708857483318450694513157044656459378102170248676810586877240138857602465885927630988014070178294799281555795967633366272247457871044238005103669743775652557218443414524173845996927673881845617667826714926465240247788565996136289603398189465730165182683303254798286943890509125715864140320596822274059714785526351419970667979917752276841864475593314641044530102732809140178844024432480092265459933939075270320922178637339665131856026003247139925976743681885236468591884926372187193932284356680200407276248658608672546544537493163929942517045677664419123831899499670967559697845307013496043357393856104882748776521887454353431631095323906488157314635828997996096129440742973780367052600623621168446368879473367666749731774881049369850236612134307998501372397119135968320814533121633708798522017493646666611961377938672317888074310029950375767314032843157981255293756006498361124871350820458444965188312637869833517979905066033477062236125445270829494857012567635409934502184549279632155247806681144952849133630109040314859238293574599476391877643399298342067428250357646544709253147402711481839559735639177916606244607327338168309200045319343898804747190499237180793000192575197088185531215788047159147753103018668814147097340131295124700269488446432099852995246760627839873460830711092833415295948856794027058300615459842329647213238609291431284725692014908960258038553798211795243538040528938709643284509191950007573677141355813881315221490349281670052157214591866982456811915511723848789360492342205771143275966183165992301420753788545833702701673881906122833798307715741763918414879441412316627564171444969111308838103211006874886574245411903837294885106044322402017252841690599598677546643766057011346652901102843167915378624577100943169340024263417756168724837719816015731565797740587603851446475438969909318548488472972671996240372716333495210427511881398549063938849001423132644225816358976482440080802061405431558024373812691765355754681376147716031213222007370699489564712005516632161180193100225851434347938077732254313194507160521488475059807342531428620104113064796289824684097430414897799755195254680413095818262296701184763014835174175379640725672255564333816729493384576313791569346441038850926260165172363195272848454209686632764842660445870649734523795750147007869653841199208187830733557795868463509900174036417296858629495345955038812873190239719042803874469338649710115840972528849806132937668247291238727796690931855639986743420118400715607717815160134694183270323124585926576904828207204482558826475244210842533001509400801511332017528716969303299104703240301642257953099412432417549399673718598356418435991688899499910902089786237595137197101163974511886242426366296838448835748336872284007354490201060279943517452535677247007515430898524159009932144689060383083139539885168902413291647008254172939053663600960977203776107462459455714203820721058377785835122189573597520232051264406946839061897833179001763582898544832224658920844857593783250288335743567892813860852108893068702464846257765625437317972209426201694665702074723177053418247196967333340353734890559412011063151476465790495593745210123990878914157503030648817092939690909618780729244094635205155091143431320329038371381752216664558512018475361899112563321590961907285340252606373851615644405301143883408180500513123511710245606029341095543220570325632162088685333249053369210681041373768687594420957046615018854039299733671377364608410062382446900701751057933885420318053137174641256479657620693447452633091100145368773836300785568879920143568636995718113946109838275703203807578309101987029348361733173637065637764238838257438043120778424492398050617659644154860538385416316904152442672749747823849406801323721250163324612911176796743194895899078529577926012938638617375439760117825242813597361945558631081223773665353994646398567926638683490879400815650089934748953903303386691614478103376727287056051498200488471110996566060277939311004552154278284997562503718511221464292008120923770889469492589873137025305359881133603334970931333497229902112117382326301052800520350873017866469551701429109218968877409805899345359838221406003373912974268238195202021188508275394978241662889703248397710359253637393726839448480307538455203949939298125832126803809590903465761798107517125071672572203643812468085731952948567787476770117199729644220736515512761463676315709593078244039495305190525053404402364771855473345638978591442544668723303891455235514278858117551996114512879738885493062905838899229886214192178886046164738355557557505310665735926786909721807171133184607718369022126660421329300934044375441414324869179617054331666303793279880281187411247716559431112913341056738442479889492123531372667934336015500219051627510825637844798196332440110684279150919467599137870514054490715858317727714868562331138849509190432323365633867292907910777938225402545605386311210191803033164253347555543228404797729604649925534346662197916995045402160946859398726090024410927348578693959887836166696938182246656683988239425249497673880640379180275177164579129837687072925623906251568930425371553581762544882263157420540338033730964274261654499709436323811585376567214779591730109170501364344305594987068118131846969535799452743729757613254408520963165287764165421318954998529937005414459945836491969733455470001556787600306160454833327599804098942765390832328212400848500398765780249733902629056784461302678172673277333574771246583762818178320568145642512756084308401178948983436582513071335144010943411404974470708036215419956978619413949782483969112039190348219867800799506055064504945717759759125174154916852266521105178808286872522782996999421128930086088873797151863361592591157197925345544148292313421620946042976434450360936202552214251226709186194858326044794016236813206715238720070918248790329752951041961258240529921200352403956090869693194374359765562503887662228703963288495240554020389837445847748851467423746567637702862493779219014962347084652815702556681434887753112325397110389400545093577326947255573603892693613451005529889933197914646150300977588783126865166607642132781650097184942209611503341419678698541857579548165564651258697699081352243633577779316574392257506926144479002559232011504748661175788574662014919680147878997086533593968255730816733920856949041713708616939674199325393818685063352701444316464536085665646201054872942316267822043591701888033549532935825069868033197901978503223312333392445651320380492726417907468936213370376321871439461330860962775701258934960325502963740058162656731584530731371602351543818750995239534255018740017235711635207584442245912904534502414158946615739884638006549794607694983789106746806188281299865641184141318029700398829298095001745369247129577152481424415032921732053306596155704378247814111315828369953273303257208553939306296730845308994530106273073415616164815250365660649423020114526136327399905001081600415182816209346645675642243600183605985952936469596631099913690926615496690564250206501480396288998831111890160294544696769210227143201532959862989721515503289311966543202466304687295778900414847360645475481204510586372736078423582829972179415567269628876602655633868990432926721633730718313351133477711889825884248070378938936241120933206438474252279394869305832502365899842393971085549819305195825304100920324458770012871682656749247074438419070138284447923024518304870017956122688391840426524543260704920681050167551809485715314903323902510800137568979432626420687697671067111884622764295525653993913584539292823861383062273300205659163770031021802587566218511753297884679151419532120741976242700868740752804631985896241255522907249787177642359489537481214306456964423386271249709008143043696024778033270493681183415421367599750196103321071325236441371379154593084295395088098880752654106367372031714500188621375329617360768464146524273413918754827726149608245357121040326329216840349899792535162547466127249542849288918354122722396700928765278201325997623513382240885825084653804040703107399653809961901365753788313876063276524925948893334879472562876701378071222183662358259627085300806187914768597839495692598526494038121091734387797616325172327178959223083137219301381465761716615362088434182113268732977077369548966243385276457003972258091898172672585088598201179975980381632256055055578344563433251022981170378557450032651143201126850967366078757674455050206330557198356192690234243199037614950811703652331542013566165724138822205444338422222372086276980438657974097976740939119396025905211154282409346018644782520267935977651632636649544611957344409963012338150188948799928763728749000682737916067306990813133714802543363734054748796257927703358273682990678011236994500032987525073576273868364325674464112214459684117173205921762655868185846524157609434370648692860908270842071872508467254192843008015454419664030751558166557350450358231272293943809232148701579226518460037416368639615743878017168170437974769903790265131797752530882806269978698510522288156566588230737338284594176221584214877752264526056479555666401416355465673993887238012622088710263287177485734283024228185221475818245287074507225165298525794211527035722021019951706247714261294205631821535642623470128784573283627032836397750600653208646002349716867587103375442837589383177903417885118517218503637080805081647524060898088358006677000633725223114828572818044027417064111394147307972076683417760312965328959722738654994331890115837888645079096744180194860550255264191665074674087298107759136726154822403326410134063072820822534155095450444204056033784932144030699803694249319542300830686600576516763989108548531109863087393527919439266567157199596942323583150693240185764733140925509491121680496555863434139662720473254112507287455973307906532622205285925133492967862203373443494147723026437233702858267000903361130940083356703829956998569381849261479507259802314841221910138156601830792815875867812246697078788472314947810977538963699817110516048496188940918781883755682392299344036907711910208884516569998074943946516475642681966582967601727937318132251568087225074305658438663745657087796911246364060971014405714781940903861984882437619947834472657351038418130809805332106378878299286804672560334099429075585405772423825559691642688272105797023780717454043878661752275781466067452154943575796171725628364464205826321238772873498404276578539234990871544499409189224751012980976382802085393752643406124303768827276922335599576026604002375806365405078109952639564676590955604282360662905777493765664231534511674370706603429752904849499824206759324519534735589761863992076584360616131852516498257687756769837765413489998435291436144975247751012183470490229396063932913536426854967632196690106352203658552156997784441515014065893234021671984935391406744309455017388541307692510014827869520699088556929457176012061919633841920722480158094803348475822595084431081906143482183647660916880472995213097135816687059746568075209880429222635816701410439141067857448417407036543375382353534511516727291158977872778668099675348361269302374249330513927851735215804069511836185003056029569725764882467113081055033778413762280918470270828278917232248529957561624993742729787024286065025916737326074050674020396762927793817784478369446673513031495297698506968281876177138696586419870519705208529050203195188039143860126514595054225593166996682184800770260977302611118329659686443765875005488219801686788284567323342758068225392127483429225417720892971445572442099157297077275668331752986443512054543769497417041016631376722018274235034575669362957551736032374186712382751021356893361934686053289362883811212578041293021457068592591472313093975403280294542012544489285754021091298938646240737560317130809880343431516054114624117940977691151033403527857286614363774294957590043705704392467412938909388420154919765107923610296342730710454616447838946411767265963228930222068266862733302774733095818025503333124859483070633973725615804110782111030386762998770623221588499053356631802352091421770619751914636876754879156995648903670819503486215770363145478010467262658104556847235334114513280596228984578096500955969911684039972030742924471894087957830393570818618160572994859421914793106788043908755491175784605821493400668453074245209020490097051973055062708830456645941966671995211522451634780836619702527273383737642515586102587154170909624683874799584728511324957728060861709092128215999000721775706412177977750997365749811462959531332398934141325586485243740045676183909063874546912251339654505748322242397843278119758250736655066830993356601796207310087765672912508719695278769875543195463886706505873209053589084156433932848897383524877924249180466002947434411693933589136849833533912029352598007481140588579281518481385429211376311905400619653412199060011040423055318910783259527200723047396252365058782805477638565690006376755282295368606872885512461104869683984285007882555487373568649700808961278461225862837978266509917160071700904564655775388166543649188890750067750619211393322801060950382132219698605881644725376886804105656059454013797229703319940084023395865474484126494588647730029326828612317850831247479968198070279427566986123874845535837530605487933572470129210445188946488502357593660972345970798367695261924912712989616564737113892655449831015851553487134215010778517789164372980670037508570705968200238146999720974412328670801530932303864973119399619651181048620503979409275894516645229938593534052455689485263512846185403981225891217895239071769008065753838682955309975418086957591668338298014772003135305513310498998005506554452134351046946090074088173890888602877827395527324807289703826815664910044571261166556413969310563692233155562631525004708157902365260013836930315319503261171543530487419431781201141526432495673476271849562425745207104123144101185070020357223536894736719890907641231525247052112421766162967815903419605515440497599155484173070869829090458248498765739302352931681402917524593542138012270097619376736028799176336411023190305798396039287655337402244713753961072319357680990627871882348142640535393635250092246467273769422650542678934303848163223243895119187812950694823229919210903667670967987624178874269981058479081702672661861765730224477955416753142947346047446585162723629936744202729773934033206920689847862057525971705340762326991640500459826284510365593982599991875643200590336798450237783972333926231222630248669683230415127433980293596238916819397625320604150581311248490267033045712540377063977660947393045801735310343947975196380072659467438364583907463926874911771738525845091471252420098070979388621976455184160454663592260416444623237584802409727052012249793840077906650105994984211442748852231909875630063848337932667181229005939085327134608189953425230744775990617174444807237496930580852367933365614595815316829610859530444806923224682023949523007242531219011583248332940523608106312281286777814574164038012561984443643849865143826183597829715302415810380591807551610518069814370935378000916146055888324420832537211008145427088330909685764422364294021351358206807091056424534550197341232535610705991873157245339883964543664127499714780719612994131319155501481452644185747885509408895180557591899050305814852058847611762126510919190686948901389356012542376222502455310533457850176586759984570976063789838159228716935361060572043171531824475002731008299477400776362338889831847193001121813762523667067990059476966288744132892342235304786872117057671800444317388122889771947189001938177577875960027020005341457515184292832921178844760210391890686683421780660023955239032157542868234554316141651066440574676700357576747516534582845517240776203108228072650046067118310657123862726979153465085528023867037861268404357042603144091388786233257110563655280002141250089143754910145678307766769113742877199666756364403966045687518004093532983376934426957580971872667990199788128025758062386533530269546605843096959977166225018166767151153799774317950238802811436439772686064836463233599486307193135257613974633578365674033616139968849173977077807401334391671239562342174489116363888953855894712596483226613007579047597464517762022494519247703801476442343233529903300318665238582881917713619569349780787090122087741232827092590444803755876184699570848812032598644658246759853879888924434947899810329926201208458306216098796996317722352675471802967598748618281595955222659421659224033475964262715364154324756697712957991448381804942502686420053668584041895231944472756035403873450101917803039218572351324015175074283533608862083608508429928669554792886957239395620148116312531234415981037585374580659771412973158033822034561286558662820090436341376582129796869433069233091532843649626486859713366503779574486406962787190298128578254410012889291697217604418175382448278683817581910898287460468560746226518336690172034427805895489297687771311589850834227367162493279041403947585382262194515666403665477924945505066019149041334407458286514521879229280148182632276156889829453855219168814855351693775677709248560241572223684692659344256322360013786912664800518260613616404438030986945008113843608195940717788426375201191471654965881930247139866837791151864058383932857560116887823697819119363549602918084340040736235010005476935963131377311036764596931240951743410501106057005447445061038880951595185495489653983091498990935041377623843310448643851709513099573121053896825169394797757392473815018436712975845988510108847568473308178187677975587134692879365325562200296508552493547571789092975661217211799894425751526223951067508186097869396843697468655506075330154354928208362157871938164152313985249340493273492429310264389856719405821164285662331360088112960271763266540075155090870806124875109549859234902167005762725318208537169872046294059632686844640008359312731435251161001784998181470243090826920451736821840436917000784679774251709713227147839497284833594056509708793351940132391291913785946604587425116809924620424915885975790744133863364329059025717889558792342981208381814224802734663606098089157219666917671332880192132266584571926245944109941334665351265361173848110302531971023888021872475378987713975701131794597980202172801144586888538896998976698852597586219733439718694798390258337332853170276038745366871554571357232000863900063157414661126907343517125869300863555496673294930287307838424737634686145246077773694271829011459807225479605101484184301434046208987572486352111434527198805897485678378326331359330399986588277897978888507496468687645291034530278116773138483455885983960603560457430280445624962358739736191782338612863261761225950116425689523377549415756702303100853533813005188280617240546711394908748381837754729104098292100526713602303851710645007713435421703226447885838539724568756410483908425764872186244482875145626709264202737426733549948809657917150153605681938257940645986852882471192066980284029731465855576571396340855331566099244293267095068865974989644468948119118936578035339924028933648334534401840113825315361114767328246556366649790054929007159817865291783349427260837099667838454694658944708015086058921281606479879793901708576817474851487206555641190924791156416009792868733521688227064220981149052300301112010203644957279760655655344572046160757571697180070881108187185489849361404290618624389395711898865141321323466616615583922932754903769243644591787691095106659829345178630876971493936325093652529687743080365589249373832582429856048802193484083942682673249652085131449405774123508124315936087305430481549482780969853368972652860309315062240660658648762572659866076687459675161149600520447861576772184151000285393652663195460679850769094710045432187822807155237184384114265380395098540363402184427865824966984125208106295095415451386516498051301025435677802797036814973189857984856217604791593429816342140481222007855174263252747814531257938816801215754173763211833353418687297207469969576576130171020634073602474400708270913551773682760024945993808230800303328441089308899981002542278856570024307177460426888373103683391752545342710683008321064439331455789012658244700087059657312203923638993473039985925145119331566230025186121694568628630460542999217461393789500596076128643394249554632911239782752914489131943769440591826714969174960387162135210817382311935409047568020324907502360907777323477562259501872248127880776534841715761975445736573745361729857360403912516604294485493871678972624046103531408372952359575716552693152577878332090740025738854290278162932283726105387818784835804496852600925116869386162454416867077772023874347019706167864871777641621465984045602514277809757403170976636684051880948738690807548452408753346488722735363804879392143718298857309827836359932889943769675784272426904232699176800811641999634931219246785646151332160556824978185701762065645663190794360336797594671391344495553525347627588956938471599493419737017489073517630491432695945595051870071027486462615016580595379244927710161963333359220056563341932876746588835988598400578369480932495048032624913214255201817707557958308655372148554556093848737307077807712273011407909588761007255591432826540917591134044928171518431214979765475054346552563358182198524358232536709697865373451818547545967724321412725728147981170373329548894484589759305933878180058015019334006475257412452734133917282277439184298574727646664078873892704331295475707786795760690830938093840371187416280899201395426306355990977401805064326788628402330670351557927118166155651100409453043226156588778148736211170523169690973818332819774350520391286450022410931225979694559576641763496630903451348943116959899580022058966146603478357465247320208824258002727055591726648233149712096553374557184688949749166764178158992810546332691332890841949177942879909421106303424632879419391633134458661713900584079145245044445354910787885642686193158015736404622568393290625923535182556579350048401889912492092850797070000050500628314145947417247049792754173077850882889640283336277644392300446478265367888315825206294368658259860798968841564439219535667742470127478168114531337427361454383975970241681760186194169340905390514618343531577309042890953805536313675604161765233415993685005073169684367230568877797096699392653446255931129031639223576824574203438479952425114680922980442992634174483971077042076565569547626809416052073500386455476552443210781234687490117449181156715849277898799401387390786949348139430193494241782768857738605963237514144854875647534459289954299139094129830973049652768736378010956008405754607409156294164176529565893046445864996158633320453616871812347888507730304599776720124673612587355631836294089976194334316407388692939767475932226084462001073289739062985698970304186708646123978420818378323696796119662497167795822505140694245239565960403694891737862509959419517713338014302258180184866826921387371528565193094716591897607987379537808529253945673154026854928981490651208380948954885183963116830602081497744783709551930039399484656186764560415224706710109476975641060030891155331807819562400205482028391304238827677643560166379092616949197463843340294907965281401575477163026353046112684426406490675706772542237811863594115336836654891111040807761254852447962320757892394091789929383674596764407327112887515525742405656342227325254188130755683061931590329910498364624609240088072791425142639523393552622559580733790373528573399961090613730052377189465941617791872442660690644584564983324236904801114438794157895611643074364759695903376572129942162665181788441840178401929326849759674235322125046786829232036321953899978067300807495718173131191224059777634062648573424573322719337662708278179708885714399904810389692727180231205057767260920164884122416015209534543408147014313630908372368102455937659294524216777531767614020927217363857528785094471002041753750925171988994671302523490146541006049441706589595314666811670008060812932391484526475194400103298381458977513021819303957795503847594944174413427315889882712084180589802715818329970832366307677914079542538351547628511509139530961692888383741378910016002832134848883842411689819039685054622529874255565338694791861603671734615036963747873929070290779333153959293908235563256020510295604007229463461870318903450027183794393422164360606656252511923146164956578820848011361061573240647185114697076933830384846552415673012518463705593497887858969662848144265957978173535696647759545925892838283688686243142698311330864747974664076828966258247914462815458142212359232472417481117600263357767411301245370415489456221763265482625730344454724329096286383886579306818636665610874085673564802854672313699825741069530286453972122130924222597154188342939068382086052450263036353897828883278138867213726785131927819275015029238222663108327460387246271251228625152290543457203075841526705986000440957607989435035567532042197179910028991620687049949947931723546566377847032232593448294432992399149871868195429739580625502666714106315504124665174196575100517330828022036644163070911265732480042429135455366731707203918286436999835374982064970937365521215190178817335344818595149743268981128324444984613455827004173532473885327954969308052259251894853020471956490675125447060751465668331289611284617127064511638992612906151736809695804109980296288496461483647550408522178703981131009580165022197140829774191380358761243273902020783188679908449048733622053684075230701843440334022898993917653646387653066244783841902855879973081157526111920800682655508752364527970318470837816354832820895320146156401430627706382291940257175652294821758150523740271312279915412622726504323090775859231632107120908217323165987573039236880918150290717907523531976926207734696700088389500679640436985128148893250459805400497586269088829283090445635852825551186236924154465972941390925326487273810687076173780413736127041206498353032811485656261926790272124601820872215068341167349292486261422789503058239557727066360538478434838418402389850321160367771765600474405840962147004620413376761305718572227841451199217189317553417252800960230479521522584741525209063858220334977166931388493138567252915067041794985159077541874528656948072525044827785436681564796954948095912017524723790612163273849038975103084647793728801717512545610303570873121263258046092033978602703212557497130796969145802620562053467016362186919874351069603810187413694921571284586862109359040461499871294401464378270449686018207740761387561630972831377788201762644759851372089922113396147152196243206023273905423223843795204698222804846471563804573216653401925437637771214369612247488736204807092004316171762219155835731953515863762340216919427540023734044082517117031856736446672513788566055806627338010587047520659693984700498766453243135161708832844325378822565056723541579088031667553329114113127035745059579372367036303781246774667892051650368732513296628247938761828249272924619062482051185131584072490428166647922688105589133006290925334662180582815625971104615105211189334766805016191771558335956168772136881769627584667629421820510484776337698247210495376846071632999806403785714856766950291063070108368050492611186728805049827098258290363382013998777610510804066007555137559219872652325844677679326033888053441933084066532921691644298669285104291719366459840852538681263533303852640455770053655537387441584123226196742305690299232926378399293306433314417722137707898148225687425790143894491062502105404925062876191963716745283767720397529331100057966984536378389737780342620004666906961415993966496661073556874434146148406381791715155296679136878244386381904600136984522047249316209371492217698440752117854318118866022263304268278783258620434203407914973072314636663185636788698957197598029447434874369658596134279448788787385787193694637102715263830205892568973801121449242176550937724719173774433888715395075552217240361130967917182017126397372486765709713343387417425757028573694216075613016352474842903850610585624429497765977756342634768954563447734602031360184449280778888417295866647208536558478489026316858401340351983042746797588110654885733298217628965327668718720587840482969620034009807035934164361886858405335862017380691606551610030443277153042923245095264805084867082745114132794977886152953150051400116731040289968363397195947685020717786520330010833436802794501763925969147674670155052769896173304013287861346108698359598177755265170604200239852618854090080332424045040621951573445031180422938871680315080400099669478519024794503578553412447986838789317274386748667726225226539486138952257137966457657513210569676848905703853267810968021802157910731142460127531132463486354393877251181886316009986634331202693420761692298196589161286058027317722293451197761812734806071317792373020035208185658870774456932317898438117051855109005720355919474195844703375812978514176563733881474456457220058542481044324791510592360553874764279106564698623731075097937428667201052785806103955991413311573907813991346676962021956762150919209511060992114000695538946679638198417906063714096801860401962915743801720157402980785913406004085029234469068395663215117248256436612095180874370392538900711190728185935504589245568250345096035799812255190626499447591272030690797836448681712425797088980990173028540593235655360594346912781554195388967386040834962008209859160532382902534787378950926973648530904653711492943148664207511595552408310308383661014059381357883440289149497666742807505031397552515579304442753588192433047147498964344936798759636199369927157317087614573859365117590566779854034790844919386399006947181954321256658304328277640825862343607755649014557858914031722723321681543163041827762566345039888465253426601317222837922939127276535798873051518546785086788452994414098174261411073274476842507590712376371590841404751328625627096783537905313252888620829305826683378749837129196382638694552822943008323397954363561971924668725482153419540986756849382380745511111886138644692537350218618225160681034560305988894564643471600165580754971275023861630888818379275915025601207884199156865452753423242690966552437047805721549171922887544523735034308892415965922755069350479956819585536929762509007075714866430162912219322037874141949893873931763819107214402529739067892176067434092317704952370423210135719412993681558343887210070025065895284912501378749432925230540404342546728206437670182077413566588267635010757531740034422269509489314791656638679816364982272697786381302326151880573187621040374939229585425141068207420802542468659408542506073370781000561379958972847416639391852770935829205569800511546472407152942309557017863606110610020815798058324038050850753242070572484208549789588829012200357875642235414360852635333885572191406512533182779554924496071783659457105693628733254943923270072810392565360830642099422144098698953997203218609103271331749960561524323982911973072943539118040468143813291635660509275061284561876601477309139718535836370704397850591562631316321815787894684037245270910755635266091372222042298219821380876244146792898475281630798673466375536929196810703125831140974891907628542108867465973973502123371389189101062434367506902899223132585743968964796665177395409078725869614335632579493465142919903685106710503955567922225808300242406913121094683225212212743225804589258609505846048423838772585934307308888096040694578106129271544347781466784793265427299302735064555758177314298569112398283955427308789567435217807168732662739947853349528969211860402341964071962983597188869993001792568843174168718796758574418997814844622599945964256371946315134261069251553818002080409852215579616343975206048992188874379205533283625019016577328059047160230751245276592328654560377652669036920739538715193641579808629768344594204137185190375294975673937297339910490198599689313548934969587831228686033059929044719235260366914442427649053492349612852969012926656827552773801458475882290922627926178176585327604456492337509628419025931856599357158676214036294392831056621996906764262058959640003872023508298419764099603312603959515850653816377185353770040072266113749582146342916087901022849301836428326802090162201535536117249440539238720282872102374765411754680063315047100619953273088751543465508580610633535871484501371896305736536184585129652101680047554915153326407059632142510478156395849157070721494827655523321692364782308517977625040051446787701350201503922608613080982514051585988276765302709517886566331264354360894760005289276698663850176478967921311853272367945879526418120406796250640123002495833378672473302835224904290639344478746173568480581640058213133788539405454635621226624518853530981212776966511288456881949341498086381996661055133657123750476248033083696607269392449046747418315525383072777591915919412378686880256828256345574652247947962147502293017122462685123078105399610557413534329336917920714299876836101475551026091424062558670449212851414182495726367857457578436649890038193868043829420855375522343863394931397806335356597280688356779241572805486769167274655555408710997785733220016015918827954350170374069091210638535065687364613834727714298363922199423789605648206346333693420090044275792807160465778934384768533347583819467403391003445124171413151140259462069249887743634784480518702134431299569352593584827173755314730418742213598598027375301514816975633806413338100545140603585252844663648669622141233918179090561225561951439244350367239443142978341463744370772915981419994341578427164540910648008487367004603994094016681349996750513703277322208337382902932649531719981534794446426216916975221892776520309397303906310164665590249755963756679289280173824115000187654031341056702128053933589614704339632653097617372271510151596998274599054409693142675695353847106237690326483860530919416353515246756891886525447332130823731944583250244175799275748480383955174779624754062505495745800591531436937517870282888311240519746051399115647831845947547279900180652326773206194044476801323155248555354143159048029363359747711367823496582662529760208310904435384190045157004909226509163395614453346066669261821451050266275465308948963934193922797790407314261918131275388407241187286190859343644445311482079987140769780274941675897166496335644155791141130934306815370521747345771843182602741806642203083405955331753415639558941235955893961103091889629403264776416392578922153265729493709302739996300535455573741006976910522447694351870479338725508200364075815380429650633280858021680074196602698206576139076345699021033612356051080714672020895770121801189477224381688476308059470536047927070112108470971799459628607692649310097104504340185277404444322475813791500025925056180504450987433373211779137829635672323186266259345344270006218709536546275283144825293788769470803564273569433576872799429156375542829092217288676600011456189559496306086036455108087517160876727394992183899191802462672403790160973285483495860256294459356989897002735054813387787462250182419365282035324235141946574441442261646277953264915016299007208385912275038790991895397498054162308379084044210073334930953073064937096397479657357796516263318983045170322784972192194008875278552670496854513058165761240101401953036138717797215441493118571141545782612648859855134717118405681191880650130490274061611809566517916002315471679946795388815950757127508504876225418579991066934951498044970284520264415819353272308180265253594656831397885693926141196876314185940441630291591413459463925145499910700173466980300538386331206572859281874965202136302613593981947860565736062445123364831832973023599231229795758102160658889952051342633992796677279091986880724320533472676535236808384437172508781111275710940467018430063346175392893541903791991463182254542482801308022758543334677339765280748292330439005711856077089592691861033989502759662087305930191222274359967495366217760846061874659120503943457334806836152831691065449176112100915459160794041729144533187016382084790525793690414825317492382702065667551595373235443526152380994750863988834024968109367032021942402895168254372407432634118048637401295385092946241306276741857800569543120620863813422177832005729929151142062399600092618485785469046527625270199436754554440120723888921316011047591208410305015818690056973572677722423620109273993084450325306709956357871944775653567426248944639234430974324915956634880792649260060128460781761650257618325856992145607072070204369105869105334675222289785272795655947450562038432958114429179490070386985935095493918973213520013576545389177222004851120185758641480308793866007234935812529536441768950389827843380709503953700309689577883440844378861063210246970557643155010473518885658390881288771612791159045683639030419612554585411245109253238994797693631902776472225525061624006158737409781976321127755834509683920307404830454197936900950101388391013842880111511741069070076531204004288344779207159151017251542245593134963726167028252378520055953046966268064921820916967043645399837740611516290079066974739464209225841743053934209178387382921532835799959224738014623475667302441386657423416201157396159337262348752221907495733955025481060858044264335658877284239206129741700693169665575785683476630496160841766664098795314411825334164872571332839725524612044992260856383589299251626986590760559840076452802524472418895116761077681699028795449864642936679985184123585583744356190650211369542491608447182039532914403662147888683124821390830347958853954362194000957294795781467042276120745894160348998093561709626035863992212460321634876478511865411356600960853276888317449811457786221323502444779767681630449286796773131879752591405796006587247582400974995315861798014618808848558096271724910821644341719648865524050099318880310082423346325325539601865808510497371760218183145174612417667163586653011119671550521100665306233171059272782087739766472442767106435841141933861146600025756730692863483641638713470842105259025987909255309723368487225892876669605202560134315358151221741479344187369228475305387452250093956904835453958359916194932210353237567490615125733238151146538804686272732967890144052993587606283863529724881899442635673660574663018275214326882507403150534441527202077851654881712218709452431016900645295725481169980416556188545847352987639103301031869173461904791203152457403679441602267971521806195705722592322359913078439080808839185950227467821788716977795396196704044718210463815104412257856222529388779154532260519402621056199059126296620292375423845378015842404286840284532641582057660806360104136495832862259838170537087353195096882619103086947618212525881607295274829056406754044284330202920256731430825584332584388719241620241668040836996211361612522574204758806219775950380013904242072129601243302009780274737374163711274444098431959563027364588663359855029884334080922532853857452172931656329650839008478437049577995297182618426247572136241629251557891545834234431304905000285028106053343010848895047271424278399074343502590042448679446151103295919211272681997275835652376643889000631973597576999610360103271517113440722504050780238186349747270404678453329852352037693754087814102558876038211466672428938090852694064864669601949806132776174467485583030515559284423322563313151200573093898738460186645153835840042278048068908263652602182087250927743710602431026607066371588680560697424992390223475818456913007920167966287664623177933924730658044012970872258908432587484546099116500767149978754386421205096186165361560278963422225503154167290649321293507999294132587287534702807435141633760438727293893724061381122780799213688510473900180948269802106410147041175778702274040769356082756018731299566575894166746197516388307662261883641580726741067778720408636119611173634951275578458112182935295156953164307361022825744876835942080409487728461399927583727290612073781016612872506550964668164375723237299095374917876959308453165735632369914495997242700114796732958475334348927136249236957914675361977711539079026076364794422093099610964696211053110872894805383916970361428217127190930770272109663942711250019323457771604918277947869238065169119863012767312166040945593689864866777775995797185671476086017273716377325553501748602491753813873517500714606152621917513588398301018644194555413024090660542454228656343137616994052712631347308931237070625047246815827898210127867542400989973004015244795141106398473197653418387733071462558648869781990638506842214878075345212569313485501373576625674649956925332619789514898953423346746155746794341810956388871939871664090974110101766950238874757162265278055667907468433862743701265388024544113452689026458164484050710877361985665816225847511884809615816122590246950528981288670490859315611786853721386743926746040534603495755974238360417586925062885804890587530840307607198763996828154666948016783206931194821631661484171114257375364810550642010303203048265301331661723168404212218092527565681320197403205146120301683600867819437194157829521693113647443665820202368339767097241130925918509990171599471188496767112871655875523027529330191564830399777682795014568017999465567579931088421838410919448186383334185248954515644822328145399309771906549518193172049356577557207385627166263090419431293206246404784172764092281836832369250064926962997387156670016637828534312236650923719883199802947213533289249874730347942450241910995958978551388831206470155250795346503592067634444948736935106280347878842216803308907894239238233412083771753217098596585206667251133549119276175696621602918985800021610974927185083411976378457341823867609262159972108450650619022839085032960239873944316244419905117915161288273980980429839656998626763276508247628668334238182810460355580532486727436059349188510367588616822597793065311850259141086404470007606821689504936804594654091439621772828061625323474165187942223738757121154770644461441571023669748444575043452232457504428397508498970457822904285712030955880870412896653214758643827762190216940136560170875504907353936399875844600204586496148437117366134435050987701259652715591728367204878089317573444357373988242041057311423606672422690281717550598828137792342735293548641932631031224793564719091540842289619692288185826130047456841554684508698859725366711758887264906826055570859229970987629928113902082474752919140287676475149854864429025780003345494676385056530696048849074657369336421132765450450717835285515411134156857776522066689662640332689301783349512479660510478889286606897661199328363729578204386684030847860215005139181812424453802908812843407866835368505643063258981928504883270414316257890782002909842737325373718137913305816845688554151968377711051353651002223162939470491596041122808292759312916665341138115256643344268176286925578307397873205148478331689409004300825171505816007528159761832176554943409226579130203125060713146267217523339623293187782971704658819814845021449896716793677886521554010313977443396065751034222830237388652339319339505139462180349683062843454928353675496330589382973450136768697653118171380765879205584103745608017091394044582461712858241579134695885887747228770644791541959567406794798589311675201305046402576901628431614338984420412434963603285325639349989639482231120666193900184832954739214204136565436947703961471464007306004705363482970251827971746583951069784690013371070350053676592799288400923596378373734391176565686354177485905417770719144896339478785971105134472878887193045970060636129380855908033770323844008179914734755347221617013600776762859253802160260453324462049741871231158136032263784997042491747915038719380881070888539032029996345452359244107135686359210103282236688861634515640732971104165493476103036041493893818124992314726644639656298965545890968443459517721940935629170708166055215581429380182810433361044253044787276370254558829401232082250962785506924884850927098758207450680458482850172688067677367580476838113466907825637686019365571277761237384130854613924927372384178575040042862460994919422479816197285722226434530281470166262451757631698759589031562474227539366772208496456055911775720709439292826681608237026460303226381661171456534271177481084437152396087647262459091680501188534714496380322733791875970721891593832385040999872035895257602606731217350361466961493182753644698151201000530409504488994030793370181264741599472544123671304844986257240566670980546333369843822160290125722112962708654014023946462708294472319174165134291396444201439895788897847728597459145831730589586794839162374899703652915441801030252945380133239853474891177826673044536981058996526103216480236445471454177330549298835987457806357086290065640750604583638635133560544006862002089134346117083282006885397768256276632876131138607493675411492248710885232207715443491882237033655593557940942159644932624622783628072154005554270290530914855845279479518283563320917858715910481345141249869959080409772686166667121281709770280665590021965884651428868146556696363563643359075220837863264920227557746176165179045881263675516033748212259022795125768589024879932876894610508735239573808596460175304199063574129295143146469528798393457371778472078317671901114919472671881921884519644818395035422917280460976668595212613236772079229710644375208381875950540238402242949999987871717083563545754019746277979504776749030564042569939265448958794803922382206287757334933980908640052390777404264605854312821544957953826293716689524381821108790420690636848943073719153576299188596727546154555884041028469023468378304735950906657103222519150024425196413174873962373925003981815357488426096055996805919622081086900361144042391875674508867756638838916564857150870280808259189161673574579406889144633995435866993753959184213016377678274857324922433872801862892598769889986722530181202052607159945666303808273040890653286945515922801127923115118473113879046500622601278839449788018906678800024093519969241175299589914170815522399248228871103531350391017502119333949352574265162064029526917521776963269417523207313388694071495544140014491482220254423586007901854758546075410166011707511405567215080217352860934008349581133314245809081987278303924424774374013158542344637297535698809139746087108530219100405937506595858882138188552513415704480125184341199255833356961748158561581678426591940713402323301958483658462590966206520380483645019485061122478305566223637624258329000306108192350466716611353294228874649118127422858303844322015885491720889354275219627591485907358162558734038497147816295914077068477189079502899014696244318290851165864021663360896187479911642933262570476602363622975352195814538741057047107372919051819825524051333279202317210735820688551080264416256662148454328654282205307926765345803977710326923921134651376887058304143219321915504150515194399591239015541691145808351463674648848328833936017975154301627922926222559767118613471576001280029277411228045426916295532590902128955443281956412226946000737670001362949121484700079018312991079722669569890040472649741143852859082082829457154891174466182231013370255635082852868124198437710945511215590198168261964125446748443425305889272654693195815429851539766005742513220991405180073809660899901637013655322994223106590813909120988707079944326165586895138026744256063595080985657153663513968074275555226433314247316783776459842675169307338178807631035046741860898915312619910256106464056500749676262031155317139768093465597031060825611203418555785843562591122962568001684294447440041422793969138558508563905294501979262739720665313653776398817851004933796672509082883238607050169970164528986868570667276316251584068816050517368269441691934152026657603574475423844739002579917418856231598662008733849877946959866301626486743655179162893582612710041342431957997981356967785353444856155853140783563644764519611028409859254675046989670812450240682547284588403455981704936196918524949766566137131249966525117261329692375278228436933619105906953172980754153803684414019143419773569730032942535561654949346674477675804192620941188880592780519959790945192661939295789961037232205386370850440642137282099464654579126498559373286393222694086570002067329459776358749829860212898077508930871057454234132812049537647943476311592681501910749843651276356382036872570252393916328481953926518737442181809894096853258530464464900344034646473095122981116269739264982194834039852374040138399739750073757430431058390266873783339112146627751439532522627743337390604054041105610330133778668392300311048659310570369081741205069361682639368186136997949640276172361675262034025693838175614784748849540993915715249075725990708723662182023684277800604822961301923322731167076492111308994538310821441738863622867675758676920206883258247708012105549642837476387718608887055327576764717172318067176571702727361646130349430932521279057908559088902373911632525892366529542704761666112153669124923973728838248501839217321564683477353927399300999958265538923829535375160119601266716527032221155954775277596740582864756625879021749817104602657300987064228203144950340008990629816080493758665547931043057232542173780632756749830161897051639861529248778059272562728938064760456686902053480893915809429532663230618551606137753587028303800500274713248932484423348859429828161610166735172465179121311119709105961836599002261422527114553511498591567406602708916760322210119830415206708678685979068585701155402409735215869690933529158323385840474659048796903963593112598999110410034851284962419437219225566951479724373525959825177833770119297304336442109711929189282373471105069317929997428984682885506520322685278041613195143117994306481838537694370220306795314426771723983098266093878522568966757547777311482112319917329432770172535961386128222425167751096376507687692732376531755928477909611966296365314332771551926840388936774216097393735790234294904297654557720582992251579773904318180968051931633159151106439681623021212974266637251429235470715934206216036227378989793225165596109745568990237988999790464067465943573180991752904983472019134749753756825250073413902263041758208995823565231015721703280778192489288319417812256554907753947363936946155035032089826915845153134327552630932357201825272349128288531981892119269016286672905846957047709630979919641819872710145233727258264270319810878709541300619950637836516641781076154529845366160419485529172681372782225511521626765723227599651781293526280818528769327973629712804109125554028213231627039461723523908184680865171470176049450426977967921363574022849733837534583953513987764533616119278993352689701935470898055922362894673008935722818694094150096350303233170010778710952036367325553493904850017832185051026971914962066503217370857798213404857447261442395277733601968859468464364883314275810707344381212951931953247884895697943150596807283149714232799636981528481114409825939819038113788939207296302554567376817456914438430014635559948766731772857999677868987012934465603491174279691956910724737588759412412863034631362758007153716885934835104894308759386351392087720258907386029936929417596252168192996153510135256878658811391338661254581239082587213601856318998028139008202905205949822661120785507402840264905769676684948297450188260458563645041903997982677133319967139896366483027567930862542193386413727140262464733147690104932532841675018181752159303072044004035776402808203544879608517811579136907559137154392065714246158274253098341876133843888257478661282927043940086714953117534007403435665730996556666211882785951805979998032336822551338497329681579045252052105197775489634531722511355582314987280189336039841781593694957183444058879708678248367008038865079011602361351150626312631328504711639046558518809018053104590373605169867522574162153316054187717294949601788636626053534493154928827507472131830418498965893893569262268835518004421069339195770034351969435424236322862626574331327027761071877475239227536519751147457233677533404352243841640909728591984974640007410030476257782767427644397943483364157813772854497267056257611453207242637843895523700400127635174508042825003449733532045895517724872048731287126601145967527088971635949216869184612083822239277432033077187676242031161512591102183355855498164257902679214441449369932757423131936158632037989628069646856890618628961314933675785127355472215298550102415828293330501038938856061040574582740824088042664283888779066894287561354830810525332786683303504174489510693954452136091930171107289466606205802932537201862678173031019560077090472068119947835959845235035367392303082413579809717068078512124480646609363632195240302052216542612090592599300177996036177607425834316768213282171310131124125739737751966370689205217543782382521179723509514396473425395083656401015258540388344794228406233785147839959824487532748874255912787369966569342661890322567405661903876436035704566852774900997389004103945144314293044152038024030130259624858707254547342307375812035689434695329162234189632300138160446797289069347646960889277426705724889636534839155550524922948611208619853103363851424962771902837332454474995867748016495962407127573012206474629842279551888824747014044452130526203140123477649595692372360316565562889310059614464564256735308527575557929614330188271452003945799458461014729513303619805546565079252121789732257588592698110263593590945168039183219984634187567364733812286932337419069315195880549782529512944707619537624738979764712620327817081549021217252333883049785439519110306567404780396405631492799020478574517877003472726650338617261579171237200718512504095613665726029934185095044695156269847863640808105016866414287543645602995698569880173505599058363898463106040094765874830016350550029769304943467932793508675541897178380822095613536659346667507228699639166948346381103223653554256204501131081367972518105435469537524074316868851953784384523706541994423409108473061641426426520495179351022252115203408557401122513596699718774185806682027969986024627117514782152883745150026258884777744921435221963284029140962145450071767648622108722349810891853428924338562449568768396177048458927530974484405514373247076269862131618556262407961722343755282841258817669540447683098016750887140983812959946920449480359794187638840348680087995267499501878859703100086625419771746072725533576252193016659018206892788705435059574727891950650106939785879297090244340223190297004153690769258197845765257779747371475911884483903736015250024760530602347653471135134433670878934808813116444183861616119414914638859391950496769902753717674218857236370586848502672621211792041321034218588911548307423303183546056177490141452818093023234515621250979844990282292188471917326523722548224512015159369129008585026826772824331873223562132795964394270695553952130661730026255997226764134210465547555962014391577382970870479632346685295538294781668178178280310049678834953543522628095827344993103893219510502844258648985450062245026694935501165136681449982719771480236112104071470849429507588864333105274645505695581218869570699596386403476503140503971650954184122576190033061152939740167450231715414198726996450623806259961784542265854545416746168393769461884626120368890424671025959066031676716581991661845387452925541930533536178558222303531299196942806346931618151011777955279342036565050969347561399662956066408184564028278369965178050582357303605614945742357494009515666309600815427833257457117052834789607817714904405214809753510088344255840057810494478492939996103491610173339040441328904983908395878483101966511583767540230187747358764248146461782222282467609467749442144549037039803063102229530550963454053444024884921175462618349654768726828507593674325119667754451028173306488881267836232117792526515048294955522016590581799933931136898572677595239824250191614207519939317453992225480840191471805072766554054670213895956675473916316445434279989308385592656441609383999106853104164192550137429368581550622669416911305710302612585977972669698047339805409744391742849274408115892104371906464505653110165635932753966773432588302135780522302915461316383798084123001657784212951196676155406766094732817540150800045513606007940406443811405644259051518759276848025134394343160171904510577990436306231836658402434359977945621463231996400942128019277147678116782438400179050441632859928707429826613478201709983871604641435221077659013453683054547135043448457264208563526992114130785955457818902344800055320205712986278540273579846371757037836530591000969454564446256839742409558080490277398407274276040304664009704356723326526446865484340103856287878996379151142088415709190156156622447280679638183962287348882247178790495839545568177543318650727120570322357286349144923748996882773343666697383445006115948893715705510665476218282003364390541781521919027595090281420112490755124630159280961019353475813008252822735549594673893454222479927667138154870018366820519143274012960530878474394190422150646404132859539020551129762548946123474459207177097246260446959630563028780965587154404424335047938608932609067678968799769046467753915830940878479885194658223555453102854581547573828285789851363098267685235807287132632457395781420254756947177089141027082383624548448645323725727990990200786437148697403839221385950471784067722726644796935246819884973834964726913623219347000751544071174219775007165024820459852645500263203852671531683833965792602716386341063951556155797302623639846496456324838198682841096785456960269652075061475283905251363565273617914634996822536933480553109771787251787951038070385402358091171040861973484172701002247131322452070805080366187645045571162073850382575058284965202421355860993322188068022838992434811004352322674674909899511577975165943506338807173306919643903367042289809693169613063371191828935209247002403315580621832513501977863944597380765116653902966571584942862498148600611009011834883770265468864187536476533633022989104096758961537838139187916474845669683245915539326528730204071373393045614721641645808679692248387449222819181090272793858120158743554566394531474719498574676303803402546661297499146176441840059780608604447613761899225751568088392326878577149607519122279862898340772287271491794212844380301002776119853344313239498774982240516227747885683553305754925166927527199021133288183541027385480013842029470888890603062221430231716561197338327813872536517813011175642855454173288429192507707410034371037103772097033202467132357562368563937706345514350989954532833678586821048846213002458434113521873711986274162569277664246842251580436307623101412333768327735674288021262683936371297656104119788784441417248826097590048737210723194029945738193551883384773097511581869495682114457983319702351021530523367116071155286970904662455422840681607265106277187471603701547395046909320162493872245735840401732378036344274637511766506731698096125498567881153852890953808809397067377406530387634588252329192538349566648786193556025735027906657974979561725220589811174404407116326772821392380054447756869766733561550512639271488244240917470086623215638528166039811228409939254867431637998543649491049636399483525980561674323564563448769869131944010599382378580553311163413635857072155072910514685161925258846759062595707640577903359718190312572986147668676442112004684391270867859384961559088250557720138437067713348738674871719778503501967614700119958957187608492784807610097374527164578210875007142646260230920561430633841358280409961251411913357605549800640327162117220327024536830634003080796515111364040391525595341640838712435795639442975477316821885833512768425270854818624467982182977165328005601087933467327130617743519505425288381039813497690341654459856933637086614675644863957649782146880722172747422616109145944485508039915806977658097424715876748307768705319197874861316833558544424146853537993088806392478436714486678839683153003141034636327313377331695314206007635624983332351417396436083233203385299064063182372195250034729391353285819297017070554254341428239287079504195671590087748793888748833939262659412168606198848840466706563447863917013390008433038373953150418563392278715360103552784106641760382025989054530282005860415076971592493558188423333378000584851257967421871731760344800499484846596141654435549701409162781062973714233382979616505522099360356606001407070915497905188385548857634929303136304152170551092330298737159423913190805281884907097056059562757984372792849211713161980138034711500483988760851948579942798026562510816508467997066706305533828534512531789804826011653144195331590866022332779298637208847409741973415203083685786573518152036781704261897583477900676165996936307517982576921337201757414904244197861730956817338169411494813641835585454235830302673450841193293175642681508640099799500222495241186736271400490868490493437193777919433733326762474835410649196728925648680615970721417370350851111147900784421640554601678186350577884692151360511647974772996924597191086445753013921938915064761906943465614196915287572121403250485462819446563444717847796190890373165731148991659345006864825638771196985862612691193789643180002778775906777920948374660262707729052660974193219276064115531202920212991050627202032856084578612786130369823872431914592834171599294240067678301521079091470935653436990177498952984069112633806679517045046703848396401666616013597020980755684058831211455432949157918191109247900700776300760579701218937300964702889167667533629186590218623296195962306066362215586695583847619618445050630152510588127648483918918933919116385467237645804544108780106611698335388772278645594691727948320987628957446611780618412731738159999328356862152878682920558101429352193320485428444438730924195587649709469724430145529266191359233167470320569009181024532663660332462873614085441784949817397058578816681132194800059146785881429155473439728264622420315100548484596550344405831998971288202825174996965496356374065396642131103104413125552563171185897156298465577206918224373696611696849436915990241700582601448811040128506757591760632917778167959098577984208138124208021371925932323035569119981919835269190562328771238447016543202610579861906550225969170785001481361342917202684535678517468259328821159066916629864934620252469622867379157580997888161320829886601292091625558523868496295081245314757552765240462493313580911493142279225589454197674530071271486326831878526883372624655969147828792392685159893930557947679277878374502471892522513484113106924466069348041332834641511941136866757209392997116178385688295314865903631240762046037726104154292175291901882233947067254342843724455797289484668706625539179584548512820018568982678389526956653056487141898113852243050154083824595883691931092630531577079494899084881844800723077988977548899338805507934025872569575563223755641093381495728754134626251364065987295508031291489248098347968939755745658049763053335002972618360700848659901998066896699257245672515200096230501896999829127323193741890870038197575791491895744950396191596117928500901474441587836581197769591999662074146842610662625302647538711967438002450580359179693225941178550779106687526617153293347977616913279623191200321514265002754439757770964930045444374568151355284896308156760172217928334418383794163709546522906645010023092741118497599540555338375498431878138091731650673020579095031976777061459693531138784310347863273638830728954509795866839607940056554425518209002635729157836218352608466118255547198843028079367278625399925889440220549538982086756981466622869659841919238571641324296276715971508944250239249137192503783977174582236746023112497693250095187875057016395543767448410503458707080525646781153570649400289048135395807672374255448186843214083355035685567041386413937704805039272932319990703235517506514867542300524118905245464240043552419619781247146595947605283628218963365057641928350062708054576676974907519573127924663733730705115421998184035680786042669176730893850893988098260941538542491438074335609460123880749687135158312799256141167392431920733930240414474414719099057146193635133625657912433455133902004202863190176244478476734606708908673578903154356068442658074421031540666428729787623380695205941280562706110158232852388040689528189857324946296438963728332491355737652020218108122768713200589678096695398910308262396820397608146398376868250425887569714393725738226122711707956237238488236594405063083056403023095187622283186965877358557123936923987852035209571329022080110475740271489047719811309633303198402730946557501062475067049157335637945389147835882588725013867261130829714953905751921481071249351548389029853354405580827542652879354526010789073071157244150690509672261516622867871425034844516108786607980582449573025407865164061973865412499555403800711428525295089118997506284710505926720018332200295490371166266706251515952284556249387225065635938889500848348642973808380031337473066818544252567702629372434943014875568005478615733404064620081121476832888311158281370839001888761891709671820574626451766630966128111365729571142615631948716672677932650630309602414370137583616805573175061937603193435606377103373740282285450393964503779102408180743503766260216280963850636599485693870118819932811533176355646835694163105380205110245612954734746556117992339847664598242748619479298467396612096828659954256306690408923661999969838871199149481031846985899706385342500640444244689511058731279621264740484781443874443978977292707040416421230019414635908656850473451642004186329097705278220252511936086300411866697873872053225914034052492726949510303664287312920371281064885551234176826265334539997534558526411562908723501592906449758495942862177799919677906063199968260133614122438147076918388216652721781027532335922004887485214056666464473971498707198490507175179759211022926562997447842498567794167534638321594447635114462021793874427366337584669220475259172754860523247776765191845764227225707428013645472222331149196411729126356259233431106453652391554897984297866884810215572792132641739069175876472885678058619158470642217027468256310201287725826627889640896674708899507275616534947806782219530084881300205815230534953371238037918085548946349919201421753744939032488150714209462191816707170142334446685024179701397653421127482068760800113859870399156213312550182990226307312738202980365524916601088164877616010207093868920220516866068987847014646625563076946379398753742341872214279250370503322612491886529909549587331559586466920080692467898185730205954859422090690258942036298597168035892001580943900068038958661704533923945424558669559711178523535523852884756281255357844389956704005125965167303992160586576131595292227762661612807530341330374600269545553026601136509691601591866862116495599641256709650892989362997664738459867088675552609095923219313731440675912112763891132149547771589228165289977851705917198704852464765549741038228873373919495247610939186581683174371575141098296569939648262118595552833973499160392866257092960534573818469878158062145461046050082102311224285493553409215420824489695926983978904710747713105971928089016746746991070641555116472100063060539594885357073134080985799430105760489226250958162540152433397793366092166882668884828813646908471493407056463911978896928823446502232188244337711792874386379336812116964232300157465370859812559983648446826839870217699040129610114549625059827039008165245557493807443307394102309842889699814534237654547808833631288825488903662485701080701295673016715994805880022238021605697819588614564617413202107705721992194739371671912697724647740098734775033538964309225834798791581450679639143202051393533081121354068127470504290757116586908482533512404317835713064299526555989228801328338865198497697553332232708697317358237956432367481971688610282226722775578536730169908954276638210066809033098699293080612772908346025266942046829533523477076866131721383355957954494630350010602314175084660238927718580339952242949675306073458269739504756582391677303478077186547609539563340983915450434348703825164040030905695930713971394514650899800214345400089730260882489792139298815997740299306030309237039779458511047148564557216452487695513296078925133610165017202190474109003615286628034013756220813805179671136806535859792631190015748660907545742251959278406127090061825373330013517802204036210371616648382028201081066063490435267288026522183582718154047875591973373100659570660612185920764137743688808818105416093255322499013437574244864425449414971549184637685710140786051235312339248695959851976519967106348869727960619266960208720165039657106595038147202534494630932022626814591566716231314614496113397117291114971695721588337672923205517797889342154873832985156088984138478432447299046975947896024589604878599642418287341780586453412889936182300969076925215428212487306971410397420257171471420641291078714529267397770526295154481413583057127602031188238888399832021996968348008691185742562286573260928425791017525054503255957395843840606717964802475818952525449361595518601320793647854885633477475494849084809501652038889018115111272498716491160270197721898214134265600742943229928182421631329738418886291095960890084891184653144174523567357743483492908442594428838818788066060097106756537990525672646883465755089504767503642096356163989240879681985351824133600164127722599095609864914306130189228077789190769963448286167050257564513388444379754550219110443924172180604208417992950356355198135454139360499034096246783894337017519747159101078852598872977106511191393097802625305996000497227065590834344980260405673074839167244187323521412319257342110084044462977029595874642819530133387460337830416709053000786887948012305697340765920056046191606955272521804987357191337616978708635650461812071025434261327445503990714252537334733206831226460013158323783051486594823890072120828794058857860809550085304675155407268500177379857506990837445154039914931896962579738907990874249207334212033451167408280354207977699986583660160112910548791103470519671928599441341574455360456130981367593848607666426762595603513579704696292539051229026963688002901495032910000128898321524974321466573915591780546145461825457762615641876360222350345066789331759478355612590627841964136640285044992761750847452372961884078417717857095798652911973388318712183054227787634463521588665142281866869454005196168312387533544961434437234885635440380325388226807750021984955829765215182502686668893655632493041461176147976707965204929614300826918263890196302535624495979628631822056953276404201342270742241831551069123834949514200866186329181307856615351410184893064588404014209948224590540608544723368467395004070265597400783729931226248727489113518764251378044626664608074461366148890871986562604699025786486809990312038879789811997224200435774254403643293734688937914350697928186883212900554871603798794371930812353016998049409081617437103932338165252693289874916546093010196330038120131198639108143532519707178333224025817339740635849147931175592649978390370713698109355982192581566333371883953098911409536095275424154823340617120955210698397766781257898829389813690814598690137745073311519984638328487674036066526852745088060138183504265568365760397974922422128768529109608247090268105439677201597888102573888492423373856798168917940342079999861537288513045021988937995068935335421682171771010853288229234505283423659180188400108358155328049500812628209962928427946686949791273472899222067726122360371313700602426526149824688860447035380139013144487516575784538797996229216414232168648883372670141182914200980214210556870039339462259564344596070938307045663402786298649795337381648721960528145348683598898574945380169822023508114602078096940812622493975995556628885958671094134114124875341700421707563843340428034434296869580445337905865409403178777547918781239571884498587287251321491538602019801013793336621343188606283443841650116778389766590393252017096504720221605981308065542432982574987492373487335764281036176824033592712540953351560933127902132352732750435942677078405046391209795487247743136337005724875049570316273550511561924484205718826690742094113106386594911725131276796595702900394897348619487075958695338740463392945417718274311877267486343199787414628997982802158069674289853077019197542020863612295959912586552497983549228737575691645138071809334624514073491812488221396057496419855573321688962017208966869458758184983188251425126956605600899693249089902479628378358449688800571520142989477782088604670198763533400340592489763139463093137888891068679439818699351171289675410582399006700505756845065236276840497795336539030307862297505655673727968112501071487127821471261791594032105547191047147765397139556011717136249414693821669565315621480565352710276155917266129567807758654132416359828353732665254236813258109201853722355446113625660039224018875710445228817238662631934364630546129345418223222936883947097410516676143027174209792897005420079995061172514642318787365280604846563765115395309914199594012111508271617646520110738160858957625692235672568229141704053020919521012192236495118285703271721404963797066006162866171492109409526018135756864998173736176608682009338773033554805486788637141939437618624231661623913142982602945005648536220756700506815719899482176735249608548066090858233878806364298414296889016199614695893531088961767592684748451371787663532751582985009148070443796930533566563660417151052464343629502620242529057398092502355222931886301794213087510796774636520681579588944436740718145103975118257369745787532356411052210723293170851907313579868628691376880824360799677558039062119133189274561805062796266311833282495246536089642949904798636038121702321149239987100817911996410092468322802775043693009018429442119920467864457718327797943364145402564404985651721046819012569919126755695801708792991341837733620287826230820061920144252554864842289159140422028264935105852414422011891508114277114204813070515781428473821851910034240635869389523370707446416014763192810500904039254030237587136468132690360568479784707954520216091324959263184864702108839653775738593281478065246502311066118393676648912481670989025760004061260535354111300108629839976832178329095950675187180674758769218176441075580935578291826080640303283237911397681457782558220910714304083076813952778127744402716776677198784164784918349571432353444612690033558661961978211942904931848094815540167190195291655845857818144957134556940511662808758818832187714644226295293592486776782831935393575196126559200655832234377622658280973324633272457751290040263509925026322889594006844235428129526192472568698005256843490341727753125564983479289879644754998374027700555360627467609289825749627158135187952353101645691806021092009674281626998036130499819958581675833739416368677149295984369586679156236937876823912016735124227148765963367189115609824313266606270079293420593299843752099920073834443278801419963661878725396783264260263298028385258708245463572662100535353646154528065511304801358020141079292223756136293059885306042343614387494985024199323824564347864414801573408648766449791520612274488826447479858698001041738495523121116930715120573599234495585486447171384019722092041886657655878027410095251932609774982941955974651176243019746271910264480537067716793367693604381381102866752358646846047160894983914617620401152264095018197132098935835249355886836129299817622993545887424286507705692958316589079083042817679706110277160280175940170309003254058554300829991429726289499140145646766461855581923328965143297499661492491689776450839402597320261090777678569620136286302539467490357442821108398595252854451311853829388997426672555568772120904542959149967668389093594112998272430040440130021205047427644099061484470558011285272331289834142118318271820807314117230161557036160136758547283284384309235752662890862524717595567178255420361326929898644440686447032092540211855512232437749386100173128731574409052963082681428108213051876110992000108300894697937881109645255250632081341135786004316998663492206995385772135425940883428886039960760930456865490338164226684636690870408740029833367874692058816596106514400936802094183234668453150929247785825584718709710441146625361075223356331874859875398784672426021151037873318483523475135376413191860654752275072441429379701659060549379143675561345323559814710657535840868905586150622621812198188736309712859259587026013414060979657078487477998949049873440997812011263476491858302435225065478147479651307090506095049114944268378113048907818352015539270150669187331327496385018120911718920855657759720616318420349055354280742059387980342968186108212520477529928206275058125061378064173744251855388468036528857216815180485774550228651730284594260108593912507578847840245232557681196608137490786699134509123008490253225652918186213468652211411261408755083343566199306483109991862221300552095513760286197848377553593494510358933047323790764643750008662320804777068506671506708084660683661665698237822373257356486769228182119385712036024561679668014276764823862059633170313027826682030246030550809674023856018667738214471704224743691059565638525608249199701361410109554660739713596121761304158597566918672299566846276858724048613406898272334211380230383083620918470594801826579486189195573812845597106982720903000601873728886087535925225371740576483239015746875867304308808068956148935119354269715048749387129079631277265312275191132741618097106667267522449254114959749214671135355990762826745319526903373197105718701009455946211089852767349321832123967192625163634317152698666278465854236336703501404363864765005801506157669460679653699153501183389454927099226312741669100702631987994270414611162296600516040705050131402095794855124469811849389872125950098904841587839237569868544627885888708018510223561505859657991773204354122488097653447107462762485213678705539332198645298669993525196629009623905067623476164892247317646202257401058550188806528546557010619693578090913820133459320951800638584114097094252396892874582571698915077574605903330785392152522395830154704403768205672113165579184122891011423014814739714917567982618105894704099457016619523027521338121066532226175905670540870749597659966010075089974804333677592856163935101684542132691740358413730691698449614393706841823517677648038037370180036603240652024063181064010193579408876844384570959469562553496623399447980712531176311377440995624274579543879697944613837853563624247511669149112337290547206258631912604435467643309505179431756039478483873017826725420179320836347456755619052052748514163045235305069166758305693758747645515633404264429211398073466547084383316260220943020470737566792047101120167115233145392866039749687476845812084911103888035946774931303038424805507972491928294416642814346154562049471821790761758216493054523486453403891687612419663327075930125500852153460286149844508183776215008457671489918430592791043760627496768334643922799617422811862822686699996777490748311448401431306843227242540052474964280636610430641230755182986866372543383667363740873027685722227955402764357284537073091329697701279354981780012541887425456309817590671385811284806081149244343003257215800617393798536490954540171580193924933886287981549003907604514104156168201486928742367374966400929778536820167631828985564324093045661499141147368717376228318051155318812472572773806444662761567809601401384724068469653561138489609231045020830756327492773629359086132104168430186276310589650919548862762305176980364221585609608331726985843241655240699094431588127874876614139427018127497151305099302702287571252580355773103259424504334207754143170453761311509795774682777687340380630708695205430956125881310103959977608102779371841787416101146336255999328770358821560401444413884975475438094323989901430331773757642605720087972831797281559953445994961189320481710649627230999552423305608178837417242763460755197786597512643687457165554195363382073037685356389696743531941146185269584774686182325405692461740958342166754915401754794781644988670879351562326549322370725877970307574411422325455134940383830128417322620324526364582060892313663511398002147154864834713459030435230494628400442517855024067002762442096746693992419950223612894129799656442273398553991101687912829971325790601034175346494608437095069235553123405929294021788624248060948513585041995853063005299142935520942483306431527943392937043652940898078366610766260993035989070599610369646633031389462964322130010173194218880282502209283327490845462071827360467957470617654083659984715798497851653370679960375480934257028430119551902395004462595923415136689915332374004472137254270571562387731997355736204812118718246477309311733700230065018219525761186489461852611106660720231885831744155465455473452278616437368475936076311252859850807834611955189278769528051313399612117724832896358731473512285503590752967517306678209565440817953300152402267068951972192049070908941626754946730012651607771093884915321424224314121329059404919047965552080941260516661165976876662486601904684846917506278530967224795465451740305384446896417874343528718719435076456149479406235816747428182192550784599168374667502239115782280970845298507268383411915664927126415284157018545615258921369575507072373457083584376748089894494001964087240413521582068930346585991354662685050023389634018979300537386995848332043966485667654533842874293273921457117297025949134349623533451422201654919264650100448014680144472380380191264859112000085907813126142372134884949259872272847853659108034612247744472108699681918110966163577295624336333868248164692774353248294806612694696811732883213578358348155179196741931186671348165207748178630047688902640007638992151853085486037530500859406719519648787141733728956987658776507325044138592738144347182157585821943247039204206125200792897375032027365075264833542738433065899776594689755473317871842202526101753317586225408286675425732408605530434316411009499310617826940966072738386265680839661583187515435325567913795971288699348261954651409502636071898929851464847769622544470321586522672174536480654009518629655506635364737008041819594341961001124740213460769554601044346944202728261770831345043056725629731204754588198768094066493552939253460131993082264259165918788643721087645688994082760978310763653989399397332702237363801030699636879462658382497490308438782441827839250640787498651117731250702516641847880655340992927438311270290346301048727005128674297894459488412582567942873758284489383894124287972798602540729362157253417675799632731197715240620292672902722443409048516300483169069247639854086864656317749859075374202131681552018246427359111482234840926631552917608234429394871241012259103817328863291011024834364151272086739965602696010102470269413961358826179908075538305148423218493248464536263317445878692232817273593367100467306126705965547749992652966981023067609644008286780049608956397905823984562425334135538425265427051264449478218877947476563137716344291556130165242999130101995216851630807166465795925673286276387350652259440595271105598390030807961022152665060256351563130007787824660134231460670661004954193317455277928879490287043734121928352857122110182981503989622959953371438898810714568807328806788810899719214764838293103470919060258365318090935660665401675464247352803378863297191795816617752233754561709462604683834164065876153779963874198722045908408958327157331806232707504995218016646657034268987518318189758812400393162897778485958893195010158262886384912893074270149004665973874268809788959446667354664177797109209600407839983404234024080699529108566269001266206770738541539635471917374269802299766808764302301619954099494145983979079651647035747055129393680809933746511649604048887550424543660597906912682102806561215804720250316128429576788212480321847169452108452751780645496824356767507744919392384195619621254351678831299767325807988609003549015888369155206517219532771801334246845584521206867490661188935378021528885464218232608638687001035868189960484876226793403785089197386343395242766653332998078391188609399088205078189736073589417439550670885180591178188154505561750618922534048055823164413723102484489570990595033321649345433413572208990718009617542695742984226555635318954830357259793597679403350494392731369710853607863440054461217075930312839322289264108039937535551047188684622065292338371481608713077922400567072445340869039583462238915221681003480982784696690444580798347531091162323327070888721599407258234681332397353900346796845956411491843611681283312835131550274163036558389774671724257972033993527564198596521486319040353511537734265269454063183781103154670808554918086283558777555583119700048463820396379198707210207200122286621063548759371977702051019467543311982558047303272351128488105834834940126131618828194321296187065528289546315199009869046147465037091337484910092800269140432649460404253344632827262904937335389560386490531054218270012969916097530164074724599488735140612963611996051349881794725247564790547883059528774225184127045479153675137610286707215491268265066693129123990550576414655949537813784263264174139277995499273275394605923702349003027190190061233882487738225335353154301356875850593297285915751361860942241656832470576639788564941534483472125574088622230204830425708102438102582892432468352302606934261267257681888456674908116291671531548566299075336243714771130946066007339417530481452634637441482430162792745762508164496301867766100443470992856058691588674582287812598678960424262528957952490881626560867565735897595343091339925522253183253707331870898342582359641710460911708682177994097898766603797566812642478092729289774288777880915468754634234995555703629409758045635735721320683321627855772910212152081658621891208798387922683971339535370669064363862003395398416882637724266967352007783194240817347289565714032696249854784416325089307105524660812625819254208408451453696609008321964846215174846309445937156580842868630008500135670187077034676005654256534512539842982871364375076197645792344386689760028159763815252049599653365650904325498759372443009846427604895720840643227461687840792229816439647670813247585285800698195675585431554575752186484794392463077433722268112915211388675951621771520908351839234964622915966025789155001023843107518851329639937810051466553988978368203523504300441118784072541849617767863528286633702787627474166932439989420508188943275502857499783635696783139746348869024426581127586183917009719045067458638381546981398513559990326858222418456006572358943164729032287346068915118627203288237437414930624307711302648468665179352629032582343329482024539751530948993807789946293325879450788231478985522334030327533600886297007562625093023224076164786969962066938837963028714759174772193413679293451476044826406985985277565895594194390218090226749548830206612652955505977561285164532315948790731092053329873742127002563494524467352613967765403069268813270434344805521205897034123956186663672147915589100165694738373321850409318309106538210275453532731894601419063452151580261051252100779231091993947902387425651130970345859722921396441544105324470158579431957542314952096842304636408573991609161589954703920380129826225579876724685412488431920247800886791983188116509803767538960324023409898747691588638704344979357613034150347346645472990316888534833690159961330576867178404717466057769183824959467429931757349296059134993590445213778060096061112253235791013133089912805512247909491524637653097393110666899058866459300256834653092052156365266688871370854909291980895233532549956673339664439357706627770817822859068248867787643284199397056977484472569223719722186480820573696187998541360209325463380875047278348745911713927559740921544653087585735022058835290428139476949203284492605195190123897560620427212211458920587424826878737277953355041061653817824708465723479245005200199868732289112786236429862662084898899417485370361443037688005188200571013949143278379378744553021454523636866981479845000916194400931063291824274777680541100986124315260810247524430040449645661366256692128073974092684734712121468880134236165980102079950144988325037022454179310192634240055428195362902050035937541700823065295721976029771201898918141540813968043848311484126114864668853129958735915408872293706958845362657461796747799175486445541695500097131236912971151485556692218735558749454312726285874643448980250998880115925982649504773066815630035765117672027918901477231197470431752682587267425147661169316843513422654965516468511477565544462457505162890921864008205810729880658773996679456702539869032764173211310351905262045164810909794686262499628261078736513621348299704889095874473859875624771389076600518575542010196064945645604651387698320250028397085218832119551942019812359264813177542731184464847984974823329115140183302875457755055486811402488895627680263141974752175571379701253306997230488305643612993867061558941279056302248438823790437866659382523789208840231705199142751355934636722479135513212101626574482338490106437688853092202276595046747867864148006880449366567794319470660938832421008087873380970912075148316976974945675859940331089328472285172868430012278036550943969205681389989050200823972586750841751358106105150769351582981021520398846292455836787929984507001966239081116007920354350289895286845664755938192654394389147881182331030485087869076695929471253979639167312198087701374545988758431981060554521305643008231559325195123188074054658513947692939700945453264322134590312150679089541501837311270382719922952188237512114478656270054833773820941559482616746316388263513150428111702597205380993539393241479379728977470633216079167722773661012732815405425006773851630150172303262721451037590590599189787729240107655071398910035118629219709033310856968830944557218355512617268847406056322211983819722563951049811577173718251579348302236551056822020700414580827809793924471832135227523902088001169188217564056956692780057596855161290253728976177953912952894785557755794146093674317620588004158451740397169651656521825565745370283455216887920494768907440518784028752631307155943291516129369964530541569531238898268031000469948850588835428464175534320386178918619124191987880035646117022586222067030564603520273705362628910881321747707416996858562256465430794778540645425699673998231184695277987594566364046535184845208075747743064355831202792286743958541979393621893304651464979194736856957678296137640581575773649211823188089164378113195608905760922713481656329718926402679016553085653361604517166536659590533727825725305673168938736674178474512006758688310148054800488285119194530050138560626698357307293802696479037253267827185908906628655560542798327435141492502275178593698351776592309578384182564929646215907590175526036144403362096956736555667002477532403157274302967974199927518063769856105887438911597008590588202862930559413756749482235469396800059382492322915580983146270862883812502906845938312754910492906650391569109250673265357230768179884990696173526555733927504548982918642973412596408958188168919573177165793295070479807887035718486093216568730297757987866910557618241210519041776639674696890570183378621437966206263641577295450316198179331938569248667861654882818694986252829087536756434085009529664517143159691437136852612912252869926881473893758120950964432664197310296683160510535907614101568580853184653209835390140822909716562464895816420327980618659823216002635884293326663572670513799205258157549998827738028093752248156162732239604999536939783387774543233738544560431782631504402139441715039325966183706064345661651029944388963485380001409243733668989849920331914130959792745058121519425863771936685606289263434814980185258487051953211222936468449272386993854493202118210928594358361448100446656987932000839391338873537760566953630237392378187182072548088949716473597344195602362451490715484649712124663564275142240439952815458431455372287823710779698922186095707164792365049048244048714389436365025971571512434954673777431303330446353558417072230777155578927989948020065573300099210539451732006312897800919151643526782687713814468177910726183523202195087735313641993114274156551631490534644660376603752284339405920577555970040644230373222256981423816634276837610767253625737977480498488618319931549240782236114555867441799269438718287211495435713850401793796022675203330506947416188678389817137346201579883266404277506276298075914368190097903849689587606325280410279393584181154670890896609016712237853776097568381771271418602730836846693371128161666064227622481819205459041892996460216840416991557867651318965028800028811938644319209155995039762936904678748374895434957897050517442952502475940450132426947711908183353250791955422733238523691650293435707955511337127719042117583578397964064990254485375477816208478577598450911702521572440828662801754944264238135205502815517337606077620276056237075056034381356400853147442021096478248753090409820039707853488640834616067653621031392329953853750134667992660010712968034055939430528175759899786036529867740639571995620744734109054259766686484857933399636154632327239483050750485534344291983948057584140541388854052440852021132763158318794053836550960334069547026097583755741072297828081251529261697281318876623057209701386574387638510008594839194813941920035730804504198476365230606425188235066879350992255540328359379211208767798595300630173277183726539359311408698876990742516480595829354691681193943775998718523406459056902014879060940281047585236665411924508737726811484351726800360882986102678918982072609946187695700497268889958533506906834755870071218574412822541601029644930191243255396045969448420317436378415970212851087015563411228091228491554800604231128655503635571739879280568208596197866003983719066205156239986897586110303850088770807846052128396983996277970569626419198480972755432023298342047707933462521604976357331018731235648645362414259916251458421326130566609793365414641407963340763042032014877724844949047164855970428253196193696964803585693798938552640191727828601275605763967150084685184301587240163066734655228612478849826196065275612502583549335643028296480065945762743937345572302914000720648302787162114372302859517092652295671759043958732455649211793865881809381955831061414851202368571521551622225285901378696996320135736548126914941406842471169638283953181094517450165835915764948789429770139891761850824005539414081221319856496902005073035639695925773998258236902425448626395953118372740234317785881807863442429950472797154760435716161156600301436212786121517051710553035526796022112278320699586222415597833794659995630744553074093705300511016586883909966104042427267668800486498468706301995091441796080788447926135992238945962714909150659209129251316527547485763779522828361767103666150748170157530795571285520859195152960713852131667363368945109020740325358224576610785362407892729464802715440208872808467715873030345721175261801724643971547284757648880534160132733620298465820535331737478077077573313300393076366465716865452348812967353360721727857086509871704760963498785462726693390616571806827510943895912522283687772557060263525734379190645496131498947420035794641277432935692028665184214716086812896514115947589528035316675888342772048808949248131407255090980976244353706854077894319544342483268311551680894489664718665187032401981278882964104974120476019255016848355414412150208772258934379630497828660035380008028455158659393326872309282560190054304457349913472549914412534408655914138607399842644813284794168127769266810629141567223582478170409509286713419539024475068315966402160254239800544651445591120837496470026963598099253110389943213281570876891091062858429192418813870458158488981704307732963219460525431867845457648000303188843640525006587783300699166360037451434832682237582178832496505383694111162423471370554371841981213424752415304985604196991967514687482564167178457520116013349122155785020303614002049942661635725885969379596485906574764284613134268216687104560391323858728512098843093256407091600613521191753113546676965413486152053707140312687274929704053177318505637716874589804315440890294583318067233301426513406909177143536540192107409227716336020940484855589495701247834878800540194361804466561580188139677520253840770336170300762476696531208285092767438354614035946774087860320559101764928243679979118098245686178448107385716741900907133596470412608916818780049134648347235507490128815162484958806024778787868359906797444426784963568817100539056502908882943787769591516267623404346783266907995866209372343349909711594449698768463232932022787165385778467387193582597632713602026260991406562889561425363113235287104915803134366865413553880299460714827249079042527451635887488989770053699051556669192976158826341642392849849175516477157702302624747626494935232079907603138640486139275675345889187801939648552926268365225985142669905025571173637714842030505579934382127775126372412666341734018411530625636734073535874919619316881810173636152769901835101094159142499501680218021298176339923780173188162877618787885828890340840419912136180953676292051297899374045307864807176500055729911132424616627047697084906831226454064183886160401449778234751942521310502459025397476419208248207986649865533203947218169657687749626051466265433940666523601146397632106480550873703656165360701181112205484343252534231976177255295629620415871637579063657328374658784705226470122968932639716098821145372248124256701738924081353285553104781658446601151547032292878114738636032128803354962384118582053354386935741245278305158237116696632117421735946007111613341902860549485523618321550658424210495233903892342802042845577210518604665480640727329344428981210551516875544300022500977331122554480085127028838494467187043281141007646904011444408834954506509031986740094234731635933379131390221619642012485105875962354431208431027240181939795763569145341231493153730098459824776170945177178374388729194799515403967908705004940543607871185489915373761624089631699094384446387743181641452687257974797536437359075771701517319474061883769692079723243737615991166917359257857491633146410187997201539187017929858460959674731596066257349095967428116367265540295916466396238327340321063730002538173841330061130720612370558933696457160819822384056022729875557417647714497489899576091793377220243658433656086267099388209648800301244818534117858289901619363126394570318830581270599365336233071001723688430945608924731219650799557592912175864473167018949493038950794453190712045238235244956421849027989576651898348776601260629908519606372764165202146119646154049402821878775202617807550749487542809783651298463196701154437783966748723445477740556818536336951246676920959802577233756665677404864193698601555772435555073472186594070758732008512349870657277725595596310350258268241046378773087892502081718271358022830971112996378764403745757107618027516661344449013349849590916682169359363171287010313840787441326732178803509407766782899959922392803074228620209149980686817754869643252712412125126454523442636556980507895782685256389554571668694721737076431716285220388837537463562868817944952379042369171298576164332106619128232690614066121845357970356814337241712446411699787604729343555295917196101025836456433874590336891625013372539533026588720613933565591934982989245838737897962690929018701040295930263540862788456152871296360489877856619510105727067615083823018160654204923755927924364365119305144104024529198942491677473635165882036813748077692307103915818396079163233556270684382623173601551545412958752053585910904020857752605224694341492480743092722430836530386858252814625582283798024334960595700276272721335499831883054246908818110491725405355943475364625788936124999053082123345603279598668490171926398082859685139788356994593340795691240999399090936641049771510425867403088591434891644510326812128183150816226659487135561345561800336575617648839508192366013651388587832292533511714462358557499904709315522841542489031328641982659302827763260224009353625841527680139260802175562503131543585549167159446255687701534518911103144765866062013777308496593036742836214841586170759449402217664628547461436247146589336970492397657936953970247744338757271183093451361689597822579078459557246061237095719258744916794673967161271387637546816861787071075221790158239619407361086362951337253406432068937237628981528558420497975535527762550715195343426654702329496052092536183345729867075468854749295282119649064647707019835909137693264351206323248284585478702286509536414127391716700751856625476497635799939549601102741713478699995911318114068629659493106586529557125172393285514707033057814460050793180101796047801464388666392962805561021831359949255476574828424156726262410320909606858541400079556364831949326680171990756015089611199425437598497560221352462866806181734404957313437766540089979382848730853924790236034761198228741612327753918662073342880689224462791313467866042554490670335775816644653050841031804494550145032050139481034466476608276101823948780606176461377551668863831902771781371377848580565390907750348887700386319308397101106851931373574116580424784822311447142389873181232012728578001593704335828721002015911885114524562825292407127206677426323830912315020674155305688267930232733967344375940482042456328960207426336874332875927719411025130399114923294847148167302136608600081233439045278181661489176392833586831170189073665323276446769738622243578536398490184072149947383695689600630916049932370736671294931202274133642499464441202709850284414066952234719256243892738447526137228242620395153694923018448325618385534065330417573405025945640728887500871757801908645372298237485696647673790764197133860795068887823833757097970722901742028269363077315729574227403748134321704945241544904058630965550544213066469946401030844525014347904421709784863301651198058985686738013020218691063956011542191412652984412491612960511914891238461143587600787771982199521949198085361244438727769258610284315584762923045330748267475012918243479229825609859131258695181709174087044272057739768070876501942573767451352049626544734375598159566662830219233376463250761407207834112387621870649346820685533701601795655205765831007103974282719006957425587459162384958832804212573397104359057518405295197070268437750246606189048931347582099643976476057952291172842571817528399811720121683270459856435361322886716250649704927666165873387173757232496024400969139670587378387070194623978736153290046494618083654043954596355784324865251039547521412972450014677924891588057300694908925455013866250913973387194292540463425082476714935892645875505614668979934183363304000471653999312622735578620851202415492709464080452934738133047341309254011731214703591141630263147570084752771299248690078926591763927580910822416383457268173934957055632632762187799015697952071054118711448824498416343752338260125672510090287328513563643746121227774243661486795620982897630589956401002423958700994817439318393120332082611231821821213498284568164973497932578213633488128882499779258253708519062059713511687690210958742384950580755751027343776879391748176680015526432522045050872905863844075026894812604639112769204761897800108866702360684377090044603582141723150935580541820672866592242386431509869515130521597965071542917614502940235869598493453684600780725988672258575156254485566649562474623961245124392530785344085169203969115693523922670397478993640670583471183573415251306664367423568734554698169628920658182915516474060894742271391284461037176642082899759069265728490457131193206269222740994130463428559875073921694521928324132201369829301412041794889803307291598678784362230669090458239096848306951891602330608875773484328905538163610777537324431154410818095890039054117658966982826979835549992249581336494261099280437037225150620978204185628173822912121438947038604662180815712179863473985331387603799823255972443238372894801166961935806837036487844059565030187660570961573666941465175834120581541139764818216545032930757274222438465299735556548051204014134597731431976017174337048069503974431947349530328344307052614962456606093883178282882213750356602214959895617276712891022288463861537454763414280077048806402543052077315795748526444488918244582730494852779065608618683348964589807265444740370780933808276116125003054563112233310354805496635757506568303264472890239880278939278367202822126036242357177795122622215744211801294333396083827098507908765199878295464830948364122901575071034312891543396846006577091841611384153453496691463815260172520816743290609413404046246306516806588514917311387533029068682375808824978292034465377163381695891293512211402506196590450801106128791024597347700228362396031358712608287316474562000239441154729763502561807800442035038081448683862196227776911286097759359484034725453862341791517193109539751375435833015987617461900050094774372778927748787746914548765890250888929695036566597953149061898904528071426291635445254595910617419978595580390530780024120524610455972194115018932917492852186419095622111006405730174322524834419327237228042147236243990310315164041904649595504239636933865644947497173292013608516104409174565185756924202139111966157784222984577779025570200876536794100450983708966043151929542324888332331592966651180423868164737016422102109965093332079984904392932259514351860266433157789114798773193012593517459198919560960178080700532470591328735898985690163199719177781147030236716081298847142283479615632763034896011350215540940835177622066372144907433181177513731434126409858147074736067845568462350729602035326808406845219466802547676043196703460465556555125073680361207401475655539289652243068587859546316753804484075064459596780614457262920002631769425081212984159846074284551277383346281495859209788962403988508346416141640068942163690385610379702204246754805635633448733856369503348965815188343394802885455008714371846160643009970007415203288177149412951032583716454940232315458118940125587505711247549025892511778433750493089470735693045548740469432523687400089114831969960850258070838744263536977189419581097258325540722839620967500895473705314272344511231115273075687943780983283108640438120481829591374295556426414084950447678125088229298103202559484158527548898341905759922102284536083047932923233097940794055993854471873306779892971755506379340570150505760570258058247885918305864045211555927925151807849441295608706148913792285014278347348472398947235870683754739464305009413398221825282482226845302433883241577814683224649464641504663921783636683042776702630036038910048005838324022863800514038319381629909676596970104500547390925961749634068195080960316977216425214503298472044960405152316634750414810715717912492870554825769815588050562456360764982243131918777427061118034640653414883760127811290642144418204414250118559537307635150067247270103873425457386756891870692437376834500240536702227089700254323073406885689367524759391600156687139907661262553009108435199964108551981486480435216003751844169377244786393473958989366866680625396852169965239039830775586357440892926974301916534307710758566244620773041968975345334441172130604984956610459170728593019748248519187239571932862630407719235704605507593603024149954867816326366408867016739733001984237267920609323804962867694080335676069524548515657692644749796619829281718593176471586396448446661500037384212422024046120014331870903805939412676511145618224583883768982409535037402669865647496689657104851486614835884906352393549605337768908578681205075765367496377462122413554505393955987108737109616653750561509829829215591598319823373606335865668818507023913455780938051580385493281567097244411654511009978373510664457703890875661995740928636318018991356050009884213994406479122810916916564327316199124451570839883467139767110942569158815053604302055612996349212151035525581777031252779289768024458888960406028255542387422782280569611981840818906421523303891919526141931525741008453983194329449746691603001146827449300308829125221118120037586766480280442931828121481638024190211743738699603150072564639216762293019346247247930021232353803760304274653166312028773810689597817252974081481054083983861878613718094972045993333767976276212023932407692277786845113491641314290577485319339078265497199487677745908004056626526895756464648265023661801897182694457333241893186569776557991381199534950957833799246508114945166482837744312525654202636490112950837707603276025386481131732050352634375175877177621612735306490255053042863792990016984256494144112041196130700294081931209949484648000119541418002794065070052640670642571514905744596317561403356567004844026557497939385502916445640747632937991022207140025292726226827262106170157593094768120949834797337815231550125945354990234601407000941247857974976020556990440892734957617603288962974205826713195272861587801737907072152353372512572646937084184694084504288425097389367369191068668634378705142853122250305483366104107265227538481096809260591847701022778065912442934932330148123735801797475233377870888002551775520931741115658921752867546427345205705213766595497571134520704129656198596534880444224618095497279073149304303898242389456535922918790385365624024802653711741552320154235319879592204007605435748031820081487484253225178853471893568545642377740508433190349367577753083140764305468265334325090770952301549552487140227505212166455482713341545671142951864307003101655238973699363919575657538480833731672906876751827546587174271485415202173759606307632228508593939160021338649789516492571829977803569370143551232452788606684688586785652126964116194858220822156700679076056698524108040450352116097538120248777412066046848978658440486638075639819664793336068191749953182921121468633795752616409503812601324737165820537617671993622198694108861423450568113120124620762712904822850847871129865208236529505056198305320989526544776006068188398284105082191422096260905092405275873664854589508455081010576838274244204397914779842253999247219640999167393935769623931619049912085756201166756084090256029722210535288209891733272277598439593028484376830806012799753367886482781802174439131408799068997416636151846650284209168643535091851113799940924796210492786472416595811323863474492450889377377897515258135469472990292200863140243888687705148604080850646785898596774923256339138155376543035810853752507436522764465168412788538963794227483792853575411529889706839252914884868221260416354783780556788077638352800604161942198077869529131512240097392474369413566521727134695748805632800107042544082339454381299970625930308460345354469697499521202578215692255204042904938668125776591301913585420665670233111088961346340394390811976648831614731512145795545666241026271748122201805598438927797811026217191789747447010219363707313808702952173306203511006373518141103676796101539782910717474715166047612730337378881252318048128714484861966969259385942063592864939643600919007480800441705698102967088864309647491689594625262959998752933735287011256482706895917357267204528558654675415026620256779569090170205833149680672695020009935631376108665232374628627544616769262140912137535335324698587661434353116371719140621505513238130741795175529613062604019999668777292709111342045720048660694559532343079475085269866104425277782967662933859970336126422324845081974225038680477086294029247151914398555536007028367152428215416154099937288896154012924302414915641503695375726207575689848526182908943996620110757457478821195773042689170554398329246066044797155078430702649756503257219026441095454128439935223333150107510063756783445598820706542643706391824477783323685742981832476225181146362963457481953026600230319167333383136478732702156893315853324806392278460096280463373275851645769902298690997162469666564853054254612844098540834889878454377239614414367686378418234726544596313707593209549015455573112041885682122890274645705050482534730852879714578353740941920307620679042066498467714672802161797316840179555022120700896872253596524386220453307193298862677659369630581366135491019379846424823666501354787664694172490361345054254524686556102010009392802764592860083354587175189854312552416137881052731550192708465654399119641747773996209220460591096686703784308804652869462120889279659023759479025242817221289736295295400449794530001798672056434011609815065348216320970662525910684524323258431975123544506640140496334986573574636484642036640492632560523481639485045744729019950622626016892997548200702861721813505185166309075324949128019572007731420124199204343719946522574754592228493910888515986103042660145841154803829109765146006310599608070179239031353073492356986394976055411446620470359639763579646784474523182413615189009248409680666171536562684221590268773811784675602736200952007254645150627548448710820522504106284635436654323069553219533980079842171072837844454740595299980481347866978317540942062893852141008737314424356580719308785787460256704822249177031229735585740387030302984788721595408032656995566063641705961833628373319618199379960577707916701078411601268862626668036316877341554231451092912680101595307699010855159378835297339767757533491297078805842501008552462529011389069719167119327407640428788284910939403598779424610065970564519868593079151666496557905586063621819863643353897828832824628977335833124545643388416730766986688909777702499114736671758652728446953585910478207127765046559108093554317901020564975316568973708095518695266179524148403507339494265163361196831146310091691482076023682734943470920742593065961345380841278761359570159473931325703583606956356011805720725020728492009544432861106724038134494081169671345721709066346463385420725473144441515335210993610628741330133956137255225794029749391255730862770786542790606392844655192546015344582611204606846749393295074769918159118531256484498063070718060684144501557930039441185715829310683064247941208739277184305855882602322562803824577054506669117888960972212111296972128771382867258715012944580638077404205321937226639362313342532484210907846135969763981352136433187934221855486009198896004003744080845061132616382178647405287257420697169100863312824466055344076551505880238123144954942929796704782003068184006698486114458064220595934271609430267374729209586609330228044017035287968700194786973200833940561316700523873882952910251525658371747238806296076722867505008687723591736049021790614198520128382414101369291277976055091137078733045678098410604581407629384737181493789739693914569261849555867809953307362381819401834326062791709918256781397777235482971507137831849980171622440850734743569923478806333852226152396169344547982503376862036181828695239458992526710346933868025999790675246371008068974237827072418111147610458585598843685560592489998262652899042015386605147640683139224524070162991834921971796094087892575854236919345883073092814828280138939523922205784444522934199750266616642585370025667026576850195998303867480144429269846390562420619226741561052365634666850429869837712933421322772733934520206448477937829915035615480887939007755206194329982281991222527590291536325804565859460298774643867403734419341031719135920627591422798414041185666830120205920924255030842483615596787109022088761443509206421449759794581443952194565726158508093850388006559018959941094187175999595653063946970418320637974523313868302162723816922196531260684388505227727601467981486309948625353856374310759470795720251930797719347286103832539255686308760695799727359261169530366432110557803870271578043081567744849505045611472543482996451343932532811539481715106644731625498275032524075382145715147905126319046408423602604494666398459562836744311470768253489524906881993909477569386480409015979516698126100539355218506506642423826253245560011916746075605636781700455418302201973243008005805337850817501543102546867249306448725284956766846887647163337057895307090072647158560670758088573121777196799919977047501898100462224184151036808683211438783484761602078983573085102323554261193192083558746297074080884181182787465819405638645077535981529745962649731945415965834695613954916585799810681437662075128491961976094215575121331939025952226004212996403962875045564623246964120745085554195203561345971214913019764962998753196302859113844545838927340362382723439592070292161019491037807297052071884081015233243884031886420452786260601220377933616259896493002533377792433842021026497531873239719429948899127817385525723284762531120332526550608151577252778770037175363642621891284729937024974563007268961558064454645595620311858299632008952152704736954729839646427811210879851407529757180048932058715043066036328848476818855451457041942488411249455950532116213995361232906023050570428422588388041227569833403655748380920822567408931631234992258867255774406357321765945740209831674444698402058929080871088368548301545188603856186831372967902586663654598744437934164646449139226311898473426631261193740441151128210976782224581508728089387249432916410202179403679014590208330406654607189150736899797904210647300683022454380684822970095184277563951678243636734213566411810722179134765833564768250822168790935536700389813137050617283542491518051135877496353879398612770439362541489051801112985888426595271012529584491112179786136564777829599401224731594947623311551612710512996393362162261035939575488350475348297694411471832533800132467862001223625561228440336459664830152435843225096933451414012488330423107589324031357432731657056215239311008469027590667225671566480789237735992216285715493219536575789826572842221939491227069921611572083189479337543118427268726138817592287178094215386940326603510828814681622681916350324816801134900071007834502360272025520449977373640244163291217156123399727879950400073857944110618484664170887533024739078562693123793936922846662977778221570596998208726423502138093611115971845132398674766502682195663397214307087405487409777228807562682415372389370807882209146519846488876092631483903825228669787918509122877774873956457071010798116676402845458626398404320233151101293829350833676935128614581633731940138471847379425031902803588145475914361922351937478384562889631885275030465210818920620709814927822949606106670465262586602750675889500200568988591525444943250272034285865608780594697658034334455259049108153664351776348936402661322500300592434168920750953770603090516896957075194836780685018947424900536152399917474396778464508257606064616988210385217544035017533546260452456863606779525326481593248484016873752775896101043745014113066685771612247444440103519078068679813136419054719485673030564756524595981866906072026606257901141443494255137757084916062133172702565261542686575987757709924375332317748559347149567179468149400026587736130645547595302944498472873103804648365390120649805276258837296112622707180743509526344891861542091568150620986854021456861305478560348741535236956213930117690334399740988033506527078486076020010414931213599280705312295090769616154326769113380537133288598292888885696567328177295237410108453738428740641793522295432199184811756763050712672068570476155444901599540589537526523816954642390859816897588588682868055926868053254649800245849996374550888904072007385607582649988060163955494306214782562239688099961385740735074007212801366218284814825121468681885993373580415181675185956620594334609524732114807181236437214683944487447212013227139925581056662216134080081621802327579807149118185082872692886263417162644976233243419974691881595747194329344977448476221524549759182484220239632635221145006714925831014892877417085657305759579896887918808808903183330279421713961981975022689323016768622048189316100540134351410236938503203775307187201094432736390273762668363220686811385017520063620021733863345572970908698202417279456155941801952862412866607925785567820586939062861923592838003012716909101622369403869271883750889904511249446776619190357704103764806290298657145411217351273057716848752476517217262713763870210870512413952234477125873472902905688842371422138347386509466525944188055835215149395678135000427271206176980934235108221258307297547031650230777885861678820345898249661700841318605649120070995176935346840826010803175874790938626758665455176113517902224523707329357734906429590734975349637333671097884324515962602285245525022003683772771944597893698613749149777987517717474196319982171496720431745698072859123687113826926629451515039349209235778536130068825230721539284861482712979276219913193650903355107824381082312832111168924682042788967394212648515887176958878933480038230866171248065010802213875056777685103609301803291447974801654145511323408557736476007227318505817427535565482192915131369698819239841917599930708035765018943413540378053387683779107178275438019807758103769061260783558887919412133753080103741785667973936455680452429709977891983972670518335499318531260143417426450391960099101582988032069502659181300031042291757314047787454475793009432774411145559209056194112852034628570743138259230913179745901177562624579802120273340340803517242292043976555474304239015148786884523164581768056115104643971264505017989351401473656480531297750391626658987916343777008339755390790667074942706354654910250381601908878269684370879665609186232095560044946484589338840242715078884126561530052335545991820954354586393483358344742734964318507139821887157942790055969118967282139952226365097030219578755138334168317223189032036593994115320212226038132065821280853600759339684757322811753952534180954555360778751235624942714362362479677688051539212271410892828563718170819985065794775622110183044210798008159729603135876531058865157091958173448863163335966353181607511640303141464422680524403000937840113514155110996221357758507292779134923762151539427614971339264458234357685909514044486529496663771124497057778287936507120947871077303211015358462465516858600540693684534893351749176137751684537374016172006421515161029202946683554702343048550716249892203442989244894238094228277467322693775498804124019682747356579776828951557204485187284410636519739889651669682673193160780826950097564912294209642512346249443914977227646621199717676410962339184930060599791310985623508415103148799461700868229593242852392079995261119446210858729622031679218289611300761980313545054263521951651408627912045193741924102198665736317034279181142861824910821446223456056156377058594776913574646009972934207331080413933877676025920368822850169090326410988436225701816950328683331150259456348031463553887851796852658175073046780916958157075341951093680155407833861659896153516165895202938915790065781199596000179733256078514045023707690782740467413180403196284963950836297271028109067392939220217185983030169033168775402642460215223860133327468507960165717995775046527472048954155967954089328379468306901315807058704168735990074575724683673829827918346251265640887362762516794588370315407542109659165333476327283067693576035523109566724644666585405621488516701515891156196653284102163501574609907632503761891609761958984573302054464438020536231042058903614058666632903861372822973542273743070339222121881107819935349024815124128366069749633066582728998040588026074052356412253534370348796354020697177080078362394242288521865064186615497438760780216130958522781872147996462345518606639139034376573675240667131035345708932433165221402673593330025447630962287254768779350644832669836929724909800723605807035913449708417947374809438760288481782479559556723785916068947676303356553303254434579635979255133257831788532745589677219059972360546421447941949776774999354954309895501040767649577122539230809627685548303260892898165929854401027397994895721917563200686318517704607123228871567191488258833272160529474820858174068667482238595923204983629278353766659176226855657053867195714458021754406028535587845729592464613366849935965673122090909819358929294840191296143430322358219473864538832048160400287090347925474242422558064123375552812818314039255830241556891980307216095038345986070233692901844258163943750207628895915527884815425434401393401397494527616233529846416888246252015845944484426406568251920006729051369988714928548050934891415298121376290944706215750225797655391304991313686022326643725290140740856807731752090707537459223284051396563492150589686068896097994092783371427547527042463508786311306894452144668984760943871278303996602008303810555116411544679459588294674282192076110791484921915115671530521437464530036518650562845698890809414853537731672082031539282483704513851222558023759188267546122095502562013837845228717840538061626868407147560074674431100015557311631471373863946842621506077315383920621942176274759469108053270848456331171395091073885062701879409470282920366407192348328282545951294362064122541460039554566901375752696576301640585619539417996912248999174480111768070628327562390199264050940873508161483713498123123830802013425052692317688290874662623733150833693807324753342964739950145632792976527701715311983439981316775333595896994307354367264313069613765514154949785406334924928542258895969309635093174500604193838079417314056161046677670474929567805451150852794454069344022570980899979916929448604733016337912179314971770261639587452904295079485807033077786953135064629473122050864165850369410887499687392218612045710282510351991500096619836037504475840560356431414762003768680062399130529370548672967324339433703189844707274667958503486344875854866514216481886655975020404104451005491980148479304388694196768493464736751942481064199773894884912236949639715055392933608868450942149104083634370060359974635237818055131137858949641026813327930255130206090932006298909225687541965398481717422846481509773332041740859545212564096039577360479089689734215292604037053262208366064591144349128102373714644564105994356804588945874445734205087534945902286861465310941462520264632796792282080939748738335143223627258688449461012446815612110672871002508624872881511384777562637625227572302962506337878165677195366332001111402516925626466713512660016768914021150604887003798048700355068807662449928408415226470094780490907779626880346430769704760994566254919691081253505847880254575260781161122850058834911526981864199016557686095042168087169015279234501344826150183070619976111602531640031880826331923026455922782651647880632725290432237895947566187071159860376088469852685465140269189666371461605631389369216100405419278814777483881532864703210954502767714775222120373343054708915120424805891664917731203088455322203489109069272834081614389257282006241565259634749324339442580580875761287777574941648289644247404158605374681654157867396244045164160217072665874983304118076887281678113488515518448672929859827992230036047581260200305634364971708057148846836402757339473122237904545758271883084084036657146508074634273353249492549082967122417696740276166380610532424777146494967698618016785167587155012613359632841626302925155754857501975614994807464349545802467708721203096821652584747382353490594775534013796300768160188366332790806920678992148782595194269970850084521296734180583278407113207227025509671682163707221401588468023559732696168866893218711725665757434514703353599832799194548664655397532378655977235836486205911364200790941853757011098294788526014807169206638557997793928973806476834363495425383114315777407575713577802400547991551230319287159856774623386915852372332783188686594094437535608413424124920368055770593444536892379955742455787040381699297851458190657531570521407841275408734414009846455694198370462141488835108052398297552246526988048514049839934468452846480606537005583930569772466981180513486592697826307121038972071538791807977425762299941627733933131683090574136928268625225721751605271444236070656031888894581857493632050988279253037046042681094515110467979490798225327566052869480990129782939571051391290923439959438217722343901913733914529970142005199115435270562410278184311412891595969834476411683708788942183031686852754402620401711581443998402654317034436724146357039618330446638655247546388785383810616465766488625111374615420232237867691105392440288620508411526005483553079774750702890596805411756136377008080682432352598695735787149662796894324008901776041997968020693500782046461109549754924579325719042475355479187029008001704479909046933793657362865890426396986171192752467284224912702743131079659582699601021796432988005754454233226822466679496247738602137712648117001800789422768134529353059545400494900234866402919137205853780173514845349237857137722481844800821253269275866751455038813279233873175925886837016637984968445343837472281879967670385750859780507524286327447299763294653185412138123335539679174418698118980311258514150322559986024728989090099543438993943187317003478319900227820023726497135297964333298137148476245919706610197675991831911927090326610464353415009485909961496591127402416132006915592016935212716598775953177924167951346662224010180989966605266467046898511268466097745766440781322858150172071466209094855917673472818293268626386614125808281865020803862630084879927914795775181008359606412315433645488244784916855331176962671524277932217666241882719604496380940280676094618247075564026084905888643633710323298543832652409024148151710980146030389475843603515673650788727887153221398453451577430502109138021107157002574142540639638076656632742663326649982641773874877003353481051379728486493200797707346221884914167644787771361635671132409157991291350863689776137744883679091299315675882483500415149824475532846725300663167414481533305619631285917441341978782033178456068691704702365218751776926738861518328625397542412927641203537884940835854179470107919199298900815070372050172548852801337223330758017892285451464006233982757477400405706654686440732058884685170819505566945187523162218250033677817168930299006745065795710558625250890838615029821285416220126224682133699828154669450176536051890516039367031087587785638161988702971833291704041543988285490186883577104407192381467613320627813554784141674693197329224024452053441661550885165321962305439044797192838938879361316008496721029441531952583595318015203504440283966935765322833638681531415881496339259183391402150558931450370711894318722328011221801717583277194573788366917970840456717835258701587593844318154862603353017056397699771452991685614400338768456198860303079226818433243299850252545112733120980461816980223017041210249823217671044517357637190312111134669104992408220041751668235204448287493424467472628334900426590156370062385843189139803299916822761184254006444021838873722822679014906895430084990394613327405324789832853280841661417518429397587930190793678840191107918465741266452037701369375763003105750501110086683731096311526815122915686967066456817422590761976296631832888175742070103547573416529620928236053824445533937555613310204108475401121020179130436611594418357367684962235337248843469685607224461329375143526242257770306054022192164819938988452304976793570361188649781836152744756332261900000022576619387803237899552760702701521302209474164525609077024023096019972790230595689280063365997102175915499101958702438434374105123937883726857623989307476380248496180949738754611363976212369652154272870525872608348377853117821131381171284528894163016775808634994271934497757263517589360882168416811186960617161903526075520786661931685935287895336666674294339907077666526065441533594674832463013756037165671477433157058830990370731617045756329526278793759630141099690441176534515720183884930441555920588633335277210076569517319666421714305132794110620766525126339792440299626812935263063458765613235089468431372591865328138264595666291803692256807738224043972743366852344617745483058939285150536520048729201139688754647256558823199827133159963166796179299973520684277174996972924463410127298236866591306848954355261850800135644080404240313574915937256917770773021486151873574190358579648160111176458255219017670752265422572136980068201896427289677977956884469457852057050979796800574440932407703990193897972842190659067243986157339190126905588086650820986895766291663387589311746158083662887341369991992269951799786630491579721763766843916227567498395671525807598356146219241115109576664880059539077883272915672772527487627709379460264646342147310487047907403827136929906080326941434149790434202690480202983037019153247036530177812025400195734087424784252371946004464809452820736654956250031906999604844610598886052222972067677699114186316081604994223882116739018576017380889697427055974788795800772361304078959178316097429070587984529024986161063240343277022597690720625389635096352804349414246519366327685298736087261578502376850115064376434801098957227584926426232160719402484065375573822246394241535396499631369862877466983491021141095664771594471162145060876096284456880270055006140517816992098190059362568031391917837496350566558561458892468169247559358702137271487973180269806520270727967265785144696267103424800254357929960798215219619237435764262489439431613420657042970117334854647169401275827816987138766089445776699388957267321035496284834763876463332708581831080864249012603084688614305438419158043783246286042808994762971224708292181937059490806456119306279633911705920554256404964431063435207124920652366331154564335498854657596159215015704035837633489172646096167019033793915946389893856965136610558345658125613529562425661787918468522700231406201959618330361039218026036847093021562814632442417847731383102854312049751226752990514354310652227723048196493431058743229912998762052415957714641794537594983738106397307293734063986495299410205917946896287288806526147257104940047862307768411432111318014329650996178395970607692982138675255309442960575044896104973830615089276692558598690703798259992509647696148762455205568266419797661380940516974388428441306494966458412042325348660750244081882556438674490180709144243418601822783858731245078668284022209784512472172101379978365295140011124200557931930609960710968460577517183632948792341014839769989860476413764545741897823856357416165935414155101537441523497878792030754233952220316733507061271692534283464593679160871649665446557044001170729892920849147046264361512853899836843066333477063252597103984118627940292273196834294031446110372102405839941821372148984724378221785817790380913206597620669266770635990585451232213674978015967988094849005600923008640908580019904344245796392167923071855428101728751651593973018135347053567828449658058792327805586880046888517063219462600686097079208278153266278990310966019993747082533609165208666192791636245859168638475487858878004710824005759497401815459180929735904096115438965056191036980144906643151911061380585876605284622006325627923214389836193332548975906249911866674054395395543070200280880800005706445565857100408550934176585932352553743432045721778903325123385881882630864532869760770543746924315447151567353544980153933163156798705074726319783685748707088236782509118366627130194545164948326091213312772936717552928367429008479800288928880241967108407049975467577139708061230105498764759724134727168925971531289192467791436447301388669376953789139190227943284830812558582654005179547076855183234698683515220512127036240771962690422881944159272458987207343558617259021491074090029671695502540255898613270069894986049173646105353357102137499200490781948289024379896089239304677868037841650267588995033240252980705633423932784459406636309748702348186159791503199086051552780285218992677517856874044272855759917101908072777479834394118775654527872335404453521567818790207096766270808575009905923027854459674214591527647953260327867349470535335913428451636041183950674055509708292478683544087536654721115612114369277336698978562577164429118397920336297408713334167420217178385731413378245726105265157440823521123187441909154541149190687278860921903441331805312048690898216912151511683954115897407525577616553776801598596937056050026591963215079514270963387012794455784366768188583078763598112554667515937113867145234259574974432262523552986724263856212350788696780827927045573999318013933646510717554252363142157509450737097275481707588075603726071796192399829969215579627071217782358241265796295678622339287743876337372624134590388414495082656851610454214785091847779308343062661527649679903179060491309349687429020972228434685199443699153639101292152484320830475534867967668473732002499602090464516316513303412127142835233788769946488528300975052092716947475875199973501727740320058562851751208238277105541270808186314113329688232157711304061043430452973059152469750195277300738548972682084684118918225362182109320182472204545248954155393698711773848649424550374004050045825953871799494391336723468280048882576468419917705261274581870955988040362791874558138960737672729421782535692294683498848885053625043524837745558923379080888081005200543280648673019912414582230143523756855799368653833067861258217186809167852797383489785310155235387919210920430676335921077266961405990981171768855674969610781249627006880579707642107506419699286663991214518008412957004209206807963911835229583313126327271239881965202684047396337451257648710747491288680304443891136474850463631487541303619346692619477118913947104366730162015751813609966400554172937288477161235128749096804247971795231678631949234000185284021966294092711437277068910987145685409981300121336792140504399762897290669550377180211301897568134995775596174760528738762718553718467047992104791828711544512852802703349227554323267232858382925812330962736831492413086558450036006786026519629474725706364011228904731295985795483018186157588234211902844219861468931748702087464668393471752054558651757550618414148196510184856956193611653877284510151048152614451945950522276768460774613366300852062399985678716466957127879386508711666392902171703718123082084973610712475549356418513832949155573636239992937376279874256072761170719867465911664934606061408543326897871261782617275434773148053942100929265995064661254300035959859825054947053544332173515189907789478078210539750331868513949226532002007684882802106585362182977703217767121555510034848172175258462223493499074819430873236066872136936102716530230686035558538055629071644772534904179841221400848832046180830133152124191591689793269469449004536193680305211590598136626311573141045606111439917353142312566107702293450524251569019631579307252748522909993622751070453441866519257283890305489398201682582208902904313815035899020361245544542819197809615105315805589658903470047238226965027557538418894171140433945661459082296274470501176386371825932472525967228323440183676114975428280132118307197946682632023399827838856674695171255882100746554684938381711092051432577569395982798573107640525196955298223072545173866004090676955311103647219177289255048249436222507734993580394599342940843004060508521429882133216817733834485817338388649446927983291336069336544337138215625429644689318090323315996370928605176517675326293145775625878595468117206410961743767410446252145080263982093941760065072078232706320173788748268966284369057984135873796908314587684786137976165775032660833210209865196163022096884261653060131819025697926354619996155414279586351671993365285624339939655503964931631501950150028735797963529740695267415008318559332904105536180077829548878111473611064478009871759976295748724244619136560069449512256229201006331110160863273893695118280830845716679476706555191602164437594853637037630711543493414603739025910646771538853985806767911177758264999833513050246663304576100770119996064797920553598896700379662928716580945352115770265942424540731457132991676103419438544823739043726652634419896587105400036965171198246757763505442112166781746152398822801555148417269458741441187833471465642000236562453824837435783003976690835456202020090964555461261398066282479957719519234004882531958668534143424302994774788954836699952240128598943428636511400115021269161033379407534308129240175935884970681902632110871941612989397228119638369692925586402291520321090456262580034309365887688151159994358452842236327707138806856164986531806514189711380735050538368416022399147232567670861568234701872955777190153707121237987952545187452902132799625222078806828612711625366619268686529156032459314060110069021506680202560886371035271298494290712565000607103045060694324609730304505201752320301087119666098967632241249360132327104758055898567225162001105393591305904159798043157526493863934820360311407247843207316764222906683560394004259310344411736628996478551127171625430750505317039489085330212089883190224865542255718319371741061860395214109226248325912965416462596456987291554384885627142353137708650589382393441283255090297533310157744452039242334729513775687723341275812558047316812989741033137599849809083971713872805093896571289667188087665025902112604469090109535936565137631834954208235424214189456179163017591392083767646825290599023475672045794968484484528137154666270304624875398269401182693586769087310536462547877529736140790674097718038193137783135824941715173646643562877022496345582577049115193183486239332384162354367863571062408995518387060697960760713629467604050793589264573506157031059235061863402757606764143354015609674726239803000147729704589172419554026545150383942642236314081860537574677531910418845438994044769049002114483204120299954665652240326917167819239054336622098746561162018625499959135221695037909335802013048475343167982961323592784304808120084724103103434348672228563259911425374940338880687698875439950513778229930727613714090542441569902068409549688169993440569127375531292556457134358497935370802697207977352160002366791653076015908009761643293886249133895953076440367119580181749821960034374425000355209021984668338435749061207667921814291976693325250516662684821205298341773295383520990654878126333989642354789998243885574621654985251935838104750419190348419261465266004613970062451350382849792968699115830297854826840999971207677849320814189368975149791669375703703292262096093229952152016867599618026631450615268002303962032574747644263736855315585562645278977006253713491900898123987534226931206391691474293880647380907361763284740100027444409718717663746278471274889796508789142173335477722612435808878312984731353556886189845226789784433431153953483038156511105695273218371576066787740580218354246057374388203208973967854904791609994800564401354176292464865555656477263998880521118673381693241848506427965614007355813609186190719336821229330401751688278758498559530122107291390040618287022055573155894017106212806033630723677184527800363196209986711803056548453305676819850708048541360716107666236857363662991848918305207243335292230224166861866843825635694153752150184161245126824121203213277536775506303237771050172614194197135524182440427998650641995435135622913144340422476146118442345571912290157725573810738658763168578018250739588127433329727479544043858156921643878454100021674420723681440691329577319457304855257026431177671201609098542352074513527580964644211781783961906577255400917882479147291997850057067114495986646330054092965302496588945527185635810656012043426150413198048509284218216972320237739631231858261006028466155176966415468914141194063755535887903867721764147149980968296229020847868963249685141999262064394216358603845154722619297503222280804369176985259991975085009610523650997705849560839808126205002734203336670326782586231834295463162461419573104585356033547595795550240224940543064852096235120856699009732166094048473145333648579380111054702963018647966327102652875984065884734818410757378179187608329573702158828974289546038533787963805390350966376953716587761395450913036751481090681657180309923275424316019333514447016034714390267063054013562206534269888471083577599198081914927138521715616307219166141270589609367611373478673990027389966145895496449282508462211459720229005713919746365680284591484138307505586872879875867758048977704211676163355890368819464854305797267845402517303221871090623624497355124036010298242510337257654370205880574714798973003615002837881104450336070492519569880914574845631365104537288583509270271873885762515786268490918170271449366428029955345887331945827276485148196829972552281257529112737412488386044681764832019940008698161939487847149864603660679346258698114046297456456257859252349469708216278528978755695970032176451317889118660657375731488446056337566589814722573945259203637895050997126935142267392115055463646882651198910501940910136617169370379150680258150664358744775569922263925613163208357618305936237460208026867389540676817956428130280675245021496267570492060271583946901824354068313276317224644975488687050723867762673143949117114710895341488941010423436572871578014834764161033711965517034222761824889166302730765975113121948032355777426337710404642666833899426772090245120216016564529467665854718772320914787559621637065936427784297662841605911344279578601384171265067929363336601062664834100739762584209726466803163324116658313999011368597955243298490814223715585775272505074250913936038966224641284095795538028736473157567479739025809814863020805947520970498042056893791654297256606164237451479472328219383382708903221723664766131774989141411936336773740703968840665880553645320496209563182065431022994153615749989457840484969371855836313367710964881159166238674420118196929459065056172134036662329440955920799644583981764409389163439325861054403648365441910318959619616160289098189222204773878687129239487055827889822498503302243391621189942794910184697119055079001627650977970874446685777506773047040516849934124673414547474308484747917735394716571682363987134822938270485588980778330813750959599978424749825172678639593746940671962455943902672131756863939396407120542961098615042846973448153538206281004221921542322586177144648932419784145571762754921868707352264524091497101043189510581945551724087257805999399418151196048926570131912138852658377928258650878483860017151324672171212807634178246038496696091340118043968520077910775544914830011728461086202546748822501640399988286641582906128758195254751143759110871049795365311140630722897633873339393137455596384431346472915069067682322569612131602718426501924602659470748702335490824324382611451473030369127537407442296413573036894867759082591763965980073282093524602328538538132713116417776085035778897249973359027739638293018707145719685891740952334571807153506047822277619122145354698004288232361867294884718267749763670239094820896684840795579527046145458306543505572075700880276076523659756415236684342366176195096315371817078708597297309680154771484879418478557145084014459728554896276037954185946685906626936147230548384839028269357973852570321623546047809847730723156977749788189691163534444934257066401977034742246131319188826772877237231043798539961069753111935400919398165866904917862676972754550655304241230879961328547038299941368613078655232572524174334433171346766393865292037950810196319715092988229895481431018299901183255510730431826326544499016558342073157641603957704023543582323298693468791170284339018988084281770709989758442877212621872637687508236528013874201559491350108512380320150225333011295309254897485422496898455896190886552402538606247216924852397221858941497695162144366192981407548062969133941377765037893740794795282413793870840603536511255754325022749959393466503204282759515477045537845386781544548344681097407358679120336701854579691360068214745275034422367632690904634948023201159161046181852050033891941089162753735886261926389170407703834906321106041685135103675842324712175337706734822785291072202090626423740464895681454385553426823736754655461211034276616867274795584368967044836000869274364225592322097804293305515188722079387269538307833132792767598715836330817494259433517105077250141978729088252644956287723732623432941951562440221665533235121372179826901191763397598622748499356488809704355099397459268642120570132116550792039003259399141598407205327214119185964886339463939585291660886449632192064387690338361493718567123983840283064536878234228846840454970201700236277672556164838948278851627738505793671270640863208345343175229496086068955690229736799059821594375533840059324936681389283675175265614053717450660802702456849958165280712459623081756745733589474092763393144355806178503427048949796456752174229844210199896305498659355157109049492600091332978040017872077700897311407231241573847010405426158620209839998257311617988054476908730793328744125509542198506595005013797418580140301106539708225577990989319727401170353396939109840111273962239477952097424094822093397477211566154378351646180545465033351323210857069289881313608409905155760790222612337242739701623283405347322747169014992094221260287098458537180156801503165798241830431325907183330606344795809813586857071015789737574425078236331889458799229132385917668482367899630547920359551501082729252079158732696460089876783861899849035716579970286769079323559575113968799432509822635021045000260872649586123370349943293358779387825798628095481856297510266882778525308670720663881117075358224287489688965566214278918486463113861328143065682322262067988634286209868050428040336048623903222999617728462659052580686730585005966584776626825216138544833284582016936948788123022820556841518237520209496937481070071273072921970876097100241106701102633366939253309521649793216075586794033450059730379269160043171852839296644521736290124857262734565580072618271529150484846543545561649427463673780398833474690800267241473833423502737621167350608369377357131446386568216436137073375240141991526163545537996731120227199970767337748033617341031102442822396974780993177220991972157984928980193900617111220650154292155423141708457717613922027597912394496904274162539508141297242160864281434069160033423404956903493697032584113612534914918836189012093918180382647553385974260902733951135240029871040361032026277519015270613146888415466681915029154409258947713752306846988407772104615929787044264922082659549757139536860366292056928969598694089341761037454393569419390615587923600809290936446186518950791592039396198884111739110700779956615982050908936698943760175183677064700134710627948943148118911683608568514453646828457630738292893771470080112252964860202282969713419348407831367426346067845045969361277643794406815866101611557400574770138820388725456702278510201623813856569821000854233055374237248920027623192379118693946615666086309813288441358360568090608090722753532115124873834865254812572287254696348886512252487652832716154679621195743390955803286566396194735550552836093528780823075766229160252197144259904800164512425299589707068392168956336384089786922023133567735733697349501208088992727439749418465551242302744900093545053719275124817632687096060976634992070812989310972305292864336002305693991380413871126680022249026463559702638640476312766603297821696640976478420158136821959024698467739820925846011814825979494636956718458890088449107441415524594993673080302697513467256405329241563134146378341105336187485130791191099904897381652858070273656753860738180601532015850949837105156421981270138069710669397179744208438381571993220123182460138289818446766177124749046508078524743382501410245137842431206295343387748940749715975133162752099853673679840715185793289624292759472589906388660931122277899468982370113838925207159409411348166336342448314069178360621968721928223264780879776068533522527526254314187878652777923491215981668374422514420828239764398699559043204532949350815784334049604157911997152902583943030007334679249821829191427048816150853317305076777237256139585800100704165909576296415549665605682366048506912147713620294833069546367240762929567138975943184387386859853269437155404276995378722761192352725253144746427367035485237481389585908248774364574126165074696567048305725774562294134042607235841213215983246987232894677642264807641000002392679850588996497020478615882026490176393587189528777860690064097752164283642934645937868429556441192568977291336769519290976409291268786936807456419597879247221450010966671388527297513073130453134217690217731284107700508863634581874547821819330236070894102117496210200367487417647902658270069727040570974302995857539092194510455840957940378587899116258577462407742705586576376750458837466334942225194034011482746162202671095536986064333335760097820573524690066678853906712099642250288296722511026439759066237523599266220059345323612658986663462725817028003576390209191440153049376481573413700084796254362035208965914682912012240595301544849305843587164816464635188653359127381284811605827210548316417731368138173705377385605556952938478634321949445590823912334227591903207001006245177867650301762672993838091778539321124243232417770066488467594747857870891561321110949125197974283583164442708053609958540716610788779998768132817385931940915685080885856844491059592233531216436682005014134928279439681451067401937004019050018304105672705658768432828947868126751876240811449277889430817879960459243949082881316444170533709978194274204653513079346674197980427996204338017042926609043000515480154296653283736901025756660605967780611708692205547974983727789940368035172947271934460579572180554235796092485094257094210555479020292012454203784099596468799957475129070450389770314505162523435589844724962957663458864897892540295786081016178756489499649309989630601266652625953118188395816173599437098241683310221354458147359933774978297257037198425881759384733926425057773307437092383515154064012706144458240238348301715434845544878815533602133719957879409994067813543208779849908726557576343693976071752797047024503841644010896992144293881911658229399068193224655824715311168255001834666418403435644573883526412825054458660694784802333602214882559693612712536857336795715651524476736912572735430341491583900511346286961894194435638286060821437179071924116946462335470359928396171065670513594639043453898269077224046900972875563645859014322697502096917239096049319217823259608889963259943925727975681656073081017439718386109461661313838747540812567413995937104680181705415211692744499906163995587410863618573615501655937911354039492721681052083633608723402404219862762226667641070650558660244002362456420092535277072207186320473414418089408706696409576110415646444043319603560797608463943952269245095769021287486226169612959980208715169542386640250779413967579341195913666011716674633821333987151579529502651709250788876628598915719648916080979307512075670249431061945925036322357386377460582464193390346394629628976759547704107167891773118474452673442838254088441290683630672114654271421027355882774286429903145697370615783036386978781732241348360390188282761122444101833889182212257024733946866636400598075334447839171159969552477787461914630114381407561153373392321705294599443105407899873807908022504280574558357715653862636269904198420222043898082359851032552948080724001244289432528954980019820955187565545258551522904731101400038127282483541695846101861521998855403325242311537886323018797854601890001665761448541326592336153020291652820734207567834193829231763513721683896690049020593492523642350574563969504687475197410101250374919946668135913479088661147600335033508876467879072937011913240829018856565849236323440628320545765893097449526069505728064438090240350188727905782719346989479003923590207225561063915725800971788977990862247759711466332109816835233697686626329516280486786360650638635074558006806445709960467423572472177694689531125261999866740520181856483500105510343536955211369834592988060820105206208357177659342979495474989209907503150487471630675889165055557114563823469348611296400463540714178931330552492387408586364517378745563111288930159822793407380952057464267711134358643595761243323191596811469626814504372524045683466858387685764991123046082356745072996508061636621298444444613994572384955182548607854682073789306889922613852595637591984371228767153087643424472468088339844571895965118649554685333211358458006838924166822743317790300034757757582176608281334034928984998988774227774315505187930055093399208944193501464767119940263087053005497283763947007312209985234342687622665260973537458576126350467455143025382028746954533466035329352742364035638745372036885985947552728406232409048068010312637962963300201204103165759729969578501676948845322999457885780090256783415208812646380296472612792053865382228724006066499476271683010327446538914406729249932362703351434059395112966681060874699647266575446591002745125514863041368146800058510211459023203126693006899504495995591457954498989133744499300534093516699451934630352794220186091515503298199270340524005004110793372671307755134067383007501016166084794273656236986736302645677127390851750615850805394198053648252284124228826635546700595592525704689167509811602865034617723511831222950710008597638881871263573346779874240340239748261619136611762547345082930375137886684190174739941768704887754885321928687848920482073998444252964504400175858101825078063582807368859424951296991639723420989714472281031382732271557866110812986443923397370346788879045734141722656904638255661181354208701993736999876209044311545488013944986938812371914111331727103286941011306729764974771811417642582842307647993610457153509125308367515940946783352706747385487405156628248789176382052772416332867030860485421009575636184121552776787868393290418379222725723109443118950248809127043248128060758996998550344416858473714283470938921840520938757634522127906949566488279458027849747189059485656462675524422363989698065739162195327887839422478886984790147834670948793559179504647368062885429035040950760400578705945446726003587261426790494906851937566466021671890192293617934653864482490460894063952151581723687974527957586009025050095908661013173949463987673213846221036734362111048077044280095659089087752329606323069731652383029481690991850591957341397700459650501232274406420437721717269929354882440562478264844017129957470830682589772270807011393321366606315349865026962974053590413507357899661250565668368979645075817680104599026791792657580849358211161614291121633171718008644977441471586553053683178810055791648278851330388910264814656223689573260609420184806713893369426545688594790935885888417836898709099860737459911416409042359557594129471692685626991862249434705549252526139819561951055354298445454690452722438251452204858822028891658344139702785736567776125578210024019427470504505564594394348829160282343128604816656909802386513001876841378213341588143937488103703728305961152774441660047366921344763865520754136597269933755041080781865878759876967186093514346182477046005030040598808439978463546383597158551065003713708485562775163583312112903522264545625882890623393300370480129402648837839869549605264651150977963148276298255099110026353127748571929742257283984672843522232749716624672472085255719464645149555830187802786410710872154538301401473500671945560459112375919690433853282487544117699853925119684757105924006988405572263893962577040374346600841154116894507381855866095773391237323462488079151353750729914734042956299504275326353643246172778444556814152690391162916349046004062494164617804337044845000626541207093923108204818392734461189149801673117206867401226979246886717202158805281677650980165739839818575192686627603575672339831355764296878809210849075210939862074948507114080247822692968617339369056159551609133707026624759180074110447513238832130224201132703466423014206844431209616266819597276203614466519721827232369825506623472183676931109799786108422664709072480625855786942107005832090860690473283079703532374975411790502349846503275685112089063122420996414389007454295190623895798852811715324029786224742536721886684013468713077054898652958886750318354181454019712599908865795243395884857859490703201913023507215536041343447029090019093557140482295962834465261560207508127116827375915658681841817939677199244130977776828290057926259565166033599033380668231894206766846068071695803806049418983560599630871914937459833142455159063197424193334495645477178415501321514327943384894173556701520110259892943843922552516945006198948247709024334204057116939240426235598029320480798692079026279830628913053611580583270406818763039665566088665191335190240674579527170776096612008300106876462256638244501800537916354769140347230429815291100343478344389623677317325603724373792009419979323732575617974356602039777342430187535084046650290829046937225654582883195748393119669767265523824747984122120505268145346649807731009855792389690559111806877359660798508270033007330348859236203297476604000443922987408602746639497846361631484235049719750883388829254015964094527377663442795535203970525860299170982490308468732401094672254194612782374265163861337130116131856751621187833660698897230718392263462485697024156814315978125783261357671741413395991759139076474292633566128343432140773589152044556324448086547561627350269512346660630567993556566147138046220083714368410567327966015286862656334135074502186427011153636960833641925122126524990080168396140813030065128381289152748755288920118382463693851163334043249561613109392162676852736707255423446031226222454975838616618960065062709694852849198755187533768371868718492173565597196375270029329531945623637020206190127020098029796994314775447534019355743204315939128699703295958262589742821107617076407198008289391827958740058555414302773437554534929852856546740474330636174318597367181390375789101327552396407093803042998518139031099122507310003923712950607454589584492759257445408201179994530064545320391738085297585975406472161104625557230421254389860127895802647580952843383733435200096658930974840456257820484167239145332118312399205512060016812462944584849041555316984168779734972229215906111213446700815744192401383482883983708753710819307653314506025506205744201610558432623412162530242554874320734655099571564771336145546323468675980440815775986313381650660121888421616643465322965173498085089703191849375537034811152260069001518802407408658298451688621401946555876114224521126091943575101638324878365620233365685139816878946443702077238422972470563232951730724145662261321341580723961074925915696735098722392104344057916567121795708200127034875876101012733401940651292615401699248435930712183374036371159454518009664414459430716572832389440519657430571664183762744867758675736586633455709711379230094457227840930058914043182541885720605660976177372962177352682690476611061500486538379172493618235562136931644574604410613127853150359979818247374524139821221896355372623627579369809922655038780121050869374444420162362213163709673200215029533608115818957335751219248732251769337821776741784582328179474027522222104376009001839647666471869987423053918263111409270409957789696116297647957789073119858857085746557739762500562168243056829511045323201227772028238594709211987623021579839861610573716868958510269378921928097673423384609093726438833325097772581123902211083954676527368690759288859265105307114165392201671312271780239947820537580590715569070619901765261873329758546304042209027214609840761144276696924736920436184583776435933241857786456054894956276985508160686735759110700375334022304383162755178069132089343847578448231538623039343425372106700165452252570468512000101783701121493957114575374758185589433680729557692578883828601893779186382997003524444575525197866834972080914286660918899077934064219275449806532597555989840894446328979024135508314796397025824363733210617498473680658264735866102283623398062314543082002932432619697629144809566410140782346749909893787094665102648832558990151162025590330173224406101746460169456385213815926229706864488333189947224228088386145228637748717724171628726347254613280283070678455476066533588476924703182990553022927986229198187564504542594200093008915567394911387153844257942797562851208465234611697805924592815449569269052033103102561154723335105071876630208918305882227518372980237706427009757703749523328625321959200237770353473988279736705998670878972224988160025945540919359435511321715941857827100077295886667991799030510516502229265807079262960431874554304388582597055224720625463811684264275879434281799932689072964112688629800039269028658578056052480838358200138208031355991790329853972410880625657142374457249637059988390022249053565723540793298094830454442604908283901997311942171571005505423402009229748859775381408882458516451062552193130546022217157600340706555063160878852456286832897496885996509584301998707724163337777167209012302908127148547246334652689749435663844351128864156087306237025108841014865306236234005672559173033928400663298423919343807733347315037342607743765589513858425754270453712361139255996052151519572358587616088071699609670951887781495236543393668045654601464408973413630487991995470411578694570957060913243792961692724153871636762774696089234083564777783705931397651984704744222844223305771044884828634217783331725005797027057006161416718319757728118263148951745599602730954859128940593241552733068406841930327653123141085336259850594643845065307533226137635673945294813951945963917526202440319937719573387968996921850419021804246798849782039821195460286272725548619575058430451247996943412543708480927022242590119100036129598899020897011159415034652512616504781686252716369851954769299189705578058086613762122827506969433508745527160265443685023365539688143707363233212039418524875202827138409325852465917961180354004075418327939808199169175467966975732917407485473665437338509227843259713130227867700695604370800816199239344246251786936830309178774333905824696337870368714892515588881154684491224855731055650058138008976212716429182249061669918515979053258629606395230710146469160276385893751921057251782009939107845921371177332538187596771979630906730372784036058753457066403265380988762178426757379682653899259295448198869243769839318725408905822583479105064095371177797420795940618557202729380937111997197261087914846511936822354957482566219985313620543987212879288307795836974644834611218420126763776942262698454360866547073401551514571289391411884904079824870998017584986463155764908539358239504040263685488529511969290561033449294772793578665465070557507409539391142129642475365021440356838362671883460731368578961946645759223695987974209271459796634113648519022995267583496966691408762922326694726464054312495079518355136921756537428451650041544758038011358542328646840606605210707031605313331542770895673831420886409020937172218808547313241290054308691127421656160064142884002580692201585543858207050616047619401005809554254619087634143549261558195724405315634326727410580705000790563318262836187088711651238826439127475865731614351560613146473090790704054068140519385338416620361889000347928814678047259809062077595938096755176086914362796482790397578574670911647379200969547451617168214746990135656854126540789061505903096452539809624729837768204418667819912186317678154457029471311897655974488507525443783877406222268317697639801587554279050738318776147285440593126758071816442599246244021148904777796098615386419370256579192432413507270798841590590381173116929235106650567057067296139819500750832480232014161156817783716922812370224769151174438872379126815137372663032970078543827948017741015409638279718508164419459835800901958335784174915216201060986059705935868084747713485294380939130750598432668651348343438672246309598700947956778054939606241210574357725169977395011855390168688827248513605007021784124333971689748001214787795877655658659591963855685817355168531779350278909016071761692254570733516457939660527628937399400293985346171351662827041932910191138984369429331685141314503396774471969380223810404298905135006294295882665680433923033218737524710440498740270296680414766586386887245284794666397822083567991871727044465611378824457865684784031525168680108670289623598971847834209891642050342210239925444488718410081627343114191524501348194461910918790203153429104342246686527906427906521871188779749721956146548693902467608733137936254098964048141885055956702677136939116698098021937928656797233701193187197983524377091835171563379927597961181399609736376169322573271220467315106118125436447151161250570013109583636238090842077814817232263675453698655333708138248846727470421830510920124396972737398148508278913442138391907735157817379382867027751150362870197649231665420254342622241837780082278275031083376254396872848544268795332757099499747880848859825862473298733628734895955976592851667332716102605898986046631321242743962426044507956738270042596387185843521465916233023043062444795514993604210155279524886765946101479973086986266290869007480692196599965211049236781038709549922938903781233163975109742848835590871566321369200242829446923290413507157827191478753720909989972859083018133986926779900569472799639949099265409371494447276451252347537009406268563342016342632526147923013506509479716424164579201881666492626425900634536856474494065958860902434877992161067093806796895718788427988610896798980329870997371939098699217209542145962509809673841584612183569834095329930623865212408263627291193062716832289574552832729717574934179494748269717506969034437462830086544335488332429868813926326193052881089054966543066415624190579822660762951653693503834702192952489090865833919174975368640920340724442839950328991820446638869214208076001688599527642930693507267166300246760174130697093977274976890118567146345769764616434372442263994347563013827226044316325567239335075303740375772168158889926164138070779089619229468728375273886582540671889936874498785143553179130854410815408539414600311438197869158931981408853925032471673923454942843722544171187454501105193059589652478246092136251961266834956579159270550381258726771894313559287479451805768365775281360822968045823586783196634995842273362609222943951955457941867873306025142478427626755995995977153492868901973380498564366506145896281819823055536121504433047780564897703443812150707518959272463253204506179211967335990013142339897943521235710087718786386668167706761326657154317908584386613147480589636740600586414986986199988580532816012813896697428422421759362376561177995331635620076932636274841560222085642870924530657138410901140551681427307428766735742460824571326097875427058326512870548896266881892834001021742850640793296084945964196866992725891612909704280640334414918045695180146244249614910306950768970138991999662869227630744145742539943009791992511050802379886039095913151240005824060679025647066669202106721975936554054133340532252158367775626833381752705578723689104729270119286290207404282105769836195449963191939679089143208364159048855420006730586225978620581805540788103684762127921404379806452992586828499169258334568914196564621570397037968304255320526564384538364109974450020007315562266453544374684651376675962437861768762829271883670028725781770291670955828986161944261335874178013413232014106086650382585244353614159430186048696738730520062118221408245499226060569510835088709617793891106998475719137928842290907700908645555628914453809962936092024216802386130651685402866701210263885087389963186161141369674653530097382530256404710196758478756965964764573293575249677876031626978060726318014144230213976634931651519197845050030960529387293085288497552592717740812380279351458168927320780197264619601299238719991798671893785494791335042059028919045071357727699037652445900052297680755380191159524774138489000938239172978532801178182203384248388791410200520781477783426609049329437113678009650530698419613651873603969316036244497617823233677988995422224897737367380081903623101442437859211852557348082444606653079040744820221650474490287667242317671095049174136640382596205322171483098630676956342106253787341742282529826542327216784816606148081969143467954069452479362958706635718607399557808981773690279710924122530337137064522521307284726279839179943595215699995763177378849113534170690316177671937321413243297235080677971193721621286184247084994553311907020665080058728763176189662144535293186869777599012562328142882483373785232703060483093844064479963939728234158919515125812087588200042489546452269690506253336243677932593271178275079407603973422774272251109407139530486144554424921507395191361909763411962525174008482521314838845772853283330941891531942917391499190655731266494932248812618876133615528175668381508930203245050990302372844786665490981219791800380660200207969188363347813005428843190724372534729172083367749597980934174121283169306728347197790683206546164370117101860757190136569094551007223494044705791638835105465316156757335248039015160714685446646941784600455522670964282919251061869894719112582708217355968999999665047734618100929824841554929266076372631157208256629970701264628672878481158234574153057683751815245099350337263086207172931866644851791669169640380652217621804927698914374641862203282385671982451596194166574488380047700268375748123925820588771910247565002224323235676919133262028208639851255256834917139102269937084296357905234194018091341548616086448040291022690380458286072937409474144691567961355165232607657084104763776344718365990729697402634380788372141807867091239238073149843407649001270427906308956630317175526478128263704916781356120329458420194331578021317498806973849847765466722242029964555517854728261686519699991017258918947454344125447559206332378277060496917160075432728559261183511173685534093225805980977644126786636645178173497401711850691995508420646132404306228018758368879356980533531137744599409399721585598097905192771659427169181642668469485481608054969654246925774410434176075951366013803783948863911666956512146629645292462901390364453252011494389900192079182732315413265355934395504063663880143057098601765888756595134719804755432942607344601557541975978272577404834416532181560810369071948643966992876141964475742850255274930373798100994375989857901829186066646638180652814567825083522386421614511955549876542382051131610772919156668148229387516990724751671766826834038799428324443909723415610477310082674424868469164280809192302661089454794702066871632470660659149441629369706583424917942127648116006112656720969869862273973849921771043876882424557164297108020310912046512606009092961411293858227590830523189548211723071993965400149169802085059116764010717429417605026650934141110401156058435332926623183091982053112042999551697529505252805334378880964137024435403711494667968581240400385511580431356319534423370715159533358217479332405219556284587823231712875966934512376614216688938099935919006470940136721108782397672066046265053228815709449984814822784249723649205809642397737744199598333832634933132502541312620662995451199601496888909413981161578311747113722962238629857226742186160897218557450461762256394528294508347445049089939320024589222741425551451012220334417087329127763614752838307712961191624934373160532216768871972880143451041594229323662632115471395586395627435295609623452736799814550582319682423498124427323371674349670052495289191438485166458006047217167595537529560363516782217734548977328073393616578490072312541328482974267774957650159716109318139282213522036687287049519425083204546353515544818712959068158433703202930397317292838072685361906146856098793019241839560557520690963188989071047919362058390030157669409190552528094750780228275019977811635549286069259782398271667214830601377996429926321303968427920588499935042073720517890159254698486411943551098169060755443677725028673043517653424140596921040479964382342298987420123162303202372217516596709814794982826147358916795006510021767765745887913290706095721004086843741105746053468522976163871676540213753573133755528467781176723051740054032819617175973494152807050224319189182848963023302233529606730760251794595420268937088758692483637461657671733393696966886652819317120584817708541933098676844799840090070527702972629244868309822557710973295037583059120396365344110958797741684201206317539504408980897166063720396557512837485548378844590577712308455372972587073436019852336284382467783504246204711136973213069163092290719602457705550039387271093428031624730389172510645815484563306141796499018885820716777297272413602699869139459785233962880218659277304717699709994158113347449483203163450161389619107789811564741072132804121476609792912720531278001235824961386947703275989368364626723320647017713972705030961613122987198656729730155810284158835984229650042803309838627978024535477195125559638945462360327556198784890226586091073741158167438781601730340684679536790851321195964238772168842848785444183025213877108695479304128670583513393329264366469623112353326972622738652461344520519776006598884440712174303959385871734979399605440070639579558381388455085324964849883406637479025793878569613470600912697509043407895250108667181869206606039127124849308213315889096676438223432181849080922943396910025707050621196429787844610339212284470284517257520497726771207925661117033766534358409181304458461294758707937910993141271074878418594993715283572330506848975183288425985855432725425979338981947501078233506244677931309006706705317904360703034768871433384681847287940058790136559479532442603813293145328368760959801863323305265583243288896701063752672426086826614902431013265725704973376615810413327120360166533278549447131404857776571219787132550535764379392589558535081325874257139215738392557683806809626396333221129964086441619256024530746827964422050902282525111045443711946703850386928706235111613597969386103950144520512112811620260267758673640738333224541511712209159328422833677242952236230335963488066224045942554898042854342584084390825920723360507753452576785107022646603529137940662625520108170708290373095176833555879011374637199348911717693697335333911529450647617284345503226826703352304102987730505151332109320215263687073936852931634728049128893882356382818697207334385295185693135933545696159625513678010971608315579058178771313863705953103325771083184314152239468363452392698181879591893474529163562887512147196462132741736928621654355320087272163291446957557792256196657056193479629524137056085765563533576323329149657632602768650452169644116550960968160843291931284719696698316010214593937238376815859299691286527646629135038409298456843697524985631082809371680881653352977697418317856406326343203388274003730729927134826940744295133457228128437703216248986572631527718019399549250446829541654655487129646313176575122018016037658031502403248003171223951296879283708902791416040284091024198288551669641721380712476203781378806657857697330851443053799667959453180842776357446656687868285563388831659977200808040873759967687314035101825285877423028711985243022852194553834313419892928663758943757072763725389088372169558626524537874949748985066921532014506816596316039994490761157548187063336680594946265352655510418031172461507463164410630402300857794395244533935423464492618853665780278447342504480542108668517861957875805296148021516374583423278368718557802378372261177069033604683379499022483612659079559881140434315648538673927809341622015347010631556548386029661730444532899718748260701991005708928076938302270718305290414415638162910514646874977261094366498352111800961535101061818276267335965345668353782317322834438539562881205108993144426895410233453767454310660751534735829055051747777547656337749590634800283218757884613048533208205919152196376270219013533104510896478232870050826010002957614568893393005225680369202737469805744736867432635166133619770762287580029225981361712981822739027311812868212680094216381789913028696422123504446884803075546752259838514041365232302383803124309777139811959877783300417462581684836186544873714102079937671812642763093438517099976772194278752949569677266104652201914604672610715240878032975974081700145720895678008974865965901671818292721847570533640489220014893665720860983053641707545357635414694501499937853572765317498590390273855174507592547717493095853529948685397415138185988232079361449234841525747443360187443838069737636878089215270999023587611193251503785709311431267665434203381892083994279267984603256897746400092141656886795285796217105562247067595626058716226322022698342523016330602595893036795422864468760567196727244614568882575257887381020087077261150611318110348928972455208603456060978499912976136068696084638992218450224839525985786552983935898683129724039064835059215438592637214354852751305890292022657198417788880938924816269401353248182171914950098012927995585266305395047319971701707923678048016022172218678067194801462883481453229049307792234095882377842454501173310417741345623448830106416318277371281236952351209278099174406774289675578833888030881699448112181314274911173113121553362073340301917013752401383137788113316197890105320072901946198073657856587051973511739605148694418592336151093442376667937513661457956199383220316135106367087463233039403348280515002783800618949468324915863773544385253588559734388971799515245781578350284044771364883673338762259054202397331357530571840267675520134992922273460631223811429152906728544736516382121759356538937392626455356580191452717439405578849100239619889866386888207091278354883521150804529818771417151707055110034945802258845450039620634303446735837923304093075239285187480813535317446547034485135283213384961793081129842861029677378618007811838639761778401494171405479644629056204640045564371590480905213647398203331619549263750061008472991738978829886774740859510170653731840956386770978907538360207334081560797148849926586186215044577706357405151139629367217042627576333601654366816534239405581449526952959051949294374025486797192853416825084150869653861294147521374292606483705593360874688519579449165840128560411285028635613886244227102349212681563130494972539462155091953477417258431500767475786765591256334528256350159512224734325261639124290318302826659768797924447189876001893926270064596431275787223894440762782559429462695450348258374510323158466144997499881584881480477176528467556777215428672890410976971463354258099436375712169692294620796545605225228808706803842406341947329985895742936997165715291042130721278726755589644478770391081044936469953340754221997250531672490988729709426724257177870780486248014467415717095309976448037896132590074530264150598511568062449035196162950896238453966235458874370123706192988513984249619820975909619677259623037518220786365941326040993464230240668433353163226814131859031473045116468610414082636002746581752364709376831741602847847652992734983269545087572267290382689939878905322320414231326952494995558320542181579385121642906338293190351864774938663557091793972111182366045238675593377805822164516886679136221346764482675207469975084819126208350741930912787459990473795351466643952199049693936485138452761569324920856422830975989591099958793188613473195667650272200585058953125225900310446099519521456063053836750563619642200938302536608499425578160366917724151466523064084834736705041017074384940959882660740758925212207644269642738617591243585827017973540953342290327707111727749396210401313298737352750599333365268971904417542972765551745674412784605511218938922690942637199653850676397287964563158213015336335543629227126451316992540179631341733183378053916091313653816623656539828615459400158819535172475859204497723294402633783348558175116771449866580945411458346800170075942135488947496353903118786780197359252718235620296014502987308237871778657071984628040655332772136627498691633933889283930540810221444636327377963986524353320149343075612416309533501470492786432339142991314340693204167055240983889236853319332696516236233649807311948241216224796422113875895015958717436297677680466073059909469247845022846728021753659421406458341902401268581354980825065684192078698202538763489454370396692291890331614792818683489187364844078127632551957736405029154804865120985189212999070756119334649695855159055640554887572216736573491927928095083483437397169904524127398862925225826899749085922508221657661581077910401813578477460906627293854410407509658428024190738585959093297130172319887427153802576662107412580772285717725432684673865939569761241680681816631067334429909236239251439698325676107629196122331473696507897839126936774609612879262750686469873303524849124526037083687670346849751189451386581630309475316878201829848910293562940618269081517358523376478586785609421004787919962071572582128712180737619551520851781912920348283635620855979498465757230503072767830957692453093229928359249311400631967444835237215920209314783236897258086696751174774826139314439340424790175378165216015205035307271793808864645507484472560488515257420250689458861189319705272480993204713118449824585855288642690464267936399460716949295822250760865357029358743481849137168946201669488334365471866621900538859246392861098483002427462997558509396737302653127020421134706926497093558620057103457619579330607993356908928703175185232884713501376396046550855283457649976117645040605283213764897024078208796595765840631284579251697826303405017998545699546766950231759578071212860882793171667405782760650008319952844619872142195899012790887441920788406153495047214721100816527171462912817090870795460700943038115505709180608517680217445574777876166581565293853519432796166986405747080086908257302586480201528643580039105120689473678138077226552876954714031773538370682597916496339814979914595518705518576465086026570846865493884023730220732317044219047281124637726292979538202546376382346751472563994447267529712222848030745092515111842150147059502210832042649814986791891554451992557835551766794902836794485361730701038167945491804304753675365859767123848477823263725799189768853476665253849963328939069137609096296305741708742706996646744715991686539221480429400753075751359174885687288969419264325598153139539085974915835820736646309489521016759816177887298258639150463196994917796108607952088100071921394905334370258811286893560157102045297391395310530975291238848706690632050631025335151739382164001199000850756931789343466452468264953223418020445162579990892433639643086352335310306434478197054147186326338858640464119013481873733744363182437786623367136468406028452871375981380694225877154964543223489795201797388946533119110680202071738267585713454344574908418140923731256096313786574805941172084609756402134373801286490744970586168920528765353051964464665944978876682873685240854524045120547821297904866625792937955887129871921660331827479974315268221867669926069235921769525556929363703835217790246950285780353647945622079936743711107801195081862986825703591767039470124980556060368025305761428211563217187109857165155095126417515799620070464929004150716862859055609759965851163707436851753879737833052180852514861225384962150831259043764666250667341026977672954763015579485401942153422342724833595587114613758107854371981165968118296350933358655276643666682829771505917863230915543184441927226568377488120847743302927809083807234761291144387535817012378710946232591473461001162211294892617696773483491002427224048500004416199977454361001686540780062749288765358765319742963743899378908027596129894941669487229547045642063635303273250600737154060860873369738147453872532786241991042054702767570275503823537412951879484373372167087688153042414280659259337556201026055756051675958423872817750147150885970976177402505693643885983384562400047737817612348482106382458334255153757881324531236458222667891692645134777237917959408863144481682163768655812076103474877597310924051966797830617456549835162420005770475674774559050610791794584258055277761126503502085169249019186262102792023518353682097542734164733993575549226004769253752748736974833017654621641861974349643202117827896622772143017486069240095621227278494897842311547860112148086279785528726976443233157302047446572352294902976543270277966296388119783302295955586471772095955745508089344452163933004328792538538177337947473645578641440686943746571238364102693011187699898749128231151926890400026501459094757361028804019146450920152513988246432176522014758421598461082284254762496749313934087759064626869348171236783240865257941481321432411718217102898748250282153215507890691967364854943193101200569377308406881792484789395073778087838137110931564190910060710821195228170891008236001892885646938992207068877075995077870372686049855396205090059149441991169496282980386676088908313529670394773131650655977465837119004786056738107465776698024233094147915713239100507383251312807400626691045567750940952738445029058331388264492825954131001338992853758141866836475140418543278499608632371183559963685609537581272774034676493869017049316490218691462173282591336920466678944977263559752150937433591928256139045912586168409413619019646984323470919071333026560646259369606026479551451187088366535029698429046147723455681026296520309119911851010932119224763807041000868513651331201678638051609679175841980928841886430103746067942506160729508345003999667075186491821931140133862385057216773586591577409774255784354260547565873732800673821104592388859719076531133947395193352168005038691621711263220659326980091467755414993068434427936093996843641280637411874806093719281876138085999402903805923471242212349710949343262061245659314966131870168859944852082033649434585432278723339693454029487154626943427941662228245860412238571378339957337207438555880671104428759975767502802995377633985798980264734185872565776545186739190123097486570952310134578760861805492775837352249449452732544909740686603483788028393777892745473376884126459023641728674937686869623559767736768605247727172482189989884150160251487640394016190447508774234247874202023719074481571630961731015901820128549487708870111408795124675533185091508042728999649591838623043563745231333993818609317966657534855778223142898710916791847443933559690341338844666751124750182129727984357660254660224411352296966179084177095828013814266088743634879904746019345506212081351746066450810809896106446915396126217156923228681373528679286407746877556112839733484214626890562036136419684063863858513869844033919330498701855625931417418431717459532917269848118404105614034381754187791677054495941978754410191359733571720689062039922722259521896481956267567818236841150679123681767250387863892762336674772996931550653215954256592670261765905619406547865814259123553170910519898609791977821626060179463662207184875135565579237396129687195288411569829035676639193807499234627485467904190640586819092880781603670160622234766519291774373478480915908330532009680158077205942997662348061405717422849130005611196391384808196086102742656350976557405092230830642450591764557516695919582659190771773843417757021367608477734227957467560582260399648144645032064780936284753572278082978600602941906016312177907868322307896390007782867171316206675612612134352046006465576453215264593950217209967407819542534697945217204735806454226948860919295266089598600318153425240385628507701538896034616408959561959727871004605339670786408635054678562436376536253408692367885225373563373954686311877001399649228453812866470998031105207842054293196048702361959894389295182869579864981436529202378345117875562067967777049282392660996987701991440658159196292314688559368182080480211435560824374498064238875371891401077771377912695310885668232912071304090364093354650405667304880231688714969529673290353158279732131327981715970535084360358534253466669946973675711865215079398797676820135942993877929945266375968837095538601910254472554177828339379764473230497667198333166943896130633516829463026277611794073290548878658731665171620824022051130762562477784220294055531046302391124256081730491237982694118278909268833746792724713953239103407103473626362044456778902380169293418017971429509793136832242498828128369273437042045713584997820428112412410592594490807924224374870300200911354952892904357217849201339284186247105577824416132483198128404168275023217824335114249479693923428747865018894278000639291208435295713477935659811467901869647869905652403802745261470317251466415135131183534337991282942369379232482640294799965840384725187295278495373205862550662542697728478498967330491942476983946134343314177176700984384226545346609657172735988872998966679355709608234722626801628674243575995002938294801986321163978645981928254198690737792780129752905276655190230744239822258104978531853891007455563382646080471913445271796932322929597727346613235369500241332195797184340638067387864037297758760150496734344376516215352509285222664167067127081812873977890990080739981699595989610606878416004519854684836458084645744354488574144697373589898534068663276796063711930565867260543924205932985860743913726842652859238206485624492611454436353673826858271350421760463630293881702649857006678168171886534933369974565655151180072746276564669883027467833349926359415010471318065444404799310577155084426386643534552602771130193414975288909757949678259968126189644361868461771926944555520361747456819650312866911179699898969137450420598848901595929311491594472748017921003334463117407176695732545633531760485119835970038022817898469150340610409892621315507302907477963916574660677966882619454594898775074982684438695492231798795848163444763607103604836056854921907542492152702864354825126546291308723904838682837011733457630188173260715613376791657848345660301875773884993400619130570936528846100783581745578087851963595352729902554426091410818619668831575236133081309571444805333389019489377616999385830965177184117364434234512569346435348379680960799267144729609341526645600059097842972452848923155882838696992746022425672542204903828858489791382876803314604590965280844350312476891633027568751330823687945010751063232461826489322885762572894214811322129909101873473548016014146513786910606481651113955705169358142418709713244059459978814762495152168091340833949355077188451427318814971504110415982272554297945141597118206604311293845837598606969631406104789337211215638828741086931337331934949170884328103029749675128493974532737704759812534927396999285607948878413211390374140934307665027954194775622749303698372747511440236341769749134614261879694602177254884249086862045004181483637747353713469309425383660478624117538728229417804348348080472897116640466486694425818529393857191798210164817170047663340228095286005991928807391625171835749649769653384057362425329799649722835757240448887222725935542703767048729964343320635743736677791075852048179781795484998717633451442187848313008224674011239409844964959917944068734270797819217407354736919437354617108658320691404028315112535706845151345539420739198420415659152347891666174197378469521255494203902839451278523900364319175601967997877060436339982756785673858733314784984400859973079641858378467339060867839397020323499274442685662867515013011978667601785202864699014477229601721549505782725721460650800048676004317668488043002045077380036229614414167147208611630557636595639837658545544962274305156077237695154055543094716972401896203538666868795915317525406699515752513977564908765548974019058297625205443707488899905241011479972594960944804930205095662015439952424518444848669645762362601641282518606840104478870319518017843859233606394339711874468533141402555355101676284502514088706200929246001796996412879751104264561131733047950628619991546413761662136954776342778183276755142498038240308040150457427551688809286501300094021296863519409220777091422325168432283970463165701221459373550199792914469578032159218414983617952825504088604514919041107410638548762406861115576399523236897860015813914794476463819003717255796134722842455666417225336090500344387868524879320535435161130194565863190575081181755003372864726299047392882891308428965630126549784838537658903955966286160415742265568866832337201687543063449171808637319879109051220117594342543549176466170687148438013262747678541036060038672157743737470746035715617170679836102015244820146811586453928743685537214241334154223278917457130625771477256630372038851034895371443921586642161002944731407457396764882514836007659320379990070021607536381902453144850087265762683400071219758671767678956618465719923944008977018433438633853054951115208500302846188117963215996557084329213161454911844063426770062674018779852210653464688551103799860531372698068478278413605124508390242928846299807233968703239545165987647889748964184587277607303824887787489632431081320856394682160473203966520739381442854045463211621738915394769799030504481595324832181435269591945353025937072022178503462177861829516340229080347435160661200713843511337633035730832469130911434219779083958186830774286092089421873337622844700619849857204731962849553636131383037350119372348891529777640046596395389828696859061101719378990657667073002557543261855994292158633451380270025816450656471050176909628728747740525032613745230001673785504639017215591954319365101783214313954406750713969288208005508470857585266556495389141174016122243664419220459178287214745114515996508002297911496525454484354376600948022695518345591148254434380353825054432091964295093804657755157213931947885560974608075235880542532274969327467492803246285492891576214176895219291374387261685266476287058466489385614676027072325710323195131055696236814662981448042036507572641625494728643432463091285315240198248753870624463126191144952629386892600016234018959787955134138920556223930843140349538576712531762709477146177400662256252014354870420271972409648566280843613408201604490385804379221095873785154389451684519113894860847321174567983362177291714956770914154924696389991889236286578663823692549602409787038621969383529154867422760986503223492468433907128195582561122974729071353731862655139893032407728760449088745251398671810701204422872851157929323705469214470848707739367807954020798422845332535411521324440217485637498213762490459810913121069952713401560498799193826788329850365185151076483575779601452020050707887071642582605452601702223084276478811019613001297331450948485958785852851796974809944648086399821690940629330029393001730189398459531531281007466414280915973682289497868853932573851988558860940849040288250565456526690897587586220208497937013915599940385652539935788849711285148243006249913346905012885918278515334895388179002572835752255732137961031710327285364561444589950632954571473299065828886202146801146305989262541900415424868154906353368459515696649334946366673677292041014711192141707982842871978726611271505779817612901033413827409246628782562943312657862598360873199833575373220867589632481525260382528062127290646741707389287553722898751065125619223595060358909562829813415648770578570909403524005981609250451868221576435533903663140061786637338715549174521520034935179454035675206354876528553878181700067500561867689510762161099698384636653842326748015518710337736523262529447923208488692007077798398979358432797541692312196548049465833738059359977655475372508935496733706191046550533597765812464120330354759068513792470879912360077502804401183474018592381025607491672206488261726555229901983914268747818156662151966978597314508672488134199528506209945577627582977486064215888226828336335992277575828328928357752794434838852273349484666984279976262063716965410018096806763179226681693008068668204797860023421353330107187165794692556370756261945298998032424697976955091802458237571080240197029034936946097396479577509758490148528767084545286455823474686480064190507304713842703484924037117058035874912695428334186691648072801702135883237615007913650445868445459911829895754245091994725376412996686642699924743929796880668229126927936102107644218830416543679407555793229018608861203438956036778645697290337237737961547328352097424492778405832101106970243255636710149176000151164033479926558272154071667798678759066960067785127892952305398570168602441777266387323525651602406788412295416436278934404292592178958958645453870976475572412772037895627579961924411202146445728124672581241351604758529777426227133131263048889864943660824615534270637712611462249313440478561134504188948851587046270406262373870658137534281268828096850512741095179043947431766003303920547958655176638733984405459385338349823316582043165605641018664098615918053119557655423409083008079059485436784801832711695530761980897864501492148996368872890172367631957890550819703824344158512280912972765498742889075581421765213003648853034004739321625816053184984801222064020138166375826199426102577432250289800177381429284083130583011595640031685025099204693168601412633047358606642568400740944430805573844040104440933578563203065847541613829382443384715195197244715728657790711799904019866996583736542051740948844109783583309375738012717064243484347489134524448543144385448917792554769920060975668586467060574023139631939792113198326668661588016190070811230216965860794398349876020271148260531979579954612047859647138636003172576045119720927517461213209881574148517552181415634440220057855609686888065341838729060075428911150158847358284921732615410624480500380119871123353204817880774707658993968803768341204819499596765060664196224612824083709006650771822888827605223086362582930797362181487791356198570862646300762872677354047084067246266587846797379805025141438815511625042216483185624051214114351492382503742336891450728776890575136334806683917474739435399729031701528168325426815979694052927425825977857406164658455875483502260305303009840065791500343451248744623338489360177004768727456219119896270904888178066717261066048504451674857291142964795613852182999744233869605146225355977956575167234441672697089303009127684741412789709464919954467061650010267114120813920235827366539027073819054755735809385545630641427802755077644445042887923277650699562655107872829350598406567757467965274570697414548015803405850396248096077212803671254112019315716544365637136252196947531271610264571133793420977742984049641191454460678866160536739954788076043846173058976949111081630563112190047261001367310412214699696963737216783941828681110482773254063305689585820489782046640555513933956980332852304097460243734712832894938136016426503309636201750363849735454774290984654592991696117737523371998686039678183776514873939385216479654863100801772618015110494853067242524268415980219003685421072905012396759551188046175107672781825904915920459332774597747317005000090611690820122044315325771442397221763463012325996061148873123146012211209421951025413211133320485242023501887557865616243786945888061595565495690270165976807380003112485157991599871829712070238900869089877554251416321970971820389696623531689491686588948919107626631977276601556797135780694669055912009945292438140233134364059212170954218687924178328442899010418075926469093781557777002565666498856049319222500980436674405775128971888024490175266147277367291017151475792002775809411514995359649609556370542328888679729365250074676176340521573241713821338998377139391355199279519139785736896722474770903225628297072228622368066937150182962452868524442376072796042328087966156024864724948242143792276345974233175717177577178312526155966840391267961544953604560518177378071201073169002048276260719054749046875306140486343507468043363349503394215026275682278866123580878582367043005264737793883638477340260381741783868405777872380986319994690775930329116081992759784367195337727062186471002965040261370802613060623436336017821173635326748561272948572928494129592614302060803797219593267220838257782502592986737014308393455519768839786960388843034119209994659045572641275443050152233980095562145900324169890634187239516631099845682721663892289168534726104744155697600432604129820236891043901901051056112446291350311574052620327371460300196139661676227894216535391225405552848472612986373913589782204654796726031588134448906087917478737394087629196242099021984860566336226894455140610227267283979301042410975456265743362352436476614230240333630678314295669185661003386172209694645424651591087995728584687287600985208746439076140692767643334928595106247066457576388289614954992629634805430400895361305104814519011840503162164948639337616042300719914375240684448538801906826381092248725775834970483196341824712289498107040532483764291613537666899244572291785523270611639184123145046838782187723303002820658441886201726365413186820694039810791734037128481044005978575671563858148064106680301177505048511603114413128577052345127935130459032109986549219842729102390803154262263585186805592636043367909304295901430475794826172457725018726019343702222146656046799594984274653186711588644769029446140631576002946233783462398043068269968488437590636096961884970982443904923150170379699605031269767580198538722925935102129294186795125659550162679101333658136393661496918375462198530100110572123510643035896381238652733160460910164329418610327788449295333072856902761327808001781577388838877622750041128738956560285748935994591625309354844740724057703462627674061153630185506804079032602470175672915525597838158762538280711121736421767745204706289208526593445361500064920094885670615289141568785702226970339276575219946623268435132378879563754253073338763850050218720402228807782424974660113318705761202391345426395790540861916065026797454170941843327397060369777640579494527861605201124267132183658065705239305438870810483606004436769708212661030523676681135010823051872168436159825427077860481699725232244274364842239672753827527643090492405155784432686902845099374620451900729664744986437424236727588119818107178140016079883825267230416069520385356144554342122065595938015772852216582863785623186015618542737943390395043520406846470056604393146760721704168180006862289334793009400453167827321699388946574923761063660820844469242636307974541839428705539957983961990213109720429331964676469119884127172081207165469931791131085270685536061330786172641393963535270595124405988403879495194474417052109873125220631801585987649788040828163763557902306316155052778999235999281818140162000529948581638872543345159960291154991078797997615959119667172007792178995229443128799317303961306814106221062745538639217855668209855439857255255972573366435074649815452748297922659415500767749996330014552171042182935537093592323537905710235974913894960885251588823227904511768294137423965025720441345325699972466424884535524694288452198158110896145178874988044057747141764069057084745431578084019695538009723930270713021181550443474113394610341840353787452909044707332926271277668762086173486079958700295868985198063870985158765896446927997127793401735165659169636219400979269235680855966410727135966172563436845783973245901852387592570111285180404478118672389255708326803612446398817563429619491965817032326793015359207896479346941446958502059424312167697971204231299874325907332647393782253554593566510175253326329529380221899792955632075340295485242640944666970918594479833948022372760084130441999835529374382674255040207475260211263846060669304432737143865971795645720631933839737670742917029539023798934417170377622837492385555995253456098726821777877755126016439953864746010549260802257030483751599157796034027366134169766128829635456149607924397516427176039610533703513906608509797870228838331395990237753810990938565361850788358197667701200095711589398026983299106911055807857381117252230413050333172466149781046073742709518330767571629641377590823604124745492414159196954693745821019085758821930853822339474390856963372026591294622412133022062983718935746105840306288364661905296004736192622013199135250283258591305032954297881166603949641931001015135659260936079421022375415472070737419495334046979244014974897489272153386041333670713488615430629437634800001686213484916042691744832344430284972855639995140995264461289491415288240950497219480827950100905144165446004547939931381218644042484036463921570417333434930212103660125966804541549350590735226835933920182228104372069161480633790029012449416871515075433822378184744594003915884350191780732764911526223499353466169943629191410000771206757539294294698389015806329738855442327347813829537936336294483128798225442839170094825432357724348021831729424229278942329026349437949138969732439879405196733118883605419661404424363540790751112100273055686512151192835187911949462576831046615651353779896849866708904338842291524502643870068553658640687720840558111295440077367557138377211986146091653973456135718246610221897177275281407327051036565113077094477420829164545892945134061487574211057288619051023039725763862186308609342981069547095890150279362609921285635644944533431821338764824510610066752274504866071477605700975461671726179281318577354387938734287661941772070787801734128215973161345338999523510103718259545667770594029014003315393521117040936145191291570005393926261107662647588834688761168795890589882874881597016196286279694839903042700706255513908772444968939020336826814122637842524701972296896501447786066695045606770744228371240570210836679566795757840094267966937275730359812249058923671639509419054079533185622469157255350365069918865744500166681021513549894452692801763378334025251562018698924226706686303952534543976276711203826386693121423467341486966955109472537387520690088268553960051110500338419891272241243026324929568309722119271778090295865635952280435686665248714116718868269821428805318335683405960754532729741960393715462247914152841585813396075208378225990673903599144799504803557623563848281173531604760979792846871331370514160948447062348338764215243860098383931617909675678546124471378790138945320084568675012249866381862302132546129481143419232463532389276706532155055978941918124004076088621477414264028130906802846597731693989885709633631450692669020822257576296695611457380813674728069616368086119730840256427325166190351172131078133489897532574684049528819154293910752692017750407023546502977033523630509726064967357203712021061787379189360827629268141508590812478112415333573098094076646731459288380603025085629332881674713857695183099429279522526372469992879511697979798525355413575795877692883127642452749413155656513311054091097933163950470628821123335798893062581057804815170135965085704505361323419712220007125291266460426190834356420424314535530933777349930371073165745361120703739222953029322238320994990377942694716959387959333144727330615629281315213859005172882003612939782122187531416168228663366390465937767411410272318709889185125642910397707443464622436484191283386737610367491448928333352451333828165270155928219038095453128470663125926226561429356600546339193999064784398146864752670385817278121909130468199490803223722351156077468236777104603259321603936293566084160782116081669423191854148360116370336711538575676091961808983882435875168651434782917526711457841537360591853240510467380417148265252586383098504577571172687565784886586847104394717021074287303417294929198745791094210127343250676498559336939015702522674838580859896556687922458450226074903510505032203412787484532555382486913717762507502755080088300244648955889801590115151061960570701310429940165579117487102609224439302871937101215870432554099724919215109187084877211002633400419256961377370918134824450085923109960369412314378390372581297565348752048309315793836081300081193915315776462483566506134179135653007639309802014153771610613057076953927493745159975959008665440069779732274474472085453804049784463113366166024924993588209956074663565427354833086858840096467973221957411246431262606424884967873811529447784617491756918604854455646032416668791675667266091127404857279498716730688690142823195088578307669123089833274767356586902958333056452532347949502323746177094525970827695440988222502026256838077294092666276088069563352515205386611437485253071933063734025986114095861160295644945917608187355478510010223815103544939890793636435274051288390614181887943322441780466674994840502331533930150972901362238472006224866311115470788266133833224157565833393644556367031526147557173446740127902637140020417578669920265316136191730949944074824744881881798894304795066495874377079869918868399939398292523905682800946122644302606701099770886177032122204314108875771299131844200774547291808979801971250030919396957202261731286450902446207210349877306727018065496644560315425671198219494634707485349545456881131103656518820404391444770095743027234092864649993417521714846852074072719798709420437713366736487275800725842172950273726275694911383433516228573230963185129145441556353093575750625050201351399795435208926712055197748881198410978863031022554517483284438629100024812252024789848002311394896208070615221838717858167472207017288280884507997946244713098036579865063634497803351316047901214558138370686594975803894974583080612594172879866777203194081460800051088815990341752521393486417660161259247706798337533592701708974688885237325408864354454051638958741751270556427714400355772424520557849956499205310206345254299312059346508518557098608719255827130043255297588458242131565739643838470808192234083953076955470605671686173688578042827794667355571186276841764310934280890718349495037305688413680147917172989794893768604102654635451411302144750482570482336462417361788138994003612270484218979186151157173351184907070126635889401112287600254141600523123169150916355533611956727716793153409807153848106332380690497134489968980506157609712806870431707635283955608603070804184927988241454128039018064720834228532637740676235574962537138489725095069159422374484839546218713180767605674178604887387366563543074418235800613794238519732831390299653084340499322496495839294123269084555822272884720225238257813962568046682375864188568833626485601305588047974146795170156339996863704457438837786673070922129652785338722063605648327076429377531559424158953037445416376176583520589869910085993617056860508869159086860667308928908834910631735218237231945252777091922402047098893526141511565735415506794666544238285073834360342738269886915578508871008874750050839687430723747669254529329586627751769365938464844054883252181900089825212605346669525272389858517717432570799789405581532940471607729582798256868080789003394674582720402535080308239315230013619134330484413720387869101824621512116326067738801663832054208490224006024239807588790246318169689705258506329006086262557269028349380098651139797152838494907875958957556784066449152023927395221203604850869424169630722877851034516525470765490071122366022278332532037491049560336755729759746136226953148016687198265693070884927986548483269833901463875683861455599155810677503793341207329651551928707479564197418899272922040124686586968596372640093209197760171106484848268653222191333802336318384996481240586263465781744040160679197022318347086280383448499153324011881172908809955058392662777040316369578109049187825866441537039407232852347007768188304269562271744830643037774363163047996925280137341093434894343808966297249774758553430327873818646669811803462618977691651159333956684211821186476210993444244656527042046226462408257186439940924487928333568024136826384860699219196547883873518624863496413632250712877663239478407360757670434188970021537890340132528395372949924524962485773264491370959872688945545755843619929183016915364011194544008909242446831289079216208307228250986813168951193890853480103691289514980000716788941877371984113008416671303678675791910594235915315634675397900986909341320166760603992277033662584227117802660280766117185626450701438746376372023803649210794300314126919627568072251147295322837902070771359113799875540352037976815130019256406536574951118636930440580698223923417589550067138764945418288366260256924557885501134571005357052300235898477546923215210375870145318527997358280711968928267160378035916175334005875522678159536324088794275754708146871913968014368562464377251909467369045620795019683237921731596076818636671991259755019106032505189389305879367317276521841248847251805233320042510021731596888217105991407771590393779041191629266842513649011093396055586315103354906934608862336796652379874129013920710799416198468686603083465352642233184781796490176068706206011735194268930306909181841276743397202578827528773186884265501836890905900413772980308986601849455280203574393215956437846833159413901713394627668102948307729776969492098826879345363681159874086767019978369031217499177347605289220752154058136631210243930082728677900147391497061494675451347460290577042532883285736964685931095022067706662722108994346451910796960506124581684841539270032146766803150251874311070950787661166313757071136092115267753381670189362794988379772420744932831159830123955742972603172071699497423202016327917638072978738005208363318288368565409092346509961668905486496938036776570017904311842264381039884050502254607720028881321339826364309261528679996858322926319166619266545590766575745676537740752739807819728305373452638790622100161381251478657702214050814745650311099973816892364485810940556204270546048998259028454229825118573208663672289358473940487094865418323938091905155939709139709895847489882076002178160903678579553666518087971682084254468610747746729338146131234711732646963296406420308623358519531992260785988946790584974759463314950706275341782463223520020541441857854536638800501158172017445919599617818048342249635741137358217149207520104540510402210623625510664931437065164176250103164406210467138307489217460115923387376773885033653715726716871640623922007751781180432224236615702043051824886982216249897994070322839677583441405773428782363573605023500084593598699733607983755884888179019743752767159148844697229698630015149079411331241705695060813210485141163240146363641035101080318880224988175597064266716836120830636310143319538288703742115402826141453637401658897636066819729452007525585587263225846072766454412671593046526358790685193642116739242429806671472775527657358550542875393031258357352246424083486132247175089046527985819079858037408609524181289589050846049966734759901311751596110851503783851655871266919734220835122841355306608595451262390385374736608939426652076442293712410503828033856448591143363608582342654475810162785956088237514884276487969359883804884167238918837691253882408224331254439820451495722899351862510813544576283020409901107846961679372893686890603724406655221429978842687328769247297878315622568962352783087297488066161853541981227567720697551889162169284424775799179595866274876505978336637864222661430365707437028820309563988508593873678420241442339268881857947097531548224348299530615362084220314788920279355972359432779840631280026093311693401804538896095101205941219483647494518377752871747904456527702139166735294035200391014068024723073957796261660330981545258449158765167132222534115719483621253603543635608297200012458712723429045532671974553363009079269710443080811230122910530064288517909905174617389653652203538654512619854393780844649398624549636969889712146673153520092613972407610490617706122321568201052452674159869970548469419182526794012147165106565993697406566437277903130505601031169296533701147057578994590217338459623399621797612695761925728010541939829477085074351278144396790947967083226979712294133911115779600839312919309179154565952605223344469119160077090296528988808959624156702837061862527698007753082551330317924092548380751299458719381634265527117061964159523041509911239344756820148105103228838789795248610308118685932395249446812759818953186773657885422874581871431347417183619655196516995138294764530070986266718119799593494777751416793859671303079962812211149996239028240564732528317299401683417362650347104196158260879034361607522114042696109498909464937364952255310635369243878516915273567803065160218445192947895701198657326444729699268741555807545004046705572435752426867744873827691701445581300622296567404929065126830412518989854093820654270398081747013950466590204564682124145490500125504859497105062285185185673733210033988122045620312928830932582992273005332027877652736429101802442248057057525841757268680552670178857670264610262328021683745458127434350823396747951691311435593493306817618025875286479407387315044799715190646196291762372603601905685923249759463854640692149738644857028294174414213249529927728180561586198326024378285219885575408281998904160791282528619120585798176092384844341329799747501386559179762477073732541386818191805408225433996621991931207310627073519542928085846144320080502062923623085454119896834034423135186123229014017446297616989209240809432689479265842025093900658514168420032339763357938741217838729428881030364032927189677796728768052667228941692213221715034041538671710729181888920957590424659942561142703426909222124505256490021277692127460461842518058882123192799951148309713897933125982405352615487608975176736987917786184849141256581619841061759529789849569406775528332761201514918190693858717936626526262003801765241152687197067821409965399614597987904818442880777878272194378587121416534881030354853827078436940993287696479312161654381567786044790270462079542044998091964331543557268297922700499707384226744873268013052975532488587852644995013143648070600764518555898755242878189385143461872831182100272537776161958980976798824265509204928910199685117789855055710137247047872202762842168549996958351565688979214431376786573190455971853059332010763392160841118807375412175587613763363248470400161443071045214789876474618007785227584642781308962600768215987709226620141854290755490200369245740182847361714979950598716888462831292405045217215674184342992318346651307340328320189257605764427605317389952072537514462477441267215579189231576453996450666782037574695325347132312703600082886656210485713959283581933492888721128720315072291378344880702526721206153353694626803752393185799565755868075616045981905770296891166213001941298012644594729590200465682598994187030871268247810213365710116750419798787656725574738800864008193050676983593657169807625742107459834655582675365917428139087156262744263459683522147861448674073278306965228597644216570001958387637736838996815872483981269924317328466681155954904893118807670983088747317450831717528394552061397460530798219454069939589031078116801640114448318472107452930769504741177722043710963323156663464743373346733273939067099997753040936803603273272589346356335775898115674192476337945950772514897184469535941246837035164293887637274279469545176584871785584730998741673038893465935415660924124229200804324486607305070030695261938878218921827664571296886739047132652349770886957020574720906706647744076226907567744516710607803437032563654134581475950468105200715276093355838908913584453415785273962738194583423821506465846024957581115069490088597928238072282583356231952706627521411175908055011600403154685563362156247242267807797033646455122363942826381825521916409255282778274495615651753011328462850087571744037173817218564834024135990606536429089924242951962908145413316760403018709632828285600429095247632755451449879105575999319324144952606464016448511587303053977208310243862973013823319030918413964101478040845434598927407226786992241593333656902433589967017666436249953242776560551819428026125735586698684131778518175651931530927613732204301644377910342514689524000548341913830867219558429958729251309161888108431694740416694514261903212084352701183279266950552350187821995883400200790138540672553263773785984038204909784156601956067865628043807962496044295612375059518095527181293706628816635788478970738044184904653634664571467249087951554671810359811702584690773904859324266308877283614186075102464686936429005860348327155544361389056555765357591737465931862187115429637448287705516526889805799970514095900566727935790954768875572685745587820448299366065972457709174887242517683579594388962121477792388067591673030497846232093708192809927152897790643665426961935419088059130669843111139333818044238358775055847803437857658877708964333199556420664375544564347971471346334365837591869934452187444942783284207401291969186590970828448566579932496758346064983928812890440981622440679800758848186585077677287814562754367931430497985040949174241709684779585633759058077082490530755481525723477239223024675507994917919356158121874185560696416360725395261768069025230797988637564258529028221976666378741049738461064296170181888044003740537806724381960290857249247234059847505213631673617158170593178171900171105730131483018561304174773965040779187194814100881847059400370432524035293027229483775712735694304988319182659121986892987632659615763236027660902066363277773189417579077055014893786516483466191349287812770208090957688731187427615237689243628659077721585979723956758480089286307518153246348247310370072251416374768111026106366656656128490002783821906095572812899734435273085253099522696884915130679684571446451770591513209089089786420686096232820584486657164279009636453932169264723733054790342679006683428424020790686236131530061005257274100868149792785522096104413163530901442983130954468484375714416178785943756882817910954330824772186793115059016421947737608493343112139854407555279556790120045513450252217456595922349492657144275128983844963993715258504794374959200228175143851326416125240598194781824204017322888199015418636934963980146528604002439355166032657641134274608133121336697671291279744965231395871919553189803303826967322359803023682798032208652699904515527443379997189646603562994681214490951021558366236639596462266125531430057635286017215858632985917367562809007592070143150780396582701708453681028928886520151247612689621875030368130221343425625047677326210429698844054306264721601070611844592119811165019840502640645254740987733464365372223400858724543741795337211290369720940086785186889865690761481694070565243846805033129507357447038448804538060215943299909703776355914270118038500144756826896118074369863551646703287615040380176581276549824412642652765032551919157384072767742697854747495171456086587940106896110722591607492672710891108597303278155277259053679809573882386023062921501102441047524239485874255814216441143806201232954837969207476874902048064969804294952517170143885574377942463416845528548326888151293425406580210587014060310757014597839725644803731803685198603940045026937536153426792996479696383202315122169751817515090623971423751142471899027112083920552283558147431935313088121555553776536863973379602381916927593568215911333631268451144542213000100434567025917960094594459439804825369614392612043709766188433642949062523202584154480649215214858520912114788764886318301644985460694369747996000048601216239861996721869450584567005369707483749513149022186793930244132433784631719271340419377900848040302374525896285016585554023266901221680152486415457622118000218760798383741112853190005061474336147996618113154244124134610843644229855651840938509767613462018852138769627023880808453508761809988952941572783178483226350766970483391728291001399254799711105233173121703987368104208444615737185058226606546584938054293462448710785172287392332634912019131961025906453002206824497844194565557592941133846401763554924527895279935727916919286752634434646423060488950946968016473338847754076355235506891629937088115441436442198820531793507592383467986802806544770360375736873662630600835898370930854979568415580708249074098648580065490471817442879604369776804637798984375782893489597941657108126473779476705794975925272702707622861824134142067316835374311171607063849071526808711739887298392731050858071060002302196574220883390569758442266757152895531622339678031689773854248986326533184931050023483319968088687767050644026832140501880385754609394677669002177400995103368197924073355557797886963011950120607915029253846204314321017297543492970377749180131644726175889892125715973136573404129752425988499859618908541059244141876342613369632911971973474725628649659825580396540690746932104981461151261109307432969511286707542950836503843514436112943487960567331126527861761886527466701539608803266511946577383762185320533421876915699436109759478778049910540315036239301975325674288423877624086816767493306145859506289211701154582719747268617793520050102289224905064021015159923264176289599410123878351911876445585892681107202506377224191723589265526048579852105738799694623805230945434187711779558674647303262304423767682355485387482258886452976982508275031806453451696135481989569515910925235478362933501321993800796814862597075655318507822147573338206141851974470549956518318091763822987992246268561360928380290569478240686344438718905655579602897012276349129740338913936280886979781200542364592875562149666870299603216998423701072505085832912668423014764902929530400654207356299571299478883680151102667347639838985167302253921845194701898923498501860079011840876845305614139321351216118456860545928534017304511754265493377110257686380847930434602216082086192541652163379042411835516356806546935684054147308557366217367935962071738281939464798849114828044359703061643108405125956370816820897124812839738187247467761277090278726528188049278409170873022267432355630319799870115747016971071327139071669985217048994392796652834638005092396871115452100219554543598815753516813504883559051733398799654313138051610362342285738429870285542666592751896585060835857334981025774749965453355899705598658535999482855541369462404551067869335356311100921474494630050203901435321610929268316220117934479148318073136900547958468214196219009807745996247401098329101670183604611160377971933414192120246796205097597347832706923656357382269742334395754112255936696348449928384215726472478875773237423022068414253528859801077636963823574354918609784178836357896585982112430700466948910974409865548333243183546906637136852094294587632186637562169701320551406880939012770360919027148621937389442141327164599352721806955364652589465714397188177149018153477112614367921417489488032417370559688556015010892271985886274423351202828765664890968942754639933060628850366190739931476342855682226346948822477476667258248212731377099235740165622496165566386608037579518147444793433961282020469748965928944188265707196682647242291216082009197443512985316594560358960126370690678052883053735097272225898113152255783621842514201177460241700030214271850468106523101282433443204113956343868011997694753941995303848069996989999552926481665228381527286015070400428822718038554382862286268968973486251690281750668524621795618839849022048931046671874465269133737278872128850443491779649283046307891857564537482287199684328580055943266472391785642079943141607688581483378835865492380522650609431597188134640053244421504087243798675174565592881229914165612032783762387241142313888192457336424803347872568192515986515608250429628956366320062848740500494340199299071293858705115782813005297570483608603394894594695651194763437987869571640443897329379726369207834253529643252388234876475099410824848774752438244127719415956465414243326566462087240622386153289780057651998877139848874066160828023072896806026992221537118469627391214042524281958492091354318738798451410687313888900034673797088901130572979172794355691163636806048608678519535680525579638910684286230071337308635239755937774219042678434668375014833660220767461848934361964195848600517746145176112126931512991347944074580061851561575492365553514620942495668315243858725606189053511089337041855096982882374353119316897087433689515197598637420901238219316427329763621661891661598559425552550226489394370536259374627707641103554508312461365167342662993628286212815223022842089706620785161193952194993222669196956244185332096773311412565495313322626692270309967286641748994496296721424129112629638424621326689159447407243362058516116579281093296314531841830547105766375364550760954828391356052962566409436433065646160205069595039631720290592607087838271033586841722356076576444590174476856542925116572232884575368424141898935318983917996703838837332010742691817087845662029000090240698956657990449698332467030037987765388046768478616848570103676789468585365222240629028654178201072927443943704961720761292044037460704807043086470725468898289031316972279663218190392720418697950605953709241355194851766892798982963962957767800309308689577194962535657410248331501875049608210293172936611516524772677101525593150822552210519505664076260473953039997883548158266019011955894558462773624124671897385825929347216969419176455067632837068895176662649308425028000966361111279928642187231023874198591002794693389390894744105928891402733258369360518434775135213762403586393797711518857670339288352947710916359194427954207291651380337973098660649830728072324234406381917858920647332601597444847569148506485554069204076878475961681592363356838780397429665678495799588821944889623786956652649335948902701721638749709748914085473975147713887134228674401365327229041697892785651811654554629775958020894602381613935988810475367237218797897668784695234161316123193913671289255092367899081514494213658616488261368829999812558853782133703430759191024974023053744287132983972389168068638535127527306497105927869898500355053338617670723683651616420183814333055821401853684507003044432623469730287106355796637613717994184836160095963418282622933394316239733532234650172638689338185824927161457152038789105200166778866855350523091541923782255200989145509557207880365835027656308207249947359990537887619543897675109740549163971159725362764740276002941870917218095071310916234018066816708288500763417213002753447568451533562969320659596103052181216029833810206425407086529586689840699075037740990326665790715197460509644024082279361168603624551913594339521444595099720552521205688921179911076874394874405989758523236884079679918476833409136191419842330815006404644212533324982720805764229917571133529966647962523855891546607957522429372399093606539225245699004981228876770253355399869931562986425212164463830937352232165686797173265234840408456861748124793229953818115471598876833533383305735763229799064681873210102716602798401666735016662728296370923422618965395189832314973244512864261913765572147273553587120129597725911481286744511533960072854279496306564817578737270142095355665065287974510813077292519487190203882872808440063728123624035539382155805123101786569916870590386556604150662779471347779070845285821054098992685103540380441948163672576523472803315583674955890904526622253938516044669367324540912384089236044244117038453205211548243420759941925994379304996292687855481761086810209708770859065895903507102459483715246079785801951102801292531329847070549947363976628575040097792307498333428092341931730681941476898202733349720732897586248736392274433099239459512593517791485643598490500855793660076882360860242462874089070888414157082163333852228176916427444154421235158609767138549331968315317387421740731071190921665163254544227086773650756061797157440085205526036475904626576652479829786387774916884691785638836003864164147131115263700367577858069153670920373072823382089111570264054767794337243322025327480967923297237533701263197613181308740681789214755576627081715767909705528071935909738945540044011692596336536396624893798387711726889605785886809547547185829174739931207760788431299634863790529126226388938917547498394903584050141149909435657282986593898141931837032946073493062790834965778545819556125485473192985627889521785977134321996007914353951037391082461392244530656714640651202687284711767973081237512717797198696463973343499818530837579724113736163089046480844418081986810623038353346273362511729467176854229294163233005246316678675910295060657709821137454222179011509352207300155163357171715977627016126905930269188803608334719278213320538305697955874162249699846341918717801430928637360506055830097880409619909489111233433211366911069784572124596980161854710054352647396944935992948561099210597952242830797881265881981126236684421850143202037023263488870175219706051387463588051025223013077017966771703593013026372123123563535469902368338406872878614578965359422021404424892157528722038173489015893666178539993936950386820557467509569756385530366092523797056403040245979423909883053686630614224514530941265059615822940491562132727311412086551523845755075929903591743105520209407472186280411982792804753395904512832478249415149572713993592331910156981561397843981735105876646132525601207317499553017562283961210182698602757409528254323589445644056521813480629604143664809636805744031201552636598975391662008935964015628689813927308938171364648697527963074904177821585493536278031205995638115570682383670203793240340217376247650345542322125144625428087763521650639014198043475242423025332750591440776099959407547915580562882963144665483906447198741023722129858201444424091146249054974224598894196623930151976855887614910689037965882949564198525003629739231203444446150869371943172969816058323805760630070946858448248224108992145802212153856731729461262404234227923788687957946252639392026808360559059048423245095712227237804684648855647068975963661294349918514731352964756444877374707557686093584094238820563597449868273795426949861412959835213811124828981757054953919466420679518234931612057370404208024667012849624932489752972176685523425555328411150089886118431027783521531531245796415103836786213804391865891243140265708860520371202081417612123160409427478777454125463657619395396742711941350463053181503241402090578101224549872439257793193070587439317556643140773377525825341937732264856445396380785686485072718233325339676156624409686356494993909170492199005540898255315699861169159950163524010645436945851865493149870647283310564061806402074739468070675874819181381829505330430238716340255692634929074813960553613177537165478505214393828205866965657232424551410810623951065534888975128691640280540626480276806373084344501029683853173671272304772321287147844866149331107113965062327825326701564657057800885825354873604694814620963240241313225106594449032496407401789551654389181916763509050216731075679544373643450700003064879515093421979734194991141451424519305345469590023607294154670241219946551726737911746265630107014844979501537350715304893242523257929805139839859239472040267896535910050115400091935916044861103075908840983180069753881434928069795241813321385745309500229966835306050731885468248266261195300106170262407693372798416691098655190573588996234832604648995980826867019402176351873347204781433716075522618155248912283192072162856578089723871380933717755024342851649045406807492703610588985424788031425991714027704559207439191564212245301936487563293806512250484645698703096736572577445389754390964323955087656511069956014950032399164742084492021813321202061268809778766581824148833194230470456643804953734000203489637992380245794427587448526023615798855621138888863141084597624496470877134285647853090141104546938429282538025142035019844291236423345170469261457860334465285436973533229703405374148549701244975735129582616388457817140850528523046406766723934907882883210899054849989186515152416984240233695341364915252822182158077066909121038026993656099701793672592413594290407639690574255728645090063678145304802561858862019905399456629116941952423981348432353170056690628047182354807330611223891318089694670394205926985566378249453998529350895556897386060000330348615786986196498709368650875408659646630705631586478834977020876734184073375027524382957759153948000262075440970558724098057418633712095535334309576266038017303955683723225026176188680970445744242501440070202704765010531498639650446280402361212254506955696332558530480073643757871967793479974902166829422003806738011939265379444864745432967003804528255504056340155476524103082128815410785360783212186283272557104340725556314901576500489358166765688728817445046179498075040451004031967602473906498803562179546580852265973773945263645226410764763396913091288847434133037792587001571605205112088259101873919023810615913700843898561713618175128749350674693924236604114565034969222660882927414319751588294705298591879126119465354521696214390965471699994862544648262843348799882719135806053847041243723088041639444206455830609995119810088656043994464196299813245938275119014516338069340176108314297977090048706873247942937127842077191462519987806552267100958062067841005724759655125481911514816528882788858921121885246391922525241769949513100138198116460531144088299015252402532703906265954527453145742515274289053003780748234348474032186723810839258256203042808557189682724219114184906506858844860910126236367862068958086558444589478915755027848935768072144907985244624647270661053860772343427592189623554830245861222735253082307498551142552956277054614741918666346302822209596038553651270273875708415395739066355540707021830605014958927300884412334053917944677365075110613753831445089231857114479836374642172272268228120038767361314824817079130659666977327224362089262974751788953551607308405754990111875651393473026362716922310586157847735445344747318547421916118480200424373982849900432529002995675775672129992857185442413604251229304903471808926615439764113314126945221483675257235006707865225994268406749734140594990684862149614033551750001624986953790095716229214905755089666753758546913176788258942635715917100482726076941855920817863495340173824712075592007113850806043039953947819731456918449590736735996148995610987150519102908530276884768903438692364572301706686969600832449109963385234675951499286550934413003434683071793671581768370959586827000614601807027704273632364494418811400986270093184227563944930744510226769132514843840421157142709194242059823487114481737406667570043575274783475159712385585672004349047662109882940311227292677506468593715937016207927162882699142652785374205152097710171102558145632020656578356386791307040084596395278515678730164942266651058395403267464819834540419409610928982409617137040672281165821956554609375213203883735360704232894220307998168444718707488489075245892458511510416605513707992311546755245492317581865343720471194683401748210888201677923775694178868844279713732899043259799173111914170994879503655249413952424745267489247843741541842315109630901632067175499542504795754763888458152427295003426790109108813349918710173485583516504955138038772640086009794986270070439537346345249901289256711450904620042703842122953705963465770701057588052449881146911864754101723688882683271663744413930828316373616412560369825090190670372114215002682673155505792063723114031336134838719859270233381765035453757980419003035052005736248518759578656442270670836814032337024547405027271624250037424403921418925259023305819872174001208884942352329429958921611754697622723235773444668358890271914326705584530552640057494013174960934595101389622214079181938935553290182559408294736490952655548322553961132845140494517757220129383293928398869999882629924311139163693752681510103433517218524684897071063517536168906903661494335668695552757272571193505786409905951167218078479069991177649761820102527522462413677242222254260668180262540891227068644237136471195667677495929463877744836810841436336643483245638998497490192550662931903680728293052085348244024304884482804744419796479340973969541351753891910786041576062650818172927451173156805165302284835978242581087984617847635503378712132210155695932469149265998519385314670795471131169561736985986970787801466701120219400943261732936772924102227036072780538656048930856460402958379904141447391991168713080632152631179534417972964917863760234251380085852010957327084386635598197879855854807721826113370970270754967325730711106734090525620541339577303645598820610140110811243961437271408971004240044010662028054122341338883847094587604370411949487460191902345166090273419787348393679593820564409763670792527014127109407017635439862393009153308027592172023205462882738956867382003093955644805013598132313105006478799783347914621315820859941411646868643385989026936325241578000916532486035271637951529522106614097729625599931343763016576508822953404720092307645456591845000318408236512240087230408397007167423866581695918676092352112518733017640072364790965687715848566187991687434667885659179405347557883691262471671443907975710183264681719427851384407808688965984439943120463900548145995864027329265410397662774216592347261591917268549141325484358960964439540135979195407050479566099656156415498830993807379592837231946470269104844569686444205959572897336616126006335513593314186345524142540452287200135817048490819637736627019383734332275854759112443047074040678508626812037655715499149141352921355211837231030642434365751783222167506320273608984592192784190576786077725373497187355337352594016621666632818617593332103399631078174020638941638720652881165219223643090292505264018749414765628047840961775153162343605135214052241170985336187170592603192014172935578521350295741508258454711270292996950061573406056719158534916231288448663083806538181149835966271385984245135047313166353574855615420720985346593650401389923236276166619599706443139577519595933541207684132942375022869550149305768566170126512873897264885304934833665217606806322677196120256239916173043501407039177016320260287972509188013511996778960841971966602277659530025619039277458158604834758386881396644332172537486500573110560976202002906038175028868488522372273138125193497151722240674883632751782847229725892093329681068627896232711118231929284747565170309952686835158683578791080354326053213068197929669666064316128043479350962160859131012578027870690971996414202439691770938951587971240161248923503273963205245195895180714385381242336130250821162008600228502441878074039875562220215973222205294769128583041053143288271978088886118422059939129516635420239340385991445127066548448454483298105413124786254487569213359194084503256193562188083974825899247730288088461744660227064995824645791918679230238353966583403233390530115639282043500437848062172766404978032594834828381063145091778240074430263388505639184898327763844684691491155640448179518698935943705210086897101588613758302579205233803426443714706463166731881503638302359501255602663420986485280560174796356747330649209081748322804881853827256142552005467375685207701436463152873722990284765712894684011694926900098870711039029966380271560888205192031386678587022516822894082111286645112626528338364699282171263548529060545157724341371873391737853945743869166029455864749103874151417482809090182751677681227327217881061396645208383152950812316729375926652298105550258247447038121481408117995223905451016161375177271494639562083360030331995477561632453174123365439084279658924985390916499179751202472352032066047995483513847233148285863824038971681111813756983141545341149827017009347404635260985004781527615178648737884869250478667234257066495967472702069403645805073119752766412742350335296397295698600109579304192644384283766343614722842912837196015548889857221732688514442129802176724130477972826817225521322124486352386962810782987959954855895145774086839345039513851310942825404002872023236539088232709798974540280812777659417475042265166908194233055378354789815515299176136480707527199395423567245697607021729981628467181864669297359292871567719293031519920574308976535513619126835983536625380929799968535434920616214097935916473347532477913629008805893303656576059039988261644634988724984617214487943203696922222947065960403449493386363832892115437876013659842697910696806423987720803514760106376936774717802275112535299059668180881240781321083254308474209132874480158721451419887480868050845179022873437170439041937141376608362275225011425756204928682232265450143285831139004684354780259686066339067504106877867766081571507473232047355479865046368120105804457647072868007072793258642814344532260900967450476315906289415396327167749691731038109573780071799430715519181572231456505663361416602726497957156518559196727451086208770958271545648726027347262587700145000359397293905517809371093542090762704823023437963436258526823070902679135473774225497504120086761337792987690278784787938098830854836239175386587142043232528679259661113265981564803695120685891182502200907259168170223731984353761283420323179287303523854326568006956096151345221962376061256718743999715549729886154888885372732672140073413461392714425027449458066684800067106873912925225654733472834973006149686173622845368071861529648395483694024300992500037094399071763384301559297180972186469436910116388571218107528246717211420753888994808658702112193874800774292905701191433105661858309917171125486930838236096361993442840596930885088264665485882843832348846527857921590962142721389974370950148233820541901814174119878079756605467819671288745835397681361022263519608207902905502222347233869087508128273641111349133207126273201362626386584807759833097863485264531049255300883620035770650697498930337188255417295895915813141617127809647800006965530604208559378650377360243291808533927416184924377408274180688628935399511649847980908583870511212544067258886170879837741893874170460163177578278333676349368913530469971762576723324822766252192038139680046842816111034841986434338360399526684483184046763798305534239558891798266298335536667867068321238836010660635250193686182549759625516530068412955259869257425306273466009191579721774838568144745348289505033453480875919569565989182137520885996463489755461278863893976237455873487903344679635548235961371972573105002458024568004728517619020821875540982849491712889689988882732749082510805381387315183653180831534373380244299217025215835916934686323984001715889120854334107427337052356109927778014522295396841577895999461397635315060866728546347372085395086050504963626392878793287020139075359873181797159482119936063310860784583359361017358505449387511130211439599361296591796891380544277189924850554646060847448144380313660247860046549282478818292273711292853374057003753446670409119868466656847062013675347280661536997160947583056913888221610414835523474746049575490027264330071374353197801558210935073684774865394379494225315976254684949766055620197853080351399026258740460025856462159049490050350988085000053948805288447687620658650294891384120030491306607802435177747956404118983581540854811478750469099607676320368884952352279976450266107821530743143777014857127917594853902750368670232430756478150806963014722905527095722517106526540854672477905904489143725186940546689106822905762968473087411507778083436232246637740038152686766617711400013745983553876769568090984851038992937045989367645264882645568079363765333946082229086795543598568537355915198316201649572648022635465664908949481644934965387007816312430556250840263536268099325761503908328122698946853433009089773213271401957390351124017589803310311805519762629256747803618914927192476826094994377737413179177281432603626182401317211638723953724459453280809193944981748417015314810134184367823400427982881476592738479195390490532023312928590255867847387278302201151377245745882477706766058251201922300493545027900489521439472320902780890251405602330855509834865849336155926021968946717257682813173442159186903288559876115668788039987227157290651046873669934127044063879279606761655431195685911605249558555379810810492558882400089951537152141641879453342672925582955090844883227000550212829681337349020947731707075353639605407189219419221059441314960869918962029451857174435566096040249839513155570894223960418933617875339870066540110274298933847108421934571650496195415855682874701327075921615477876982061477626809131298515601741479940095656271399471671090680650728134407444412894162456026138074361104305923736736696260669980030955438038990652576064793697536009443051073515114663382264016118594333598332485846382372729453541110061167800366778238671511409110985527605546900935988148371619041700101054438059540652090696882698163038829462751862620912710317346826881067244537979073408584610411527651441644525821932468665110266033806584772072034552562457580755499468642633558250272461170887202757646493718571388932777335414254309091008339189884578652807679924267966918041926381248269247362870773352333106082466918943069130872880506667702689179029706052868828513177543394988912049695095385503155640734690797948635375640931258717584972740966207362687336967886641669670383115081340814078515684324963868440740194358058446193863078072817640245601593430321414959276815672154286423274306668340243795312735336889452761245284497468390118488221972037381227279272215504259385968346897552343995397804832075650556627532879452195512203873677494348625151023778863070637386041859935198101796121837740406734198176743656758370193832655215595427864751782103888680461650985059240012891231798407538534127457967773901022795237219142600518589307230587385835155371347400337274034960853749806871476989385239257811389803262963877320677287582216618344870690822498594647286659264205596062612697083582111828736081087578238072243993899133912769652907309355601726486817351301575756779807024783497848772174152418915820140429702286242998843019579429977041236925402959886508094598199196118585159501719872211910546604885452597627316132244087547950259551448048469629743872379559625489631025249009657744196497685359146241596392209933314842014742735024613239280907216713045845814596380883457441418820982823971744439616187644000282112004341028741986407893880104769223140478291090628228846276262645851809732371372010291643650674361676849880194097494298731256824138897254034337484042856537309351309220272487292191196421048609038186691928898145222299052687479114000002416734989398804338975066244704103511165546748286132160511391853381783069152988829588778028801696115377871980452206924139161175084924239081797747994873026330434866119998552523226763819582439196394795524931060803821712618068745751611590194929752598869812395138315243029696029982758213110991321434017929657922284938650402526733198749657770570998290485994555800402547725392034264975585710056101262492399063273958188274035900058896776343092309584985848631627160297176193115429396917656321356561075810218118685713660488756871519784193306062963394925031280734096855421731246078752068786561038228710944608238617040745177070767791445777198078658076693158086777460227743093416102697365280861793234749401991276176000044567583636920095546563268682505178492501806333362465131152200527740242685633029600996480415082356496659159063316539815475405872983456869727073979505928217502643267389084880148150865459647114114038247954885907737026495046455287928416833602470442987389858254985005146496405414285853125159647030852416873857795628659892069159174778110292614388862789482254827904967036495897476500827233065177218587017823962677933614624393405798180753936642351254047722319912840192923985086757118625128912820118127944164344652563721571047663493784932399804492713303315473533060273219084830949367884916191145357107178692735654224934520290541566728860962929999672498840836057248179084470022988975531718861467907743079095205926016287184348189372023348588080048482830996695786768760429216970304157932023261396727071854381199128544591137228118387801123719939588842510352318463146219937524096384525632559019766268520723347470035077922658581193980455239125047796276007290505857120855797075194671435797855401703900642027759139736210589184239331176976502867006344938424270182241243765404680103949270311089781203308936322158279692678214468795294539552123768433762394775707268506050972942347218595661607052908429604582375323336925782679641019006977396099268793701348970843815521434701416437187830984692415794710784309432563087385319270328032016237983702440134704105874676215916575782543644244846755786747789826671450210995344867936128330772926157385630054278980451453346651060226782194776034639786029428587101684809628826871172693688029427643141432778623292529147857808442877876716384058704166070411608626555740676634974543882419118673818500124246241924340463922405143383587791064622614072228309544257224675200835111117829742588643279892911224315472499215133869432464398255824149298068014662665495620807691263210505712626921835007312036460113577268011360748735142460687140832705671203026594777377187954542754094315229876233197543979965582298218777637305677243014886877319698120764069606275999454955931137258325050154965555121786016447778108186383469865815834963051991442441752394734399375257522628509662326618699120103476936618560636256604146919234537964614490919032651517926517939162759039022203596338223328371477602996134034047497407148246237850568885964835798929658725678796255285565828003328720088489093681934225161400760020193657796802315793763114540917810929523455381055908102249237303100491419053919631780088199920756123838118589158838023025620178497313589883811286843895332748301770834977423339750364474601939768335445946289799546531885698589344551894023320008342919397592584279965662857745941165114544753742223440646343604111745147753469819187805785886220845275679197955810563360501019188166510008402655055907403595239020591773847680296698830594551669715645741818004794700894714540667436298275326423023551279763690202478499426089646192674296468856485699576172670585435832682039065800859018951071175316781921253402530700336075012821497632860131017095207257642316374672706901088801344739366810919448398387833413711485263018257837503282601965724277201762992980951450094163199745256656986970394475742713185697949559693678809889611794985588235591819076826243004760061083688159473259714746975067982435224254512927638901608207843545935072125518974326781021306122809439463833528680758312059546465419991189574171768653319085210264741466440548379656073812621713690167945674952973565500098109677382176368496398526100443287132129887689938263371224459332991713195128236072591304643855484749128839885001713865565023249161468643866156898965706419027809387966605587132941355114657271618905389433589465488496662645906284128189843234383040743052083257951976748274850986378539764644309029188842128356726232221964977691109302016003018153869227335002602594105684360186780063416936951041365912956188717913497282478866338475508781154739850177027723140190454353381719330661533077627017764267831875027321833301095496102818367144468650581223418169506289089384152327999875114313025527946939574276584221708279730026172791969202110487984803211365492015755432068762085708226181868279373813582755712552985711658573638492058211035417570021463269886531610301729243160675904843722146888704420521719248906744089904467860795821057917367671527433719977401393283884086721512769697216326674022288117123311547367147196461172926356559467138981053446442328773342438106157018181886825144850727245769103485074760758394028574501284664306936854027999552075216184455817199805576747474302877332281637708143144817790205091565310263474519084810244675702685625828684737575606086879702799634890897720925806066580279528300787525237610374670117134324435723013965173321631961753330410125781851369940853438491032920110511548917181003354289899083190551986851643278444690015289322077036028903226022734814995754911966304192555615945706860879669271474185982815679374193995347111873073724130160743383939167071905905847457899046269763224789067711628418884500709085198195681452718804411121992286289955851119179640190952201001528863276337075322875457451873603025667474302091288373933247377781115489203843386969621412138980318036981380503393956778071284000198017499908604759232838803087874621050641022125639113542165669457246955905933332035095987129076985235637442954386337355348729553789313656252302469708152227354209314550711768092281016606132979474356738170587829011263636618905679848734373860775724131122801967021772350647059916254459715834561041834178673674134454594893682101044257166721497139128054486551935082393386815716863588740868746194459013194621923923789300392824184914650859723729831656424443454674625825997805241391956205262130177131245840258280830897838332878956320769085372382292119448135235055780077189231079892153396086600893465917995605987034647149952937205820639319972049824540550125419890342898493950032333397560538347905165264592609868214208458026617984694886431768048492081869884332833302041388465981147466836552837056127934791417655505640702397197442614711418546042083521214049285903979509504889687944383923153147804311522407368403015370519483246968576856403528194097715750855875587535427289662802407233258939872166481492461747716243739524472301981068864896191563994979911421962794537238972487157751914671403065558242130660229786496259604183517765823728486547345234251426354123518437126604850488455214394573401527934537673050160642345791895245104500219402457017745961377782987936628021357642248042251120990513289706963146895885353772230460592532664006056544875128383120830161731795542823851664115343068617047201218480059339891605477803194462761707624162413914878085566678403688038874125238109201987445412873436346482289261831444930744758645608433608523620265742735154627057942142530833009925489273738366736751061097519098766129309576293552643882806520722520340437668608109801815861838386277971955390848211184453316149674550316012616607693729999383840657357329339814849132969869739058287526008339965208461981920287045637127657289438456329114405359597688924652502528206554475573214050837974634721924013950654067053608692365793178467165144032270257845816203138198862112708941987973319977679501070672029000425396570751210919088929478510153670449964281027110364666590522938844678372308736808716734737779262780482435734150108153673563966037167176767167666466375633996852698389192793241929313205626219967563436940683631258560394747678584322602565521393933456202896721697284463818697668690895620591992966430333931277468022788973105439296894072406223923238992939788167597547226977385416808026290163724802410197308354350932781989012047186114384540880096417066582417247943800933234248421500443716116385650504452810092482693029170712629482330418868268853989866671898574335478548791933806791379662042870870341218556146564381182863037361187122236988185826953307862292117474126538172019333831762835429862942665520592773858698686572987274450652237543798151537423407302000656884213906447390471574478738830199078465361421349905973940115627255706703631091129711349574339718314567020462641834782466588264114494843339217008770012359050277254358656043913081868892777608971008999708554535353213221183875779409595492433146718490240620519833707765748332158407210390585424368920208348420388110707897953956016999671562446532935666991355925599981626036456815171249136480172961588780895241247387616445280450201735993040734123436669929371565715480974178175160160396720113916283494453148538297981013310970472454710188801242137466225041140517992723169874415491714496098713767440338480081776662808201604120630070060535803447428860172732048392150162735615243177860573601123878204606552733040919113957367495816619857000894034509811933297842853529940425470546075118971279532314143582225871663220122769899291869371743123563637043866916123667396810210000802267807434425192745339699103711633736365086482230701228365562241741666736061734535472150458376789023329214491037509384755293486228958615337624320959752084035933372969209434344815740840032400488051630540209762236009472588996665682701886139581743989525421565633408175777286246381940660742316484528322557121566786931721192359851840034554379723170637291979595489519857056834805396043957500488706240087258745871707385270638548499681667303567458915511265086337493462051783816288956854867004273021925973194457607970322851168228737169305994685188340309156083294105860637181061813881117291564476729222803954393357309194384205029371904709355738122954318039362701755349022814127729064129737393200292978505804141692539078682141367556621420063848662339076507903630272243132816981490117366267471377367519396257427939966440739134061838002114211207907313898279607032814971400059426636885234996169166918824650943351344400469271582285499082240361320849909458148370828548624953272349537702011403701950735896590711509698445246947491582447861799552156431925221582473448173689280758852082701664409505656984104942206141464749558379563754370631794635876282512363160382104045250132679270774837195658452744454174459294967955830441719002101831303152117829085580587518926278033820971034002001419817227055253900103642430437298105905397729122278689375302575108168991230528174861971239258821532884623081493280147568267248488962489118092616746752460779391985267611475534240287104588193669217139610341281480827193467977510725747242949182522804983664183120234463130693894453827123275509428196669424980803286760146564245490848370377720375928665556464030850455948099029563526918798763745270629628650105940260917958424384449930889834852204469484528364584730571298696513882351217042441812027719123569338447351958244140634918201049549912755007908077147144343811567558865703632959386294563298108155165370496951079373407632471804809052364188891188160463784572480516204645743970441816306695185059065374580602736383176671928494387750183196373299584849809080352514285379723748732321227316033847838584859999470708857160690978564561484458590202021633700896009419667590919543469710924226695049322638650946479770288414440742691859067115525732671498450359288945166301028194448229136020783126158023302033857167505794902517633654185519007435814874789753761598049725897720110493390313104313880255022237243607856290620098573972637402251070765725124221263815766250037232063763950236310623756020383614100018960129495369606053644543947084875870185502667013857175968499675510785276342406591112160479614844684186880178352083954626948800303653067146255177830073740564955800384735499520716866737478152087273421267781059015194476748450914881938351449169415061413842843788875966879777685406112252694759109575434446812262592314992375908060899478904062727656316311447721829303715103272116764908052820773153580910220276730821950781769587303256611475793256157528458489136427535831507673038582270084343326508455028925892421399693037280788564165204303215566738109481708134830929389801949366712903588671048898696130217149941396639694259125504115005128873542793893551930651312920154737596204214774573528063434402789262957370608005639440024952136583616760537683131250626754540837858048817101684448743016099732700207952400289708243500253294477717169695435117757636174198451224096799441201276932775712048058443398656844686361349231050415784602351623181601843206500253328237847559401875780133943114570674134785272017608465754442568991797840032930520662245783838824506197048822201268599868951055500391579948101429542051560528103022960462523679317155874655304009457849390652862850821470729414843871939139490274412504855258398468169991048977725218830386009189618568343067763393503807745960154017102961496256439750623123022186243443584228192656918606604324803731251952421223624464625441702744044888527950232386249457068066707503586320044629573204704780992494200422669344930562929451475520996125924343071270209218794931418622946515512752807034880524026677602700749555712705231295252981426544316295267698754274197284025803600254028422833642068174623730754012638621628171322118202324357351014836248637250107533959411361657756527857091350336965884508986963754829788617718430803941447804941709111029811102329853289050971124870071506391361943587836404927982226969758644368722818438450375248669586530556216327370845800443548492557965867908461777578240277930152141887359496971101746078764038895195183288081285809977013906750626405496337087904094779806782868880202954157163525642185610335871673584012232582707656202330566796998967558275460225111412027317653039102368018547570348512584578702839825415962128827520109396004572725388494005944125278368240191777316969504265527675869529929698251377446993760177775143701594032716556440244225091237622290096701441960392180988402077721261285518606454502623214504323430501464455848446902432928815701229231121415455300045050440892928679319229799165104430324354875679941453582648253716633545929945373267318928050044668848460903675250457284149156816478158294026689745359396427402495412777464028882742533856696559085047145801179707406691156224081078040803770967889770301675878039341070000579450564346874175145831916617755049392989294605011811508443202556048831686109876679848458093530629292246287072919048326338258644484635808823788433928385520298744410820033350830244938226792087380486840160562963356461331421573837233076243064817751155781060339121085426319214831390910549692322796563190021569979126618862267713230748045905079628626693172067184584422636047855291391746387134512431307723448553778653502247314902217187942328874676253786383971883077226379355480391771862101656667698440957812201072884633769009427975887353088411485659212138776950654684873368388943597609725919898385148936987202267933365756700298849874765565409510321182013503326136957675371175164834919535688466742377772214360734374580432687896845245641763801150865938801386771379932564906581912562831863617554595439700931818142110764206631208000021967087387571040146485888379805180030868350029929515718424480035105068116184727625576042572155559831704799680741491391754964813268012026381435245437688164662085972068287024161195427091022794661618722689044139912949584913507479610315064156849714199140473924369515341488010505820388073489982069482415794638748278636945021823091710232474162114748022736269137894729973248338210686384355417521894804631689249318900785533439333350431880184905477175523456744690324646487126901932574054764226818239379484599383509327866468500433535204107646028495834534771202131871675873214256608487217428817204530176242168224146934693046857387519023209713199131162943611799478035814920697162178668176002720631356399914311956146978455131193525348049368579644668114951728540113379454212685984013927461636505503600392574247578867474248621038801762001250273097835069622944618598025742245170033733497937333800184779981607908294555468857882011681863577981955109647697675855174935213277325156139923049121143686878710342175654929207875952021751026454762595081998011934903643308011990801107171976771401884971390336697645512793474613611057665956046365590004855621711489835103692147131481474170819549494682291031691546274457122182243607454903799001515060337321295560958033077782280591449389157065139044368398418003110138903983839017885752097528930676460204727010338201747877867153162492656327664746136724532404844817724261489089309391803307237792925137144967043019624955762971632828309552820898431882742375381227474890169280489008553163941275992205156492230408689164218481947842810695129030770499881758345907794131150744911305539570937909916809202649120639028985904712337230654460414644243264967117726983187850458786280186089383091315656897928047096252966344578419150668321553158315836362553253824404295527170766992986652841431186853313443611661951764301773341430542384685984657597280923101113491804714474745580928302087976154357608814028234307240826231883091761548474710745570423557776141446045899692734024092907478739717578226370689102576747898392879994944865892531218457429705003182369569725299209642534311661204144500534354094476965014000179593937330565173949544293353241089627934546528615986362898548839909230746866606794714553351759061684496353017300101285450488313129407757736961650925334715151068364589662224601254050253580496640183418976928763969895971496056806838250635324606975571929074229414620407089313562732917462235708226512505802721155042324934663477362758107728386537087875486310116006753769067743209354513774149727472620713988562648968921808275228838814576722459047484494613359608064156018508065963046599178889674874856585843929186263183070306984956798889614358802552461903134833208421801669308074616809976843287522527730842837133605995979392337403908130749014811217324141377485937409056068410437676490527886130645803866745041252877501493081031633788125772841364954796726267600466931851588965662743375637863120896327388920897308530154838356534808329412565652159279194329437992231701064980502236138023418728595577160389963649197499941375248185504205618344889838682625909924076640903075766924083035851870977487057499244008837663810733534692662334319848298063226018161276412909463353333785093270109141436865196971801676233483969356716040853961795686526822359540211216153987912839209074961289447363284400615819436662995594269556999747717834587619857792406531086940724657516370760292842930123320102825490724282560572473679712646121443191145380596614077263062140593621583636511893117238364210721213032314106703362438910287329209375025278481300312642185039060036865587247043746069571462730555989402215529509117830546076245749893735317601573536743552163603836167488583601034251125431731937858024375692700585293180392339686497411042140700877318307630616651771680527036287073386281473844356551463882676166564127716354634775623270930703475962631058249596912072876840625060976734740473754429075630721112616470356779232963933032545003394931901333685652412907482567566385567024625653762502475683593651682066295457259160707590260395075561667827585623783265456718727498820200722050377258085644500326532220689647710662882622485366554408264870340497279714359812643892025391933448999706735326519597391125556826274628233943464449848249830261170742563400457892272717129742434807252759396864156571626253062655104065328612535952995459442994431419246335849387595859752609285098168912324985660245345103830687141834099812783914342446403550327773978676051243716490392170862769711145469967724139254765661635472229523752067114250023251584856840676978465324878740102827448567092633345277184035030871021906275508970999629699996652119034980496727333153861229773163293065559498922623233354318317946456389829141844413571673131203710368922467964952284615810531775331595510016883943711922930064351508501221500902809150974631810275746149861274565652248237754113964725058857207777973170466523328241594222751997650923906918485790753280595031047789753995199022434533161974273845979490540747512203014090996122053774894613484800976446473629075517892971030378179346101974663985453698584258379665133598012712429147996800641171614942250165949452966914922330760395608728736169836384323849194322639398726839353787186164510602298498566974378361888570955567057383570129266509339609966345205321332224311384869794210858009423148588411095136604233945181918950781431245013942592305847246570524609553959881699935549568517816199655489570618298150485086218958397757414755132055750916307585083617614119696310555563421242090855891412561493568012845681550412606565047425256678373508941409518039964383072430630705745304614261891493013680739607443398279285983088059711960175443870559347000966830818650792682658957857460202635834924134891460490819453188430763693268522005763194205892578876281106660592149563024507270055668991731691655039409200481158403839294052423006234058604722293414938068566663600402199425192865049270705639820342277623199810903322602473327778698865923547588959945089244066709556231730697466977498010545352160603397354811380635145479185903028298708400536550052629043418586134859392139895662654201885677664268346087240816036800775647811956182876820588796238200807362888535776985322199425169690353940543299677634402888212612728853842067944144146463260002412739896931090999705777610422925870329758876950641690953791479120084771903060151067526183306881201456427131156560317263713114112157159789271869964261365903740024520584186256595976499473142082179446451611350631305742923126929831408355989497895692096280254895673887132726995492050761483851140670456657710900165404676334518528511987234459287367360685852711948130634890167867577250392653784634457212783968066557064551751415467228817734120883829165508129833283391959300237286280925349116822337780460981628508953338735037543276744478998825515868294928780968247881961028621659874189196291084476443647318445784740324769319713720186720522709124485941930433265317156991948137877086460287656956817589209944077378152869307999177335026706700591026475685298500778301719638908719440346354637267028150719373973070344214479418403205606880402163401304135774514652374581964518301202711762663230636788608199164250963510493941133049968734608961415156230894888518240814547325894255152294414965560210775249313684434293169739672487157659450325774050373668444020288200413168562297060031600294788954753753864291528930612542823175281613997883238286689232384092376431713968686656427121620788030007981071082563503923326634516041365947323646387698030741767737234300970411991875425804535313567754916311309574481541261054767855362387957590203033590617438776945485655117821782788878577264433874899507737831550792458248983100862451228139636643562669204415049232265119011963189551795825500833576966577718575893517025830651261989230500770677246229631296644899206815720222928387502620244589846719095918742629651836670521344344383401539167920573059453881161254092500832376159208079176980661047748169621237306658717223633935247982684452577708110505507356440586027706555010177741592765443204113435217839868980734203886931307806124243134185830839150881463678308313025186579399788729413058051244838899193492290013751661183052522067636455395588059769676792267738974828999296232971258572407457464104260679918046217269372390241875881143869289441172246725496510024286717233528312481999123481358392731901640923126205092390790580695988135117307792729180709080347315865883939349516884560747387864956746243087070180687073879065457134990636772324572641192476426978535937400800301453930165090597632546175245634629739658072707088179886113452065377072403576669843711214949458344725351841783287091852374071833624857305791210603502605164409464356020274320899208708663931477169031604863365986994020494941143308857289349828794527931855463897466959698424436576665347380115882243177794588059900164441880458851263644088196364408795154205197642826378092482001088917171445906086204830862842002983134578377338052416426255539208186148226562416247317710182316164556306126287098701015472376114165805755712370516840258414418067928492464332442970602859269331538296998055665608257783344601930394328052990175660805836251444309546306456816621787417703896838881269781271780185814783740043288381561315399601301300917672892242163863215990056565521352949785389360691097561439432474340775424623671585448420802084952943285232766259977200368019261792015299558431300476722315492631729628131617348693141724824849574754474099418839179548533752662831210174181551122550566867929480817744951698106708865874131778911573724672302518195722330718856156797542465263704391056445196869137095008898501361230037629355034023530473215079592847730554896652568717995812834144139756526994274482103227691172992599096174791861500246734605980482072416234565478268008448457375566249993604972072432938207311339371906430876306048085616755016763332490827808265619635605627272163977508193645103594525843572575268406187025229269395778666510135456961296472455761812934808926023317694352921872990765939144871379348502174153061202820277481892242131237327581228581506640507447827589652933131021307243810130839340012771002302404529148567617373931041272011369557397680816051195560046328441543085784785996556931214349008957977421878156266110531064436953082043795277284198122799908358923170320114205870363669037705819430975109057364885224477112134094882453547557091592206814536545514056633568273199914438202797868340011244693086866296645885658025156391597924857422808411569673115045779360361030740713245446081008626109104678326443000242320138743434396976853734633043155063262808253669705534891838268057108059109325213720569246754119710922558172585848326170004035410746582692333598194904363635237890810454680907571240434184257638499891038245276122483053119006298267372752232411804368623501548130771684508122011071677505757954609563141272454452950888291318503914597000203851433187381155840098006831840163919287124640520531179754789867311021655279383275059814771486122149904635238019760806960843795867550817648305071881329434055304998460788838448863057147933312739387790479266727982200361679917691099909132704904759380312326783514963064380553241660063005449225598938606131784785276814988709390011121339359278712225695328647500262551635458700692855904158564732235621703986609968642255117579633063614389843272304146164211278487072982022208458400887879633577408033048669856020700869611504024429940097999294010834685665938787843711669429430977584764459986334097856482252052374497687382897005811386344295871822208892979914359983250076482895077608148215664136819094608269479334829132933438664156115621808924384846992958752081586214533258953014996165096573100753077045713158411373576614584064287553592254539545228470912583900140764769610770197822227913160787762112941756065293510204687577315349232018978264964324115006393585002256977798263323128820245289088393194443094468703026285538971394602271350017557251247554578417961524016682288703711724608591936091752713235209646133880314984399044937071147724686241787117872352553940346557202055189196027634655461719501761851719262371907371650358076745529452120325874729848496756108722339821854480019155472198014416650576290091464829038238159406886947942028045743711654237408876910203644488066822889041338187386573323569545303736483296864957638067464844991339388722327781148674914144129345968080611308871847598665454012812448161107607079279699277111536711092921012090057537002363980788881642165023927426482288645187167883608764538268931092871336963413809220217042344574989426559017745051514086535060056238745686839733294152982845487024310898124619694639173632307140377236122630736088809313551997185407071180669103303155275819697473492919513689197605241972665228128981152011779266942005019221636871276721964969866705568497302126023014970447233830368624613919089849296500760719767189414587305316026466006160532983608744556369313647954191282022093139084518802625048460785639745374630368021265289706768513370772605952253379791912343405589301775845210705941835744747221698271579325904725437543959770220927437787590861113299135786225206412372949557193976566518261685749934932328442341508092817002293512088341920767095429272888339452830970145178292124492011087710277194678056508289963391905192264983055989938105998599641730243769542592308508244784620803174112768404389629674479532675497251479545997377446883472124625398718587655940026999216260932888496890453336090608762792200817318142924073078730998532865825484946700604071838885142029810608315457931385385170218804880868358782774247639234739638342186100405658883154187343750639265313319885574509436175166390841760658322238479615502597783825130358537089927003904983562406095561505278703217879078238317146863035312475234745873931483665374538636379654195182141976271248340017536778937084776594511645733670197359267665940491558717443711770066392018535455599369986984430047804094487032575201776230212811532918668664307367687990171799038805713190741577158503005790494801235352824334409203131557635766955098178434447281391312993477060041747669256648419836983185714678810133853562999227741792117379639572643905076177952754641908858399034377799797677407664368617410422755209402592312472229463936042559209126894860001008845812699344642075044052909198825170855544935094934573211622756057595638909865993165409476817322863159122582936618912090416715104448442885480919374529885902971528555451279607495333159424966625250492250889072086831145055007925859418974192231107053331192052653240644522208697662679267087009916711350692041053592497987452343567252117390509161332059803909851062290067483632639856127412021078120796905165764048849139254551927681184105833701222453518478927058674631828637996436318696028421914784448531694792049400469392696070144583912272144856955370057409249544163530311620484705542728743522437554389430244739899213971627274159753321347126362441454221788393832779916204017514645441792322612223909988487542542793373407994794147711614343891214819531094656270362290016074087254639576445231552212925177071340147743602775239406624810012709767790371130442755317338844691495601045518057861065602278018808367542568214761829509927700349857096175921379960031952049543644171838368182503829510491927066066621538141045427408333073677411858291384399733543454143326509499570600535824986060349027975645314901500128046961331457075349123965670507175639215977945702242776447533076960605322090956695361102451714022576685132583150960061670527357402718850560800854425317572040768411810627375000678703537259563661576869592292291076521253568864861237884043944709696375926840669125720989115988341999403313752694712603625705264369518661997537670213504530201957919719148400303829767029950629852898304554086466697883638429563069985175633456449106699017273216834762963605223166449264411990195662997032440160185660217212891500949353450503876416944716881737083069069149690113197800541054888209389178860383817303442662255091716287236728436227749409973531976925603720867195061854914629396722399723821911140175851460367265535010104305526839557933643625088987541057536147760931168214793636482084194139820740223227120411064758499313454232723406102381340911186848931159426341232852446139746416613648063399167424116831986401915194114644161375754674566534210730248944055784991404010240535421203899983935554715157546236947867497208261832322684577062464287024743908325933132032173162072124807906808862664540211276870935593382228269806782887812850338792245485570541398276163199731363177836059995079184238645383303621067702998140092375910233550448703306584896204006003968755297993610567852778955232320336995644561493582852218033080601224371063072320286625081214040844826659616401230076763481087889476401894270349128182009700510104117697856814832316901158139735517421579456892631978289997466662292726296410950508188757123529540947658549720973807617580648299768549083440461806637583539354237175611838705534781533590974076219194773113010584841056614496164856371916961869305498765205944797372121619896909705016665404674648199223179910720288899903154320733581785112638667037179406694712707159984180379268206449819675830323224029188425538338077609991947865202702246126045005196500846687201548217552189781762044261954103559453374489504888739762532211697451814026998991079086026200109482932759079695905032461736766061777190723083064163030151075876931667483932232227871750587800195764040145192791132980905662220025221546476911109787910663760530192691938858511505994716740705671484821832871406371159848071361656356779543845346642848137871411465650852484586067876475965256059061766902410348806525910244686278594457850984121556248958805113854367546601964048135321166218731882874975067806879138456094731427605530758051901516406461915954342900924436668843277818740585637030701398830532834995663248977912770018315081852350075055863557976519844845585733952974397191854498711059887596494275219164356371046677501680919188916685281345111136624584475870996234230384871675485874056169526405888350352603352066562139427371495870196243827704001493175602694837299311990248657703516015576261004629393117979016348637746383835397899370141423595735061180446627741803126714725170672606464977314727987315448338040713042801964516574792913531841734444943002294015491540762015336219883786434740790106476359348800796665110750687966138066331549438759315649722522028522459969819611470952519021859039032845384398899040982750942991529020902739699323388231584190873298712148346809241019770225300400562177558030363795385185985181227234912669433065755918486555358758157267791687055706292518431584822217195113397979917866689722985036086354447103365227493160667828188384799629919345014280810695014036410218036791890006121019224134166539528081762302293736469053936086876985808945338977799672959215423979106942555244936809077074453351143563141746986416439653218146197781568474727394065271087818191771091425868754486682140351896360431696356124115193320820171888905050640715552375293606750299578455445537673453621705597748690388759456463528165678082863363349823293601005186465361908556847572584975435969119234848258477026581012051788391138945354047135886814557174570886585803509529721939732466661133576656202488553890349383357373234598579614003628564505185326058076358714435246440148796703121281985556250885750906068479684010125921329923890000351377822889773825221322540298717158707861995243661510478120543450475746026116863368461998390333120620985139114341503014402055375705356580236231321249067179516749828748386518356760911066738291143534592477041376257717269004503428664338661183809216496923365889864998533733524494104668566264366404979422658512797753508648717019393681294458516977521523583743072420199992362554238376686963992660772355440639708132107394485255012901382599379727879432004873415915878346057869988426979497507783236096537534575236464671027933306695867660487771904360598409588669504420122188812857966832910855816959139258015360921708974413908418325626842766874858352817064029021716669770016735666178334319415145490270290442765159908018604844415600562939726707509724550527695507193831900448758682213114314245050697037727928329851810108461163329715205643371459767424162328942616684858166966859296348531248976347344903625581434238603249634927642501664758405444880537755447888203259488178232044722379453171504341942664390764408223864762157943994463155857487122560735119045142618931422827287513274554226994634315662174236786390529087498437469083451755508611469539147914252114408677485743703363946183761569516727697048843618319510437203308010263473515884717470379977749727293390656741520831403222682981613034142956906165337228955538089787991561323281999200849420297507471997063437675016777314775540747508911644639008039530399239198659188712623048149291242365143365437851568675824294218880893882973488862503135665795229620426714558092322556603446582413830508912238269724562414197243365469435989663196732681866215582694096027372621502797009879138733285293261205345424572027188021400191938481733541818732355467639740159375418317014863316847759407095151576097772279631253364973962399753304152880223103236826517576355474161113194292219402374168041042275655558236577217653303500205300386378953466017456796822882554784068714941625125184064355605510812387468854816097235921309832618232527031323873885909650181124887144040874105400380748702330468161254948967070105730793461621983961006267678542099512338728760475028220850900017687569824002672266667097539080793267846190816546922679441460161429160782420136025110512115905594436042684430123136706206434822108738556038430419364253665536155373142767304522069465557138424901870860324673081596471010804769998171609137003762796711893538532316663442832295188008376348089814753095960610714106654420418200934689795029635655425152021668308957860971386201209840388274316367003748693674960204188580739973767022542883779367835724740943078058433424207752349705070124082744293255437752139607487794676801286689138102074390443939901045904292479067062836062133639448794933182854675179522401671614959103215539057887223886127231387986576815326025741210499873626438786324131356488379863948438549244912074872533610850141450080177737090054116334334719201693309975187253826256852698375867695014357617476763993842049026025037484375969656950709567576794942233879459416810633684050844669401743502679925845362046304736837032934766895016045818239845082840264665575130126585517260065870233111423589580650443660819087307923360187243969308543792261547289749464021884952738121462361819521716092732847541513774917585439734584450153972604885962935888955407797034120927901424148858195035845394311283622318055667886241225883511327524092841036163324391253465433946529708235668128464674183739912559301025480626436662559231871272179396044869898119779229846467358927191776101454485583547958197919745060984079591143523428262155369907884891725588684999726396725991657990795789379216723274742328749576003630467027770745981284738990678778330957540371829139388289702313976507037416647919977601369071882389416317266423326326727966011517640657766932035645324762357066902463078462158848275204043466327509787742465000393246251921663026575329856733795075326454889680392844966291931074219430012229398043911136455793357443299398994636220650702125217836937161529763607485311223289515445285557118942324512120554363874174679284030621738618294434467068815934039143579462107484823274326069156601320838868098861439308196460901527987402628459977606520544660172020980576834632518596996453001733537983950735707954753516549741612553989000834542159165928882305877942904388596206399572004168543534586620441608976939129495778514595246546383455942602686656295068620877612506765382474983692421815880181508967843318142120507659639949546911145149195048780982581557972565084986869786327800898052807856850306355011375426271987305692825942392120482317872421321046777870871239101334780378063885719993757333621319774581710277279235701802303158386455433143536903643367492010364361700027043915976437840438849740773933930452538635156191593284273298009058525683357350314684563205886166726567272501921392341383201642957256601290531264038945495161084913543740629495344281917432596201985706525621619464386480782715492987664742784055117899712140855434440547905158183249817918957046539380546462798019645733442157290183917526561831414841528444989267995056319754959169621004418842463956621702307062826665309230600814978317153452470911299157786222705548206118998939031428640402894397468614393151808035013277748769151334808630489492433505708618539178365412351902561747993304178887487992175100369942489657449371494580233954317233089789257852825335619364847621899723453714823028699210669107897146118958273893963751570780088207046588890715980398279440887448253883100007910865699922814121496357689575191374196127577615117896725264780802150200109454665535134706487793866898690075292425993125602124662046016272634906334110639128444833657191415852225774737033152322939655447838015358948711149700333315169257464985268024668700264585811106103321914382546945682744768350982869053040263628778861571240348276915041679033744571092336767121676118370666942768948595779867729510182134662584723032483929347151503011956568955007066481671158283549264001313619525224219724950543370065720335753729624502607089467833138694571733281203914589911670807227459287019284767484492352713536426888823282126272271111769769744206279344841451992021504747197520919233830950687490554156669285253862778852344009640857766219972013164997288401131614320787083231133472248057287843812514704024967247788311889097068115351229016747126082362869322213699702380454717619642378211705880885650308055249678293053354571664658728374198780290023288747241719628997645661497610965981417943217148771875708140565035682469530718157660614710481900022647355564601607542726575395707485075570835789458538877698303839945888828730340999996337632775786047458214044559999172181792495862933249865900785261230014441129626684462513417169832747239596212341282372652884555398700350432997928928182896260229545390715847416648275221834866868956891120298710023263414701975200070130322726563376906076467009359492713303974143311239711216117621296957891151352142714989461127225451998096146572554766862802924738139012029899582486563448382263296672462585509898789956909186586814770149892875509903720464757348449734893482395843036360057363060319745586952453917495112106869434744967736546265824131300759346659058565644682439944601262714270880017098616506874992165875862618466838336876310662405056954833580052177213826212609378604558523765530094627079116647090542748552759615462425154237806915364629511924096944576056862790158189508606829774240471543987672605862655464276232389672892894279299248035977042665415610656848042299604820542613694851098102888518561005930317373191223032323139355736065561260760197560809334044157992950131080001696889772078216274692846749050963327221985220642415156091760719118054544900929114882086479504448850140454069165170504163301351435213780085085192708730721771446296400303020146672328629307729827821254190606084013879029287614757705048352861975216033853069669500971868088765544572127732390890937405167562000474512009884230461964286745052133061845569611262760079578527422997468905140262936650423608556349335776852611864538309028463681915260675615050402002824649664364628296704234838771291219247904434668668495554525305395808492318372090061797013376755609934344060544519746865890123059794025687482182930430929350054076673066105917655057234813893649685134597897853244796170762330550464451719503145355396864864637258823399480906080370858138008773585920218781061063014656251853486560128496468597761976979351970164052009838931967643616665223489879636706120011068700529961478543578136928505501657632918207024719212724815602393721255018869978164865021688810701645920829576903719260483131070834068738462362057105438636725563145643463255371781114218707777245985274500055207926263564031992805142045410320428743901151093483679298014163714711247602217279981926486946881435893724105701922028831661010736702822023731040203527091554141457001599256914812596696138369275814557249390243787275320263457457017912015693877419878184830669139274651111036446358679569585808439440876153359825746868816957837433418880268113201193325188630396208720069608469533019599951821403343583862108635562405447194026000938585173688119589709381809630477734212714106859659910062543759654329366498156727519507759699646949769219659859003556092464934259941660570227880091463918175281447073259786717237153946011140993035756182236239219912057982199398677706086642256983199301760180900860141887754769607566287199003277052155201272736737955695296103581876741554800467623234238701977563615991870080659823482149348490470478723087627091595659790442892798093698578373860654308106538356093909316528266755538168284988074006073810524058694507180314276835484685148293993150588765248184193348586496335681830908635626917581586667916662071337340562730163621983776151828713800274372001291711106665670918008569063275568098890401298928013380703033339155317076970242402321362746050363993720833633589881842956774795196936625516052220170126694199512982674934790111108696953615624236189801388424149951235295640407690249535401244496822999803178193443085999915740398689810282558654733347727831124922788337813708732003544141991405565843680412073197529135388240623768453417762419930819523219380791732982324725617661880872139100627070215017056115350655586797514222066185915619436500041649726334044495729664086515477114301664864455142039938079052362247450021190910101757334084690499785471564360769670930100475398517375608035427038739079996945599380864121976939006495431987715326684291009526926059040930789544380923308227064951403486645482592499303425532960539445479847529656479156189739740354531335842064081725672549479547730269379210485217404825487727640349055393131717255818799670585693679563771600018147804458171704603256608586234773491758811237281971649501909163560169121905659569383865994613362226611701404592781815608585588645235491508618946819080385842664688306772171922257953072556694221908725510077908860508322048838502393551010682244502643013826191764911652388596209362304324590230537469755462195073885710882309763023751080979680293958748030974960289807760158520720005482720550965377873518228329992552072610484884688386761654761202163894186093227488081031190519449866600501619742310739531705626996860429398959198720310180420629609225428455504051515265015792811378436890308048844637144267235559452027323692034010954780449468904919081675932044517338913655286607936490078007099773643604932770686914593546094721280041040797013063643782169360328126128995435943290841306714485496825429867912227992472267143331219288917636157588762958888021853392082303712819205114378893979138519413260137996256692209298829707197602208730993547946656349943224432594772070435686696933022017020142747619485717424648525040518488099650430030577427576665054634680853173559756114978923205249846222360438291021402228971402409462479711980707352437796681167207404651345998398758988958508002957386566664797403778132779120046451157790636191046072209363471772490642455187770514972372175326416408083044925438345189356626355173363662921075592296692321899127592286085006424743154970041257442020649528714736890867552898471513149331451102598597861417198430122492983319754321002245817546033302130946154917024613599683771056163222691908453067617698371518392828663019999702234456857576840209922805995504798995260093196356032515833817236007302172958451639761779921533410876673790008485001963929747596773339049718911907292753447039412204968263887802925170925750317365826019397794781903598094759036210895209690785587002166899154848744575081486178588134011570773153382702280007308489669808644445012187988219526828112735813022519047587361770971040618940913163909355646885429904927042701063729942462579051279301837662323457241853770355866948778592882754231738948711779085320384449610849819970960290284415816459545343614962508741686983258995185533324299052879335927894269574787634482521772511279813261695287564116110938940285014066336879238863375780926609322130162567628876166281727805504840825783336304467160883517895706131869530985324059283620391115796546018596344405615742959459133428028883847413510664343645806964271227033939841009561642879582805644621390523553031903252240320113611396405990473775635467528745876229144983291281022030352780781776659159547580786794953037853840792899206998203630913292217785780747539816135180874365935157721961551029481933527211260756897087670264002037529779333545685521641519538155615286588294231814031776161914490929432401299315565519472111180144549875284240330410296361274107137186628131630814433526815929608250622206225662558610768303873123238318880329057666039348726005674047084735155803553912307642485471185346090875866780400390517965862425500284280857633078177683782668096794177660437149137474459839050373646642811348244081486993587751231759326838700516574160133490408344559478196180604481346018283651125330716792668873312859871225962285053006693630997723362619452282804106998020149510110798147661641971115723556450858546423580469757621473028038357176709176272664008594217504654425571519415281758793335596205121887277732279479254524050347928133768317854877590642875422717930173456598837741754749683693908816443290817827575233416134431160031428103583287441721337705510725853280268119512836078030109234573042996927722151957937015669740749840447781067296234472985932460016887607400167544896748646299931812234763201361572449865689010179513230076069104288589926014081038426435864414602844973149241397357755016215297975884670124813663763838709150786643057703270969492068769380629320900099959555884513704641675632247700592168950549508517426603340749528864253671577053782083861534416792374031871027830353122374343044645842140199380022899192105150446724658974534222282384167130491686406753758026119971919664662068925496721469098608286238064902784767212011224504443245712764797213248973500864740359489216801718810217184730839753536488387962435529448310870700911902606961016131349201767784033683162005044003505556291345252008160765536170858162422239224787849287015735820350294715856400421605698881762462240954819822278075637354152514250734861829043538280999666298426791139561364399013637015615723879945564478207000076172021304519841124194933628795645846063418776096538666824139963844913769947111106687135124585485792706267045218522203687482527743007881212034991845456534027568841898536570681480260618810256463858900732642979951188275022941390672452414008674475834371392087928379479909838271896322386411060838465130494999522868781913746754132093071008675152823774465965778533870367681029038453723111228964800500607079895942095798042951814850361102664181034388760662190571269617243299221676071683129219294067867219815998503156216365405043541680759265561579290732643171308669242834315115410993267114661828376984225307776144642108915711542382900618969524790417369735876416437447290656871980576779257841110562132129079365154657252436211579873796394562664144051649437410121098593689842867687064367913821891318812653835236154291911035129013094419398023856233632141622583816957479634321836452243984157930990014180402707699543995492594989822101808690453202206309202761115544990747039278610537331049483202186027468609604755764711011398152928629140148623589383861732875819996946401950150943738555554242376544443412424512130680695567259631730939520889262087489789642842641243981416049079454138196839225251308780236158187980470558095259570792875279515532786463787747713192529761275506009331332895092585703694022326615180189638621745046869266644156409004240816297917037263930606231621702646519551983169698057442246462541122127718053083791107568450867016331816575382334634237804761483965051009965752954393395084944595668830638187755978694996168277458518734423968551665535290877788066009358602362427871041163083209298124124918568400900222261812754093395908578211235583321036404558367817272986017543680956427826705701380666518637238594793080184198558735390527854373284643951441921407604396485699761007472249363559872342407199598052201946335346003503558467113719738142729600306618537694095762566098554504848364172523674500654487544096817184501601840542941230545450304392561314409313307540124877996969532718115114962130992069044418261727230388306849659972672617747784797721601904395676159596608710992797097771512899302167580045145131756793311101123462244522276938981666873964697360265251590683182541077535359758627339671140848744390162485053552219448593378089025989449945403893862746044280343729788796910393085304876761446735678368561128050769287233111070905100233179502293253952709552439434481952878624325790022307275685387729198111252296059167344921798786229221035494064569708730574231201586466398680198250008658853994219587488225469822286606065904882871501766434628439691663669738784680797038458590012046267563336291331554247797433967094995132722173349776632532930785659081530126734694380077198367841392650161168482329580793633117927777563706683678908864293965943707773382359267095027818547356185100878828280957022398814133387944791375763187148824092884607470812215720016794801902683222308105300145716715923565710704975261753892096730907536053152431892436149775644784730518171807897578648795956267723626624728631607780312897818940182527545352095963941333730416303125471664966033815119967097669827364349644599715230164419554476584780685702862089022807702292945735120995466619165391227561483771847038484349197075222816442387253593800121941196966445724915630442990311458605934075514909432968457231092741166434258856650543610704844796826582457853993159941375947700845110821586564105219802590970512075817349979822092865940165226034539195285604624679532221859297777027289332844084947118362274939979076466267124521993903234264298812231501598145293635381902251935380812767658145732613444521557121717440049342266947665654063364099003205860101142153089860693181766688741849485166530828104493731214533981569299275887873306692276607630829095945513078925595260677900897351972657286276085174391114314888869159227491710576809435525156124779503234077545194173636775088465368898596258593639709372240376103215467688241891096137138548759158670967532663309707578327585394732396451551708542383075275152157573916110720417366225310897024359141720243097225628660761900447230990441333988830003208039399402947213967884445225934073366369299814311001992250689039703245135829280591148457973555058708262338274367120356192074055609041449333363574849614483051598082708890375748142730119580301943968337280767072014542776515701301231510451041597971994591058013945791130832833206303303594686431152661716698709910459179527739798660556489098013136772329395639173838841600541268017837715776245356468540847084840838210613870160324074551489660708464500309295173317630261715632517823214113172855404610140731138423808502810502214623924495994693758560987596624304799658549150349940484464775612076837049039725280406923170391141055986261083944243767412607612805714207945864401482381477413144848132558825130663979849704530878838608881081330481898385887007332252453523000614873208438301096608528576356588706652666777771765964064606346359052927450872019920167214107152431758055231801904211450706096508246705158592771205964287077142677986867600715951446835305736827319561794742011523204070050184195292114044110303681251844380410040860652091841760319312220930065688044125512201610571846743947797246706402845386116666726273173924772833399147472982499977648508988779370235365523139729811690759262806369391418483611000491827117573136471167575180306478143563362634870554202133732155541124624999499829524443346670492725515141765631976293299290589851914964815437178006598227905743447579761041602714150550225689222490259989575241466446617164740822161903647706604748818909767910467381208851489119153515030782474048175172560195518447038898019110843707413191270524092564439336784520307137128272935511441376714373368733456080191268603605086422209464509134889452661184595712694208327010211189480185311775913316850655999471054524239818437255418124790804873209842480621447895997428384563171814886306212757313323331947661853050718944250348843628614974329997717007586129839038832433433608102266979868144144365601977387808255260266372023242983156741416370979487479751772522518897877287549694760460607973849834033401464363136035334697183050268210249683938836968061668819385883582064856763934803781425979043194412332029680798356104469885185662557840970515068781989216955158243216691089040170982114649570109359218401579044721203050962852708116293987450956625122126484312233358856319696092666576804484037677531609107603518768817375332436663445778264685610962642964128406760649908529129808621767874295800008258063512068018064081659027480919610853422057441545831483330944578661662438620817336711702962350847102251942448356841603599292365672203628168748065610812850010891547738160451791046035790646027614366218637809508929211061534320116566823688498815240622953172820365512664135932559735533547575980712022953125161754123497406149714369215470456076624113602506159704716097322701512811895416893157503987985844870911208896947163221743747554308176924364266356627852692157471569453735399093906605193757699376334376293217729251364178366441496324591124582404869484816546330358564521803650945545903778413845926122460134281822141705449988767325232473699082445090350202371040617815596033166553381694196185665693048732993432131039982074499239974331383237646280931111894978758005620034479733975826111946301222672976556445403821939629440853266028791441589672711832038067551756952703641001019353421399464074033346759671493386860643860800669344209515260030978968300020419982805780915519028054923369517188126801468494238836638339561409920057083696907453208903521732138155454249196798893800733015218758975905333534399128192164237060477421271728018304628924140619862967099374321605659919792603478723680054078358850199556878256177442571058227039667487985133922393225511246259578538220583074806819385971815836489227264594537048661540168391373379405376464432756926658963843385048609942821135941353303656396606000131045354488324911719431395210060014606782520124592837044474075341285187209190165689470909579291253057562257612512229971359321198206027851024689760080085439033273103685821639183254299831191701723554134578971730795789239741397788054391105035699125568698516493970720345762964762158477326663312820707502103726290943217949335211915955648341105295414186214508306658559822984048942253055452893022128835643721459596494467273242198108632631950364843781845034362481230347536999794265410053010039464490380050216796435586647065214611793367899921818956501530645651446177007207549788317024507347663546040665029562209804138081559195982684563263987354105168108374044512022390676093829775189973264183653141968787294446920183779309702159916118593731037136943428100467690335608058414864130480982550587649003982527365385312757016500429326774506074088478948822054088517239870891384017453999039610583570464189917996683863523738337409550745124960587108990943413559200299128855013219965624208003573700325349944992728891106523404333565217639988097645925013339792861810188853161201878483224861848346075185166098446024108734103580088366915284392539091178191638720177342788390498452558489783111796047555642379180637601623133119661813776966824802919847024560427743050257208028436668081464344221747831332851919610094207700614801592122863570541138635661525417816808876055191640121169564720121290659097986420321578598324660163477625724358278755911042417437891882666407242675748249673734514990617421993116475583239704874359074897387059381386460315952181007210456506109709686448171470458494546793642689777515336539100004363726114094840401867549498892713897787092830615495560196991850333840726316573685765987868604480186460873862059823593315873052920266453950980156478146812317399416141716976114684836325776891248102293016478731984097742586250396441783203195280287077637611868547164765083062377127065050118925091736218751156366716492486232321009879167993986655698883599960837759915558321503552619703646380074946808345072899870926500501015180485831120345729892150571437368987288469547126825668115376381823810829773096907473198638580079448637958952176848101150496391424746451412943310105300911212328544868346327439608696174722780257361473270346645282918151877639084884898525930487224891269798660521134154519694488215497007813796882486173815427882989174054609252720376879508910530473157472229056921969787988029228207738872315307089800796496871052763781273998869332861191288193456086397746145143441361935281034810626389574483080399544136856686488037962696730960755499761061869888699634741083630897109329829821210852408819649505705481426377929645281845085374693255981536193700493435193483735548969587654810413196385198305723504461557010321498514316716290083747760522507934820862831727930212558001246179267180710229371795217808996307477214458538419010219625172560350903181802200698361012554976835984195257963992284965734898718125446880011262957611170690109061510527917098451330272037976309940834789960279713453792151152589017200043520467089830892195211414785543359178004819222582816118818360369888588520008256105497151593196986075346628146094848200059998365442405325558571599148727508563481793736748828022643170572812035073212607178421503020692213773000140423175600504399461822584189149984265305234477298926221119067459334971699359927977970732641628653224383008042483867933373597595964103499343905960636737792680721415628463661604029486641681426275178404189166209873574234134516988284865271997938679110073392403159255690533632514850526893942407984905483756239039127438631653121136123411372394018223267408076179115936241750076908406304179474835519118339170670333443653572980996422441203782017222403294787759882668418681558794354702414621071801627680261166614686953601267366568728168143648137938109058474333075631675222531230471368203761361461587309829095001332067262159405499789875968927087755534491818457023186450964008599685228157715597940767286980023283795644804723680930481988830192651311732022893687094899833347040738533947770862662119953576256742994696076284326396150518287247767168050631684336165926076677479404058511352029970855662749742519942611474961945177478776926099048240027749173815120476132552994584474455337497258825368615990946363012828836706367744014406069545370094783085816611206181941483677001827518070704914642138434547409376241414259127343887160650796071668602428524280852178922417640780928937236265779898127035521363715954914246748871748328822937698835589861543029931909819259420953299577145530225427700083657585339703403463565823563777591379224427351537416978760180917224252982964958127650560729274100638990692428179494301726353655163243369995280385165197142493319501760355775176571897779423166851489419053740143994564296109278390011041518675262250603124048909947970668551415900234226417962947640600193682741011042230651856703190710856872365022784484287478005836349426971709806233135776515927364426399073794200167504012960362829188580997982190259547587363794002843669724849432113343610020159520731281415792920261964703750695815707265797064051129742125689997728018834305732604251276614048902984816797417508435631832774037071705331050218155527949360859677131825534287177520736448522219987905902266026974293377433421845146261858537266644462284404123618473776505179806546848181532260792549458534572458193809511710328576008036181923345180949466442791732122369204961419893762368930642518422775799263030099267308189251415979086609489001201741084982384840220928228882098967056860885363787006638059177732967927853154292374209003492226563895127713531310670818663827062247675030540934677500629477667091403935571098944599951094733081649393683631569792798142987208204878667161635961484060996383977572437255989239852778548243306417743061397288139751379812980094949300666783309699269974248745457199100095595522941216291720867744355549418023472712266374233064949269507413133551542568774200595156235673186157538418939589051263191437918494585139859138941676210130657382052466408274494709014630756426369190022662649108900435590323135052170902913679861888490755205566429667846130742026811248289842374566271178699646778702849926332267556638873184609389419351587581275359186670391741481870023283284421325926864445317348024196546488888713515890053151399620259781162867761719177221970225002489348258477646018493667196744928755381734409298584971704305911177117360833510273206697493510699928272407816318511830030264586276846966888156852104198626118501127348418638055472274731742013858231765708862596312425443652832489516353202567233732351320525187142400514798203175561646033059172626924199242474868398146797438169233373147498338188483846627784476437296641604666722067170203888798216785671553797874387578544627195020279223830304360332259035799907314882117887445318197033263002382605290122767205386683700893767668737746208078744779600281277766962096015616381851071258910138031039355618163521137924918935881408448786018223092775092655052114500648485588672583197604908800259417433667280765433106760181999623173812600471994272360665839538082280055224040054899882261439343381161019069913069591160753672789877810489159213089432465902203331541416473131091662989896572148682661323555587289777907466298641491289612005319805007643492279669394285063800106333727614770544296779493882304483988792595195595822977075499246253167563816437968232566177966260521164240535622003112246025924447602415588746369111792471521557168177901615877300890069592196648077107697807633683731510556135810244149219987217279549684115405040412120292397463500574503282933394903086084749157632323956557154435762164594752262431361644116698351580953329470616801541978315364078246772748277960481494670019253445805528333832312911257985790579951109486570722331468898600476586451412582547602104243234776394257262386093094103878735822349276509099503286044015609287731996330872246808379014099914252859464840220560370497359111364059028836563756667726849486793702177831190472884576602215239878692717608356363112578030034807924622688611482217058354548581558048972095461086203526094820944595855736771083469404601406102119118517273568760839896487529593359101778295676869846531899940831574002194152088278039901544394131059322116407760020713324125352573688932989715190532534665544103869942892085738027045898814472392582264862175808939213625273224014481845346819693542191481507375460863948226406459391368157324955823325683298624180805504946700005838873398285890164436334874071832315874047157146501505186946231897750190440076670119208566729039012327203257306979841289786072561392317862431343213594593090945273674977563424019418977558566897845087119819914405665834514742107700996881089767481643015813985144200007335156997135388181535327723409421857125126057988471572791844165710108497064798131014013257773029602642157769240834717841914906465229024890656157779895912803079539418722345211731368739662370517825121891428147202575818029600711375798756575544387493005798803486629053603362766153481869256479025015234299426629383302950633197116745487694433391484316923660769483210830828404859518239146559745430083803477580132182869494362090984636677894668695812881780421684440463089364628848561474953622716169755036548168677627275507454518283799512862664269210536816596067738949777666164691650276606347262873918214504565710040204632806567919743085832158374408788278425519836669629803922670289679041572031960545274923876308494738766266857436688059149288054718028387783104379576204779053193144739032699436518813227816704763400856411640956014008097790999016394321578823963795916360061850624672859462169416758479866311679267225178735744022049618878964290177277664659414787312154679043511554668221626080924204472197571890136188181843657317754855291206340441344821947557159043177220144894048053334819435186803647275431632088055176969891401268414651095541796633580342858407414401387894869765623239737969241620593555225765549730567169995203410805476662921802969346239932339875834943471586130376756699988874433888904065241749617326482957219023712021447858414044082332186452359026754289316857885745323838401890350735243282949010318671160701351213592897740873359058216664425381765615672777682210701448031976751610594319996683198167729245475460780652158252624256699380298979527127624006333802165367368076515261983653755286356180606880236215773202243811898327043174012065167401794266256972996773743875796813082761146710032461699434762431436405066183006291941057150965177069886847431765299012096989546227156156455866618634121483866605419139051578748656184689317687520975720278021608551984602548040902785672307885824314537762852873131675176464791974679492637273912166187882242853480792862472354157743933840086636476288374891072321704442006866147754593144744259819402290164200281699021389056675763783929858011378771173564647736462846998893979982067602460431721313934830274088856113195569052247757891666988903880527059348129711980809297775548766710662606181506317374588288296379411590694295083886235687440609918544386872841908184274470934985763866579843012074527010099582310100687788625540001299398083912013225472592405656469460067355472080961915992995038049860879933757468087794996274650240155461466015594248662001840592683837868738980789144821202869905861939965900678257647532879764412759207441400259751169933114294257112830033845311947927582826941305869586981640522213456647156398659194393941506822565921019614691742956937930397465747619731142569375962969936773729123197867132550002170274098240511838267783277557083382233520401356326338239552254861367628561708476360535741358669338314150456798233309534132680114598691259000994415141011891500171281231049083428117687845817026480802743024271024658140945849537345545743073433042206235931238834723168608229962522017581716883214519398521259214727722482513273937221973073262274232719420281742412348266029663668439346295620849576663732386051468108946141105602143017071043054230360910180298207277979860114459810545359718853498999637794872284829280294939575268941796076666072195058308127772937635965351673581423888510356455123956090820745834114100756460694563898300229977095537078360837742051439439763899766789860118015452442374121210236895361668870256438226385258832964440324459787851330200415874329432661483702995721903751632915395780776064545746663431042299001011569981253272776617370022925244826217987178601620672655760652466836122741738262906780781223117197264547672571778612562369307641874858816142694193814000500409272425108460293339447499140645329336231307246360845197885217926423200515775567244985380608136957629561462685722563694822290992596189641839501003050823268127540974102309811299427324487984602534921374725271150984175832199524700254187121933844784363909278632927813137578054950476664430525656446604565451218997815714912709704241873161339730783073490124903885833619701880671782005101276577920939056331981808415097409879436007313761698815862039157270963921422690921624258730375787825490354369250261857936509822960078075203228849446290342143163804775418314083878354113093038208135029021539119684800506641447581085774892016532093082410187614374008208348253717810361223972280175659609376446566571575874693989613921431583647481907911503553066883499292904181298991308021220700389917069733282399126852271456717465714540260081396719199168026824640190816788976215637487081982660855578525045728480001065564141746047108198269726764292056235606781347583288847232938005108037489148464200216108604163559788142469442783901308809159972282966489370291161737860679610547194196408154084925391514121040741407869312481190848343632055733536142446012108057926913287394143223325270836310719168364035477080146648097937994127571405647274762928997593965926066359571744990242662141621642422936572141177545243607000716069411257415134979504619965604308663682926637252444607341585289142328294812871132454408849570538588911983073535004250896064671329051218173407921883681598947124681757291360653588928915756950414069414769961660396107239762876531246259058806773535607275275714319987674485967035238761394886024594911506549259472249591101729590433114238625763671143964008356850342995465743445502392445548204284375641824773957274669118330818213097268658004243521377072910541958676497749174678931776701188719360243319903064424389528731569673186744862228457696429330941497854281273234089334294464109468327317589626485922624115268705224356985557318721755004591419056632295404607087753563272121143604682415067475898486067524221499529481382735332669841203916876839802933402501509345172506894249202790572551252655555520679238248458771755811948376792635312544589432663337248894474519003425682438418505878558631894853902676410612361269401909926123213962635529708747925070035352793008003561462043728076466050020816176505705552536887351029097837602036196728904457671733750169076860772716740461049516251083988471105736274507710052130015056428018299125583986050692743461394803494464975653381255004926315092106152134976663690175561384940546437522948085906898840401524319008693836137750010867678361668504415581127494551520369764416828670427374786673155433822534994302521236072571637525680059643850622703508441037555683801500931319138027503798961617624804857581027373077338580465479773366528357579446606433218275171479269966018733243392363426748016859175592905143136860637903746850876807071991948180432624974419853928084586975972137596056854332209510762128440323789196661125023216508645686070612542958182558190460003936101258655667304575464885905627771022291592599893074203861245364995326013801533596900482008175733148667751688199862302848504050200485530329016744318277415344962691337337020070433685209011635658023440835119774698604723092212513571027244949583920211300972320365622734669298027494197407009077549008933832764512084380723923014149893680907309680581233006501059102230529006760861868102305051477946064977877230558258110293932471412687211135346661346466738540402597107230353777361240079978357359742662373775737363965661024374338912367266172259183438928787627427949331811432165919537570104929102255921089600154658805380467723818116297468999324419009113470260229093242289867472141559111172296656049365011090212960662529777728118193313071429453829995598186683042531268179915400808742756282609172692107998269904722656009677073975054628311942906439080575317266123303899097893344971996312235567137057613436827198771995818718511723021806684203379761711262750412875017797940235764649613441209754794366435812705938519594159503898437464894304275202653868683734427799826886107711463651621576760204191881031428917556555530594489426870731892701977423769808615728797424262623196563122372083674390010322761465244645006092815320940800044804939912966985464538344011738019885422872450403646579178729917090778143100187758914574225351745907387470225326500632708506477967345336943616168194521246384922549471204939720352384908212099632278268799867354173219295108967272539957668989458148107604762219421886382699352694680496151073996443423937396214009191131365905042234409038348206466450283769565056543459840701974761326579988570974176143662597348804178500170416254659270863283335268140344565512370299205653462975607356192132615974582180590386560300773561781440511062601697961631768009686192646890864197213691235318814145570224258509319850097580310523242065742706030390008086338755628907321601741183647277716104272627784487412962935917196465371635171091032562361067359940770096790181724102831018788923427665599650903821267061276905334349284601430538173593591971407984935726313199191379924211828674431400012607446916479315064604913770024727631640888186557723965924873627257478228478951757841442432806640573609650640429485127773185596773725784559761977485793454440042513930266474807212711124745824128710592399807277585004867853718696996248401581409900738237802052761933342389882894321667182016203705863810329245940780883475895314294290950980629482928861009003555728782876609759981074981985447508562747313314424613089147829866088464522858300913492938334551774655470841815914808495481073935263308329297555735773463550106402621839557869079159980907582275795596988802063196092273361554433789679866265591695877306763509896482457761534020649792947853365145495322066078182679315627850475793555996825578918862542841719034418494934108839310980349594058503925599911698285479113318456670574760174113123142482451950355341927297376811748534682959176691715771894835438056063144540518442509136297794880186675376638257662580031439371247492973767211152374144919599356561750045638054196509605726735892715698066454777162186523150382051322097566046976681716164439985948657573720544056247532445566825719281068813687246571012399393477570289953340093457775619401853327039020829688904306635647636124541149281512363254282854044229343152502242150243840952401793759408276907222719233423959064623718119251113311710818330983758815814811770190352176935383403132111245153445334642653668461241120745779727864514416369980260550700419501669646268481921502431527243151734554403397395207989347259057908975737384377685924415804615010895281399814522506881593131997106612902227582401164277658966084742990514420635322759065555109553297731813167389212468397332161309845976242984385176093007573390307760092494306751541760721153813782493345451779866444044037954885370349116681904853433528853854246843211357663142121011331808394673663635374570016513002815659252251696429043090849261250814395285950158766745337780253403937257128004961175731196504673336387599706231056862700553043145946572191277707779110207540423170198905923721294811701651635064073727277891561485626150970727478457811500911718527669562064475688722131134572572462072266617492809868878396972289066307074234562737323893692610885470057966372413121829614458262658308766058515457335578768118214757097261291976431777484885817800021618868418207797466067475317699203090924655181994454403578316756563625240467268163550458631958341430544846093289832672628298114388962355046020174048586414689430857002821269664630664817696624260968224599166553512061832664716505283751036527250100464823645695272598487965814954420956967147882769588358342318625983966243000309610465931727113423110120331395926750228664842728129582216428773926949982435134390991541696832725984175229718746920409941148313189956380383826687935811491382113037768581745599496164872426283988006448828116333977240863333265499046675670347137595950225737857984599519067710363024093980467212182076208516979780406949304583666673608605891429322264142649804907938624498148872561891328708917378316936498802888484889196533524592914885387115404970323431404852417657510665077863287569589569838987986391669921422150204455759768109598981794902540920976803403653962718789482586511241272345242341052666694500794946300637918468204339326093320029514077111887592537419936443676844542216510821196789234200524131653874810890777978963266085957280868355167656572778551239872560370898078124730818427616748770498257453565139339642057716516986858166644515437126418232450392805365687512136048929372320649219319184835357023609798980153250165456852356476048825180706030714570906712461076475045570058823460134999575606892555394660997150560753821695919526756109955580254887400062235222418689656301887761602670050876388347348657547045117764197088505153100581103918378681145652005383479165141613204181778814359046504934922863072806979938102310851920809781499567809187308753763058628487420525263863509108169127343717364429388349566063184321437147912745650124385341039998164207793983947597716821055307036808617394078758885694900549954605672404049803320135724100484164597302571295237644436682333783178831894477091453071748247896515220157710336688832011845530945754712324144308858584258263655213809218345256676975637644579882040186772644832527556981984256633528830633106786063850617794334174657798320579950553278611535025025612458585484947670290204155236339053357610431406126876086450697756072823750825781649104673643319890072643936159823187803832931065506602477474793490042309881406045756164323912182720573538678481356114225511091994653602277599030377696463935469191110681838656033393197213628097701638343694374686821954597100261247121414006169584408335535241770805721022590109582331156809203821539738345281364740584502317846541099623353190786461602442006426702622547505086157293010777286672840810643247414624382627881564301494153077759150455751727423893446179754123959130511340323753395398246238225633176089942544979706516881091633515984844936597916612602189220660934283961607160583798630261177770052408540188943881644063418299009664847841531645940275269163836750756982253786583351821939189672468939278977631419171898222701240825537608506517968679794222247698633552723128169927660570683168362488742772828657789631601814089146546914676976301286665414662466878792158628136289616889868434042274548041346703636460634197408009321787577840608861532938006770427375973350489429099253876695814962163728577346355206837773929055023128494377800577418877523826142162082714776673775636689665325380104990968709025950300909674771884214766938300326768554034741762367600385847469393927455720389845450241819421538531460191793538346766712760046846187271214827466480134338720103267331727349485540033797646256174361626486610904729224481848354101780503449229580477079472215343880202161249354134825114335357658527688952386542311424216192173149732772794269471886958487696926282077442548012650776287028193087038828222691637440983544956086098668601395545356367406600278263237675426265959548198534535045226026597432513102960312087823356895256115785253694627046919701372374660438915352860316563555628616476307454551651975725836183866937306546805519997400733159142129022459799854367961473556144759618823000734352231761977415724456567959497809405704093138146873654419046354234099200869909729747956629392801565394780977623465917969564172871154455845062119027109148383621003689520961218457377108027989122013966487039234554389813996732999284091168301370761993002918210552217937787459954444554375543945392754515852136538967211271847957360153139962747855002594958030754830542474570589561935971382620587710415371937583625331972925032543599728182403022092627457315010440610307889704833376412192786849529878672125988341021182743639026967445038939405427845287548853796795149689326838128222263705701685408944568930980379958287858142387701265539552175334138595030147833019118046759698627277114526456458263191553553341835816764731590676149717238305436984304354646935799961067447890421055783420420754405542613346042709744478838175786516204094781207553305607266569726035154764928792293303648936825845350996407962361638637404119418075241247612144863261334855064775428714849084604868355684209733130517170027748452089236318595668303249063026808852983892196280260667882251739167865939795870710920827033960920154737778888484961188326693824656356554455853310236792615829500244773990769731552290831338455028778106896524558080300808662747991857112235138702404454569652780760939850337629337176365746002294820453447622974366655597482096213020222798776942567756550849629892256975683944004347645128523035559302118400357345989938428935950873034524363123432275524847856647753415628109131821177094916200562369589225279258904466149726482476228479296169405973188363379053659991296671397182754646174430828639142764661447002715211865939412520207709572882572712481979218187150626465258084180894312319696246098089037511575314501061988724213546670230771683268176922788837649700984795636017683876261903671847895421826952660111252895313008300074640875304751125309440511269519418324234476026100025899338491492045513190607872276117676895844639605767437517783738477810215421730104489912305507929261304790282189234929819977061686536589100864604662005558220395265260066645210728785896656426444886846618302810797268681038903399177286683927578855435851354626380434615887795438225251091780663587531106824944704498881253287021644901892648528649751059760321992416486750193208534714425966127001849061126375331652599083120224367197643231770794355507312409245900059252654491169509035132791827752882057289606944815894351813733162417968554671508510506928554869476127013647900415838010368566502474315416373282929130641371840382352510195108611809988203508459376051013009670045453165441443694160349884772231607409875024042585354886302234041815920939175230439891548788434079199928375123975679698861527013662984042455601906276505623282060740356369073075725571724713328278270885439380662454539718419565495087317727973166541546038846176575129084554456126089977873714391831343494620474445231820011177326565566678534545891713824643135340157364469525416721024904836348221613254453407565447995867674959703352671574413155454952019896763125009718884541236070662132692094886694279187907143750670154447014772531012335372234657521416007396630705396872906250479919697639894169678397636346894836419912151576283162602996146098496432440508355170268503145487992417292400337868046142158125655786318899410356463763742611937477024368916494261441613774024371915684349773222270902516315920329913323768542219848118268278894830482087879200528927629154517350252368370277739948451674026655319645087379567124808197275721482817773925465002707236665954385119787230048436333474994839296326240625911193159203171721105194151832754181965745153175274228054023100914040973202218770754893372060355092091210569309007496542222422695787968649224875839987446964208256202894710240264129643560878381375523958890268709968889221233373523706030615186396144289113758634405962550744606729884858645672135805824059435507799103193282322658336051195937873536275601461866141593958349360278432824037267931217434708642791323771634425496747080366034463593795035382343362676073307891235648987592796591644444041316922093941962253637346982234080388280377429329019741871874371357030728026842548988161084522780431689828483343947746275959186328540259371443976909945883452939428645655377953858422102481375402752081415881746581686383112361890342440303953001353992012213055758917814593625925571829663379721213271326448625756882602284787472107289404525002434065394071237441702173332499202037781508304571890404944988753644595524287254297255644052633707124400571520711520899763355062840206872828322520785303231306059711077582936067733602652545970375134105480054291430897116609406101711571870251461872862101243098826075951020178763445784741325247270413693646983977488615753863736666241756999401761933037837333735468983686537684834450765980748483929924265199556534515845632164062159087076234786707394685954323566272327435017745834671086524187786494064533877439068189619986527800180048678827674766824363983399544346667256443189247232199639998391226203896481538639931304736237089210114580223945667937142684020894367251316520682133251660871384230291214406265667069629955578286888268646444281172652650533192414328689574232379262485835196660127315753110024617471485488146080653550374691158660681483522642176678993488534204757534578144046137555164146642351921327812563694222187260340502388429840572976914896491482127114713103961973304188127493279664258396437885710114791114556888408239351442966909206808472764560030162910885648779852764091139926278161752260041701332807038051372700843763278160950757609554435446725119512672802529663018829965810153580891128993268817035807419322474933344218004383395722090710313645508219132932177048688494522051851226752999961699722481633088006720024308363441113618566803333722526247102732436530229254420790457471139610481741743245821759945509393388309918722630873240482851869237415182153719310224840684558447825744673446482424334987045343219702424616774718996295031667039540542147416644340711370409869553801591215389768869629355112257725371686935880680483042069879506404261413514877740540893450133145231462092544205706528508082222293409318098649974378362382812575379553418153527509421844096812519645997434950825404837218293644081543878019472576819195878002237056882341508818972296893284720085532329129696747780628492394289656457143094847896708660498338682934651241031524056312443294145169881413372280308303682359390442988278661467321491949558947933759973628075345781914768162302264084881353381623057114400942529222576048166150813525538755599501452220839305292015637937518465574654221051349615278791402339266016148167329865718702115904782152847880215371428387058079841017589321828941016441566630231463528122100233967544607333638718535814298446900717475575827690424130551347943799347323772660665995608924620944015056973649113511371469688364993617167417023826138003174781598719692407599789127817745975151571523187835528894608008324246863117128641724890187331365713271442340653241633245391254420041634275691186103943826406238712971037527285684419585682304067219730947418111360767659701721793886081062926720314278704441738259577731256389479078825935967637122292623833487503609719068692172207331230308977127641936777374257717600856910529591415648101805832760368642623434201083098655641364698684117355547447224234917997764718104858661412949834521406517451701636169451456018998618699241087086537712929484790197020033594132745087145125400235746214229254483034450626319771681425421532219267543655059682678032439168364081346206731203079169785328826756935715588042264435587148663280147987623030406914193596857567873598171179394733294338158263534869058958867552920828432512426646034350987516794701021627108710711779767523938455763873463686842486784691645835829658758917567495704789228853371430673396522896002108244331710772286686430801833046593462784846892692296850331540751498106477329622041294497244184668351878420502702389005122573859166993073496766369821648357255369566597585478391359731135093711357678745745444107473674047433829522161451858345565016799671197618881570972049825910644388537613939155790064775605839750092832494558907949307774585363043445374879352716070060836685793249309286857122936307302505326675976950682945497828073392545985970382451114416406245556899700452719631138949405029790482475603840264850690602356117183793529221500275400118296049139451771751995783515449305477503128105757382584909667362633376566409855884411582809587624086382368896794426009655173907961753598247565390238420212197475440281730218154216397760513905759862384562246753751198941184518823603420249311769001418624760500959884034519789899164394570187840944760332287352935566882503564764267866589989407124719392872046673524011903279364551994474642674084476470041831442338155922924349337634958186341218593885449751742574956442997366469200482168786967627113520416948215955103367669161082447463651318521983676491998635909326604917741908483168616615631630147714478973384198575893594107607661756299527830350921724898107272299194340177351324773120417534272972418056150970570263047486438689836205348051033436103828525760905911662211236832335584983907225280113018450157150435836395105447914955770446328834775964817751587729111849718288555926419113144155864442274884410391025678619627351978477338333877525679854479381989019860339001043581731040930557361877775553323040723859427297496692878743999088795190455994831511575317633587833182047530668445205403864834922904476435403622216968118883885897022569626551743573772226393062574960569214827808395499019828243697807053012678627071090525449593387707213235594939808118537487143867440087897057271407239060053263724250798111827778027199457767979652284368712422032525153784954282028715959194036449539255408746161999253245290015946258687765187589939406533038018256380804585789395829280545793214276421811483128784288375124138323335822852661114472995501983566196532234274708455403464833359574519656915377663211183763800371468437237476148116875009809248637715509301582038259982993207059603999552801661395084715255254522457210665176756824088636168138404745823642806512150522304783142318164296331981676982416637330544344932498322094801497574078366100132074289511755522551726763681928924389468986485297427308508198404149757377973234575486705919686282999397832136778206978772243826516635417045599592055692300317180784843986387306309963920547927502635166462555574658720356729267678440378148278143336148493908413067901931105101311600694290286816014863433365498803332133517639888149417011162959480015605885577507188817752600525104462528831089420577756520825598882010416372275912184510105461297363978214155692696448425426660827443360183808393564615325249595803151966647990053396728592189864052380081997639242321869549399539508027185084254716310786238740098242398788755240524855848880744267441181949982542586289802338083826490107521078756910458714020218355390867187111768337510539625263553273792475841879938740593224808231892857129227682822300866275184790146834618869251971438683300644170783338108737558579214036525274452068330781901843095218882526270773987827024326507061419189631073721220168759724468712278840535131998214450314623228467391375447211585850760070773583729018651903576670238426479017401892860704874297764272434825347320281617565081985600836631587754309517312684390562858167697243982942753153451169547963345809123637365480204477137175684242521424082083544165571677560515847943568858022947894526623405347113035134309382078876622928743261290940100959572270361300553784507275659296033211187835568730452737962207044606350015954547379993253347066468938859729513928240279602624120637020961876139079155101538992702730682793016313384045037456368999804628508125324755083584826937121589840714806770154912530658537303905365320600596913117178802679663048271172275003764150674719952342919622504777162902015359792982209178978180291060432346391298176398326017488788185066179276755262190520985252372868557841946859966357130985145524459415464878687665687380164155645433588234338425489932644402386906183557492402812292258990226575322005125943110491402719503618241579092227890716223072211969827912039244223088550072514481257833166866577629809165023523010553243802670014521473643871629684263109833025201996776017836571361657005903030613149992067390464139371169077683724886177615932749603705548519984897803614516415145393210307367044544393433771009941205511445544218043584002235233895966233440585076076704323438808407156581438950736183627322291019366810226138451029531253343548933964472062631689184377167067264063730807196092595482052191246792316080003883055134111281128095564937357503556184304876384108313291163615847560595112257361688697104590674885421389559004286662066303326190950769885351018770614792592107504820748148719172085142009340895940033867064863011400567481211302659336899450973151088518623484285334228116913800456686105738327846481297578191143271649025847706451719905159717578872398199948274733077296627915822838893008641455401347502925310655665011639273893770609064872627186747346621450368496782804690390899980779995885644330269325554262214309256889293788312796808973988716841724509763852648790029633725459605761931814390216122729221342742770577048605391958688596370675639721523759745833560649133193444923639944877102466919226742086203518990599742321038576964003032802874920237741402462942154519964263803821535673608393855639099142539514266848136255087700836408340180842244100966897318774057548742515939043802395260762291044499560882700165216932050839746331784004631338443139043623710034720524783373731053770817120642465460759648356271816651957750395883248181067111114323433119541129109794447235843946511918597176065160472399965089650790504317255254424212603234679626640450902698023923527743394130756022760562171700681091859522928508562719553357164555437636803552612347311230696029464753104898847075983308373676782323773956988064448990413793533118375649779334910951332312002447544246816629831031140087277373342167314840976338621712484151115894342590932110040170962856165987510888413904849880097732075760610241727037083813913825873798721854934200151709361445576653385317979636379595867989368944849538655676710201662991420280556676837993914596969755219879554473830827687757068195258784383058943197526989665016486630972362318008505670223549323236001397745474714456079647914604973697541469023292613029656491857864671676276047959626125255901685196507505081334752818148766362862671896735876107082848869779579083743336181685257411818917188647782157283079750328056744747201012001601444242790386734234899020767837161018468753072539280083985524350268913861288923156660159220245347554048016148165255788656469322872574049985399347976612826296965072962323076971513769658540267648617851669304845472115142229786982771617380798341134625730107435082902219470687860141726696657022639502973793913532293762514708642215516865666300580546469206014880146086424450302251280735575066738919310458937091274684407860121064976697127657768523878354042363472962250520635896957964550870012530820539380171441839047718699622747621583549282416220397141936058900167323058553012843949681978099964129523633568587785487413766924950159883711208464105581192924502806788680331214847544409708847633582911239670977337707146350973723884659401636490743902421514574618854621348444760782097314168271930610415570471825335311131398740149445191411117256632228510246526527568816670452061670715719316015828755764777046358896546996827334670750611948021625895551134452520872916217558274459580245752618183366133002426619029719389232446210046686953655480082430893549355171666781517437831230181941309973567520054274947298455506823115579217384540472693366897466893214651751524166470831351527529220875497695348497731763249043364330454313065807639360284013974557178639850537908656869375883684313697897158540029982699344950653095287585563347926866520290773096432442310119864685975756490079023159644583857262707493282757293441603968435997357774016172766555064515551899524681861393612079637852519929793671793768675612396189286259599595127568402055300789953349935000224694947750673425755034607130545428164415589788252314532441868460786672426873272276364626540698381291277563859618893752595960513423618421104724906762138519189267317540619424206325940480299037928065094091129094061239550143224614060117310216283820898580667561414585230889316155222020115489889293794441614321591220832058175197408253800038676336475786553452042973045618787686863632737703296061036611745478263216102023068177712216728440161113657939738790568313655770863991763601313557148564782995439258887902659272555442113041072945905725910198373239161188574001192864157148363250720578833348228885723814242771000965623498950846422458928596089030923691496306649847522526697900018304093357210719579362271046787346363995326101420907343489322961020797288642515567843466558695744366378999721936536145372481617474352555654298682289555410155166285402350669114958091603937458026044780023192548038230299261206445867940963021537415736015495927953263087450795400133264848528607842124461403227049862418718143459617518600857578682889114976623852588156352401663322874187196885398150564176661796205161790815676724235113323175183811171005440559699374359836241243123903163156185882358988581605935413669236048429233732486732493034899406490791476578093646187619726857018614513493352070025733093043317598566509274072985730904611957032687473798180356246261221210910225710881006775442821234275657983591370004865890454506261005488109192352074175769255622025739880771208359631961902029204296345508230641457100769251551283167579647707722859479293403535793438625015647407217491487252769974244241912340710784658102998664946015618588484857292148224778395162863835831077717186091515955290985677421633740172959876091262306417564421664346767479815316347192175672855840892316399955932740183271099390047386089088343353920051973189561817064136576016740257881075317808195330850445987660093232126602742170741111270462103858540254477111667802160779733690494347769544108719975253399120316255220571582470355896595177453368835934706772601730032710152097157239657330474922739550799853350124081299201316050435454327786038259655729513207242671386632054953416144181219605075268581991206171663325930736653470087759186869561406804567326887218644622837494131066111954177894445309432820005390208817655617437003136260681775072341459785240643991912131875403009803829452761244507291460921135353836142269577958254716849176617801738903982893147997126512239665744552073106321250098311049485358366370921029686737576504205255410057805827466143102559002440119651863571577317677594604443774801544627606485231358446915608810618847671452669021731342111723629673333450048186247546190103783703026508456919650164919912872401434304857603819976158455156638810901394602947033242807281843415985759484497284965742851500758018886108598562339368662364453452669492574780537844113996492166761413863947121965833229284730275856096295047566648631018702770631979560125440925083436870498292200772791215100215255613356701720298050648058957139546482928099605968883316946096445098649753113215179157729037537421650054467063122921803764857345462410781672678843166686443629244913285107977316430197023640763861846462365147605046227009580602156069001388468351320990005847022645091982280414584273298715176749964850631706336892830276239590206601972141850037744342011151040239656406911413813852575311195204146197104768474975579788864702344876150178741954768130504237860123287113492479218769889814700154597466069252718679918050756312950242467571186602114107480741293222664484415471921092176644092081191186239562708343341448768246720880329589826459376759797310504055771920213701465274144309293069548580660330360938103865380123598991186784733000226356693437794140885813216681987886791861948663383507517239492511721286622844784789745337584021491026696789299306351668525320465141188771500965177171761492157988972920069476620841025701972481106468767795096804638307722173352883526575407576571106049647452496454440548366454809554952676248826929130867998286017796716328138233959101556640518047307472233565463927282983866792156388674011572241355701302491037402383959833062636568372633191578386067084874121449606514704489577163409615718189353907196408683530653506435888412148703736178476028837373632132478733843236812565240693714415822150083889066730013832989171632380512196182969258667254272463152393708930333171266240784745727740125897299636274440797896808208727804042356899614619990399915858560911576962916933828954732728719461211076854418853783375257030695093849347003140333114732379976663314449627766284385145500278280569663625060685795629635402911472754683394129472193511900711761975452331181086415160405997821332221122257859193913734749110935870633168417872687219155717603281167485777537078803805717044782036547858519930818624606811637255730538704333178564070269513319561498010369661688753347687093484490764584047781574979092425169575032298614175026028332888326235173089554716118252873936422640760404841882898774902227926180616770266427348699884261227073055565985851480734743842125534984396073904620475809281748073729259751270263448573879244961363036517934069683311246569390299350914513320862896811651360097632492953400901448682365552246314849316103114227012652934661076548037289151355374077994281881959962184991645292496607678513881465373825071937343441689362965414269709863338329879440717922557975702785872605945064280760763248763161269196152698287270796507615866388707365382801872918445484405344470423448814678037392967743985989465661312492162461106383832188990954270313100250078976003305361712277169495514101833619980870721816665793634222061590223540843324357404429270601955765992824340130922927436515355282108194801382742942142876894469577190321559648700536503954357043363936105801358047460143957254471393943721640883146042904192191124420757691660361774704344846791671528201445268667139000722426493028692536163254848289392460099630605323637110722926729955397773927215044015062628924050630040512678749649292535740339524913678410965249823238613748910060217209062746066831115040051768291785820122307483791895645539658083553938231800824272913631199932356278533605922774951039500894014846070354475101901030506353362180181426128250585906710146526006272893211323734665192170574774356670826410792906507479171254026541221945653980528264505213582293312809636081540624864069817849386206557589218204306190413098348449828289209792024617886431729595736690423068573825035087834557737831211904363264066125427906157904573971007774893172202352972878947935339803690057381309911336555127710151189662204611659825904792020149810128609735377872665297715090430348697789108417478853394855912117914175762285342569868097051346787369301001638093956965134308954372199512889037520723330546532990363889469361724130993654234298421028420721886269290418909390240146096994347090815217691856673731126392436541323951532873798983794192002753781096073145898814199591857287757600260033539919126146170534870838726361275538751973101444502971286305482836477574607216807441505335395169383214785496729004212156071945566005731255708965810817367866725701119727822324765296736078418021054949503571253042843442332186353181893855091058460629500721271277001021355861050351438782549876366146913321607355098395963166642117217657771679333392877233818305119028172450272137557919128428905375819423995041622324295961761019136309297594690000617721373117746579825241937695606476786385792102795528683718571059614855025773905440898802534255072522597616377252341747935994757034303547519254060625533956354286932716057133135541693023378968873131695078664237734296457148055824572338036955414619905951011988943762349263754935158085264180998153739066949067101542102180188870742568345996612996657628860091972315273888940517882615652198022511962343948169069149945801733300145681044863132586828390101760130721309355081301507538059929051117961552073407938971418404755438333422449975761965756392018063199685910045180741049208492623316355536769155047725958493830062708961943478619294791745454043850485712835025004742949495190632201883193343875655995164680903755027987207670700114004463463960155441681090486291762829983748129685932713314853824516908631183486994302573592121319706298744402896809825649327322976747566466985835436214664805501620380679927728935199304743519570334194850339375408757130299572426938492035470208409041665957276069595892732386659746016863178621120315954580225043614536847409421319639278299392111546964543613230939853371538270243945848251098991489854281825600872632505410680518615836177498946144720237771548898756517643818185208195045353939308191163567545922251754466609597146580067136607083337243517167245720424110556998408595317052047791160449444064067658644030194513094236012512582488635110592260658953997477437532752238390723377118768516911730226339190544371521787071629530138716811425232679610283376591777169049622842441822748308450228166298088053058340017538888522929681899721288730317089578808700712321538078492727929634008407778830955001239958726160067143731665917821837051854916309657919864818503837873926774601991068125291578906889737455976390371680104404838832887282638897988912455657123420108927481368443187669391673016513537126785161603273597342524140586864743228605175596203980117248203567280529731400224293949907324296789139290270621975163258923967510717556909011787844627889012097771797535348278532810301528330766689668056422647397744949308069641578163667678733338406240070714642650452718964058206071014912279270257039506401951726071418184952056015566993141044674055635949072735392696077755632383393865956257073012769966684102212387876152929847712813609848583009293566554497449352150964742371622818579077943856579833994626359630040176077166872037142901533181539933743895009927263428667476354566615576831373113140367320598861086366367657245027465359217790119722176555006627050124727540505800178105612547099216762364332347148748304745956200652261881896701503742047842173335655239922582826033741106980759973570999634927386902626500480035989004869684137936333480095069173196872987449742231584022122494213505496610828506628683379907991845124858780798126640308108508061457822884131123474136481117336481201686654453265058503238213623621866090580891325073990438221172958057938515137724685259453863591193601319518681492110489026105910743478427458064938293331738862554571877309311874650060542407857539616586392563436051899120738877128246333063559078017326302988872537545480141168958709974544131889190815978573173875506599765146412733214194416137592076312957605491401181677201308724062552112099781458003337658937601692466015911631456357047434412293065078373779482700725088671027167951127231496858722247621094563242514465592838081950969604266222539408242995059435519152245416558493898105360693015772487104589224758203770956069934695725325285874960788930365554718612130218378448699877620787000068955177730682319258027840332635313313716087003907958068037940357617069681851943674721859940796143989820958536635668456399703134654827096093507612059917083277643539539890361173528570112172908663579269252565156790701295866689822656591260062180383095602595511049256009191609010634283039126820106552392569857457545194791846579311918601246543104887278066716965810361061132500756968183133431841287278236975691830742660604096184440624409697980034880825033833866070370385120109590353114285053301820643022209721791252521784446423254341078723405011111030816365331397869903731908904115846048696819098065212427907630938738874896838994147687073413474440907494164006031105005792688784783489318330902012541548482301059738367957033087621494561431078259554975534363902067494025930358362446927187095366659090042482673465143335423646868133690825853723308384875880885804029937081805064615705501374344147031890825042490441863493636021404405732133579625367674625626999396347068973182713639540472441946752395208587198629013097054959359212988219958984037183128725560413726650347615428075230783638785780899096121666849450614701245793277187581702013200436678276628775692645476550752489270246993591519360188508737114650810362517221062766237181458862856740077128121488358649110140516056271815486511085539843638980136380794296619169721062494842664043256952676974892441444419796274772422918965997423795361935511084576884005580800383079562939501500337918887315231858964054820157095387686343587438698106936758542147165016727995767647974925760974012752053303845401729489214116055443856098753745537702897138002651497182029239758308730559608440520516151055229862407410708528993300937063393922828034571258609691583744069163193713297537835291566240168369118347474851280577489218193872989592725196860761794337795118893364739139813869583963278061112271265181632825064359477987305567819923053578325045730876995294552725248347817860681325684854102691935632573689295754104643970223963904498792696404473425360442831459163812707917113715785168709710862811778918830848304992769136367775710246853631120641716374354078205610124556733110279057492713108358730604757954800946283225294871627463411895860350227301983523229588154910621115220511041562638221128731829280739554346467371389060548817064160913787932692978362724040900573496377171437823979194427298456216585940115600616690634361696948217106053591595443028050375089239413596745358575750154821918068400358849270000208165585518977125943756025780172889862541354550120769666019093629157880122567070257523970830865496802398296912628570975973371988701735374667286252176181551143818780357591656917443153960318528049102243760403287774603751253482753419060265728259777115175339744930468158693995378179559382630702099413554099651641489161814558979156861563432771109512626061909154872685450719341404014410976926982552072859367147030327494748290963994006882275639731162281631672110256613556549075786397494841636290329263758311330146714015243114872337195594083461098924135930093239618473246151166919926446444586116070800125983381408489674985106543101462746353038464248894779855743573291619691571505034049735775417888980009003211696498411053000894487526450236749750827053902358229717708976781574860683801005634496902141127930486136630493486335074586881172164814978033845949079093854248295106847265530240230637085637817992620327516522141484215109204425774138351779471269222952218082298711208540889778482833030652413093376225187201794485988718838437599333529422711349104718886989464134467999190591401578457571222764007015433174880489770770339489445507366668949023169247688526119588381187861441579088639435105419852877602440545636706435293474918763537039810388093573190891902837957291412563126379180885419688215086994530797878641850198963568820584781939672670277655057199931305274915442534781512778512029923745756936698821989296868846164640634648310184609917529264897349658411675729799959375787201061229755249970619544570660002821747252206358996082388102778941868223929156507886999408512556524843031663763090917286972605225474570220142586774319641190033617324231666018970568923108657006772583599975724649151069305393765501074954752980660549620504078173049723906339828826811526817463038272568405129288876007618598376527126863433144142924570037048674910311008223612588557051735703263297565836698086391664470259567690617206900451949813776966654452310507296306867242253576472886992182144954122759607954459250139176147802493541821379785468828942303218164409486071979579523528330789400573346687930185920994187341198375859269643684310616922228576550614827310225806547450261432094159403903905012522766869723767831129611785740739351668345011606929177102555191507211509625263827429089631606756586190326377217067424410302956141580718966812757476367738942763404557266704252983673878422955454745433544219415171689542853953240849515886999555086622597400032920549097328380215242054066919202946957068117997563068925527362142894349250669593515394078256579565145365652633429167798294948758145750947827571461402842367739572920899173978469780852905200698839239110106628939879543463592355051487053674277150482469613235710937615848932780905021322240765740228609024922483965469898437474783521487432216156585731759272489669126656258837213788761748831645490241060982551850735488460454954425477212791991758040764084950418572413822562908228092565931785468424722201065774001878424730095934001288820209372492296785476956384768920071976213768117959078991264801590723567298222979080174022568761111576410698807988547307280606543788652058486418890065247042262436996117107063335794008976952635464175050338077163035393174364408644156940613814040002822710806797378607836470211748033022088322199444556925196129366767604319159317279750967868049515847197633599469212941213164862069260583558853922353996203714719512370155995689445740956067263730698064288925448456018082277960136719024940951601434448212475124035098060071780480562876270846094668371764124188070830824797787381190876551531805092852936815222489806495695003004786705411156185382674059576840404349531553829548614953537726935839189924696326580907133589330223541519382032394398139958955589010963703586991351863848633123192324037536682581189598364517169141973604695752981996436343199468070203147325203948560851565714620369044313686331944810159553371990466611369860649016401030428672863855882809386119512021200400596770373560000946095571087412774674553717159061826080113092162722199801365074532726725032547232493621637861874064073073319505524141562958572321191846695444082148249387318450832332590071656261269394376305349405690527021454791474102479774304035400464259868774280753606242906224251858037696057445683058963635071456060868759087367069217792953679476466437872978030180028939694193726179665374745222215621759771837768050925070674050296257284298481387170927599372509246694627779710876833692925125574718871973907333561953383684468666408788940715987442800000332430442374389359561903500262543345399017363353422915852271979285114948914557129736017871051699137390970736154148841581045644256474697271549631521289599128201988005500182325082607691038591843907054896000543922539183438680631554547640400007146092865052171811961079766185107725930150993287994045625951750745042883408002160183341854765157175495501714786515295060433893024511673760762285174961536191695379212464381381897728924351422936966247803055201178569019990432759378345939557300470295269481133646932791545582504808543713812038411491201995226195852041044172390808709035690148704077591539173732618574292161865404312000319439495560606112917408196720811924895477120055706533015571764160107470907200454414169274632491602130871585581763376317984182404330805244923803433627859706135190207320718982424675171225747006695121465818635601266766890273931727137291865616960597776337476806761576865251645486324104156433667765310031653293478149303831158935314010124091997315105798450262882815322444495595137067584881173514301966096835124278274050861123096550885768954247417331674776094336071433155350648483583854131786598926391519159467007571727310270476275787483216256690663787121727353779253311672269712750580911066305638973387088015711888798477238742525658356840939286754285152110246316292992647609599253279910051944845739076840993288824996904715167009996722357995550934442916975030964462661625757008091533363257567089847618009694551800284388124769866214658963734418619687121336606584053677983634467116355126346663142605786667820043885239388485676294844603087802514079412007829255284945976238306403454498308600801351942631355185429811715115417866635269379431304608868046431145864407156807908845980004580670253804361770160399779485217591776519400235049814979788240629149366616101247291011102171453376555713860346411592405647781115408501663585820384540348159383691848289497832777846474575142128634523419835331657379012193169312500691897606894775481389697199901847179688563905322646540978160000442499168585645471021232516193330109285654428919155991969356658571758590287754713742047554394960776055721234336611786136597538495040821341209352098662951050932768431274846611406342999411501778699491454935221113400565041092724457488822018390334513635596742750221479737748587837511954571015965464448564525369420441504896556470481374855050015244126191255240356332008381915039603866330254539126117419443846526745294812807365220777051330842982962857225082934439477967971417573801399778861794256965951773065685514693181006586811700116319128490052837289398960366298402093421144701839168570539860345480617979777992501127008203952451438654830389490142092686965563605267680303621958158489855691996431808100629117438579861427201219728890255055589453485632035498576172451566722112039764180409731865630345607497236438962733678335820797724939582058321080380598069288234234694698131468216277316594739792327400595181452263655048503120428356913401779621102394072423590503055828246911475075640814137818616097899594187189325916468736209995438162418788664650059818419128321546414249273004701099996036647831319799609649993698965457701584869829967321044496710794055549737349064024905430685620125286395547868798409348274610391261035851531575684586332493091248740403364555893456690752947318204788169502113414403695138926941635049183683124355059151334030313575712966603433048309903797778283747906610486471859247341039291014327672214377399330188251875375107672746663732186073782141058128139602858929377398077747943168980247068833834051063413719800729586256196080031997919073040418999923370062175611541438752454966905973851684914027332659239511301918125783910898309487294064637223111484987906823824883151486850643976264883514545714888367206484473840956110460880508020986898172586792153141696264849930596368065276034028741106379355850486890565743602514217728480116907455442106893011310573680887893700136405596090459059981857876269752214456745640598879985012510006581948751856155406286508459775107020853725012174774380739756833709113152291233605349852370071000266734223204712461156236029984125657188903778925463194094073112476730998526917848021555601049619117014087887176539584366754469557018601979124392572642489639238260224564331305278555167792994544325275364470905742175340571036790845713070628855354991991854087994159074610930450089850254672147043699976574199889677026285992074946198985957959129404454779112520109118650531977114996272877490991370691457389049902522997673621440854786385193477567749677887445086647854777369186188047604720789919401720542038640717691781799299656067721623580204911125512250089793140926320538565424932386867096494596250997257454760159073377545715420931850212035254211428129084440320529036745930593082912923893167937734595585154429814957762225190183581681916689989442864962191500850165929387841722845227556951658877558730369653741495796968182303879124963634027998234304355221561358827634312031069184116232723508705855076699561677735435137831874927398939784143543232222871567640092076419231140121354962679946107424748142667671500263982048186830953242424058277387549441985735677050496836628119079241366590380020945090246219764683753261602261483093651614725384811974696359535313030619366849004788520898484439590642192783754204472047209053803652297485041646314360745806619231093987889807366383544364433374537532481408404398244969338481295466100032766188199758512556084046017682425136783313419503182981708013962122478133390619521759041571045752186006692544553156809448724416058233827656874779982930391869734190498053890264701831971938520119114988867549579172149581736253967939127735548859695781340086448911105361191807157132381032824533163263034372008587324642640974486862485695753590599393261977212293182538046332846283999034635120744683134425829295170416356634641706678893713839648676023215387205896081001793857951195247613069413727200635993332024738730413401779443932487605150405450136299119690846618986070216259582605823921661246241630928380689529647295493765257134988540437172199221868740714925696749428621168061794265231180785358854686614219647316994764461276671691767252046924359301525065500092785898192736897428221004842571552596323220666441003676941132238661969272195724180309854288932972490842649921483249724689481092451790231670394943872815391179906134478523278867083092159307914412981526059801002034316192715139927626290910105235363449058390111901151705048102457991751060517918626296218071481054789281975631358261219371595791001758494954676093499414872381664331443379231811520283387853299881099657388954397225193509343926827098639694756068156774094815316886546438783235105677871836550955573056531243499613954573527861457482787047356779693785477351956474235418742396493701693722247480909892515710781340205550682698954405800410428273706323067714191495592460916821505694396915684936678076672005455486480507604665338580080854978842653196188180598682510389015134993963908002789785672623776107125073759837235866658700353130313807875581354791113370776771005596203978542017453431817883955239026813793768576816963590793548725283699627220907446144745924219278239896853086642091328083944235285992027217475495900608260854262285193878852822476430625874127077132955708696228306627408460101715955445772795034934969879704363336301841575919402578275448648006242018564803266802880880014892078974405953010547184300911813482989011243615598126070745092192222923281910837087968203763396690694767770583988254713786623211988175873754555071039900334512229524559285276673281832374483506558850830856606243330316968365833028189476139422099594090197608929299793067625512879558251150900578956148348388057709282658532820183030965519014861128483560378630439064535791192682693507734896470276131839673606889342516091962171425974291632827100570130014090927645749235727591790291355981048315057620579227485716534647346387476557583329354054157423608537791322399286595170653604450100532152550140541571378382534900529390114568596373232464864843929993979267926218436734078672693393303005549458601456241054409092402415304142109944706165918884268307665089288914671734964866049537868252858442421691197254632486045738827953050817141631892965091639272537049515995529763985959338770507208989868654496556000919497744323423425558430074453490484765190179849974959112393245015740482510328688392712462249216996974220105384552539498690471922442204944253496104430429420786207622273958990551524830642925598143417063242553671861753470698252876089439264459945245762599429601067440878328963475575213141455437937432115543903857320830252717972293027442913474074203664586812847318339364861677567850189964814530918665832765119148946394754024191160314191649711141160172471143344076763202377452268306726317622708011783300863373872364551733218712516962881991357320122211803888998401079573746161519478222469057299589274834946205644443890415930137755573668710009624991883413390890170342783572569907031967176343484875592989610126860199234819824707416291672691892107482175245829369328530157452443226627584322545664692192446326733657638270350503581854913950964239281826686759184472380364371886685738719660850978820354802381532204708630290772547791805745047678944413674466066378792141692319284442571425294726039503588146865221421928162451018546778957100055881045019194994102756100862361699019680289329270213364996614610403903896817710309255676235138398046457377842813370127689446021862527800839216692131267300456153375993923421571480169614323144349965432429286129600084058219872082453722585548605684554877127543573784700224249270351040009092863051453433542691880405526332168987599569845313661221761952463532189074388966474541795100146423283203808634836844581576259977935806868995083177071791244223087065277191106304316978653670696101403730994142177469994720579454485626284959055552013247595999146768176849275406274477572883832056270531040059679359213510132716384397726487791726763736487878154346442620218347823066261163958514300626355531493756978236612702219579576494484850797712910213844337856937415458910998521589131841512373803395835833926889506309452157389157991124655657760547338452386913051333092513765260175895892308362871005655084932399677486219813210111888352193639086348104967008667279304264260421530049656310329975116772017970341714652940239368677280195374603659291650383875652779386147017630045193386742697541978534940552866579177605602968248804550341167956613937188905521953997608090916482390398751488108965110908202459459902757622455817896014046380890983052171904098461499612900316925160247037137317571843761867452268165231720947554719549148051408604914389335704730299294086138932740975886907158406191584632952837253814766174144736882288997490420889552662637808024293753229214512012986377840042838584663391985850831191735430846700064952748077445188804006321121294009868126066486663721251178867839576893591388090896571891273059007954645487026312796324066003078615366680115072414049940434334692235070706513419875552919613548927944533126369200603884030564028765071432439340809324524586753255732720937859981134610071470912341563232873007078292878096232735683533301941383654692654156010330208711629946018808865220484060931753113344515979734660940367987984566732045653260407006820634931905569818395764827646819236820872444690614304054889738134542825802414468597171091549268971270370033553011621698205077013327233703769488288892347221904666233909055785250138925673542926942668562954967239391028232362334121678681094596391151824684571292667468256769922018751232877140225550919707018222360714291929425159266807249292953207851304474552092906657926546607177506683044537568234694560996838180303483628515513533164827980493216190593740207846207956998675761811910407842251186733853016750885283027762361127559391014961153321013242169224444237032157962045332602294555365739992051887968040862026063512770425838314389635363466098804553702996980522898617225954686387034136661264293360417370008882434014535995313148150422496396325847783668848912247449760059069759837184334909119912185372524407188656391352060803359716081804038717910071188161169993600783564310374487923256545392718093400699024730224119956340157575136828702613891378464098799473572965212637929687362301512880504276695598123443171615773323890299881465534017220634850644142106741004959449919627732727610312793241322860168472309118209053631168844477040260781725014225494580360958276816297268321634497702851690826206574255373621083667861103856627310086325235268502091852655394090017430281200068747994365648242263266872807496587545923529999097320422701948978454606956313351365296164986432336128069863005147273908564926665491680604013445300648730442639009313153891412495443832570977606216288976399368699515960493144181232748651445066455028524417530822879646617612099554939713079718621987104835018444662508954342020224931847957549884085716986029425440672184383493001351822551542616108567063979770549359243803748303718774742678198520317852044009167049485660799176479176185326145657560230669456380555922409689855537055608221790083849842312984507025828078150717801905099146552748867435510020973303303216269178997365575343918406728482471210863814959978270360303078267953089848103551327799876649503536057086036472154102002680900733548994222631096866056096850953569747332685638346488383434721439330247761104698779966047963528019956872383180782858473047342067670314086880347856899160207351596066677293629634542495870053282815583522581320374134025514642098416131895024677760426401928771514303667085706846645217935346656664599121359739376982177823464559646344572431596752842128905965150170003806124793281573718645172079689545580075646865695670359301693151735659570649188702451298251094090619244777425148473953635738476744085671019622156236081060536517972759645324844066313152405346774284625768137444233090408375115094575198348128845059211467363997562230664136755119238474420954564468990347719748410355135734339497740977101167907349576971833100030842077691102828704211073138221282892789515372423859541362674947969013411147622107344876039434224222990342396386213751951788977792311757110054286475950329420655511004442866424306906305469423082355392070506244555157669733821855884704858820024681059445047454470872379937693380625655704091704254830191355381885322118320393418448753329850922746474779880233779704505659209780702718763508812667688971473254695169688118115737319137432547895115721809567517826194671027349501021936444279909458186349745525065073308497264023177539942256713745524940372341658974736574545544003443605514967779804594588574057168724337144531541823197739573672711960112225243923312778564051684192820620593721443883381647469790847183775694758938465236130721628996399862263924497965579821066930701260128141450030388994337714277818744200455176691934946716596478378392284304643104076407287302737998307729892074672021286406430710784329201726234313023578237547890726006826542822775119633195453237101186438956498709868921553241085750051593083353682538328960418250682122948460494995923708509946293364763461614784725047939227198810762003701448049910310449423540858191013524584743194097329030920597568261633832204341374175966620805252697763988580830088890376018695660184242099968856285523683826908301522383591883114675892760200336395134681781163659280629281248345011941992204141435039320265470536799366004381313986944397023315885419030663801683376003725175844644411399912746570205653162728568107498391724877747880891074095689088764277806858850052633965730153264477167282043502153019019470758858178368809191770529132926596464428938224517765974197849398221368854125784182933655408934327663185180690313589919552847768112195460588102098764106103485458328599541833346777268422924014614976119239919222178557876366201662595963292656018634767983909029000737361517416715678541894850760186291812092974671668600734603776717411202405753026583261395631117582146576167455391042264662323803024367903611116503117335394574763385595701356173186686976246940721947917358061762165654720057272919903516959325184887091941334917073176672235175560906992576741915874096592843009413830884422260921930980028411199931395750419070501161338787331947541112133789819138415747926635570339086063782873178753080872262124713949812374027057426083295384791204900319564934347861641684397083847379915649024052081155067526601195448270006412256356254368551977784379878845106445734183241602352911180077710342994532834404877845865616006798862230976183885592469449688602531884562827730754742286557788258796643362902382533370974291947430498753350972551198497934712602510845831220489631980813714822970680918759851673110331497274602262837751330748947922128145278670307361617744520951762977673287789159270551222211312439068562809667024155743543373671464018279839572334400980066744774984696451024484593641404500052808746597968861895757908463357286443194409483417061996409429935137953939206640099155846651270861156746701723740995329516923635913542535357384988895418779371542321878255284238785423879000387027983172874893805774960463163766732992314203257190181205422534889614038004276694563511249452899033694296613036530393977390819515263120780061353236345890606655844392784074336044564363530496707340675291548574782229990805681362716563883832496066273912098091537796274618280716669449284590100735448910399220027516076992253998853785754084286876628300790830533267907767742565773136915564771409118665848482697898927423103427913927935901832592202175371053001803550060363669415367437022904289579399159710097755360541882201270904479851206948238074577904059753808445655335498536928993117947405998309376271236569336562170501560287246004903202958600043094229463770551862470155991042382934639376266984106932869601952987129245877617431359115949750734639306515780051645166527701957317598126224305541551273451485171321763717792930595794838309377158416829770449067314622479939982466527738552645622969529462751350823415017608629457357645335869833730526334457712368183862447242966550932722123401469760076824737880052920401757809637906455302025487175839723522684813304046984659299133828064284711843969259192201701128995992692972172225950922643298949925669568134435295335636298278844540665625787612421285691757402355853603375350477366269795886643946538324898312853945079088683724616626492760885523907725258632040495632250420997324972530484501961071187027382947180782131454536608202661187402181107946993699877645609224659505386264281142848127200019622840349640595610841175630948464994809409149965657491534588911678555251602358770021131164348941052418770891845110351184708507015830003866719887002945175136373734367395806036287650374017429007218028312910737296930329630758080601863386689848038368452972426185614975904851648644039179294738432478852745329688567543394728963340760531235652594851087729767825082614375425502724548037697686292592351684349813656405744352009191245831723756889171094101298431613948355686984729384119051757860262126518446727243594628904933270035884165977404398158486149838327361765028142611470010929754938089732191059067723481669545674584391069927380796758130061760470634631298373337517137464276198888672427577928700127225159712975758977001309264158224649817445126564652034901403968972476008932104315840068024916030868689880366196832813609780893716374420765375834839507063639682273417738421219544716987387386994774086212660970930040436014463279181763327317668671070525095022022944143114004369844148961299198185933469585011757777272321308286773597710764893298812198379034915559559360811343019609532723676384284642852638159226315986567094504343878847051546397699014751626649748254786653644762328495308866924826691329136542664042845623897062376166921255358027094667378022397932428032161474251596397704511816567169274258529236795606167917637688726665421782987187031022531173950281764831477823313241893079773915702569381083617220992116710415538452039736419258958690956428046183991862519911715994724102668131186163710279619788249538427390261320099333410134280167820496002844917254830588648889855512352453454394442541012200208929023594270746459697726635528928116422646515004466928387829868187467700045479611133269406999115990075005484287953860672780299001907935803407800161806991025648599126300599384307152222235190529753992414193511672963669672452630458735602530874023015308642978191968053322011034242935525046007762199820083639847678626354636904481800012221586143435478736788767545956378524276805583674210287244063348365262569019699358031758993899966204405145808703486530899811082868538907366923238993149252255846788734035083367859650618368673395576423787310193834567980938335360060199094427836817830303655089589911083376933844765993582686753394636366563412390165711664194572388526267272031445750256832240042971460143313342090213587451245067134614347494173891392838923566046798649973191994012378394837074526221376205010328844635080786488585263123082486196815183044730590764881752075410493109956992511764678291628204640065172490557865093895370413136277478921635581945006340050815838170770078604375161305676255874413044554178823164205287734094169752459132699712244726969954173967588181729828058853699422999692405275732292719908023647635468086967191294449269079861009254091012477260253097486273282631370420428286871219727430426764474955603938173124239692457966381080880658595466388157560458773876054178847747498802750218998167464831775640519898228661792673062964921948737098909602535795872396887447959933661521009549729123854645876656643380537740777341352660067912829613657331764357402105878432584458315051286584333300456435074829484410710842194645736244222351281170853065439287638439095638882050068064144841557582119513433494117509704363402775742693987926787434412691651223722213909314292813813403855915430859939061349816820033793462962375332731935658004159612899186750873703647319598155259137790530720097659356575712620436637185243510135461623416363733124483986518413964592994940472301569887221854047638747691548620055289623341667268516935764670373032403647837378201028895723610003619188734738880136682940636803841669662166959819708915788536560815972376070209165241361451221296541662289175771989992873604577432328509476565206386624173020688695449413409922483972013297265759815798619831658173716460435465476443794237115394310445633573868819592394809319014410752869152682256263936079812088453673777123556646409255214639336092142882274191892116407368460168326518347422364579326245911045753320482079152524615065909761270371422059943702772679066904820013864873971326608348670553637646945936772473059356120090152665342980694722419653122138902840318894114535510134310756604297628450840797579481402091257834248893133041737786818499671997968149230656078026333800235611818882038880772592187364670655112995989140671402322646071227886486999169242244113491406299153692918904934968761991758612167689290484538202130974061945157607817409269119475950319063390136785517103544322413085012056153665954708008199065782154708623785142443981221171700768522503180368838043950540951850822619084168847375698656273549317186523986170845662892319801561866010932865573006437299348185884242314279254522378133018108343682540800300031829555234201035745461344086627069728272689882735315709732054561829535539978863555650005722042589476247452348737100126673182990710623438226220487203804744916115007848084536140201172380230185385177937564280937804455064369906559347637324369203483300015541228736478077221350145243312843009135209953770483541196015741417496029788251315597345051199051049261617980996395026539934931947449109566758446110496572961178142881807419722820314852029060504705228651051900976382515631667674384684109160741950899901884975517762518484904034642358827297499122371080649600673118212186111863650464932200442768360120967535569135573071533291445259974984257288568796130984363886920572174297047324870567203055483725011687053139299587506723824277057813433994651885897107631824741133422381162626998331192633060033010547339839111385160170305518726016648039655277926777667868124841731997159258145900015705853741483949838956768439141908713545287961491829624879935304397834730000782001125465434621340040759271901933971923609508104099965131350160932870830263034474805448687088661362018935249592341787536663770498879216514971356974770552492128206010918406915380073636118921930709463294162236644459514212968667909108679464493322911473632865223028021185469570504443206648145651549174542379926882581720944388243366322544167178597291533655464440629706193514461500283317960778194536335979393205864559716504986807432841483002217113489479566983909757843543096831727856257763299331437119361190976019179748266612672563544156398308872768234414976650241386378364750164609848769187240724049813745073744680788137956680545960963074001147687685108485399480408005308599884999476040314482952112704603080817874417450565325915055809781417393860611763901253096456239733717676971007621291799134105673070256578428713417809006214903864556576412994720376551546028661120220564921478079109779857003405202140505605909778224970000242589893393010655717104082262102874531311717562976398072358966255828192439843972302695624080439980668232098253245565655373481866776206356414671457297824269697670912968757409935796569762198814302736643598945788514865907052557573919071061342412656984947788156002668969349575887075904692963119298390142135453926084277668534071564160223084498342598343047964034497502535842572562671774878999983602927742250156236289241376785788377243762489156534004606411964698846721230571156447307887865536005570298358078612796281101134191687688367051417814925171103533342971116332329003427081318253710295771347546940666375168917431722055940526910334175511369314221130815480153510398294693689529761220114818812860992068763123452110987353661201149931016763359181403036156911286788207342967785903836032191966827163300105369147934332467836527976163428153926969678754517935835005930536293139332401851545396830580127306446076756852618979281901172834651288935807644146738165733896211504486367858862637363168706659882318850006007316761729662591234365320934373838752285303479881053868617775527182028558975467887827209576935292296925004164896365217621317006554291814494057959345999880046529216687438524394736788668886196944240099879598923027587083328647648110693991172576159248480305155702570041393993128448192096229973895066244135312401869308901907141780856502552378242201456526938912672290463221288549081335682538907147964168681170424379502328364943551073879222299719922366373885960898062880043332848511846109518976959522041194808868898447971947322234845478648089923255040630004994853234641545610719468240005242005111335720498385083786841652384710027130811456992185896373479976052421426893813459005298809375053716761139877536118187718569999279271715757225625568971623420861186506813236351955634164398221233409219647144951271851319211255412610083458035367174871605564645315927110943876505782623070709460410018090799579716507989367143026929011819262350584213807418410232761577829226961085735477064996784931405623056788042970040836315252343487460832282166922859802604151237620971535617496810067049763227283208690526705771531306480590183827371260451346100960275462011822687678216510354398506944848138846094710716885717941680151043753019971309749469370776513372183612639028359001893276922414624828308181229118534381337014223122578105476227658980915575589303756939854223408190024915047839226087878086394363749318959483509074841269442927963640401862760031349813367615822528102785030357976066824808832383341608609663620813237884551508133131165764935208519691008060564135045448790785371599810457569343430373391695149284142165116584204914391867461087476613787846079646187896996269447800697721396567740709809596701787291710612119057728438904047521328986873832337156141308771227788667012452745557997120073502182854992690154796035336454995513261051038820825927501887685947017615339332989728459491573705788849553471636430812886316618889346228195783173959035848836355803015657342001592391956632408506350170717908526956923670592582307273038921596233782193378037464398827891289438773271568414451352615478094751494957178105983418631317310800890317890180832831092615932026525040621152493384419421316552607603339480781220642038118947423137202766346754681977016866765714989407941122341939616469680134496104328022461601637471148893860889641020053372068434071531263190382458973073661613707223309115586160217389508908101656757719288891471125443966109516583507818182232946586525156159817441578450842777726164988694046635777815186519159041537893283432029804747419845168537443384070116287968702213473868767819288674102310528959447044459906709081633762468586680353233058867580368723707977339722344916030211826610981939367359374386219776809843609762527956894383001894828171345048026354664060869615687309763323609662879806872842137798884543966848044069195226900731020300961448692207785168051386075811043501544842352175850716511370896853248796501245052658393405203907189960261382054442622643944430562172563055703715581315155803341445620285939661342124078326783838268474414504029366615334091121208321916805535542301315736902412482164644574338421319211134546031630024099782930207701731101224498852010076808893452107889814584991009819801236412966982644288799210652952957667121542676980668059046109746917662799545994908263317790133973029470314180396655780039613091621519461643161217795622434097889694717893390059671077709123700465832099707634135496379472849414976131280037375032164846537463997273786654091068354170112441237380937279464735623695933558608524344441170738723104201217633622514513988876832274471353874873392614876512027236233371977328443246722875768243539848164686396094838219925450442266403539673447485478018470209813586923908731247417177238084091382905550574014084378123512625074048003863424784454486718715721151071347684103457104428203615702301003697815497792617161812309616458556209160121826161006704920177034409009801193369508635959650489117010329318992565088049009931371744475638136670089767884222425127228974363592003293983044311059131234206672926097696008320561866675122803722722381620388129670727576865625994772458809715793780505572954567779902243606132118488312373307651848566198017677964216945904391158863801734557569512016418503175026111844336259195095213946567951962101520766444037742012946868367930365724591880976297742384307779161242078669837170863303309565835272401578353554448100065371352367503687573895598567181282547039955479155774119969179487530027500012192447151446355839844170591505223323145616146545792179047230510152367790984174740948595255158664254742420421202875929821216072497514652998693872570010155725233932420160475404583192787329126179711487898556247070798325849756714490304890087307786823342189425638114021276516358842862577328901733141026609908358017375241739727730359535956044063482363742101453916184898605111056726828610774157523658195746754995166706046319128812124829112848241785181155363502995747515734174129142138214703559856537214588274105282019467490405117540631409275080556428565459513711230034871871314883039177124386546681504556186537885686875157924255389386585101427460392039070418209167345038168881428924145737933877779210257157892907143302540966868428693355626674785729871123637128117212082065577654535856829120629985755341906591531555421242812808803807864928957644709313177676158788452650310699700674221818062695626931113840709418731067483690808710431445142137540900350617278816295302832394402333519141186176493222800450671810670989389744642711473280086270065684936408878308083558674367037708204535677912996710516782222979234780442045379991540980517818197981714027114718255512759933899988186082930110558382574046971878423151261271556884208834772523884340264061429726250174498078464433919474671230587286266519247964951013417549072746934264476386215440024623683311723672386396669768600196642890568602470542685408368114792574877726613826679748679951172964592113853715443311565451171561071446224588347537810156229687387068538591606982458073495760062575785303132609508614376588840479793773443775736928894848115335423843686779455636402445249879362839204663122691398592711674394764979089253171737779587549450295827826725102414245272593546199928897715634389877044944257552712843736514704851295238581397702543136260153497832831447825627257813613185569956773585433012272493586251024667018550050930514150171805956507420333368801438835581255857856384477506463759923140689384185574948905641262377577905760619991798612422749497596770816828864890938792332994419971765057116029862576549246365248880172130077997776742463431760542647553309289457030488728582825973080139048438120497869933178809446119284371363279190925898158920439297826732970039620837029496940426166913635921444934858429466042309242947460238317750069936527620730385379665669323849815545744514124083580856510324744337072856186991496125706602632351989199938816882298888725752826366702448508765152253380293340784239725994310660027153521747393894572931228278498905160865666552206936757825595607378681730412052351204030876911738213007759362627006153984301931720882526351540345436772904408408695534660565882093367848437458324453498235048628719513994876096408409649509898243642188054614148308041725753774089310831634048354250103138588199797033306188581796947647219483518910449109949677128763462568905821222926916787616800552977797484250436228938098939284974634078314827125083662333686835284355903992114971745305410629698907861779611896775206918560406236661412119694001361686930802560956674949308551706539297665789243534666329973077144011773374836386243365571784468130998037773426465815997140809585128030323053843324709810096814972123777993870226285212482219416340122165599777758956200034386035053133577061896314891823335573502129409325139701260858002471995900176064029824577422530551964486171572657940338729726445370186785650002890507057971968083450240150121376535424943177415408191269690914305628074250661690098685591523138133100277886362712706735675073683611665410910492697268374532925727503795474727979860919739965552045038070520672362483010367830723911842933852373897625897005829825363036454371716910554019040348763460823207200816468740646785607084104674081306075282137138973839461179946898766029259620834482396348743455176870035671239895105628634339002750883620190269891568455488541661487501149794956843748676436827267938976688929728758555647730575841213382107024103130238651860976679508884748682981512792073252650106887210059226651440245797692816236229677364633465880443292787881017985403447921095589165484836521737333910220971944007058996089394985278222478060055288329770218960305014794282642488590547258025888909852530863556227421871785177361252735106331769972789238651306176267159176462489767684687936518263174070088422989248840520599076547178990658191240820538026085139468282506028295380601907680018766698994732851364796466505560331665665865530629583819168815405640563833433762896594758762550997988251044454192294352388368120322473423825739770703170222513079109127485311083201786722090758459135574457753524732403838961091828344295443798538277754610906139227830998509833720255665207416812491613789372338104251751622712961288098968184361803693526483639901095387395638458047081003594229528085139320040024941646198434467598414359418092408168637769223255463006959305388927293948307440793079523951463471365783437339273404258576088134301182184385220664102339033011657347458619049647985139675359881231471715016173401733734265220747944883000556436890291113007277568354822096452975388191672414696276274637574384314713107363017084986337657732606987389279555156832252287838774329161931018683189559343267789071419800118547464421292269072387637595020542255976916404510137650897767018384951852734766874501009044276505106137584585387427662870081990215025593939405250127766710986329191151599654016436847028506733352842899482009254439896208409463209915715552080925660077817683793564156696680011741752512687706951332991061452604391314887449733158225658272849818240486684690629089975990713294242871286645803602159654502975811993443714280188068309374437230253529601326709610034228748853275110225706915833717825916271212476625599090201923729351483621820720236020013568611841274358286976762117812176579622571964375388457044991552204772176351500209473708660462937034557065560484971394077844985015808638613270210027575723791536583219728865201619194868784962653886678466537924103235315968267531469233314666177747348636882759453271448409494291013341358659995902067344846206990560582837068404586734821334659914172465702849042181673504255767244714278640936294723128902939801548606302086002570380216173663576767492573063403810572458601596773511279958869240276895657280175951475486529571287714758511590072986255940676157581098520028408446056607792803368072162272999196388827236028182291368053874376643394395051236527578629730394397278298600960348086959991073823857766973825100497924865762193557673503200295454332542186861026107502636943947867461803435761326505576723687298564324044936097086701801218542932030837511766880489053100016563999952820129177964915080174748448810716368633587916345825145887478077628239175223194505675589119689470771861561285033544524874719849459450059718042514915810185567245908874267603486032877717349594404507310955660370410543080255601199709607028533834940952313452789273823013035475917808400246429266606420422681007466261182351671632513856769124259026720864897622421922861349395557730675831814747933876850766182370658964091305301821732643727135309054737026694516740086650994499606753640530505066212320236666213410784620804847752892320255198799764878505756118145010279904304471991854399449093385864874053927192245125672343031586486071171819346806649585678030377119770336408613974767393458871712714510506365504225873250792340688025277671170315152368412668712570227433082447231497280675121315504873205181100113037329074171347770536924166749548345797474491227749638840012158796310179149521011789382684711857215147719426863088246469965900598734504791947462681827011821331189050584441957912447131410506299708488812352967970351671127231322541152677409724180965320149721782891176616303849819035341668218877525229358880040731355318841163842696481424295396099297887334664818331045954371420143624519417463441515018268406611508486649086331341329639612517782034888065410048793210124441995254156484216970789809726367606793776847303935726523905987340083785420653497577603103680414076761453685682487733702486943944109723105376433776660868145669938256042406240853203230561236610701094018872142592530552297042509751160304368441189502261018851887181420184595324635041196005175998936929224883906493232688197316372866990650893508803358083005186010523207277854336913365037603078347052777022698804824079739305547322337246025250148838716891869219007251096233192786819955442327030666567744683298444042211334487894921763669159104657690686130257768339017625171782362441167498827930491299596866819844358862101712761119233218588697253060091193825151013342243538993593007845812812441317023710312202410557358199373805166007085461740208287301786919934770120017869851623054798089050868708785499496762008835369865178976797046765214754555022141023585241525021013586254602625937878143961233096059194339897555846438810257103535344972394966354820301405744779459589120477850414791855769543774498658231152394406180653281561196655509426425373287137321767887726993267965456507835789850459464561814808238795275360626466094906582571966983065835117808995634183774465011513666812768459865006564574175129346385931859312566278487950553018741262369473248905841383328725524168762347583155711299192017525128196335352435142946569585318100139336003874770962036765074799763628546901213656501156136289116506087186884996070024384672980031927866663259564100944888399851827675013498763095866926755878060315007191324883787463984579139269172042868253250840831402718494636938051542572001794657175629566592326342330972799626309895986240829986603310952495192561336126842878530403213705866906867522321468260969805711104994658614180823197579776082916133402477658223558631367174944513021872732177186819284368411516057826092837318957949154603941523405382503731088189420871530971010632718144732890159017725632023214428220420616377249747986756368560790609598193465610980307710051840169716623650974794766039877400045765322251359076487144372788733135755683045622443302576106660955358007484147826060434348355049816085874768428159616539471446753663843708553697287780191715534078525566819349344833596146799292701056273073283066059940838576995280006074540206391537134979510658102029597988244856515833783653311818583719003118754500410713223103651033460887999080808306635756949170150162047651941296210844012861976037973510361606415241189956165894614955903287769452614371781572275877378760001302829621257020371035264823856334996427937071680319819384299660097133991478409348741360675213739506796558682337363781230470191073777136451355544961769993268204184112350653599261842503538747457549132636351732480137072654125522452482187362030608451108158160722346739986888283163549229741055499913258643755844348782327350469561545086839220439224121658914791932719304392110370513934837558138567352114707619529093796734811594889016559204313946712277389195645177609792339338165918472424913128321047592618848055491479426558245778760012326821606013545370503761717735141321641906021182144060872032231661499881064064590274773422646489211445302713070937890187271774500340853874766579985807888587511373182784300923401152496493322548168160535882989044587609174320815434795792930765372144450205276011777599542003013382844122636621345546510017083496357018419219556671175400392805593145576146181436940982880842947506915729613405846128667414457736169219450248100252050618488880089535173203833954713823970097559535920265544644153890580636152864534507911056988617903523330745596414610378747171081033893221181999523228364930971494306574812520467620950670798095769528354681550048533633400364696076976288855373201595962384919589620875989094758576952573135472757400044676433250242358617727624727252328705236130857316433336417537528224261286946595194435456846092019497699335464493554134931998950094618146678030384512520468571022637596063417522959861505226901334496335059505486109614603906747747444261106293594416891287219960230034672032137026045335131491846064354247879868645533377278659505702872401957175593158971502250596611233729346076705820976733268824540313316404937955264818225275457657602653066481265155620992793657063041410265350485534196835190794770313894350028072649512175753636286184496054748662829652275988323571564788990399219312824947808574701560711125791106436573079514216255782292703445263278496246806543796701019965748312635824137643015718097528588865147474547360678578727936711039950944719123551039959275942722114635936885180739115749992074690662849713083944037968725357800119785985559809845985512812909537899205426565153336138152227301915797895748086009546400295130456037937063344779655463372624371730791242882717750927970323240212310030339983366656448962343202381180922315566932966627216397823482878017150916425473133745314438890842443483661134490891581840509008597459683433499319287914195967635742152961471950372731222205403443134782101151172221955966681323541958513920051860087841749596137000809404623735767163129598523241063464764517654890147077100310630765665996979793698679162671951093832288151257212512558624289332782723426553952724083489548810454521070949338470993715812479243518969490495022013178770925289624140495162046708713717256342097094362224266808235140005657557104628100870799216020307890411507612348238937468597886658547528041649079506762206814028593817236097140864654146138047048095014556641188715559368249560359263323941521905163837038416022736476491666900885484268430525705346679597111429516865987853766367615713317122055159552704041051150878649582017577531915549419154526418182888712503417124139775514300614101134207692127874422425428596114245683179928433786513687417371256196839257192470289253654839120703477678808457232943825229527895364135741180795411528220233148912322109121418655837385156385187830797152593792682611214944932920477744160190167833404978154344502907931709955142201282853629190100423691145320809378625699252241091904361132344372549869103900952891005544645272992349578347799836416320702557186606491181041169324028818977434286273341733377618887620783780170088376799355770139359128953849697912816258718980600330415710568046869881357234918486746441158794613846864548756274196574706261811383314198705753085912426384238782236296645054602254088685012075404802235758087743414084230648821072555149906699569689364948563156636748369176489435325509552276968193866045820105869388674914633732235043280894998594688006527293320496318818336752948950767996462460779031909491673271822868442672633375184686998772445121197148670596675912511764979081993306113221785260233765224450029260415805813920173800243128321310129683181487013361531836761664216252410311076713323852312864327975987301259630421674947298601784427702315548380990805358289954233155922529659426690204762253742062425860898482824864404864032264669376291675407078587541190898075160104102496991912683745944190198716186447558628977275006292095610029538453199333066282382673155552250420556997206667538201886793474093244582669374018422144901173045733436222585239869025294450627653733772822404597179199613680198422379105081804599454986495010513249441767871130987898550746484314300609877372089629101998777882271081579713736805605288819086221946003764024866641040061159010593697831267381285799356868001252204578751996314896588878187821675392491918808227490813408810021828931023210456331977772793542405430709880999381732256063603004633544756166348750517293532750396053760474619378809064945805519882690335612851476380804672068351085056780566985857660628837823928217883869451485257950783963938778367722143826464313170218154157358446724247047262657222176513008524678711548905200992171488693142872209894558523728685753179667360050027559581949358546735784722728994375912999525032383775615962792404021449057895655457125208429075126705627746919565835891365781656284648680090342601294279285481230207012883415206612501238299956338925647418390643884397219347892936139871686709159436180240277801369928882147500987850748989992616577265626123318531779336909420487353198648991316536386048151974513591442296612573115809802721060790342388551911939548744874493788197039184423798341752745329197560764092706184455870975539797177653984481083085384784584982188707120926717430176522858179901475913733859194070959737258637466732639675001004176421485856795289246323003357855036729997350079444293230630296264794203045097654649248496639765423159108791345819430254819246271054583741678062986903688614858946238535737335215466292287299206326450558122957041337769120790194883091348922611388561013820636083092048443722055225440767572767341571464305088119347848167627997472047560836858140224962419180381290461432138203040166331946165052957393578640241670004882518469449163758335474710470754209699976101236564068794588874805198769921138877405203272151460974707208709830063273160032880866299565941226006086532350588908558283938003932926136865792636504543087744637362342408177086787436972030530968725480349457580213129102671373747459163753808776575649296635448358569619385424553598794079883512485968033765417439798834949579199704608303900707793211706374409877338285855011944832160901772380454213111394144361695809331751513369807025221117372392407584686691898518807826389741946637014728514436687014989436639434663126348331164319977870157847842801820809992523835041099586752402025362461847053343089423939801920188038224244795607644923632970422327260942645087338766238045985660404191147844063168841492962556525702183834073910973996886700893677481789227866233000276667047707288919126073383947045096795570866512432050764205437628003876496809152923187537317342732943720099317409508508242887286274614629985344998527888672636001563267623472177892521633520665656600011362698495612139506791336987584824582020155520821314882834716430313079827800109004746390828605367437955223072017037523164706642800192181613732091537565842389901383506413490668624049679878364101984485604176779548936858689007389615453993365309071499609112612505012211292255870050237941165585938854246942699691938769133909439595390126305775472175408980734230449375469928952078410092201597769792747219058786655511282134986801843099370874757522853124616488804547428182764808908644989978533857982413188240456133377402581951523986684585188055492551943610292746394087192200322101835668871953158066081005856439778028691163212407652662688732721684849773709312472582283182913995346809007834666584636008326934416260733819105530885948396731314600497356801091190376656477290720714051247581345569184701197949995431102268318876605687633829340299461802616103918580275505640441040634075944720668669779723433708354401514249069950261224314043556435001496469317282302760309836873374857912695696500112638658596754902077702591356317620276906739458571036032965629732667626388647031819911353905417881029408798370022685759917737096697657738130202665023648481630873229016658280998938636510239459349562886592008978271847273409168442360190329208947927759743232585570161708911944468516384930560160368429155299820376539907947728669486041535341491697837888283362612882370562568498348239952526430610123527559016458115581430165302908095808295214133973841828942785472927255443060092596756482276359096643410461367700129808007307370483011255424352562673865949566843672930080224180704178998790307116436360468509018169027712963089295886437022782089620909620327807049538956980182699571711542680218830448545211383893692265415429179976606774041497430677361469074262200092605021130897755780551945188717556967888372016579078840283428782494043006813654744753141221899461314803982984661444200288976714437305239631452291386290397521154370472838050881624529295447193748150080043540747556930985867080662202607847305035684438059384911389554329300467699660817708064876211398135112755186305298486718450440738979019651161388201197027477536932396249813720647486392408633179128895237891258991368160852700046007452478757449702509431306564189506609671020001161945447762625587333780976961564382623524796375679196096616560112878454881434620466076702238675546105905801106788792551920063812145014129466272979053777133392369878966792601065938146672922795457246264053771601822696413986088022699049182310710847151828278487620978470935827448457155502709213434474211351663143800478703337457819309413630270265533963521791341201693037163429354140173141385936597925525333409046505392471801504420151341213873114234446709791264307730153817230623905405657130556694529289478056098700884614868684944005218533228377871848495479828319838196361575351292321595676258916805645153558118914667735827218546462911258170016446539421132713428916455495528241320537287142193326363065411530972513755499174974138981390568311057894919157859148510829258120602748271055539991203179182680953300905096955267912335324055558144485266183252993224318141467631361231411091583621605523122739410090540398060262378086502036378799967567164769219683673221049346365721777948166499716316064886748915693448241140860448613551534721368166287073722526411402219539056717825292525096311138217939324530341843871243848503236673765775417747060368566787697416106263972197372786054238559198920713873702083005698537841098563632108604029780387098462055839859359575031858036821956153619796656377650066429777947582611057840726155935442416113943823515157796766984730279498135899454060831011008933849924870305801385197802702777498945228429832385606161632473510158033839182266951647218247167853842705097295728730404886975159440756383745105397014243677727857234752712146323942129200268566366316301795856359087147624177689589864449623428674305712938129011179237080329558970902663371014149962354292462366935549657109701632447250343692469053413909758484461315264753993895609217729334518490275862521701484841501475182677633201878592396211346722305066515005903130579911852790118767155117858042418128672562894354214053058116647350131022568886517629822813644760344598422788000331076015443087495600007089268626376002813295488846448136323120595275514907892830165955386130232351480736221325700674059753817978133915429595121325944324352698278147060004159345576247837129041491695398779895207394610410039598978238793146538248255126109364152148010344588139177798823847523208346763229670935238466424899088927025248482664929575427816231066107742497208173724439125536002471907436108641978794276653487736078916322382380967163024525022444267765354404249233822617657104718741118160315462933975997318217787640029663029970226256723838931697744306228616286015239569261083023370752653820516238358788093289552115768849006781752579028200858758094326126051047831114836441576149396954039996603303942571246334846400147826588752182861271028003433947582290743008226718197249587619382611520525552592147337002598333523011434250610177314343577422339849373881874434367926791760299421632632980694688557301952686987770786505373900341130168430904394599204199308575894474293763553648547641257873040843951107715560857468647049058655642388542899415908324806744891613807105507924905615849690838245458364876359014917397404573282179835062159160097550210359192008992868783745075084739793742725083183438392266104924949858232328904510877378186809425416701306414288221097534998167797574993490260673105988906116097389721055384663157043168486533025352250203900197357321305951448443727663368713698581646241235266273831668998808539346631895895664554326888074092658491936798190845143710431958782701785642239326097399149994345844427184634685313287028504848911620222220899187096570985797637687806398605291922409016789380547418129508707586111795057518445346376037847216085917968718190619895878082462510371089683577874762346584119670072686574044622559632072837777722024948720438507261539933286409486701232582626547062214630437625069164342409150507320458244206589759219783505432697669527941938643242465032160913201451324481682758352456570619634889581714499060963262124233454262307466036351494640574390451892667920012578288167581045361137618461960284021804392462597744910605606883901393595381483474639686177822602397719261568163780075562186554016479751901639993363938019769194061726108456636562488253968856108948382201111659303907027119960052294107895634921994349684382700360575969966212781476708912037359201884736482642269575745364762708182395839242981579135040634818197880970549069870748709120325892345076016434559464957795230165824274153302349830784340460786293761365733705202304470876819934659444829020575011912244794285210002770179528338110954446199344048266487867555640850018337564735179849592416119816297095828440844137555263852087855488354536203324528076599473981924620829398300245964834108803942314393486087087972403132725072418991374896563897138291561871634390620098615036372150482284330761570072817873241718688237313619171568960709397092968661320896338757328718258906795508950657843270979772943053883978990609221377415174190890103026138316667466843528704331913782329123618964389567504091291515254259445935710191868967670969653110923340179726867864935916222481399341297689938852662734141120403700443440278952663827034380455035049539830163289419005992302959630732257540758516334118171754534373918073625372984562344932381875356478179104787159864020347965404709269431472778394751418573426161673916757408378949331197396865153461497393778372932020595093775497988920392568007340732807698883290963150749673017781243631922927308475613683164903437819784808307271647808387078455487476603802349264233905159053621533176696985793425035187879508908975716073044258146338962322415713695787136358829703302212696288445284668225698106879969214219605703243455152854057111738878026419650231921258868828468149123867947721652367996738226251656497291939256704862747634152547504933544079966786857618080012999488435222923718398564373389378646513635353790515317251576330304274746033453442469487498111651306603656745276140305932816667780944537919143025935831976007948461397530506584634481281602222199537556250062643924731304074262848182725098101633601570273051487736032722345884609826937257760567448419439608659571623599858927547043245602016659944160788446109347527545697996145505695020887178994782537799032825086707051682816817682171952528638371490458785167390161324385340089355531860759501534773347741586807510321681005216161205982703875873931379359830479347348677897265775584779813850307155526088173305701037644231056904451617458290504177793625117454786390552821486931353672603174146660690035753776409857065531292553787549777543567799808443250426514464936272015951482851418490373419579374712659288189332444481360338879715926356640567232623484821840739717240673886847198703965956673482549540666551329332579185403675611054656411592078043011560796916217302910482003751841017549535859530536232303934170373725939435251933215486606549599949118139363944619526113266098789191225118935717043622093057677844170414975791293953836696576005486429066861378209028246564733415850560442594110988672799670632060227458899397897787801549007652946088299964517271784179768126212191989366450314971948293181883462050471153690302538263982843479311553446400040606961925250606473048785969752135819151791980876254764240711484350177288095496935252555148259409789294500384685614971245249210695724653777791563843274456947100367970412326703760995232362735046045554924766702108306215076196690702594698347129069636528106703069633205643683963763484579905808862093261864202596371086915822515537570354833239412790614980900564697998724137461151136457454510335603622346988033888301046013759545609957636303401054514221048483201630398103068004107399631346446538745452841063133484954633794284688797198955960251632124671281169663663487971924832969938652395024336001164335900408296679541230690854977389595603327004776611726082759124499921088660503882959266548125963885245556036361727840163722052531640511545844927769254060775578625726911658350664808123899376161151189085678614772450173206554600796642530237530273843513437361534081339347272148451832777208665098621658905831652870859527690190882043111504778214795963604267917424785953059835338202102080537536347008079169912569894871723522193181648278424497941742486153271650341888604277335858685138155109731727845545317480818309386248423159484685207118235061503762316890437922857423624418544607131257307175109677996609777068643281419530422033418137813693898918060789495994172924625233228533566491905304052380552806297125213742655449516623328071558153931115880257023096167074452648526584079206078722026276453330178052750385161394081126194678417848348350178774116190660478429275847717139994995047878901373102644739521809045361886753256490164676849159328146333520347433434265417127416248815495534114025527912840984002673063997902932353133369795989888005367285567648602242053104933431371508134644688695682241211532869929141163012073132319016177735271581897371767359568204100243222079962122283375675908738094108546240080633316058194629879899193631468453871787430871045573511419298155787800271602639079893680167295593639173161015499071839353610321516134147929069676691256909720992754727574788555313126019897543091216381252448200315501904262859512150293783916397281878924799099411450060662073166046307633648464636337236842078182518892134070896054879152279745683437101270633050457789230325335532328943782652341633686894851432538658680905390577400402083471583993425882989816634837925217663671779998088521168473556908694684340601584039525658260731442751219530756335169198539624703287341756196964900661405296339108477985853885523856515993342188836631319113574612619519990642724925815427048821723730790621102570014556908266994684296486158314315933485392980845808599461279647721614392801139414585600172217721757095950651128980221746601869803510936478922409234420960145974200024981399761848262141612366136331850354847960668468795599929670765520456606844385070999615910366757534935425844759119566497613473233495323735341891655073325112082852421279252410590016449741890557586530352410178721039932866178293002587568647866820749254093117049041400065131682082674217161198416268734710613973522308346179090403540607008490915236169765583177563500190143234186436066720822017323048492987664766847175882014971457056835719148269779025469083921306757953705473771979542898054293882377636743613002000306613686104381667841605948147197816636022311843877400318534069391648992738459719974420238084682648692923818537843627234174013038602008274607716291926898579820738802629319262474629167994186548595464495672843429040701971165621352491120672319933855033501784241482003038232279255011750363841855333660047124587089429879837938664764808597639645252901254833119002103267957458372799396242497172630433264206462724774202648745181360112724325052095595681892482825568142628998916631289149410772125281939913504618061492713996096803125300763134117722380600271569019087145505480231194401142925801796325858278101678757535125989836846169739790423499252295300056552285342304473490341801515057090058405074827862985761527016941881823838144829984618065239010846854359825604670736418924244422907684677473601264487846381830109835648269620796994710420017876233786279588297871247015731996892268933075158328983476231737927713186913455866483244668417551497354931383804936464246557051265980625259086633152421924223827397173214493347743361632530337045147724881085019999843204171393800303182685258706983032140147810741113963128773580785231394968134956254673218628898589317027189773859982052646409149271979404365116787728734058641104959164545123285450092623710132055662190837854890284279153204322320008112389881051999998652542334770200375129226828021014222070309560898638756546379921179639617877897543558826308944484895352693148259174247514609836956358221490896072273276621726966240190387207292605243134884991600151133755767787282359800337265053897630064428948250003076095931261111400750787487290309956192833619346019020616346630289545869127305993895791634305406763009032040858394279425859169643404319113655883607267031170494085608716102383233056958159264653209439427037088619636602296129143124695252846411418544571268921905595298712498826823430702508502274497999728849990549955834138238661538976335511560107103886663285288546103213599916878675766854453538300442134266670076509093632376033378273600724983812182015267064219093715076508706966122785065840650352354553786656474452795318969199666692328192393498441922596029308375001435382248973512377336537280213846000461586878589229534991549651843340542571726064781348711395134668999826318724500340500593169713819785357881449099643025988628219830034700311744444328646941166908661007288788315508895405708993846816759337159641308729997476539987152324360819593501491104270789161832929603040041096802357893310082195374587237526301217858338407585435903513540143186166378062270755600591457230128415430728954495069207896858493354689538676538171917687803651644841333614161073204632632018358167634242335763860947671711004455514753892490085762899416864237412306511559522198560247465358699599752625490025102082824252196892556952986242423795195847872864364122009655428528487247809438415918023572375792892106415332163836901144450776383651609292691834421929261931160169435319018077659504864394754361422066525642683353899463233154971970032236755459178383551039874691023484440641147582327379915192176065196203264899164112308982107843540082427828755521467768000730189823232453930428442932046090046946184385981052210791657312090740308848920044712063777162148339624215723974248280582509519358697668120223869587570471695290213198603468878785199787171898946453927082716646196519193085171824926217955998486030186090008625365727688886299509253528675542457874860158169693058453252124321472646505520508923335181469236009678656496014516507905004682806947847274878552983895327993825860804431701817334512912545536520444040216670674127474937840314301696425301253512228224762332269113690727841575548547745478596928314185704464909984361528108701756753694084849513085464630788012350820277760873662602140748536385390743679339111030885439353896958668716606935170688244154439890890037426083994611640038697687800450286401698232520542489731807912288301680330762787747244130090507389714075894520926977234535173148553244144562418648161046557767152084118240234007145442113972025585728492570376397785956442449180465816794729237162643280670335722816555924875516932345484259982928334715129107591112534446750331737662252714467629389094106201587457316652604042997826061033997839349998900275415214214746451860658506131101051756808753537110575231449658973514125020613817288934225660224149013983242880630539115855569610982745799356856278754169350681203705134203772447260783407905260305271561883889659146794565525267236606762894186425608341501228167729059524993149310788536690582457001897607210773167329731884237933155345092771949230480659484249039426387953407781951264095819904107313266225278815970762979703194000890603079221964383257591161453829059345074718253689294548528087399761096943206819113160649942089089128587681950060538559931901190761465401268167197546900210195911812090925088620424979790963881210485975446486605192094017295126627116701044260664389326976050132729171747176739161552982550730370713842167895070755860994156810743386924737638232429796753833654819639794574222595816278058103829448915893091318850124031887700678947933091305326592394436478311618579860396037488496523555197434829896831690741620240302529508143008692339339048035023451010924062834086970860787961847831463195689888080830927167998577779894084697936490754393510614774485914244150863760418757877180522538456910267957989791507576652030420114287989154931540568948213363352123178759702900780857063185820121515726981573644617886618303771897389394413698579061725288333615928213398223527722602536913401805213276195312932760002734607751477689956286203754351685254836500753264794412406506065469588000383874858466758202673250388377016486057356092037092007933574589974037371657139527635635158580780689321019773758692868241134068760753412877254818765331106619035207444496761341951342144137187887341155304327572101828936914984786763328797426820740413815788156650390397624820714176142227407463092428954813154387773768321613316605781657860496874277384922750808589672633533996669136201470721628701437200787127061932796726984654880085869759715411843038041555800984838165094271752424369643792176776924123334940385378278957378345057613772515962543217280086038787152592831892279146879698556365965597462264411031109847254415539428959548083362292253596753994002160349960152445299623927861644357041776422792669980121230075768386478577733107259545271223835292758388523849218753504356141486318069252866027607466246583055056975493243536970344012981182142016818506828239439696478975444588230916829779609986352975404324685012974015523269657883147347768290604802635695321613783488198704573967998707016454665924630302709697183162541429966927861549332308882961734612631675355295425772989219721531576835108150384780468711780770470421396489737244779328018265611650557723653834041574572188310254580469907295731789404247849114448281618320949221970451751056263999861089370141968227843483849610082526651046430981068688866636303614463814406612205549001402594410609903564564012062380594228555751823408369255783881164865552598607942252025283032192367025962310612039551458395290371528105366450169125832381930437623790689570138873526154000706799121997716080752386269414665536757343587165893060714888258839521412063375771574115679830115004360598635244113949414068822667433619131806947602439513947879960340048500423649030888865307939320880966163637511161252005333276303697166682472541488185822606140916701640228792995110576575548034056971025733743902710661892103722517289144387699172396876637789206651105344951299736296020490664643101946371953477804215365504243637249116297942884996509681857695666689906352557009222523773016656697703190506728690615692540311373305553175261649319441047074724371711955963275440107151401197394183572990119376016000859713690932293743679800464253484566525475542912062057505953530245780934491379805296852209961064624484813884414252911797319550557252114365438924202111141072476484842380993521648434544802680348020913592680961262175426332740679609557701388560350093192124087898989914040770199356045930624318195233393161021161302528203493978725347245146783706408499466646780320012197286092477197896512475182971505338500852779700554458588122050992522210956189498291295379563160494747662488234792140906214949785193135898973596562948929992599010880181390395557655720286454143604882840706611562456746300333901894120713132814369706231487195377163939197848940930032663218897482405187362020253665032216015878753507458403172150847673773903657770664276723905214107988523313441426084592318662838139971777874206619421892809256859171069014564242493815646415333269367838360861796887033546928791701431973728277777599972043107453055165311287635517135475111736399545651563389347280652236995012269492262185605830744740791788280038856303800854011923119981818435091714982930436472000620166765669479826384539197962120548528444489065924481409730938806394760222846878407087264654493463753801333170047616804866362421584857771327577081640811274113556842556917482035374681866393681429378319964691493256937039870699858850159405408350764299969602106328160263929192616112041657858761625935995057409500304173184549782080055486951952990826163964264162239567731692253726505428677383274022802529583543178015632169647685557962929651423994404107229426796693896437121131608445592447433686413548934537204820244301868457410353293105985153571703786238690497435021109061033042321767869239730798657058316718641257387417569254648845750936100051616616513560260635009843845727523830222712337968310017034995517354895982192563682523548361829479678501569924270897496243410111282752457778541274794269459612728020251626481664337808952484750307420392344511674451441559323634249029814713397859839195549197489547874156806584385043237834465443462364662280927281549341354583218089880278863524515365917415703971751157680477249586546169654667886854203990453070510842824662824736511823030881883923313700504348711875223217260961297579185930555564758058325438166497385931560855596681352711795023373231827299442639202218051331830605438916249683474302204999407668983039634667682125823922013383176541823028090925747796996866058350575367941521899154143276372984920912760571907380679311970119386085887668130640549709351545670981883620643402283845100610335270832751438571997581375740895312153542490712761957999602670285733244430630434046161992592629091774648681950458858490236109676463840912390925474683371793309343065274784512563575847225080098735815868761658333946688593286827536822147371251559828096373706557948034890255805987207997909549865934166346087724546480544672297589923876101717023351326871897897193358796672970510911539336198131202869498083764624944888176898536672226066192747897246714832052653980367371041811839788492101409666437711991078232198862725285673113329036665641579381692048178708639155886439189983530393527297561983074293789889296516576312746392576280083362072015882621050040076966231097699477034023597519183803294244603017012371995616738953581910754866309411185273976879928596318591094059357403712075726274308456971673889358535357379682545654490358386091792566279192551470254899656162200853350959925012025421780177813810605614690607731878733754760686835547419419639004988046997343851646573435053228455669918396640847913421389319874413073344184860881207162666546439179011074060483060291294733617371639800143240848204348468835601401675227694879040530218084229854331124527232560345912164566589302577209942575126510760041521123858127037476934704064843076654992983437050798234705708785473050696039890492078316894331943159932021917776921182166168677325975031183833827672105265456637862582341700847247405221692174406126635257879616331291196038990791034582021554772393402292500978183288405632796347026179992565089585563275113226547950112282751169263422111933347467475497355478832552146387369513561919459076377398759406272887224861816899477244295864432925372566218789411995726101634197064216651403980087833756410045232409224831226858060339370682931212663914598672650313345511053752176030791046112659930803120922080049046735332721008988413860113943810533655062248395923700963687562229479181344843137876231138095521737758018368772888881419653366238983573106084874092791006639538596140432262177513109094320730123104616980687558630169508115610816011401421504159762868432848615584012919285588027171480399799467866569576278116984440340864613404455753485446144535831932418719423586299120811329865025167580897741496210481480274589097166295461858080590490701242758473229451754540880092624802491788699850012976046775980754231029599973988542147105901705740032005903055413887150363512803545567544396776140008918760163597038888024286127456326199738855960359859627085743203838340487584453593591650828145903079720508221305972685292429170713362098414854957425174474555201343496994001921444208349952453392949565380817563613700415437530824708999914795262874882636438732347190177249074976226274530523384192894667031452673908950007047188175242105511104299575627125225394044039265368627489247141975007452379667338120105271919427089192547445885275944932418789752015062958374412907328875925022100506215881020500944389887345151970781722859113282380058836017032946513357441096180223326728203609326845511284170264365998364539134219703737003951623663388261722189754140997425679198299409209908160650942872285404665990246624516306991394404351032865136924115743191619741578942224517581773806577036515942649583507526564449802660461752001742679785892236364275033886588786041231285583664023847375856613684240952265086627486804758739097464087836768487385769110189550783185121753545929975382630438394998409583460749351639229086871590436893097667440601294321401989115486500561856612913280315043149857578913935194514214512677222942822834981913001754666326596005739854568527347270970797231883861218533739398283015084963870517654299879652528237746050538985783107716328956819380979298534010051604242313152566594235021289907226869097355754273249288272090218403460130811841141971880516828120573011445349968418354130508034140388450936542026432420551492885585096847879488869219583552350228163805131584308535158556776966528653948637001877675159465271120750188320470117231130303877190763580731394388808992498796325348405632212639266963291716106789048624768525312497815827665322172584534281059976864475225660925125251290596133228817831753164492412974473427435467034774385012435724881943699301327729385473725066671080658271118505955281636260369817341596700924346675775215053006371052634437097029746433968102982519878653120417391631006730392749391474200959778960469762763736415131322139636165010097401189699743268089074810889950414883253665340893679697498846570146584867817300911098619338735528277789227896149363474668179048612972358279025609041696034161016981774017186061863824282270714813299112460069538123785520989342228891622902810679172000511881364603461472158316214453445313946946179427752192974855825243244638499276430513047509922292459589553562752979195222703011596596355363376370595666802073682333873894303554494283924884984364227501047376800877203999340767987918546064035443412759068892425774025705218431589424534732094733231947021819872920753537371859367138505539975923219059992925031941461949758354143394215161358627839827980842682545238429744571451073300589668912519947216322923737302957122964068689148130287075838736122782748011579588761509214526373265790147358200338879583961168765101530194396311198318187478283492105015585875767673863192612805124391791387592398830685803586926982688814929195446155331567168221500810654475058389051901124156826285952402889943503728929056948105589721802377062224805440531675934437916714964418175035902239987391209930289384422992505829420894075713872450967718685537346688976050327729094370167441676243811414758808033208140192136572224822895534075960419532045567809857093211099281696672336955214866776211378722951308847205445151429314454678167545459001337000894270686435829799531698092633124923990949844900763538399852837538788014812119574095072172985857234795236825840679275692528039567429325091854649415604999461823504817711676095239931037308828864947612896269268751973118720982499284044956343230814092040861038997037004574776672032846984918683153527213367965773673112094249999697036676143112571942554254950323418872394426099496236945878871434444024698121811934166551562510977079267757388302116829203348391661343233038370556290750694513663873460060414242355763583061329291277318311608172818419939286665195437357709502819467559399875379182660049746135565116562281911122451364391635645757673722851911899939457144709958726445088811900585510202383118867879460884402470556857749979907798961612940950874973875397044312696646271508136544807943627932529364314102112292170376873065456783462289762319685163430503372484972514291120895974890232608017220339929692557884228579296373007080735243880489868527420728266718893925324154392498063107804840283082149131918933178399158812333740448381878994694093206385644223084386834391115076964297411880648708521300437129512313375257906210575194706302441432794666580465524652654949106425770803989604687064746162643386302287047499269133086786670986108323779544803965486435271923874315034015392408030513750294224050985519203425901100781706658876341771821837607015302347230680796078871036979904464481494534516633182622097374476306524726623643589570496282639749889805843399242046920712318586744060561547956879789016337833004915421164033228920862010497856903715619270866170727562570771131001278039180070233830266882890383079291713778910942750723913619031447849864780968710794108603558481113536520224872291444803527848621345867733456489078833792696848080517476481598737080220857052759292288019624742495258252726651380601858346679778555752006240294926381101243794491413669052469621693898992442909775164161604906870279721625462801446450972415952806190023214931915156531229534334735226013589430183809292386816787594538853307634086040671991643797472521831272699067490727934794900967117478215426002222632122382186860421980687900174611095661856616739083234174720061377275305759279673443329109182099763664513018550035819365693082089569839991154862092419101863826479964970545623097144226051040101245021369860808165839689404503612847665228544172076859666014269696301970644493000924088122156949769234727905945677176176297116779660920744922975118761274358709689950367111533165972283536456578661515644815656296226389965264940613662270975077636323165828999162122043040332753808992040327310394339723953023999335834948845178244358062915567744776259990474014806045162170586906673733059963730612081947180843130374359445988374058062536185127983252179193619356636463520050864075531033253276813896797859891246344916060181017199266299221484301105853860931388058763316765232418161505829624578499258749440993625511530751694975267339859538184257867419970158754783782668931798325960017787989008868158192930485890795613831461329129819919343520668358910946323999086797809595689669604414357110925855132766371404872079445177765357173156659704883265614654030331934317670255868246151537070615994209089263128785840201991287041592907212736672076068689650229580543533970035654216114519871922341323226308365218680150508153327831732159627886285934473675744994907282444694218251833428467101411645651287981403019280887310088495327351414659537156660827504123361881333374898946334864830889994905044315326398607223829173968164544113551345307183920217287996161813191844751406982626318826365259614024432691024001638393709775722522719183866586000516489792978195947945640223257459864351737412925425267662952122342494811911514323826958872295036042779692214443298143853879991159996432935158346279756804267504539036852713612381164453968693001460453268333489401052867946536038910818078534736704453717663243038354778192177976479914588429259987951329215466363745908159510882783242948916437206604649471560667252891714714576128000522168847161331317525148058613230367753561373064718382166196237507328634307507398459873754255492930825339036924538679513450135655669220425031669577650513574700784842902556891571914242917427284409530668016435763903301278038256273558553281320294179041868296276171817607920612003473685556713376099293445780415717642727482839749283429667517691765712725975083885091957937621772399980826904865412545396649857806425484911147417697870972753612529597951364440068790362153651332345607875408526762549327515179999492870463133233109902088800180182933048321146233947710688246767832558760375158579885971374148366215561897010026003092806774069901513120783362951797888776396066626539732516690045514111339977503348427547234070210669623073718428648276162949391163067981444103172561797307245473471755125172719268849684094259971752166374844366248002267286500784727401985022098466809954764052976315093885461651324773659129028972161883682488513862072206474470116819978444783322197955725355621400083735254987723844224815996966117193733785561982908989010017756392836832175120972313676248851961737095169627489166954527584588322991145127773903224485215257011751486720302551634409990598187179662191640227944135262051090842766647514250265098194759177886181532716959546003554679476743859846391516224205949176400337640938758157157782564781652221510456204983857951432500766504738449078293719546720939978139174812273112277933179760951236996553705432132484821890844870464947251114251681141665590644074154427128086787081631723892674651063955457016001917494956276870782381285027041912965760330437849791245017342165831469705266539104876932719549964006437869655811604585549146381655317872727374607862576606995930338699869659911832919879114989886825197290997698460477467151226509631672485242414886243313687490987042074027325399081047271719443797376368939100246489656923467751752020109134716190122246579568165298461181606423560007007213425074460425418749554778267065265559597579011352051290457391223169260190018216139473712477372827317733861355372762676677819363992779924860393222457490519666600240309195736244063147956210902637711742654768456863295305323852256180626296100935634544315640156482846460525556381829759978549108703436391023743225154571003582943739838834110799848832238652740647665059509674831581101499740533278803434164524217613503616599780026738164915947956237928730866220239861590239331516062361735414798307487060662879822604154770368808404925658986858613522898319459975879729302851321667512143981170493166065774223534355186921695562247846210267681952978042614578273236596530417741541778148045326853090013203542276031670010500806695068602571214709401854639846815471939130708398009124598589791721678365661887659062941883952898346806554567899830265965620222007034993037038188333529495810222204046341714191814940004497730318137789257984890991420230928738409319104334768302885981066966294611160105851091103725758186236459256502406781422478599116701991139738817339007446272872573692769354112691150367465177875842391603762957570472259185788912196257783034842699886356778466839806575351062771841540807157617839613378708161234069486942642718524490469272343844920452629339717527810261134006924014697047229003620063323597967107807958506947661778314890402856113423709447445920862383430338975260623834899600145838089554864681151059618685949053252681934436472955861229462068912557275665439811378031385798511938385504735638910172211771997090061219897427553019344969967366435336320529036878070580415013502843299537162484870396942569799735575066024321943269789505275192657791850476054837147891043459546454163680266782867425776973659249838999670436871379876471917467449646843952440543631816331256674681801459572649279006090050215949572958057647915706133934211206174664595429607619160049604918499427808942329614225426416141555137765764233133970405013586482824727788782689145259600741434896548344109637137123032859980265101370476017533002213842403203870590765480265809725096417938544454008328763911891413721567358474117477318839503363925337548516040652736002045041507487989471901982642886164368679230099139294474032749340857924791664835450171240738627999430409933891481839870620684997162047774864684433343928274019441771013347427121981744314516916728189537690719424267178192760539692423585445007045146953660022061583994700295837780354431205751247732690449978071593950570144074035286121927987556800197186906740839257119765887931457728832706625107491732926839093636183659111809465997790306637163878326358982428353321571173464593895226165941688094223439937939730276757437402887109354340253876717800770071600752949542951351323092447380031685482389770826477377858954664062928020832823973804085632774483514865232749698897367920917722717358308510628031056404054849974468628409546995343372330976897651322054392859152864815704069184413906378932420929187421636379852837686138369206423830819896744350745278330347173320839854244447507213003153190275035127545486525628863669521051689085537450675640504441434932481466817780856170115805068262280795180161322975207363882266738642215354713516865067573142502885493499061555723913726682724736744641864748999474283593044244209705440737022326037396319712203933372771722003232913517452603252537311140167974965542698416311276383841605670531370769314250683010375751401570702816289160196324813669331060122251694272813339959662319393538225923617927490262328217077017436966950548656875647315594991463705650934267037672739228991794163256077486042653731800862838963173513829802636442344186493524054822624288098010029105122706896704606582364165233279405266691825673726585066921282002771561168010714746820735930645216200973952154358632616942993076832279449193454588280363827313263658570328464571793326561323988772740614018962709160062689594280827714304997766693355088708952668639141108989983120542149016841401890270624987063202195192981939185994641690206069025054863289069251150538952713082004204372505012445980503337205694323551392395383021493535749775267944831700181944956368032851974308712745566603523567532677157225203838277551179698463236349381833495238281792319506789905416193772539922986468815584311234795445120756697063637609590850425898598991284382742178823455399023892326244540765443346165160026077857483805702253486691122396630316538048165163272499510603945639404924021515995855982753072617862420199733479754556442783614930750690442295789163421792440730765665829344543845752922219292041738924771343325365153719419674782696879687750040040276954966814398034849592846361937500508658329073791186213770697223585987950020232189771703611078314828677266387696940150092126601496165757232525529018326374087886652448853903535177304067636230076521777588679372094641827190424808413510172318172386761385920432216803550640729627946093261365152459126773320433178638270306589825497279860873342902464223499875075182784030078384606222102545775936415417630467478807860436075585313877985865741944636063814634192643670570723997266801580817594876602754457643853344700530462891689981992667821855028686779312316247661284106787170355250892834449077485253938663540586743423432037728545272021483264926657269567862696637347662637541877674713155448480706105251016791603421004708219244334480271682216480936365337024323752145611717696157308558671237603518805348734036649636904975026708259115782856924424425802606411396421768383910074095262464510051396873948331336818436959195954754231179436844719133534887447110702995960223490336483421422708715913639582703392886984038329856526927384686584703329894412810786328740675928649981285174677890662299636094074677473465229890122988247125243507412457922710530165497162032485965753772375187161949229849629796742352421252039764721117189437319908500402975340448102155290345811661031642968965490932086488002501918368586202849293600765695178877983942938992753702918011974555193237203527711348068301277689901867961070650839144809850414748677276143967403176506833568006433471632192224999225050169282137636473579179854550705569702368715901134920729019614240948638871635400223627041601505749658439102982350506967539823126361162719731748194999172913671795826665375148337813362134600446723772260754790658718766192390695898099669886749576291978735711422105853666134903700699086699605956339359636650340902756610745387913415007485479454222070664639443959163992024660555773041231421673896786525854690909159213974973499103789846628349680580219632177020830260043544235257720868995302924657809362987554407991808507272267487022410084618370478866548218162775643169961092778785782273915023181668644905122111029264279285354337899354116920556035051988300872910087076191752608989778574929199507662642242080257412344650532748693517395490081275654825333838241163235919881845992064900939569099897882201762776433831309389816309304212415628301443024880827297843978201350724287307577522831999453401544594288953675301436014047812980642382619364007226710094552298878063550197320731108161774421839392971847496698684972261953023487200126671568143790643632483817957463449849580834181650874936677098551706554855755612385460892430936274791312113363396364267193659427790738478476612337799218278521620857745554039965324265075860218383397459240306671686947960586243069515911589916086993256887636339019925488286146402520005258358916729740778433589319536750186852235482885940240967782424870856627015205825329812252332944040782400722979891457135002388975966130953609957234755429624733781211967955932117149255317414547147106813937382609410087116559590487526226757475291555355699007302781043209699791011126656884770739667060843081922698049966725772836916977747151551457404147655279944915458508075670682220766382040614617608083182776219027991670989491826757941028863778687035704105845967905348999893013851502423607527874371928143824019658717515344170069939651289573148369460457441935021846773662904457381865034010498346053711272505724437086957583297830974611799445623629420731139621757191295648982135255704329137329855735088846425960783368690254496825518293944230321857185840835834880801016242059016331408915440554323255503714560502466897870709474568771097969670854240591579591113817255872477836452548285229585169720787279142528585959742250729059796937435881889364517611948727450774503191990027078945644803186453640614443325354243769334671909835914339017709602465410729190803735809852039859178602544626233409582800907477840648526581651622147664173807405777414676772014506740266725302989778197490797747743603152252238666952126126244230405688673479956959852970135453023363350318474347672729877022527731317877517385448811421641262463825982509325851818974634854206051729975317118294025495275742361350127408484078811248159898775133516824769766781620236967686334956981125630151077627012289120577735734269596693802454749776092538797033741005694927052442946462871213824501844494909796318848164259493292476167345198028901577792856005131819686713116517996242550131213244719814794668335898793090297660374029595059225874431325258732983803881906817289635865918094987787770206610316809877154412974616360067017504260783127244604794015407827765471830217972153444156063460385951557955856746088988489918755367703763223111392681120355188462185035944741141357240927617243046481850168989343280969858218134043144643667637634630464861702746707705831961709454352062159054977552616914994877562409848649142190154521936500763691103420159484735042034873754417368203998586331277931104607351333596424285458735789181586387648534894528009331482756704552894541329535402920898617902568982872597464169978928264758334876201037656619569623396374595733092525813816431806548451687915674834147098527015456173803336033947293141995414736347456449472173932324549455204101875429628386130939621572657492170199402905920762374703027012737958329359285145556106120109711755065636206469858589339506729349236552852750871649840202976087630878018725910807104747586895987398232558835174860123739020666717696475857047374392943879794193111054769682884203052744809148820824595189651869511907963023597230229826646751797134117337962235140902179513044396996853165233056793066871211719906717990971326770882911304417319322345966977249426712970179424273586073489351868057577737721870513367602095651211276630168478742656694907223751762315783098742332123863178311176017095209738415702274938939171936825513880793385693540677781329631204532220180366739639751828012142361870230117554695250746958050556048438510726061397716032206771085712928889805285144132838528051468275506486219729480080371154143349832705698335140702020609208772271765768535223409271044072993666137007106950173650866982715168521243622543067233284964850275150405332335268562103139745290034486886759994217528709496948110478970175615974097317474520929001459267290629332473065793486074107488135960944121992811588886265501961523330455810319437835025871027261489422528011986419139990593621247020262646668600637683803332222772519921656185764966961911006064952151306580072754860839511618621855233925533349970614795716009551320309783642731820672395082229441292545658807006116463199025477685560367374245532925689878704708686564200041135415112967905272491700182202817536758987103502190572493239703846155719953357380236213490099530347543994540078649426458608847711833651071947745801945298909922437825801573413553227754150873681412275916839145685994289925444859669357901360512524855136068821135591779596394480452648288658141933687019649266019405440008461020879824921228262496418911724687728335735442025780671310388981878533368512521464413289922106219462990970376258376641007489729755461960520844076630431933376609044346857431583537759669689953554912070158139414412329760558328151631224962250743458377614780812263721970296926421201911670416064844098811734072290946794122555505200188550805796726216493299309959494819951141001867969223623711609602623818245786826038625266684780049262752243646565696511479317814665053402567415782694492099877164994772669508402901830261901260424974457621281358853697717844652279221758612074128629185455200392501714590708375023776298870390993098891631541151147480221759610576558684081021054723784775479531183425983973976516310385938709355655967953941290622311407405502166083560370647146221734231756468586540753215235130842201763075495732477232127488772945214202071928754213477319656271118131596180679536166676733154757635549132583710350142987333328118336780310714770412705880169590239181382890663919846478714790085144449010307949404409823405785084860036201783501905138206082081084158524761016841323330247729392324941647039060270509238562761485819419777110231168813211537368746603834636457663157933928823687767591970580025082203673545385526329781836651218528251676930385256928557082044433633076722124545494959372224751148457181040594467585074327074469240630524255637521209256340014099832550459326487618385848556423898843140091608276523831075719648838106738649333429696244834044899743663435493812304400963364891543398500294675169139654341151277730072878008865875531664370981398449873215390573063442852031817285107444424322703057560212420656410250975182699943882299018761483269920053474184568273966650715329431642005061533549870402740071780821571243947199062611403178418518991480515325443100849103078388887193138394751087537625401432456117698223161939337689903669905788341782171502864814994665673042897924357595875529081673980066622485563878618243518968241437070659827440788644751489567152071935866354352278446113607697706912620394484346087160416838584069064842566610293061112840688332780452949527090174145148519345697184441719386084774281715168451700792693813077079375938929816509584088237548792473697938648742735419611465358635846824357548940340602858135924236499138178653743017251944354619127495910204126081762254517617642474691077689547002280058708198775740440447930582405128305648273216583347572255980618472527568299671633216523438904229998791626119743470515011082526198919519207520244581037971964327592388114577786381510164653839873664192676870741158301049008475974579362859052888936289457774681358232827637472967968818288244290203248803279228715936916635471327597084667344303403517698479915460873021808460740683146871182613971232282753277968881174587330671867591545144920243936956254360228394434161159317583633788788359795328727526284620538504894202261833851230471891228640781070674449108381387610030596095475887383908645553615832441792595072660733830028853330083512731121574773457948020104987224466018827242374363577475630572070424686695069981076114874543458749528761725272291963464758501102279219650640696484442437071589873661726804599449479210601528903764254005407108448240877430007420475601100216071984296374568687203966837959867686102790770618204212771285235199796634700984086217091976911177279333855453548713481193597707553748658918858223763467078448646575881052691908634333610957514884766578047301829753836310629851526207315153837477670025772450303936547288424617377370304560394646528779275108988856256387604810642299031127503124756771525366873996148007271443941364560535060133594590431713991346925402844294983056954280875301649001756376068115928527933588468927736257081168935503050006735754225835068498571692172255515621298000991197196614566091022008490995949016435512836464914732868916532058035031351158086254705843551975967070501609829785757096664189656321529361478960281988088936089644789446349985614161292541398944977802429760396089761852848074904642132843241272574485751075932691551238823765958034259163824483365980030082676180961695158415403472107036628568909571872456618169316921856626881183919520987789593944837399743835486398284666175635170700275053990724535860724539919131258425835708194043359264215156176824049035244350112207525458839219446121294775930999026536273371476576142978450853947960625663472932897406927225879708886987564961919722783466884493792990906094732462448160564806128672297093990998185674433519203829548768799874921362446777373965796185186995244722339399892558037232843848010228025573392649945400795485383365172821162554117792240874696893218992890288503175266380222016847025961942957975336869224597845772374459651451587739430951383184512005445912561956244432430614071687589211607904782649911579653324317070700471335984992231667934852299884733783328208049623202677019198453958665420672748167206516307772724658733660377882668661117391035300289509509421435207524822595273268599409725828028271154002122103902508703172434966614131684714008724724742587362529753485720583081695378272775215400864928980808690776799001988999642443191030636097827369157109368171613026634057744709933118983407746210633687143146111894884751742967567610056489928005194019744735577565100376405959203407158452002021333538794804159838929898597792356184466132687731965259910945680812985671169755038922446416411387556359621759143444262171458460353747018904746756994469968931387920819215341264402843185280982753285703901772804136436025686909192123214514937425741860823061270061227958110995468022358980286551310200081930411391100977764643653054206941545224887002351396996500608900213354624159717994481986371057422856030668593411871280169068028010937429943764079500766568905361800613062758557235027535261673571759220688278486732322295885527540507773051003785213726147756002727534023238169848190688197286322023750728569670822800530863414922547684647413207735730640026339973772925123967066273955045537383569130279385585650026965951107307975043170866308308437863238120355959197374900077810588565693157618758622720165639651514521579360005709000451867644774647961250773386521086704198934025940322609708426041749005698551006176715868839987039013922546048027604522105489972578533666993568487449047778839468655624876591597685754126066957892997857639594283775597681154094297473115430081258994380443521798166859636360910045577215282655041337341650890423244721968366978561270645133782597268628225088205507711696361330694496567879297121105356856072389584577650428148010690023883441203973705224280518370813616949405614065319791148368722241809592521287439691110097987025337981513633934918883152923433838901523979523700183530913908112268605227268969030511412096909822337434647965794592631116150510549053635201755654176942014700294326884185152782244609793546225266126697985347261400381896710659179569278147378252305324682519691693493943281245896985047839553515290597818873778782877325431299270098674856373437790910013703837701449255515343997697865645078849501374786849277472331376141471109632197793008883512737481291687434802288318894105074669103106176909631013988954966300060628782757179802221016170264481750712501200441972187071781008019641732703943368035797164805293767801992728849030378143257263309220185026587983244945245227609735246655581008968826572240793143947418662944636080278178379551671041720430731303648714677261654365716374815805297651164405509921572512593421060452185971611040660923769103202781133583232894421012934019649502205697093431062197437922995554812175951903124872233218008732215436015196168178993811228573054394008217641247046223815626465491920914259523069101028264578561267121891415432770914156032940330259704444927122921248412100915460039892359720030526189587198488653683479068934785244784496156125328904618670951923858267156435958855039897953017552427811393661500376821715957294272378790882532430895426578169494438983665400869735161947679845106693389620507944517118216727188022965493421367488885873169592880786236139650458388627664014734287961517501592088699320099779184944697337226237329136184063088701259487535671074683566352884272201855304736940774387574675950655707152084355194167496540539980059647881859200348435258488626148450885083488827100800634803909997286104940314530446050911564177902121492713684055406335003113316171349451560964167119425579911517296635723770223677370492827229761823614278906952526929041405741448066466434902703913378614646835566493954794040086602985651194027814456068845896499883647633783787080090632187438837775682689298890181644801332851462309313073949095219631975703850506714566028293213367061682412293380348433988291591761552421716209035955576740509762540330175504217462703143704961119016166416686239863888687252182680479896974465146230172424054819403213692371540494456152124526129144400896534334729354218700372376595700013956513262512362344122549654005461147058460629817006583305206870005279331467594962339213812543972423132513167829817100651577225949293743700003197121784396057197503562606825605256460969690180759013096936120732745953431343211641980348157475228505560868353806889208189759858953865036101555607766295675229978171873506920301031025852423023146429947547305446716702076131560184760997644038700422924252141982636361718728827665029805220863810381534719967519290233293572881353606098380853679236625936835994880241687458164391518065955983858495120159562452912903386505215781217222920913787947937921391798422499821117751117782620926356727920841810310835981679664960252897602225951519423061521451965216089890312113303358285047977653453649143749045730371419925919227888981849269614648640820410762025927264179431882078988989792788591853395460774148191365254982626395389505505377837120147510214492918425567833010790143585944110751265667764163178832714112313819858694205197480480633776403288176982207826908332939204453051059289293850837205433075143120871764321264415807279839028388024450280270735257925551355586270336876992816471713688288176943141545848010744974438259319595120768833052571144488704749234428615858267441667926443133519706187923299892407894523589306853781542784737761018787830390460711664655066991462801390051122872382285671180105278795105170299613733709448172136408296356423699541871417321806093954651349158189412788928649260448740947366459740135887127650855474753084651781465425489829208923247911041349390801025202672622195411387062099915712624761048678696255553363768287450867483042686221689850462713604382367358257862056076123883509527560328803061609594432731289792303921834134930683642307578636284444179154335566708531659530304398706525780110508418083803982966058068647233325114429925718138657000473530775910873380056066829526797275568836392341676955015110474292087297254194206481180609286499312844791850944993920412798492326027448618974538550587002080005303930062363978553148709722284965208547518826079133976078146912395168270794372092639976910994199209938908470640779849760113320565028050193198817606496173255433782573843618765261371404766943018618274258268290136614085094121952459775108601881855985232377725969577796808705564849999037763154507432870518810941135566556493396034520008591883926013600774768129827266265400474453559030198648564610201562820733533951127867416666790989551031383447418304106605692231314706046148423293308670421768322259347473349479391592980580915839735585357805795861172372831018114909607281570303229812275617893914769507985347290531725398924140954737076169654138494661103858130824424220576363565519405271345798717113837298323165188409577864007617867780240433312064567084084952416423663805003032067393003976581890508352802675635388988590908748188292087689987596867697818923859810774538584988639886372185081828353163635272569441579285988947503841998326195232236453553763273734804401977217779839440182782704025377948832615782459132242983346593603900770877534348705745247927640429535991234606936958772830558676529351622268786831517021117909720416900678878141167055382539754938840613736047649726203145372792076171698287950400646693997599636685203958066619942523114219700510091522866117441232821013856400770100937359944310308499009697457417604149933564632097454442244703923640774263001666711213724822687471146213826475444025565311542371377136834869135553873159052007191157385054944168701078401619886575784468819709136773794649126226545747235455383655775769459731923582368842449462245011305711724526936772323684615205490475738196020526075454539661535405027933141816933858626777889721881878672022842372766470986802578504550617003802119555302072770056813187852368707833074800073970699418531294407517617575700101487988802191614498196017698230963408042760999071896709463607381135573523027370579300844221968114859378569613693272074191671231160734883748801906053875822602561468331056414569462259309760363469431157421706343891354823036197702453051454849115694894995063539965167922453871930961753195577996667607128167307207469004641993561327071883533323258646122849455602018786845419283031715557775538574732060940856408540853194280316739007075592209767143058849548073407244057206817566155576642226849044888812299537083268961085245855896661078985696691334516672617708229380351224102059015072554268154038989144406192887517063894274106995332353070392597050854137779296880627835856740378845219382495915434160096883021972558124251351201634641881357604175377030938036112982516418389537605569150966787026202175004440002823659117563735691072226469097091897421731648739189206903835483080919957119546063153017577831121469677051374760955774631275793489248144328259951781502048939451440116706996079126708621640931518326140671771819927670209136920275609142687452100752060378113345081642042369795085663068460184573321386609658090651530814068058327999755902011649338779539760986433293721958309758286622994055828822608509486932617748019135553570423863622285487087869102072813415873195453460705961952359906651275557993401483352151917044531308767162655340048205731132276724214668686580572864644796031086578839172884616164592177869978091425690090819953707735430382903748614569984459982668240602188436987038244244349615266759178976430475697900221867424157399140705967827131977662374195200408544704889640557295982294748457699889876869760413604736539417935818525554622658672406527078709018241368630935516439111764859536122513137727786169199665840824705698710021897509490491367897747249055869130866089006069365972754621035804255435457846146716845366823200683604986096970779180905251886463632140849782761935167592951998030416664983888021020403559440698401270257273668281441353172870853759492677645722249273797274088480450226778143614956287749274950728100595451357119355996832595205822562766609637865329923207492494699343198935209289204105149332865540658398946053230865271965001453938346076477259076992470656277841150420577305456314264205158436469446580038994083327369068609777537242164897055117343241334054186885023777961021903077800696736654188360590669634769648975173972981644368471561556542548764900406007469810384516988627120044002696968509742604664221241599697633941968584123681726987002845592339641585289799378909296068484441287984949611444078935652990517073657958682102528785939752576508436832883253628403668091726361327700439577068213521974776424741004897854936391730795859559354021190765253615927615971848741852934755059933791020065788031662286721839114060577721930889639092452856027458131365490194920687531712651495263765392470129851809116525805577199224052035065446308000447396881660544194240480258471920661742297373811264667718355608784750917685744980603293802505140625164196682900026151665698619160004236872365950043555678032565679148127121148990722899783452486839590393282012748567092238918042410011049271809750924679331973020574042952887812873033776281757794539478610550978091418778801485025084433780925931637974277455561934685690265928617130369776023470162084910274125730345185217652415999489105152762262434825936187201041634230451539917714361840687250496713686151313401493875000477058522176427980595760247744223471220846986025561777237710580138377207752020268897630294415276327460188850474517076517412163098533983558768295278213565275139777607513455457924765062847148260498368867141306345363521335908091470915430789408618465700188321544091445949898728737335859207342865880644443939292894436484309378611282664666859780025567931560562894870268603555423565462368409858285539499241769047725615590142532404607439621670480238554015170976117369368025274328305602203619632383271337746573847012418185158959917242799730262570491455076164385611706539161149515097883873334002338180483274946731284520012728768764213606581673488880351551893480127309210485368191907125604554578539244056829999486599247811137775686609997291242541808465945817250662806972475981779374808313266759146858427500427221108283102152101677822096659269202394656106502659296567020773970568498584401429218867472888882650339952400890713520310757029236135213823946992337797129231683469272595933727523973322465305587911497226777956988828194746099928021789236590131345546174315666568505159971033975543032953518370552849761545885678695095007725037286757408661013667208103689837763034190463796795722410601703899368686521026583480327413738840718476224300044371467762771625607847913984649091901422849570679558999676268305085416375995448467553323315511549156095828871824324379058082060830994383793544649164701829809658996017502079890865856528523459455079960427872218982632644330834970167846892326527456473786350628725184595609407719800985396670386073557556264555608238758490460023804705744251188301208882798959699830955663210283512105884492369596699705579310182772512211097817662963285544593106087010292985530963013923709144251734791619730393426498284617988523066526889797921983391107639334033360086374742030868427832119672871860406170065967916255679016275693315865039994462421273176190636485816069902591951363850509654871219072952044058757588480842426802861229720086246949699570731657135727291639267980014279418804947864516166908940584410163934604300313269842456166150261825923786461482833680876225460745421620507413490318913417610500871604725033801058147868493397632543299297927921038255686057138911210009937940615566838242197151097010050545609050109580466902910024478892598748270936127687378745513617114634440230401184566291418173177522053520566460598155290661763453747488462038600710569094815711771459123130930048947149244132129022603170271330629645719239584166636053456025277506208867735813568036020379874167974051975242216401569515847261807530584074881879233832376341294133336951017039058747866923426126445981881405574010325940073800637024424222293017770679956736351446248941526867065662474399943184560229738942558897502297657246610523590018272207311114082070448551084064357560806953813329207924887433288253901976036476604906833499893761489766059128406267394664260542312228406071857249544375023753500545457211951228912979908980923986275407109324256699517060211762809850175309025506144272402565233524314830936874116235179682439771691483716593509359750897567355431211603890398083513071562164974411412642453375162747922421895560952310005503364000376014308993303174173730292560100930930506525604792271168769028249864309373254121777840480527354626886069324561150395237910343805664118929162209975939989917388549895425761530454712353745357442480852455441283174201812711984367881235156619374029532237257294739809027209988565208506849820132234160853418766064523397880530046717602056239199018542862755296735502158214967441942010643168532040438246998274512689762025272503024810080168708109079907320250230841173373023095979401056530541899915363354635781569869831797327585438665624676008917316900181585752091931528197138872249509003334384912208390067299429143685220063561469631192688187358443848932924313127848328473052059316463408779035720969167173738853243747324474201387067000047573850478802939264475602743731229680355154770295496948143122082204124857254044189716223932212914071600297117808248222511891483291122767859436385718387034850539870022723432268942234388396873737643576935266552773457644871500710030807471062180459195549964391647098387685751235818268567991266657236317296465813742161756212754073042061390057547459619438632330824564175539385173855604607451230699943714878412384158420855336822769909706161102253864371615463533062468881981700479287492969817551101941945574308884923915381812392445408842705342496727582272133508373545940199996308779806915082388760442314792911720498090045116253472326734200366210787466660462822500864146246102451610737026448061277804759214348147440923408121512027454237443025231382232660311109810286068459837591468307814652835416120028446376025646947432985010519049279576315168853732037699137883408583553743981530624135760813259233665875219165840757306890539937563783075599444060147535853358781261089109117839219373489756977819016482187404395464766864537604704856510338819789846299818892904659177384753270821978386285050477680260836040983360688193530465686290956657751303324026032045686158640643537253819351442546646577224603536712734206835617872394372400607661265265555387102523636380365909948751368109047260557898771723263288022505516136432927538846945663128482853344129311955869023127846849179778767527979736615403785618670663166705008738571448739644957006283859736609409716613142660764357814794715885720346329254006773380724602846269947538873348357781713300488063358944745166146489198257693883793946637399330700694668162355339706630525926972396252602189552896497993915276266285836582099534076927189552157803581924858662115865121122166938512043543283010388709733656657762409566338256380793324369378842358095047341826121241479164322800208236773085877794418852829601822590959003012753568307871334376030873624156772464159575449415363502808285572468426056715439058196238324498065585567486901570958660394358666181949204623474027667462964872712447477615228252759327425764778019860348658497886103305334153421102173486426766133954663903917957764013841937065741593934469452237398400956180371332615036241595274966365037222629987704569523487893483017962074401998370542162011028496993771071990538158360444403665680875240308026529454135720032613626230054071517119673676603428099300542486230425777133355276028737371188232127483334917968051266887635903069348787402560107666301880060176249189270345035843163169177975046264882206043730131415775395351697867618294459908510574605642121244478179880778980513531323637304379274210188718177907791751327231054888763187726283877762946005214647175438263698230698911836949048449554251460242604865827682611474293939397651952909467464988094915894094833743342690012930267514524700089374725476388184270651644845452556063634598318781487996593661073290225041808336179719893215632659703428594096340679806254023078888492655915651922082381556138258297656498500553585801501686870215098120295513701138484181135670712877994104645421360702293559854253638467208664485707774960443088772042116319779182367552444333320244778846661175491623216690519035990473855981776635714263614895509921087997262409191107806913571093176858471613681165040892658954303274611591618734533591220228251411041032346895326314176775187208713235653798860649919969959184235767813312123341460470279765343868273948480793504806278645859735128299120069706196545259097562061627713862283790131657950241746328709363890694559063837484259334304780624774435086797410736019402055236277122106451023374222695891929439461236059009566551287990604504064113924718352811842200362222016239640430711461518658757243681610014783386801695359503904626790855716704243018742293949002050265607334774895891223513421595417334722152911507045564212369418892277965600397773088166764721839723058572199257034942953150546088439841730755220036441884212255803570228743742600485395681333382667646462073500460692294944890939318721675327685240571806474818536817636820034578870635157580700809806784993988302234207800725117071810145752230213422325279138272559913050743221448210546850984227829360760816378407613223468168483134927459975792655677946394128477921718767653327448698224567153455824085529806919022385462334952738513982090747508885899622072436409406991297573937316200747176002928314097043273918919434472423884924044037890645764699667457130004935564839498691415770360111718471404241362917021430664215997250889211037353339473980936702979841630944369869197894220819216771547693455732190215808045191846016168314654538015360032573457878514739252981477556334887504330809707389884310511778111204147928254781629451182422290963438699474765536948292907463433177803969768973448440222727068487689794135251184241860987894715839627176848983631793284927907484238196237979051839680611129159150245980985112715410850325127151040232759980222955806906280879812860549677657505883444079665026190846158629361791687744298148772343831364373819158457777381651467517760162529447262366493985953065000330867181709383941870024655727731502830148603017408304759883780860556085632688297004623294612175255953501336096745671068117779874273785687546387575477589939448279101058861605407162003426577430848465304485562028485000374592167029915173822259894420980920168035380972518618874164454783336924190659927300072805096765262451353742284951182447594657439471509565061612177848383130319743167225619088314351524439793999748077752982636383886724739974395438062951251053353681605976383292782684329611490202794460094660616897695250098297166680508606782929963820475857676305299648293604953855262919000239358246777751379224551824702277664242937103915648141868058780627111917235994481305717707586350241106176422620574421235739168424411402608644685620839732585991883299476802516428677467837196920853020966501694299237311889740854339208568461676205021999786574104112194574614983966815837234319360084863079560730518363187903835452254753247936129603908636261130598367964330817403135475281377883898459507121559487224527415398613627899608388929180225191879255101077396633493784509961440537682280178331791931782067512387929487687823419830128958057090154212768457661622695030736641303894716701450890628147697042940073636692039651488184694299507555576126955753991275048232008579506299040221485484508612309521110956901281327318494344036454588752065079229640866388912763549827142066489538749606863256595725903472824113756240706307324611021436190074238711252017144433254746133824658256171076319446555522873483719200344490033963888375738753291765130827400668280950885617016977641732843683953550800600432106079970703564803099309990055036795482073200295569349888350160020172190831218471214081572784337190970157246317493147894693468752933386247044164556003911749961211280576556946257583328118805450568227044930566964676701345633910836337668767773097420138915252819126442685985390351114869382392382078959927121075669035137696896666191065149547220137854318249607017663116419480009103786167995953375950798184177075968565693851765457880537383684037299518692538449001197576067998145965768670428263298791124297083063020788088563469415309393663545816594819030153337071309174500680699080741795356305249692521540178541224798014018017133958349633299505812536849973707623143305360457503558389505027278240745721087905920125885921594778093852298141487248829125639239645036578288485379263809346085881824932777037813187799413049905433981140195406940026240400129575432410151742918474228021990983192238184629906433869463822252533128695577485548953639888136154566902822028290574125344780441602974290276988993693986681328822167628035133943989848598667624199816991346873387671576318954177824751630717527343983354102864394471015422377995313683409361279278514803014794349054914654753410245985159186874137829134366220617807244183325554908317367294111062643205606380156778866043272580029855470611204153150712626189861929567281370753988864366715935121585276517177869935921356764450217472145557972255173571723183871539792468136988886475746101915116464882102891155782681521050101796859646512001008939454328880550849818868294096615879805769486541156273204636429505698328466539893403242833070784265424174579853525275093319648109101575647434440877610067055095889886691085318341928987490440624412960259204446407799113371858492279249095371750846505023965019726058181028827302478501105684855192558968469994261443776614671210252626314168997601682640482631828137439994855173890859291934588705444564023839999685262445315516236636007135594872559876877136663025778102999619662548531123087300766714918122177701569522000862696058775618721715485055460735045463570998725504504915901793184855701017384708771044639867965485183773401291683203376647284512434542726587968859571147791419353046834669650081238897107960963992051831404236539564151250953106314835425660427267189759136110021884603507377407458414333845145043640113217885185978966866636745519369917947088805678272729403176522690841009622913794347708156581733539276662927793026355819623371401886048035896910423342199020914183140864255080909277162479098904661038492320831103766201259285533486337097317064352987226045483847743437868543180693486655464012496110443462889359804029640862781085845382840395981763595329865616023934700511840194745483234717428971545054556977098289012954278002917364558812769607028905814561925619625852194483578747772890244869436814397103204190009370197068033670815763931703304495783138457729444497194563362983518248283052729553931524197579463620865678540928985492346664062340107194299553557317100561791887553658418201719052619965437680782929339993266901373807800996593465671285094894645365377503462780666395687702731833654740187652719461283582572622514864098280887165995276704808115447318277801672964476486222122050055409214498294455713959017438267852466765743711951277447390445288615966369645703831761690192637550919264357976861949979645535264730476341232295658650771330517040191469940781509780747294182365268229368206446270300122805075315371815059362476330918571965372165935057682924187265312550523357898395402928188360076129886687036482538675702909278329930186136839843579621089240362305552163674062516059486433160399704713869444040645398710793181606836833196315798159273624535036320782446532651405717146179046832001912306580901786033954984193282872552341993770797378438807139046535442587209810068393567606644923931973895383504007295866721599049714318121626248214802653249187779051899444620487615015792771217460267666365007319601447144927400533275814369296408382025072817909225439327925307331155324502960532394881704871754248264201841346538946206325335592419012092184947491632787248775684947235668105612325888584817932973937080559372104759833100532826061089629500364259613134642728596512860940031956023462940147749863254435900112339775512062883248765610096691780537700708092550659733202522105818541220764041998215291669151609866637196638117856911224823734118687729602243649607037283909727385828827523976304746035212089232417088515106296782755485516838423266336436094782114620096216286593186755190246986120737988576597855912671466549650560650713296461237033018110722827832366888544953458224244883162753888779975427265977351149324370708729608664433908990234147440273992605345516829968889374011534924163154454054769533648026772365813334415275227166745921875856951343768828986969702770734210248312370586301492047778380274249741400119278534438289509897340659407442132338321300237632665905862353815582912713282753839757574404727143274781318272302088303303916624536064356598095759485431414607648572072928589862277539776209150583974282265863614955265976345593316946220341318784417104988425449733993369580846537590507780769259762191766356588917128337161616552232988961981209584866533986713688800966937095039365906681101893241948183184207360951824280269128259834555055445616441467223951263970893790042339200298907300129166991452201734690894889865187682641007282868789141233424469952800655358422305832688021705374734093585951003273446317675849073018753612130386918814583499656437120189539190765493132045586117480004579634717234375255776413893805830335881669761155572886711688120686980158576066448309618579645227678845311877329349098496810899741619051500600431846623091510930809204489689860781688466147004911614682834387747796265454265021542503802042314980707827457317093623563785280665942510182558212713904072876454962051747069600117890982140292815273966958215869249228290303807211840472785832268325516111602677970987900994690120259756510974523320077049004281505798227147938882330904785497484192328027863918901832885868063319125107104462289240503034312161644930289314699038350495906888042674698354077113529577007078913191116534901643953064183602006334767804157426364831027144748590393923879688139105354929568923638891080992096213478362302637869883203496761598850251572601872702708324727407576988985066443226885049764533864898295999792813209460844998345341815749825350891990018850448712311299148908257630364558443158837806850836253199944449053939153746137599651665116295668594688731193380777962881534965385355458752264101570549300662186521751336630311682359933055889642983660180601333923703597249423399261842306737401522341938647687323512221138903103549572266185884376402921256965500979946053733736117195605490676090820623781161440202534792243717240831446030119168592653369650318684202068854896281456783620605648287415065601521057312048173785795706195779211448554249138484883616440138532821586431248851803199094797970603117932980297945130207529476152586705697418895780585150288120628578607943104467088465433178200565857181179774302517469812185137681967249165923335557091543883635134472785355620810110248131797015587577847024731687191648019235428121385295148261730479953149369968595592850067754350317493373095177274142309045322642815247675091421436377472754524647067332032408376954596300446505149130837055702691374114658570333864568912984331226265573996836700256708421459140755195729809048797098108012928197197549772978776740482918806593419058515719450001799576243578868007894817031690920606112374483451190361594202386779013266332310838895076369265887361346799957760941804729362536474175827186051764085184513897870335459216355813930902030657233364734733419515084139043749974438978693530456855610291744635799720726065002058528179778412772399160109977524879802895583807291537205486724976159605877120588430967803881055096024745369301453635146367625067707871513541118580029350576418885949975804235214468063700991668245345809808853458799629924409551913403510087522975167917102082776019444918605022152066794032714809343846636480383026014766032595707822326292349421335452908000933761941064269063052928308618063047355011689667161719023725090726157762070139536493132026961121472534950511494313002565413548605395546060253125689504294785687342926906678278966032593270168490877258833856142837935932085246974410515845183567925632148242538975722104031353912530922935268420338503079982880044916384709538792744742617851987396283913385045155554273305213102855809050427902053688622595490816453684748728320484096400371635594890723413291194236489913045955653253280276390326076240276183432329855508738289185845209271238464740046671158308905393225309214875801643066574160436427339810679306828508472728551093990739530595693725741269744004944639563716207245264909678726878317641377578774944104524003656276062656065917622344789694159631142929954972136754746678234604081017745100347474018502849954513683374341981029157267977134873594380616928114096831239863552089279417364613111497836755552551769953718905253732788698241707382484223079935511623210236008927750651542800132381369631043869658891794766795416089114627172962543271366642164388111175244215455314002360164665040935854826595586231287988681187571995434800590122977137043440317189623055992055852476877898277898058178332423635507418844245923187686241087936882310093452974010213183004512697788113638932823404531083083768980210311790612888439277746684914470163031301150269663444414229632492228255026448406745094464779062409230329856816075148712230033819912022827370316567251873178275688541255209776062463145297158204475089791558738595761459367764963465606817879736278820976242245481874002887922373945695249402050101347817892432888964475712761303871023622464466996579208605635475885194217008214078031528359354532326995790467108440063826162531843320492337849927127059197353808594705382706223919481626606351538291792376125963286038612551828042023274968670408191094262558473262258531334422295556262266678818297474651615939719722191366880009374420490624167342163764176103694017529738142062277879566800650169136675543830121864073116311139754614184215264829789971004627353397279900636952181768881035057828089405093602468082940630470159390702002530990890517596518758728553197950086059864228130353580860261933247656203486220954881051246934751054624380698461164416542704764323805073085040230773523339028185751078415741083050151753023251539904577117100866954084922007599617539239612643050015505320757310831023912469770476807606152010123436844317113142668577764060016766039700261011842106215751981314376221615303045966409188411710408546212569179650982445539559258986711786801534143941641507794634831155177586228712512711009742532944630979912469559810331931212113925337150297046862993838069943584225774569192273977255713137738576701178125740509507934977016092844184906871389578140242697527520232655014790933731284516430033258138528367248608200941800396646526153146094409281894584493479144076280964043870795236713254045679349354568718737819354114089998405165510599506393572560923463622373960495326909107372256689158665838908057453662693782385879700221790798828475311127698310973337952049675518098235558435630200787042703106819025550871511694271168815572789732444148963938905912001195841845783008215874184115404427367854119862919356372359933018200641667881235196381282974079772873801692308672522233875781113359708029627573434450674386078035910030713667400773493321776581921988247254563503943998315551793884468984798782714027357702612510859981500909453782262234082454260294011497593362938307910081343898124433750121754972652209928851588307212571983965543250060649488675549966049281276596889523931236261383801189596458850864605017680235215553138803845247007112334456168387010480752860353649852022240836249642676004855949567631573724086878612226280586290807350367446879913453553640453348889452492675226970797713657411742948745973459521314546118347362389635901124034498091262986063838753648756194293262065815008744447529049846825447122728481376257564171961761688631297828593762892064443800066613767826695177766497468807260431132539295411817350091294894857762568695229449105132740464476238287300175411440387114649647068069600943264173749564374767365835517885065278780931877059261360541330794012432747678700061497516313928919608912602546516861966847477748316661188566578252387787018393655772607221926175611223203817628116139787426782965150253722117644275353405199070636314783339201600228109298285392708849560273454459532785409459413747450139242398655886904415342067541530561648443978582140692449047677994478503387848604952949782383154202034635244954493173524329435706218024383129288411591122195488160529908792243860770473225986198229692630247669360726553302756117567914541762180892204825294425290498406225846404636066588061641113679859772949686708250105570474884737456047292542756578866137500967294820956138880248175330319221162379557357962466193677549834263160097982889035964715628656819385312334727207489541452732441379112667295957190573785973450202684747886313056453745553005636572124117933499005744487336813719946804518666186297429584607035751948944443805713200711485571915547062871304633324218132803022123849880664565135781186132201601672404444885401949995133203029921660447015887747512669212117626509276440630723488849645336023385834564620598763014520313005878883163117472698300436214021245889771870080409171027502620331594005357352245929458774348691798516991137539490718741838033224281797009143461411615234655205631481419125248923223628966619350014992068801503195238720838615926504489019752391788254039133020742648386881575525187431038986334763598231056816169119417111385017040714667587949335939295270379300105296836025028725173052004546398026843700710529777170051911102225639825058426585009432937502525920479813470999056383509697300603442914563102667640455828662220043027190935995690434057336661794747724412825953481375213576588136116790424887991291698042157904103354872262383886979621257214458905256861863640879563093623610892571682012796569677924379346548676918893269511979505945726441672612499437527209325222295253541752123460974825930023050038150808600488433475680062120715295979334923669594448792431969686602692103969014890595697876060030707097490472916712946418853354652083506545694524207311345570982180310726819952241305290083826973029944273736101506548322660286787382887412680865117487342449471206646698174421513153411942621972138345568221768183715818478531150539214370962351781448223201228761032059595452706868103954165975473906858093950528078260019636977768566545285005252211958540073477518722010174464935430665309311622263380211031464450598552515426469425236998789636019350056275467367795117594855647980957232116054813706099190084048185027684739333579784542789699660135938663022769111142697226004805881293418013313472120786535725974447526413774052940807648054884297678676520548121004822765192396971103905913324367703347869515552343584104815026966039497556290686830951559132439539264058238482608005732887715286751544282818255786246446763461409172135697659725305548761543137044474572614561442398803818664304493356796841785305981531299261719398032645443051044089893041818021050384164319580364912835444418588922061839763750753050116881210578474063731266622612549951220379031172549663316949927524030512800567779365357863540781328917473543684274248682195808125550350463735043708514642799200676005031888959445501168811575143590149042089968254199644870374888906602908345711132408904998784687506127383732905538484501707080948112164743989233347955083985358700181919541414462753504585596615401009735160671792005426546204166320831134914162315353049981117747034959737831948847728968283697456142111658646831285722177602481956667574412989927201725349014669906551974367719789737233130815709103782686073802174617625359782692110426706676884111233924757506499003597275777367650688614610313393181693830758296985043660477631896572620347057534981350167484576361057986736131707012152478815354900149068566809935213384183191235695667443577563121219211908542794462480909116259737244197756042510485899824905735304159244960306324951859851970423011135782225027961055096764979545865870133454923782217329276155353453432984491869704975670518402148609937266092718966292824585386728796648037608368030686299148909407507716989288056988265443155945190562877079151695668061069308634031114828471070014035852562233673410508919150923931924551760622051931628502701305469998127736500458630468887495533923409962772691275307900991838323564043853812992443319287303070709817361365663244015006939849048642487200700411758697961466270071863889548511414572740975203758203205336146301148667119694891465349445258752142641804921877945701102301895720695798600012123447519416825758012391655048299139121769771397849462912411219476447556551039666450331980948945278415856934252226140272738027022046429519482478692938761641797108379717310365695128766213635786475143660470344311561753568254331165457480302834678291805552573419273507419449107873793493880492713734727769556524887142073129994347946081438641226594406307454344242837919891854845104410570306267098528813349238136206736933650177678410399412540655974210868505509787482018468932903908561278848253513921755633850845504619425663399924981669931134716101647548499971727717900512723066888152193101122181254711353796076815891998995303636263180572625735317655225382447069384818260172131859956332720905952703265700031897782262592028099392526919071080868254228511489456887573765160341810881455520476601737499623570859001356554045571830270966698809943247355216604944942826700388081950559109983612709389403719803951828449573680406596178851388895812781542976724167341933908138650141219504456486337907478535130678949531525849657652762756391355948047801922708536888708303707605396599946112857831154496820687719183014671275172353794602106822812755144692966915342772629905844830012112302238222592076258296343899609024541353843883565820243965346314256633151545878879094843826243497067970267772702396478478270896375046210107692712138706830723133792983949613946972721378775072298605635909803113069024854287668737764105831521997594486599903517772146097188988695075130934505114542171091657012460004340597001061575152175742628356902358379615820112990129869286439304638928634632426842248049683423250941062259278349878724918152093357380754393299989447884292379112470592109956021416948226445786894931601688863657644294273662267824926600084037785437715016931397892995048842161706089577518294718794098749192083092372112184144193620241048783028034643114954128512832316609688197886651464976946473174767306847622913258976903291338213390295131125060082670057462519521626304517121674043566794545393523569159739079914847534548857111970422889538305247445577781395467230717642928202074720102609158219309721886918046623799188205570911538170199031340080792052509684852149782983714796290496788988463170817271972428783536292952487226707944429316288614016113273859966420954765891178099149269933440248986119416608743082158552892139102340975563422424070533844612435492223633777940328570420665308500688841629754071276524901249724929512880620694864881556221474738021983006748196319845963408440872027781955786172719753178783081137603418131712355625579586952546887908893248595180620475703218316952500346159853857781312068351803227729947736998756718388036354048668420803768785315047746183012188224494881629710117112513928769059964205653615723874569110766785179767059007258472334541503349818548539455631045774275105412233934936127187047816683947911194947328503627701103838178769441511248856596706477036292409055497200429423405864853893133833144036716067068665002871393361163594476709333388785235744791678822909031883076141797390092189593207367976615845022689798855310627826763777224852851563446440378666271394258820908476036687647132106458643895089600910935501714674589248435711452936847804680758658359732435275244490056417037170219926170849323649856529507786680237085252936531203403025979861460631042367896555066059410527093493471880748679321247653471761141129644024149031205225489795880192388013191879060391700830343912225234848252539218486451488460476869366629760804771685332951557833785338973897944199646466453138785147637402644167132939751165290627639488264683602372198662220031864594903327169561077248372251117588075115100516407534103427285784975200391071001754076168366954986637329389908758407305053778387400074244984809845590710973491831005057705360747028772046074655319459518653314033832099996663296208175863030486832418339486354588796468454982126814090658984740645218491912037208431587645617330923366705046084127315692106698037030611444726855480297595591431814130704234198127904840916709635635276589263463146499844954990377906354879630367543998637535331664275900987844071175481094244618842568484446901247985701134406399458773013898736251085372303611370113555365916153404049668860743665187666583541468713167737754271208103591433811492741652558010255837730874211461212901668517923104400429564767555542744411503051541509362624282620637603436307052865803187917046708173252953958798208911604361046391375727899250336349678348633454942964851569007877629824835646590400093452780220963897108342808139477299947974678949702356268325517671320723051623814637257318756420253623661481974085177609246437706558066329908749887868678182699474221704673577570565064335850003450601017424383244626153712597639854758561817522986072760814071191800490731051562610571658781195140792808710543277873309389789659236856505568854575084476009010619169844546603235403383464914129537467077418008703456167430426135225911524495369516017648330581295656209488579524800756218237333607180550112115906612849305352425780579048496702897273089990943426560621465318459697238222634812790230757644814983387023166721417421715805261090321634749560091202425942395532812945265847881684214360698997619039704342419563427594893807477790682248073935988684228532057271945421064249976388460059736343975502658052713427032499955425935591614382947615813001875034846921078588589896064209479004552262120847600318122048612845639551874873566816862511655883972728372938603406122204692757294263281774734017529298750823364856131407424508628772967692544185350833833767425258558046046220230191979539114428547308292751011912418357282824415555297408998130872582261152535758971273857182778922767316220974201555534718275096877102227750338856227088287868969589828817939095872269894698815175086118963484129446088143567613030462822859571360439911116224684716681231704971009508745905818630880834311144753378975879845785613901051784893090931728803411245348295451750160866392108531550465907345678573112499153357589542210626166297732782942768921883612972848458128887833186592219247436425804917452189945518157622969869930359676431424970452846874919647979401515298215961158318790055179801663122383363554353514279943533398037326970844862110123840934945679534448874549105212988207368650446059377867533004751208650514806681592678956050893600012596272066923837202287775612895360687844618507889684682398137657646728347915175280557549564506999660479027111227207235644449331893181470588108566899516732172126899942189063454436765251671205459234110503890351534155117079206685872751197687146459304273500854366720318120748463583060577259277268891145541356131740144588762551614308552264723702919694620156727944524300297280449739044021204250010882189583219071240504452147976495310495459428012115225441348440472038216958147978435582912572658627051435746416747847836126705972723407331272510272957908125621332628277817010307089992067362545327222699488815679758409852007806663700829890333310536017941037931753181385785045898471495065565694974061625457906688256115332949037806858050128311484319766385408420571821173694967839420424207452899763300304709978975358770244459150927995350395208835414791034943576714732914479850985048933853420284784579761063946548001064192843334349940803627516003692382347047894057875942282217486998251959156828044460866100465342226363657540013000795353968947936899755621043138841761630227593806129284565196479001731906925952098695196713474112322387471618085646706563020917411779201086258737956230282208381738764339519596318310539761821401347936031678562596565158382568188396007051772536442598329290766772373734846977546100522040954109379416895014352897961668669427219999666156156852866773605950100965853728561448602003292364946526476961960942257083041274690463634304192390707758951185149595617184019016732033920330395756453649073074274435903991947715400406270154608231645055361640256649421441183984508456913847072421668091843827641747496918892438571665624002894637940178588698619933917522569208546277284082984637476815095996771650421132691605646837651836535679364504531167007612568974400645062948128084133141016690174964757467253407927924022862144021387076118774883395979153821927573972885871926982179288292643399811228684477884758061073286541510111317934148780310533588273908879144204309242986431691133647943158538258828179242126461290528494737384953130562823354259415245077346171849225948872321355712531980321361099644952397706345491665577154713491182385886999477991401145469620448709992170894639883241907834103947826948711221995624404535625453977111365181463657929143870261743037564512053182869501208863846368324044283997993345642775773028834290329308145057204120330423031738969972065859775199702620308253218430314480736846808617737505938511717270159522043631551537727751688571485798751836777157771509498581339718471415829402589117408339457179077454305317491770813580437966140338590447839840437775258857552540062353963324147160850808211701251473516529932632130020573574731659332567949512463690601240477193212364606006031818850967981259080363907290341221742540793523504185416670441566038168923922873721278203105793606229768714913743493126442997387739949087194172331367102930535014940134418448609787816757269539595994971409998367058169978602943780676161137502341193243757968557390786553518416482084954539509283341740694785073066130559259528940120639464877635434978340449464759369475704358793640233420059697336094329558681759336365828926204471791284834446020112837393429337204148932087917602498292975548091963880779016131934142660642413643362518720879844584550977404815947716413605121762313736556177093169893250940135349199805345737145018676470721629391729863504618738966368992474132228601036697900205991523997509685867994657940239235083415907266195723874272030736943633983820039152026304718104595772730500205656294663002607925646382199204971327066484367415749895925034642646243975400382332665479599182393525765563295612922958121297482236543738991860963026353412353467293478496829161741915299845770665621075762564869028983727811584069076962274148398199332856942785172722333470464831922109671126540049894482656987704550397026756474680344863984080378059705225789333699141223058839041467843494838552305906901269349832850341233484100911486798286973275891734519396661528983597181513898939739577741711947244237383794402080672062744660773745784253378374307972903079798719392561773893573595908810497198375611662322970515615616346974831581651641500297920480340466235483789806174416955749587503130727614943749756521479318349645234999388380863675908936175809134542646532199552311216137750453016461854471802733071647035030209192086020020356248064839863026684765668411392304989892321958585532865552209913671481479846325629945958333161312842552009716841813001264405732086562691514635466179629839155623123423126333568166291252627694206790771021726307482489367279851322374711225637888859782172241716717851033248577058396584052969524722604095314889237558896223645217900672353429737722128479106817745604610373246839106237869448875108139059133774544740982535388913351056686244096316247005865467865983614423598024503475146725628869059104642172257926320066667631477886383771165787357749127902009754830136444511250927882990586169380695920912758717486708641832825862251644985763837533130186213053953570613631531782729528910053378156235015729964231544452355273912503955720301433863652516305923222988850446273527869153402776996783871726620221357909405046414632247256802567279930681667762192981881789680264452869995828100445938586188324236785329914944516069589265194007863415165979300738200514868508943960208490940644771055612160961113659450687352632486268939831199273248737780652072337732430536559447423656490925023924441185033244601163095317766018874931777749947133145489546752343331068163927056309571337712731091878532104768773541749447413099563400790207249773406248858761708475776441655509017134785990523956005519962489317491861560448346924982604431694931548110431145701483250960884443950421716991522616907982569617957264304146619461758035942528471900382234975463787331242822405324003348714714916322033025077403469472158111556061869019379266547264541766922103099443980545286276096222169423174670114733512200232536132685048531130498861821118515479388655322774873849144325310452954973783733646695507364649390493626638584233006842590928304126086546277582052553204693045472352954156473823935828976096317610916758168240154432342586852344348054997112487255135326939381130839396830088557501851868975269210632210200210590617203797253633719722478767097896796167041319692284571370069097581965657561861027587235622778212576583859225055231644758549665149444731368570179524796949666267076430068289557020139251749786765480538894056430190620076451931716459084940967507786718594068262985031149233818768629646414582036488574895808783646829547586026466316751957870351910436622621248106452529308119707524696198651812160043044638669318919490278979246260156552808928059034879371889073515145828540089342088409678816937090097921851748846826500361919579157218925992930063960919636996564876549583273756205739745215824910267426247663283876502976006076289870351240674970473427086931806314132496763578244745444420096040414737442531373767023256340910967572971881730029882263014607758211485661885990798099960637808648747800460594771488725073333696405027557767423881938750850698190942198909788754250837947542105256885150661002877745411603025526778567173157096595594411164020813780974359784896419180184031520972243918358536009871555998396357681752974603772901343628352670697626943863591104639346395330981902591507520319300019487493153568783088457690031204452375983138827184741672373686726747190184158055927502617933528648467381840463029486227954226071026098983494362951208420587827227787749448889382476156231867610341211637133986849804652970193720275023369480524568260251714575307597374322735411695418775477988246880446075755872515064417049212874187208358375972646970057444477768709315209939196630180110014509142945080476734882326496737413183902842705128600417612613107737912192810194028193995702294677959043422097341642057826293414571509078224210857777955475741976269816069093166228280184837278328004458503532516436419290871524417016205942489478793740896952909030447848488754732773767234215881941592046007102861854319092426417829951678857393974393940474924477551726236343870196506896247655407056984713723250806282743250272569570557450742585398730724466310523464503747675047537320828550731546823773620640261320805878216117956803823862287976916217844128818059556411074390145513568981452443316847908528459806438996680951693739518316115657516251458363650801663978640924533772238407933423031379596951425458989770896276614439759552252355894150938483622640808712228156061174361086170819583097626082351967835210814901156147472786451440659220885173356226701848485656477174111871459979686641726531911820835583111365344698242648042269409457134071520438263404130405451960859390006053702421975513754469231332409112807647893913621573677377807331253484320993931344143125688885083250253116721577549728729446196168543153850283447399495692577939771835099511572242227982944515221909224497567961327972713125255950512837213664239825633909121780527744157060098458404619193563281824963756334275525261742589571549010148452149058935154084879733450428307332359249240333800310596364173066688801555916814146673176105711515373446879153492472366537262294849074712853852887038734890416174685404942644277778700255111036851783348698815967050195806291372092542746309361955625477658100264271262579029855295404013374791383454547812736111195739736395337666565048745469025466134048821378782652463300998621826629912828909457110360131902919245668479472715096892118618765573027848005356885840712943681291854192329824438207921483241589940733727716232341127035385145269426595141573851957980309426629454443892045960546942619530375543453536962049500414655072400245708193960974920823634656865285206160526945048088933432226028203637742531012370956733084875742754739973929345801587922950821768694507473356777737947354277719181168751126510454018583802202958080244467204498877629602562679372237870891233658082211593579818902963972802240295295431475691392254632072456510322249248843488155433201056588653252527889317644474111821440664404808058381750131362655659024130668552710641566308284803406831557867639305562997725916163985126102001050350827450692459754459701589616735602337299080513907655240119966488336576361215628792230270175601585700099381300911278758408296651017461310986288365786000458235876260644562636560583927832838085303238486709415269299989933371037790419517806967715340935683848032712821296845638972043652488904387232328584575643939647912324497420854578982892403870253261690089284979642774357374235042639942987393137486822870596816638943996280824943735493931542215260981980518475080313810651661029977726770552191882059145230218522898339992115376008843980908728807869736637890483704564555250803549147273772436285210980629675585466599154305354620005043389149157004454888197915328586972857230989003642482132477980471586840734365754430023455366419424837422342063819301134878012142925132752957661027974085625574689486037619126937464890834706806087485728260281631547282448720641303569641328481507874218030970039185442191873281479499562497337566679189547330671294908501829092737780712395876022216595089617837563921062157112845377382136808993550930667699414754329662323026170053080133190866140008044222388003120296700446489656225013141841220562346423507891170904621509024929209663809424789403495058034198207237501133655596806700403980484881062025423490205211078439685359100710805819897765446315814768440254541072088852751165989832082577546124781608841719425877359498138839245805518110329808941474768549173577148750493976079622652238196134588540449031078755303493182528241094531715549094004286827755573160871603370208335632898967599873896659021942938959896558369395651894661415772254787251686811649795077772411051051078559426585672580987979423429521817585898531640895954447637361106173841210987512272922060118126470170146019682910427450973509297795346296824155149351363126286173452796788776765345152106612791400776368188240004802833738377921625101423465478031083141336806682849429909752337780208316839058960444382605639807080113805602033230444621549450192364461193544075338731404584787316176104371714697314492650142972237169513634063044778753464035523279670141000470092183933725054717062785491736444502512524020429103333632227983980928990331002483849405220381136193985519931511116599235886874177403467115230149591907189323469373325061345536341982666129440366702632319611521054620473234104177458931835640285834017963497357038357079678907894990168955612814719163164670123579103514849054090492246006301476227429885189015886190709389774737762250495414711880584417869538278635288396603756095398438894191372064422765228669002214222150073497656841367127458395817313353490083545352153298054520927413282781891668835020596693238125755912490482429780957242648994199315535800278643465286635913298368069549483283972553553096784011744225666431468251023790537370987577778559769333448815513379361658557110727538402579489372866662301223591941798189970414991984375152800420991028532034848163141027508143059822500924747531221788204292087407371532823235586129408260354566910369301122540939867371222141063273815149488669554150843718896579138042084523173284157501250448466492865302624267634005423797949254999346442123827671433350500677658505610724652822271186634470647380677346814627390940984640837930779737757618759812331188849624625744458648947397334008566120591652769721963824579357127039247390477153486468098727276770890729529830361362437701139084182381059198980554303869653089534517739626710018332340766238706196612419639115295942235493543170515829622107611929868119040967525698811052639253852314290113396124465594813016077918549199225763590189469078494697203089845995833850966348749829884682266071342485175681980225984548114117135960044246131458433252017508781026205601875622207275742150767598829031821683452272581012720207703663549939043034413283247447108816878185019811314053731490627311367939040041855250869598766228233064846405870160092937025216271669591497046650059970254614360107433556534147889196686121802977664979886758573068636816606504513585685159879718892550405653729686016147476031825927089791636257530053233679569508708609574615559572695000350328526846647714896968666262578931236483331868638749466523262992585095192448154597711078289024556971392527757153209586004671458626815082912391212384177900043474838323354227599481782513454296270968484052602999904871522147661115312828642710954944579117526853694365949182498793535821228560695065829842802891588907872486988843786621833098812442224293096476726698808302180497711410440833935822999432908952742266764440896617572079892828687126609812568987700035147401804510210579084646128553347084543902243419079219593822894797992083955666717569587261122204369737085845582064565696908929217920827967872373983691431300445598807896609952741125026461907909776342235652578792694584986968244816676297673598724682755431811988215463043016419420087174624399169745197222671011549276975626212970959633217946781685592726943482499414131190434824175215848453849376900488360397406130301992764086564942856416829661631772962530376845183772826564199170148312279553779902661143684040246751082624009799699460304841994631590215911283499662613342458067365178795155630062928050719949269541209508121959404298473462313443166351025188122232032891437622061505407557648766760539420190630149889173031557373544901511249755412771098063708539548124566872214440801147879386555708164313703213480678585822729948767825068117764450200945156366125686706394498991488833734695138249645196005625986615859054376585737101987892327529591717808912328076167818164177945440524259003000122842542157076212321462260148615611898858985588721620203644894041307358655200782819618639185144276309300640003538186730921327515340666797609204204621593369030137584182914452282520862362249902457611801830215761895660782281489251696819157534713582585457155372989500132473454652897940906466759120441657727582823047037378809656293579673532703377424728154231385196914274630774724005960627812035661191385256704848811342143587388168741915867271603406924622788931547021711502938916281535996208393639112888403852899207907077451220975324286659274646093149226866727270061823504376637694759181407452911873184284737598252117554989467305373161157580466186070567895050760902452344420802663028148785042656288839101141167261385137950786181123388713435906936261930462542160375721613805392689390470518693985226068373749021034903474436178029949520994945047198397263221446610793856362825018597109408389590396201550773963428274362124763857058734611047664294255979091305426073870152026268501989260361642924368143281823280011205585378331279849037534453101469823264533296024102066433842170064036114040172435135525944383583022321080601268392961722793653856992389337054216989877902485961363302237632993034180117363170506572237781730713235183384825525799627252794805381516123843378546311596260894102529772280454494664278544517469617031515432111629115183213830753474848797047524719066827596837661001139113539011993819287431141744729541504764462659187468383620295754256185103305041651878756797987542605013019941563217497183635200059835112446362793770667236982865650110912292550975227089892163924895040086288776042079702255432098239319989764187613390272947970785420541046929225940617332700715493118612233140752784359577553768725316466481170970765907515541505740271088349004675855835260169495957360263705627240272044170748873554088001531073654749179266097524710475285218664690202494364972451957049261009605831791489548887171693819188276147391874487185214733140685732418916128707045655951365277619710511603293818238413087059145573376533821316849841620379180267924182083895056305784701127595984510888370122970594225591459383389598098216565479073082554482605004695253522518609969329802750497774911256837366616729865443792937568900887959395375361975565836364834388529857607126646309636263945409774219048234213881352272133492668551658867976361885626903392597556913280357836511917102307992628963847323411419472757493632963360827599401484185164921647242645970041956418892550378258162391591079867344045154886162855985548556269737363523612225685231600868448238055181906521993098817317890441984023769909338720118602151559995312885686086244235628834321492346029902463352428532583183192688465861702625098460943974509172867684899949218873155395693080396257834183348770461697070434888424332260135273270848533082304353725944089880212882011188605115445327035723179434688880849120546398431527700581802364839237854871796713612361964793037861173422572082191845726987147476553437457289452549603849008024041620901236676513388173327023710827190308574214070424439495521329397004868269557055086286291285943639974886259508107546407071507191944426715689843683698843157922427110697154315885010196053928751263543846555943111857757083592041632126460268260929532033866850115281212266610626992199976423098275503603714672577914212588896404495445673695982387163216858059758213929833944927757064412246383013909705025885845007108898645399242953060201329831310068033341303566047371517510817268103518256697831989313987682937818607381373984548194396265092332064583512296509243820308409765131814450613577049252916207140047817961404353002989500030793085901019169056102929692366512205075789851583231144713718086476392849545530985665972098912413523599025573022133448564903723206572784922505710899079848682929809625234683662330143535641288874773000064869757021187449080328504549343408050550681361185155436653514898936385145804662156848828489889215857768781373543496498371004834556052628823608287483463564299001489566404000939540616153414523215988969585395063173660216442669390386849802579558461412810590396648612190753234874610252011475777237207811473465432460817098672121580485564319481622678664944356727126222082458769577218694905723903951412894105367643298193509688268572402885888662779333733553776115626554645576307877064404010110284737820561557466963006467775642734611527613080232450432218736689756913154303304773603590934505480221017004383414572716935248311653349008059329805670273298626103894376354515377274152953890562361074343009553459701080793237656120371416888014145249621639634390322206680324209269881208751820112707580422021276726407182326143584177218256632343660247499687744618591217101745995858772343038229191322149799163007175499233546829190598925799423009629174415420114764709131002825605737554051965436032253924829247964166342696204607320250849224861206028734576367147652111436095247077078931336632444856531696115576806438800362816944933282971592680208086291349856272371536873142387602991755480274538182358660278316221880470676475970077364308822139345468559523437718969315778162987242019683196007049989644923911819276188892721630062095517152586325826608248129960069877196582212641452415983600375184908159873219385102031377406849541395338917496569957280265931247957262374718684626109757335721790380313088824218223415133874347000817108436945391182537630189333209470579314537351825587154500346245110090909432268139963662538151779724160752797416401515633478737730818738264983073748846969326596791054918804671086005107253727019338547417805015379067184401577513880306832064366592206633676682803375861171994954759272360949527591762226474436413319579422460841259215867535958768059574297201613192544748754576923973614232013781035894989401820790082922096359201370110331579760866205459098651581259873183858760486094196891968606255142703146889674761910373535439323833473542527825472695707172536432299736316383049287870361380080208438441712060183570296993120827440034913157030519917129077718631395092405309662683716226986414758260407263538197133089091160892909868469323070080773797141130817362613760209534890185733488472760384272923964624989815253839854997692274831695405057210268461602380507478176077765673476351016307506493858159067512772053986402308514779475283462498425579440489087166565274906952766150848257295723301182211623915260302906052647396840457952855534260575171077811749804960645722293867862382095345485452096347975621192831184389571440740673637795938410696402344100293562718007465093468947064152798107754741748604457099608966182499478951611338054407999440934954785157248621623028578413219011541590563261399756670739603810857798428186026508869966867152963496249975368942410048300828238269447473742236739991816667184811656109541076048885913166469582041180912677329498123303815681145320899994488076224438489655112959373931355833233540295610718954013089755244009595163653789379852757355639726608293464413810492436677965326410334077450048532568943805918037869868415960571305154356525591444085691315183862701100062029415299715251267132784235394654761451280211501521281736797462541878529899667890306163868028293861886588396553162081910085775097977775595598853952278093527608268223874418713650189159997433600775287839282533855590883147997297652777253785360033508327246941400871172619656538478821385317953674674037758542856777294357541985022628348576693178102452714382799374816919543494791976929979464958654652728414923264519073919013272499654829745389881991162861544783174704338101087461273205895661425152526875466490793662003131845522887141893577527248678972301715809606009689687398936667917071540734047784920021018144405225693151436582447714190103237358748191380950215241402751665495043499409151903277212986267618099187027869389703743766843469342014004829584516761017000209017419692113288376617059782867137847334282542442881695518824124780882941954537938349320463374010527982432584094208691091919523233021365908448099061452140953736848638613752783532513213378572410112930486806053710912730252804511833167307861605265155632029312654838408650045222262779240280694677858381065267580976085537739831774797355212554163985467636567726942139080849610182847253452938652293903912278091925322114257558254068393491524918452125951732096884121188430399519976847343335690353019997844748480548610605530425681690466570022053459260207546960701647580738896434532248508977281080898125470102173688200122792688429291859109910259324447833311098452884149640848568015518014856822355307514139781812354984520960769229038266219678659136529151351676524063209138180622884586772190879559786217744263881677702271993246905652700299333132538658099463496506727301855038593335094216107843439000872128981005540738355468892975934762442621794675728597300742421378488608734801004450849467085660774853146254955426154608289947738873821331569464164601654922714531216561524033092661699573464877314771977994958061987765020015381315097460865719743560612278891407909765354362666914497043162738925344109228032039289860599290187161231246208432007170657975041026124780471507790527604383205608713612462776948064909774075036346176325944709332893122602524241628126477243567200121559734820357411888977986873072201357321100132398873284339711740121834970847143693114035942884698440243146998618548608146161745268974413705608988112613952121331022866247133690759092805657547580659924912584982238248241986983870315151953399319567852622028277676045581343773956886091021914909885328219789789588071033355903226949627916740794658626512086800969700690183783796106599247232699822309522874879647420434067393387730591645289038020200694134690398662497486030159503739895351439200172437409047788786846335832150378472794366504934018561673490567213048395793465893598953512532064419902377445236176274007653389966446293489037380891275282992477998520092548606978958806859055006047069160083843749741295265824363808864644215786690952959840965844950703573870606340362092932462188204776635207817557530158527634209544111953449044898296186265105271600161484204977304578614943011515661337704367367794377186825554043402238809181392006910181553833361343771390376330835503869249023503718939454425787876852655353683380165973643856192686314307579206055723220842232674240259628172469148925641155241944618660494063720035165157662098316984746770654459413551774258877373906256497056492371848718059633143427391518842152422470658538643760089397008687136034626498468279878789166247678656722615276255138388556726728350381277855433109953295817100535203718526382346517627868074743597756767865144192744412977519043967831555838892430945674352364819014216613832052196090862737713943463852556533292050378697713864550385792411418379868334418475571238762264296721647719013570953722618873494069055872411892188502192478803915910368422021394585118926120566805200405225784053323209811937094675722505081065280496167959914085902394921373358323002732376127570818298334118960822955453050723559664678707080292676855446937633887602028028649293149652702505013943537923965836096557841827432352836249515522302776108360428009225897740532382307197125403643162975689180579444387918562862536636243518367232675946671776574737278799314671173881434046503304688245637792307117421284925001569053226468837811251883474165862609211897421078355728182451806610966896435887234460755078006948879803763955249907758737069985534722946562743830428490743247957216755063772778502954427242017358024506074965135252173523266207514566102308822587225150423140841667558353409817525444252845450125540402055191115565255056581593906853926327882955262315967889208008619656402530252162609202701580476007074715017718001748997394889781989412194463641251745896600246384322067634024971085955671968674122684161324972767019248467432477244955860928084056994855346127140201057944067373497739077997476022494048759711009826565838158753669380621731809921525753321895797034898618295506842965700418084196102018940074713881980474868226638939062884039723488667907639875958045128026084922082436814864839797779484461406501044746501248823247201796613053117878311930477154983964104507323555654360382582401326269682568635622007848497070169515797413213709184087973785697482160741435917269847907682778424667458859924463508459677353610761058824684367427758677596640701897661834592791442151409678579069209081948927711890539709289728140946378044644975551941596566990361564880645244013332551600273183310933412462021737657420671858552324664463882048508414468771987423541185207189341324917994493687733050516368572854725060113480867665479607616663467986237167091568856540925715646716961546825510567554071389403132174694288950727086020919373795487195166188213421326857360601055669555167908879678642843098366438120728927220972124758107574587379984370976427431950631517925555672282632515122355194754313696616353699666731000649328789082443349202787284085863870571387519429322651624988447481956387197625068547439946548219689908167291744043742264047971176269231161703511304088539967240908256944289968131595824620582414184733987266844162191102769684706781162638277918772817790964388494237155901855319466554396498224402701249616644863629941872383166781371912437337011849041225781423732262138482646506831098648786230616809555805426217478146984977151844586455882705206628825550725835119905293002244086517230616270181075007755014597041105159893782774574022481156879897608655538378231766460139216553910561502240288215705294921207974605756154984750137603188929484975522814620346302065835227068661866332325328065496357829259377637794966915004606347805751852175153747122437271263773241619443693066170787796758296732510391134422384328460138453199947855883088944294523981985641741050618202667601466596663030849650408075256255449884493951052470625338545558457052912675568476987291152291272389423510596669261292752934751947856018587935495781591871015703305524436944272691066311000157630479858252424430626163303469718264597901985575512276604629291798665377595447045654006802746070803590704879944529151091811326333551740105120206638922153149257620307630721759550858793882257663334277594898060658041910851101903348741597739576541017815601926533293281943091210479894183935774335615979615630346690379362953409843893111802897117692009416081943951186085525023373263517130158390869248584427567405599575082490868235557934806207995313663082416192784330099292288036718036219745013426751852550168005734083700578314152559688077172332011559493616399000383958797194824461229011396026471755769311986652372999620272536503209705625635612018067938723693844170401401828317096679547737145790342963588492621591473953798585436550192320310820005561892160822700874752249743818991342447470527955155548258398325024813825372263842165319585810454964769106611384215696555103819170755115086751465516779251327425728103146697867314913155676489766371952721874115586292866644482691784823765168923932567707462255907784927632177732860823795081554105991713827835404337216088341772481885159133507569857987269395780834479403339297973279167145609035536331909428893307376910863894499527053973855299383337741219114551041379640646525080467541812491012258110657948456095690546532041951438623169962177820026698438109844680645695826955565085181781427007615590571023839939039466569179243274661659040008580779223297580719824897607931845567363684987052713929407673988541791361584935729531720559211800349333399901913295724345657230227829712990478479913456675101612498958754812449392352228351275451240536562597428752420686208372881365528338070545556580134422177935728422641463535016235004538200959202315681437824554864472906039092902576532059470907132909483378264341105720942105283374758809525598756024507393926855049291264697583716598613040387225997973211429727771278456533877043137869800139655505428818737934942170585914772397751877896983654538264183362984130434231620428228440773638190070227507900023172005177662197117517599348414240795748605977486587176349223096934819635548008213568180033663028700889100188197772546434708350660629305335878272752252272489630426950771830975672478711980007032769576638704157881497707628651855686161985537070647484759944104172271685647859293833966832125177793381628436447520576098023261025975338833074678436729883518152715662864221963239791988690454809355225804627447192754883932893808882874902634966182738253150039430388010535083321475053322015179935704675672680748166014397176335172608733215919137678993999555534452278906009009826316509807344221590936017526354307132626633780901180667775485672127321246321890994840906250985242797389350233751051450840872804979615707007950079687799594330395230531914025796889546202554704661831257785597257477296577665051240247332311718002915052229243227277173533127897536998622335124134216426731527486808564799710551366090584792463776434726946506868214069334987513253490081641028906301765402939988415584005611733808629120580842188940194331467652479135944771062936044186729540683392358311403801508448809431663515975486468394792647280886756692047317677114510319332945702470002524094614794507090186415486952239844532064392499128460988570754168026870291580687558828090418374697752146151393664697958147381928086885281995646675044680394218140500118660040559050293423856096169987985797105614607248133047370017020354004991419828015603300862272764460799778777990586734530390280259040007239768096653569284773181756075594685593372026154192634631114842939620599970456389714922102365115826557082355736372526915466769339851664405344418690619018821096475835339957695883326532618944525028180762629280179498853425476366105585807308082773524651611202264559103095836201769014873245750387662715744774757474325919834498400085506802035458706983641237231209438861386982200014416558582531456456874660522884879972037368180782667785353575656542961614731333021158258800466552994056523131825896597565953030185247028390074940244271217832103820387619782257027409699560629250606301267703480532355865787031611496989811045141643646410446140759562590438623705634293026460150110626299156723420992494058724154144513824517458396351201763902539175865255894862853789102125426489218423600131180284345479829591534545442604989184663085997144053237914952717938476288533104551960058722467531159119659972213171329405997556995694353646212417321835029486637483387668242832355651853623783266880397112953597520525482196706115899823033098181605255089227825557128412025346733709252503975021129030262268890371206882563068443582447007596451092163342128849587536827374830424729749904365878085860415510176410678902866246290632572467477081480463563871853521588051374056347739654695381931663317428923268168534147886974939593531889747346701053539730007704371915024136597990778881974774473160357970770790270855156022515065425378834083761519255716858522391600428958373342938660522561910989744095742878391837620140987822281932365510159803560417218527779373190887732550311670975711242449726418986263130926103247206298607460047343400627121475990717174690306760732901998611809624904102920220710223415690416588739503493467022291602325813312563276710848547132376884280850879024613987375917484380411221011355414392920769643224557235993535916048121968429044220160354264990964995118068586183990824346843868802846445186248002518347778969551232001375164800793431380299437452989338264140653733879460855381972331622776323540847070807650361753847278674349743890520622174652571522722246059825158275855526598399279426183688674474934025566074280795762850470973923458150186540806825726445839418655174446014285177904515959864846149088070553502828790000293974782953922542478453516376140021360738369000691448359876659461998137130218178626657900767768779353246137709719102053600358233818908565954122062295003579977900070302629890347236963798754924973986758788199762475083301398836435922981800434444348581086787326324046004367660757928501460327609548684305630076457133158774855801552994585486454916693145372720874678336165607224331806750634767593529962175861430049555883994957041200729081453719307585875570732456043012550422464891067763970862594262278511673806751962977400044847379152921933060067241278678127074109177970690712390334409517849870144240818510546262196055900359763763693314439401367503990056584617895087818847992593167377679188234258413839269796498546857879507341376580589181633688251012581852555836994683195762431021497742654988751928603364068253607877768355090704230754775739967132690740664946565538661695619280465838814387012811982810250771607657363623794606033880084828113682305722792297440832220294400303367372650544285542760310362483004236185148959782599079792874203316028144774364767695384030198351755418937568325353866682939384779176326532459133937542972978822432346821837942507898554754186376567231229277373696833363415784266983376912238761517684373365216611479712410706516482699791455139330050027944745023765597728088582304965814584644091426096579130420346035362521692014392708941087091635916190720028708285947402272287214925271272020958508906878750100374339681427111545637445796458695509246357177565485338082180148938700255902275553343451205904504702483971474659292643709314629355249839690808640124271060402707757265110487817371165910145299688847297118402378058530348718698735077482615853740665397547049702634942327351348357041473956794606986930840087327284174684254333731616579945443281150351711704237611061385863579438548378857558684817977181984021711985036921304865258313401122055475853686743591252479353703822531502136418976621139690815481172055472370094779247706489802723744995909066322857443721437195283867323132423038427977692164833837682360944195657401927120502766854282079873307397122948949312666666946205156558888587626645014103234353009637666168810645110493901303019611227201564456312975281740026309917115402695455478811172598966020000087195536584427134126505999859277723604108466802259206179668619365275596367385213595950801484100845709774021973409984440917702379107765391131997828015285354320605082202198011882360293262081338310857336544260857900244561070011039514542323612860111679238950580224172359933480005228771763281045106978808268170289781438474072179371060779890628983378267844389224812496831006710486110401007738125634482844672162974788799621157930906646929670482466048058998669577537570889725118947787219972797958737026715789582938892719315497987274187095211404931585471992040364353566817650925327150094425208608479578898400498054380021343139490679327787283799070988764991714737195853483797783405418657451877317459929811875672728327954543541509844806130538081368404927089146425504290191066862551514145352559205310737712706312369546292904590628492420802071733813992831199381890399155510514855266609000780561781012365183558580659981342089313183169755487561010064822039754519460725806930149924895395701725108687403578860655805972200681954430953975254220230496362247499118078667896213771996409717661898198344908638839089601773154244237807323430970966352386204383793181839418677314917602798453173779644845245984828094749645028304513699761404885833260373120452414834550448845298884229297774513815507626810831114189632011501007755257449973509032524406211782470912085326754187017337459797531980947156867088468541582090173047733846868571204335234238792656448229448358784530528534411186866999392966573876122210937404490764801217250578231733777579774497265212599927453900305130706500064816872829800702653853062486914064054405409126052653110005066624235216447740329745184855707223745102755740987132523981532888542883580431817104758855174646689122208656266386096109924689927863044008738273462517388590649565050191245300713888498299813289150278920846956372457013020580334098190416424764704096180455781823121471600473949709186612892978132475360600847968004311419043834248870779134330671501604601515785960963137348458966273292636497109262045192020405269872657318273719782504700534986619520504264429723765046841987687150692875771333189716505446770668782905406281032077659843143349872343049545013429170282692490640538071718203920976067924426339816940454567078134721321849068313816209829386567334524601459701726359233948056787914649651922033005126481023765859667630896816968169293040130859228106946575871425561546363970443598818193220700314610854809163607677868913532016582568474256070696912040321911972113288014969018256008716155300482033205595623699101770989456376933849576304146206565224281128359416363652881489181076671253585029434203925906341396803430627976776954584883812047260121324914324432431065774037767525476673394774338827906428337885626907206877243163241838584348194732143117705666770606050191545568931034285097425857485059821456700881754779476704115368628811249953916450046242970189471541583326618422055969782910031398974566397778468012410036312041316965197475254754106094826408039047298190437687550294034506592978182173005742754158194190490744369869609590475777721673083078214190353327979881012454598200079030419220803002566580082266568206348915083107184981905313833099544705542551143493532006506775683088719342925324298882331129709583257937877508245957471376656427717843195106337862776260406154797949195685807073682012988636454738325644087478770667467345350518833883434281952589129545646312330936211334937055909357781621946635824798820598936863309078514023702585967771735137009937046445105525573383141374243097353966585389843925238032571816479766366510169529679965556092817723953407731721653121017196424886852799957992224235654531898443511364624516018127895366792612494662635311646566313374219715771262353423309488440522313230614457932452430138681318369327940551776633911213253675427677891688303972665997782802545344085107264179033682450854921986047121201849817225609525386002909964979091475950767709515968905778321674267488197462604792123140390110092635380824253117467489089190284496862119714196664171456148436485363997888805808369292116479426058380009145111538033094935079590232108894617923589824656642202429165733768447806198940037834404522150677654299265405297360427555255176684330747334929216416659425084180925668382041184057757780392756478339477638715657563081353779034818726441890901938093845374186754769490489569243813769994224969956609409753887355225572489333512047899859479796455969704233848821876490945301367098037459245539031794294548401173741760107534715029543993195462748512529935708526110143984475520696700351936143765589575787820613261122336633798956350968671450723213368339402862012814941496715319776124061272392165451682445872720776346909845815367559210297598957071558496664593524074417705199750370843737657823892883230797761286320942658728618092385850144361106933058139115935143876881819621788936542152951241888298022255555618775594520146036912610834146637639144965460361350045710542095803320782791657916836319539639525862752767398641769712583849224555379472290411437794452718097888477783248843376855018273687547456001039423658046439410792705456997626726214120603206300614779850167943652337027312773111562744620825287209094076656405910554838259087032562925321511876160719603152229928933961002464008135900142049266470548142302529161163554512808636360689224753585763266351402898930456891673685310993833853153804637244400776228997743275164894355242158991801684872267616618025026208766661766083877366098828402967039404660384770096042549428763900098044451351521741154014791605646824660765674170866215893394695918630805558870754096175469759825146095251445682200184428190248310712897924640586419399511736784771187580960795547332546274407033632007720360399097075702871553794541880110850788290762822290094098865887457416771028042491971290214557267281089406267263769976246685113191206532758646849643478670347523194189026501107353176006454353089525577206581016942328962421805319325842241291039809257197207872659318085565333154622126577553854996877701085683992360051485484012916122860977298362178438085463643361861643714892744591908128144625116464153507880635644665901441677421439395157708338030906123904942145298094463460293352837556547872034898224762285619761425435851062598403097410501334940705723927186031372204058683099938451569374160840670855777054088945909533725358993205170504366632472607498937688049181900349760071099325813647321002260750092350292990994857486546499888697827585210367084272955681668825133381442086296559879194092983908264256924252210963448408875007041092201726702352406246172993346237005035323664419829374026311669867037613317500512646271115076900920591969979695620514894160598259173606259943442755249490652831798500924741958142399414724827627721510596092000073045061962059224957524807028275663725321843591667003751542397144939012976467108757993561857753395351428454265114096990093784791690377977396271878041103198833248477706358244219399582913902293547734372766961925845480874737618880688382932030178511279178794557440999357160708568693016223045926912715441618240652282548709263359221038606216605184047123013694669322252595560741441117197573599229577834273476416820257275214742012838250534398322773786562823096559980658007138977819102803144961074434563908557037397200781099502346074107817232685364498693107583932646803194643615171552796246938333046938851242987955829592329572361955075133171107346291954659331494717177555758522829331716546853555852702610095448690838546522744873341425186912062839186696738921978807782915617045048719544506972017342658006721203502486616371260470946788241192748748406326149068499228511032212663288839502710357142553264574222744577269024850503345813902560750549281871537762891851418266390475757064083778205774884061695508628058621013616007504529085759749239491710548201146935146702015905447013980242901219613726562265166564277164742357522659022191835535844746641075979861938437370180968622563138539572838964336202902900927718057617886239668125910015436839437471254842086586443171696702040498344141627976683146917358955720839893384852195933067106723939488574394808630246843569701081420291949381921237291982657100141302012924805902094816671145986668251203587779757815598126816502157918232158438099805359005378199170332105021113196360389695420502502267355964714866755311683370962762659539172196256167158873501207883577933369854976832043655285042453108956614689289657920568323363868242811337179294091392981554045931963906607905855471524679583348098950905304155187263739808517271058259136672494957342806124544790995241923040090672353409883957880385294925173641156153015544668901393761378699053593022662792262253279422110646934730871058429748934838148853583646500781933219871509312383405150744047581480140719315969071739148817484648393043903542689295423003536023770494897291568609212488628139004654747496978619473594530914782681809432827299683516549830858940519313109376336009585475260603348940029005719782998395896556734462720722317133188763371602907907557043006299158441664585223671955259380515413908966442799605465643625491115633440907045034702464299895099364329920369338537501925938635609729534349290145566518945585865357126885876497815506483081216659873804051442690980838223997886992444576635617503558502048376303316352132262857717744862695969840833284596193314718825464760120667428517071502760639243057448535459951612539685307059482231544552752038790723764453868126159966357106200919550549986170420753631449452275175858665355105531030985073629895803124751733948086092030083912387586242448512820685642181179456332752008266307489604632539121281820826069024830548389871273745758366518494681733879402679605149219482154874259801158280989569770289004132398318721123486902567343205569896193222932855368652305124628273764642859454674220044457961830394085040665659530959655793772903219037207559720347860105547371931710977653585445569967680986011590075191539050409020667194043908545761272360915239626991509059017577884980795947274613353735042840757212970403019189559056280438817573314401910705406326840029342308317593581857616823997558882383401750345253132965682840538578374833605696680802696216347371183739078818256990282202403188867751403480011430637116451010942298505473026447099847959362410740128229973611548646037618530381463058030650096053632189258164661423441489109457846140791090012274992043293072698057911494196994135859690444127081784336327910257823974781052646135629118424436122666354197879518253548204437149076870734648145313960249517428200033684300256454184269281087340232342246001746116804938521849800344918041541575297430336093608275716550705072092791358550114574947120848264318485235727013018786663959522404760221385653995275327520469859411330340750229225070946924642920298514619125824289944393146958257671332614878802376500011470796039944951219452723097835696742708416360969822352422650597615555404785446318288850855781681040231079669783990555715624119107549709662940537768321146381526113957863999747771024673725533940538826227106947441833162512402240492422267448934205389937947139914783016336612517874453461775145444875503972708295413650903347557356380372050830435381250115757901656943302971343676244385920224378249167793733434308933936294938382312400665104390375493271586798558376606682242147751283193314808736542634578168925464673063757214918918437131222803412807029733995066788182251807722118039864438314266985157502617230490279614160458271366061404624330186703910321953608399534821002322054287741029340059744575382091793875649598869319226739254183149259821008376585874515624790125177843238056106103340007124977203817179051350737046667740623048118114815274211087189830684056788508689892804135562207862348294161286627234825752959344119576528316657468831556727207571237403418360282112739369035747025848916702774297896437182303447650242067534616989399503046606111167159943159804088454752578014843732549198347921025348688047157454969632205530395677884656011304136309424081643512754183449316227066796287758667732559040030571421771633854745375950486024578615631536736847682247798945061001471957902496788221940447022240257684204082530221688446242816157513859882537127082007400023573959362453631960172784779685326309371890675803950584515423930889691516031818478363388447522117193042806504402019263961002933455092211981606185443693213246921422484294134078498263328593422317994792834702779145155088729894936875150984451076329859945135574683724693014175468227200061094303539545298561904718575973041176092845758925780504729622080449349319300539322885210553657015983669603616605668179393924171473263205227646699119014330099110752894549972177080456477731165285562980045225065201662856704834037767777918357934093771348971759477313385752676944185553508302741202363272001917852788950582739277225471420329209535918620025598359289760385974518814232543157905607624708488082981946068445531579364452357707737689201733502283721447161415001366190376214040959157252462394847950084986429541467533102038680588450151056510977572419137285404005033701262324743587023994223225065872208315005174466078215859699987707176636498783529153305142204087004731509305117989267010812988460634957610319439250941188835381559991317944369798089970104863839566864297026877435047085704140802269241736098633697171089200946386809464703657944071694004898614281529996605772491409866650456534055541052295058035314699460052387167692814182186130727131097145150442169207933148163395958503005459132257444478329021309996569071888476729890192718723996440374001464078435365658543121216310278145697729988688100250203408369999768901395934154422965706101339845715713285342729808373778099098341324274680202431918629604431027245906167618833175839963344992563365033839696857257391074505537767714393192112678164123239506247127521672317587228946457876051798398964523492758655917995390480574828083863776900628350686414950563435028120443917267369320968956381424145168827694571900196832841503541435443592615673782659421412300419377010782716292804882657044916957000459203492835804970469446898473845994507535544999708716481809673070321102980704822827004688370940838364406173827768158397573538178490230003073884673090299350914012436592516538766179114507532302757888072912156798502913626748482955482607949467124801469321227970343536448881723454220133711438813523640058826734969206216672110229623150537886518006514689585408326853652639787833048898116315003676536843019502481425505728927094862290103011579358983308917725901203000261764694917666594992139046378152573125897596153305765095700983190621671949516545768716809063038851218695889237328086154420724441089271525068291338661316917101885022865715177262217464133757095853862431103416361644499941992352103310456175837844296348626618138330814489428292895774373496196921031477425353803651659193245314633453285218967125506589910739704076314428885642010830822267096743863629331733924205486971176363945153875280809082047687988596313535898414127307980805185762991724213856892392805316057463390206369614135656192760185989294684166297193578167019455014695097359276142324541292641186959104981319175142865589409705661409677689459666622419246450262529341483751549458811286110268652311232233655328438989924852099595290690539265491072316062611410403285398077926081235863614607851697348140715416376564881358257693845482350569959243430463195184231736494334962318312632963796956010633367320131126733976584510773620093670961694768360144596868605279656211127446423175117154088018623696422040846435721753144724467576284065225599265517745716151643603614882482261877069809256991846491196058741609531180822896839433396756264797533921047245422396644142267570701490997330212464507774957301402338730479184398516192931900290475180344581832203582183031746017935348113564705212256708029187695620529893838781372480769103011215614261424825166006262301247186709823365800146038071632264441895197474260721307450745484175113982388665310255133639452026942236271575281040493668046626727019118168626895659272997744833597948925986348214935933864710780539844450219437530666536916889069107671675071478495482329674982651172409037871333322805337969252960835260555953986555391282384174356773742044724064160607276877333954845477009332122121131372375943781670159524639690157893667351062034568697459978078253625945299783727709496461430761657157769867994483252234943303028597903315401802810987821853346239345553475122271277871492439402712705772524238320382313424348166351820071648554970203014052352693070633429200584623190875852132491579459458233819072428701348564334548204338591083142863710105055180093289378573296183029269146120386329636541122905034974251079479195611923421594623631821370970207147293384943512547668184091252782775116174906109498893174905146767050087776214324643899131239332317833342113497873600140290817591424151773787807879276132425732438211040121753279513963945212149695837302429076354030312541401131107302508764869507979539507472894727430133108611383489949857115153253672110191664099639642890541344468501828075741454166553276821065357229847573308610032628071153801818051174834398727907504060083345065785168073411296208587244023145221647952074130278768331338998715132328798125703374852601047017655043233290071336113916306066096557892967212710708681120136438489130040759793446843370966935871189855580126592524956765086560699042165934461101428104713795484973029693930395830748587981293929961718382079253566360536153447426364920681950299653183450944730828370415148246663686478267395359261021239659565833846802220095631705078018974490589956039238973200291583288726727997575805335854971839942240376075772507430611540708340476271372030518713152922422233956052926088309844286670768460977589034903797747212359860264886339058843109114079522150678336665043733436083168297174730122800596649612636628526501747963169982259685558644715721047081645951192889032323976152377399807260363777090388742346251426205382326952753092445043359255359098086819568699944603631430211486515318135280373686665342505002125190957820177202177066693084224660365338287464398260810102384623915207263760490189530332550963796342823126726405905840319297031052847804139701405444473199677193423632431049330713966488840436730095924933447184968400103725171401469186549109971396961077418233708349480960751697399485474284518782440773097106642413409164838520414776297793586318058581131023339987653142271388184547787091197420684473687602256641805856940123589074191616953154285659074366522429341716282614312675793790673622663213746720108335027263353832703086968082432053154435495004099805188491812615037281815393341378213849384324932722539153719435347130674705926137158978392052992863969224518545781123724207012937396874663100542227347842403213611416992985409864355063889677445699951728388543339763180579413394509732946035948699713945399529187749368489414411894553984375304249547744523366563787975650703887603498158546474330009019026708205635064389456431605131960019235014847782099325049199592684740721991667191889869549103930620397108292952028712639399138988353911203124784761014086002120863596748297774997704533605875460134513401595821409408284893849088705021512371945039901666224725144265117848440325386671026058280531677923254029769454577397512569373677910666420361003703727957902322651755511538654905257088606787594393625587199270498217374773228226730962835835589128968948607652380863971261101460598312294745034721930602226658655296686307872985821433602324661634363880582741134565739311565245467410010227702271103717641189861514110844209935781113703403812094858812086442757812296328880374488687558605859765485764546841219578328965330550057894294218836937215867048356221783057864712282773336547799859874366435073363083699422623016703744049994214198780143567509835909933819285841254844896681733402036539508261458044268061682976034832235130707596097514448446071965179785582962419365002269479892882167201903104040431712593982352510890505622112594640731978272227547168019765907658610878866591187698951508176690610210631211896180335460834526623724327662803819063391204731731429191649882396438215664950929416952629271408155084018002172556647896485459425566906288928960344162506093631859454247932270042166842699668564283741014951969423941797781159884841647632583291542572259524603502926775961739223799632539011001744927441717240647293840458071983791165416417182674768573137901132912468815491254784413427572065180204599396815131057598762005025949102345186333656398155343685875857743299645986001545633309548344772943727490346670862163118623154450626790773171108976570237504016934887498692458541131844879854028454694208599438509792220991422760308500367313904202528772523182467818292391811546820592116060901408600229368453221506644927879910061135612598011578886200911597185749489878974709000249272949282361711981133186042552682999201588332952636064690851907282105374959043054759853802083200156133888219106746953093256415260431402077099591294120273006403023156643910557208655399790947300029969807581853197353443815366471902259998268659356514513933430036374204318933270190105297115343219008879361738851886618568962152563374847848326354212017378067374604837363087412727374455749695229192998332102968562803797189611100960302114304770411916815999003969976265445237025219235439208758423897622247876430973010937128962321898485234648345059069866260847774179288293978816708842878861131864770242548116800006619468096759510244434140911778292346372890234690119675947966722851071381700108080165724106304674440107911373795412368608680511344064401902430550952946365392261344525819241316279007736045675685376246642416632355651610451654383344865428608070847264567791140960659951969473262972198523047418282519236502091796792127857036099516314346789972738276918998239382368817063937312065639895987780497320299800081689198566491577916219835958427572785485644121179712420333958586444619036920094078023497739425830014653032852385036718248222527545039443231428830413066863043983141423122860766531926442615844340745218589917144357637743203193698347179816417597550059445237116982913963749587948271851693620072781849355873329791874694587259927693138281292800884485961950255044500219728739710632250212591448250928183946297311965356592867045909687381471014188141422723101971056833133826102065106731532724806922361683886251320065228907303873372589716787404025465327449615215121901422297549594822109708239006346871139879716497328042314733255633247213243981800812946321385929681513655493680306168040668358572321184312880881868756770854535825596700676785292184923592429267210996600679029438492901785852868674528807825290570832830646870482480053575942348196863518626815877697274004495092856401780868497367461891634629680932594342781176960512525154959941576295583210197864691662010923658146698483301609410944341322932107922910089158335639067703620594522506752103007277273599148151595120034030533201206019142978232464972122649155355167564518070474149721809418899716883068436893675223539138455635483327729882778765895379261394659138176455685039068649540023767780518963803481744650484882226849294236509301843182641837952493208692351833536425447401581669077675003805147152685296853996725929757154821850825614539345169672853860090250129593488367660326249684579236710144319457563861492504452616610340066471377017705982709039403441162191398720038860924263975424601131424143117719155846354882458542119249363100995153748217105149432727346536031334791624124758333141306828173578529578580295290671722002501064568570672916511487881984823444524010752777971275022965462271878765919734849775387407963715098676069740623057521250673060962340323318554167047036797354761865206527547646711577269424499153330090132823110493479017112937975714236383809359177964775438881471070949369383807447087641633672992374252412009519835775724785075499192584668579062768547671519873010156785482440349387583197448483255124433124703967651395581671301137203632303719844213858889615414820484568877004429074213136392135178002579988847457938703940373780194215103549001705530958291876301350947332563123627311612579054180689430477628372829341970588980194479194858791912035452161749120793433186724207181539865515891500686235673000589031369198545957024649112205556434674189927186764911586208135577424522037715437997729313494102502934897564048702485926049917885163004294400416273257034920498962745490324158300534018834696731461408218921119894104754401263836849398496003839413244712196551939295616243069415385795495728282072955413148724094876858521491361247620042350123535131457630593118361621372709788169819664221966545097518430654263904685494284856274817080459150554736749874067475599207859738824664978587228893819278627183078687629839989094350146066734124784661050939571643286158853277981025237204157545391748022662038620755597623747787253378275295896416452972760191402372156659789920896699043928571625350669961038446831391611055006135870122422433274899589444924738194851232066494460076192784201475695614347814060349508167566102883548017099026559609884308905780834960617835508413979706528509107489507282701974376817417647219296893596320895603112441528047386192037467782289789502651289581281086525893133105670900262726407265980572917472703567314225953082229178747578994055551543346313358651190552068698477274862651207322621166809064708580313522719749454459321011993393805191785234215742345800488655454194123942976010035414665804857680567135944660428090833921351422240828573058639619363560059228123557016990705272087043650204948529349928243466850719221921171569663288452688778888609866037104871961899027584886375031441278607386988831088591955911391021466783632776436621192101037590738916675007316719060820257783042790228377411872658706949642865564562191053878474954831186167786503597834825517353713153661777188721151448604028950092151272677422020947983806598734826160458239111292760987113081072597810878538131839123308021805781629865046555598474649375900925254583501951073702757347971383044367661573050830972624390822012814051442067269162431499717581900708857446301588733422204685436162175432584467856215799730991003380565227151329534965241515058177733603429589791372066197312912399353371890419313347859732675020212999232391282714004362171012948377075337782505647035265793978285213764241176355937636523033281519231728251357544657744309988153531040392576516870825980662798748957457305218599004988848739503388637694267606235244173391282631028161734812184727643898940459292272083831570795975823539685800891816232071366466514289643577147467121624232232227734328063617588589737810785965482302348269424651614680036497409923911442686711154838815712659118892261858505039851500227669509162470349092135610453464539654692061636488788078290532133202243767172951800580146329969252280372632081432486109632554453346451846596856931753654811565046365697461222101926552394976031439830632112014901157723280598408102670024227630726991385583185380724097007999794770460154372868674999008908749870163963716185021075444443241822113937678871756991068751038223398189617872160284777798933665622336988997263936852051269763810574920528640471544552764678729259554536105064438520493158319347848527523367625615709641964173530395104946545251233429052294422897852218565923852798236217785935136504250538431519719636493107257676702761647108965619893987444306501053680834471210290533237488689301912765663567595754305556059774761706383033458481221044448497321676831871689699680481813843601189610290397270674165290100049698877497755544875477385735176407173348476621794617939531987745604832781824262577120752184951325076024103066827477794289094508827311815623715934579923307870430012614349246451857364359571828650495724419246898649721202428981575453549863614791960185872246565362447872353005974256305738162604800331425780289169427330376015466777926301575190905701645047518463334591404750922105613439875945091609434137527553497399343796990094821671218732417987567513578954786130272005605894149286674147456253317232729467338532639608320195213269758672455241835424095285623287472047488759922037959781629096803376645295986078137487314761858537177515471578614703082052986703116818053553802442463401587365432042274521085184736122827489272152778327399002234448886413782981842405746053157980534535005936682822481279899824143312529768688282931352628267257398776344564580706887715398866026406679468389273363317102143996088208896316641052471602913555894474341135578717990947229160128425708166094861107412639002058542002252451889261396485753443873355370400029238887368737560982408213919430017614869120067433016072606760597338319594872836563726243230823267233593202943847642890985312512776889145013518194108219231631984278681352244843244947607643180215921244976256787689595311979596249847469822977321176608053294852803217226299067669991684897514943506189958124592962896100572775652419270640659002253304283344973684702088781435214278854822600185587104904186553014711419876150844036106182152878239260885259049759817813865946031552399765769706094837651981304761718599510513690396919774510962214255458471916081331419872329511020923350613829052817614193401613661507796175586746583123941023356222948058466118774941769196925267432164883523059923706682426286532874966898650253900289257657488627036766361666815525579828409553877466962297217475515937560243680238386772178817466540200207633405321198439338553138158847461043876575698691130203367355015931130810934656963886973746664824713864089823416487397437436321415271144181679105420922314205433856584522528290937882024720654189127833255593281050639554468882341335292907967670555765034478069222057104580792830714916787215505137730190940141996109184203351353414917483888685982262295989239386198855565788167873836262767356863798789644721611539117892949823190974773471166004055024098720852368462468755376124620344475721870852505668581386803569365572762391111377729106808985729282905858992963201282126777461120631396835598222180515694053212366670542552243661333636689439376088104596059876043505057232114378299236234269646047344394061715284782398658621488211249955197841216191550611903606209578985109692014925213168015668364653859126848409261984782032049773810392426896330371703565187814757909699455425153128660441433425675704269237746355588262773251422594583123596651712203629047085221842195687870755106742472726175256186780807080522970357282765372673973263939233271743106743886484724272950652876735408188209358894456304885249608588464451658795369632096422440412133471873680513578945937776905659266807594194299221835099400202621519520039173767088147194134714264584771244200342567565143394872279393024108690118853373587245659662050863466307189689249053159067473634869686815587916122305273940061617925618061172649436903311111656460762250943816319856417541182601544972345389461420570680518786806521295306662680228044790770657396351264308793383173519019110090108474625268875876524324496279627986473197856572274242682922878474519590428639800403695828488182244680185039987822871292092523840227646862143575771437708001319308899293133443470827057996161995442792044135314611902133898518554817835378684611254328178260661695374058782193644784162032172209935087677478740892067264320358647538365047045290325112023273767449547598736957078243342925419689152993344950476018134731594500917565828329742095492901752443735515222156164249911183987014261540048427136188398475262600756322377277462781164240127355021038438015591607664972138502457716657997849636230892289613687095857151918921849248366641689666731163843798880297443456406995565119788170272625481985227560079625925755559406240827372093636616701857566605345642714396375111242537398719894832805506915663455513598725421462291003277813323704204517457960036095581311542186990499521133686413682047795267346578610285181478851419410016511628116517726179573858896429907284946669407912145602146670399170436205651579345193151647889914633038923893599116809226530367050951620410661576959872973677046210901602131330042876083601726264105623851413294116133658072149301044752416406787039349760983256509383077705220523794609730289399502257711796184189763115690497770208190535696252381330815270347159442300115980047202324402330011873271435708509858647114326768844664411206056171942935684193765752834203521149887590567187537613930609944399899701960666192174412921646201086396115886596962433452330351725977509611651224324273089067456710259684839560926963848345847728306647485947676923903497056647362351894222878543404705716851428064527986580667344364916321344663825151612706360350348200929212316626080853080776922081365211765212373670685255235498964325838368238873355941940269220689282940377069443031913548006686239477106679204548599845331740795328909884965615135601392798455933433794198145564166341251079373407812590537835862015804297091830741565090430919425099837915427862241987183395351472806121541459045914715927958523538695833159607248588688472453817892310284160495826739820159988612955554948881402501533957040285424521902903965607888079722060612517493051168507086744474958662982868232635198040419751552565703906940376043990324349181367841415269624951059070993474548145244740296457140652215648910019133446483596334362511559404834643966962824520135224730003891922756160064888711480332315004748935477078963613234232149038856338652285171519759173253345911879900957989318437825494604147951795883249438846691276793774344722978159631453303535755332386827280249459107338886391179400212264032998730730178848834388657765910404129091350223558793207227327834964632477010785725156560969451462118641547828154873253114829547566205593266021387227782478501569029443767850831199368646457310553096622020221221411060616946031514645574842250178969230938551557161353149638966359002010857021181118742467853920264445092448836596503882939470823090298599332977196523723252849411016257436306746875155974826109848065211274732279009343602488953773450363259957077252837808988054245594462826807144147200569900085419659393691790049044119458992615182520776242487132269880523201295021575204018451250893834792024181196951210864482010386217452018366587740649589573702425271889389634341435619055517803303117786281726666764647255951466133403049506209130417163702651053857893372416750980443750330572667098465903425178366405438361642217973944636484004137282493579480667077956005836288980872329016252094229358881745097564734481958064367977389253651930105053475899060113791738529992588761687859409351496769224407710250298783571781981404785369833372818568428214982659318296253416726848765385309246540243369186631656761807339121219738641934835918899921331323018483945950935152850183647002411712623807659533418722999884948256510262575321512456687101246386226199067510170560659674497426323864931069982705741800098405591114222703539498087650408953705884219929052749285725375605802960671767761108713776246898669391085281528015727427434805479293213082196004327640138401242782514963557812062572765686878180397622737202923941346891867830289052741966124204012224427620508385616262758347962959308735685951509102964319940574095424765635326164527546107236129016319639996759215511061754916647049647839433038997441461194977958466054632583369339068608601566724373380481909326263252371670465690851830056638225459980521045289445457740341727501992559878740084126805450160046589625851911766890845432471183751273494745507914635489136884353486835658431091734164143409863874496433553893932367233945661723172694844352644916827475354888427914324203853776503736717954887110093014096391603727439525224727132062111400541850020408019592780834774887449283828696687686022864069613867016587838024280894846186097879447929628162034291974691891143405031296192626999608741946381897629868469479568056567988533444241798719284998052868507005885464039160460705196586939416047697321542133185343404707261719118773856036999060445269331831765010798166401325683435269029039897934549515050301823360468954378950012220224291821867273876257417955555157404496072293594841694341718200813541505040120923449280322076489419687473176618935124858878203838891216289654485004681656144833238835651099931524141793605123489697060621780808905172526393017524891857322339946323760546390855457482365292675497044264224629964683200960901584903453811108830791365705131592079465100933536424962071250376008930709744026547711538704905650027581334502961931652150261055124117547546202152417959702503099929842875278539486657789716248335692376849406886219770363951999910558173261805244868203191244161142265621887149677113888257783788569587401627217328686586421931955194797224871556104453646541076994797087962190322337177019013299741873847504983326954748192259437307267062015381603179002788248630725693312256131003515247178453233670929311468321157316339672584168464590091685443576037346449290210999624064868741759094818234704144794099105333074757277859084731781878438634986298371249516024661522080370127106634514019656562917638393623542134422286512792297093749644973147492428910753689810364577118265189424234060971465458813513675373168731922940781518596564041481203389234708183196925549289758069566273057467978133812881146754497653204365562916927175367369738026329862141907255977299160648599071256167621852860448880778250043864452772599095207256306808839926402996823919584427829910083394565504269158407799412937086357531337122833656582351546266724088448726970064310522133093796537178335102378910374833729211384148762259539935350487170356556029552266620836812422692923274818441186822321220339658853878525295538567992482192079783243206204000124531844492536903028108247640039103750072905247654722419728665284541454876814229497034394538023032521450776707923364840165135013911978734216182526507512383055699196413391786355459461923937745289134526762305970865841434309849151966546401703508330291543856590414575480377543494710364330145395162372425721525355765847340964236700803350626114904853046667655557546411784101342188920803616645196246266874885373400449367850707743817529085810310270095742589218358723052925476641277749819684819662278680014493034956461331909727375315461172471281169916770485036400831315164988099668186949478240084198679808918502455383889370313279009613797253230358506763214107674745685321982805284220752003792959354599023809591855674303186084775752102783420384065933818621304120011846388663896457188402487325465264316242184953991005568934827725569221465350018613923234129704506069565050665317802825865818621641166605826152332767139563038595175849755657355449417419999190499327719794949453984000790414073495405846050888572948199194555045708685659521498231604949756185966974000837687244268269013137304043000351407155690286900588870224795679882388461297282834249331157838132451398708333791447072815919700316047412222302661245867363659901295922595834819220905472583585131835835600933992124360304784212664976375679003701325796149380767754785944087711447659108815620089899937214718599570480366814283346977024807280439877039883703654425623283348576760717473511611722911177864671883891498391442845784686269983038969106597290208742563339960097090269709818376816152420904350296056435329307824056344506908748628563082594862041715178723985118928153300799921274492354354627038751963768853541703441763585211943068233992375490543916958413533308192636221477499753887824464039061047861571647771565063789287523986006386753966825653304417627246047121938564037122773520547332319276304522181252489494327134376668844482425526049553062524385303089794428583776320139001687154519279999324735962924030461489048767501433721009071354097740225265280656844730317178044452354633942508122338625402094519443447353228539851123851040573990986627130191044555867271178682225687345936549865887952097969171358285816762099821973396417513900052040130398879114021556029899022013582823221602941873939872255206728462440050444160553427795366592201569353806886833627331861206315313684708504256463892630982622015289618001596168769532675281498562258877268543384190616501605512895427040862303114058681091926184034648145601809397004111411896001899198570335230292420438114805197947801974477896817061122279766285465533059417959746003094063315331419829438604855990908912441667750890398227678197867256175881963964730584839779469625151175990840151029646941356326515511018141090115566373753978582030026014016543543402686480511648159340240446939917441917883100160368628582472520080261655721213915290695433944397888470398639446598564649678417978656306191542669294379081727152088725415027415536404717883974855630241989734230321429862454479128895544942647330718010170934078851573081507629614197862848910870938013096351036658852946509459168207714464000743899048416810471215261321111428955813413172836929346318456472938900557561945024546429462594263871596984622550911973361565661154544729508424684120784945178809151337127890716351901101295223552482550083936449775707633241071576035535956723697302707564759665912799897794340323656664493151524919150603635964944149387980723893760442153792805014107501456259372399628118303599602714512689674050353380121865362115261232135356817129654565474511373541700366035521548411850372579416191175863728449894125989639451379469222531998835936916964830156916993686507477292557239328408194540829891135821503148267416915159792823371921847074083571035871311473879230782413753505212975858689836996112879835423768535546911947139666437950087707271115421829326809175097340842513767644194551403339389992437692093893527680393294614811522331316916008083343933843574765336830191757749112369380650174336118445859809700973995958204279470975961875942304884536683383688969767311180340067004516202344048751683695954895708350219154293071462389327876963940090263841279544223037433312151484043283683035241941969309517634738759166268264845384145628492963284816331718276454244455106200796816519574166143145410219493228638206796897842105223454145149961813872771165086057240674549465770687561173975733571781686383113937548716388624027227605084542122285756702612287935299375252183103964547087578206544394979816782692945168712611214745706094979802183671352276625107873797773364179020583982469087386379944069025896403558401483505293913808794490287511943646189826264852411240848074448215265276420278433740417313728979312261694521365583646982869226262491542184003766369903401758313853921145094095221558638315629170766057628396063325845546743178705041399750477973146241860412790139048372292863629947045933812024041555618076768128706169243354171554100249595443673469165227407559700178092949772486967900717538285430806097296052043903921563220766512780382033405410824931905825857539084462109292504674786941099555069215386486749714654531754702995553515700486092139598972223516583747991196325830228725992886768443406596372433293520342897395029613506052348706072701947824053091531856137215143988460800363322955181604945661524645237503026151508484928602015893762877286630442106344996703422290489555391165685527992879884929743730213480763464871475712502299775248362828178396054267886857792061756819724331832488028513827141959341178939661722719781684675552929966760543365044858077127481125071208267601158084962038012486744063297236056705934858304980358322454763270549163772060526067875039967980163828488886621631745380044602378347999949257207145451981928581560221685051769428253240000464411178578111547053469435270583142170161769783941677937342099119875911453531690260871497009617317183337832397984965090145102520498968640606531952141465625661864412462801063838228057701715366237603690229045578978947970885963025862006452853556676692192385874058230757723393886217033379599466369454341272610143235105411103094376293295507996556982862829926288513328999171406658780053567315531291873487137321824893463233672270790836722128696184435732254769076046897829764777578583373066623279523624149379557892522602819998422756284046551579117242692820053149883036029135875021350649556944263249086536403843620573802300641793413808148352052005149283106581378107485975580655373054285228242249924075335401038489211442203454583008532117234839730032623167146477448352973056280872498863348475784530923134203840310592255737594905925162236251900096945035364822303182203007075340616697479317222779330875865998747996027233033082899187257222019980765098768987266045985196529864794663907079046359612901460756350068451775544116827419786079467605798513472325095442500217285987333021973338083607621393340123724353520398293522187613454537613145386805613043715728374512167941151682818802907334096052400556396563610924208938983777393955484588582710363192704007195352725226642261386124702569738712737650726175380460989620074118084452172660682279871705819391535276838974747786127429880901633555131409787768392692056467991319633688678299845256420330130536647519452691140447494242002894811832418255165552729223226296618951551534150682109045513469429078461609154106537203627751899324174548045101055706371363249054987724496627669243778389009511471479582214975824306019431311661174380954935092676745566074572373212805768543372328738205889263342898762108494541210980630080960969028866479505062170426635978006290310487305192145913940651718744071029897093622499175381727316648414270358199968935895810919589887505975024524872634907000185283562950149655658211702027591573207167308857431034554428497991967077116815779869732683673713456027411553163884973837003719678187619578104353593957949864522479878444050871993534845341105150084706376977802783778668992012104063889447302910946308614392929552774982493110520108290332306913491524033736799376575846330619990456504980966683312119506445338493098850813331877021688493680985056272566637940671840241423861530221535180571555599792302610055512821471981223473894490227857049054928792756133375623414824985383853062088027403993497327325902366398767470462112589441617343130271063233087066185317667535527481115183561552327362592440130743215794357891858247503455837483930888772062678932847379596025522654391512812258953826440413106775805387734290987989289296989603108178202657150295921730513560441270442187499951172910424516090198252730090333538579460659239791886770356905418153315834090809335890874103795543960216835379026619778110865727888299117427702595105870043559075194093015902594040329305820473560714542253159443863102648983201148430128785905557640583689479593822326622899730014285943599392115629676854758017547884070892594559300214537431867170555226174418182429988520260555717085843606021579620162262047531323926076471736451728803455315836808535289874907740971384118557952301270791694423652499439257939599410443763140190697795802800933703152878403272979463339543142040749931382900927321715620611345974794071881530454517976256585733132017135598072877740458029586662156798540203404063471586483437954928827620547619464724132291394388840366553819300191456180532362497154935156271398873248853154036070177428469080167852638319909972570606564717715936947021535854084302698178586526484354792424378880604425914758000369419654400598331383025046808774124827067336753375749831722715346134999416005860222978184085262769640928149550234983686483535731595703892062483401952773404997167574929160977256118181069716389490077016913291481532040431160466154331439155019172377272547461217565422175815940282073015052410042227122516994100217484981610592621707030417055794255354524147250077958273215819805526199255793813909897018139414933913097992350582523700520275122927249389626447139880234523153017732278683788812047842342993786649346567560803466462297784237356875994675216238637787377576792935814655742569228717078759938156791567155477245038983126706135849649314745159103748068313862233046815344142587244110470184629929755818594430610484081197750147198160107593219487560336953373620590759046416463894138116144625766800135478632088143191341413841610036611498859752070107341206886648863975577804175026043589733192261941191531619722066311787354910743783431045368743745165778934128814030891373371669754380933257755746539051544414823338824164916048981525272481208129317785430147577820521721626219833505021273547244403942780237218278522991641869908670172164563640773376606994827661488346864026465501721303812262039552133269434985207471586459533803456698082805298477439133746254264800818976211065564818976976256174920013689215421372539850113788210234830049992100157645263935923442250384515287993831658071667857843154794772486591186443627102801585900782406731471798960412276307106694605254565624296173043452584229198243295346643566142766864759574074631693902728405259439867152734318995390994671588477341438801128847159386795443988333470852059748904958021314442896591601418816070356938802126156889020642183560807031481725838157009645413791348197712704788524338515389458134705388987464599051993985576968957523259444764149499204461247376346461685615204291789748142353996271208478028827584933823724944885122522799608368073445986221496386196622277822392841608151370290556543849212781370925356054454219457372184892013900114409685194888281461242284409058087888697456563936977335139271467305811029457451706621015817192142620014451234475245444150900941764346285353347869398604839048211593846337139383999830310352489307737225682209473757919208277037307345206773987437559195934789062673276569352045062986373514973228954907697993159823900885521515343232115524008835678829744705605659482598424599557298415864776006686895313220731214646479895983219954676311859371493492347242893173155874832491805665093488047401776395697273400345546198588387580135225212919228914979242838898194807199163517966111294942533234261858581320718682598693212825796915223568230528689069106999437829662633347550391449285092206453263501318949020854079752559384252032345182283402741321354301858915697846180515789857924271603702744286276814937170683812858117995186727721819270662125004023095684365761701698154861996777639566693597833490849676046047458847035558377932441425162237870596943339692176645600533726978673481959871255535573351509874146475199491469013697258733768793997153938942618913800437793279935669216406142240730547206257793934743446622933411226544675297669395938041489333953757539877487063560932566575771930806546221782996909151634838748357760592949601654144773072797394456295680647617987402275484100873059037225898994893443182205891222990480321562443215948953291777601294378692725454280717065040635262468808581837282913780057770201959623392989697677757671793391209667402759162026716487584025358893271786728004075429799279442334167905591844750192633159126895600299089557276747816241266773519319643302274143490574979444836394839713999443518223354738639825732287847815966338025656908191160616116185892649225111611546772949605139738684193260369091443584333838104975336012761231421433484100497833923765677426619007807275689515720729161971816089646952760246169219380372588385586577951201894303742328723939078972021677840852052369570900484189901160433647542513997269046327942869969132741093823847951270842174973331376633904584968750353743153855730176524904501595995018061242947486891921928914067443392501065628726378362039060346809661517209447085152379649161940337333968525155901050273494573678147454688334326818249992415111993993653673991407888331809418028941443261016015473355442611159924004312861651742153634831096886602519111224793390168467815190155280299434073108056501654186565622595542476217634633544478240864374751329061201855076454786697899153758863513813311569165151821970580626207161342543002869407562672016872490056111513581564018929023487449034753241609117154659492583433233043051901840901305133438427012148706261070422395766056658557855538611050978327458134124677298794220432170041735720369931457403868181193943063067181949945251018068080686642265080846773202201079147515267699474989364853745152643040705851978517540672330904369681564585872366958930399895288132624020611427067775406911856369554069263879054654045780031109019971996208175850647067431809465053008534710355259935000718391856715361331540034589085092107227742476821511272636709672913164862003983282287848196570219038482998519204307506265451116385892385335040890154148399070250991683088354612809077005165325826367432014948062647955429863242387372975924029968861253757798987226546590113061419364765553874520952200345902106431813047957957135623474828038430039454244608957598694457191884963316229888504173408611949360980446903534524616087300509286711769700273824833775991072915376909513670843237288197164077672379391378268333287876320211612077062435077519508307087759026603400518266994988437080551749715589524702599599163660154786620932805239052834029780018069543447878142971785507275601723045399653229667537407299550130978357880053624173900731395206385507375128743904307845172226322579350472943659776572569092446073982017829425533422622875762922944259353959220703523984908963505556878362889849898719977494196528184079577894910185020848392305999041829595735917911314544833381471602145592562480747102506598464369347254408752311178755574569288421462550236396036046478538296271728168114857511835702600323894086989725678589453872085236483579755750359321787846520792407620258603434467953517640989411366367876526467147701188437904478607547928883978192739846742319047416262128808953143222060299932873536315474168936637426487955820141162559674772638951039290216223902999387730214603075374809113624082908892112196491553577079010480074229685662454329434761155642239330928423044165652063114656878321408872013204027935625251856451910522656346479720479413333849869945501164904842693507162810172363379264703360722096966760626245954433247081864259719712963238225115854185390007780199272628738122111537917604643866608308493641749467607685482112357824514704706810909700519212573314505752541524458806450497622281894660638287191292126623031040857976669214257385783693911819704405544337374632993521332778696175735725042819929833728585072501067804036952606187835861334979950966202219433068826427838918077178321849954449765730626075187540421641510462321583985189235523660585784807099413091130250730353684107669306984327567373037289379327126660628546358512888297150793052558930170217176402489139101488236118681624753198138611553146159397936391404683065680898864015981962545329925979237671168761405165474121143583951289349184488359525357009479807327058045319286344551636807026046786428629245122322779361304075904086222282257922624639500359104262100137762063849051784536906586871925657920317061028327334056677878576335663314200851151179585993046863413750548775341581185702888510025562247591560359434669119327608562463963794409273824925027535325889083366543545721407681000299368735582319600016914869534821998127592480121163989170322321390451229279145719646447487105437481877955690614829929228541017805855365728315499916551552709219033992786320332921887303679979902740145617269129457587285916711684356809520007500660165317102382926550965031827064347898236943795071403490600323219584241370294243350764864654685790296836969920363499152611060215876011747867609247035941181499384807850211857277314923380757040721492955893433302147089200683778447927236104905291447571138905307256264153688876452858877539200923859783886107772820325683854504815708856179371530186967275068580160683865165502151794565619051028146712483107997066235237505886885845316684726788386312853876590797101519369008552144902799833997572257188245527709893054083349939284798127135024549382570255392640944987717679506836019950685313051929468644733381612002057207667886559374878684035724721986559850340472186677498526701585263304781356751328419718807690986227282411954783102745363054206041565315609971692121724230799121175879117602703970964939075143203864040123892797373891288321265696818697023309274417249017504965633348564939116897702930123846262484783575444982058894098576484149699418076065102910412865106411952352912202693217970275473844480616552508386764510602000217217393158167897341589627712891986868623912660427718842359139510004653013822519787110865142168731242321046576669923119450940302407393806055381468187938221394722237863267815265408969821062092339831830636624300631480251481649216230506206840081230519690037496412374516314134790655341423271721066179264215246089780771255738850164579621212267581750755232442935020005952788189834620246784757915355429780181710087989678878232746251790935242323820940509178161293051715091638768334265864365774154956392405435968905507950727655206769047921945281562826942981639815795148078633499920660073197361361863060613083612683119977020888481411371649693443184128859115358190085021830709466024423174113915439949216632461365563078468904563850391517423120757219386276802456562290479897584102451660613129373302631660876944867332807037828668901751722386818418935163644434639545020155426773836032611841643903460401878653728607110378840904429621510489602093157112448528263282489122061211364868710314762171090103205568976553084333665121482543467939803159853908603340958556304512838292923104101247726048994342385717524382361938903298996108829678158411517624516937585339277165366922115050487196785573071173291182549842748228748915996437636594198143987652490545179909310116182429018549856179770703763784775033072547988477775316074226347424408188641919498447241163414400774262813785247646912145667079834215549838894027096920297795039678064823372832481746937361892454999119653319685555630268417880952877036196617765124379826410535935934993352438683353814814446768150569612261920306085307689151930417124710675528242488505700501051772313140522010298196720178412414211836587822177144908366255351343066281353640837877802253465573530750630852260301612172555222872962232060183013979973442430828734584478120557924970615298642862720829439734091269962189409491341527392991342654656940146142420737917466972005520797579293026303093442708783016518122832453037405900685280102256927646559453821054132977306351970177326230093780986698918272155619388810994932659206284455262262049196061346402580701407309258198670129369633702414262513713706848159953385047815331386537489926673586600226032921399589025745810427722455262098891886554806700628314720249869796719821444391595226062466865567679018050082260106205957364032695392316665213804053264268448595402949877965173894413050740969136342412666607324997135359847948330006014628683021727607451414067948824240102472631226110986009880217361432348727147649098604533073951910395011663880442792266504858318040918818925191526209510654099399301270060979577189181497088615886815327618431783182981842132756911850861868462280285374463145277104709165470238020615203951010918018197026911983509000283712188953544187096010316039739816257751325143564857125125825060708619503145865372999254405599915191442066679000523199135516098163784684601176406364033409868809937572966177330062771764876968106834824814850316204089252401719944175944362510991467728853937459495452763622457139876458620139733480242761016377353163667336326782645901410753402909370948807292305791584246118456029698410877195167801795398701509128480764221348627049939175459163602761102603741146841783779370392953101788006507736059744036060419358299480315925435012740184341107551699095984906994659882108342733250671248820942524663715677413905117403064129213589981404893810024096064379360770332743275881827148661173309070892450481371230687683641600954625083741650696067616980597297678177042138842254264018469332587270186073726818566369335478203196921588254821839329989417290166960344915809110014304709828709651398219844692764133455141593307013094994676130322886197822248548350872911543386405902568239001306417268597574085677969321071916650127114769823335703932740285375921212656807596795814883681767548211155492331256678230207923062156041664987318931243643570591150553533694021264342145956980029542427856690002195827885262933430399781414984047461320912091580310145965902394667278798496425496809054910229422360554429907770869879315476238861118802874379640545154129127768783868344379753060909645452973851786912777026907591292959540517161156128279627475408480349152830924903550052654172901177526320930579504402000018139970347296851516275620479952932603192425084247678904798245549281804573031700273195588390022443249191263542285067886344746828011581615475889721903201131984876689790971356258222296699157755910170078494511137627250215484802014761732465838647565946367285603432996171126556313713044890711931695982270585727267519022650672813351574712393047655371986247438377045365543324661726213268348539147529784686648416952546174359284886241022733332456318046865438171360332076614418403859933915265619025916859190576911039675045900482567053743011699500552461730999249101314866812681052611803620562711349336304598150536967050410927426539991180423572185335826530482697825445243594042735065930033265406866763815303217949820379176801595354116420045798512654687159887506637150643941225024223451788336221154085505861909191092054507460265278864388946662090206662636290004029245671092949858670287310611248970492348581955887292099306019200061709317572070307404057426197829990266503083548622506458719559767527725826318964123738116643537695183784436741249925118412551967643119432279513853452638856193588232468895773213710746063242626943361572989776849434268702749714796721461731156376898176806518602560725144356065163866287128479506959849562336515035836894814789040058355113818735797818756351794243010197398125545564212635210298631139337519204344471034193515125033314682942850355120219797327835494386694684840883105104503921926784038470297558494045276219144310086258413972586411278528130282684667314762269314061055909839754038824762429727478666760001148382630469482293978509407088405281186610408934435841885906343803666678625149826036608077457146368781055163181937008534828400661677547371557401474983405301941090833292946795498213124551349417136323088402498368818701594896322752999910922024602227190339360850615024821424825379495139566779630244718789121087931246997977146950650380366615512240168561862465372463776418777548921836948884024028270824406823022498149969069615898588735630080850044213000111990066119525886593121698126672652978061950106415503386127513040688031496368478656830706254773230032797240071119660143838239101686875803846679003702498016048716435974411007332371619165089699848033513094571367322346139482580973108516946710217849331728786966476298213852685410499970194496907273698021686599515253215192808340459092861050519158726083381791056196303069632469124994210875206678904963733695015027992458790283594095480137725135946243689017191719396549757911545220351191107239280651860866998008405488564076053045257140628486350984112932127241789804147440886415893193928324199387911720854068760902965367796826612563830672741717634568920315487537680419271438236996892241499289169678189474519803661765200585615748160714929306053333373682239698109714959114152238226439973833527583435643129380778186762336857878720383740064911994291834399631395473400960917038970081912393626648554192775950616016927590605849012042225407060175265464200311267857646089070421892261471962477241842432990555851234507781126910092803603016558246722902633778007630399922316846493186246328784158317565204922595774741315626771288602214085927853553733747195358990398757933610219490678089436991298219826164547480585960414951677031433999893860367483717428720802520336154701910486349764660151645641962856743986800769824887147407160792733849933222331299091584711906349988084833625065958967401559337034801223118418964416091388990089440468937676825930226290678187621814813830660293496394873998635033509619948518655458647156970098293745872094118853917113452467864101393180745103010104018475421547301285854154964117645435713056088166652239931187723745812885983697570287816700497876731806565905458963267466299536624339747552583056198388789763256320098489372190960189052415954570972639178924061272011494405514095780564241837891707186577842615766944797085166546909300055536487318584604533047268587030458556237640825060486954369311655282358509566859068789813091642162906934490928555037003615097214877908269407287772592641852721587861758645023729016223059016124190238523047514364981972162680369132033083417829532999622915687464245485568333740280255386550648378477810291412961164307855886904837493383815350626723837132177529963347959073936959127865367785698280886799465658735199937373752806999902281665554272584267476261426343881187462176234197577776822896084714839521668268128575905915294479546847316973079548450496871762059783194287255045266999245812820809362212859558363915127827833435906845247177057324039129455828434001672274711257323873817654045729669893094409056583589580683439243298425914378190816848100879746305782526688965965749339774696112924051747037107098182779732957626059855799768446776952648887920201957138657046195480994857258995536405530952996285816054452058373043147806210993590648048183753932738489209556905100483762651967450490610385562805387911618534938892720634055499187265244143648050835798511963926850372540287087735326629154485966125410741990491996466491474717713043335141741544751441529879433859908104378748652444909530107959981610539994221865971247785744209587739924774902827289629396385354426907642499436326469300414972670067936644929384791842763582699146828475406528578676995152803751996953096865553875438430497639659957484947818019098626810289339682291390944010140697669837149545256735712939239243159286969068153873934477662475427590252001622953220165167807310808304958998178203944276066752376640998968403986005765408657665315290794669812166553641659369274322691949243029743138887286431609921782903839449321955131554873623555314852116929328612796616512188462157873966058881437357970111190817895799517909157001649690371705023940558263682210763309958075759644812591007277306978476281781763852213869439634748890971359781267168497766059270289875187478992676898077934964034783452442625493401088514347494571909818024463776562511588506672091269504714520053993614610915563642193327490380588004191619407752040634234774775565587637677702919778946443825841066035537599637148109946594408752896868019786771480450206249128670993993721158261582305256444726248371500440717643924505534354025644528010268216575554200000626399551307381036573276722814281737113642206639974764393549314337000274896978407343238016936012525770231581884070375331289767645735338346461864417206843300371161496686645249235580360144020160206853410705967339194246275378666002758713054969159545781225092023230070063615544064879223950403848658873123495209556018967851828381192983614587942149136311995449036006468311973435545466239731460566632982558410069114472451254121334666422548367830216115800030379461046609717752308804281378411332768436008358183263438684679047579420349857598060580498128382027524173928453109668271157702425760071291670571185096428126240245744138522519858967843827278029855147304862046521411002536186916484889587730254097233141297291010521770298038784984204589696276242568587134073371722379856409993063710191520872238299270989606920352277812490827777685679299635157022992181225169199622693118158472455824269829131782613051525301273127051957626080335343240047587110870251045383857785135866050629670082449590326435822648627117484823498337486378729349238865733473141052818974735754313869250348033428065114539129185511525735828106677652608163071809233276197323965327310014298907706652163639488955558965222798298318927344768191767976350867603907226935536281745266559020148711011336154205630539003381486886249179693658883738150385992399086831960328593773530980445842028574734479914598591178957122949722022923337433954737479026774927879992909978162015621496776691406789851292667823254857015888416664289016007758230786396945007660167261320414561149922013335535457065718207915478550155482886042053014204746858466384020792117609786438023201517355319105679319270365778124548554571192659950840019213614014975588673712732970488396839772657749082367060402137845496021792288228392747753188280769284984584185810918260010097048909502271596439510835620971744225871125660052078868874665419361861667832213585645742966644226399515397234933704191904216576065284884654181785743487182712620744837288549057845355474143357384225277578350548547728145285845699272673892366104835858953774783628647333091845198242220507035361296221903756908962488822307883567280553431899877402366635842905676983074347969202157521357689730317250520970141737008069147669839392971317211760616825665080402270350899475899453324527468652934891809481159348602320576718778276117715089365014890202552168765103679935055273316428517442570081274284407478889263067480490955601437969866416064132878416543645915127152266607270093917078121368515403239465352108882327029356102547902695111139103197906517117989098147187053368631025832434277796217984245107825514859481635435838061877513547761550862511524525316007307755551769684688005204234900033384788246122188780646472953237083034404788462005723924287458026307497630588082865178033198928236730694080041631791624089770239516939187347679731919446693451730642743369591390989444247863821466679719121057339076634300472946156249723819553905915477249917089983223184202232249360998215665130552334301970363443054815073048609614526666100515454529143793605009646366801545071270601812988496716477247341331640372212764260623102289360703783721198262716913805176943743265292906432324656889339794857237340086136162584738414191285544006615064648001113167548859532636627833483720738815326979828241066995023073051644214037231559513402619196428721317951920341202144267153917456780196737309914248297738352018594115917630495468137890292278268930998128658807673452776358307009781245247678273552139250823395890955667892662724030525661656185879734735459584614867361940141319699142248554092221245673498767735437344978945529786273327371697000064030836946337806600399249876959796446247104254851265394565069954513100300475775640395142400107487111968700624697154458075348388398477436034377242339601077481445945373867095829135788434248685840609749462318783664170114144216619426701072733877760756027815947989656655792464289863473622052719474146975162819107592307264524312237098563753419725472920179682360140758492915848187901291189769967960018028736972158799936989028334199346564696229262478421606667888412771877892436049520668915003763503667932050333779437642414057675904622572779282661729204638474596004779167781357251476509652752899093668811045580167245166943077373886705048720160597236325904818953979197104357867219011261505698461516702900110026599447458103498692790784195749963727521889690810116988252762489249352942882689534601912079989343178529830808116210826961229973939906026865682999743124952551474491757902438657670402986003757731176578643139884585596811080715646971589867257207930969450737699752352412960801048900411569531937546762002963201022226597664767441206906576931157140802453017984080329044780028770795303564308279241988490331995619320105911053156470381062471554131721079962634861824860150747778054859799200602761133771390242382209069859081346413905151743755160600870393991832038921433247144320525883850566180836464548107537699887758041167491644308571168883342420728125120737550908817745680303837168172390606569590731350760056117564036167884317897268692090274687005483348351802892712875704388035082793119853546021909789107056488409161883463411805034047560397736612230442846170262797656836216156252829344181239397684499631433545567559674831229595128760384668496208641518624236113081051158431575850541616318325667131305019702260483726029372508219020355379308259876502322363476273100332513175491425031396192565207146883363131408835555310002420062092989565045453280095024878837627636512533160735127122778732227560350667876531226859011766390358154416448028391598054982876555987244024142413213261583226767861862646607755269247385376445025055405034814557349487751958403858933904164597060285641311376210477485972492527599253982992601061199853923508391186944738952831556188241283096625233036426831986363345499228802543427424512248176962369759039762216108445121988459693508927437734210660664233277690298525456559814713222790411145738597776410006972749336530444616696005505360978642823345442494215668917567920581047677060661546045251293809198073871454558941983817062345452916530766851962194296039201471160537534793433136438339024337086115789059621016674542055068734600388154400129176757578334533119681400427830516897398530085237841987148929291404627304099300493159550314735066980730643345377653967598633703073439554719252519504605198046314558113625634226955592070333201245101097120682161154913051239991940286795808290966122212839220105737566787755001071383631842598449781262102869697000168438823604439380521471679282037468853322923403956245601288480256900035670006466928163804161338507321170456440643796315711169954748338449109187625805711881438568548590119959894635413284022377609885689670064738519956090503638355739179621229786451217230284559032739258225417678113340735089992612733916981592953377857980783128786217521326050835675377615492970705889875148858027834519162547256150125484783683752862457277368836879715838514913842053218527612001016127021541531622899711467271056432875939878133799338749092908658983306355232335739291882747239891629723459665511866417346989354489876401395806292076980711541160382608899700500264824173231708308891470486289190678026707190991724860026265101740306624444915174242968122522272975018232248183733385309012664223479125892475928853824308416046835415857829228851524784215832681587347738257117417805613690158334979757434157531219459913740825370297835672485096805762836843105653691252610983211345623728738057510067017246777427755719816511502614069315178807014731327530645691369276412156902628279737101697178258429040274818862710716379854920843772066424680164664242014358589889924871461926922475195068490884223932202716036567131051300430750842240166779054388931438918668466524113362274580634269472365559512738200988700749934946276219355055381973651548832238999392379908621296414225472246853580972510071529148524691434618848702791325286362525955826831142582364432852301965098134649055596738328049338837733894575823492831795953792789058809622679836629801315325940155507859281144731262876443418284487577951745080415617330543625412446926735035593012674621893625333264717232821109809834973643893499262381749854466804277061460640814148117975344386679476738545074322278659019980617512963888300419536411885824897317895620738992624828889589934792693121449740454065308796245494525477712908266182072276345099208898028551198931521588847500556983454957451084782778545912693035836916076302862999432519967154337205467503040552107940187811254481582556386602077634363773164666711928870396882719995048830676187236537009586817124396740044534934984636304490973551297078464714396692603025480787674963555803274198025399692716459283801723673265125146834260695463374874291416281419635220699453819333053348584260002515812856587117230445062333562765736220801207818745066885881246135961471815997326893766251959494428606403973851478188487857906983559536476456872050179842738468793819248141854695070984313741222933446224292469344690996060806356132176742758704404556831569139123783083952583937063377137944238274849433301777466365644028684820267377840483784529015831370202228998640815055430037146980387369247953253248245806029318768256001208698258514817965632034260160358458282737975198871292050156446028756966959766043354464710941430343398513417488826489848249295873855691214885594915152225794364013157674326032903713479746573464593616224661411607952127952670902260463165709589286852951479994378618927995897850345197368039595024132887984575250647621486392105679366479248762923209666387886334436762856492951028240839142810880355705772744015677831249679215176127728067806100201670397188396039457433571992679445561384621089079983889467618286811695280736385781798383754026108086227000381486112695199342436126911583528045521679826121179449986025041306206371077175998622464920307119222280308889717233164269159197482099685489039231349187824542661867964526049225228438469656912533844913165362404096663980079230736429132365590691875233807350992564636606635406813490679662859781074575781114866449390766426911928596189031828797371462949015999689732028234912853549158473485185059989848658621773572865191763363396341581441326898776846429624108988696194098815306056287021815361525997879012081934638995337172548146526534169167365043384063768318297708951479577473932446952765426556010813205544451850002763668665000257462348484569688021194920535734057468028619888851904410839731061045664828699548624423856286410173920555521534700543314554972263925140896490071766830821231851285926965211556832296384993672266833490300635208140407902296105282201031621232083083188937778577070881606218432153427515397997115299169558488795972351962637531886457911918316082831822254448906512885300626184229609254986541416679533141001667987417860631608973972356151971765990851525822383243467595381659065340580140375219240707651203008450865770455028538976835887919870882472611164602840456905841421446722410679379118216265975641854076980246916260273479025356410284311740973346406264241724432080217300246273146556560291262282710736831544920355364122351550628723005486932523215410502889561197743782751105095391509956019536036545874618147333857046537859459127911021385344488318632930274126660397931641023976589100968131499094541763767452859366366022887978571896709173602094866855169965485521916631849602190358870711664673919720259938875431983783136888888911077767218895541623494323430667327163136816390891136009605131427493863605585235939277754247561913969836459663265815205258322755078866048153463498635369519843358724519441317145074830415548454370568445323120092017719906869957901341505751345154410275058236706880722326046098333719465419327153305311091798168751978780661667662515526834680622249548042950422686916858547889627096706235569010762186206531708402700947668348153445227379535763855527490455734559844015725166978087037360661294930677876107702497548364183455168888437087223765364754197384348344081356882007650454525296274059565474395180716024355426749210850190776068467381248436991640713926222355011561689485439175354892070066017823426832599088661103442217751911588941990379135431417825312906109823036678827735378545630891290327311168359774038995359259654144736513306463321805715886872595394515886494576306433281038359028543518136281679231917627256243699622073608514234800088222439168586664314027682481550710791674111846177943729813598356373381119628473624661572915316068745819234418965207424803009883363170975599559467133383047333564796098929750544278526097826428959629187265345134023146349658364367875405771978017130036640458239860372977543969721445130836295267228890522295561007191049499780125509086039392198428582747142706224341412704089504938509706173629783564238896559289579649374239209995578039575242774846732398761979537792970831512203291472883192516793472044076685192615151354188651518797899856562896181698740526926968953244374543899023630263025124046748877526394588840382122761011596412366390661626524859520451547084842499732267648827874453617253728376155097797494995204536389646232757718206150654808883917280279798149480809362420462935641061494745963402929026582608785081057796423923509218384455211307093913892204270815300972997644386464923984503118882177600333171630470385817903986788932199187860633528089305864194778845636710096970274567415805581130136179256385425558649782952405627883995734840166243374461657267035277121844717345422464772908359778574401898184704858300149937034510947697025263606537266465333347492682889833313284649755658328046235280435236219012339836050755941879415670212372691710821725776905214845861627673082236023575844151493678354488010133244850656745821828706761855628410493651182178836018776486064543276316169310985806306464991247788843603235293510530021264904582713245564407325722273872444875805326740838236015033738125331123374423208787189953171159113975909786848055602798480173284854011844794072024725175942739776712349766194581672771622282784673991553241911917930750009078208166818154171538918381366179681961811843609380539637188364410606064366949464479427291361753493256168822726927401709675474955960094482193062051443605962362756035726062036182289594996478133006071834302092458601899931628930163953544961547377046118666562854095040908124852510885465547595649665011333566095366851810580317834374863469881188071737944481608990357222148327350784278261782381425382528617495045998530212800311087319502472715839598754216141978804065794469247434448516052696002119852186784539211682311466859386257600447582999796854541430299157172349726612639845196390126519090243851775858829065834544862951483981495361617401340480401681634610829870343117635715604259306618796659050629580103512376364486927084946245731213038728497377814978623945947080431348055320860006079754035370959388706649913500865618246041202148721406650747756567966063441121390062496632052664823030075508623775100044554915658519035303541327187134744879347575627159953327176815307022706103838634409366710234893386180257568233443964621415212264672907126453769150894355380283990755462431861034851787706653440856905630842054621385288730084127163861165109446971233109557304380633855936851463766808113076906486623582637666577094105072840092271264462224208434590877667261987543720624777747909257342603115323693017937295397163683460396103837673359895655759131944808696643647371852027198605151152586603601628289816026186668050203355989135244504445546606090267060357541531798287273910208472491026246741913990921519259116911822508955708936045971329732728365989411321259686430923533704891882910127749330332326895401549281340771431161758377505607196367176271338020624890941225001432849077395248597779494220154010153723281756717478469453309412665598618087423744912793083520976655104434407723650906553196148013298821375363668221035965446009305732487820526833136066949184951896100771293332706758937795289267934824898449673665263005640060337802264557281661073551070249984943764494151663726599242972141093800275077072578997320484404545697117924963637709783931292758239440704702830363781383552778953521905234852266469067120107814545682670985404939440666968750159838301192113910410759786038602782280054373087508696103914528351606618004074446783534062999775106064329352913383231986214559321476433843542963961387310859908848997185543980743550108471209608673803040151327280761818412349299257054671607574716062043533384622596465665884199865933535462649712077618389197730214818613833118642214147830944487113227771765078015723323518609746904871953932588034096067824597418861293867296785331728619992234566703368223347694990042853256973083955421266022244753442341339168420679914122625383285270721699353183354790630124803010873281504918834934011912740475283097317993176303722350366974874729649253462426841136356842832488846784451505018422726030771049286790295095808685060994007689030008744360683007447535880749183097484506999704566262981759800404819760522380828520111533551987608920351116147598069645056999378182078407523923289822863886390286517830021862788394051554644575230519712576116804023194063033090245887842106717699113130265317715013115416198314532424009323418678388142127264042491431100055299424192048262158441778547134462619917486462097693862377892533111017568683496893998759661406868013151409506499689850314597042007202922624352353956782903478425387641534823772422284933385508167579160051223453271039180572129118422697239090665286128651498844262373912328418343299443897714542504941280216040474986910080158692466709278757273935612946590904336513516135867314405092067158732845850753714608099026341251483269167307229726802043076909228345238060730481159133353613723213494078606680748029408768412167436328214397006577970792575144691961343832020720762149523312135244444779553954349030592282423786921489314451367966074365423804971339947523775789003039817375376993881749410086267904127306382486575184716690671038955241324440774294984584277280645148211939753698275739641308849996110974153845008288801109771943759628364892741592824650011593185229130056734963957092122782856800753572141275442418887662734104007521121748038018906742611222545285536093675785946606514875981149958249262988254850271009160427885583503758710584793328620048208732208020318330371441406382754884916432063148229298839737462381768220947421200794470786892101202084284359786452234587771929483988064285143094879418630419845711716496306913956863815955715998175386625138614220255068267383344839856839873779426941552086294331273909624540675376181355215314106180537095692365546822687338100315637821111261999683419851217484757323702316432033109558801002983630255712490800802666206713740707221889142902818198905750216238818160288801562860745322959575435624558057677644967465968503070150282161480894625451189448324885813624848191760256977407947213890543084905260132616834395807090502737908536579793210079822793181107116562381823762494702858548258917411276637439193675767314623927942757476888579742325846745180320478355776860386855884648686341906147494582239175634342015452166650521604904043715908345060606019399211694671087662917988118766577037655109518079124085448240803440221889332715191155693727434287073723969348072628081885178273650878947420138497467688195927426566891579068581552171771314613992845717624083295010856235786072746639225625262701694498466537486805017617057353770063521726134319654283469064950057009236145989847604514002634328288075324228151455852976636210489816023550530951971883843863799489455731331569222720687590627084325497394050571198919930776529275133535145971455729103201119689235186874058499476227580205123380847420537985327887209352877685382817101795938540048197669474009114105974023220493079547220138484299098795882116375483379699168810218578067087588730035196429983542266329112189045564055676976647028650240969344909982946504821373928314394560534529429307934111218076416286746153180183783756812408874500073277685852282055660421200295369453284316479418068502076121828930637813149857926822334482132354646933127404763189550034079518152135368655619606396494838112062793047486160985528289776328681592220530980152226905822046167097079767437294027059704480462400937276254457751647604484350420854450109396372960076330161699392145890470243508707427858074022081075951770925122208013727794657475865791528901252588135382777086290366404681329644003711103246652956722552482035545951221270937496384419151715282700887298597134527812708682981956577159842297258627321383308478537525173840400539320690894368614214059165514107733640221670574504780341923142660722231210887358201641538728251013187285569653394187063326710230884488432171123996836104009011073561041414357614840071069016537783067406090769669663714937134026976041557392545903693334982633693847059487902718111182480563125936759268168073256995902823325524575246284565959057122557750345212412042740345863652035506489774572988688371881450431389255404171380513164510718068540784944119515284187707168375860130763656862077623520274182477088956101769106036921740597467494414281905248885356264848978012592881397957740383515888063604852854390296055885576861500725010173693289731820174676494045705149729619575661416701470563185737842502874594911361676651986260630321653829152004995400400489345819088592574517837003944980187682870827204918274212579791957949079039028533671023792523707021318835690115148035788717243065744217247381591244735500006517676458709645686802330669125223342426467959583720164393965160722117679923531499240209269438457161034530467207285362535195196158500687685183091840282452476761732921453353622165169649560547456322777413799040021982409515764192155865117216390723128692710586336068773872508039951312551634373640274839646337976893632934338188655714003332116401984445958125224030490582425334265497388977012939365129982681165843497248297803531047220405977343590514342714127290954783595642629890741801956985359634052286825749656080363403874888433936164347993204761797977019571070774587330465969980169479275583028951604831406062409864680952475637818346978171110344459261707954791440750332325835269479859134570962667957409778008785629149177061412983564373876872537853682745763721685161679868693702169912746974111551063248821571628698976215386516394959195536717172771035333350197240294464565683584442218547625574183328920421141351841039175555969335672213653297508859276446255186079131111273006448011726395969406761176079369539200618831132311924714897323397050699901863581814247974016755249993621088012212876259912815802762221068913322867314854742410021319743976229784354515712033617895732920656436076639511229026572049159796531429038359353701246577752696414631835366038203617550301274219692293593476308960367532197844724769848530395315863510459669726434502946278865798738365442229362026490101052143733193324160027880388850794579939054922288842290260907629429538088597725415629414917995264989085320028869093212869836412775422094811752459059298950543591229843956897834198577595882638022085300517618377618361349245322143938574107098166936620953261257431174096103898642776583901805795986300968758783849921876768892255285364464978375646759915166583438784333755844274275351039243714625330784283670775032529952262591849976516134086332594558671000111598576047312893723798151017965125925536335035289026613256895574031675322913574482350473150354878471200385318800917205233703223368727991299507760798721480683649553625307758649894867456164465930089726155210485968012165201784328973321096313602966251239853952937447241188689953794814930611052935066720841685012073793096731484756630649883722976196567791336530783557466921380545476010121498300601747337896869915619717394297049645855261651156837077610993552816069580792880280294304907555587415830947766145055841484003544051511405115923793332831874063866675164387547837295192874283898782054327721018593698486053596283471536723575228687252571507854792712366650869221796863371128208097434953534843600751182192627592816379809266962210337655927423063555874683094729867121154928372228719972196035460636389227834532670235983983760523814104089185079779049708450581240759014147753525339793417886815038247214481639420093414889227127418568280228767201765775192651603359817912512055174866050235517315557024414078081611901317253126363568883758301981609214688320703176043749534886203937270662333481401816489782153455126789092055965154826903390809082553384822469554660400969340733320937148661984921300710910197397065580701767934809445118633291021636171339865996514961086380948509792375276671676157105157148360579569547101174013678778495967987149947895108281128566430292790495131405050295855146923817104620995474016120478526589063536997041105157079908396711838966888398180314735433135369698646494109854241889778848636999224903299467461422340102099537894589563747674971191806574672621507149492931856127545369411514540428755272234207992690669427121061961022622975301418069896633990519067913031381715657667510703271783854514420444419060998345557044692485610533758393125624010635320076657427586964989131607461298460022071132136958290646544850773136003666807920365790620332990838126844320948374039999224246801516989759679966111066164046259376316491710494958747040195210284602577914183872491858353320200146843812926242358714842369670461182372054456192876119369633154041128759104380088970751623787077731205664156401028699399521990137955574155331596462469260831782632880061517626232844594354490685542987724032878570888277548859120061553604933944687904710143645379415580099163537034023094017036029409055134866501296753566457304425986327596697063319114732011241300691800378278158787637285365633260701319773374104652342286803834993299447309611073035792640481302466715947464427520682472526333120211394197521367751925762394690885271681925819787374579905053439163297945981614325555763474496438801141574802428451113678096072343774750572115991433999517175578610782071007404330791668656128302198872717598174183589127135402370034218085528538879111444354107942711120305099125048837329754155898724670113846009296203321753831769650511847019487259609108491299090010723609361870196793134243389091786544104256033419801632804558917995766760646784564441121324616021375134243431790598449981226302141896454705936925011007119429373396074700725700202865083424046672720207379931705307196662327877333311007461365608842983097635954042569460955957334286033625648546310756902311902713867860006428377987123360510065871782235993559000042276058838909858360501603971431084051579170238972734343067459467481306180422004260243876930325538448638980210547484053108728461269399723100022726412924544892362582267918647275825736607443578306202382162944327985295558266735039157953290847265815725053432098232281205142612385496787109331595242486924807311298531786558123372573613542584278852068727238685448025867597472212535926912739396351493217130167271409759205820564152400890431547681141813156792710933948742042350042629326325905633549119702098422100389292565895361018088817019504629219379861758938267915293060106115176842673355079693193632918769009308258925662043675153837294284080863889049556365279658968641318650641515605349830077594872074614115680566918639290196701598153655087541238900783837160003938523448102092435418956914224591116344116657871399157247263504336729998722642268809448249402378270228135018173423112415735828651318717080228701787441547170594840824652305771627579151508796447666226330844749062746386765256891741545131844979352933510985175459008407808019168702742368241932217034120559053565471765318132653084567562989764437196704528625080235160596722747838250570521958278119183256184706016764722818139165555691117922201356473143661861756363681715575923397496075238626544821477610983564992109197846453124955692666453936434565667649223451200403474151540530887654806448551274008585386367274724798531377582235411540005145388341913540168348086318286375183931976897483493261867733238309632965579032385054742904537398295409436696514144309556007938969910636927417495122567751946020501937081170485107918602939065683118115949549025095599221455880633439131979509183609652334738016825525804125815521888888751770444128827417529966630541752327953613109454620797210877147054183589546663558795783684773985277577764679669036853440501257279563251527256463559426914174948666990928977667755697204084790048618306970869161028429355058824946477259857995666341120158389608774000596873264127653509267380402209704189105417458089482589482911712911430360106839138425021377357053498902314841766944673345656639455354006144229229926242038354240252488280659568591532706549549294476760806151560279409978186529849662956641011204810311077633325035201206117560144887943898101343326223845732911498593193716709150945263607360175850954592354248317773013018013729946667877162500406695336688661963019120832989432623483617074028776623622609528317242741364819323754392095036840098853635107263953474864419161469975966640033851742467523743604465104366046450861867965643806415469271766562150718085891907791437375523734443867959646569562779370858301500650448086409315913541097293295191741630649822972725992867012140871707635825082134174087996003492773356924796759479001391177594264913323866229963514787662606859463065982350770873463921907462051774609703505942568953052442527846629578255955862920304848582840424523994136421159389156639903234507309521796568464758085553615085515453531640632887359944083094833856470765312520339023695748535158040692421686823918201353105806624318398149246626871801076072314117496065989018506446759202223407203511402935750299999216264202798550654953284583667690220780836519406382536636145530273288804777637432776286005791323181416001652187978502558222052740584624482396479243698055496870096516011858517636650159168374898406410358461448468400242917389117083574454368375271067970321798599149883235323459608878905925220359459973273874475906908333006585163873368772676059383382480996310686893177438664132758634033517236343147843268737031557830625825964658958512065117724882935207233705050119364478192542944731685967921335522318384920461835810198376549893136285142494586179028366383276602833326077068233291515275493006851661544260337086007348530301236280090751403145206786937162354461141027349267155870472244992229057409592926032022392513592841665717873504876207731364037118209963761090577069426704026142982813977712806932677923698808585961775618659108407686421171162514103875760473196694918204442886648374204964662024879857429812037937780705183359006965436667650981353388925202073327011701121513101139610962317586629716364084367008181479662751491543056783649656064601430805661687556953366112641140524548575678073859600373169847348673381165736647196288369044922389759561942860083804935864036471412233596298543387706301976138702810387183427784030229358468767113000074423022305544502746140220183377767057035125903220313564955629746643280874569872543472946113512118308901451863331314471325023738522265394626619415465408785386597039979040418622961088232360564685138388217583284936976902417790821123956575573994406451255266114579939842761515594605405479981839825946151031163308864953070708056302708696411394797881982460759999882227372644323538153544410780284705281713490934889875141231773804029713642968911125140068241480569972574322063727085838631415519096134518677272091636888348237265664690551373767074000277038069628468589882070509832731875876921556110638096020692468315609986400434468244940147963585705652182764151906401302289040119863214583989007132437645098853172237927758883183138954750329022856237553970954452243551622482590258730038604707191465605505169770189215747980693658879403418095471761560431080597028824402895306223359528171367177776535669004078981528746100169846057544580622265555845662657622253840899978781298159650743580315139040627679800471236568533556433286531352248380152918896058154445265065597637907437986430958527724022543967225818498963636746575714733199089226462167594509213017527792763451377515070414145138090378669908969598856640150534517600366850376970361255814874313505854634770232912324672551529392453332842630998008234977715119619925063073415093758086809549731275420475579606552172897801699678411899492649710088288973052738742372824050216225177195970955885739478810141265501954321304480552598192441937874600536387550356840849509430376574253443997306376659374207613053084053684687620887247476398668363975506098974864660952843096857738709705165234178798959885529293519786578756296650357434770420190540519257429903752350882943300893982715387701036529398924317459718339923197459063729715903325311752352325749495424231436974414985666337017183043187081060227376552928685161857164478019176709963911217683324614390020174509996944140849505045274200221719639883842100513780760647992857208010894417975534615567714035258926097552392207833186204123535940921584966636027637111636017758796920417961886965247816509827593575368218614568938770455719947699932613274570583457712521361845346310813615896752115236229193201037760190635917818349543913586437287905637028306963795933013063594060776323275340957346514163578018968400722851104533404758985929440789291411623593652858196936150224991832037774299230063981607663300103341572994884903644954302198336124659039441923837663710864062933111362069540050134319617760215760012142003739613845480626768873692565977780395413797663118905704641855124987876750694887422737053982433243407852473389609169107961651517939050881501294318961781863290286854869019963030900671135436780205379352607228279786019375327423596027220310089685063603633923737486733104774757020414650945603133150259468124955531476003977295630620033952860396774033708930674829139707672152080662487800641546631741620794992649860799929202190581690226584680376935870980793578537981416919139431801208985336428336685170313186668839146058466077025923439838466257421882267933974194568973783846531634828327692128073956685540638265524242251127990331075820239104323422252862509604901827667606648469933684026107794988293353889858056579294008780982455608273503881371615786936212016219368073722789628336502165415723925403655117808823004111457685772265672471166141350746242668756704374380334334782699186874355958251145412144268758477968077830671001052583755399787727233664258899653585234149664568714382675366429313165242053128019449947895737624172388592213175891243005812786517387940970124819767860721195226532861246675152196456425799718966378506810328352758806338818933450592616409862873002004000868160815802225273239207199294344349563504796374538980590013817084182982188838195202441293718061368191965842534341489851884711962771087252910532163231106838207765177384174679253871164250386537107547073451464216033549761906350682855204994501197714272310208218494088011827470199093965070884642899171431177465981835273864062656956703792002706560619089976601104255695518171022357510891181567467312879726867221957076982428958794494743969114545694963096959629975203305284286869184735964124772416739250525377149997426570293029318019629021455607468920689626312209846286353005284267181173979413067222027058402828308232430613567256636862351230925533703492648512356134417589969784518556487298603160744168842159577137490777920756705127311021291840196814489141089685679733030514887172952070734131100411725508845229041615267925054324177615648963529980621792479811632333794682500656083453268830463993396297147608811733775760323090265107094937707185777586453601698637289245860600975881729278858484161699946865783084123153532049636651952335158655834609906759182193333704091437139470908650740337434882619743744524121542604260609147086694268086059732014273633326510254887503097056366603964644241740079255320518366463810502799461963402810850000319403538382662669545596739727201180345990923625779186922798137349147665546065312992528844939831022973653313717564112708394190400766857752884954016859485846766416971596402573550277353614836998604552119860106627722177187541085440271385207640147864658013000026628601856434741230538739208393219981380265608995264155604621498180383968356464808057047420302345185147949714441667868419730334272565978496626394021952768674456507195231086567547878059811986725270408915913691880181655673169693620824536489216511022765636408057443963535041597986693625257360921484464324517253069891881313026201205619575443679595788897608878857464745266112763763926796351604027920767941015396521221370953987534721674927846291052933407048855077735763617650569221196507095348224934360432227927162914337201290661701344249059451025774883060655946857317088139879338224601491453921710866993003608595305148732093337466572542778601394980808808335262487079086049092840400648675184231899368530591269554944080731791571273886655845610918836415338546289210431933756436338185774738997510837898281746623942752371289312898966749838039961778326452493014098524758240979123316944934092666598462015196334574306170766140194903108373979989489001905147252577966382589843237834342719620931203397926964264235175979592486098603770059528265626247561370177736079558186211787500356763974980772261844018904852921003129047016425252919912719085529399437753257667578936263791552058090106826485737580098626256863117133844149518775494466381812857437022281407355392576541259017886042301832807821592195774322911385725648795070386688720872850751430735540194071986429195661267796082273882820433265621451242065067108486612176329133109783866340143647839062456946013820448888132887238678690569300211303424402316847449600627431650855427958074368788243215798704889847564892703300217972837213951420482234592342126737349774949968161327155950208972093497555696214721754137691722563159656184564069073316633528973100994439055649039440269960840385293842595848659634888618123223618405029381641508870871420732354304695876270482203037254680107046036060998723581449491527698727426784780702634332571230904204937407813795364443372079973021746705451246784741900642724975456853539921410929143342197428378108652233613930399396311927154443591326619961891448831469148998147526255699728724151963837573807704608133347138210606195344008033286799241478697695715298214698912578809744407442044456738673979334302063784977463727324276925982622002433178838216348438198485398353315714017424139077187523319638334064951110518229392696046169506836535170008075247259127492665571165877004830995155096237973579853928751070870167104727145017853546743683206292030742867573952865982513351878939695387438597432480116572671257129321111213880392160631096263136838694623663869320337430414308074381767869913518339956663235321327878222146116737769289021051107128168463325477949198006267189351576492831705567662914904377055690768374970082484992785007836252506693889570208914512533128407405982370573096693376905730303732711694994829438069674724844880926548460467730282401148114916030505672924626691892875089039529278709065896376389002361267829590063603254346911092303814058645330563631649624423377018279157982449297661349454801633748413844631431237972666486347422870458085027711503891642315331207303771945320130350477947904096808730262155993238744173078293933250356573811300646700763651644559862785494230098324578742940032832431095289842372571547555032026747136213903432473151075580241669066364133414052633529550383305270298596261565595967695164401208761932432238181689401250498298545379041148739104917064378621555952521805248654337104693829705397443458037539834589910871776101524718807251300783548544205974684826635588810540016641282225256265514420548689660720095287808921012438202739863734365144177374378931279574877013121647396457514918434331750081356402228404455006879676093607488087350309102834282485170626389549356336738903548356877985607823021093392570539728739653779016914958088211287536278452378494782701183538875579673168762939890103799116443554837547863870604691661562620089312150070885761652548022167707419104219021845271139936033914299029438641392111538408080111698552737890576004726719666781076333733236373861008165836939634063581756033644507182333412294482341968755151770354588338399413973485091869209627599425942804930171424577821290775306482082542801997765171310748560993036888130443717231218965715992918335067134959603973717313007462876451776393406506969232083993973593266222284949568414972936657592662537352932214076142673520208186105099626929494450121284099228731517447474969904085345476579116514473409876258420729067555515861909461731447101372454552308928706745424887543038982541957521629997914137260686239566002557641311512509623137532232989991420317853554103543248395381020716875285312411203874169530420431479611856243006850297115184012874824768324695128058764999747660973526506468961540068914270372135951122529541733953597894615098966430419981761022210674326540554938939455870682294158272636986086353560136353234132751821923578338625477423826801300182454224418851391367678730665936119991172445666520489259694986300815979471920287986518211954056154247344723529058000862498371568775341854372443554878363782575409994735266000878092996778142422726774983125805357481061275644476687224676987359828054358825478400195593086231590853180784773107594110530759324976348341105623926650073482187706860981579760424435080662691403239622084930000648666027419211067188539614272374375087213323381083983933124236264729905537630234303544680937935029026419128385246189805054266292720833857598881217747542125443189448611962902700563829003583559280851529519702841587248505520505120643300033068413475661940298953092343254503598664932495642682662834139559079485621015069584970319291746412400723059239184258508270232940306349242497835130857957319400558811175236944146074082481632238240117586478599930894407721184223637055839732189208250291368800894212247689182656530654471235746341963958884375467101300689372423356999446777100430079907092074174647420125854420410963488169603630403198975731986341773150111241983968699299754709159520673069023579656938155570844360826880122522441706163585149857064312578531234038790195021128775575640078833293570947985058786420484928716479934803967908824096061013233211596257176399703299278167772456448344916549937082824959052049318645235929933530627926547384030973660501978865561409735767579236210958431994553055083318935194597712506838861771487526787655805203431721320797218302792316557286964319251196762369473778810062081304320156826214201815944810837534303744086761189157659258966944016689850233458513206692249477226517726824328535361408436602689364108354120088965481773360110352129272105868389690734324072964569549922173915645553020163659109600819524865795211606262519685666001307058818519208379650823903890533344154668884628796919512195365593503104860245196305098380422913221641497104777124965824173674522091256127843672492286268326947784372850945256050756459194182962654382567005940049113357258184666470962449814686357193789032523846259898326588554811105255499176867912879505624388341243844572944653003488879927923983161695225659801263419110195735675830317809569289369222699546765293824598816506989511213155124535959939407653836430416584220897295295613147242644629679676291074528662400581695785751255012368901622862257336844382876300950137191704453119827955464709812597448587324024638482836315956535044721037015860688037171547454995578943573607481945932147048253017677646376333151600615104686978398244075381584474137247769852844205596871611260125612117710244724778031125246719907287679787947354943718792740784406533844657190423723670358173986149903579007972078736033387473713637732312796083637746956872453415679455069996278308526547365587554000510119730212682376362442724558729451506636197780827714167434908908904738687787466434159595649040413182338324375801152860530826514603327741372165670398320724560185546448051065488352396501083011702880873737231189138157581915735253687570691899395030266285776741952684611955606606697349343651651896462411179885993917573444382816553642090544169381647911994239408409141086756804564437444982823823982960422155036352885087938102050128950460777864793081050050203496020237103399815643043708141339901111730107107816908985105634190280340239888070702715264613317839646426329311389005490756260482456044669715067226643272724936966958033796466706166074018124120365361866732649202323397905890444985542136350773995877941827565833030833305083349442864012392106683875878083638448412431112554490497052088456601154837569206507669769514848741210266824395206755983168963174088209128873972569258799865942358009851189206220217840289449472129721836137956900459522114321577242624926714186266200704778540798887587650481359601952302312947823330159909342469232056303073757646504685296520182710714658361059829661500590375467806070921665905279118636467849129078208053717944514318060221732717893166248152008789281341518822956818920224041569438636516427784993046482923625331791578268273331603693478869995388552538237971094598867818193541678012291169509411676352513608864501968577374775333939468663992805409757495821813986729444135359193457367314785731823373276273360159392039977396364937303838661417297869034220104917613521198854530201821794286208868375013432614613961802023421006858870516765690022727492968410107254033015343065319242961212259618176139280608333642586047067793572155649834650042121221201900139409082735392168519117693381384390448639936641917137108397902926527634139993170297726769268045739480896386664953731696440896145038962003347816400645593017298119205908037909198895124521255242521180231023994936812566747155524569407187898006324935501361925747503989475095486802289906109351732682758166967688762257276760541047956613095929468717195565417303368874797319261203226389373655648343322921197961545450771568432240509497371724682294891198903673336848363340328855657660213262801952347848547720894169580398089537968452807500931622241078202183954387757873115186900198147428465784399517796461903419974404297415795624343293752430700755668689568983874363050484392992773415980317573921043722785963659257857284026045912150609923102449687666315355502845984473204499580036142535630822705415962727733749920307311596961236000504790018124259516779090045894613907463308650183254996067454758311109689535359846524528890714041015780770915583057868031199968043754636310938871581606768382080878996227336671016649660159670803515412818621810666824818475614931735068287879375429083716330141943823078757139771061396118135380320019066204096754412613757682941989874755954084720437538350763270080226758637234673453887632747542554575981002250817990165834014559987357567498959093686462998569557232311773906218300423593581148146649332332842584605021352618019303841288444576498746358324368670686908550275385806573196552553448351182879688159450927287790357472854181502116973076881211260683717349408214342013572119933308058616520166146813586071996798264937832088825026705166418008872171985113877042206790177479159204249007815338466908291335972984867811880088111869810643284918212278545075133413199332552616318989954641497369045231219757203407532894522496873437940510155864414980666295974647214956972105218614471265504288792112051061353810573287405759487673233278035889265501003476301058351163100838001458317308376885426538780487083071083295823763509623868931357885437251369158268852106010863627363099614188005760542967560810547285778290332218260271378242844215831876716890786180131106713607330214085862206378787236919809561313922558125743186510088175095530934048059798672192310653920824768802967315978309457674652389960039629739580987844090524517038535833663085134753299093641313731745011770265515190615237252869626623707827902786849902609264857203653938104201948167325132056553449423725996480400567775251804914462856865441316455258963205421764514319676207175753407186174868780226764317852326064074702002437834779362035271438845610771480166387618001072950981721411751410618784201825608195509413359800233093648742345163381948091759691862176740228562989031011667694258997674655255105008909589717637481855685683497537865953224902541999768982489424253905207674922394047277054401916267185174160183643513189054555005833390778429268135336616659397880293012967543433379549639619563494005180226628257111756078985923310540673261031262036157154018575206988229259893274800490105875091070636335641963601862744007594019652543025149027881839615316753654825600087382923304269000932222023843640163299457465434266526386408561100536670134813659921627541581615249762661579226356926630793448119154690598401498672644349080898613605303376701786882467896158895330442453003718792697285735519496412414336336638363977999769913471220603659547551399294704045308648710494665889471708003906956729115930826120698602680403079394938049311058147921659572440090925952983083365931175213313042108765904359418057327134138997934483609619439601784608982398574504023653863589966298770020893228411347509237162609992530324050382978708758720198436071992035479800309715611375213607863552529762443566288270886213027714010068770461138972321835171304803404478553532157484002466750469547560489601602114968046787152968890948507388258257945240500961937944214869885892203481228700648121687126110392506356642705604425326269600303180022381323159170987819867245572685166101692042157587272576046758824730532416809246395482650991255618852561698706308971249287312914672733391588235312334197603207676015133749770485686740810924908960199568981941028451176089051806693490094742274624500167414966571712465619276263184251760224122094943967217667582371189725152771586479771892280609323497983666064578076173391436202043793527653579737962095256186869537157159725693520544863964278937242159551561746857913866498992926189887736480993229634684968919772005058796325034009058543229765171177504939897389044729461318209193227973566289757065496939321655763758445585170512354150621740685392124202009557368159001771526821656447304164972311833763482395446951023685765960892719679457488634950813750364950063021285748264086156288747821249900395352262817576026656820783203867734458134362907724030515299822196670519219134265969309442953609049359283867589656650461562841562252770126988786264440280779370137936803962659245167888425338133283845494971272857486250388413720262292875615552940439395230514066587966148414669024455107175500959423577407827762096171227890727552612094192356175807117500603964617599657165830699115090665859763814222112363113422586106880257939006039530280917735558189580662792430837611326054362195502453334147815004456981177889437141388428050852197230438941203991368339568682502053619172814020230980694848484785009214721654393060701103107003246452828888927729308189421954562288549003383710148203810615985912829362224517818334563689460415107586152952310892360878586072437939132456283525839999874755074453598559166965510177777920691131579016091573768750964096911394020798894123970677704546639784859667504206123029683580800627673982727273971084274107048612329900238992063533520058003425075231389153724749425339251576566934749763943279067101634128079816254009123549296303478601523806206466041420038865887318593182654079437996783520154027867958121110000420800914484040957056103930596997076588987979914266546426010519976285932279220840741865087965664031481662476213962051158324440309993756715599755032911986021738413970000792991519051433194398516290819782271677719700980548189583789126080253015116218455875432662979200857431076079742627385703950350214767767655789182660467238329388867896320441669275698114346669851597206213328435779396026262390745165064543215548063381938632219581330308696948963947312074895824097363948660486502311973809068109641177015035822685804206158306904406954363569438317081113270062169581463501798021776082054251870019982750586517715017190849803746803497117974851533123189896103735317928771650539099174830486148713533573014562989184198005336704378587887786597755809906535493996951402786951136614864321742553872306623981341241343106716428293252464384084395739814958461703252598559531575048871045187289872467667499963103798294231377807684926599575365065924513143664804994747191392311908481820395321208443275018383101717194999237933265959485908761715623201633226756170132521771079414491735394528807452241310777960857285651305640029963815015187346497547280372917643726449294325905732818582809378029260080772942922382236283383092734541589455942618731980298079509611897956433509068059243937297437776176648116243585372438069062805051119563211305449438047623186904651072703219632240302334155731543274963835681870754602625576096542135242778656966805665234165061265207678989874659718481364998448085040492389825657561003577161126346079302195340668218528227126973315930641518539318581963510207883086612380829358237627783526516634639152657289744574944268084431789374878321689559798235731389659574148401494768111440662177047756622110734451861629281490022884652116152861124402036856287339807312921158990847899458663010926251563756618369893160941642178030951896058744288683176857875127046276346299465789735931531074743654425938736032688648724800884578977903995138260854124951385763647235590953088630625922494211501000903617526610711380255392263976242975304384657560855714612304955592031305227971152699979854137178008695452114567126333766792097667301627731406906065613505119299106085737462821852110775347022928759822504719643958532574949049425445938328180602414868441200929058503009586528732053157211953353447218220775793119504447171483502503797997075612807001394534462865592124628865745670707958777402324546766107397990769687787712791286775626161574331074114544074456014437723516873031181501071591530183017598985259369920650081938115651300412257088151547285179990195540827221617171773209227324304665567160534552317097825180807157723930999542274818939735018057874367634358426055025125312308961354938567422765871833495880681673377756588312382536983811144400885437795302032299201346168965523826285965349215223206923349944325548743385724347917415276970653993593061340804483597392025377173654520063525875831249148385023511053976470978711387804545588188806041707246993579903779271709112110491716602700655960974011982953026114734704058197798896366864950198956087230709433682961163859334608150058125161256439964433726894468954269010945769189967554329250546412843155552518080266698516960516097978585269555958545892387994061327962612120049339025485729240656464672154678169339855681390311649259770121330015016785789618876527426175484365609732843084736653250781799983952326932403578440609730559085480075496131486526515984825833761187061019462871513953813480776561040088038925420140851398844991952056070396018132121528684176351575925444726399319743295845501099292318376322814531236664205715290215085637795166054428825548906849799564199072647495788867162181587627526992023063420018314573306193519219030649150722107028528176635111827863947178946489670139409820052151923308251803851531158335146753175254482535216093989013591820246522470615644823764655678204363869538295136211286035891695665288829496437661935486653375829082462740081534008582396603337537884352993719998145691818253266505823486679684350040535068516563916779083841561766946458784596812573705079851476290800623906459782209415938581998277983062936587263273831393011986543792391133937214364982531137816524403603882275061945282326803323524516783774426901173747175671791482710315934857472696773682890594470768353109679420750590479601726513679853373296847691053842663218541807731340415255949063253980617653355759631904014573792115035246539011654117527538275388316090949466717828584745882600657748753585519709377409159127361930296364072562148042356843580811445831927888009536884082301848989909387136842846548227334022238269414667691448296096306358737008662593468443896596675556317339126603600884310766069483232813369149604058540713698921922656834490286956387362478021212363138883247122509170872458098754206331446967042143874890159559097616299070807993668540087707071133265108036663899344416227806942481827322268897780806344812220804368524091835892543919576594911323932653480801793957273384428681783206269323296401619837854363786837973941473126056284585519514160931192714452402703785144512607225456982844821888604947486611715535341604273752830750767373684697261725693826193833106908157777889372395817341983747801582517835888022116763168898734734949552589822766681713585748983080474900958114719518870244304504585170243006355327719877138741806586355681248158591358717361591426816438221425427748649269914965339644315071106588063185505641296842945642091736708087297963097733231692822862026719638873459914530333722358939377798614589176674817797007025935141950166193474516963906484996952019374657156990119285166354120978438235020004714985349106913478338472487612076668591819950164660390193784486397389893784976041074045716104329129216876682475305635485993492582657417556043326696157400952905304160399965842582479924793520633843404217429812475257061206922061421886122104196988770355141605561643289797428926135440960965663330836979682566022388855932952969406814407402897532199105982196902303999443669446349866475441237518213864311493023485796017837982902044622310115591749139622243898230294572377458941173706960775312393087289006087627161371514153577232703291610494026656244897736229722727496905881270216115247978145189676265381936937036792371639736021420677818153589314900813144008249616611312497804440954381192242185432484670723081904553557481157661045949830020007091170923971047026763738058079616724535976991501784969459376668457735001319073387077470905532485556106051380048646316337061560766599192082249219868508486778318515929176486463582247290837185929478350455248044837765720914128244907254047165150258566626360771427163604471587976924808042713996484337768728994401226893183723007994859377205936785375247076611821578698822961930935278829515414556146656156832618024532261353297717052118808218195973637746198806734342824653849706053820309468459990644908771336832027747975169255717271016756732729996062398951248824364110706450458723919163330412639660146315399806424555351375161977055916538956321609153921299489688333110427113590520342716233401225993564660637784815099329686454893963388429891730036417164299001935127489270088253150477619715501120819122206108370749291414716429897581320797852013881939764396482357505897505780382011671838384635583882701050904692656491760052423018671105082088141250172097562355778105404824724858445270536402503527142907779288910903037450269200014355952161477294201579758773604716098857801111616226323468677364816891139293561220927250131011518002936632615675776587588962424441665815795605296576882544320020789259178433937326159864918759773200271416527467583365399587065079805872572552314577243601221143453447294834718633688756896050490097787781928017855942013016894144407054821620912105245851961939989179581343862912048340675419510581609921906257697530272645108191472469209601564237271651191787974111466381380630256116568706246996342132140797471164317431781082216934241757440974165595392542663468529175823450384184945224076862496233099654063253685426750145818277497665869949907934288079974186362912051380335713848981613868084088498582291375688515379425082118052434250611457611347656546989264799545839300589191937539813895065390957740232538429653183249856898536943608517847172100459068272943361436146287771803810522848380338333867508539928626936659749560861366814183633766269563913818563696887588476014164763516103890390264980771751197373755471900641912211491063910983672444611693383726937099785274158076979877531072569829687580099820625651101837370735606985384686652769268034667992910666555571362575070803742792199746247437580942257996402616750205941769460577662103285703358995668455813610810938517681018461980139851940616488345623244829100933307475709802800749886067034820228774404720162346729721988869985528275256423741795775751079948040280803970494912533378744461595442439012852952773456116839289254531415485637267211938904361228559852485467932071633815064341122400690768964534600119306855801700985537712804932362088569605881558938452929395083550861179317284122111777621388693992516349394596025618147778376211787827700704268759782789949173689998051354495621289169039603430587595474844603661076071523510952442122722682380991746474840874253647730469373936953992036110205330315051209991586723000585697284946608086433564140054402103676580258067433604440022433668859296061503757329746334939954057449521639704445984268941144114157958684716380853388278209858840415109887535347834124228464913630191553570525624445782035889159481938671278215774450160464036005351677071172755300362562632284427633337097658031986284925058967967994925760398295330003223110723218239109390632643745666853872345010123338644955162208893972052944595120053931586395161181666471200186359948449851464086047012813289806931233343669752633847946842858835262198893539611113145080821322804543091803791311373335437967438682978989073179363539585337874854565322227183519157850453980957215559759367614703871488605523322625684172906142656554792953407113684022754665589341089457638977759088159957683226061323786374856752296156346171105049359769721185183813101576585459847213648062930418387308933150953569362226572019993617947613247830482077176283610298451793291896740636245910458120120010285601894028431355356320141026066107794726105693268356202787444998694138696792656020701757089860410673769768688918067957110397274349570691323822584068475215039785680638884774778860209618576364383449759810409793045052696305614302226539114365753889225042702449136754655877734530762703950412369922122883427311017624034910208251757004592482195507377556090091520490272610561581569239964225302687736727179469524537150704979685495594914448855900546202110399989859121917106797888538021817811748552372114722102044673544323388469654931650932422401208651187704974619227534924889059532451292785718868629870608777299781707626191857458172255912877148079055586111207311772804710864136019393475139329975087704153298858733669445701315829862834926681910439360104918162566146209350482034271201327933107171442743765517502039766917516059734221031182235239094491812044660896460981333773773764010182190804218392955819164890701519277921193620420434078697996923568618264699525149436445493970568070277889942592450774738583803924932793823270145649066774531186581451770582386135287686695081264411139054054728676010190438629353683505100332525495987272362596228159898382334940793845581618363913096941399965191504214423850752946283523227479014708031509103912842158238633553907804009586931551644533654466319970330571570420757765717977790229221251607211718704029896865594712405535839719076671025556316461021332067356177188209612300491678093638785885935454197853680953330270312684302432363997886586831029462897821578427299903348732667821784039847290929399276843297605023020139157534309175559322720782098064299414390514376534963288161330632389569593322676022423719099430337099767232370287980980321275809547444700457124107688034805148007238307472256242727997358029790459954809893744779675417005938372412819347013426378040358385239696607869499225101287863682145449410728947682701268638560575941065576088418057469062792218928479706832434231224783813526304554444018914584168584439006144584862001255106151987415080502382569288941646584505717093877609451727216236331216540372470994717840572515054578739371344790115011141001375204892566035986024669683085314371134696976084297360228981284203752484048863133290715449282237296852290106249341059751813139182276832733833900630969104248566089475330905380797635749979931879737009524915139516722646377265569471746861975616707584610177341591173731270290417163607292831938150421082206126531043427123576930589102035261509149692951283671939171487837231308025146680720654250575743462879553056765005156189267995104084747562813396502877255926796227267254268656247913678518821045446443890933686938458836261937995000247088614002302805943252018851652523636899694033389450463558108317429078035128496796634052402096229271312517061065534847650428053913242564068179531514035598444857406917222894875022175849926782456164110500838117961305981876577923122522055852375754752989871256342212777883879640688549571120876966725743354668942830685722552886968886648971828078880149760826888067928857912899809239796000453379250133771535992320363159105994366009303313112131141876304335645237139531558034477690892632904417591494354139282034355898339186273437280375985512041327735224770603059506449498751833551139500807056074249125879328894261075364119948638896737490028881540664898914798935946784000017157510882676945971693906127506192429725531582586933418431194546572973300583078176997090083289892728812214413890913679120163922217066050459741129368915652299332903504330479928877904446205138080758586731750251285040741640956300534224874546161904114875432282397399697967934978534804425598761929270106501777282601566380144248514858940143982214381607784913365852070477460317223303927389744397186406354612316646703964300923380523418021476496476141892124915613637133517352737993492627475612030035482886901307120556420793760842514321369923406755179520402004399136280372664995693000228936896171263326802386559731208839973952841547708453834367504582285558403517179760693785695412848626243369223420942609024850665928110627039460007090656915053625392184460911487079758009945959907348614997655948207155382098293384710102372645255765900333391959005909834273298563587298013020410107365840827545761981492122385475001029994193191840473465748622068850785605358374443456217505677210759500169553047385207480601906539867801848940806961629906633260160575660145602436136754478437351470948151218664058281333018396411176229421547537600645398872511272762504284582334614049999555103155053700586307634380039256624027984847195339217198599294512310748403175458565588836019101289213063030723764371513914113252663699357438174550689485238316730981307768072830741896347473695418137849624177514024476767102515447911374514983592626495374818818245334460048688339425612488012490473759021322905659045605569446352539038920990366974292111755439358430964447744857585348798322890901412762408495430269947624883595315753125706062746054434010358858871684337173982055461131275627696155403717339179677530555386889808627162530643443482568284089475324902199206138427492725644396392137828947953240293043556991009855178375051297865174436463651586015658274331933822808147065764840139120955837297943522637361823320171134011126306702117007283182581308501925239853927360522798233775306186615001673861220653549073985628754446614162062593450949542847372673245864218948141196726773975120052482278457373846088697284979913040961642140251294935842329183238421440695383985341179957413848801326319126651182593315218452115530244921014398552807639400162094786946213513267302587050568068897169499767912378466044130506842340967737634856184559150515709228090217596046924275595726180956616574064850949022659075041762860231845070699673092933896651300049584558088927667324382736905995562115237238548971911979958543109063748983529637922704407576987028545066938744222643452400984397035791217544619515175759534500704918012647662335546566553168300994527595367995965954300194177436427855984548191880061136018036355675219631787486556931890874629433995469398957978691039332939533999641193500289367690567958244127180206917196104433814975284356104355499557071395504212803139352519157872168773534532578049952351706145776992965715161084392033593216003896930087982244072843231600231596557254553566894748967361484485350356477045143849518645476934446755113760834415225505276904824752381578419691091048597754240312543142750370908692707395763077376213454537746569100993879492594105653924366537490558301649369246981163320128316023256493050323819264563802910411641994441217359707016603667073974574343102553332219366536927330271974873124835602227662351175425165186568665188497915809084603288805620955682065887705619812089834348115615341048881957630308929757381841320599474409744724858754330864584501947679685543611791063341358901219218020371666484897930546954375584437010152791659859984728435790518412783304424464157400216456359340133232873332455689197821148935688810682140859537517622128336178563333513180609375845450469017219931951391802572913150467501682767981695505074409051036843724448040073604064040013473845455676389277265816024387625620152602607919704028965992282553131537764660047523354266211930470750138857890417044383583048127745836385807257821578382241473786855129390769660634512625733825887382186307312623906254806993690125182024238492181989384201599067337742874527982372255693236288876968799033994140268738379158006641787234264745655916792840297483194439893382458807974555235753302466247611724743060900069399646806241298585921197553130386478120761985422994743667427356525117159436840667432263213503106338192187828300123071523598760032592098108952024860942428927492386991201061226021158655212196391230744568001173025412177837598473094287828470530656410052337677312157746074267962216683344451785902777471801409497550564383468578335440040641033299771119899298363752427937208675832171990519534480565176893057719093601785093710992766792246484048864787428295294960959254393514292048589453730691462761742889784271787036381207340242295004308501210247353162518401092727044165197774117925692080521645598622637365192051048606072549139791404549979919108197672389144361056802238397580720885346204805571170690515420843593449795775309320570329974593578476015331909217971922272132280507358112096938821163505799195228890937282509349890281791396519074670921073919866557495708413359238440116747245106780083147768824312190923623958273912387850379611700188517751331116959613999247994255042748232337404677181831508943395071573184698498481286684486914287407148246045528923115051040913279071588135629991341242774922882969186911057804594580884072953209448682833072525517328059589639026605602659266344195603150309680949445739173458709690113254191581958944462043058776006864142030210338043779205300872305993741702300363938254762802136410591615883580805110131665071432785530462555460082265686261789761419460499284179196109855977425510341155886481048446511385048995945743521197457038573399066301108742926480008126901806458588794858856798728181401682964123314606217749366367667575882288785975366748093710110305745988985123615948753510490649392645985149010828631233298447519406970583730888110536012221112043176056699325586064653388689589549430615755680020410848012489507598159471939673414883524425245801103241887169432897871817110199492807046826995066337217963725133042148871688391983865253526829044848698508765355233968078792885799144824046355149807402904032238580966160435257887218513901504355432678890222950584177348307373636004149221669313092834964346301268881460136787528239494489257535664023722607251259167316108071241883207387870916408201034359473883476515012112031207506988315461872122884648005313281599841612130385106748050735081565848056180094686124206346578848933047929219789457217787217163694963296060222973685071067040586961540833018657184142481377985605948482683894809413407631024720517757460585947776065875109679073426222645914378070557951328928691540426099757052414174626758428298779341099547745264552315684479802944002550794823041848951109226847381683121648720277864149841710441407916519464907999729960527640205515751400562610427776658682961768921326240379494430409536790459600419505900345019097220855351573819310026831759491694037255242149562873693643001905899535196639724966060628574385191003971870058714515640496385359961797850061186925733116746923292109305933290426935526450358599321276246594985773223260076322164286692824809578239739161675165864603213013652987484444379744477187379751871733898228451527101429216782674361338406156923459318749504176486089731247573485384148565135600000212440459033102581640370797146135529318816898330013795665724693259139828591216842792916238596687511241937751042709170140314333426590433148043790900566405350944651706603784519921226902677124748139943780196825366316667731996249791790699258590300881380165569537211819796074626100813089216319869050236585630698915855759868705358642402996670517023053740912349238062112396142708549887193704404411458479238537565727275868356801288231845775667576874705510277447703564729503254620014805553292674642066831815253104322477204718979351165176004796917077800073242685944225830360907287146897529133563409287000242485438126954201577106197977304317421342046977007767092271774562244579551347786987917646339623348279885925133600536177434300657684768068020388425611195510828262868149561388690823196910718773047780429354645658984155694487663958489633662785894191816884419038405176543882265413496767099897979239312207997348507709723010280543202396177956374351317169946367292772974337060545404820593584655536378340907028417870294052217689902229020022034400867031251168067742632668916617077239967713905993706428700744062841677023265114517438042186904195576894335827503421838240576513651857678446468731029228840904605220154993441913588385833804700258806308622364844250289851529494218194921986445438896411877103580027527854600652816861897491143400664771793545386402380640085803381955742705480566744119474190336429507859709249274490354922907329106530956146467046043750061624477106952688572591429331392208043936709872293277123676736539818386368484638973530849313443476055322975663532473103954262842111777603165970794473317284053636436734737748654164829888181879522061561496327080382643545831838458963760870050771842048961863077647365671693353910791179308942589337400451168438228327035996756657852499309802205599370072391571055677593645906856647991929635688453675348407377289722296973342431655810443390547195382136562389580395007816422891776045462945527027950717203368390971246004026499769677278141137068196273436490518162073659496186806306936510056311004200870916532660242931398042393055880456678104446619546467195052603584405137000299744109118840630502395023167168640608540183853238071662234424204639446320390130717980042813764897132723725577187521514998317046242745399094535956487603281613581679143864285199930731390909577610906939954860915189881061920452162852822111022624739398104005778293029690965198230380466727565715469674280292906746183075559842446473229008418175337603393425119789540085201257272686685766300305385616506676310434462982943140717687210183441438056363725362879402270795784106248157683719123563139644391956115830745449298041465721191245341787239644026035766066264944617241919179888351407931160978851268163654630328319363441887348434991398386901962997798693299061626799487041091935286528736680212168290891796921858109178613571726780907715257275256920583651526293928996430261167271056412792648785278011978664235126647066098216669476136734119826578388440139966307353401960347628199939172310400062221946774015707485174990744026949416547485731666559250803699968821132150813267637978125878165552065039604565699610369927423396560296841363949291571690169971336765231279244376563624412337532823294053437931568473662914671653308876553271852091442837103603404089945119154333156490923841369306669912064001385169433639862689186472304777825558297502641747891748268832054057641781878267246417697777549125058014509503686289800963812740075965598298198355787221255697961587323309037977556740086860067999716331068757602226013114558196814080210354814272109756624787115652684131156681657844603740190625825537221420236159868541809629054380596317371884053888833469282269771630151350051546942364539172427126563935959103896387005582091375206480307835294425666068063771095148541762441024520257157168627962818895382786240685711941512439391506823837500713299189800774330221421564748552798597563416199831253202578694326758396552156775752744977249645895495790959990747657948866700361234159608071978995987522609619679126364583630021575369698816206813303375160321969985239382878702924475727103838819619596178660651436090971392364624616450209754472662232847590103015668818507138352755081798509025438236484791402615865980991883662408537967835341088646186851115989035527885447455730321678496474359664412727530758861540348972739333943496060341766013536334054668209970769781189102692640923800938664824069706450218338894104557230443862367564965998217167816688236684813692209416301563473270210979106849564896641415329638135623899852845399653633412316769370245544265974990471526725256498812000991309996286857232908922799518615534520251041921584906528423609726507629324851464993518304007049347477645944339685907249567408906774344384240518138603525715546250424311519292511570453633103366683817482490002091639406002493248975179446003353171942712160213835489689500846794044380907817673774797113036677221805042425199029878404282184264111598189927405152101245431811392033286440349910270095489334228758955155784936626650698957160120886649843057538762421644293241510291303102282077058161653395881378260096673838250409114054346969448179395780120960976272547723371408387339605523636029670826482383850311624538272644608997592797204066463662290969795297970902765111215883234526827792959262479116739172271729330433867898104727910588987771863676511780966205424690219930457984111241054190252076824816634974935612200926083094043411411572684027051477558889713199146681207603285027341754362516296984195316148546082249720286586401792633062350197723464440308041586178546437790755179171883449985507661812164980968872063501977333378820802759281637693367589463399713881066010515589091223865128236657927855225153190036076718146772514427776431915116782670791125071715780527562358633929052332279400986295076754987418333618754212788410014048453086384038148230691871891631079734610029376510774017861580181666684073662307730634706216966480973518233014073473476203304222134166337223895080864365802363888473217683647933201057067206836589439128865725461212192382372041765355555738788458967414720742323924017810659570901610647711049800612565878778340736059133803705026726525341030953086406846902702708368811486412035550711382263669044887881260614626331892865369555623465462030976616828950278641830492445510201126273776123708073863463192807613548437746982115221219493239161399128366266686778297354180927173204987982240670223912603780694291389880660442837426120034861875673672348841169413530338422934654353108900985525929921666565533257914039322096128007391437647802580794605333423788763339804663571768949148566918670773011406831449194288909654382897539505757743501361975665976800485373230978142746074181853685837592142112260935091842765281164617610266223553595391451731972391181386115746379793125877936744932081697449920412569768635565638289095971420153864857127803548269358430351464756603631976690622042545052086619377933750528042178779817606686938536116281273310218312536561145303964337991576993068716249526053822067987189917431782196644099842423665925556269917453617929185169183769422500166867840459010170346518008633089651836636155570168206529450602531513772828107156911198804390669974885327254561976578910044374503679615596927522778184647963237298609989602505578500452054161258413669124227106841080397421505895213220164743070490966017266405847350117565479613530385005036042126352013502249860937469074273260020892546065388769342925751506270950703057723301629361929124180725260744600219915324660044002164410506785909834804349847497984297137630180679051728677715917036329688555381984168165656621721278017938979993479170790892797688128782016122062337625184264643658150872848595132612004341411264658115742602008479599333019246768087231900219830010755525075969459556722001224711865256981984604936577959229963372514723583688423989999701012904681608273075668708150422236457031206613612873156372610360802667673712795377269402667977547994457360898534834311794220222718927374160471001922502491151881129001012527090367036974947811083804945507065563751832715465940049087540995504282040261646821716774118772304019732702969850532351808647313835615635009430623150153443118458988768451787615254444549966666813739098278639115306260571021065072396671223200185585048977675760263686699572724486127106199060102627656670229936132580596113650413697059888799984071242450574800533440137779812253859583114474961726205402230256029310976061408500388735424731945041610059657578549347238764128857197674061939684368251862132802495353657584191259335856005896958150648936767632228543752138787479480209854143873285032019156072279528632859429689417972984667870102772930610722376786860410540333763183120480558952746350981065300423431178508487430926968486059754401510937870636634560919009560254258057379951240454292409465525544133544513391302431753112645088906042503418143844105511366757246834131436361858875644140737541216988076124967019485557177891221738137400895015820696626121991866682111886301297892196806888187426895239007263158581339491536417695283458219802059473592666054307835274689490674625823638615803234040990408851423981217850197053780027761224590401043698222170970455816890708453945752771926800002626167446556099542887687385516251307983567270476419847384788356475315651206293848907638633314359943254916232280279801424050919257059775460918229485038120189432427294070906386936343562837739220073585936289683148763545072264492889319548100210597761038441841016267118366221700868952079302447537464678275042647287328992593988710156354472369456536174151165751969866558990719886428059207789528708306961917309176207150674425079970599092324990505044513328364349311855601510581157120463516356959716536929301562564547548767130036824792562636089836917752459170435772948789655213038831396930978012985574293320139037055507823379884273353275221087827302074215051284362087911377662525049278890021355756703327977837454940798515810490586927467333370685215382104316384742023393912214225893734379058252852039634633500627782982186421347167839788639911329217593393941985748984285370038710176015131423719050544087022277299814355031422837113390528534262323622674419923566299018405198050263911064383038559307115912070526738204823702423078742803508386595815089576001099794876185684318819223045576780174524901242986251125842029074448404446132598556539762405415298395106378270822199858575048671658631199983220421728641701030717007943313186139373276160958560396851674419121649772529472580107071238811044454226282308648395295323556254927407871107333417569671808655450794441945214983908058383260195467985307933790191523268427974423642958570642157851824718813270973653775210669740027369559304683377171867205913542359560513665603967153644853491731020698300781555428721300302328285738692856981047723760493536378955210625478543199688506651469967235776598215337331273159298706475667381384602984567891006593176615094628103261665651985992695217819675063731637794290633648000176863022735323533034162113719559789955783802252987877562404653274099453323792448548242718536195541300702250743596226613639587516417265264267188170878534897319276900122217071963839251787372945318476679460299390403806096079918798816047727225392926681058398328181593318743015201080900757638112637226365431113406190509347623182744414012386665719982865394721011809135507316665416563186455416129426513485762384370448463717155591577446643392750727707840074356924010575003198120690570363695685927826176816568653599342311345064726327740432575387940932303256431370210739062753033324890926005745511712353353617439601916451266361669848546520567221820262208488372081263887710430938423730209483284710859022498692676697553957705425090236068175016808081415371264289564053728618897976445561977822429934851826570714401763724908802886297949716811392301488665544924795130121505019150123346374671226887873761688340636870280685823698423894956294925395824765697943351368974855650685615232919144833065513055563755188757453583910890715144732604169623390526231232111616494159876916605973849518645367614423164759380358309075966987184266901049983178791595077695375773254374331457255402376051985389353764807361126776013489348263658631272178267533657156707083776300707018761557306458184999816478178630114794588834129523897106327545140872149931515164935531523519588816748829486968540337494673770510226743965424628673489757702775052734983596481867139414668819491828398493521695518313905632763651785107160755322120445915207553138599158345436707555396026852839105900848447334975102069835587188279846599255983900311656460707470669239179800948623968861155812780618251437869000660422015529232202009284597109651949709163348093206176526991662920514736404816577853016772210513513036652587438757299778720088474676928374111293091199049219616309336316038899650765159910100612876190545219084099666738844831426443699789263235595362217096726420117130986482955123178528378571048562756482505922458227886004191147443913865184694413017694478304975890499816980398332816827000495033467589172194875527721894352930608902416794875062479029345098012113490254268145106588188833247775923448552480987898696896973682432898017888177563619367686707420844856759401915459414343102647059022336677122039494165240331433291825745572620668843453562366495728575395369062922927320244794352687277204081248267797912965389354625518743277698492915663678735553335430482812725419911724376035510734262674212241239179397144190525236915597294357040427556660036326119035516519292142704707783465846929627384498888888039731294172596924043768457175039493780705806225954607480178833886990513237871110587256328184867853082666855466807218109336551457364298894700416426208990323252234641259332833161827499998272175411899764756771435140949147889381668430680190602509062152717245842315290034057247809825465717238689408857394417815145146526722799610948155043756965628120428502015304207711907922348157756643136028847930667946956099788730492835158537452481879197315729919541558376324169165183050852516149475276414057883825693785684670415774572728084857912590391306177963118948766973066131965906385267864033418911867921044064507578189433230020594281244996882727379042486335137611557875739162396242821957703644558707961735334085608273426421411419730450156064904515086527258951411502302266651695646251010767303900949140848974797032020203609402836659741873851989936659735755829720597975166500412270777225035149448858695498429211973794284733168719063810576246519781989497082102789618146563553520978447334755485310132853454397683173905811930432957756930185923659799897999655800944009766065354729106701099004681373683063958480615932305796520365718764622580762938710886079232575874207463777462382849118654460971632174850247506933558002046843700251940320571555235591276167866806076711191277186456596825801200236694232713106044840548265389803427398455690199530011094944234129154702793373994009580381658256034981861347768810627522418095648453688031416549358557375512803987674829741216659925220782532310740029859724040953172722284396649267492796581406682372623737058029486299747560242048289371730498469013254624926197370448570274608472908601837538428510032994130151612639424141252647431051005061549301984917592985964450772478640135976683671429946301703518157125293561789243341186842669299493702507184299202733906038601428600022679385958197625627783554867543992290907596547202921525047014521185226656101221747589065898205267883396713619257978386720889674688019425432249665325343383253620005988927856818851941226901882205932345316207976093485459770072152450553846087391517906347236862145646430562991225815898010872757227642981564994120524256974602413112251175513658986322508067427594117881313205465997502517112757680582441193483510424651388340195894794435867511213927499645243916053987598716480885550012438540899768235335174420810742225219841931372094625088845918819080875858777034511329464630439006576029467559826243744798024821762070694875004685617938367888270286172652044391709457403662863108885803287942117542340630822463835569398109035937373530350570877680173196724852670631835468725803405897157203657533300957578475953807034081488149438859426942990998145485256801792572966008252012944535111876895649792934902906581298299091707466216111626858859818882234288286552792655817498600615244430485874082922795230873181400604649540544535735511568637377733219448125742120284299381999006176737991004556977590905231788588646472093383268955355220789504893259004472956057645564488788617787788342214880559030700266584084638393738306183114400062622180774099383905775597438782822018421730623928182130307039372057514758017420841058221868623034172864473022024206475716947937064890471626384310868130654972460085233392191107516552352003723394606541491367808853600884238015834623180483008203642952414537912198187898828472426427359803107446882688446746947373166330195762522257323429202780622988313737421138200780231226252066248711631804213486454982528609214496398608820311071919495708994867690171508273318686770335650442549512483496495296321433245100444452366745639430784633384797218205011285276877956770467259375240808849651736712360444185227785736277288123821717891968872315213746880919725934991203456686750104103955991177376320908549497985076282049018532295190664794634329760632122102407991871553301335018616551495071155361724952275142143297424355173484977616288412828372117025981477756927589193171766624006604695890907909492991232880392620814422467958940626516157586112970593110866287579762260283531850177912776185236152685629995387305340108797604796901692035641499276898795124534346900455496227025525666027034926324360679795564711380750876588590369435798638159085698650663966807308657481025317553630906519102782060575539104055733277869571539072826491805563203615714070609559165971560502068518598042063419040595284628268868407903510989516292759987949853278986114037331877644372374952066266101011355874519201119849527876992718811662956795058782511830071792462812394048803130883630087219207810444099884447048449353633952486728628640225304623123473950864657039356047770150591371269263484470600632755836805062956060583674319657473147773076205195459174651548321857955264564977562169183033822934456971758453651439461013026857721617416927424654982511075700373564353292550990507466861871427525948470766058390753701048075143241963089806018800702108623384478911082131155948248110932307657339378407505276186685058993184039169857693526208009820193922193414196694477552008808785621911623222838973953086816659436669125604666229994788376336590555709769235016966711857030352198238805200495617595787240705162230851323106620547279852493638592110797668855504788914808079107026723223816230290727636646601607582436224905548541693198074328956501928486452136774826321372773131635217995238263523425225087616477735739748205820150857366267012844661369809324403701085561081279209953902570195103882016473931098124586426660667269875340631728359162003981024972454844497406826729773941516000886136583650682922750950844130924630508002296528548089046997033763299568324596876302428019507305342562901436279231141247271648931933258912467103242142076052601184039640871290808856336694109738625687735640902417579055860350080691849845918592243183423828666198488000645257336381956774641540114294642259791642177621764833937322245567295453655493622100038335455538048050842756519389478419806934320089856873326659160517878950506960364982763444240989053003802870216739032590584660225432566404534840263621968368127801202214138305798703769293809209708337295310191969600228174833249445545772223034204697264028143107911194400118896489505693414870444961681460777401112880747192642427135779836706763161916816706544330030914657224379824280480205041811073095865053543403854361603277105966620987190868862384419694917737109748113806436452878077485559105004546006275818464277822541893290333395508579782736909567765244165403033439373094913800850831430842714260599260443528387030941652787243087340665758398893272341210529741365227170796117339572597420348079704865680690137492316293652582755668085784733625245787088292653932818633621390755390879977993563128997379984420208341291361984073975924873723745387057597251073832374154415621255706842834448710739977247359148538902873715533587282423015491927361712703503207148781003262169259124854323840818785073011310912946404929365464527456530838630136776303546846716887422877827644361408424882526497530868335938488225756624999062191443582250809980580346017771166931518137025922109163495032864455183885192384268282308858757023236348527276370101034018802692749077566701773114855514912629773686505822364054006288899678884424462895923444872279463829984353483330691043390233671181948133730646009034689780090346633848925002746951522310805897937999949135135823580339534563123355518611343283695959308750029623872725298696120314875748222673103729179225175132931972369448451533281992462406652748389007484320434550337642724882602821795259316304506284684292225092031411220479289767797695916887760093575938086920457862118307131378633481733801564485037922264804979456933164802081161438100689203879356589076004546261860432167504931763086579819623271218334475349044342030617272997935677928256151884158623700509027991217857001042475320592882506498596725092625181044316477271292160176186363580025788834318760230599577281109752897150785477248639400365875171336319826193167670063548709454183214057575715271876575379003109844784603607727441465962488264007930923214533487281795654345947510414308808158365790476154485936650416413839306762583518858893731916063652262340680062200776823498403646086609359331990706113051128432811122157334565535181474741262965344269798275210524637420978422530334235160241784681121645953027834092604189351196329881440738979692010965101927909087410141284438944438173054469649527815336057436017847134496187217463888937195474004727410977482839383348955162745123336715616227440328624376314677496184948770237686457312422889194107106265307770984307606346970095659653443132001080370171400182792050368932983454174862166256996298576119960788456535092511638343360133101944197261599754015108421800081285382293156115530408228051997642111897462272790139475396505289975504531543165114969933170565499601123883533342592832640356598982127141783844800770019948555245390527664291642686937576211280182357091311446081105448292952314951259202974460463814295728105945779032744841982677502890287179608832083809184446852104141414642769134418140588481243690507561821032261039365034736635752106147750964020024376914549563581489233282522992568288919461483154230197810282168814266826534932924207523308128381713275212035864437771300521609376778033269277334750802479996094663596024984213130770698676371047986920332042957572951841280637015919064278010443852275658720151094122860120753698702723762617274865252452107140547606393279404619496616783149004356972063082707574952600497454396470284713519302729638557381550659105746907520252842770363916475989547920608521991301824188179493624509758305493686701075222567383198078750602970721894275986269037435008373319280429204585121560467300226743728477942270554687790858587760437134526376892932822137858803462129119134534594767634828083334991685402759322221381873010505675110316068628154962819088256963207765097240977594965847165015226282951691791121731969801028308980724467012719311975830449580122864367815117803611509282747221962578826464149254846289020313236489632949705161135667180257299687715811441535755968734675032955463512005383333201422000504361401892108608190195664302788166706218269621325687112204233314589967210111212832496681086925786392750145017571634910848243852928458084549148744966204672368275399032323899491569607924781006376572676720778592174668567739669783001404743392933265652683351694267452137407721976206890717900751734069214452656109759173233469002009679248282703998594892612561890257173129918670669463002423165967975168086790418616060830805654451358101160888625935656089077839730349639785200090555185633124557566393574535882772603329138669405074210757850270894194197200064436783949475008913149720454973429796578413674526809090138243142859963606746894814541223686261415141774819317533044875223032541251918383304579250531235620562638772183717231444490076003833584103121126145656669273033261130215011674416295837824768502259488217020189801664277138235433888100450850320602242190107084353842401896087664355450390468324366507782148831024191020486227950335576115159187864633504780993628533140885132230118721634861733025395758783495938830266822437376394180268913736208546532148661713969420214038156648918797652864051156203266363779320063352417837190641055376225906099134082778687738978008564518635589156318785969929384890399195701330526853695048769292156362488607069837451419286731102514670558448145232421771872239640833882768040982365931113004007136138702995955837652614749082018093277989001438121400538063573171398154181962078997148131869548657642256671345386043393809241564208419914323015085368516844519288093760957883564909397184597336059221897055000325476298078918201444893824248873038443623433193756189707940889057600206627140375492789595245536906244502216609526688641436751873468508536797021771365693346831429836900534221221251795762805429849303695549401505231752021127627067607982316025313852417159232332553575595447643742707823730166427338263871973768829966537438187510860062486160800731463051204762988527836467520437524945003751671016701450411255582734690426612968981248880998206309065034042699527324719338962109550692161327920923763208880976511490948352274042809991406225757069242128496492729820762697774227656770490952134022130864790851066244944946348719698678501732962172430888528870463215120935346724288943108562569167182203998898571461279658693487105063381636768146316839151312100886928119717306419056560079725472482689218956869856005235833941882664447422227550854257036018097691250697641280571464436183313831874891732646881016905983789406066309196413872283208336270515983923668910962669059070001371611447967818194182459410490845207650638945318640180147269255722705756167515035321189150755314699347636479439830118789395129618647179016360072231651788710329592259796874271471267350832277024611658105297806206601711637472319014339734515743151426102382058722405811089058048870533055667028382015064448545925954942421799310474400670098300758315605717427943331844815842728686151335384661834137362640185453150672155267937060731181432292754317840837552357099563551770119135917766012401954396364132707980570026641249533776980211893987818281125536254575575664436701869085603805259558014974842367130665720378336624636693959416474994790477259097802996157229534637416134868262393039476298289548203326556953260789607429552737980730782792998994414047718309606250440687416318067518641555814676590629109420982247749391116509711161687859867592522790178815183509414023262546596231721363410872683582898061862405561697897739679469962876466071456799679948995018942886150844252097390657902741717243984570708072303442844499228478654824858143290476021261245655553660425635063671546405416685579145239322882584524797795971266562508660395891079284357648768091974592737759161904778299427571639519945284626045763392555095451264979258006322427006663804749601696752017577718145313351736974389928110433326636706630762025109145918222817862758973837694581444696715680619498115874540321844218604988967931429998108458324970016856187194086317468007093688793889615751262013302468022108551731324069321079513438183531252003013350905294914585079243293212598634090714263305036957160237034147559865698639306078484377022855562778768946435311099308869344982100880823097239456149067839154565458846577459887704207741977738835069478849740629392371174995224003503996994530870969303311889960683397130059687209072519218957865433572100991550723555826102880560665470571144591562698095975005303796046898747712178626717619067825899031303385572634098446585354964529054288643681213974545236453581970383762771264463678545023315246596945285900416503748349490572923964419167522385605111063709612852966578723161546011438132929662936880376767730960253884103103505108205206324075956657920091642798149101934949077192931632104994726667688104695798794921473292030902074014791081682127762872570468003563176099794776758418985084212111792063568492568276158889251858064821716841623275533588512951515783278034126890503558323688345384659877279262069607872443505074220133318878158886197960430801640583846406798890585387462978113931236687827530782533069465712363754855193569294088346458289145779472248986864471581501691797662363775324034583193619459901408836220840972584651084406526844446120105994319459159455136948948615991364482662399336253242963982205773047473351561485007064591569871556218015612983281783591029240274849699628228322952579927175964981519948338774591493803900114805966426509988426787672615989807354768502064090446100814587692020345987079907008008800674134087838097247212990894522511287320915794927324850303863503932492073162107070851718976579329952121813937744610371734559472118692208114855998847486110760657917213468294815203199098529303994916961466753858273691365532404651208877951804187527926194354817660131804996258883004662062565847887871394928182866294568320315800232290299081040262378354571908827199455505035823056657038248234952331446367406470305436657877712965715660790770911458247705149876219497350260573944997876727759771327468021136145455451194795037729086016685514142617104010774465857246384722909277718681527965914030275473143803907659834288018178382545046300274948361643717505748098326561466421149600646936957976295866317612832518439637417022701546598324870190243720990894461760493145768398968382398973571410523909490438551703695110159384908798027472815486266190450381219688450198902543393090959696021229034410582013285464412136769519957922129736703303256135133665612531691020919603173927519638506138873917745946590442124384290052416389896596815158623034776643733151848652704018128494526663476761527949314164287675074417756549626783798413576420536516624729673429865374618251977678237825615680914799923374561915652514488877054117891776939985454223347244712498871878013211315522583742398162026840250710206478325448401275109891020388739801474217640503748048737862102211330748496659443979018977149270588584320765992367612393101266382546752925187381306720543860232646618082459131043816835001992013381062043379600745480976206535745646904095686822015205108282988040407001636722802213505928978077018648286375584404502209428795434619191774613628251799266738937008357933503130154374275023852371755368920390676218849284799609600621217553631275673168628814596601590945823560041695091128319173711231805393353234572760383579277466231373732694527081681127930863840313760508529658265941132884968551063648048763554834749036353545972130485456461993153331167185948613330109132959721422964362377321806198809560090634186614720810981949643610132202027748444862653719277820562559265160632932099601219432481620493507462971556386585649729564973722724357212523018546396161343714658871193818637657249435063037474483043579059296660915378679952632196850175753206692033206606973592187522690915846254879054561600892635717259365448221334162863150693165529398519683157966131451509867841582118924886535779248775361873068716071653444300669097145264345202037739532753316612444730426473501470344729639740759967804952136372136019478544199767914378765283445319022803396909877514145785796607629336127495624494496452234526177811685671245740501135956596739987057603779870949495570985070806173525774101297761115414333426883738405683431327649043518108282334594288239471240451692377983231898648467399520867186289303842570304183566009350625979276736927616410385946085576347928757524000722190088055538542705449956989741525464586975722142529092782857276763406736425717838292279807005145006382462745122136037809597897031089297733701041999810403911324851186414533696252118557609793046415616940910015786421090195387795528903641862943976513335983151164994242646417064064442441547038523804477769949114313697100977796409943884047660119279881623079717283711403397556688432340116456955919608907905698859541907227153467717630714680483727228054309416147525853769846692285101997414581052660258702673280668615207671048222475903009924608661447365803360787297046332817063246965398308337027965070921586960543669424112414883262930441030658489212542535617232282338157850699448458030366918208025849511727212018338905210976987601979932542404386067237004827226723560288973042178503285147458445656545428627854032385179219130521315830160039019636085000261842905712629607404665353107143318604032981100453308946127995735571433934349401596443400989640527792500408231880686041313025274077835294383121012067137870544988824470779404959883685367136337141926003216719870736332634653140744625834849067651624481496101994523258395263724475189245571898664504043081468135595534970947637024311244800106736141956358501731598637142510097772355516905255725724990849003133620766425530345675518329921769523203988407451691157115914813769388020070534280834268218653247739570647687080133916609525666320758535544525491906491052540319221521535714453523833785927809611329831543375693757721829141558705367816753915229394259063770484965772702517118077355712432415098468321790892264870469055787213790506708232466549868121247391373753504354755941312698622717702071072281598860281620777894798536350483693456024005092812511516865480340923592846421332211908041201959015256970839851081687657312018276704451430113644508005252183009230917350950699106329530571650132198354422165343009056703301801625787212822816126203417438986696794656942810563191129609753327356999679009813753894431526819487531269101877249338650886572698619265027325577862068901301968294268081993799539985807946146784941816127533712977726996260169166877747877330913766301209437239027112196065850139746569113203228468967973675202917171455529379001709735892219628933277091233624843249451161388886612312698881883374171563056771087544955808785001850336405959661909819890941903502742498384098091408574073188102500135694942151305682805914734401507106530027166256807699984602998852591855997779382980571874032360883031593380707175494532463086783712902647773062522272520238141335821526910228859596620874297653605523130923122887536838201305093781899465339371055591641982607768910720255728252671542397674034973923865010497457021184221352143529575278385351167455151248849532821272638904250721547413875668975334326138046746326957185459117686136873513847757191427323277189321100640747721856114461662579074320053357384468181627647802403084380738137230825281198166377278407914206774887682466499938361748172948531351855253701213256021135496104973719808448980347593323249798031283635300023643100204517510345677462973605976274020473121826578586123696413514375953416658437757603635062016933422932712826290613952862949064037371530362615514312581575470802702221246717590859393749552711215043256067360909977921203353122105153928913931403517177820452806485103569465076991632238787146546040974534165143318403106178018324225547302556475297092306474255890706225058111446776803997729408038031588318387323953509371130743578843649757842552610445999858507084200848189440894959779879219041601656382078997814868850084131828786236562670109331459120619960100019465733929783320924441935042437736740031657354653487023830574669847136386285834589564663134486210597058463344850755754260911410905777235023965591840709244014887191417775470801398099371900689090413275715894641715623293664578822330000457427902502070888298572952890180737102229511793940938052220380343265980366352537863947876495252113274945306402498286872051136210140995599405060103618270047975641168246674968739503800833092269969259412307293902568144243177365782828963414372495888736045285544052212890002394170525817408941254956922675112562534879381051992078466870258274385205261011310581790057222943512362731615793990223978872963288677090964400477209110183450491331880958462426245152581924581389182507823536728709509965141192138596621545107820234902692538598009395131882804364675878157572164895455059681756782292496121027427048541055665166385796012150747281208590477300770256851200476064501791310084236766395794983230421021558380555737947283878598513310481544707649436328656769883202049157807982080682601891810409911821329418224473954967324049177337819978155772951305574785908542143092499187116015643665298173434670219063810405923000632729237548444050750467121839753770243462204116777277899465125707776627032515765851583306084344405921659099897647040410419667281673186779925701752652299781097459467102772333446334208923704037509166862969333965088375404422511862174420719496600683219524426012124471652302869791704777858974025531944104839881253410607570519143515039993858527296550129362679967859848062579916594175074370515326262652847300876855106616017197565812568446426518948162122705336352991691732700651967220427727223637644876137773362558767184534865274058536223848241122920308062925705964585790679340842226393603507230994299005643931981554262553816295600484201626980966728227403503642318785500434237556349953827213231733010041491164309914118637651452487764820832336398990802229670741647986822260852299741429455816097261044026696820253998767204450828048338462577692667540049146571423148419555392392026609096539588371864638242100387021634797826683835477058667773286869997005711754065374867182993037560819805078974918397844200381434826496298859618696081325342706144913122058247398427810400837078851903446976315219987703046598968237393013456286250134865743917156893404113847617409559829675987370565429156037344171909619517684765374420300429021700203426922197292648435355303240100697093960700154886781533533066825418190212717169045262424045540919083022260902682668674270560476703013497438414348951857105850522055534190973493734556188752409848876909410740018247820461102966401104700111679014081846762904595093895602317146258598533613840870074363102589948942381023657578734857214541054467982108704799642509479591192104265473258285005339831822176329964050889068192233592029017388738474296186476121681808785507367481944644065808961104909212807621458261274457229192748444008687119353436987430915193377219971770243599839300381599402179567189191358707058121784256085471669943981246039713223400582021406034559976479783910154973842370715628275609062004985591149203300511423227634860934419595126876271528478225937639619530891457982798206483038404806301924355161974713265896283624682366853360078971327274451801920708029508486081887121324433407778050709092558009995062356227408126175873916184827844573208050370767527983318696862421418647505242734915855648718097851704131297530628856418688149060736839444910292093689847726552683391770465203016663533733209432050029264431859838615295906759910498422859350049954500372411549521696333591233530654805164435753761180968013389025280710827970595361646285948702814427681178585380776200709598321540984842683453681220419168774185073978277314494423363988647733475661165127584455339030533530398143148340070426273267217222713342382193534960396386392652054836092672871416859018350086168616228658805623017726260199487948887231112108343416817228307645904675945935096136891310690329113616684548865985830613933216322441961066879454918884874883588610055216334185373982179590582186828195757454659515144548257974043555125398908731176498960698034500096745922318112209062607383298602852024433683121338413069611935687465921655373025305718877071089026941763215563424681030885584437169261572402572031628041716524672277250789876356152766514797461262449445107708020052825755567686463857938601379049960286827158096106589225173172479250228282147759854584062165481991537916460843080175220886696671327914061147487664500221775746100878446679276013809308051778820734565457668653080123608082565610216844198312243066901993598225458918701286799414686419373814468695136237977360451062669112027045771561388008354803694951720120697587945444205281238832007896536311002240226255394830330365199556384603515101949305374458299221974520669966710320990442666579109273510297753530475967364173733874878838192738678146111974417086586199562681790762775727422874612811798725592152219718369322286378555668619689481003397524213073242703941841443223870721278634909476229566463248805089397088234188253197702293281227000956168532578206910790224791952461592254209598684355071747598086088507406935241226429880971524160826819033230007332179208479676895710392805104013910938040270962154294054518142603399043480650065278905783252327455935233136006116313313444530821661359330993404002175599747386534037660597780917649437987486360535660679326398746793885509851397272484527633922220206434131749739364123697983349599596030784939385558551438037427144084122775254287219165544013746838440490661934644529534742989919105796535725485502000569197771799452189624116548799745862955450248541798677557769251780403997890679094079059891721911472316717705948221209523014690747045858546235540062123400396502321005720131964732518342250170780789138358960658037994055778835531678866207861243862948182453087409740498597437350758592409179394681225641935040165655872308136160918129599831263369917490062485121710045810444349190283051014223832480321189316290754710249037559199986574020567068683610673920648104918729181731057638026867069213070634041230089022861936816520289794293368986319249731024428762332366071304960798210816458177645720686647988639762919263341749210450166888575466762229192985400084766211202472439502350982191969132945630057766480431049062468542699111418702695404046805596426213098169136083278603225386314753028407320859324756178896311748971521536975051495060816241458963032585360278148707988454638438187202066915265688187099386682890550078927659624288794568023556917626732721979125998670678374490718512796927540086605533859750542437247774804852658572640939696000166179380211772803401995779135412458191382820344266975269778255363795172502077008451600481179602220955843412708093434388216890031271081179431919230731433953693324362637424911048046291589097378146041016347581099673577809093768046153815393176429063084804796944631106489965548517669075898632223686737603675191738746835069329893221815921231894014254749289549048147156610830522607101317111129362047092887364999732196609468864370078164467145239128987210669113481372026842395884183497402769175309617400906949315532664940847507872663371211610389077700511402753279256276172562146438762856466702417748906274799910636886028776054256427358337810832757244484845303975141622725623432783303163761413313726074594344096977121627126860242163088513647380800856770432257318797098467239890583812398639983960071083295783410120684815183201656421099612850980262955317690051806545870802838129845886897608168462213565996878162529812673322303160150639798903787480384892286640289532755522038761544384241918693853910860876480455090994397758552032499559700706127983143560906650433114247630927339297124194538747231595491885238769768490021828993902686113874652036315155316066828469391173847684133000082977665382925149684750393814377910574192881005653584153181569494997441856524113274885569934532837473788451157600840467860388577690811759784140519036705106513424113724615492123675631494117427842434236005967088873463089841986115365011639815073596048672304673715268412863807155528518107554579811127619213870926608020044705920211094535913990638552439641392621621507568842883707435837786192867921175491481120152057443720395913683997547813545390298106592552186795007197041755448281092374987305070959436937530589960108644252891933161035231319691315224128344956393351240417239293637905214137638127436155525265631379304255165045054296615539738634033925872748912413820973463066286725519789835258954441271785090272828360536666150151725866825231334539666007702973913624071378059040487808837895538278820844716741588811940460467808152050490213628867333060646065791118515487413350675514006111781184133832433577810017060619395962324802723797185854259207450579079874816427058685630000817737963580182621547097302493908061634829770426665579585465052306248087231584246637932645467804712987234850477457453762411640408624573885894790646982494694389922101702995253256415069617534250598354051297831740210771075388401104407739248211663201186928447264947593506353729263881512498319236421745165061989108072076880443042476956963339143145295800556089246558907258287284708940375346076126399451438912954981126781167312977647509898560882461099556605458790025182034266538623628727375276837764655473345380706208736755800042209927004045762455507710617253297130880997123663078159185082371936065541017790312272217845060447939647692053755925875777454093562773688972919088163321550894298999145833448718251370245684582028035350589105714311628723334179466515665689105638889306833599440317728367894512796858007838920215032133197696290182497929316797326403115255191881261776541503096534923379374696165678589441190558818713738481003458579592765477008199823094240263337986418088944350474963516936436401034137948214121150579085885062744360417466254645274466699705722218181875607315486319081431667553751270756591453485279635466205266771574025234847712654655166402280333099056403761866714994995636518046126820937074537755385362316171710065519584125446336512837304544844146088028209530035473311709821527146014048798421231585589007700231291916222730199396036008840234352351052272311479347461661874249117862100201310394659973053805089470608975536403754617111074952109195705153390867439752304742390567922558993123455896030334131305014855740819126829802285754849761761194039228260677511734821886710768397112462382212884353517629451580426991959790121402828446831994177757754480035050711794756729263749978062522898995626725940332259279656145810405175738933767465242822337068155177834985981814566143417727883572063553175129115415401488850290216131870513492755842941684115080851811832761740155730654735954334846376038102485907331813625099625097946957402010574120446109811300328827663659842262936770802432117929649287195740776254588099093877142785422251620654544870094130356131836622888249526819434848215182438464010659384805073847840167319260830846634902524672465277545884928111102303259849459412346475985661186977746067324959579548940897558385284142914227580252621895059603152868605563200936814475486738721723571031751137750145462593369730697790233224395308715354911201343892746251879883713846234239266105443779025043993355482494864478805702350622804683733953060086559424116453460483535097995891955484227153235099997024022815503462665419329228074761083732900513021980998904907500140306818625771014443108439598669662418690013536791538627262538335386589905155231212724397118291098558481632446138791070673051139793489879569578978669133198926463296357976213717112046245753217290006433803117822165762644178357951642067920870431042689275774611880903265769426710491836043708300480525227761303445000015372465754914018895528206974982444030137156383354081396906642075723093326786310941837141879112951596608171957465965079128921329376503530109394371747765059682258407907120701601658676639609494869688157888049290577458408652094517953450805515674430589260728333326293836466734188868223952406231452442226995649647905399777265586897382635466443173664764229780894620250560325186703125763552750401702892072553542250874597210844112988851295690736759991837483321289260672398862605624989629967252397317162756134449689603227516725265955920826596480811591554618462664075804264854707426467294927410085711055595185837410312012892277840663093538485394059093547869639765426978903196784379207771126466217048412997212058022637236129625437360941308479060745644459195846850165318347125263664011124128496313818168652012881804579285872074277613524149284150915227147471990310798320052846924067521404388578262431294815026686481916117673314321405696930795694889767892707168146505869267433907420663998096498038245250190199557345428264878243747628490108750165747604830538140007726013890120689824948861441554873304655386936673799042557755296647381876507647078100506089515450037396369790964412507533480663207471772333042151173821623825594970266067802451406349450310814786811567975266510501728887700687770494596066301414218458175179791250590052925862138601637443095444696665356156951227536130109617413910579907794198452130690785601830231808878466355526365199871244986495791355538075901623727182284935369104769732788798752824318413899333131687660329178154999886245954734581047613333999188340082298651813730775321078860083064732321120002713196168741402422379374077160166317275359140168558465832889307029803296849168602388942636679193113818959434772634975523657481525672662683465377933818134192634528297808909350578732775667815061003719886568700598694589663288527738867807494031484243391305159797124519479845876862841520298274473934512670637897193213783233478544496800782122883716573508257525733644457957504373135912379815431560892205687603887472191226866217577447426858800816712755066613968752445864257101755172779355470451070336180133660422807535417139827102521585625643313895400370745421605463920609413228119553338966375617980435245576768837682467925793603522655441148249006588167682698810472110091159474478168018190398573966766325591656213778611915567768016357927452136579752021680943999786995028736991851503288456858051566497907092752060332303498362548518639808885523016401867915649028519032216539454464022073958199263198665022639878990990151677281265309775772062515203292897194673064008553262590121350879272562177274804784497753862383906174588784038761025001384705794102260581883011507069243851221598017333606878249927977537585073528390025745464325731533168440059402597219773149548227828434581292684763458982789591156460400418838862768184910210409053001745303422986952406493226041763299580587233977808986303878302061797423221750361764488355980968444629291505190432718232438096594642963578462775733642818763479788357585148056522711031419051588304099945935712095799123071591681320857935638405583069833213471026598557358548174842151975817484889237590444992519562626092302501752591697502609087536901433457073471367052813993261523527869954511676228361163995414238568959358657876506589467268784720833877621923453990652388507222420792195111722329337606240350259883976429965089039677115067055963105757469337310513668774971387515505024568263150531226610038191174396825850329147128850512494152201496292151408634185585823123754006744476006219100145071680721164028791997222785834322536801430490551745238421105120497956323108331351593514527355639662765857783793399788378457752062228198911014023181539356937001570828305329591694430332734341648226260526677974160690067127247635485231982176000944471777331613288625230698124653291176911437248144342752820044269918545095111633933281719262230100515134875190085063853984078883217718448994291789095285177276925616439544617740702559926553145520090456907821076465275097067623323067199544110677471104522452528768301742251066860586311574289098173431264594751502260861811368872037559176498459142842090986439483769829889725003850144483064058244676703541584930618724390926124196379494063740889327243627901634385104727196086595316780079410030822334219133020080490210149064527150626884321952601090906117368723783806324506771504307012364533343082482378538705618963357568978879811822108379639779617229345411432890099302069144240638042638870174376973287896732245209072589199053447077346725092155372070150537194847473109459373247617154014725887632787324732145921176389276887265344265280634605226152792650442073937669796703508066939611990158895643148436645622108158221760886525102254006786196674783121519001050878642466436142444945448967507192180970344239593777444342383018401255272470961635279729919003609121442675936688830555973672858292763774088073870270740379010129362749251806996076843183542194525783351612437126879464780219463299534112081336334081768124942437643998607440369228522738900310516986984565618519298752475296282560948579380455593034729792567917510153928465426552925562261835930109701302993720801860298988653818592035536734998329756194783766992485236537002367591396317817088015097171927488620041910291505243776825670528167905919496556434131803072873141608041109190013651835096045680810593779360666584921168186711400480564294461165366847234942910481008475531450507408924383873206371056684910705241875205087011050734134331073914576244460301169866418099115989288967542300835266944976881230400509450716337825247804505861593576511881984435557988861719299344188289448521395853494308533023231297819155038868595142020249349129533340471486104947172272473624404609426013987704343437264028686361506396112060574541992985323261209741347083588123479628506704188442600593996906242571233536543256359642740487744884731734140570159759858042545527362634175292058609838803481340363835436756866557972679519403768860462613979415606442735703980543014882141278808294510671870596687279171410875249768492225558484825511626868294616235378399867210278950133784534452196831044260457489287769983065472990893853662433725852480827637758863659742895577746312010139390978284226024666217977829902559154883212246039322584921546689321100591435657619474113121508150998062027312227598226872519062537289678845749114292390907196292348631086549395325224219206928334754430376075178943243498528999076241258046616708496063969263748042821848327905972341535294855947097195024327550892599091480498201611578976210640889275018370127492156223064861760437601229760271722144887192077479546164743934702378681225716027258962360709450456797416174200469548610001823655992331571315942398518112664508822081313931922448458768550704610847500863071221508273070873237879227682698649632913603532310878354424940164933137806396667988380530125864202488472356789081531948961603172394619454012651489291229377057417827920932504916292232201393502054580268572048475750842822683443621026092210169247060325609833587714841567195978765997583763008779202542284952375759490160676611016164035703960394561081626374106666454084663948116793743277769069135553576065510654876100536887374760046604368235957785228514108118630833104723826223112705763848716089564919799677360286436871867407653832728891293035189422275055843501032494499977487316192604647005691955105522554988534875291431290656651418952409088937504105138255582679746928184291713553129694239251227394658614759662144276083237035964035868888450028886799883046637500029706776399422440423766061790993316454878120313181188199957301196089556196089061278891859643181943889995673424153730552068546165075086951959243555609682349208086011821824227016721704851265848824852944929485969881275001000495716413320105478406624509305569119120289126962509478692824094766358078606959718391306200920530708121518256282953807755714311122793292664631510763555485821904252607694946105161295482301805097172392773677051060239838201400822482782710554709758440193112548705573066442725870705224490540033013310984239031431091668650040898820495636438146405028415961088380577612290642329059309935918349979384566362312502340794855776961280594303427165415397400521465950922398632782587590276496671560642070148730143840450566621249239830221958772194250649886050249469920805832691032008925133545979714117688115302258824022531210424709043098796214222791421162814565899461077152511122892627507556147623020258319085742584471396503968735060136525771771042086831072112491386620415060695167854029153912084722712224192639476939340456036298218216243653903172652232045800473250244354772158085146655288015964764058326076927551776751661575349560857169115098467915162341366591292647034002234491004746044717776581187393132334506778318714371655838645332249427509079315232848309067253024444477674505650728946038297994148104616053352877204166700840067950777465795670066592023217619496627277476527893989280133406022589326318006419665744670306683332299366741987162145713810089453532841581311772741952375177490011671491926904779908765701586118641936143285099759609117450375991166420846884311028109750612635417440642652107959150379328707728955551473351613639138281478169891446657314916783754968133270172064341692772419865136433986699518941094122485658396628144764605040394059172806099548353886301397634006460994302001590997838974699102097912539646106100283591954124668540113961930610668036502615208299550249123296147253299409244939161657712280618903679269219810265107341280677307029301616029897299006605841005998698798177878445953301676720896950518554571133483774166614810585230932578053083564363945457434966039613114084719673027354699751897735975113296607847987278047197158709650854796369937580801550356621855858773715340143047263465033162508180583076191385723749344913050894140293633303308259669451678826646331998911541105133586201205299177395968094301943111032676288176158005012714119544859131347490628428166371570336528220756222553290324390432422722913455067722165632132987327528154517014662776944934124893542364070542639153475826675041572336752893288088256111419411389684138700433625098620655306677187088740030097083091294147100495139298848632724084558044203377021459122745784212035134629993889866948864371422394713016584226080088437881877446402679324638170039219633554582503398348930064731356140263416310498129322949365729538744910462557964412643461835719394613735515337736198556346243075527658404792266001247735971481233068476585862015268803955087768555923058574601714838872603543568971483808274413501509360394035467636021976630558715365143913068154436146601170888963776028583155902420888420775619614467762914208969763989852297453584535920785722575335314228790358655327385838052072498932601375406059172703125659215471890307450577769856315330380859833487113048452290989724761486549956811853546046522445553312819532737776052373805033280864090639901729095645031711744648992172854853423094257240270751789366650300529143551945568503327248771785119896378678065360445488003141541508474309264716530980326466148700702532000540650062113140673322483275758070361866469362298368414121967922140222253551195791838465341736357731258152136692899486043913724158842893499381760800024256498774974154169502335262601414127567306170548125024943786466640057057753267355363334723911844172360641032276936699373239341537578840628266557879987711541325792249558177095381188353604776259898074828751420736983382720980841461493153100046656442095693849727425425324148147373573587724910623057390473179367974582856164961441084349217900927436200382360415325916000272079061061091208948218145051730136145911917257878774361841298997849543866991642853731646861907225070089982749390209012634857060935335261541247910039353337826646064116029984735476991943633100026720269663836380254571486808258431298566960137937581352691442401644454739943292301802231826137108725875665967074411686516364386651793206036131429014550708662545870493916539880293893400521024744628965756791015413728772258101130219325028226505231602301714738340581492081164416438615048536604833098412028556593741316952803512788050133442161850976374120579880923363811945301499524432729744864729781424130942436965765560765327543094775785238388700928121445443369024636650696760174379554398667793151181924315195917936160695971939282991623277327319758790071624130328491979101610897497192797247686177237604223329806230214903340857581597692577640964254011812077256108812792269431609413653906881636052992454018170384824535384370398702000854677669871442594326894333599009116409940115945132493058029607380750362154072701971758358336822958420603134386038010406854668152741965385575558991254042527437513796171977497137596841427718132570218481961981170547566171167847177569534258861735244259097457353081630356014598682226663950781039859311851547500572638416932523918750438599988096162659419208605128765357889020154917901875769278757482987818679336169679060275597886646324357456950405252137414140021585873934525916866916851680674395837579749387471903871445313285251813447650025503586831632438515087693776570285330960449541147192458793801925323736954843584629483354046288528082182843332411813268863692750084123301136507523852605385250253602474222584533375784720912362994153814391583711505216583209455412722297982858746320222678964595581015886480891957198900664167731741712569036657412279206453042558453299184095953838920934247552592977467170712341881806641631418765078495520691915017683866621204602653751004447836987878803108127594563165430245828945183738409787560074077839655357781307202248239300940769888133098198756432116311078617589925037329605525620685810025751252386250411770477799513433183894783092932381848120014355921291763027750121897002151162638541735086480634673155321319981136473335127068925647725841952685505175112976206476906376444159319794414752660498058175781022703648641970342043691064957035435642186013828395519564617823097638168335642138120311868589058064159001065541944657226153720635026985984590484661645119045452105582459205643063685173502739858891829238721286269355408416575729504295044844412951075395182884242046296385692474658438654940010899853970825251860714162327858299215359517147132989324692245225899609490447819156589774674521246690947038450777808397553408735816535643147009993780498793849549417653386070040256659526986337831433286924286427055260846085045704800503154013349887891699248119327938786477413152937727806493581126735183092940034833612777908516543354345475772513938638385899532640418786426871357605746456747859526154782790959143282549899343918600069571249401589042945159059510692221073075232098502712017611816691534557328463346881429144228739073705310379557049341499484168655998370870993085539370054834041493106479115461317172261535643271026043320672617137210602598563860151748588270121459604884838608865320874256897743401635218976984842116364248699599966932572481346547174658596016895417610203936825707473840251254835540304126871606752993919518764002207736165054611630986767229621351719584377264689700898025377268690216927180394908449566549772113953140408748021685464505596976885982383105969408835308042747807553329884745652236995047172001428828108436905990443850419732745702832942046599022207841410107486241203267662514936233861508183851493718788251628935700387620250362221198142578848284757462775156502996028648785184422160137634201508888835988078075313725597152571363308331272187955087271566160307813596026015612438483622006470623457004913636489184160415912811164043253267970315910538300301776852255903604415687240975968388368104815599448827832615900068132140132319761653856974312637215766913596687410133075332932300032967341076070898678038938912298501514859685612740102557988372639710961217614452958035634559436704432302829909206759705803752198452457326403001836549569135803956522209951351210679466134447959518436075323047031321248630410203179767605567577229388398482047736308040112775531220427860950500987567202799540312764831929275257445656255197130695114651470861695596353396799343325459391151883740506752909935385350595573656415098479619145896070083145740845295896024974260909795726873530592976654167272023649887455627491049988114994698882987366093072855852046377421957332284686961035600074932854500518592539083708618366159018528666986007994732047653543642436982116477032342296456229644829690929044941446989990932947022295376062226141242936740759944915507413056564824213225125897660556680741799462804535782067059435781023150503699822826471650225340474668067586215042851499928045015556796216604429099227856229088223688612998147831288842727383301025983140036381237308709908684630566715765267961916355132065643766641364029786415645192894559459373978212058483658834456077533556110897169094420628432145879555495476367136961258830777323914886811626840555230593899822813910556763153588036052040201205006983469515982707576886386019524246602558988224870448796968910918634130136442027249611299641293772961490360769681588242930103436311908006561770261274737253007420875167003630186192891600048919768301838426676634006420473610263030118648643259112004980385875135466866101565651044454839261428130544005728763727494199307622845157480359830139943027696111629956365317616138827827204434500537827128831346305057186913111617848483042250240422629284715530673237304959877470286248521938193645499907141092536929179198758250558050750493756732575946153315520066217275563266600972928268252966760682517555456435483796731416960089287420243259273546309971204358809886092232590616251595848478204771246575996765205118637604944440820395327856364488980571408151749733412891280498818760510008876791037711409070742922537743754329619757865950312478740680695766204353306210102262025076420751539087770461293344006455901809138112433500136089065053114026399756515479577036192341805653648800557662804733211021683313816513827523354555183343015784778830049414222702431397000753088544552649727106957786427294835169506888851852971648133924545832487913846660082033813233839491566648292433777734247512392574628169301534355815267617993663934115930961349547736308795542603128380808200979390637008202686920034249951898223428333214774588539661106266473948631674924791278371247933381778409903176141059692901603522309240204967110376317729701382919965706301327522240051072780776313442797399164944653280252827280104907802180583947050128584124976268571633710362283049784224419924175054750001138520328192227033864263887268615737133201501196247588482863245957003635847014270356395806636183743936862862684817290255348967677059643145362881684487429488430835706011854333457538989916538134873162822824557502672992358211033685720348094810775444498891542748650292285057873699458876463536157304847668178681082301727477894197445872911850866815883725523028168313407088984250608605852752496191596786095262647101512774952847078714116154045323864609746758081238655480609038631549392523710209210946792611447068445128722350836921598235089276174034770569053719511468568424757293904140633772492525120229598988114995831224648399994748425609673736020952329850113135273225933961258627285885025778556032058766738258090938517419422102841653875305180543141032043877662714220777711008885925135752770263950681121835337447378490617708521193889235945271283466704401535437174415278023076685923246310190409400818819799587619889141249262724133334955245799325485165068240564488386912993238546422722551051050129535806435332456060107027345152440859104319616130662468928711833756226909121982116249564019120635285523478198403732076140660262156338115648534290799551864274991038764092581047813173446509081253558700081345525929376409473768141504922295802235257185774201003355565649720220154365207765080215596270985297199678268737937068516138674650108499542532644315121152262158262943763409461546871929118935548343171268402957688090900846289350656039059428471255822357044290369140058126290460063482476071887733112389335482229466954162309393969739577304554360734436624666756113974846323134898168874775363563108899481652497409106188810655311560147234095069062523980969399362441116887280537844406652576993367315297401809984416769633015366101546413353701913663295222178647842599884911423165801192333456249714466209143346094631323506503534669707768308787661751582215144471529072892747696792641218976727431169679716116818373975618480969031056237921830005863321375416909628868296641559299840469108684478165989779329122950977515221738869229248660182296232150363516658683661582529155802905683855861665901918898240572525605036400760702414812325203936654592556789869631156385851960833808021444910643604173260897118500884821537255616379071343716106373376463870592068989235181923361308935231430308620175820112277565387123473829609850909207293059871212251506212445142517575276553102300162498355503342081035553808086566418218019373063634823754035899313591448234423374027575988297914092820794146274805641132285254081340520654231929194342420177901807215414262116039599632889939474124914402572947052257814591297560719564013373323743547731667273150963834821087180778062376089940147666619084750523254217540140311627740995859340898329268780081044223683386850464703670865235873537858070798832874254432424504288613877280934443908321147700408007878304947010866046061771910583645041348024799240681976414438797438944031563802652406691447208278148616672957919579568517142707492672622202951500079961194382487100390505953460750944348656705777147562868425646868282090244213986046450604381379341153949068837951490085980747791496449232585972488759342277497044900976591023162194156244215068515209905798173097827644383393963772889670123921716448195632412542363471621035114366516448797228548139793726723765638117572101400569700049537020623153925983842742470833014555914682765978513099367406651847319655187735410084013789907578992616950609801753551214257211960631786405581136012092651365410354220220685429769578266408438545617859578671307866690631966865337034669452987492076065587529394462705115602480523100270565814056446258558116045758323958124960145983025075057896475909535398438576531941670084635959140081125885395544134117284542919101639144015632483411884320719383941613396107759277627214647794280240153524369252149838882712505578871324138936761466815297479180842100049123608400388277503459839230241494543271262006679367213143741851759806612448747582314512173027059764687912176312915177934693712042916004788304802648101270767122824983495192807809414796116542982861886761392186959747911772574567950648503361281546924183971271068102282251625865038469754404126381238980076543937256151046711901788645782546281336828714314622613718245553174046695133497679322311099126705272382436358672865522584864974606014078059721190625440374371224301723994367980895564153681087218178177363559252925789112084314732488791002512312271204996401466575396250365883504669126521844722985350067212627119877028008106707821138813304242257668183953032300290424096939240802241060280119706649198717157940315791994851754211772661608774623993828379985797949250369156909953546925726133332204862804452580287469343810148358364871035739416381854430122012857239881092489655298108579936403684576177191810483247671011293972737647251166196977992588575645221126643484879340504668003293384399041192726452229530803556567223996468601633392533087919854627532536925649262238953322910469118942915334471143755071301963010007009797333411034778824074945972238562778338119147926423624979083422459873887841489665317690144911739622593941951160886692633803703584542716740070475756004410072364941892287197877573735582763996831958439300646510183455843495918460479054163227898391253694879457807549308807318701604874235717750899694415204220680121706028524806685929257946859682841097803959169510212533076611698786943938040893166722367644106643233051183754028152091246042991172680587452436505539017157662449463216651809580597500331788333718006337461885484892931755620886493873448978525975007868064214848447669717163169635766623633495467206910299909958283251457897416072855631888320361996308754211456629408185557509266254927877796661934194274230501814531563528073256525682084537697121474001700835216972923750191569730441595919388660261142933595536179348971394115975528124162262740318207253341615759011561326061405623206408564032291120280750841665929758890993336394049719246547839133315184413681789094584401612896801257162140406027794367015999071015966616896602267038962843472075214192352341171378517668605619685243766736391240111755813256062418222390328200038987757876543350658051758226572438917455553550937040836647905187663991959304558832253171968896417625856610320790905561391406337247105884225031762495798832249337329321170243602691108442195518197427638949329765280178038937834549032819160824113890456683557349888081597794378996246805592354334971038946230609592647527743919786667649171705140945228985494903205440784515075493748780545586518419612045358567253117756342282659838348019188721572688318412995629461627417349314058352411035004454026761294111805667977259102085937247900916920502401420930992630056603602380027376795387339188153779815285450677226870238953156660362422726671937908861806934088782532222912743495792182734566918461715384723176185226984132161453779099818441165194893771610291470353161940880597351678359165583338524705167129071702985749836600792942798640800089312586078084078663083821815927423857286611714363753146372166581252598829977592112973731625519822873330924743210998027870179745700580148666609601102900173268704889706560264604292526258435852346892518117902239483797697678445387591579325390931216752216296327850638315380928953940434032471039945258456235559504720073896277086365202071845894286349769251215578654202631529274213558187051757710294563177362665925931932398249963021057516871444435473785178060596235722200132731704914572884116220395475375709049920058002126062270140956248525312858147760762853608667221488689081520506453875416397510772856980784357877206053640503867075018922554748257142578862744651768707643790106574427913888755770690019260259697926637197094227549813739399738383252148862096719033476481232020914819444531189523560601070600299424473076260625101096297316380149274339842847131401019849271215211669478115266298745164975666301629213902618809980632157939513428581969422373074846016197472971847735186126862265338657617210671854744814649700884323141655372049885479742377679148772004882003258798524261852956911446073249285304228829188262444709960603962814411400858796959780499363564007010282398954345933870719389954436535843889483381192220473824755768495825125427715625552889149782028542347267886067568141071407585811686753883232972648134578126993506787563432583078042627227876044478195491863790331512829350713170774095863360859702022119710353261308210516971129075020264819645226631480124600713443995364447227569646931164251135416348803746902024600747369900545256630899031612769016599601481180227303876185523731823644795661687722721527622133137353249164304486324285446207469892401885369566220916046713492046244956644025726287629557487782668289055792330632534961375716419931597100517163230242498144996133469509564274322502833225693684060420992442054042579596493860592267081631951517496393276299336760199396062619662294049304135774293141337654085123550826740925837354305244782362048557246576205062725100354697276544719132219467896187254569660879106198399118338875665110362489983686620659558108520462009038705386747019613116528526933034391624800662264527796929188136536461247198203698565165042059577861151289268336194885786829773919280014594840742202135415014431398913421994410568639294581640051386358814341517531689127387255930016788710004952487278967084733416910063959629138041833547541408185134419317143022459432382906202071177669012426374007817992436145650148841744619005423322140695106262278245223265607013106257515430323683632398999261157613482871776353962228699922813383897337858438912808531806923146814969647010745690844761657653349689400746121260719875328925602752853334760180939778368820617536365574516587460620155181336144187976767080050335686869758087497572181286833687095094738067801107560649999626155600032305896770941094334850999249751887955401078499244298183648438688882361712500126402735779890176969973421368954445094706976262097210540600912249505255584974047120672261278290052822375236275576661587979705475104894061438562738578063003263557966105163485962021673939834456358690123380494673869431629895530612747224630904605144240194003970267080524112766710748868647080552302301075265669531909513782470501641679714993543469211811218467884403339050883541669764847607196566050085563372281192035442102276334656303656020962620607048851462943290606175056836928201791869023163049920193217840509289033049241231053930643575003960906258144360225276109603823292779691235449849091552920146730067486259912565568014454210052935436798844436466275776686578525758719387043555424031869702366298186215261289938340019779066151851131092750050566802025685289118092338594116280476592084632477487200406948059880395794080297239744511302888134805696033245066384659098698401878349044216449372237001498675863361588983925885761609060392537695921100831756685650491192975949103088217695264537515606596460154865748220124976879139793261408150948494544531524600533307399153518916422805117577405103300590011026364937002591394299889611777357628752947069337229468896922506730972058817317123325474387500395371590676800316383308855102845091399143532366912799190305245245987705271857261545147959658412727221044627184067681160546432791521632732770776505795439736293542039659186667204185828830589303114721117611804288633238322900549335807994522780932684618338493575059812435684599588394371902749589567631023044408007531095749228557329547876426048016946011069064584251533921449860260471705747180144012834948897101833087376352875904066269361020654508639263043899884065997033698708415011512581410335068493298176826833630448422211718882538037527271350230118700812870468274144790412517554088729503593663026822729990277054833783332295404257146454853801970634529365123521870065016182860442370821000275112111962922790943851766352942281953223429223843470118515947168777270393307031180898398304536267890418396313758694438724828138327729291596676957514690288720035762778874525183531891421739954625773480431125953729487884912643418484759119879391320424220205819100948492214363219478009676352349708113659233496811416302866131645678301237500481380827662140165577584148718766340977200047674387777491643593515547099373352966730094437250923671928968496877589750073249442096182947547496222300612863579236970939082652442462194002504477986599976559829138152966170694050664488812132016347371588253863498995698688016147441994929800250962920986507640966566755108326687829460540210779065611522113063660030439328299428788185995159060460198241241560699072430447877671681508051364379134940018888527320262412351827208624440316747090058980682378356356236424305736241424752500228686734420241426494287933170262664256952693992506737856835587493438035229674576022073845727737226661562491838474298971131718430910779296088820592688101101154712032596388146076359537022138841714267654446875482860994773839455214915627338953613419155119090190496764347681015623501825192409443890687190570661013567794224974857514372101412728744148524589907229809646379655809419269632318406111514885699943947154999020756386822398809419417692316527590776093493717693167882388655094362289505309745176003790512411201537215270899332609766995680189633149754371293880470910624603457952781599068829914328035399886682788956396323668233074248652808614434299013795987158055491045191217853536442769554652727477167617552011392630526940108417668153594312748841867027794019380002249840681591284748192691618024776173304025808330169811684147661299169155407025259109587259301919750548421171555199301485395724681299606800162675078025592709630265651870344533519745820589960880473323691747969574638283187893569772358868262743742786610624917652179521601534221373523338488948122121527025016373320383477383000328678874389840207369933228882254366220587911716684108132562770083214874050478281516057708979608285366106006597686375368449099857447118473747683617242514878145320029751026040516957731827985238016130079140889271641937222731206445858184391327157968343616163989654142384620523548948840991830555746100722537374726025093471618013574378180487220196399794771621712667795838885901003039343254798353716009101912309172325295441969539210617051233809850478457046644841271984017345891769496949722486181466488787610901711740344249575426260228328677383771847794678788182143662343980387552283337914170413732341852066986862634468344250819521645734510904551166657612358227514981778025540156762967680949265260124115716724092018091151304832970170603190230316852438631149406843214886846202892770266321033308106984434806096377039896984946503745214444975095984113230593551738816031675142827982718641376100101933252414272213914813401015093449673915918621352377526550854068536800306991673853371493932147960078958398910611093006080254350608506490660082180178205456908149900456840656327727583439070624047053909473169676026015104289191566831951101455122890481496327349884907547789669609921046121694993813672034167837627961386140800366215150909522695074614192869080541645312457146851219653210610931850577257182092496272482384756157543827413948471786403203855413567834795794035432077602521964857112236739064552880299553681982767173203729059620980097093975656553910596382792234665572785396045697057578195278886064036243738043412141718371309479551711142929891431101723914256156563652202659459388658165153304125702093261308463425459163459632505603424797803703026306519555276930273163846915068662103977780437431309624185497239976100955070940998635291615413063335864202134755198515157192734874520570167297867083155876537721592722755148823172708274169237756608485174140312666599433321030519052576731071932140517206982447295186517689621214039026169790508252119804412380210405793145183974711965224593784450475431207805852462093878817997442138273721989963580621481003367013771270417602077101958731144848980662681108490707057231931602320657181431216007381198970120852931067148388186189047302615590959195998532163112321211299781812867626705872748254027492112557801951548521375153878143233234028854893786491015988279141693145465357371247475678688110676718538264596078057915275849861083256379073986673340643452806488676006436333282363093042522453780689997882060692279154757836685855478842969777947215977482823596624003685746583980849150853046080294857544212477480712286266373222715523418228984627542162158592318421754048632402349477933737228198353351483400491158164011312148517790747592647079474597891949421055698498859773422885554635743118930277247497136032825831517809160247568624799366490349624527009824756383481443671536649804455901546157617164975469935798617928990072888927520697332176029934836649364839122306471977077178811608258516491973931055911580643587445153912890106162503932436722639344242344299812161885193134569394783296121850561220444701267689742104708817584599713815749085148832535273359914392007679283850563017406310002009467662571460655016692977818536214602236311347165529476205639954152446462855970973779447668846772198938059160325389330324604244437036729335444612838263228289908134472686670614062736210627605089982089503194371117861263909706062943480912077919999679332458285615224957783268241179091151183536268424963442595054567852255339673016135652195633015895870888803748211272931726339085638929295203942738363243983817244073244295231928857925856076585718359256927490569605815964633114193272754203794486205230242715001035980394004650085070796677648543651570702801477655187852679162179170107286062957847657901068396882471701345969589097558411616640163727719286419155967296517123895938817451173606627416625745317408385705148181015646561872067776645936054040024198166105424432737121521519816242121493818879002331685879916247439928955308077342524497091454887781213488175562704037642706614382560475711109105132719712678820639107437189041492843658594345053157603326303289755667504601565649846908723373834071034958767260632698200918695322110365828241989840556794108671220816370500714431646904017842872192749380130505224301679933617976424231508849934381502827303864754321825853637016498556862583492777196845606945818771620825405871111128202614091406527369347362616389961528320189905592005141207793437496649926909714657190153201952809610837947887430753896865542827452620227518681712750928363653338906213187573585582176475614028128652649733749817441248535327337803364008869056847042099538722961569958666977299624889023961557612138511910004094766556085280339184588072619211194553491199352287131299026534857873520218007852900423119375474773883465476214795565928107000514493748280417329361731052343553117479491076867783770005887651053361813523464327987773645693497632077015805470909612900950452391024415869105429903652196048818552181630151952783036114016953395161841663294551009744411135325533722116141930509837698644491290585691153142145364417393996005803634439349008571612367438748679763314117492733124447812554714251304104871714161708112384115809823997420166182529190446792300628478625789571010920432686428973738556383897230225484680802237781824159349551099864254152006741329360763283784554825870701181528944493053212934075400663351472894767221106674194418670299910217256144378722840779694771601627351575873022208035201489310720772530620173270700223872225063477879366573758177770170955371503871288620431084076069182975420220106870508995269360749491300612195769572537702733207113521307162430312619530620210915079874518283183340418255573814532908809199804474889870994764631673963581332979811598555275772831109764142160725730006543575818768960802875835072823933818965574341930425427410458907054521304553947162616388028625645622492590934619351442236866848368615717970652088752447290376413994513686986037730594236481232818701475368587862592297572186523243814090031068362207110166732133895944781566273315196218604403561791963764742288080676770137726584663512956512457888476237964342674056893506754824360465866293868754465323950581063887316792942611319773737739604579314978733218972055947963475479977334390241681000102430580076444895115138473629950517260546189118581221167173345633913398249461751492362642536668187665521390435957992791365984435288650514595548253662584369063729635533105948508822892869622839173880645376865799755455584178543011257346288199733161948377967054600895890257502032417569944386334266000868430867863912685859545047095244116504527412338504984187599603904721504192644113724785956895079433843767170582066354327349530388220543127841961529496815138357992180505611831539445445115904394914106780205985451698395003652372141766936988687191327621846033424952670610774052340319766385699408762266246754899468206435355631542611354538195319173996318606481481430872993750986264948989285319683372741630990856209751952184133610390999690572799761033553886987454372579326791678246320596113347704419961438617352327618222465167504446248036745988597690250716742248035614610939188688624895524355161489828716053857766838464962811163091425628151423353835288789123198794037088816219244282200719607325502348604450085755554237665063808658091946810744755687693179739411122620083561413546314574385783943501571831649447220239639809272459010207730841118457350844427157714924788340521491556901411306990602579680271151179605426009404624736504757806322295684968798581424951919802902105421984788838071674024904483436691410608886030020329282476329575900441970147703552416701036108693432285198620111092034295220864750964847921396102763137276007192305288217476225436458705867899020328412748674790629310625167061224437861913532133990798315457052255683746957548109198178716310099448332080237752868768082922339729341290149355527937834933186143053315286889898243186990510043805516855804433605323823918254323308768977849095192511032850370387317989006758539723849281710321823871696863304210071863828546267715950433698045406923652695066597936305197160127490043872247855061094266432291641479504422322615108599995087139023049545940835565676073355529619958583194201984716410289794431631303191196093139041304681660567292533930725780923145787230714772734077726594117838877621231366073979183308644712153743714249644086154088583319210761141235458652602157177060267284373895423777916052190012383682500712993307018364578709756185328457060426134443956960675081582803268408095277257449566903541974818864794261608464239185862034969534741577091671220172021116217275269342520408105695728563507646612149021618908936276178680512085749504409056507390709405683049971688212286660113346073979721118554829520458069263511119484285972197237801702698753129276782915907542524875095113842779664089204251878295776596873343647491124803445661337948207583452049695009829152193362476461286533704489416302907748482725632317265691493556826980399271290383404497788679439373999479901025673276626664215014428457199198162066193336718062854547192385856526842591402318783546749408909896442092762287917392039396762069005941276520779177445824140095802488862288138384072607771349383138491088531283778822869931918417615156926699935002335474573041699035918197194143793860678623406428467910930546462151524791074073284783232813364658665694568516340653217859002499704175393868532831936331474289343517514058970101640604492977523857802915553661915231920149318473915930318934715299995502708417614645781587638806718407597255264538689073631849832628226493684993765718713720035180991818173376586110545868563529346998442198123408331012619807529583794829592154417274831893795751821030125624028566170185969603609841948691443080831702282039914693419504001526494782365731035415347449632799693544710556088063272111891066907444692843868315933054128864808982066927189313171671485662258874126552624788011881239457741257563590145789574260217569692212650460417045412927616887665958052067368077353346956220805262048420307477412447420945849164369499850735977382568303990114881204857447635800094169377493840317067074667587553034339323162362895610067839923161373134580630740507161151335937972159717798452886483429095420502883884867862854799520329581345906396737173481638557552216641941057326064393608616849934388028830934016282785869205077782242739551271226167507332418577736228213836705167262256579966276820375717712624031377527992953745142781958963585704585825567529708641795439067537208080642251032179828590059075849454361650173056194991318728860406612818490748260891311197149287327430725993458293651472600346322825978225309111009693050400719514257352057584024635511545095296049252347509323012141811232250141618190872358530448416361930337155698984236327001152130418659316045290746481498116777312939665571792051486079747448574956773805110419695828000924324868096273373687244234984071900637914949943673293415222466142595054962192690995396745687815813385817227009164259696124803446758823479776373158543430060947133664519872655997983062061925047613420226090015687723780742812134151404078663347358622728239353478883927628108686144043145290680887369392350230717309922122681866765859139226533068620446018484387365776447182877647290944264711297298008629342449978276156245183282931008978273095520750529051941899067498748777999075339578954107368902351318542626430454900017311663675462042478747068744693335478623913784972586743129408268337881763402632383904645764318876864998945084026380612000218432766785129161963464051142624182660423178762606296745104576597642497357060752438532233780511082608016418582995158064528884323004701729709228846252931258773467922858096032442055844149983208385904131085306585269833994700662923502989673445777862039750444825168854795736992935593415954866308039213077095933381818936256109508582273294398033522505085443904193041467032540585520414937387333287796470803917315084953622567062791394068491515692944346455083278310950479529826099686347035338728346711941490795861307423855066370664802850802972460062592863506095538563811284084443088416355071401369548585058985921748068398174604413095873549065396619499978282522604363107544456125195295246285268173383952016475094049201663820804719089912089714687339846657108400595158005494720138424564377526331016400342470462504787340645422184413190327419399242667710195199388833523955710597912436706599193398839013771735096054179776126980072549407768631514166902710105119897851596716827195166298055330440495236608474763032769099829442382371929908701821922217859283706410378859588530548702391300768433883592171333330378882164048124906990936416016363861539370667971012003674031635903560762502282593589263093126676498578421061605951547172575510259972546877751808005804590547498866025766534736496255718713261069142810644772757318111794388388342971631835798670415579153918656493418308677889263199043448748463880923021747278092246135325081533940813962665199627240851918664724860594630420168684006013628374282251073318504677311023108181615720152160508800505932993434879355090414267939802841887840812835006901700438104921408859927937904834984439308762775746029934233348030330138536356869062938207580410519624700329885445330226944715704070983476448962822333593161869704645202067691712034960934130056761510373908109664766782078103703308859518020930838524335728298171157327145287109945535331730003000613613947977705404873969321132656061955865645258892830157266881506383738343210228552466528260602037484976335282136391409885490017904308632461115372936078312143538393701977146270900169547506243065662286289498588636904000932563719924522027368354684787988354218370871189657463242916282855925339243250954278803003733512944797521200568246776152001559473330701256081541102638070241264476304238687446014183633915197353985135273030591737317677817993993545433613356334245980088627102498732761748267117177078928523785451021157437550966443774149300727798229382422901522649731992058140732350498339219305037085666988716222216683780553707726355626377926893212505878613256240951356442177904828295043186584790333847610217916589327098901293636376559298452657355885413710285244242042880127410490438081073008850421409268850148054008002391348628414022604897264520136510298379656955140571688020210059505637008534762605627480502342427602893027152967431970413811887894601651510430718082919695363068917205460177902322730599833462362510965003634972097943649747548954736987948819994905038078947339432472084452689275043553860151266418661342729763320047598325766114694531624841965745453683856325615138322848343409832593589576639492383869094898473305750561064336371660379529134613785155604593265919963933769090477632728017518368979945937217005932983032163013889903658157393109642601852775550255914837784783484720377136740080690716234115324062887049200675443558600956364920001675459797785500283469014242912149321263109741875900897764093998894511816952640787253189188277681357208443057087872975638482264986776953202811028502873341339821176891031349125980078567731958430145522675060269207763614884990583467570369521035782478642315069243486490139970375807550132301657011224062599805272248169062870782107551503899063189732042383379328654284074791641747921967506667705301806535629195148026929490255026267309930914147547055973495056662372550958958712801853690254791811887162378589011182112056296435215009185056664564409059425080178859823131635173930936912776504976185284990772561503528452512596634329603035260320636738470693341142023792878235680332745496488157833077006770587783132376026377526869685304355759032161016595224841240003554460435940941333105871953376695280415044239533327161995020837227944281684429878097726538296574053463221945345148006248455186712677574349493431733690932076238058594656797327677219952698842071184890146020544317964129195402769322938468021816627468216502652284381308692014718870525078608506839785091466431085770404357350586111024251768470897560729343380129508521852418064008909610623035471522007853230378735923360584361460077590983672546362338181039419638027885110534497085781498264950008964171759068579004076012603980129378078266248163097705804031728769981451565875625263082017312832391629878320243081223777408091731737724457302442610865239209411906944386782314368075375933758820887443796932180453505275279010806960427652633404565272389644857776118789372258656656888500693359405611654129280345910120318761040338247633534541754869900244502454463755406444134854581901115977397801126420323826506159830266158252848947860061245939848739630534154531235639349322702615923582345048510824304710050575587659968518279777877174417119118703707747578902112150483183462857140290471075609128608954463407378757222049596624852376229027950889711632779858035716304423932078957412456754445662883265884929029122141048876045599887570464685581493986853924226394899148744736693478903901354369007171845140760727821654180208312202308049492884908205007943072811045088653294340558883516632109288065731735136533838329824308956408243964533737860603099164448160889981044171701931829590921766928247100517378440428090454198748211799946018223761819145235561147776973366155844266552182101834788955455600669208726444345028988654012691016267574016029241283015972083379289110848664372760248930725806393152378043728423836617247427625805534845392952520974230912781003446951745907061443444401583285565595666095826647400172145513482798435308439989465685153729924859723345538821501141989915682592233820186733843304367238783915948365686667114572837256345131196737725579794649170413172934977173026177333634408635962809118376182921898306301741595581075282683188618519185894170665921167049448022504600787284338200816502745454330780800162753827101502929173633618860480315997416789808513954382880581683735964002754019607717800086878076028294222304453450416972765703322028935067424626993670474399907093169370989729180788489738317900071983411972875146520855829516620668966397029622730359016550855874639309250792077865078538502402851515421238018928177650026075315663075179198463064125580707929516847656718723606443911520477120291055692090026086417043635584211174240831776552162280278609480862747008581552590048621826220081042716082440486173801620731561913514302612167016346339133831316768178318471491225161517904232935602377776823032984076823798079009035945121663200180563857302843963998065038593720022030614836507688870135541752007108293707395206112594032076193999389372438410058541153884734653922192653209819874186206598319808184993764497110792254466296698422117939996159910685933966568136927074939727090748132619717735596402116892846727242503060802092756103212164620211718382653282198259944176512529422790549327353611892244185899848065268030082555699064863809802610650872748998407435731164505998733441263411050467306746767537221411784142584030431839289953466120056031824140030842062860521391414620711061378559798683699946675248043131308586836302866069430744299056605243020256182001281841991617006296253867897002994061225368116534668030164563339694865565668497428500102225333225108310873500376279472415493271865114796836481324521484149415359359812867191861676203844875999569613634324038581497006833545330373514484015788945783470824609981152223722052407847664624067471848558470258177040490825886954388215520320258743851758152081291821975443707214481786199166765732274754939865052473343475913664010713371961322097299814441020068831445782920128149063289582713260599534376348279931352964568917188504410468062105819416305566346924685204403484579079039900278414075269436280470251908855206468341692899146305839711362304807207333050780169519566529591442179383347761157649707350532862762279118652773286068155938309371334240891438071271311461808176861094393813051733048951690674033204081518232038543304074430570957018108579136979384402782615238936622879727139722730661448711617251215178432021341171637675549338765079653241526511953454082637853222501097515021747218222426820994469679724111779991063040454641345571064467930666260576148588577240206292069151424746427303275823494447945403497603991855042729094204321601863583416165617652936850105281790513993636204706339622470288795440366397206771456010423442469566047646730381339552446734840084020706391866875844149794709975435192319852644972683587458151792727047470139507444643667107134610280942255133910408759012926871407175464874915549224572372498848898058701554753690152813515035150097438913968601303962667183427876202040370845690260018573913708749032063069483757832772242392226967136880314954905863299670701030513710753230902501922882561780284366102466199095477448350588696660134195846197124661153255444975702672003355234893556979143018324084082921663875338438133640722275793619364456616166997841606286890080992287856732345143290733312830368560251741466501227146093467790713664192361217361886913061212125099374792741173511341927364263038550765097101644089376173346199631159951127915564096778954352337734832987967701708215430897552438869635215457256781810559008950331105648180504929770283338005741668393299050702183223988967320382658451897679258388676626970779591925856090518701628333128197003631440191847126314146838494863567334694757383217864062076927592574672837584239839412541920596000121932203300903119139559462315171715144506500032323331307541612519158272548407070821863626527534091950590825011427185811835342318496696374003955147655732908642908925652848615232878097129220970351881841876363621638170211014792255324071926207154318006277134348866200355946972001627936387079584902471977820849550945240569698547798128933746294425201710466127537942125937321789696233214218408353424686176447715910035202739451311976415831935251327565998047169077981091903779204119037460165710425550121717496214565075673114510903154604994236353062609512092047596212704117257772038971924745102394664288184042078346474488656214489987645154575541305339660846334887348327903596872815336600365658440057241436967762600794751384762460861618394954772023552239047296830849229729835826013876190747121415857336121462437348842603537122232884659762004391911024531373153599669131672247084099368829780396096066445899846485901116742842250072140214343061521863535305930156121007259224858227237728066490218394810932744739958866093227586245212497677868163697101929723647710684970662356888244246087640347292826984649019029628676923972444920178666196732172899888423299688888245874259181413155076636015937370917987608601942527179874769227380275142781646487537423137877391982037016018327461852398868393454812613054372603419959239783701262991168797138359930854392116950790898441564906345754771185442268047414859063732770826050147780253642972692478276227124058800321013157962746448073535749211218738385663851973745693250136486687071115405777381240198652426921260069341307653962780927441609345470612765451096174985139307903125259205469417765632837256622243183924699265712190855999077411601063627674304065384644850412991546253152073177127155062697962682033460321922283721180093104188499207841808297101473714284534280686455354581738432030558177196815351180683545972361769642793828767675017920509117801286722095703356817815086275899933928480841097814515029778779244160093265760929798583471755476165372632459536588014062054745117039429778199488456342384414418728868112949993776721437624597321446839015357089774330842368681375371063761668385965740890071992810220067768050109235705548831880100024190024978216996302196221436775349895210266041491810408816412937083361859527928016188309442958337673347779668278337323333547695161478132232731434565226816244379854677179163571369547877243099785940045975248392759997600830857793840454942403316528561105993040886726627420543814895331348819835717840429268656460497867114108043162467527831300241451460962795262784843278835147709353666440438391183463126699118488666095944737623814277687770987189301712752314528126782822080582686824278611907366854832845262545697962454634668403997750022993329165097664539321837104409477036314564734820610962247321327494675058015175973023146370993967692041145385915618231531308189053433194641952114025507014322329744757651602798318687623721923088080351408481073977580097998825123297618758556651203822618272257882057640246615583024920198726512842989129202081441839342205404038177967365668510634440061137499178352548807032703457603778675721838717059267837511319347225410022141252840300991595925152681694818269430473104317622548790440347502046197611458986127335754284805966325125866862486449873048004691409871307942227927543052216931136733441730015325045361011813341553446297573899127428183660871932010334680606041172343929467562965644723830944353071734436551446116874533540087794199147570584809375833641786332931664862614930916808782501457931527575002732329695863194327461690534078929981444706273679131832393476501850388835512585602320369654322837872137018068375062909568421656195317630342175726802016955452985618797602732022059267160608393408261675286619949466384890666212090695108817217434043599510783476589697861627608984207465971416809612932048984489220964843730554779930696167017907996918765697415157568293662914583745307812261950608011302891291968050088663323615176997319928899795401145041871129966213393982308374274328178077066726221592027494509477394286905026513349308963545623415208746130531825032397337692289967123383115487294212512146361649883381224280453036526118013036179963318489966621679482105376290843113213528636048932368268528658296362196777520851336535522956223612123963710965805690619949144458553117447052059019906142058703304897032062944244392360790360428542993556482880015330940034815318054838243874545486751824456271621476002698758632048598235413962087976146832290339799383898144621151226727974181251690614379356340523620437541730345985525613632079603699670371825194393341084651395484551510429447242525814208426792170008607663609785238650899066099379208214048026052499284286644155375797370941464156626482572160999898464888381430796406464881090345164179125010182271734653087118416835839273996429986865001147568210452961949159866664970815952739778225118427160817936065559614307773791840442533457024207374660395056288279203326666281832504339262557119332889369158449959052832347198951066966959474651369250495664621849714122189141553777739152653194997283248490786254585383484352121865297330413215236782518425680897515090924847971268693024555281735953655967528032170565610373995689788936022625803916110013862007601852850099950839401395755050930037787684402814614160779701483333325319358524488404518171623421834011531911031407684315272387882476194106541913556815696757651199616201353894657514042186383855451458862803527161046328591271011329737991088293601212405101888772688414632090099972739630973378332373627328535432735907917923111307819048808805617541225525542777730792349871648289675480467706705070716008666813563529034307438699591452962072541094155597049461541255745223715084916621117745164871772554847162150941866591512732446288646750185618789553762384794645755049110717212388430250138454881246955783127647004226065867522401141839575873746245378343057040093738457725528683776182125841109916758538775744098167201246035195473312691144471265387008397419723318996131589205959991918746775858790323754696374986134596706115660229860290164721991089480168555503323667093169618559579769060652628336614302243672902749402803894331499635148908952944544937034508058015399054702016430353159820696535683989150307074115653241197217367788999107160987933947456984975813626208125769054861347642428438818052991352280853525001415728377488698963756523165041729535015776314400612336146179276561072022823814474256752216067550056434030387905184016407353557202920731471884612560071025546339014876865296412552644370179245493775428131598702345738090280378727443477882659495798794124820031423594491677949930152775372120664907466100072095010805562236747642648882855476275207141475947717897026096319536137132708878297164711144739886817706101870338988765012620436482369999847412034028268158989653631643706616188107127388857417795353746273524289659554182867333623570200376866736816494398953791865205317975002850792281029886771858922112707266084564257615542088098742115758000861016776497691253972989316162268893473995092589816022808939212133061432665770376747931447108304157898634246327882092095730773123849582542673937767419363969302791602049680265827704154845608800725971100635787478024782324120400563586212098848859586563727786533518620958072662628094275752611304778420473193287344225367788711336576964093702478262039673596665380760490484773315596389463124520402293717550467368676054667454225008117570777590927504277033912107943009939218243002245791954508474292390124635709637227212301127556352876988066687640890115284478995489987789835197735969395140319706168520661295061800911672051394487146931986840850534244969053216734537486333129568126180241097838434628636462946810440595843686698839052233284377269467475987165076257286598422062749678544061140676554873356245165739161380520741278738963297671990967145639789900624986231581638869937636079995996946640561187532742284392238064429845687298679093761880484970450730259753784565563182000652590703427862738759476319015311028628202976825713290021982395595292152961565907383384609785807065333570701884898310766439724466913951559837316114399488588416707522723286003559050995927529556657381686757855899378189340538299213433493592328221664673415055679005814779333490093714444592852652121966407445624158696698948125874477025670720015095927140896554935941284021474026343086598226854248715940916034325921394957637408229929479221575853338760862875351153002278846459039479004582487240866263539900556375451645163190724688462306661599460846038268723642665378196112856236855210088830212224430198518816966483217182655791240908978508774598446656014646149033642393153583733351124781537104117674065768815829892399373678735566394457561631633659280743773223737059311981106350378059207958018077994753612102656632587018327968279143850061078455989002372742554014915022880331268463409714665812997304457794177756784357705651664586765798173966724964774227637254272539424657248837532215706301378379246905259194387147887094006593182611417021640014127599142279397287644667393573200345149954838967915932797560168280838411355612231548796109587501162515646147262643303051566475522949182965679941737082291799291229114738872724670175025891343220277669894410694686753671437946588648284694625627921435674308598519520550999854858958455493868814938765603853259494344116928557829638420807548177248618653939192351373229449075455580449205912028448378143188076597871350932555150762040643894435887661000867671500569853643423213568920456931891317628470827466941159441762408910350329829932441035796602035657792355055722285969044728497315211332373377626160091588560214244127679410005363397328052323284680772533462998524031717130949497430276554157241002884272707530082611834291364239722283474029717708964364600801564176018211596470687953086978258473366450722065347038006098228085098069593209113659830495846204470743253345575805735132740102831714368325088882605234530637072508033157244031947114944042293983412567793527632268255658300147333943854250014197433320532029331948708853789754936902642470396033158172566320442695269481416645215434707901681603114072564777245170811145524568886034651161932370392457370839959610588519402870460291188637659141382236374674981976765312973019136329587300097316462270628015285331852247874215874116325472317942166838566522962635399283498059702060145860962679063525765377988117895766613288686510626437752612865884424588495302017183700169440437715108596300576886877394551538987931354110884784799345170426114968903185187463817536583307738969630660104543415004761690359500903691866501979677621681530485178474071927138399004667945055973452967689174177536064822819777306038467750041431594052014614762973466104350234826780381698398578853015368995495866248703154281541965712463166717823233826805429437395647305693457479169520545180360162067901830615692790721480887323749469794783460986514513317438354241392328696072422055397895532364600702889046111506594652465436324087381295157514805813433436971327113379608045798939193132443874130843386310190293621366668302843872583171570411930982553136681776747069300985080250730074761555343340536826880568913102620221261211267013912141015910296101103147363241185413632042628668434697610314438296403845341023437580916773190170728352989477513101080360633446555762103331972168838475984433057524300843441470539411583788748459082599031312612713491577313086754952925306469233948028522653446652733749424442270502963083932674379189652787266374273840130929275263184698966205972691155726259650168264983453722501989775519495124964278643218196421983389639780491656198029544254065247541438701238192856331163302385033040716263045501747712919910741392780800570073375674940716982793639972465388062558478532355299397113260284995603290883697474961866762903036513891901995480468006889937745933428866669111369168658458764390569797459741184867734307756557574124665066308752218802734175359880643805460988938839198160297806181540104766738051530976588894408977623094019499669234897109677124517521185729891527662167771947601981174736584882928736459404071497587539511097605563042011434365631432311713957768149394285809198041788608969988663994974415604566580995688776977379102189539257807034121919355738636772331929871684838142900429525547698581295340497333374543119146527940878666526215370080420144811379498440556170342141378772958560693675267042882739487204689423431170569240268722154076287270611871754186007423123912674903070324778421178875519035317581555805890839605989302454534808939468100965047657580172341247572029209111907766260943247871778341085372146941127072332734611655219704042076555543368894284198871086948564209652905742290330737862789272848294839177347150026899586368077042971606255493874851242926731178660473825503672742937004504868848509760998523654301913335161268102386943281488952459058243134869956807373096018182994019845505241651296877665573023958547276990615897289413247411113542161840705449989400195710375792653140808118306147388360813766973905018949315880020477387304709744663898707660296179029050988590335020611568571066125045841057428135454582627788230083252797544242091365704087029112055622006074060644365668451158056172712033056119935252761016002456098492976930602153266523955738414350641457056288389112150192679267077165894937862090620715972050391513839145000354820208404925329382720929125192646664387453358078381667781709613319267980812838200750761259877817228415715830922475898391268225197798784575319445350512051650331067298734230146913509836051989837151938249006582667988516710275746523645373124579634186296614615847196912826803168292598094706665145087588437588956764572479322523634671012675937591947345154874802082060966734595630190016460431033827832276333438234881257029234081011266089675189312496047042371677652129289799037784242532430660589381802747826641992632515301619302280665818222968667125927301534794633925221105578890102411179998905794865836236086100661046945134726301730945067880157593260761300109554470823712921632474240597098311740632138152742753286234511155046009431907433093354810710177849382115306500925465543094540660449046563103017584579257669102108083599655366654319140843633845242111492926576847810612980106713095563967254386905669945463387700397523930615996184045911135442767957641754121281577914430835695662031418070954155898577607610707992758181652434324962227873485650006632119820547127629269513062037368356052693264267478827024597534637163869038861009061594708545826574282411743740458639463613359455977454194225497426099184350547953619457698046268127419067885274123802497132635186212152911402392611979027802447660471141259996566996538730002448481797810539844962945881005267426305484474154468837892212688559511523400112457895545529773179555255883979766995879156666017838236921540502011369930390859719891952215222238285869849657430760617731689375821503500645053475964869846782133966088932812478649730822081751925827689695768893700540987580503478947363943680210753546626332098242472003571411135235084237919210626945796252613359544783076304369918409430210310905011069239777608078925965179468065287398588581850166559076413808245397487123989265603379232096152714791305578447377954453212446275451180741363235470828255610490340844230902453336428936586642654695724455038432384047755089517230623929808421478133585714929825022514000687614522084875414053582545756619104922191754848641028045048821758536351104770834000233540948745514225670592262985583454470983622032073770880664626225871740275111746337945486693601479182587423964384211833174110981716614439564983115516210015621534286864733629569457696755552406511645851034923492215825535873626681155305516608138059516363109769753074426763022999915188116172674727533312996118376648893705416417189553367958300970338868771309624811033335441137611472515851477891390076759229021709866119322016179834782444278546975887814615362205061604557175282936421310731717534329819998883650310547328097054919200601294151642086224021791078932566528190314842690402962807151494988276961956595853684491696294697319167643764768075392103787655097226913646167088725875576264665584856663249645940182082170624366901256500357234934383975245537789358852235669650372046690470570960937894045679464524610104566343428321569735501718921444087086642170384196848976023252641435318117553329689503650783971144877171794920712096527208297583563049840361403564994492312829435435610976440706238908776606711173401946665803646073624407670763395779544748386639378446280409573537175205882069496588304003713534615060051373821801433261260347187090445667312432036916400109111307011867063675586957643056086566938555471193655087234438473198283219704791552427046773618770072184484470389676463878809165042089229245822240088328807672334942298641049277428900660783269197800549822819324030383718646747655474711152893520330678596270941566422864742138055365403014781734799145677002714475156897825009662936175724094164036176599706518997431265032853964359807011960620989915275955294766713456794490549170544163429357225577827312136380491346930956104804247771158059809661794306829810300826942324062132307495318349466485875683086149991573464654825259149713373643752985731968588346419446755488975217796636957242576282545253831024243275294469212892943914009571511505981033023309950509039672051966025329039074182391873116216268383133862988886862720353814569200865256224590632887163568174349155140091850133380023907029498682437968560934084602612226536035142041008019887786633966983650065090160987887473278776012944114410639223409039228153424798995654409287140664895098753317249975926836371967871149411681433270468223812394462588772348737586433380854411318540361475033602626864486376577398305829374104327884467767321101090436797538577981604352976907967300199317734487967242049527226401113089443559230670088847190412213478863059643799753237168075968921528328303677889559666940665977271251106056865230415321156997180463937745618079205450933048526586940721182363471870349960112832926181501073686558629265623414830969336095821850786406607946687516814727036981666872664917579798517908752019371331798685588476948516248182072300985879170035869192675661263547552612060785371722132592332861610592629108406547316973018693021547907118723601548539854893687374275528648203507936759141254341638196979649741779350551572170550987027414962180086916405514179538114091046784939079218401340143994105794022568290937338976322371908922195397730153909037450355417764108081449666902957726783640077050489832170831651824762277618575114611692829266205477011163620478165276561394537682930950264799984806829367475671765584390003915666314720637187989227316011010428455648952111116072057510084851357865146854974189105225845587029683085332844522010521551149196613271309715200202939860895161035035225398036506790158334979791321258954474767494240022221971748315135945892468316884575534288379327513557370575358819951258517062801545226006800859012577485429368254131059560439276180685677122969753297977251696888452770939383002340000408476832310433174066523268216838838144389862390855486788172721917776548312357125744005728718909104263948070390583539517300329971814614545100813507046565836076167536135077903128082952710472082077470362620161798028435003578431766141374623853988503445718353416458492192085062972810736106978123913645234477165654199712943367075919533851876305536634632865756067155409601019692963170335854465832436636514023270460604702365407348695134291694453636606630248199826476614494397669310585395444315410310094731093166444624579527176469429476241870389587028365148052826779992561826863190167927028991675643525640796524331735097389995659682635006334811561426275831774720879140326035878139165335888719626335188107552779310553824217754058215509849257728280502684219552784592586755842722644313579815233733060058098006856110525193178437608317819407354028655621101985741052960853232667607956256628634495560875603650482180646366895396486417687192768214606871583478563024834732306118898832658072895341196061652205366341388924096821332817637132250410783130610852024864157585116101769078502176962326833881377111813216448792461625173018597904441132498677616207125233408656008761604654630825136958547014731705439647913171346457671288093467800811326765853018717118114054256478780184650297754435034429643353657155126290626110165234521316130767888041532836551209356353704563777325271435309365512661742052890222756462804725010601899375993804420364092565240662749199061118002666838780679609419763687156461794585659145989105268893471283185160176968211654397705814774104069042058738340702604671032583121694160178085993171760225014756364091593776900108050611728129560499851857704039690059833732823544346541026569278586354995380641646532210073973303439123807164229019875635181808642847011669226240059221216423491964893249064341207408927329066348900196871171955412962935185642973199661030894847890674262238791012165931550398362612448873012725126702926773593408894306629762309320569700980103187472372610945998058968961647214382798423362460887960332669237465280470425887423324955690998704108934943091049832535030675210172023142868472081753458299549033549691192532877113572926029097453831183707001933404274639052908483615654620209510003066041942871196004746592835928434353122351865573556416159290615127506861971081400166687079172232306960914682877600860222068193602854176106409452532520283450121918182545428290669592136237310422945623948753997557843409848773962959630710655761938932422711329015688182731524597331387819720469173267574227605217513903561032092765706961131059175183176789543033687800668538283686015388796155733485562018366735944130783928756663688154798535538207333766277663219417123454582282971840691374872240583614347767446701786848977112681933367998159438091482711802938934180858819889859601681959825287534347971450394761223596484606099081695294577964369762236810518414947262183278132564536395889413888724915927751313708016651712288505433749346837977935552332053365532572007788677343222430484896352161925086384949305698459685047032126287535837480119889466594547981187671711127056305343991341127392307566097549660034423029501461411790822255011106812991536437668156074369241303630245235775422886727220655039374523707056398455097700185604364893910984276457777120778753499562786975254833898799875693840537697188872197685125123671078121433384705996124478337470556623988381008354291919087208890851806401760965901658570072468395220021979913080064820797336471094332372306849398364658541600282535779846644088032764314050306145673223079613715200800080276954567234518083363493723204534813031919849999927982100908099473766562322234874157486714901389201242195314058433688591092205384376400244998190009160710473065023030487040189990055421257295353218443780678142376274744846304932744274466836939553710991526888804137635376463927383651608767872095853482858815753286193642320480319965416094614685311291021505467530109690247554460186945583205619098948247112748180619522684811313224953610876644831126303661278036260764380733951816744040983148388062292488220404392831983777037771157813508666029138650962124963108782594528485902925596477125564558408681871663024339766574500307682693062050564530217915012438901191009627847467559626395280849871482552899600214130351224338011034147044129798976303776403865271595933661791990327827766367105214463200973308133508072022546631526158780342107624308044382719150046112960484196752953300255744997407525989743006077971814730389674561905885312006115962443820227059018435342530735209214505407626725405074541132237144836469994921643917928179007959771530821532263761544548392699318348078802998413691942187030003028473306335586218867694139109308738409743196986103748587926930211456625943405250669342047985324757227664354861722467497097650014757347520942989024123701853416110217663226415287512426637330422415105324101906111107844235617470776659268102087914817888860953797987118531453055232384659713541013180956376710998563817686599695385935877816471549482264084519026114338871161366228755068048760563924886365428690560904570128088320241794444564227195263848082937371048226051369250373271419048721270422893045690923914199634886121142937605426954674465735139602381155569260524453085867246878471874180169665644372911236214998576258983917540257609176379312762184267063302435227059769302696653350214117406347037292716845659386272240291966564399600450882355264144777585573806228559324951023388569331831715341161575048957155480906364335078489482384656499116162424188405389923687277514743127772443471659756137783851176708870241818027033798283875935953017029917335501706295497196661989588620565968927730966031834623053212087878408513356974897109105813377092434128974293677164469559585535894286101937512628949600278641023495412943405752466591222166446922619786631518346491240413372860410510735018085467881861303573973131806468681641862435625004476001453354186866173408168402581016323159372998423053520930742865719606846123805578229129703791809357261152292419283800546034563562097072619956593128036601292966579090017258949551845577119524807023192896366594661577606272105679521381464668464986793139961338794832481047665901809217150203105571949312670314649828613668360630521320166080218081727825921246911677362480602238478695872113174078115019110276574797516933719742455587462574143476288334577763386958260521224024094434281273890233936703347940214603408500721761167696068159670337843917785521239119011003448239269379246555778726337419778625811120100982631416129585259339256312048882151000259106204782320348634659518321750315701000746670362081099406113446279194815899687085267059100779749072494321813877385722719995661700196242888485757678189297927493399441324265582724862550496142230266938072048523464962730418392628510437140080717921398013246247835650861464952772100732795098320842794010313095820474509000527926259474476841939420477240569417840306011403711395446867704888287877666773331590219522454351800480832661592813052909133998921528662894441399991453495102055816011058474865692282105908869992930081344316278640050277770849372004703863481688898729268787438059853089821349779709839162888111295446343474939056580689375293915386981168669423470262359361537340034978685052907306145074843315224030355293892208584564074853618226525428125181869622568806591004521130559445557385470191398981614990252474124848577517797147595632483083707387552547302576165230545429266726363012082030916851265185980206215429591146195641862144338429658359366784095015991379787557471307611039315423639775071375736328571700598646859282587591238354913500187006511832902962721347087284988364100266542196849588966733681900177150606793011012693690595978018715650118678404576132899652798635040576216426046389093549514904022084557571513100975128596479752899283194318510403237482786796760553875991980788401823725986182938963482074298305926836557390949749441204212635183324507068912444368846459283483747308425600357482071363572318960429479324708106509377234501464599975479886466790903072608233538804687420493359886123268774765383617190204092589175979265919925042333906605277500442123937579275153402164240068340929843373738987545790669281047339868235062223773406988332470038042120896487530924172382427981056627906820989987583129705700183428026922356576381156461411940373239880254817132390838066637063852997575144659450371420528677970556822574035213912940604501787923240019276653802185162348213996064435610645106308002778140297820668061512504827841858688316223402967978938126006779993770582086979971343341732556630055103805751764578764884300587726399082246351325828804532260312685453753499606897830368167357496777598218659693212599605900036167580868455160706968364781528505147191821442564424987371774079245085372702605723825252275663253402019206011879771397178768957762558882847465873200832834793571219084032352371187633492316156025976376167041247564077461972572080198224624087751578280081544803403630215102730522626868835346085053519546446724766258368169914727743153948296226573202983623947734551206753028272345736801608229262246944281752299478747534296346229465510968581318260698888587016246382959073486070929291722852656609640885631253101077631723594055675155501469555081237839196194678210298879613898490959157162167976037303879425429655452132963907573450085383730384870376972221484946380254503714884322397379766888723967270192958515728654813306816186921866879784322827454024990408728333505041735159404066338207645905960438769784346875492523346143954172064995241041117506892926238194672426620596065084615485194539238506390767540197547887484157346101437581865725060009432030134887168305794531736424275486622731373530618568337709061532765298195986632573809439632683116145913602284725579890462008675536135056910217442050434853384692116277471085413154576954452773008543187034082586838019065490970760454485587806360663314141504307408919043365439431712510924526598184678561151461717931864883566961605282901484509221203652459419362485937510622507567804923299112737439398045973935473658938873463356503590713256558981160156044271015192977264407368938291934885277543257733805648575935827995019331577718150235239427013865790622358560861051898310822470138996390004342117671290435236578300518091091216180651564133723203100717704633314472504004837513095105994641543173703149301152411328212830021040260958421813993875799293072538766517708834702302996460169527152153752130106931777321653723230134038110123984833937932114830518121382584179673666648899311660122244754842420869319963821119064973976335841119878050763290699819626767885047385688265451622435896026530722522441698999912131093571162529159075681503633040704137095985631472174645477313769609725439812943197154658553345204275342462966929234482658119014628287781561816638153285378164837815543344480150305897552983737572237445205419132624368246171897692601782070173808432418961318004637612980421353926328361571481643986524539782286896078195080998761670839592580034245384735811782801480386279525463629940925894828026402621519822764537019688511638050707856209097192755680005753176816798216564109491623089122345752517075648951166929295395711367278567672125803180071320823660351303246461210042773240567684950484089996170456934633899831447231994272625530523688847568151056562273901050566070931586961147933699581168393911477087364940328791379501882922386644480132423166079175578254837864715244394296909497489125909001148587457961260817060142170075266442789555542864868459062500394203284864881600730364267231026746135384971359915137719948873589545423370971368359062564146451311543832008588655080778173532169718303882953679421246902916213007435616717259997391644101429475000458058870633842444333316637996270009620494609517968242250175994741679506105807169525911089523944288925974423811972411182192726798804667502211631978596403851557189760934882864681427854885034319801571103199918028376926842225466824370809503696816389378786851583698134906432033233221622670391509565159165295784059573871820130027267441832518156929763418941609218083765665182102415593342937717782221184456329449103996559963265375345981152956242026158261233926825084267994580738313624757489281113333881472895049540320394641678344851443599316267266574398758813656086302135729751768752697743864592976161420923801760401068318211993705396990861519254850248423493153431491587767384547570858476836354336826859814924770195740409605402672007218669805899678799925198500315787369693433060882299850209593377908874803416900645028133571536216478204594867055686038188275482631350826786437762922568163054306519219716655652490833336339698605301453819086444612968783953790570068635936659540794614869782458244916217487600774230847317901016831012636789420225147276473358918147930930929176786583966918838377862224086434910506739522615964856602545686908894155282075486889858522256636015637751787760995535568794152809999063331045278097159233136182698998762616371155441365249409812578973245669623485046438082619845167396020044258533941770261573016652753759853528753950587484110200371432513329116255231696681332072759650160073345967165021337724143558533222624644363905459080535776661904334437852924277076952361140161858161219460135154009370339305427742792311947792926900236193891776969815329946513722256608103321748726631468778932054816449615709955107182152856177114960078113671143277100319901235349154399520246676551105153661634118983577419161177027666111378363427374385636141086219008590915876977136615400787124793425830404937995372830815595638335772836174456069502440984070125632889245906447150522929086093693412171464698607045766223746746383427548168985105288884058558587610742299677680632158912875060009249186182763721388224025036507079548331272506311778981807787840026197885925619556758668666626170338859608729696909908286222364627032503816318719328550227929668240481576608377115723770667129303041019128889153397850257585884033067558981449771207516850109478227827135161632189549758758101947756741692958460155266968309917262954558177044792840613050312362399810607527453723347750544525099744657244461295685778598813179161065153376765405663009354283444762789640034885955905241173535245900773696537696925632109780560243812420115231276161823511234587085300097173484994938350832405829638178371332195574597541976250823841378292454153864148838196926524684487640994096356484685775797071486161896022150002520598866668171307036304495488872016012380532439787161667988647510727051091556753534787615239823908716301778193657940564427745009373122509668855147012429569647978782862408864016984124841759941743952474575727577256902892350573853422960773876641175317032449368622311701422369184045838918181439710394361045470698927157716935495748627396694729692965789215788614457339769064977340151303576659155316788538524906034610227010991311021427277240685510831566558706891330744789019453072185738080947485675197980942280516854705637479759612679923293863472437893993506007178087190476293374055490466191750398891302217748517424581125684226055921087871922288908809277345518692295433868361563718517004924554076032438948994073845851560013094487551517935429882146833177247382599452526952099785737312449000493823407911490422448761596739655011881440038224230160003803124858699211364208149815312477575917286928538545013401428597706800003408889401168813027613360231809808843257821165883386509397179016344142444588036663883239504931603952559972004949638919797241030234495801697694339765478114892150363728586575945983504575194430044652946015372862934210177758087113227753301863271860657878778504300632688537131444269785624040356987776571150867129326962839273822059184070753367284120120683296397083561128588617997028615947798162620657789921776947431647162761838898606843807525784924565513779617714265717364231600166987689484354573470252028305417201036034362313130215093888625238338938702203373509214307854823505834437587769291703029680812994761047738747025187212032242636212606989427309618732909757560263199797938081935057934037112719286325428477002550838904547000083016584088480949734977643872152085142142412253285253330878664897978801053702409535641203174680712363016309366060028078687357654865459885867568135314259409263901596678101135308151325887118497879284421083508531213020271473360208967044564090435155341704149106514492417791143073575787579095721294536608314902290991581453295444659235616036877458759286580226745958021687223298500979442933323453823099247512473024355824694343884418320328276564409345367658419096282872034709065170661152162587413941156754424408069728836886015665552200695573922260292667634211744490806463468305055368092074540021125073764781260365860625079773087644165151971884011024001470567483623797045933439988626455127643394959423920114688189043437190042948350040121208880446656217975969906335199358737826223177016462934067962206372008204546193923243378999684130778088897754654575500158610384106044645880067529952280476911397407714088733396974664222903525271358828506762895997309412887488014654346861507302492852270001305489876563079011759576284868023017156371043761351908995662991154386183304416020856532386214825220439493873366654792891762383430578589062964294207825567339540899764636725774622926838003734432421858146759688789614572918521454009729602166470134660593760734962675574563980656102843967065545391729472404306771646445599139435774479073408661303931598474147410185030540128567357032176047784898152279575162326886124461451981628293387456146437973841830408737657225397024225491882981547275835307509987804869141833228419190211187602533318608525136454465031811052395227232057680521938035019304110899024436152553103460681835844621868301387806787803220376631679263217733959821795609568896203163563807377467877067268834513273025545867028540089320992830462314831639570487532535883213117068626648505609029757635855928526135086917568047800048551129074119997191671579014439483727259412269829416898941665540847151656651709597272878983003126279658657385737292549954517184279137758758359107014738607186322881314333038465139782510726825213719406803146086077340212303877438653023817477988638990785955274351097577361275504213013085350754768539159556965153805441541845259359636781467600665767499039336479709683909449212616050378609407918716802753409212332999112084264378362963237122511497114076673724301147744459350461634057426933004199218052972195055307836957902677720815552757729298264399508603207794529711097966974188039692514963215329388582320170332600522135926592669785232247930596463545824168416266862504190938557349312224910573189539176567280540480372205967544268680862137795917826458380491789024977050965772725969533193699044042271895218303359813202282488008232252242287037079878532137994854247796819210173635738495225467562698929706493251600438285875562580040183358739327382118860102136746825920879466147585636144522425536179409844965596390637433151411949483676033532691488541483084607136401435115521121764250383597223330998796570628957052430042981208394389659591650682160325480061031047930658186420613448533053886186274642188489361829256178002628905065475384037434869954707569558876383537951709855750338704996835632598180771766402858474626394008017646998707203327460360244676718436133882946059503599696112395704549379464502179524764018478016516366340159142220969686361884621020438139814847635805477497297266540679264583025105011193899193820963870823362870645226664865877904233171872311391475034492179553641898073611449403580529955990625997384336167842835656097434909002399679740593345559054864964685261266245583069487109417272216104104190473208760202582264041000100429381121560733557689471888143044988601696795677309478139813768237603886557769044964414967116668139452372564569921926350913975501135615897372611037385180268228421748219597020269393862062852146581063949990107886855615225611241448016048963440147061005396889754896836064338708316892955186001456032513482589583027779456046369132528961191691579320572703176857523312051129027049395661906335049798044806145356253079176455141729491418316352531481902819837608600053553112213248663676604196156969978072041717402601519483929023783246989449705472836241293148064922329199333105015402183843402443394692118902637616331234385603791331284949308872809807843889663294321520296924940358268750496436377247119912599531391063045054929442367963983534084185749829538311461255862842532247018207522009912700307509917006963349559229614657762111823217417925269390613367031300336136393289663812919079757288685618776921809179484638520923567372415760141316183231547395017253482836352827315289002980219829133830845450969226431357380823137019735238097677004887878592069278465146598712228997810276275855318427640150966380086696950590329631588012812147125702884861512288271921563137626820381376819251194121207338603361256399328567374110679146111578736962037126537553337497526937363592717983288315116812907535995430527056813177141556103951068947749050798533414884259393204510125123873411555885057745646038447756180618127457819902191550684862122175297163614954670307688951336304986012730353541395155666535333797257274546417338251962005074949411472628966351256541763813879508701886670140924005226509136231811819386421479900342903947474911496765411430913116264540893720338924878513154666389016426827499546283261893967661016378641088679437187529902306982658295600262456515516162417924471857018964464149298065787164405881434040505885249984336804252470978747232657163612349822181322493268083130247348302589638008033297915233551614268934925719536941967068958824657490732929643556948820341867036420458422697315095076501176558649367144855443403989633711941418122109514817872889790627068878298558994693481014036340637959419963272183016853431211992994928403362213845852241189863793696869084521447543874449323824624237382907012329048485769168143361397999224646037124687382006753668680806738686384206493252563443901000132731973020976872159797714822061936343836185156428436565925260332479256189642358765160696895019442457979415698196419603266601773594663944967778289477574769818358112329988592141474788270936691679359898833755780657358682960614923209089779516545961053226454078689405004346507175289200968556327612221700119289893674145071944832446795650377813950039185978122377344122219385833089695567660299402974363008463403276107075910645135032886104278417237541105463117478077374495509454505932984905278596550972479548128168234809298350238561382847453562223645016154657537046682376143722682475766992237943257982034051624493296784807830619842750696890219934012224938022259983795032397027881675276727229453374690468785063549081807414933408007266732491419115113467914422929079394985551893349666180361441751901198925120335594798002935545100950787722063659870904515916274730314865578267641928905069096133954547211048410574319057823678201507277806740170310547688851139104531174270509000010162966436490491140833529595855452403706256966515142708618198999697484003256661952305449789253444717033605475685379136948695196034316487849199379647110775949454094168574855799553075016704866316123596375310909709002946753660548002969411813758551390327177155009502601087432907075783875156921219017976585689025854048301316209873849361893905082002945876838329293170682298905215385675393461216979163880522996999815416733118063757725739009694936829258431138395302016271111575472360895588728558125342901543021506697075766307204180889392922922303633018816765463123720387997397658455860792917169491984175313735020558518863621559326904695844353606162748273632248387236559262939928069108419251821146659248052990759398822229824717643614286491402429998358732348012050892734844442143338447158496719572079781108536786269469432181936611223791407744837156608413104589003152100377602708356467122384133783485074775393163367971652327510982339506823714232170881613287998026657352514355428043599630804624839422442647395085578737183683187393907039568903130865668303540788534203770451686596374915739958334904193054386858849578907761590578381572091143405689918341554625300051008564766317445763613578247622858928245987767105813982855961739264453663474391385413449435286142099054570746481044585344773566687670065974193920150372612669953967538230456162323800698845309040327000150894689655060360725835772147530775804588350707173456637876649498088266248911953749047403502286022194337811415126114552742881771947140149793416124092920847605838902881148564662012012199395652102780985055614731128227185959180281136787405191373966350299201111238597280719436098113947801004839196813134297017017806898010341429984363974921009241270146715069253564608426190435727009048970676153514840878867464939438583125470284350718361085793492758279337733898719178812207744547552778057202465660641383650766810399582733834389627122215956447319251030552973847141577488633049024660170602814128643206863068917059886263632679612879433001387346026614799571578875064919784787160742876609686885975187314760021475297811990269821813477905639679645182715682054714202702728346174383622911730976030032201974027897610662145269320085845572751096013621656197076255767481885718609739908121684163040353123896584846946079653398553660388769562627155619295479076496615927583633368167165256991513179960172835430891817801269255314762570782109618203218038855329197753343761636277454131006972511545682805938586804424364523640904122821166089548186955050306168797891023165052429868351773857116459891553227633010006607904076261514780644817902667220560458600935258978911478668905468977012287110216929041899805753123242371306256507335883633606711442358446914295040693455787759356297527347353559526079633813636691377349347036464577733818823537077398788114074940313080167045296014422499561818240207659803021855083092425207528242531948047848992973428193419945630889359785249210889870373035924474183929452664541618552867223821015267429031524610753692941720678287616894584240678262154080873483705120723965146948147987664542267347368739969806988971176383699036508681457306257329773454503056071498732827614503774390675226117340859768326013905624699647619260805228265753449455132471788192663019610154664515564662076236336206706515101908169082184325816185453313412564114651412692649028180591585692039563415527026296222315243218162469625730782891149434506929933814102924566720039203974206451123559560989718923785164407356762505751269436974300173344628556934120605222217128433792202199328308476114761054934621707033312438049649903636400629703574112362042473149185666175640712358282790236950423575851873975575957152055706944266721987539921502982193832439567064614832952851840578145595849808816103653726035193686656763894619148265979259171938288566235454193734200832696257209646559267493855098412424147541758369694479519906795565452539557043292558518557049573259219715930354767364695596628780323079299520514614429760536970815570321586407663751141296520555123414738943482718743658121257070275050067539092903792057897990069208123036653934311471257898507420892474816888733047925505741981019114277900413506381813104795749079501366136312800595374234225606379688376735350765847358856464115716935620827596458705255710714591969764828021196990133643417135175341084696131192916284392796730657919381745152955935970129448589760934857836230384597002799617811744621925147677362047462526840076883537038990797960099168559608320218892848430179457356754948835880282090223993297957060413009655176863073354170249082683858333624220704284968383416649946530686892007136927387294713100604608048566890118071021268647920526804307133189101372187819324814939350136988080961885599561318899942549830409084611508919212179819770462443763534136382515786778795839043074970261011749557406547385027073231619026211108160013114516949015276022738633120505164933060473616187666175343658363871378351753485547544053068598381120858330860395765808533086281685986661611554595641818899202200937476054719567702340185341366884213107462086525468614763855019845508006013702302820512698627277525786064805452774551180858677119976188356771117743899480798927134429476644175249430272839638046435275683034242845407866014062825574138964105724153454302888484958763282580283404528945020271036402317020657350152510422145696316693885268637307585828964556343734169389890387739679881099133145470542485617582116645730855086033342384841530011724276747733590804282634566424456256420959624804129188439966174905194896323651981836809087622524001685232499095640291671117536971953497154379279868834175413604185950341272863069046673312221942739874079321650869690782036528745681439198119070073280996130616558731160014926723604512043617464876450226457067447912206424970165470818670162503098502086364977978666652579208545108339485728276824780939768186502233533253791278649478243723416326721513014779581186329148545550854717378380735372238132764698567353559357832226116666182670250219345304656366531815859780043408196800878212436019002759702959525554945297781647243988511962534655374650252603864187315470674240094856056577683711581199455119686490777900272391352363578873936367220654589460956002479004757629207220579642941069622723804642641217134994705032081030143135924548944494822776959612172934167711872550088672953741368033761950297140582460808702181595539639688223008422848246905086481160728288274064597421658933933948051588073393250117079477390528124124218305664933845954707056210171553856281856652021574379207654096400109966640805311513587234980027091335220150279402305108485279520020581651055221916780438556562095538558497245713488249124004647297080182645573183825294547836974667811836480582880028841557593453400894924161603808958584381295628169185022403551542543471936033015318044182711001094504671025436605955857934246946740864452652983572166222320209412154896322252961576659320223929017991229643512284543604282306192645896504447344513602739899553797000966880200805641052257555492228830895805508449944923405401562269610744161290248641736082021744816178273747050116888735209476978353930781370393538135449744904728310080733568908451854005278111690791124158033403052688988812808013277146346745438739258381568763572792796179416181331927697285005143320934534488582284741648744431871320426159363682510896423609487499676312684035273014075613758078405908923026041473484931292796799898629029275754092548980806746986751025603774399148028718052605174423083201710888619820902525178865115315260565284000626154076040898737305431858282113402781866386530966632713871129983592233105572505952949768710093769011464378422018508012217183982102957538456655578602974301237335610753222341599876037643126588763975488556659725733710462181905623297159778082237437027656111308326881563632283952111638012644498467407809119736390318454282959422839086635912253801016359885299823604082709069970866539207494916329808627938467272615554877673457980943872536594403370865412577384967631375111563138302443579737814204175947455612549440143612419105718444816177719874260610532777606414558340645753023932967289150277722976556057607105142674758830271722857710802751060912411890928774147515069526173089269720063513882664766412775366263915845290813063710403556161834726074397804618749455780685893583448589854291113804692951182019974329101812362126801115066149940063833965345099429785932847187184329352953221913978983772993987410794859211111642337299529781662350462429412424279732823646029280352463017756675714667504636496761550332619700731138616968415435166357769744152056399281888289831911717257489613915808622344400411960982253028115431467346462796143898370801470577205840899052389744118952708986916440048531564203524707854080238749167750577856090973999866268461870632294016204898691765277713946330626221125078458504613921075261199166490268224066518718883599688144218305103888014623878546472653155260087605872627913041952742624326317550644601514319947407663323833922711437915918781502840674929189131920513479756900476941119883731417931886602785827068038646062898923506651705165043847709931452335702662377907065698507069183710913121114889450930881039042669155416435755957438217841970481104581975191056849370595873907580542014886787674064301831221639888246138831516030997253328406371363554707489596662429251217416166930571722446407520961671048594382771525103513082240440957112377448168221629547750819732551996658884621480871166210957195041537406700870143093742671583904379884105263338046396035697606770098711034458524780160142345407029888317372782214374258845805432199899819803824166564064971867295068612129803918229449860953458483793889170645229817242580715552719808613829710550318239913455942813558731901745474952502989872948948858499367360250856114913996077466663233461453016344166074311771822945139697566299220433929250430876272940121385113642438081610049048095377880317955638752757014232791909882261936668511615805673769942130543522632602097849112795177949437814410672851598452601939336446914194596560569946640504105184686927627172445307476204829063881157173262153548201070348574994290582464333190096200363193475894355691485032967893735215688564866277660976857571667268580039310414976259765319523161125461137902583682144658927088085881589877456438774709566950406885656040391801555803658991382255206321981706544338425795726652727540797561159862597072401076529166568217023242731687582945909656506329993952098485014769881822440997174599004265594131770103320126719105070232024811951273041911536461186483253580772656680388756643982388765122569994142307260994208289505480076315017757874595123396837812718802582553217533491832086797134627985389351416819747798028780338289790356455675701426939240164033204400488593351967215844918947253664016077832833640412231478437552125736863210009308834244890982129271569537643452041791025569724420507862045750569477797859363322692518259462029339400614489153993077251000302594890009533818955653128989378616620962845334592692489655083826390876049098446804959139408944029700000431022391467200776809252991232055639257304515111703910140717330637430561753995911612667258927329679441945908975142339810910716505451429259442822053798683379116792036151097831827823060834582685479898914750612042115464428465103530059272887120674151278652968890564863616910042657262230181627976790491986695650948460687215287886314227454046704145420244838866599551619089396558878688730584865850845514813086277348358217223405236030788462935659357977583896149368584089827427184860862199481647837474761611789987247185044803352625638998272418207629063979912891615481879754489324332216254126165231011190905813798711730684188469508349743484381782174942696304698800228691492630043543709641034045608568082052349317297264285565603535215433292243747522082106576445239375716017812909296757082276812181397449089525477798025666816458748785652740354088694834454753825066545069503813489853001536507141298761103972241062073827543221147487256958698790588479059772731706219230176004832691330904964825226795168437773980875319862729542341879957751233567567862000851775872704346031305779194850687620528794971852302049795607704774688041567349326049847247829366302487386144771137557689410283159861560342823005865626919641730082354569443274008330599424808087613419332639647618454932366093784590267854141158913432689581690874492290684389903078111417795400246903675064654827614633346413098803597354944444170172055505374502576215842392092960157771328263040112532725513097653829206358395913999594314337810129550348815075435439257539507406603053547350248652448799901270104646121211079786984373498439816012619263376852852112388270856879560273786307025853963119682807688393290858173903950426373084139172993318815695509012138351332336114013173445827618674935068115830515664871032654397299942588176735888522568545338069387208980684560890176582652878540901699476756053295865808577626028937116059086557266732567907082087455997311554699733073176533957117504300298080053772187123110066656056250721740775209425590068124769193375037208379605054613400256546150559289994587425675659182829865102444989029575731905510625817309270487437969000306590565192625450288732422578706579449591660391552762022065713107733144218654139035892330762746009524760677059891929700834203758570566761900483469709262786398557568434436997484585037560178063786519999585147716961927671223936526839441515139237559069056146803957206874316374781593268764266872718657709099671687778183419981137812988984879533802496688731066941986100535699833349232538013549986030757954006731409884840597605068225707359155326066193167660749704872619818456728454257038258852453575322253582027424889674948852861807017897806961410133823425670842892575189784511548359371305409352764019502514860693804916351841741472258165774441517832122585147373183418734386407035142895144798331347536432465142265856949074278751458080323786124265614178273080701752085853059589222658693916353514415879181501720333518835156013136667010856382890678005550392237926266292925251832939974332212667573448388839686849149019350693511932323395066332300205783180044920252516296155778104262271969063762382665023922097128910350674390835828968420287883336779357920170103539431815656226155056179338428104598692822172032142157602121439733789417808097716116592950408291232208758884222690239950101310682493887319767489518813144132834891825649439625282552683030647239996856516394079247884274847511864561829116592197241712888495327906476619581947951154732894523006767704817594776715488220887618069151246557810352154427056528576592126517941218523453156691662847161712432610129819602167979329651531310061037814347152428552751013863608812507528366494273455003247412795468412268534149355853558384372188271244842355270862543477667701350922591194083989861146233920375238304553568136859660649227221670632285892864513460222616995621767757356199884564914303911097902983066509403957505351476495464797234239118528166290348239340291326475088514373173809011775673031028612756432835144363231962443781040168576578863639089942069288891122757113712416694433830404000903064785390544170521481514281040523770083959930156946085514483376978562544516811278219690951383465344739075216991487590243200276352865964487524900388596614352689918488815830612656458648302308385327450890235370171477642388037872383663014348813100938974827159242671181319784679168530923664440839632373833328674106522547391551770694241069571262274056435142154511656968212905415440641863121533803736540288640259203703848674568373072112589359497623238693218086582955566385898895909233311481756610701961665192944456840547092786903130840159567095129214929441621719160414060803709539704456231689465504103986024826558859463879252372298218433375366921125815414097308908947228328659541594660889273401395959323920293262967242928639370283370408972210809936210107417233050696969445247286197027393226524018770913090263570686006942391349253724724950803758749812487627917642809949052512260518578233452504921501742470741030287094420820329211800034602577899976473987949053116813217397937887123623860869404106567782421949275529361477017203935220205787200638087902550925640337950315141237081559382886499769309986823027187435552080230708521892881723760350017539143797342113304722822078901679465730970048558648768546744684095030794148650778135026031813260816990682029304960926512798299862298751621717634647270996654285673157000345926947296624316068284032921722463197839450016875479466295337783461207941087563793121153109804432846115943808842852870094777494834715854577511811492380185143895070400297348257098914272453215171334189580281307028356640409734047203593652005639485508409062312816895069978288712415025073830908597207600210819659463658538356110030059475115402140671054085544947179819251082291116537010275360937747273375437988898214893059635207305642091511568592543990444316372154569715650874375978564428906835778922740491712814766065887641218701065388132924897610511343438234045295341191098226973305785437692947544973701529622228534552120292650838350527844158743180926428433423314237803338693547342919491054747507447189516816322040882155313706371944019071141699098063945125410385253969575152840208369575924759817532808703498664244498328049498522965114280971360846866883978835461606550131714329251248315008382124032956993548337085786238372182514563719022992191384635902352051023466250591904862928203225932570787860431032980689949621957820956414708111473036761936031390934649938224633472041027613497051919370801217353698629924907721307600665235879389055370450202229119648401615118165223487481802436474573283464027412527177236209756478566684483985263961851170505042045888947963927828387951601220054798512396794666353942016665872170657617111848340240424651543702283382658887050073866014017244160052837882319412603412215535505777084117083740712500937178644033491221028197799152387453797996135757816451310068128972982530884248650139205075392927743687720787507825303775400499541977308194021035460446536575200022481065046548663085592716626134421079136956741386429626853392899745182164562414227137942686263786184928517525018909696038018060199334614270706728100252127095455220388361423654545296143832791129119775265845268191256184267383544673199561598912545365992669794005215057880499860491284005324403717057910382482019726680012345141931270866889836750251774804630378803443851567592727462867103867320746953426914192417230632341298807684428160588346793351192892822961013148426709609762716535362209536171666571736050857139757677847432149915799224639484366573789050739765610924881165548143730816369971464691209745904204565909733377967166635006375197440179194664158681146503514516866704102435822760325958799090506528869609414583682576036332260563695713290567527854912706250623399473115996108200167404754789931981157396382795982848826240436676281197794058676222911272503076948283835001323805389326565431244844057837357128404811134595474128455315259798520608770542039311473068216234719957732772752603364439850788561770355566698085074859354098220908156623717992006684414213408192620733830291352591889095876916816218716507133926591749913702339813856739760767978336319987854708577108875865490172543605476556609851151459838431365156052690404323513734076921383640256417491556796409649404546039970835383909731339280961087039278273610952941001096210427065849009012287163378347964957357093351134457520534993530224833687707606658197475528658015823363893997523588931157235903812238657384230874376231797416009785544817463927126111924498458512711834520191241840545153307955042253125144332969577662352023408844791029031213580594951171711395760810434355721586008241434691666698659722180998194909726761733006687368684629733524270024692669656451334709406582792976099219868558081614182499440655350065735469842210202359613966093378986187613001581215210837595569429058912506479255802421348167842314493570349816942372897565588543007008787724260595196534608156305810035244296523537010706854097196420615260744327212740806582672038393712066799346103526366477517456458309828480316753480719745953153216276555221952840259470848645916891908612652586991182076947372840813345007572880936706569664212083597922589282354938891016768680547080213042975195530276740955072332454938454533677921377403089909582083059513857611649228727265100250180166029993429392530250335871937215004134638452318237227541123235513558263818884807993237621752839598616515743621567450785591678912050534590958991562203476067267267873839795793461898292991920785201949783989708314943696100069805025038533608263073139863455587164532038989937223448075257746331563087495395555867712137842424746123188066224474107098325095342941735210235964311549917058362721337718854745245537662102726503341361865729204532809526708936880859854778236760266608448670595534290451439461941856383079969695173546626330756179644094150247778288656584597028292062022400972979436352022088198802269217967195317165165110078197961159607772805988232921877290526503235180826995806067142390000380043992028827035974753483080037553548060761179786851713731639372062223417152984563428418209391155969561965038186143059370532614833881772672851121223579999823399347374648195451491484044426505665140500210514803439604128024571177453568500775640586379236344687863294174479354853137572672517373257591120741552911890531128401030458420520682717952781040217281689856386270282227224949162029233400771776198055910213179000403737306738797855280963415651701146149715602569039449388044838108902333731834517498768361836719045856590486191822507902874911555422979172719279307210496304242290039008659030890448392095551243766291546334433801908852782397838001418149180898242272777365923970369751046065351627858749142396646095774913045754633098220256586212282289273235714685993378262972204063478261564511690953984669535494129347825922149698871276864110234119208752918766796946059493663798105530297759252188670043225467690371328216433269169373750126451409345794490405797284084164072205593040152453124302269965743263568494231396936992240588813238012750983810235343122520486123495331011849499180768647040187748463589167000714879257908236958850830107104093997229293373787728380286433703185164186160333419403653596026002766259131265381966418057111109957809749180889468656274700004646145690673584524403556080671096857914482161650184808512510379989016764756865416368804064220767469671357467580742285844828379501498311554967593579096750928397652104290936112778542072664387872651850837330018003814513522029212946740337008187344646095143263505633251545534530445795704777010160115954662629976539026528536288696117404539565227165850001390377928511316405907298433866021084410432850329096809864941820405205321257157412247438853591169757811851603814630033629829755742772073290389834939930992899948850991901771174032630835471941824990361372130593620845028855194191105094706440990984545607205502029898182680415218766058134632463270132403328141004218493061524270164284195039523807334609857582333316441212200572427238302034402018527644266902933219545258339508400607750805175322696922315439087770569991021104403867833168601747458690657685828798195429821690628188891506566115083172329169097779674720129430212910546510513503794147054739956278509165045477920370291123121684575060932664259053563071975918990395812764209419946873709859525350337809777370455993238548903584536127033898196932631201310316319677335782155351685478432682060411375561948702837651556239890591765511658696188128056136931415030060023199601982381101383208708834069965088676093739276209511716189080842527668767436138449065019927368174697487515657744775239285445629686433682702147122539556563906126553361717348458822405117003824712640759477602177850785901701353799779812726627521770093286772503352971369626518744660316193176114942715853068574177589057401196642855635669400029013381588625117150014724519230785016036194196297150080895021503015557709820476895873936747684260902433935055020148561736147553051258472354035275469883373615991783072594643363310979529660125587319077054276058631937423321606106195597627717171844692297591929905185597458367961485206992611807986263060382521601750559545949104672123209938100542903258108481507080019637772948733245693763884586529995803785017642068856981199369957374395096152927986436286367254909182820164740331414414272753950775739680369896570684766488548488489288427366018376918288256253073478643238778478242310641854814270177167224139702166728836004280594869714343827119309225857370890749540084690072582626387263919770832082860323549601877958489147260915256358381868775572309171553145482620122384997294287837319139525956246668148032437724659444213929477283243012112750712176485170511048409077956334568323204469372256768713984967550450300405589643010921551072668473894433230028574458400542639771153255468701069219431262687640914104361943080364566311516531208037888795401114349409858108177245658660646190944158116093054838343570675977398433938915334719881956946208597279040924431376720847605628951406723063743008361351672506448954191299681675302993003620244894698521912600171506233850731563930444311086527321392815758793901008694650689362819008872926478238922748330160487993835207727020606846378766633931819334660245598124326115073279920947441117539990698176951189598536736452226977806031094134123222252654091747630950827812293650234759137038447345141654314751458392349781513879162223872034301268627530589288764462399631871625985968348060782312632787246505245101443908907947797612323564821036923936916698475845444064983228933668552652306511295426096259732650517562291628760258210009741205804687622344435239472415396780628500782156534137671918926022975238889071749161753180935438519759134388406009077725613763047926802337797290478642588808030929413576573326106261825036611457019718284905673579522145633009555481602717163666585633469175976614260412208580321230185501374056236076662628737369444449812707582589048675593381096088496769036327315297009336618947555373071511245712121888113231022484147563561858488100829181324908332570109759180730821073130731061012010239070836065136727196763250088950565822354309501038370946150275167401395013649523934058693250164934453179948592712098528368590462659421874949546760986226131314824564479585308125276651359393255912989497233343084223578725048730975981691306197721121396323296100814096522107260179737443342432878208868682931981089294074475592296642546533963389568298051420784702243628528348335956815401902946021456481606655732581081826914513478620624319391351746241522996404656805474249252300760293957163060156205433439030005441529245709943494948976417006752269689095838063150176466066466479660335467945701304668218514453356967361561256729603640964491191746941324866241315333684097392184970691432509145768130532883249877620821208824107188455426864555383963992625956514726781389499923080877120159786535730927068845340565799322981397397845020105766021964557662047456923459728851737522918141990839640465462385909379977607715992813226784976092093547189645431386465608515870115266900495568268864641839723496460180008477886012824815640151837090880526793475486969163824749651021929875917809277853989443588769521007262505718567875034364563876724902701433411851168880516495793361967796006272056373420194056333009469839788664054159526447637784384215751526403604082617568591814550676379969502742074594451329631291446316637875461848139681784485509691236063629965977516838152135521750135190510783513786438412348511289750364743253927942772298904957395611179652360029572101070623198235790262744643533158652217749524106534906041796037402270289806867088429179064844891524072505251534031393069611691512770855097402652366357988485356818671379916677833518470995495426198212420038552371876663751383434455484395940282016219787854269488268094425202758814282954794701486517487378402243140501497837776229625706500655227263414377451929706039092128324066891311678940079490586918561308122600523553523497577401978512010697664084324398849777237590169837430990490752996578538696312565248392894174142138058584076748864594010342738682990073428064336509361436826640286178404148511865221926084724636839632178979341192696549488179885605277228735894348736339457945039483349038461763863137749682175719248436699868028668094106455228573605783136635744967222428737282991244648877490887864857716310122134518031525220236838584066279280678134237580005473318171423701058936700439991095097151575997208061172384829448106035411402556512808537373867873570348318841605757126736055260375889877620077048362947369521776617805445859947388125565963674800569060491593529048901381915061908893121979984718808972669342975195784656367096199067509561411402215309136620789567729182312606366921394294145539169849569354458858591963085688091786751514843759668053306064344733251467476832420575187692810666351356994372251378162866610200366694112813102248615269174211813307127973405314264535183985178046739691045293347186356612884471763067988844528674041547671044193422775583403222363283074646568779504782762360125666792175342034773402723763422883536948091909896943258495787068039195509837539684239045824654478240312566485936673680295073643875554302203700182961899890663190105603314802669677056065324350067957417116245145324060522765243428316396484133742314157705939635742680854593895191134574017769780892873467836705507679360542745868282821632805271936994634581437256696755070255586183713339222406396091709254934239426019581771565260576195519214799618679420712276068472394368541345714510081733594866206798641398160601540608178953657285131576414261747034798098121168914423775971576673159619820488982698132248170114690148973913537912081503788540995168728940556984728975450198599134103383862382682537539098994448139649068351938341817640659050115725022783665657003915695082461290714694028661849703571329719418029805038563812279524511868784811055066685370833097233934891345204671388142911996178060160014896588850805604713984072772467334766766624068918252911704966308138503648465480393690909869243790852644783399326507675261507688184488904726782181802527625635716632493430888734233373987993792627917484518140408606807291083299385628718405583062572694049960031138113288356546745612366431729467394269790188263310819421257557462182406193870340721486728706021631669055571773749168839034347407275679133410663239757467688513055571223164658028718464499343943262522591571931812622745920463843667450280130145734520614795374729577626199645904837564894199116896779249488329886667102737144013739173079676093457476155052551564828858382719629238148377474212930162329070398737277879159868372738142542309584211642002021547244543379863130349261330402412877578294075793834012356402884380835966319923612759574917241539130119092189599614155526906405398674966155802953394958127142218491140535839194332146206053752124497312280874154235519663259580552489603997967336088291624082199659251446593602335698251623079687138962597326005391426490254159784805332308817115793556879914305989455866491947183834386333893094339136468299379961008002230794746167216900396653397250330357617312599007856108647353232498683220389950085860059198554449941964587172053497667420748001086099937543615929281819429477678265461907559942191691746186576174222311759310924915802797158565724375699284277813601317411549267377408912857445395838031726119583259166536591154778001588468131886248734901747557569779688792005356008434054722581458021153777547421748669349642749855834643478105879426000112615346358158590883151971277123352282622420180996617784965255951369669942344619762558360973831018948604932373581740959044064549648000610794620519638886013073980993566234449481221426835859830263508351572953385266846859673015385747759864735952664880723463584571010844421763966576560167888403773707189716948949509677616429160977917038480935704582167331339093013380722390909422619768993744128542299509418728739966569194630108956468614381556682683067621615162200697246505669552529698586657807686719431286383891100406553498243138907963986374957643594696558640697122897382659085341168099231718693130256353431680962854428485778541141175368474233645919656070007258053568405175854118697115667083028146519263984762141119790670593238990625805505223631090634733662763417894064599963939297124433836589457166063502621510265429958624218369870897186225724199117108509578970755181103600011309674025437217001027942792577120652282514514680493053699204488154035660738022322156584075485292966444332815996686917688576555343010599881449836042040612803829236471121211256638116910705216535826451834803905637842585578897625006628084794129976700052375425845393579563272635687351224310914993955050606674830320302329088074433735476864898046781344402301485744664218652846766502816483753051888087476968817814814515352936781799578207766900048276942728991597663929064748865436695420339297997074943781242650303994638079715526089315038788641639201292067414482576121908318003114519666117403503953360915807034953167115114696976529824136165553419862259535013727855092382029043617270024416063938941017253849773952999185877280051487309543403731191034541743892182934198278801231146750222639021863462827579287075107784743849303676183797847772394831704036017997894906895306974017190758936790068931084519236155732359124471614670928675682954146579299229417079409061157650458114631897110450856610600784874826918858514429886879693572307954097675609314100230422284674057293843568133395956015805266947751912160904809725704252819290020744758283064476891683052161718836315971887743169927613540180408686923315579147784521648666642653073757686844012630525109896459655371128280301442785558434965354564207727731117560345681715700391175353093860768413116123237747116752004172177163409035880559597709188516625194080430903841526430375301082144067073874545825078809542526676778694460795436656001955572176038410448058644436273759286133733129347411458301783348532767764147970881544335481147473663741160615685678486834417788421309938680135716829231796596339038993985663499019987970381456121794432463935934369204317553692121684609862708580199088770167585086026836392535809417251851478992964140320730107155782352581768221175324423756388841967809532667417404949391305126698945967432170679647539319099988776896921203808778497607584858757205085326133135738977831791131145970400785182123913665317337467231209271300615260011768905870518647363232661983829626149852842966216495586052141683380418087446247539391620739420309951060423087212565390889123845630257841670493256340777072765972076214262388746330282803288049647454264921808589750767907436390703631712240225630243909810854237198922716553218197121482162791516533827983471037829169065843552447677611686381555568306038175413665683461525177069323680592813114923450244939620581097736583246243502478593113279364031662284860252933980158898381591998910839237498179517004227487585724960590035386878296467496497294513638255857874491711417600222956005538533938623453901621653957482256674269264078970124632851352024381353951391113102964614514462104392183861595408449377576651053833625883003672981458774395645045654469466771947377287071710850081929458491008325588533253453415480781590368756747824063662213152107828800706644788258195044116207040812300673784852760615215355815353932711108049780184937012168416534231441414154880238968693499558560939090121699034146469755418671729369508394405211604712242876850359914257470602567763043923970010052500207624779396752425661445704799726251316458094605992777527556861040740452457949574147750103695612914312246454890893343600703978281818942917451573154307554419165124217943873854164360001738452412236815531378753203826619514951463342660173614738346494997685826546132613834521757627330173844377307083063317393905884384040963234111095113777970113004016239722588311023462542127111555514152434159580196934174073376860855857342280821367038389889350972938647869609651516339124783196210999242138387165193125006529553694304707589069525692370321958963696179557656857487442044918676591432292953517079825639718462058658373480881844616229674365541132713762466250603139906387669782017641297114186365038307032409982661527968281245722718981459441651774506434209397055315871374109666211360375587526498208377431976561458147210655659099963293943985847915348840137578222644774206808062905362187168904649946561634686184673335110049753663454750079626975902616372820462621512128768494630802246560587188394369105852458840959046355713970242401548386877703181412699965164820230928383622931782482413890281153020678626177268693632744534716063639093160500976359948741115433447966962385161902133819392571154818647130923716276887728286054163716841047396361400473888201145017393639513712124149966898386488131193278983273775933137297395380501995426240782596430169007644414037981774528843917098784672267864658372919404024457988826394189047443169916766826295122312324089209614316025696715818522048292518622413347918407282210429988000062479654783271556958814361204934910445143901472441849309646347659495485389087713318265558787865298075556101314637648778478619587700161431375760211500456124439174598164749554699736150307842842190210308879819587943739485721708512785230507715147701572578557662777271831136246573659000576318095653591900640810535472400107736705432577740039529100749218996827890602686455742382314260159120396258771299632341139535605710102922198362916909031868203396315260493813908539493225581456041230831484230301923155236084877436781670408027413518505223437262297785932226798006123836862187903664383243694068108534318420688238514652895073204690992775056861043394999887376099378079329524593954806042901480972331836171177617457061095698741800970452003955912259942762787021305902440936342490533230618209067677175646048746265032618501577721490658666314054460685546485198872754268410174932953665238403959629155299022490059134322775515547076619959298622342981474369339607563182256473042468218610178229721762434904837753629872761346759026030297711256529818578222626409607950066598102562486144121953835092526465814472774533710499287770198227434921325033439575339973883048136352453028683768453721792885135862850619093110339066177158179278761592229397589574995926737403338801266303923666777771185216708773430135767125595717985699286882811452599124366373111218422522152277167178476975636154688296732400154361939062589586394490498791760990089485075630172067434481318926324824481760170940505629219006419504681922027514180325787487471073677029615283618525964498403984179055963926082145441035163886425057696877194217523657449509022210572277494864293141244867541388407559851465953687371550465046693126371218435525244959975204979086317984820933937217727822025136365195812198999436786967975815724269210165661249332576110293595598916537070670870260533995302675941929053199092078260520478195880494868109639586036649174519682831076030490598984960885439416212077949695380354852355385940096124703737630263025771066459987043357055062611905836668564254783983571115718215187774898216814274401167095525528732697188615838395327574869357370028922370808518981933145061453710272514517471812495510503008637304750071817949349343839435588670281275694275115310626108545131500813404977051237200056207142277877789170347080623138344263384549227780685625693522604911986325211182931636179085317552602888364861019324705611864084420239324459408500011902840416213314959002395771642780329062564715552134902062619298165009780067697926287288776920190372935878627738779534199611836248439253707571941309862051920737137336453487481065443547505206467001701215801403718216049966134448600073859453368225705722612057246716885818366570862455793100517194458168476224496813358033725079284756074545760182318018297795932739462742583151136955753942955211995990160378102311351587123267084292028741826109143127752133802712797209562796865557929451620074643837246475012726888046783780559618085643256699916712023192722138473049340722418023309828104723045206449174354100443141771216462145228267005286148849613290317219873763494475885631855595173792988592825867313981978134107128314923099138481620381536757612205827515072707238347188823442752935290595268687069438876096930813097580007771227837260735329263529087031386196943429417089468628347059374119845766492606632928738440563660189094468198263612371062775291811710996164439352839627896585411054558971913406248787996084910724781551865111480705853519399935417626695101706132769164341645642633608653408033651955340901972098341266545675312816578084900843717990092435106188574591175354269619373888264298329567610224053782829715605551345471127787805404448670702972816158785390002305233545250425526126986874999353726830631092123916313294669856154960629362281538650899076258797146396114075872441149619905171020346419246752789712614495106812021776825540707104205442970081636356956754095217587683713727104892377745817846231357722079241506141113227139390448140809654629162761677555855686722119746886126406347538150735120589307085705526925870964184102669415410715583817754248784636960740860724841063423238375387214388877014946053980595122206996413485168756127825684149839076642635639405230021663053073609357586670700426082966180605273072235793557509753336626367917076362289825550922912071662677754136640470111811240888263067890152784369107212443838513582287035896656457589938007131100315954494922619073143529890129947882175317870631950369082378878122365678503189943041061997539178989169694513170277246760938128009881064670893983186968305642669605083383123139791511689462085760588535274209472958815449416420534711067543741696681973354672798266237831323594622565668174972122027230276254197262945385793369507188210795463102117610241284838453754028276627277195269733631101394729373418141275460196950808683040336228687573882772433020572358561119443807176613414816834281170147706649157120912509168086466108047188297349409673800097577688645185042096714763842677734524562122182366085872443803608676446992396677939416174966819384724577297499217188355079010129630590380549690345967758712689559218765540125898478353694767145759740960516699692714520571090514852968095720128030011938036422558689756494165364346256469939652638525484101609897676047465945882847381274748890489552580189376563535173978284590502118645052474611740539550383144277125677744449822306709034635126582607291123914095407882549341058701688040993316582458516402952292909581422723445019527579178817113488281318915768448735577196206437208192216838786410338385246037270306812814503181775181303712793047800230547981923332273505311909217704214256020478270250880919561546529031607114416577433486951485492741822264288111381710945695051678741629434376891480523072543139877521600989461098299302514949093563325409973657671345034031420407037218306438155808687448122044396801039523857950431948720375588369748329565115949547291616938862457147375763504404569745921455165547071555284517602101491368167250647508903057857389306348944485242137084935800665412315827964558430695495789670648473892177866718682187686713968344570410092829387584302900785197724662949203344231894398539899663909865139355131142125632661515353815414623205916857184515828382918681095515329959852622126303169752596749359026056550830934114684053538482049817163906292654587052598549596249985960022556761659344370089623058965931351789262607348356845584735035690637745678019692071003654007691465194919105312840717037579684335825235425295662005314588832634356293452433775361534518212605082696531253896733608829878184408919611904225707536130929980741636386762652170850180232221611265533043570653494455386730045521453467231842308787628898384057742467271660392514082918752719767688110055244548454923863696208646688094360992246369987875364149051214267294978783406311622581742389790852715123025493551960926837151751273468380598509279308644781557510738736613282423652895835425181875114645002882956665955673794889301919584114515520121601404188593834550310652642897753542530384710090592288953304439148550423963291042248544490182641036955680508432336848583834062883755621741973090732388587592928134125680398464456947129372979416222010996927268162380814647770136681354349163873326815994345404324102209691316920974148732484332015100988841301271440769752973526229758231276256349010131593393548447696828574950715044215878582023813999260387344180848719032170325876265396272522326108671470763508670112869573258941931918539344136271605986484825448405193331315185268359737499261348674075069301894091503908552689230539904175009336365868651629697860699277821531806548959603244445302072186483376759202797496748433772514866288002615283069758789955116217820049867686988633435352323234493110715293669110501524090960052380159126471338010914359951936884063421374497687555548550313964709578865504094383588113738584572967925209917953825457953376962058672828824982211395420248458301786218560353972907674925144251846589623171988212343765371250322564803169804770160980429961493693634302860915991582455713091507969821939179108772259228743169475756184408771365752887433934252441793337051246628067694164750676988936295534008777194607662650649413533511746380435967741690002614174039220752421373512020548301424805505983428160921978711566415976952698602892911181967378239763291229209420447295150317526330086065356788039452523493973616406050374444348165350058622558968926507184702015303392352731547651670362937873126445479081552300905973913559313398362648514657436154661892050060638618600016520590532489813676429969390662623793098694107252532930492122250225075630234749574652691002208536692036974108933583396650850293533912836335277740434519177220390773451308458242220122696258297766159389567493948322185852853263891119595242284607516708516492616894013830519607608168138805634767857355810470093542770165740758491651241251395502916155361083530923413074610874370465016242350669446674688523364602962935604856949892267296339904831998045748569907782337271540333763638457768743279842880026382445807179591007016998736686711797548455460079835292256906429280976256705847729453927685746014332411113042991903600512607953986061348925134393584870399334869547751014039204823758022147160920687232631123140931966196958329737458552781641800876916829758192207461511034627555213743196731259620557333106991288610529616657190067197705993768710792649230895453900183916714096652024355687764748722498407524624642091870400464406125708058685903281120518930662273376645402373465983218716925598836497080635475684448929728712063509865672732780368605375489085554482854516335469383891599153491239164139986856136022604592077803239681039041305652385447191420132682145784068099362518066723928852579937944387904352326697131164141556117885895089463807610676835270720186176924275832252829561293710725110079544387391648287005834171771465398823735384784101732332966805452178839309055534679190551857095930688656638642452705419885996174373515927248899589410524922550588243536322974124947507921577981816398176781910349493391307534433047058147433227272288746070829093233398891745535158940687997123136641751757612016900337526178722347728250104007849280199157118551546573882524735583915857981261958462914462360058526390083285220349265133877372378954950420827064363683518227139419023779000075964961457678354979686318041904063869913202879413102070148275729058473532375681633586119122300647818674351088705481887984781552123855327212102278492556903544550761145221729708243733905074757632246516969441336230068945618100510471565672463292362516841039829585444824767765393582933786472626009603302492534290041724133142245396407662335255137274673314040248346243195133057521734476145410629968996419566338622683397552675152163293712780195268409559372792589681676725261546611608261974050269667929987866761389009648694330644791573283499779012344007009894066229597344728596354196282984256921586898485452614028428085057281468751599920499906032586146594299146847433875007167590354404645177404370341600460673648235593016666283751739752842825078859981138605230866936542351084831610557842466657028935711974873832979305044610863941162028056821497202100040408575070306613453751761437300311833040496854990717358506870448137581303931781354618183264175281926925673240309848214339388030529502434006280119416920340064060496561847069434854126389594129511435070224139753808199647259068952573095617404652040410371058453491590418143667745332383232714435607531192013608143037217454582952440954590320870562451404872856279402588913254887347481372708655340118459046833909286914916326812300307493052697520696527536347466367012256878689358045836780860877210704911494668221905040000375202012001700685166391662645483238350086531524760619796095547551501926437994406620025967639432961637573543386109780956740429295192677649890316851458038862749296501302439557802781984369814628496495153821550932048145401310642677824474129621253520438090292760046184546252209492811482541028511303218163758572687122179131647819352790314659182663450922200438862572883862827950037049801592589501722220136058233638301272549121606806514150487994612155472709341158634362741330324830655127060249513374561062308490602000677753313073973093407381521768181993526299024222175135906699940149073765277243049006099342362062772832642907190403390063833778337476974353750201599885740409931637107668847411681857095774596765079528955176116673554299679375862239426042168122441237056649622074180797180979329948756949267049073411746219929593701751390396880698272270594433897833239858951955566457926164074711694810418226074060451561980677151868135429503101932288630017738635731973371403411989878098955244202988584661493805582050507249376861289844974187970501551880956675676647308016260167993585257834482144126121013386240006790208663457976439226566825304792157322314024403792813905068139751149763175817771804043907494614373621174727704771161090282315418530445624516709360055493718218872869986783552985072288914028019743883579349549717397005460562952865236948936757908418751488531784111520455307173196018517148444927688721912747020004068839827809491975061018459418055881813094757596915492838905159985951272554741289600327646088559788520348686697739176832627406943692141231050327635397022483032988340021606306683943898424502874424958178661146988400819482364278080369435561822393080791685586461719907072737258750941616655492835122927797578706606373139081635923325426776743487964743008999518691415401741302256009094703619726472107794155946907127409451191428596679986099241653951154304936025628256434037854529404044449301228296237031135979142566819991959740262309749942703100204861024529170204206798515731841577033333032722496737908703712890568094957887306000563857544670874176798456237103221637906850450533212326637677004707296543673040392455123657273229247733851165421886639868330957420440580272330038293466943830736691481916222497961481803787644582538299158751469013742196853743083484375890485840718526931430527724899329270900723444128445785833767438343858799497980537312355383527254175926150180827901550567597555227349539044091118521597998839358720268239965803918166879698335479747947232860064013201097780960511907325975091861343526622410176708638673498205427519563890041553571698341557637669637287041363824753803233117886040291292498425042456181461364929987162120943322604912930762978854531610518189614396505723566219495476015570842815706313213506760904534512027183638303845304236218050807541745750581668574417674436531435297602367550792738042573431635644144401136119451380866057031946847468358791272079413327776411414936865178726110425972160197190284748432766531393691195239885072021381481477340846346549831593798676555069908015531208351135062473572924886584162052546085491363133853640869862699213678687470027896611020540280325489196884683146475935326880331018496772852097079226240990841400859247555747102078687940074899803437307447428788688398433016033420144198215517723936853384272193617269250982901937834992084269271541630937927245021808856323525571735005775530580879866570516676585370470231264874625267181492490680633374586116552533147291104075959255663423641862428759980088246464577372871166467825338012002151847720140800698606549073382254315086740368602079321894994293495624097719427773002328942410973084949563486136929055503017587439560253232234124386912220054395647873639660821614938491090698171564467467891186992450788990256338947694203572610853674034599148112262002163287168052186881114896616463214180787263450262603410603928740919947611901493123515433311757948152533542039558475283899776792560229158369358417049820625458882438720912793740600630836216939016707393473660543394236546119588091321774642276441901607714855494875418979188257371198674159155617611095351643547878257522265874924682320357579935832955971708255028554132254205726846354132780874298172920443251578443027719783991610560192482982701544386324313443503985134965584896812958080270244056911200431091149429957437940775270487306169035737831085509360167703226003464715273286617920745281864103528285715305355895328653570753486719451287562520524226661159414696113007170405602865694484670994808254427345081619573639576363764200033832293728620476658754870400695391667714709082500417991265818314134986434103734770461379329020799436748126350484251325397445613976649624526609220326752242714809397968632965970654439655239683989436349948065362567221426109311414472720271521656474969646164099889634614025201646390096994213892537623685055880177872477647344971790816581123091643260956568487590664756666969948416050943880001083534798954306442045575896959541734478414630009598433963906489640097954459741034974453052267233492884907359702970577559478529784132818204001563042490518053159892208173835854253353706178103925958261248413583097550928911585674266706334399567263051065694572839942794823816621527243944964582906849762110349112232089768574328938142152811392197747281316676152816684859042141146047992007721239085648396162861103226640537859416786753119872544160535418547460849762239504045807719727126525898491754573830195794099615289741240213926230733329156646264415546404199312220655758714388190449769438297630387399529261503715372276781141502974914074772011864060710289966629552133411324993829720717367582227005138866956840223667373962802946828281031862341006428738407764239390640515199880668984524944527478052527632560504557971052982985983628401358725912072411783502886459140856024710904009177906738323329120490754576483546429796408602827635959591302931932569098603451560653444568760552037149105034563375839722873310214431307620583514004180797214014541125021534593844572512880725114496702405385246513230995549914391896242976395012331506830602910627021221454020784095978436353712692026121294279920336497844521495403094193332774734305360647176168329978642308160399682179073624806384068233383300710990190366111683632838020905421802484053163082596644842176540135967465688687404141789446098607194261788399464657250196110111096973183142851386375497092772325018152576773572922169208647302421026807948125018454492638530165316721006686386614444327495330191853337320581088557143495728606673928521662325159184652850611711078478369991440655298582542025864295415085911139610559521666927140243615937785638055371177724621987033378900909019838302480546545819135357966970223521078038579228094406779831463819972690664064676581620762067402458283369101232893399057754996164224239397089101280138783545118355867513855258691303505284148297536701013366053908473952543926156647534245800749021347037777951990258649699960105452337749131299193599125953913847658542962592524487351275035845152526043460695026571018822750938502569992277124822552938640412908977768464980374242722916649414291374783641504162724949628550349000730966698851341536733561141592394888666193978280224145782105187982498413087287990347216803194341283739355483968402675588072266535582446096288107897407179741288681118217982746417862741021159333525518939635222914404242162509839160938016662647919023326435597169340103906894236575320166679029904240951773457212809042096845300133484800605341072281834931852886508810335995883962868336973076262200068548994480123259844221004478245345935470503314204919371358699090198672924370244306221629286796672363491855121802609670660555429733902452126800010799742068744464220821127905195976423460453041099243382740286746309414699192381994731615040422448838898207946715395616343421450500201980409639391921217309964070727584140908072613848659472311943597308506447660895014628433904031703363342764566047693969525857320962964684530514434927308796880685039832030321383639860475190684587716231844257169514227548156896569973589717880894999735483057040231520737540053052866214128312687995877470600581237272981503233542513854308250901071654094379274067558323283680483555261253330903162612288260605849257859337922365722545085194910416307240321336524732599047476348325692549130189461836885866631201020086607912186536812252186305381963352175270394043181125997261403487572449357196639607524214733690644151958159561279339854671405995753035253118296875707002183261939256475728514704515134917904869746233404329733245125955072935548325899161554637947531961764035864627492715260151870078542785226720226056981884021820601900649613020757871070091413924540054938824687283835205444594054422091468139139371702960374777157843043816383317359174388368142980858755276580810423130825036087755687792370747928680034634990798827920255320039577909358338137734294238639049176609223138661753094147318953265934979015442429060276623798431007472709069375388044456298367503463153799113914716922840919041866664261164036905060517102075264858619181971212434724966225763517718542621562831564752427072329652851335944956793694096899994589453827874594212659316534401748252013033307386738475614321298591922416137774077256185117392647516629855687028940148391250554955389123765480620504048876187005328918550542380862588497405257757628584880285625671348376065224907366980811922404186267490418156117638825628288174025754719538541659256551123705364373382911494615231990351005628016674965139995215013731409814691981873604614196605238861658064354801428185325698867576499460955665888962849814876599969202889904803528754077183404368260239472292514365949019978378151135264000701784476636270869668440975651816856911707992755162703647852637661331672787944717878745088322915528356038338089233182935285193168779622570841374868495832949023424708209528946022054018192640155547252954840254283318622674401128115495728778515026318313677712712884565714494988086480527177362501421124042066698757597658220831806735947099137306715793850693492255408737302649843606848383494060584654295745996280166219043286971785375264088277454138060055577709366834338098622453115362841610671844110598434041689383664771707359788754107019982725653763924800002157211515779179565860257462065952837981642456136527797314978597166922306407939445576718984017059005131950683505608032825990680154169004091527703321236265819096182578096499456788584006072261459375984226442849478085478350523936004035659117403119485278373781257411132474557312455486383254044545136318702694421840895546629505084479215983261625559915725170908861645203735985085222980928060810063930401354409159324321458830519564327694728141998286514093081630574331676649218753301326893658614043216567846169322168585134661320788890384070810026437984417552847966823284359477228429678584340346162130501366236038816574284019218235032222760680977386422054577185850496625787691356276584983621673021650756308778483541998451974473384274797983721684957485175911861884536348977713570594733599026796587251903026659641363600603529001330248852776361427418597018890227916329603353997739293672152811507686663707171681980528023937925873995799638325635177789232598790717130454520243546690249668796840891156638570606827922680229482486050024669130403400561009709680611759159438621321685290073767152131776994177559667911528904662873258528217083390650951140676359258846176625979057451645611054806688700358204841428870931149844541472518708375957938613265279887049265065377206695344677868141532228505191945540697204663886160457851976202274845477607124202991232932029754813822410985030956105494590658271283087089810187945772339714986305819964270270909177835082126146269269661585264075402824280484561578393749835859502977875273343516903961795027834594743610948955600585194908608413688801862082402198214274413993533845246218234658471625175901145456773448184699671787743995564367867666584286911428141412589959857606930364920401525407014220461846334993774412957798720518175761953761127230344929756388340573506709495020510432045304195381754471206907730507484350754218068351481681739180963307547558848270862517453987051904345294571384938684141316981095614803072118814568454213772946106896273106594213303027349619510373062164322865667578653374211357388002621878932686476095045016863323559642065898874395790120375345952800665832243927300554995979855962170501602457685238913081493332184166485465879479516472256848674985473241482774113576920065946817165582527270043566451893252059428271046260157072537126750804535974880620687726810421598954534928800924824015734663856001326183743133335893615808536916990942035563840642322656207270928980127314059540128618142253483487485781457076974445417046398078986623476596139387146369882788725795962013321500718532395611536277325262636019433261784336600602422513812600158330032930452328517882256130085253520150568508145806132600246380661944287194734215281716572626066989926748226493303394665819761911037196840380686677576883980758844324489514080605459822537296799156687193440277417474341626350675414569104925522405453194641831326913808464076081861990027122394115255996617980233260786764300805906136299663698212879944358256080782913038895250590885398479906292573606157151935523689276810493813603669878974098530324101472133952994197832675243140098768297708447616514254983478951649929713991376257987510972540079031588184269967332329921393879305561921900281347209072374491605468242866221768423065801938913953144580228489025122089407382288588234885182430602161684519985453108450476991005547202130759295674779156080740084979224939841188924499743415027962165544133396667163356837189136038365907919258738408610337886955769646465102283241972943255764715718701034829434154917344740774453450493585199842040318190609925263347990379534117818813839949317991237566933288560473614712726241020901430049062628026477934643193101347909761235107787148360808407109807412636358074346145874269868350060281881046825418358473985739296546306688980041132041187168465741180198538814837945831838151698361169700121601784088610940329201150412027250372364195754518089091439447048968749004152614100054964604625740272439829864968482575489529708951145548967968640912323910343398800177615407906154754621510228499737157729186657962380991614382430362330855852691732338300771062295423121038049235559301712504416517384285802328012562847307490695954118425176318535024751495189886708067662649635037498036970640035998655698948169103995812819591760061858702745023845568377265978503754701483081770927409410642134555596072757392818624556424727635864548534612255744645332149001492728103332872216458043580868292587110575949177609344168195281293964601913761978999545683777013307925039947927663270468795067356766111373114702565584495882553195905738335429027851047840445446275624671510581631842214570946751138986477242930688287698925635303622363370671029796994674889737306293461792872211331700643112443971429990432965308483209684786282800174825561904358593496854377033503347357311537586117225136666428370163488526632353520595930840902751572039669337790226902169021076010560449665387018231531334754530383155272916334289120577265284441282725108969334013373689995548823262643247440069321218090683915653598832275689775452423803577991022076031305736911883198617552996591928624065907377145071145640497071448049447368635586766785104586390390360387497118579259756124337128510988574344414388036707380686065606988950287664722703601528354706234699378605966524695488696192099907384822437994194557466959246506028600708996556475050788991912765527868453077998018590607974321033791436054063884942514002019400605303756340431846081422362655572058895366843517343374029528324271516859245710571918035562081142073813445217747047352380150992930829066682762869914687816124961781796741730192055202060537638238308901928401014712405437558377340396133807886765869846355548685753727723550404733323512968058979263448281835140843967253260201998654149559446034402229881336399625594389961427535105311914866237494631999974220584182777092801154846225741650933526493751626114805639363185228561854988251058798633677207814686389440569716934942449910787373889727218492501882176748326701965718001972514227050079413687653982167335430425061834054876027085194234891104543539910579618524552315264707680115834654618178050126077334025961306302986441600605119112989206556967810904415677635010900359503912305335776151340911317922449552982441227074154757323705325711517814374582544067366366210520488482233595358155094998811149437585573361320496991787584329237590137745181984839407874263085277509771453825451117793109572515309469893786735990396386063670352926279315569789194618771794329047319638554719267690914067867263233060896334003412975554332982163525407054917251283976922683095650815886221711557465726123025354307301250636677534461812571943691203322060586227985760059410204300592163210763500555995124225825126268977205371766251854561275629388935447821868411794638700111828769536269511060212529253883651112396336808995877830728838143360553052145813461867999868297467448765401065629514454721187949475636267994851239428858711613686901880094310297280334014383564903423161602891368349282128939124264236861350150946095470629676482805107406983719540343871770142468010545178708340966023127619039227043390955281053726312683517701118557856385636273112075547055917539870794905668318809007715582590438714994993133839100544337748331387838816212270182969392370330654984849583661230319665286896665669453583473099782054260904224171099294012210304998705660704898757622016847099294706396097578144610230178440984296970740619171865230230456529449165481709325039170990555523494718071738221369499056709011460757043659986159291666931664608459078264882404496117845294039779498446338553361651581314531562420586393509201435420032929242456049426645861710711314103204738225348454119506223347141897428807845902563562764522190112821874078391031719229639781447885975157847076827512805659796702630943532111506168738875922647831876120116060289628543413307835406862644265097371183162393127873055078620705651230095495008019452894688013954782771046083739581783478113557370828146055758097639281371312662269356197283638563899139364607057098784774618626687822994299352457522924704028694069096689070567499894875515999501901778805511248860930804057179190093823314339033240014497441467365682984834451273290788986584948617232969135834171409425698292008008089666779372157910148200636648182379720067614786638144765241054154021871592705121498514260371643388488175527559580988485363292511655938629603288287563879468071530829008936432876587728702676224808189513838304360000566030840776573549784768080832565554575467887750934173811855476379203618964928179425726071738880836594246625736521352972554464951688089203651032073315869318306553082683980019221179649383265668581628391096957675411045605592078685384377648121716170262453115435102514788986335401546976960967869503943914253070610066733046515643431842739248125175814102310538956689861803444016125406488119463064761312526709505948423451809857625096968618697848999669311577019149516666782201829400154688780143225044296764070549401280874843467712385530918567246430100575895375581742868006746662998189616817838886101080211700031991735054197352265909429166183235157908713305112717220043633472765372175154901328848558734687828316374866564351001585504524591930285215706447363256384862157965119450826880076968900142401479474925843108309790004436884609435811214855352377813388376452716747408562218885348019322544145493195688135497626675988155380177624333541805771711013841140816335280373035809614707069348116918636223332047673635411666751824182378923354608033519090853248165632763672875781319657135837919223819110055401303941204994681611541546778104893010234960554656725277758647860796817338890342867938439801446963386528912501901151635228672066104579799420949343259716407463439304583540934283714748845676984490530656517796632377087408576382890581027371817174715513825268259517599431539518917086376506568037322341039767539585509807359842662298894727684571607823021009209892143312595986887166774838281107617919533990277133289576331859722055260230133922247076871404392656289120389832026556344433074370265803901643598505410015515757398808736573115613105167142404167124642515091178016103303212561269407712637523163626242378672810625826461274705297408910383094146816575114289441628387000903591490709544529934000092720807766605821392240554161437240276627510143261316885718448392835311165749396861633481922238281185700456881581678250117497932450520382522461111721902013265774272356631766622087497463926226389646559330459256671765671683557968789627762856511884163186802561582984681287237908552038628811700286750809345177573737495447851377643101871347014374676453961391944971952139277758712801617582731289906425382835884446940306258360190264074093773760391024422116722693816884365640952208948222073154317132224847808887097639187730089803109895013283464660918276909551727563931286765181174869082583258285442222800235013499928845627594071707716773432049386565979989315723476988316884617241959659717541512572039331020730042410657757811177335744106553277687839671108833665678731992481622194132606543371599776693546170818021915649652150805267396374433211407226650570191372801481196635354263035222220532703526177817571040355139508084423403196404113536653993128377936067262060729462224074054165766279919108273017962758831413275518638811243152517079677597437817566379588928983447039794937741746180648375682210125606223569822309699304055039747490647239233694660109878177132776670289311080546122655544669762300852227769649575176933304217543054762696356770884174038156819132107160055858753400969610451245610105927364776497755251063451295086897027825458094446118484903001150964127757943505076379915608474038234228450027138435985443566667941777899605007205775040677034117449230998539203060920595804967451190659979162321059476338212389654561526111048869099172920007846896780462678043959740360215329569632558014447831037342347652951222951046210688088480502150173475258428707158894435308378478549401462652389330320165827055372644096637537201404431551817814425971429784477177996402432669718202133397494200779032541391831970247439189898760873323283622528819877543864436468832491558006557087087314121041048695348321883275069529429200509693941572135640510092518813278414234715855092119070002248108684160360241758172025808605275052527101025855719274078993755905036471090586426757525013816266508493095076371869360608225210140335421725417065955402219059725137363353546821261018289085152523741627052788459265132571846954470157286649127148052876916963619048437585577323923636725681638008710591716618670511085541555015559987864568801255959545974222548580463664802830195548632320949047187276678909468078172698292165020358632150301085214360342133589706389246404283167478762638703795003491516419368979500643366521315655619536631716632810475023531266892276284373945988190733731053077655669106955079013866998823997690327533673905194372090216138560423021497835410470997721057139886234453873351436394602450033030402173220051190557570876901810115185327276291586436664301284969195459224573638048493935363694174686577927257429876086600398574352806976611133753743809417794911391962202547226679595119291118981723061220424775619423982167801491430451676717667834503072978128365092414225746325158707171311803035761353377617052493271524838293088921474591052245817122123754774255917330378243092881767431466270829760394208894946459474156483815903454258236925824968058461710628474467439443884751714270560805049369323539139192455260663422233588381767925995473864768086543133185601595487827122246302434341668657820023195230129716220350863443497836643088535442816496353131449176655865807769911060808307924480820905751266194136435997130317793366422427691931407760831825539983758365926363710588559934720594594101067030499828961798700015981290481865227928946878954609195268994928462207502519145628028908882620252701658335236351968798345596001422418272342281533655010317985682676838041871648385399894179945412403816184248119592850510710751182674866839284363177560335382370486176009292758151990394345690533355886536436259847438274402439230148586066860159450406658632278820625748739381702387733509992973568521729647853819068603937434094096865168925261714726032382147969567879117209458055025054608066695152177559516142786687344427319843451044151801315487197681909828435070569806385165024600952976486554153647339793624267411695975532014051941200757114576668510212884470111214181056630223878476804826277518759545446659130247466570394147092982921440360953384765187640947286302563131022270308859016103281298164125405111326636256937580492695678677341472991742066306843971376942959875353846847421651598234859899028037379692879201883169609667064755668592807596683497637536197522098059340169425118496705721910742170501685550039403193830417855944884828242147634230551275779231898480279192154933943356522442982256082279498559351232377965144500242972190394759581158110184303117517053511453491607747065750707865707212098950933600780362624975342992395038190081188070893767747727472346209168443431966569043119560024358726703137233784463574411765444096375494608849210402439013620367360773565779213641207841509253608672857707451979191533417694174980768653797863979032606472651998792441790488622027408228376260913563306143201622289547404484917877403878626897734539315076057817102753909412721346028860729813725459961255311640599216494701875530127671071384607890154958233688538649093993896497731704228286987811882059733426612050652021426868380104289527473216675710913235717370959338870502155572863822817268823534637370020659219441693539146368874633677735938606890542282668578539787776175632714976261111863813726958608822224422377387467126275400720407258617049347336108748523805151858761031118568704845603935941058560194803873047247704474230357499982150643381457718025455611544779040428740159540372941625819388721272355694425633299799854647869022159019186357084223404716125820995427200634173948029864368009705373044352352161495200853308681302746395579453467313620374431135472549211617532778490091401752157924489983887350564168229459885298609786489690562723914824782708079378136565148840723359125108882322622907722119854694646937972717469920584716577953531279112164935582868364017905432877309963349736575416075550951068339698967828113254760000180246674250934889640478312865499784411704064905361651501907989133791625708572936287700506359862386756476429531296724384772126974068484125146076916062062491383459209831506091082648765898370870880628928274061977747350114992473243630755806277829694351341845840486332317357445649621940520870004594074300763844967998630378052052917729718822167975137241474530162546212002182717528608336762555088615390804297181605688142182979836745775800357552667406843807922426180781193576450789491460828557319792515781735587382123984836488983306572841299518992164535692728391579287019206715751847723708672946274024206525325737331170671396698393251174170064131204586983126296290001580507681885368815516134745996943050218665910610291771005871177731738810874274224336977630461746271899865837987078875343778014884392748270766519782932405962407837369673561504644552321949295303134872712763309170787554969313630840149256892399702258120565103825533489856745325966180525624695076476965675593020187318217222188271012671788094135853109482320232978628853480710778064882520312677550983313470857745309188259924525935067402273912271463325904065981304738266107881073759952752882513460726114405046714179727933615296153906578778348086953641448354361789929233229955338402659911196809618094547954281154695681352086167111027308312019602582636200521870330227467254900188830700386858663467276781077331176903578771044087892849430507116336875604685805589762432869435327970754347562258337932969710469788284022350605607727487750761650619299960575257253225224201581903451838482362440339438943665535447364078691249397164394994760065453557621688982721823931586562815418323985704618802679271594354426881523281106793159518276197906157794407873820389729179455192667926008864630317406457674881844991733149030411134350596809352390326479408608765980254764475194948545766449900483273956094581797313078703439186592399347671749060966272645212594053273403679599925516335805191762625013036640287759078189836290899607666678495774618481633121133358854074301109081219099760207589714057513365495718329257335446697362631616819847548414970916931619758271096619714685049442308258737472524241461242194071823542722982351283076807713600133451834185293233351234120715234934648795151487584174817532206052073029811661616659954689557013783219667293032066446397068564842634580724974777542541422075807080999896063528797598624107990786192991808874101370125619070205289829865107551171772885412440720182762263511148525964395855128385543573874282658428134681954182386421066437875630704432192999249254989194485420305805368458315200857413744960962294871090678364757259564771801663436136736266704374925698554431359663832280359250604558081801201149370637275348086907857406434575658249448265154423310161649369279375747859615424506678430690183936760705680277177292071977423171106934134544024068646418412844637375891160756607971528078055830980662038997617087494501345043558400305757305758050873468607303464963754928072384907652809969878007433368810044997315349908860923958550481521565465146885891633632194185055938861494152705357092540506120417212490518489677464050897326658107958272968330129148540620772352049245804776173893420194334733568446471286618092043193989643746253721024820855392873395860135614373771460301748256794004639527667589398926578657145179826762252241653118282422169807386087014826944960303442995298645847228713335001160266235439054157652316214799224390777671102888364803562411054689781153907545249221401554614376631850842450137885459366596952257196121027881618089668637690380327832971132221099590369111987823188246407588990439754273218888164522401519431968005737004479465894803821600765805133790904129359301167293100099217507506797286269914104063411148422642739696705261807161563993529979173044768765560472134824783037230881675909289095687804078102103294012173201831130644157796073091552772845983997452117364483350373573590018825117373843896165122086966397382542403186005364929142549904519454228131409384323249534829972712624948386733348800032418981966029273810456716993122604885509110087950404950530091329853487569583580395933860774716194628875843958525549153603524848218553255263340541000577597540796232415987773989852983803775631643541511302318810070514408864151395254259831360028481963791993276917849068155117360071288359891721680882519652472493922921356108396114509981613096320479316700189257790593713355764890504235004027251794868006232647138791965762804125682616868083141358725373326615284141163366669603347028666505893192442039428715537812886700779912224429643029684427941396746840318787073780193871823317463525075326501960403058012218821716414459156681336758830969283129313911726557384023232772718214092874759518551792270697170258075363139038326842601210167627868924554275706669411387544976664608414597846436263077457858636959245104478613255328396325747277731177132710893237160251556327800725768669582887315720280923718011613440620871336672439170664184850832021878269170894781213104231048057406648804257235756075924110526287787295672637675135660684901738472150647283077289429335233477845327737051616188492727610985731172406901161219307829911914065194812032357730012446326605570512917901859115118874217815749748993270994026838346756275555371280035721587620701889501117176427034489437924488274068997062342535206746965038128808486590042399339990496023791683646243862876133684376338283153333996029925642643515897753949963757459332899539614458656691057813020722454969237112345835400026534540265043540160390434176179506710217945662047658823477040532381898014297153724344843695359734549310566688304067500099319740147943126151026238911137162497621870138649500168909405825128623576626651543285704253161385929035819296820140965728701433102203710115677015879452755953264771563546486124070411445013885070514025424241736926639795955256688736270264026972307372486043593858488534637214639621401883062077815033860428690500870761682170756297973366712188824128705187041715025358511587673404269751348066760096050065051706531825976634752516237523465397504458864814200854571403159396828167670907458978612990925805977721555001135308990824093892186829589777469353366771178185879348856516197630602669976096441302067839744294276374448432453057380228444300642691193737526334159148453971365341229169042540831259415893791193197057788444511127623939004288365758196606342608523179178889549649500805230044909371625771903974479741030845369162827614577806746755263128168648617398662023150064175953408173666494130304535971349666676223634797615700631813905798595328916764835965449851745951255678503306812776180332144154737137545529356016883956811780402304052079660101776908443889326535708951861702425309660012600080896298735709308428401819099216789516514581845000545958689621976723495228487814778501290454759591320366756548993610323466465814179921182605693171327344859872403074499130637150061155808606612736455520525830915302995954404186993848635785179362482027897667389551190262448150848279801377345365418479804385880750833181614917757482719863988590277137444274878405617445414270434129678854480752247290132068191798053177912757218733394451525763138921564670806329015661107269402961475997930062522955117043209071536695075042765714957576121117781527245695378416073402191807297493070542883547217447868604338502459120295198315126926290617476497246587394119982965823976890587780803075129360220737573623229675613191566044117325781641052195524016411448305370520673478952914315847972816804627944105374152339703230257540048698435976371717820263137055658329801973714947660812282131841814029590872294039734459442208628551042734800976674110428043302409019915766876782280124862771496050652179383338014194062115640752493647705728187982293243517642754189972941283060405352940543392440876692465449052291653221706118921816515754592689625255895356351691352704413738072963625439941520791369403576202004319932736922864722649621283929103077407483324298853856327232950934672132332841128045670337289651200316679116690602677710229755563433117252243595084631378811704416061014131331700534323880204367014519856540878338274342017727868952095326712575829188871846699777987910627087023344576942910232409989286838837022737072762596959249161991314308540872296030874550260013023079783522799159423517973778253520158244140571125487986828267598726670311699340092818673299380092913512484369650464787975110123939357427345680217063984414620373928676783372070995388036046835844028581116992110041914889653623246559704990964487180468941139265005305584199221725558000414905995712270675597292652582715340266734900795824153681759057246781525726462243175403223643539802551394247534118064190533835135694165604586335144725191952924546441512995527314257730208495951534971408960092458375476888314907142082734233444109315773933911580456593299598296461592491134387038400544029442880385580900083219431124515741659471685431498133764039404371753932044986722868031119760846929345121161476159090321571969407907797542775297649125284768452737031402479461068454780327256000562470291055462323975902026864348875147811548413430641553463800372657071202532986439581067832518776320656693552465631432633416447121877556019649155014640733589557930068070597083031450120833551066395693199717994967451743165288240977821874648681012797899538912679551115524927649088173160270373862613112745749025352091792657452998432372611096297728376238036266377597249935667577490140457305318691275920504085698627016302262446592382819360754107144644883484093840388444625880575574061155542674809244241272463039703215984635960419376317161925065867720973434229078061269636603515779426353806239028499397131387744951483022609750330835272976466880820738528038818115688740158184604577077545911409951883770497779869039310554454942924620448702970618278974743933525631969935435781286716248303502013453670761231271057736987818354645189194004247246327624243919754939509191212301802498884037952746646548221313197108415565905165579463550886426306293524831923098439188411945634625600041045086185055742888231582135129087595951448818400969111292926848882563908853000185320916596091824762877651134560850188376846553203464060112276461989616079807613788463062122192108101306271186403886215999148287264180377279144707604493139994465183517798244704397897187416377294347072687425835167847950333749878395945144941511318692490602189019039551038088648834692518435044519393580071887512973927753393653865317684648383128189998395957336429015811736775116002542247113232961092444178843652078779899764507070154819322217594728050028829752775213174865724344422610256381468344377888342107836448985051029216511391900970556699031787849365211259397044818755968649135414482543120748243453878472702790405887125187199329799234342922662397799795008448324189873941785603256662270566431561267086280608580687367124288513898222403981717520968636266279660400517727015045054741504558481193716996273232097754069326182382854711125340055005393720234991832192567084019084845789976630901726100461314467687942212484793012847859030842327943855862397637868390741068307246298840515386542953663731565992620232145560585793472905381031110642791588209173392055493404915306368259145493373610772385205665212202833920422925003449387323492209789290137991274755499187910071643306497583476028182597506301538044907557072885130181167199361362062399613498958474589140434471810768687318713486159432168699433436658141448256289281391367398766133342037710757147994461391056806942790239622043891717706639262985226334101643151000996172891772397734605984208043383313954986013951938821268240110588906430116970684253706895409556611635764226478499808006270854892041463111087174524137294374516611139042726577426405178869027922821027434149687683409322380323151314808397046361519903350476341906965810002835168377493200231179304627349295993143371967828409970844647342604865181502502045657121803747606979875212858307288677133097861086250312814743162720681168905489720248482231790461767761068550063521809584019246891237117785119400408564052353461703865560756920347753388361448447979201595913903506672557411653994875001557253257111734373245011197490390007569939821554144901686286978409367140599968480494525765063254009402643392444763235271157282063079832771865477638689018077072613069159229104641633434433413926203292967538354302131349500680358918362347543382852219022409416264487640279502799914248984639183231816667680083693295267262277927492722039358045394374801903191159001451189743316256836734280622074015950104457006473732894374561294633582813977204600322126887009131629606899638974348778847339265663559670669417815131528727337873109274869143625745939982789779311225324806226410650841267093891175619219202797509114385004497919211349296756170229763882987080082840425022513791316078716322061495366776526046389907355364590712745056885393131878560448035160999154045584971701099146264560344769640749084921071594083619361997307102384979142993443862978411067074231595830973933914417445267681109876246803862285911279710901546179905515273102745512281860258254257206348113319789284376609948124719393402437271450165537302022464405606780704829518287653474409438694373291720009646353630050276586148219704812438819203650462412435402502411231377319433219546506132893585109946870621327510476475733433247867240018302231299929737900003838169028321393137519922489496866877656317574677692594685667734207177461246332577440146921853896895350518263672807022122825156276772306901853122070489750612957175883761393836461336366962084126614989658313552610474161731918500172267330748126898677104829232273044776889348428578175472623160025373722478997795034815665386621195241146401177859445090275307965584110759175284484454268423915537206991744488854126680163747366526578843638004395954327632562113719696873684886065630852151383315591111232989767414249399304104259106197234626544771262328894008620654858977550015696965516272533896097120318777707583837429687285794350316496168087835368103537135578932077165803969659201400844191442932446353007820781751956412919617045767257985967584735345296109345608913565215327417615357492478519868241179562783445325021771021130255647007879712452358116556672737042073125614416445526002076902288494957561846504788678859059117762530411886291866982622565562189993622647605064220430790112594364782666339232890897088976042827479952874243768744852220718148753558763730571167913839913261969164520303208816930189087877630809454907849558723223471661208242548897964479390770315970053263625000659649160027118750299021008399906738587647575334571966948294185506890390904028873832622706909391834991595778230433257543659625720166983674831458387868365117173556599097613445857855619918872031282699664229577561593439047324003327270743897858581500823126644146159504531204171789761569246801388549700189730377214331479465910274885085220822122242349187587196081112153927932609451342381672368435936745727320793887455105927105907765909790928372876585551047993535494264844726820242820358919571590352384661221112802978012681599607551034642298416957829115637984433190383411417024903994341632619471234168489306889654389509438921540549846587189616358646918534046487849186000945619582534181310782036606002210314830836694569495025071420069196761816836233768649267761442465061144733990949548371723560411080448851064946093271537471171023535425131192163638216529963801749615516505376106369845001984008050034214927786664742741714058938574684289450976124076141547984441504704186378961922537110091095037698317383213916547480913695287747864342072233709723909224264808072711180217792625501949397364089668231203481710515562632409826643851528128760440045318933643567758257752974733561970013369385061968683088650876798714325344799673363457572557537518446560052154844982802699200142512861539002327308000674121524573952679411270030518458837129844007805310326311602410884748901827922009163733512551027525678877542394805742148286693234581217525479137998195144001320043420899089984558606696447950167470190158705076306930278226649473213117769130926590308379736554554862149026207466562014964268888860770447690459643570415683790375241467340292565904616191873881914524168638891982120573368699466185395875852573646236314215325233229448162328396609549375231849912213257779427681014126882103189663488665203847284180870395333467917001509829654254272011987423206821272581828328265594859493197744976226901810890811157054513694703657068469558231475676309273525991720039167913508371276732120626896924914568758704607804168929205579281463435787206689830178486253785086154522494538762708478703918546052180205346994558549671619601716001659717772380445763050213443315769866765578278716506409830216411736671131986056226882248012970658134362792670858804711799442389473641772247750040648862059856760639613400299561693744114094780154624593455596635156696765199031094599362482582771905166980385088703477566520653155354049481607423594068083448710032749071380027545942014444296443889794951322435774489597369987321753116613831907307207926147777854643786294042582788314305795167266682410130240171213514645135627052105857521468934531394866058741542397745155912630056437247364409142160041811758499747483085818650083658024138707151406836773489467927786786699869714925995511641873687548136926333165606541906671441497461514473576898293716779310909947830419454190893194295094715532005078619813934485461181983073683028195386872245566553697589605183010033206770602145651506884751842063351356892938334334152267958732772302836627008911295286138609230524187629210820712478503703374971523841033200558253420167005859510990795562313936016098770611082274639619468996756002255520933812641162641372814525947464953614305355168626628366212091184807683504979399457872224238340532177749157774385421171820159544214239781814500154955943933636947595124756225853453658145687018425319507626513329530541577745722094972375667004314912490031134996107649955623798007808880370749882077451651642034477541504666493586545191624647792791095760590551235209442433960851632217450314215157909002527387019479139823560909431020023377940909080968084918351581303245589823907875260041148966609486757149655587112644808493411765119905850947196442571528568581676050674478571725623139776378656242038504091255348883575477039119294353118799922147225960141899266985588910333202592136944662753449908546559282306406312078522186305645227398423785779614043513687572418173707963299576861587132898480423903517932891411873441722272811920531345166728516849860857803289331407781640745078046239100339149218345887790094927755548893692886221428167438729660518801609647977996307430969110315611854441996492548791682748193109740436071944726479044730352521836960048073349717927176856794712231402345283810564366356068368824701569248478146990938402001059344953297399803884772906016357678661003880794982478579310624423903177104843399978525179182389201678810196676501060878723987265211691402372955979863625981429238687541078033443010597592713509931522237537104773111218147998544271189411832150939780059663638220274669876823139342434015316651403319658587792360851499633436087681072944441594159861788647646974843285849286151585305337905753387433845515560676013080938309135894437665842849091907981374696934975890435565761894682720262492289079705373038818312410701542399676413293129728442973975442150183774936204439123574425468756731600730576903435023698823647756332372877293362020244621167969414735063815972234345186209366007915501214823140379749556244236352774817407820008799285345132640720971773699106723744033126889856558837529981596501322116181444891375243280280289326076768732009414740683852786578277789717252346549479464254896861044761643055218174989126431814483516383889176239580551530451896356709153873523909765153858933456365097165430142447498404657876629668980075199823282409147097945962490287393982590929884819169558384864539252704847678037170485022083909390970222359474485799162071867764658525347187990165386398682793861630430440450877912847142087882529160872872238111580707150426253933890834445190064321949235878069941258662872717939608998351259791342927315532535176125813070207235360383696206016727963911551417509702937084228619625917187744040630746383111958569831030801328652110364060456617555070275868738482392191351526435442069491937053666893839954090533593142627269764255199187859604311276955606600542115987611854630414963382367340255535881662467975985039711332335740922355056245966126230711709563196319053942250432824726299190485139939894925726687191606404251374810574652546748200856199039939825700873734127741776101052439124920897547989064164212700678885558456178698590369421737262842304135011738833184522721019976715885637980673791578381797550899257981933029259913728154358811741257994227806733927148634602324448762299919832422028233856653381507057245791739988607672076558260593485410468249520396413761122765947717204778960931010947739001472563084846755495206406589651879842263376818146382638038366682160011856188213285118640916912188444254538756594487510937902137226918967266818306868735299941650961596594841860501061585246269038007663333342939142214503556916653717467887696155233504050899054635289002651180522785211486905127933482045452764354622992774977290787073515114028046907525783645222811453457334701335209902920790501829746674279650993665671306058871688111491433573512379923000713652668851311934604078232120054069437107740824937128752204404649508473810675365776645096970022510995831434043568986696559677505341351511795117252355439669888863169291324648389602118959664147279318826141167655782059947815306248611645157392897663146853030673115883727283477809347471424232284593798237692709409623519773305863492273877588708627146859084956631512682464429823092994165359516872750266968694401633134780914915754934908543699773354116181999733691138998649632451059173201891933044604430530483788365581887023038525161469278326319617879682657252195001579734768576904061733349458604863552614532252030805850953028602904833890750293332105339561165733360107621824362208995403996922354048965375591330959289271740129130729844880806720581618147826534818359979298068634928896875247610181857595914891123117239084635323950457865356278853158021213254401060489423519169320353600073340758235767965854116635240542654091528765150984326094399852924154620012529931463532809388074050645770598220869015707676090565579356602785961308259869220651259014692350840415466734803277293976417646387607970335711416410080863770510932763784325604228743745183450247762721276686003962039409891359786247188331433827369125853653817781534248919311627271595548831827060421387015544434369311784850031318986131937955451951888746573249546111723107791627934409937555567797155087635162260399866378390755453287076827641095823943580773365967616694694960253528550238692378193504804081484930394361930513496018724546765407369900001733166766969775650604696055714068948018844343617817291285860668883815643012504066715615261419564304190233652871312308588682068725466004269902369815121832242854892611434044587746172318664852161130125236597286930477380404939772606123737500468879814623537323283189968141538045820133532914267509502376444138124726714784930028817203319925069621252052665565179077781722736541270148501204512008749952761398177343191507020391861700285155320707434379305160385191784478801684601367706107690985174329331588639007125819230065718888528120928145651800998165820881127850436213695910962069458994934082518724004460972135612505298833907714076051223932191509403656172873173738226195112186102085484936188878271390503042562317202204292041201823267842346482806058720353871885547386135573110465458910422445603916224955691617564926575362512598863571817817815238851020330505336380741741959428016262201896449490858680163275989902439347222994946951461887721058521810854044736329481750966680818229466502889283603504163412913546768295851434239980054970905508429467519805012104936737561166566337778767547172947318552691308215814697052943594798410135014053869175801784664446260240859214063487586453379599643742803367568417457129057231489561037839897407719106642330527793728749816868476340347459041446573022808075625002258288603141604966425832764185893261720191102273082147831201907568045041226509720963445556290889960363647008742697980849681444158892358269044838695994278637758443896970594316916358400968625505865488393687926365247771337642055152068348473455807675073496681762877738491863085619289619683318799804534566717564825782798927036959899588409030664595625492913469448359887060148059742885791096733664136242353255460333224891847190987896765988502161767082934191739849083798816859787634019514655603121711688693600536412751234830300456272645157713839805572937248357047584934962840035466587542265483539153647713970987083370068792165534745553050400760377396743356182041022071445266612492907163278909280405309613390302677148907968640267724669624825971886690140510763521352752649025145110288455182546929635843195721095412018872883602662309727802958957135565552073763903918888386574221162477973169707271759747773807036514185738154491955979849724404061354098278028140598233847976299450277666163301121571908660077192449421773401202596838132870247817499725752304628836099162097655743611373756910275921005826030759725946798986254488766476628481616171391971643764692894055812832416590183816969957389331988255993878515171904032616174071661449811280926271003171055020353495064310776580005285462438354450634028053503615578983818894407735907537668797660845919157247428325835922350200038999321516319860673270045826217012808646026551068706756987657521608670465209559853524656232082208788863022528148075966713663980040554192095274837060325567880732416251036895367402805860807297797884839804988255174257078289927186604435996790279976723830074160942292608606476703780438007121811069637063951542339028965423717685962639346199269714720720844029160089375187801382680822507737822457849383042004367624738913435393422620469844765801760617035433290942577350031571045958346358845314663539477047301132874167486411688528669166226845769200612957618006107272712225212478129802673018551314350083407502726484060929247001666769052497665032847448488752803901300875906018820423759001074690344186293618755924918883405458733290246636625010781223573894996716059457796669876550477736571365241838370460140728831628934778145714189789615350837213340888905622218647298359151154664736693930450454418164263686560109483826435609620362045859718033065365921981498439537165747785698711182630763449257038892876148229400540079540479366274968203255981829601016621028460242944808202870528651826615603091679561987251214099312063595521764090340819028365997697468162718622614977638072240776958782138007177397324312452512981356901657019727252541990872309702477926487588476292948451061956292377443373758101972660242849156956378649397644451669290792917895467874671463996240753546668653874226692030639688319058641570253936522030600967041133430950969467191250547028317446547485214434872372170139071956606413765668271006739094365306906721910424065898319389317503712214071373527234862321147366706345284943371131437748859545455363465872348343738859094260681232002431564155255691184414437043089395727210458820182152891891140526581408589826986916182326025539709091137044822436047141278448264283677439623038963260708698348009811676593368116051783438479283452649984060590481140510861030451103538545186818776766568458467902178923248435268756539109625843037362183968059085224766551716439060254585905611535464341113147810710406545910844070844658882711892173434268984032957814843990703791739757544276549918525049313192687786193804424808018131509930762409997370302445919944255610574690596569288515615766033144416370978346322332690308604113835824551534611178683516665028610555955216544920420484750317093854893191125796024561979307993780224777824315712044138181809244137886288110807090375381667372847269617610304978986390980072337417377207214960080578437425575392984219756984438391725820526461320093539378970929758873231562179143317078398989972897646530103522974774349348189993561145708207269405439298944305485950296053553456967229161465623561956469438766535522708156378753473005508327409416616433857578574619732125197302145304903051155916255984312941960339046228114929872989827239681168799315924148553155769644248654987831590555986830540091993374193441224024291164282048475844018818279111035059791356533355100646092615092273013161457723819874642208376399505080212952733473356851028856437858821926148289826600367270088309385317538190906198798793372816734063723819023079848541908427268237089859486922376120864209135087297758528031844535481455441582026114461094292014675706935196809971044007905264010825638481295409240667433928964094713548882506749644059428557794338113259982837991408777791070781777442506637345579582508700601656095498735175335089763167086954700747198518605156118729471720531367007518152680574712001768860292281070441395560163958913434752244791431512052626379384715528573520703411965859757908341826099296131650325156458238920235739830976826714080162334602291036414637994322642743351485967801025141358629941756807183520952192371827082466986659391745456312138166838766795733851885552557948008809990179621486172156799147498812492351429746055675607735386570939769106951741263711402000249201780044426530613201241342822931809255884903174293704656073534996655641315418259071704167894600072802146149994986405297087264961070822991130734283711427994037378357205156065582592550556063468550020779303022423160445984674717329286766421307331954957442372453005349577689331352187945206669392421715837602460184589811179997300327627719648441094260842645284910382836661031956377167335283599703908187014000024593941204766290516544059439575128566168414351053262284920436719841902159367441466272690372211681782176194963113489734980076852866466480472942404228845847890505402910330636489687364902235251724658323362971198062098618690439047462463292771658449046857140385021754480434744390226671531197599108389434797341358295452839096184500706346917214123465509819397007238282529670155210238658127342845041759814315686051245072905349966116125464542227098244694704147599967499217083617923684289435580098193656936074427234140265828620616350560713482603351891804315258131432313135901075307732102234410605259648470340318600867704171945551347233841725568407432280979127806617099715080831270446673483094696050378604927348643532133679028536391506261368575911591954829258218725856607219207803274327910235394684970858050347281999054960408520483386576111084538991322713763547025370475102970365979152542487200690158895817015204480853405810561133511106541734171485304227144964590475863045320881651499913588786932705453183935376211224279008424197426694269484409399791702337882171895091147767512430449730616070051652352696747633086733229327995221944758043043768840553560988279612929481144383683893256371261563243448942968264691826627831955669612949161625461507123681319365253090656139292341358357939824397345806733092842164382074936385174748716345166742508654213355285725707738447924022322103896721819020679846110375635652727957693286106811557237369173960675499504672214689766226128302218949979306146570088020661929458246005021130519757971163930315544258253978584811144710273554898082892640575550817132115297492104089126742799083536041491441044209363353294251023054905090485640576717247350616485148074690293001930405136816421226342912640678273405291457496228240162432311854951584342892579242689686938487370445560806621337441857723058716980989182193525866610926195265155957312561415108003731586414090185921093060708604828255057867800649546718849555188046577101667188736557987434028916106712475731835568255548781295814754896269145306391128977645080557988495489083891542350510799263464719221279683021362949997979016781663549144625367059386007082489463901809770134991059501921179793300708717069182102205026921413792756649171337097452282219595976651763802503200076029682775276828916263555571267479083847873963242072415429793829381907866973696563304459304276660356665544548880884207519771519350776765624379113574712649633525474271562703233670924679468933870302149935104424246942987016292415396657942029713888448771945097460902417180043064975126251364147405914524966254014487689189562310233758496082788370468743332787759716738625436976565232792777524234491552210056692130533754740566587739536345649411221598937260676361396194826182631430006979642881906574436964079250263079058733006602124968738939822450782429742994279325551852178345853059072731371285433505044497477884481289508001900314742846973901790994364760437992385664191050394422676730971482209079471449666666990005179178162724134946760650820794665014183474074791787063727740941485145122506939975556234842050189642805215518783683926030810522178582545777303902339232724431245445188511781493927331801015052767931551551602537038472205645681702752069385333453650749245451300200639751058804665833877592140700346869435451163955072298311453617254606821090235704533160596603826219917736067215926117334508963735148031869173253109809400297294996015537269580917091532536674472017021081261064092280859205360395373283791675297682852817988480857492169839438917664464419964554420661370277953177560053854590436091100535792166494855766699637583823914469070354977990360521296103727165065402612496665020873293194126337612562617765649039956769131169039894467331565297500050234502552670295808294068977896955787744580997260142458093748442149620630921154463371607000082157153984287894023229793030984443016609296707228427313250576636945945574116905009263810563430864599384447985273345516656321159883141189468567863009643451370334255204020872091192043287977729456479696349924866486513109434799418893229754194603893607641265467607807351166899063576636532090560669359356908508743374160104210302779327972578420454295996386231077490392681461189895481657390825411678990862292698513127069144853616106146241286208731223804596526712585503307210170674651564576475231051300209413387753673506770564533696701091825821590191729667911099663171603919580037762133340985488398960324176197004579340357278450475510150750406531141281176696217834993025778788273035665534765286837921963790774973687814045102299888276199566451375612388838599299980616497155919224548190457269899721431279342326265094405436280867000651063020812263990672418120536802001888717200811425246111810467580126067816121434032944513670243352411569136409826374638357643292298419511246773519337341608777262025602158719511093553879949840777594005348205992363272925559845120733730759819180241052912354418337979466920986207061609173461329439105477945123918014533832273641872622115297285942785661298494509160043419415617318301992898850119751324988578829076503263316708836774087236231109494579928517155711635731948733735065238974453555059071026583014257501677751438992620353433224273683266927624481876644618073042846457066769153485214887810868733820555373095451759724651723574197910120599370024556126252302455242576002714557399498046992319657384256606138254282059176906301524012783161145932032383184587507805081953385567487990614378964764267949994170400054953282208027468387297751563492597718089268401810201854970330288476498385912926518362821379808678247439194829517383313877792027051922015057951896270113801541481188769826300263492765589629250423616485077338456772119460819427224553564485221227293833058176983836984803027396476978576370348487533855662423445700497754762209912728937076103893447961173163638051685267392993946100562633608304443965598647095970517218378372533060040228200306822753531914451552432046954876953842092674021047567570295557850072094774993534837745732500501244312759181056908490954263616510138369812617456060458263413007810555683786143629616820627878577490145705783509036492302427599503000358806618194388000964837885367475945419582198231217410006615614990554624371156643721091853755894062832474997660802630160460097201155738185952496873721263457465654149778529364939184789666688783976308941596063254512333812886128428817471731653597615501046572618022384935350854351123236030710210472351341057298310082236727134399881086537699145318096269807051139582714325597890746911270563385270029440679892995904139253451400289146050575701651906741979652999819188878027500418644590705878830116258936430767740409352879761632665080210187238068080527825500010294871416159431418598353239055979731186745243990177397272032518909941412260239239104091933512848997599959103880540147614897270510312800551630998179659153979055006024857156954193287967177877665989590350076385446715222752055047388755202234498802332947494784911922007588798422565794935868534267459142191912867222169521025911762468402214932865996372396500890945588284443120509238525158248770066149980216833129963376538441605005523464101590528113002667565524513491100662395001566501090919221364579580919007347163401162396263360138489014980276101796874866913111947552281490659252551836446959209905625468644482503729678214923650799244009712487418626797838775972745563342419528191108220110805304942343118949751431005098974574926775445865557578541277131004812404847708923258769355172747859882973406925840500987401328537368737813552189424272595013807432957093132801569773478392202188618655484505145528449170144283260272690722969397099407984817177752628348216900952812847357922759701865548098683443229250695960476594626811202300241194422242928646409413235781368758242226440444231297575294203151427543329458423583417198097511362259695599046989720411994524288150787228289265819255245382608139933003289155714209061438931438954503202097493011038987272867017294352340046004590491826237820523360934563474664181392792393288326354239069838167607592534062058936675455197930996242787717527025687263354144453563000906143262565345395889629968248267670242010450975837108787017638637748032615276978259247158408414487135892349949064302799755249639915958230163588403782506286318621378838817715456377883214848869088572231580648699296383780977227782249966951650762708295146903013584653953238406558889398899196694728410862758725389590505869238586776274239818648812263512228466658679118707522717416829360865244125371028392351148762799295435300482665584010110092800782303414550302319869557317548600621280117590757782478078866275075323347160996156400774107688868562849405840033443215549056936171037042024444875072508801826636204060383384678467615539110163240257862425099228114880251515264166678935114336962633375729609143944165433004296218345827929423174121274455819190115246239466576043894416304196749667201306987376914804713573159804519005101175461463423986321581416465435779021506449114785164932522532951694409503445764054497297832644656658226814978350817765778848432026930888426599584826389974295076310206291615118511816814815815966308392721267789626186017202252932751965058496995431253139414232328095814732388387117912831142350830950937516487318068195669292049681473803773027313033605792334097540613872573869231854240962997718663330203783109960551517089969986181486404073840292234586721929703923177006936590844428937609039223203887690261258143230617827568713726673501546845651418027382828451632583353147938785050848063864787443524081749992598684486162655042688256256532178317338920012130933218312813231440775557734056438977709363979024338052561276224528736413068052908226762066332000460621734319350993668465030970587864926001319743771919106271395795961604036331322904116179248011291656545686979702865909806098056570799150601943165491771936600098302652439403909708620111176365755850601535197237312006867911845862281458462853264867647312529710877687147539682028925427068185310617580770097765322432644531627757652915979190905132482091228370037086912648041032836187704507088130092585253907018985010750311558070096015962684435116086893992750652155112405577888125080920739173639557085093529119168493587025517583828162741479846229299421819672316087000756893327450757254085436807135621481805403969985249133684430984733533033703419402186332189471484181494758369539306528385854345562888219014283171914403908056727768219416615225162896915203538135277640216531776645235332143771754422837446466296859503229395633744582827735023082798018650839043550942662576030225123748925855737470032246450446684924871611146658273741716071281953509282546453737530179723458885029344125169948111726489354574400301113877318184814387063447269915347990100250325426283023498963246064010970849692412940477742455922784697912110594268627712072951622098829569640596477059182976470982658109817814066974748923980175409922492036897151934496461406038404484993551059597503800533552692052113789256273242072222476801954035814906076907152413416529475330405149357875277877701407731620818265470257205815514122172085375329296265383067194542836448646033154577535619677332413843144354971835435492940622415535904343384920532966316248269191584651337864821841671581474561906951901892224567313544114979582280689849568129713630209234306349281857244581693193411147570862416754814962993974551276445357873136655566601796993636481281553555747310433289950957962416587424248186776660099941716740357893812126668305874007457477881789753846587880491822007835077315859503083876293779837642453941470001915186975712180386331249087743627966449801411083474259662884183208901411623534543834775108921453745389731584734296085280774431143404750883336358300207983809712353519101191525501418002631971920619410174958540476571161984279255174061357900383552367796467676922714184934852693390874114096331112717219181812209935645386081034191187082334829366812903569624360466429686608413939455893581614267267440990641862324464536170595161714770318194884565147791950797652734691434793437908053078856342856981993947279413866172642838606100281453448556886372867054942295613832757175361466638767206424144806142588709271141922969084415259144984104148969003971622288083787413918606165492671964380307266990534723324173347451950674061583597846995340203486492685068085996342843427634635253011921059540193152939120948025946647739038537351893476677403087450118346872463798304867187734687132594693816437420525159225156276525985735785639179747972495842000478864045945562213173530707380600826893119719241524778602210273055984887961726127653045121944639283080756148894521713133801769779868964847752266421222882723466826423953555330062826063001890311757370567048758733237547058816807826094311816131504870128642933372911455913230886843034988475900562906763208943915494500834235525720148743771028315474491624614088751094139321654300014453517747939091093321458608272155536008082784479845397305369613953277306177611753888710713042867185999199865824802870509068622872212886190477651369380937185026904079519382629841085067393632886005009494825844577484784676356888492977456130863440632988213756629646211986044074921926414386564414304635918347768034125342329191652359116950081435918672842726102394730417692377834983242086554518976336273727347822707673118242857899248192115573800301602359245577863166936681836278887751134162993942384932767228297287774347800887620426607397727076032067222010930117620223167635393712096961788953087300254718442003714762839157537649051435627337261633441127242075971042873479368841008882405767140485293826268577893733761207273493495606193305028164445737830364252234428053861816533469760541654368539339759066776039931982714260521242278101037626111515782302204102856507393311243236281798992850694100961973778546891919451178487466110862688986125080821002312822837902331558972258282193719877652423996853503418401134266262186189491740087029823673902866859918261992618481070655816154772316971228952081726300634376029944150786416388633366893991006416883772565148848990442305572390384904286669008064508032789514090231547904949881161549532473245171584055355287797830564737193616968691209560797693488219169326754386863867721380037918925102936378842727118051057450470658485446908489840375341187603629031451482439182333473137780381588927214859163467457719254464743789921755172027261609097372261715094568853589842606202874297425183862628350682396795710954938865767794279355944852466445438428915674357257036940888305153539755772799334150525419353687090556482436055075365826177002134114569119756630059745513100982109845296694673627783033549827173487313478285461495431347135365456456752950322544104034135137027420794308658896632509261193145228286891128818853472680790907375437770969908714808398879644144925444910853822941859236965640791207986003356045202481502625946772856917888810950700892347872255543824206489936785694717028753316996715739716783457265393204639484498828280668967532172598209872725591969573381057801895429730612327334712143347228276727550130480445413685523058577679163827744658804186227495868861251234108706782999584706013413836078833549239308427023203886532393543923025211469904865674868292246329839788068280601559742922555858878543781368460643428676478004159881906554137618421071035459601951352082157617643849677025343262650798442380311923060056022113559051177793013953553067724632910373174518520346559412039071518682994833563295661641415402782485640600276699753631060740930046677917019085606323783977487381371838057418633284794152118835230755217826636352555286724820880902686462854522403818308241016547668980164366894187014930120388725734494760253737811849956390419142135756297760359064517765330637238171808665500990967585617373199565841748257640078702268604923021397704480460038539671495230341727195400077666727660589200254798317531951498841254560506645268580845091275876788110672180551180799942911428633648952481970720451344066488696419292484482540498863049009571733150804873960220923534190806543609316330595534650009068469748389215347602014472134081131754354590381493281691756418473818326562043195900285147416163717412002382698872854413028439185966506303895582711840484147904509951944513809029164837327683045224653083041114963682292752396826953383313018805752000311721588786925901438522207150064373608107514493139438776055760053796454115877216261664267761381473603687050877464456051371318152353240953539174621696199018323867840427862509772625302786716101748521233442866541498301528483618152357721758513547618352221647212615764492342943104415180693721417354429657130644713859166524279788036027016283958909075239130309090308205000814926201911520101517190023408355528695818797832522418049922973155926627872014968951449505063785858992598173031358105632818871644380631463938757540066100626428823983818117519207053612985853195190463692882119829273106142787133157757558194579443250389174511109456651986935355720797267058944678286710522990726630370622220782177192767361411730500674826864284886372549882989174904259992056370339939353118216381335435212645799642654783209008990881329619968707124718083164814315629913870352364584106583693086407704037895994212160991371724762764264588660714944871255068194460910038172588046313601818692792918221043008516385565276974685541304887515166399099395752463600905778477232905040690882465495838406462074799044033596023814713546335511658797683388289757418672343859029479991470458021151003854655312362809673308756042335040937356949104969588516577435083061624324387932798304631821094416973201730022281537118596380813325363860420639239419672156647188316283593324391566343950247076539976789429868743775853650662809150725303061663197706975210470073755730633694549934330171929975825554217417606027593709778785890098355986999451437781321028608863387344574181739376106780742472098049315916559206851814172801628171959890307341475077314478307802685400675255157271196541210190318571008884423063379575331001364306842960417101477112267535196961821074678960687747861741658749389251667775787079282512332376086692851236600455678022262801819659277112770216487965871604473491896479615899321414957819935148365603492017444000817727211742385552974529670231952243560304977605929203002100903128995042561685729860297957929445237964598296943670683806003498588408075457688709102017712148819154126345191927521699629518572853357199840482180633733117455708102427660787588931346922835806390539771703183140499216990242170328946044949785498973318926453586797269968313127091496522008047687347247169286312303254781835018777382330314334993882922550916219852373203402703430205124767203099606733682610590304033603827272291000603523081946035649718602437701770087498882122636085804706501979960320300160207291335774632731010490058702935204812828121675980078302148626424395518574416461703694441554085270005816544794147722170506112161832364534800579282070372365261496764135698512803979342662025748636291005451095062526761306880918904625742242376251422032370226258879853327913832999461433486915902436161375385480170594583467798873262930005179246791324209894411309730639765302103557426963661618685523039476030767186104509280666252407214868708523334555141629527948329955138109932441002798789819912262725362958439777033368529079991760548673165895433395122250996884661678779968616375450440221062996666494662753945426221907096969174648364696032372453184257727282301332493343726759465640997520780758050869498909263399991544227368587286434568443440728904977833334633200559761057929005679604530503676787612456625465426845616727574181087794590409105741891459600202004624926707455893218838976192402593328291090167165974435191222088805505471423707081684913308634716227381182913770906801517601715798054050427845949464284588529262852816987113877100833206494586219152302246828471115527241004323780694158826868959924201255403306810319313985196565004505778762984301660724043832400345814084102267634846169403916577570749709549792249210188796488833829062669299066029774305549173406409585512934774123823137028312456129150125966141104722227044063805375182695221742220010415532253178316065064731990941601155474271885508483016610622129847640448431648207650448973325257707175269642740709520503422734550834224590203151569831631389721059063030915067214944028888723051492607563532447066232419103228120049892025942292487146144935869664210187908512516498233983869897889886297759248443145283390631242150671652499222972918284442311115163645694685391996587660782846900459263388643246832448340384949477927712897204031862272703230339677167964482326979118336983903675814967140635458014941870995327049103988977466524219795276027334157473452482434614090079095603408306481209973345059729280785202504940163411833770844305614413407132017665184193826739620395798291864247442769253932540490292653050621497132941122078339655558876445889764554684534012865911855286703191428279073266003325612572787202568629816400837476964673201184160088581178390019846442269853304535872507123280927730315751421761434101759289088947632953255603242363390351199076976313693632466034473546716344459686740467116683996073170720888638448490895101037885106778833020159769238426686085452036647949597586638451801126812295914522221184130444381227355597351486550480485286326706367436876965199775895210440002698579662545070317895226920962659616361776720593297526329410443334192854169914992718764833496965324083316387717424386010526406612539883968493837277601231746781405989028973433898930209612810783490071289336690307719170630695215889540427259558731157431991470506026317170010118421224732938086692093705723271803194928241231128223382374924061438705538075955624451276282022246431300073765768679556784310694766496147281294798271469589492068257670592366227410532393195158222351206634997200767471241056145407080164871565164102157518941144873712202628849564747079771580912124645936087653007578487887648909712334521596801360753588657567942122154459452592678556624862133804076796204160854368491214318899664484904075951911271498480342675891309014120622594471371588870662305362866238128528367408961047448795056789427546298684838221896573368704986823972280891372994155541805364717580777432185196826781738470698095235774480846439967244304317452333576702525716195081143082679012677905202081207930692101700705919485944627506907483574994973465523316219256248084348501662631946878794081875210749166531149479580572457913101807593886317951374505196194045514722042183226240387877510098478896527989454083075416374145399138581611485681700811793483328146453341765279632458423668857920929564721530439368399251340601000958344382846154010697307632444209252005116111069427199989930501684462395439430677082992823440383534866997923412792221019300724442978989556432612789665123833910356397264675313508119732559527559541323583750579840482932752594647243220329332337050347039400629994718740496229869393432186556637490535574269700120117411095080375487937434830865365647030529719114813815950063785901575541722123272663887929348913759653056267530445707018056477048452774539784421378036210782642952985029133822957824809914619909882785183731679933666257264696526140108167196371466753834968379300115942389455028827926926334547534415843147691073810406197751706567057535854015342420814540756150456658090365102258286658271971947431428628828682579561552969813410989932379115533870403335875062713498604705246084880946172397884872915422318475250536630019393247729937328067468195506976980800650919960209382394686467539011780931113680723758982629307878532090267961175139480983949675955911559003086606396567560451398498430630615948323629054023357670325057980185909091727833881863463337888046042255700073812333576742637596391356018355854430685974811510047757498350954408376589253786905269576159323933937553247017645981464435915240571749064050880768325091997539224473539581821949174189827459505957788433048178816912662919270635509397428733802543589617987182122840839958568687895876828808661831001447202230154463341903492963112492695681706205636258367889897969865116292162214837458017782179855711154009068963641641214363033093283261689246318903167177471938186581114537486297617038237287248084475876169297479973737152312975441232008563625839910978246984212544601111255912031830910133152305690764613953321489398376045926545611642100878174828792333056057362642908920010389011528890479348468828228504106436138359838866126859006116062714138947399565443263229723923538770166265346879407179446108347956502060914374651348410721508535373171604037407216229062826449516233260389263144985279530142427696257309329094456856368460213391080603208892824580121432217056219184157250745418744765955978851734809045602856503700125520093732261688365359872935520527472744238996254589584463260562088004647495225596016732762104463765982746523713665615192022509462562713938767158133596571277981596748466594399177509138738149477162381826992937436094040762805130889478864509924183553383560248015530958127140699306630908662415301618665372730440287017205555810385133874679907127214829694203522170808019613576122165968069953242319745760279060085379664592284928499942282026177403092453236852319608021954656885615993605646921590381946142719733359897909110008172878284338077417777084343760271866824287111848525206554038434694494609950501992225057217682583824134103549600926855808383775782671276675100355904370507508228153414082666493990443961384866814905564453772211466519899954759833853278262083079587924977766497414560970951248230750111684305551689539724672137181591336348697487198932237312446454471883674603474644395126181801523877516260556649273589411117298596765415949364639477310915064542059318461325102516672738741129169569866126412628438773485797884822568442693003718332120816935916063669714992254506019537001676352010287015226590040607402903303962402662268957388819653702473181368127855999425491843859776875646901000288352033123371195638283555243909385270003357338070952785898163412451575273163455128970933301881052458993921015816718023058856971970381607560714301614862727569581342512969684310884149731306687266047416206548628879053815468941547456610285318662225964884721155531566475952789597985426255181712240018548030807023148147915532422969587981649553070350921002325300916444632278562413024920448988648099156106320117057325616703936279314198421340417817402736566069749928209458947935386604128638642612544977835394799987725365724953829988713069135090926258141235735412679204377270692314042703161162196491876328548069500859394668541914348493282687671221688493347615286434506451538163727042856184673918826096105775498640468652113043798634824348795078288897025541108843770186599101726841635456468232738126471770074658713819301803891008932201288211607820031572404063305647772717958294052078670612024272427662992358998232226301424341419903077377920816430545251112944113376470262344241965871621834905912142953605674017400852873922763170433240887494575963902974709068890352306231380859350145361574560905293984695783109977549880131100426492819009784846492058728458763663837873843787930693987271517561359823678593969796605792682988102984742459443384017616167947925679203332890122057230442011050830274340711563943462826479454173493737484646754133794956404864245495350260136550840377576755465023701198867305876734635622755105046367428821904100973281832605063029390587133810361869363087437664316469204550850516406239020689606045226795781139703651962740589384737676290759814292427257680604579854694731469333432766086871803913565924031538359054676503731080658726101331228533708651607637669132877681701092474412283413478063977756284461118118223524871313452942200105480491333491009426639453905718601676292102822830607248795464311920983072841548613553691946685020906247364002490410447889735425679666913914305293045077916043824837396998927705790268765325043384532546983836330429397217669784265505411397378363475697652190844196644721964572216450142230853724122977844032671323406720945974318172806117701811304106099140518494321641500816577110944580014019105510162110621165513618218055190613876192519952098151795526607795831557454502381950974543061128457600776987824850012357543062541234777656814317045263708238473267736467557528836698076399951257950237687578069549610185851094721584053915890723797392185017535188981483280487445663567188138500706454605497055277010168403717802762125985528709657562171640340008626872751376759657826636897349623240495212570682925056633763163359778161911745772778133040640958811379616816987355672131387870760730708416850267101207783964995692312503086478780014036195700706934009668140257323874547224374327013544003710967441538238794818205604488056440336362800298732000603090258347591816378784560555144990185435608272951196504655127923139612046173472532666476935404249839451991293372463815633026309294548019533248879110315335555877873194058271642695829342021064662318164103653488752118189592712244011696832292343584646008358121683972736689478790844098042933587863162557930662950235477102754280837976420665148957266623617051269274012739116394141345964612498867158262440854579533503235590761762091713626793168597945068622523240169679842110232189602851191097599286790880264515382761119287178118841930953241214718146161349135965837497177653549640738417914960996576104607742812853847732533342183673390015741099014413836100167824241456178935238254646766373325889840668658976898570128040192153157819664349736180359498094908665114053913705589730066130735124937541485089063482940645420435640068507069990000713984267434173689731003057793620324183801893061401765668907840360983467696425742279692104496846467309671858074122335806553038488743731360588259548726092026911159827832617059803578867197547862501735894062515263744709606215517942887543825000640019459638693877672692417491078595169301957584568869162477923150738101688482714996847266206356528224299808986945525675999240204381638666252835149620708602629846595855142118393988880579738779695489617655734047557256406089668030329438044818375585941816930305869438144740477480315661789010584658994610423899137860028755353477859120759490174183755892840202800249140873471708507834177631039226220547339472246730361191406787541111788275548186991139588012409666014817031925224032048256537714633954763492976307205190628523113444543920855970393444871809552817291209393760767266889192619219566917179946992641856861617203755304307336266746892813127197297516510603894249287726042539850453388734623415044269717809120388177962690367140549842011582028452836609034601569800500892614795111549734173547427456654129208227364417323499815406610526135433734423110787819725748992439573803472968336318650260838055281447938034313717531912042512299307829059768197041089151628156967628888305595601187757966292441686238784623364581352739284613874151700943866742082710723344161055741871603722420457730274531511389079202098243280564582874102424102870366761574086846887402134762814570266946617809563260367096509077155499016313424638756929496979324765513666124955194865921330640413259914198557486995009303009368309294249056474841638223265760151930836071227768606792341393107422094667537536653701158815707985705869444739806823836130883383517669247447348482499026104713512213697202016853669072673502626968729565662760469462695965439252918294154038538763297618835097459504711853539599703187370005985527270549556045680839823132915305286807694032756483005610116032222869191515564023582162197150704862673823622125548865846050290179431927527341120576980884725404810758962385514983561664998361182140876363998065324758915686638782254639788017393400338429234181719533910987121252760940723428206501183593854431795068344534630855931269294195141496313135725499447173553566380855477881355639065444371477280391576322367721224617719124229012231180791602679185198773431308200591875758542374883322747262802236645677120424626732652114570458991343184051537096150948801397096796848117390310754730592204981405804903209282948941005172604250393249735876583964120535428552392796053831745037837820306108087378739081047055759583552268795594053153538664224646705231583662774234714132339795495403662044042265154649192343615547408738615239100941793918993181925196027998134956193494870675806877892830173619396142077223440147892970232415497141975755524763986715934386203342673797282870967672907787239884788176943282228544975182374550729828993548613835314771944446438409056025090955884218394363909127919530521881379176355681431712680871528348850299471490586764388701875396900979287255130234830620960718911122121847236995497680258850530098378863084460456184329632372750430348504253291714179143866054415206640694484648772997337883453048354968905055112854350723987712719452585066180515192201876935850196694390950100607107975119151207195878243678001121858382919650148033743006303160173475048299099558826762117050141136873854337900114399300375836145018307586001358677011049983704802724314515200474469573183481214721893480306240274986974358239230683655841225565471304812419498477722304243469682634945637205951971045261043716190336970453946099255613118855091827545827364002229050271107018706119176005272346382920949280476352907718745659991587473352184695860492487877507815463733420285789625493985643068591854066119962996489288930356494125625854084935682596052452254519088652005031946401519297095880843453946016263998861144351755190834045183824905228021930972524976108056975103457761404032308907608967838095526524453269583392683468936131400497717160075000772052672718647895839262982423667101657667718923074236231197083980703038629852483575171147021144005891879038223159789318047858605256939950475043063651126357457950175183275523034839167507157167506944800855522336327980288535591516767376582887885933097410827198675744637567350453591115938415933548664848944745231831128572423035757630188833699630251329706671082024706050674766412625943426524534732756867243572581443268150328333156324578124394842567845798483393352526740572272032115623199293019137362754714463289965339142956599522104861093579319407882555545571238134593737206086876747152382969762416528715890176567205698576081511060391572814708499204451975412691355992746336889115138204322819256225740724373617732146910797670598180504467853250562143369251654766619201552070906411127901148319023327815229898504072238609177005496065220545435895411527026049110983418292026681448455827491733971071196553285329743545625687061141344393229872769291608927514060597725615082145176917617097693813582726998065975964862792551182804380854770829858430067914961172192290801602548897095395484327806811151630041920998568348426156118191198983118360099870320902739706427398336412683469198929163137131294049505476905619259413516429528046891361980534682536163639497248890822463088493081774351280521751951729939363641014231048681383567852383137961324506020043446842801443011491122135229428689795608815495392860138666200598323956241965208915466732619260570375549314795307648819094207116062509017217754186622319872355839666357079395281675530694663222396181819134424294287055334024379074152315692347748201194302430585707324855107964200900594845064883226100709438728810229811746026878784130126784887718457613264127175968319390862711737611737229252812002815543213604928945963642318443975040106936646552970901156357790046976445121242858256616961729870855581358013309786749367966906387317608976960577026420406799127236135405487366265961207086671587935394351375730613733479088181693702414276930203728469063558510567355454063293918539308218564361135195086902651218611279537127704854401326376035147402050896148501979151371103810075483967443788756264153324700272501769702404446911923500137576680832920569327882867766619204212625847533740537662244597404699196349836241779939805600357558900487663651635249230383580999496438353165745881338573077952341957116725296477141061706584317637699729228735555301337090171579853976882500350428192353503387605864468533618813258842699825935540011624658733864187462571679576011607513048951810686548502626311292960848819543915153882897104955504128090040116789392809958628738785991378219005888778345931784493928077207325388922539811587597196690262724667864495967858062724845786575081712909183093814334108574667066128057700001115659156750166997571004373893925494707058913160363347843696687456851874185009706919706281361476347958208396985189095261303999369601681217996427910964899335316408553710636372215280127428662345219052468876447523413814110243885707116171744346764068062291655183745648376883267992166209030571922701442206843975480356349443404711514588611382030298132480445431122240138460444533912145884024056287436195088244542093298710893048108779229776392265430099210478442555183762094206563390086546990097424455021490122140644920634332258569710261963025681923856530478661802686996690366673564134443542881326772900965689703744509566482882610860297870181910710161392727585882701445831539271012373900964737492234224103843055104701633082090178145203589062223305713787775410672788562550309204851166910267644169168970583117467009936560155283428355101150355608624808642470576744198440686898231369848205817883314800014982603777603317676411806825844965645580615331716202377182598338778606014516932685302529696651838526294250654849448517193088387118362888654043476215859912338515738988940038937339637629127063063240697988242518889877498420600424066618633374579136719639933330942499619605552168726008554027827506085350153041197926305877228568428619480097679188775269129142469709384340385256121602624868582137367837775134583571309537555921537714728278276344130784050727011524630378589408134107510942738470553972182026214228031572977308127804316633035467845608263158649163743551148178457147482610316867734142363151989960192377568660215901712785141087489332075420082924265769918802069188882404063620396420858242575876955497203154721345664872613799432065171149880331678846096447285544162070685174109453045276688591275291023138214767453820000085598420192385144956151608443514378883299382674168275612778527719584196892557806599734292593146205322425017920429902543197998984281727132147673077761156613223436204142927113834730328975507035782249546892209693410752501362617610990354845097519412143980208418550066250546173744078259846352213824508769609713420088483949125175872862148101489354642718740567469102276962799012354177563464546574736477854367519428702006746064511483829386890640359448102588595618210257783689061631306631668767637968225086086751449661848748180859572948696157066642416910035163115005304819221377253439153598096068899051982995681350878197111977189064558207770532454874254471855077166286023453916816268959192578450530988088316215197369793692192972705854590976989747003291863753432524719087328591618269375850096615292055276924981644944243693194379940280201849421742546660849509465909321934168743481362914083657247287616752610585314253604707562602995127012695887352258927019447112553142647129871203801515272567155032318032159508554107891089090545046660579209401072718374920014673716559115347243395787860169743010254086077053608788959694613728038938693593505510874179222109979726849354116064278931570031155974213271096606123306037363993617796239427266780326657977182290097306170053195601804337435418617758804367996345517204845981902870104659951893956110313005197470468345371852626760511994921407226940875647026304326172741098714821097948960767852125680670368747577049876238169855875072921050188886295708511330907419255098584112841374932954455139860529562246298381986355894142801775112424453374172994901872006025773821432651606151129550180523681996703428703244639852675397905455597982906042662802293610460040844872337646834995956183256144252971897448708627401661027664649990608910002943005292563695348275700851798908642943113600826923640278514788151907836219792134143871977561048466364924616901731203108262226778051056802516242882452624634022655557517885222819022569332574233686918517591174233193492692640662408575460322938622451075644339286324384038075880108571467944423344787768822583238409168203955994408505808205481423667427883241832631217143737610683295482610605875080920872914992966596561865888129596850065106592456815079585355999550647965266564346752477524117234475656789372901546511856096626823991028376183569351602822399652788342928973183663882348573802113239301874798990073747835408185442272289408604553615628292745261716391456621283658862656243468102438855921702986831312560982416666711786213875378160732567383594912131737297552901293306095803860809892914255443650042793913649353058738131107324571991532693664445002602548946012669579848198679731382479487132687362177070031520261983458036293954414043136272855636809519845169337440260938879372377462676358258397112299382485514717324926215930610014215960811128060621393260564587002647870552267354039994743406363193585804684993038228973248402597495947425401602026595256550512193437273471258427596273886256557188043847008665808304146307738598371141280440253923625941966861308228329046050083836906114586230880454553877912124200196667299412762646341115306469012030423007904797797989641681756523047142590802819529052431848098771679391319418166041644834539387977704479235121512796923493169156253913366389315725405465993125946363828824977396509116533031173472219765656108136226246974727228820058476885531356686463948223230157645823526358491587829201805343654458565220083348046713901665656308564816321220839085474478934326209808025373239841267775553774963181782568606232883588000259675849438751387061627668002266500807559865483045989117644872457098418773323780530849293230168384109470878443443393498574477098159052707409976144338089544440928793905213997499379605556497030441026456696963650540247434839218756082459171458236501792220509088918481200275460447186150546754500450540744576693751065542774798961096823163198429915651714453875922649044835375212484692458696465839377766096740779496112904343732248666858374126014064240265684966851411065136390445098199941501621154399287738073366446735931552985335440217475658922228131606379815997645577628801444768127120455405627644052747941005883536272969562904081749364010163957165018854400411493786980835944807155161055841921435469330809106529663434820982809568751830027473138807877683084740501958049657709804278542688350320456632627407658251764523265800585617293406206205059044504170410086492782046416723996445287784202697209428272457353570189531793086127843520052026502420470396891446627080663689442074421397421446195163482558955680720651633677917325165434465778138318225411637877523746622034134171021060793561073763211518657735133126717468252596888262721312903395483355331795028683791570099205805439504706522160997202196058154593037899648807534632233714663663977597381288922689753094509112907443235783785693710002774757689380365541840714442740606937021407381256239539266004189461005794991899246335698081157114668697382669528689456472775793325041322567981787765458774378509961358103893303416782472809042758563178774245902857566007336938107264734731439128816152757856168487848115132217096489574198281613353415794850312432046262702435421148410731147125416827983311001315646103250786283651163203369049414514491816964555641410710339076980463810361683278507878195366876977731720710270061828986562083249225745816410567096226028387942792229186909700166929248369970085920631833291503006480574359488353587733412994896704082123119029859238397038556996605925443494183141046268138678395596336819599026629280228910674823279645275875789802710911344079248439909043457647413239619484113513756231020598625907041143886889756744496321199851511777643613747400662058822008276642303940508374636888265006352996411063888398260692209269114883040814991413181019419456202664664527535923212170849004827674254188688911291845778937492751988812584440662446435336457716246560904448241454648089159882464766613466511442099241388975704029311697506675557420211357773636681058303994558220788490041721126402402586372602447639831852105875352951841946656363153070549827424251720741973974193021752533520727896379982933927348837253481559396664892624139787213800141919004734049271069513562380666775854187383100807734129419179430076065142138261318663035491545903919649021442447337348801121474701650447906588858715635885850626080608449027648932242598861486349700386814842463355306138042117144206238760913918625587373729215159376865916558364731712178609267158436448259144997355886846742398364482231433925965915261672199366830600477824916858350727717613406809787689236259015977840426161474579517920873311758962337599058964426518070944805623399337535123536150436801218173466219132656113015141851749649434904194955588343580595069072478747220264513331308767788866166010760956032016246123310712195335337681360995649490160391109461687204291871068719749632468559159171328852095009115496372226772021084582505093419100177827757447814753507293466739309669030251070245323004304830191479641090796083797926195299353240939037210361647947229738738874176288243687472805441692156107382038308473957837498909620329953948322880404132846302977014224800824716024408968751370311055056510547487167022605106617433843730887314965049616245533922060256460452793903317447903638404708362949282789039556427602287637766705008961127103571374480275168516464283926007059460035272125454964677754431537861129180538301562799108621965725425648635044244063772408611230634882211244512995756730116326151039685230229517098297872546277067011205231145680653436576038988899777502824156190447675407872822697703701843177982893599017693560860059932620053929556646781119527976954487246878676785189081207123231042852723049159955847953110160874436995520969492344578124122216089257714262152308545276542543989301592845179775575850313832562327722037745878539551204030824876062030143010409642901406647385216225918434423922503259330470743568384155150766706599746956828720786431441447748810706096205415629927857485310895412001989262649603401846092768792699625807410162589085203911357140108334313558008808009513649579100273996067034078410651318588611737140166339273592220306160180598587719390450851580208465877560620649855577778517289455873952231179642793781286591620215895678705847631861805570454451950103958862858268021511566841498872339929849190393813029310551173010667012920859000200621384240360319049090383606447528355278676029803826239492811073285421610697566922029900545419680805069376553735216615152155717247212732595227298548197246863582214081688163097827704818338153154343421015895634181749925828512748113202116119035050810916013639576214425893075496729627195977551113439234048379362237737125802760961019057572156132441971505156630882058125838396637950882176571151907477820112181238437317678312548990557346098989030068155945996258035507193152631059388384642228498323579132223622896866970418709211070963343469403574117698381935268825014247677382035162845059797088246947143781363344308496047028159881059041880177688143391582420042735824784088223712673740673051448322275961020647161790286806698943783747724740437512348642095948279217133370561302491762350031541978316141403408585081331941680182491299688451461504835616975578486776547547008793649285246503585747092736034277494968523461719515405951658762386287536641341310401137733999081826482132810053465012801230893999449466670419232606614980815902411922157796995525379631783801388453746084431418338383071851878245162253332179276120486474711000096484392149913254609447139986666767876141783278366726482388976130134336516815006579690633351112829825580600870011512422923045218024660508780147308714438850082117803692135209118492561380482049586000902475660138309255985260152717773029931964745120628966000198061688513144537488899869834453291621502419916641087769984040884392248633577460839245746522198399581688861290868363947679330988240085338841702170505780309652626897983345884790428707059383093962206096110763533349572767200411172857379720564970793521359579208780434180484717490306746073267924261988627717292427857979468733975455582791436177213166258340091059058597075327940508106766422212785028775564375668418797850357873324375850871213275102078820145584715371269526116602359964985434084691426111174135210285298964099742135689218806746211555344632733346302142195998344449210451748254810741533648248226293739938588867622174436439466743901226523136842853966830671505667146514375211633630887265891937526622636944384496120979987615872909842571682685933933298364986357777607800072754307682672771134177660286637288039736314721118361596107980059000828150061106585152987371575322706514696770309855443525180798528413538697582278104681557775629222046534206303623645072811634492656135356280316483658404927667269589608097074963267609111617471784925211225230747421145707261358359542167849624353425329985427111777038674595178576128400059058465819987776614747679729301814276086421753186534929993466571082982957820538226045281247425955160697263703045878125945075085771049266830334893024950955802052805817477233484273675192780909113878687275232972199741618423660372093287437893380493103947880483760033089261138981628047243861245489786288191230602626470449025260830578379531436077509713438168649378898904739832487179860770832591509252881305942997713468261277841734914907710979898946954321492865905050680508518391744944404646988838958175608326762428757030003978160738622075793581294023387940568125938629902302962710325229837995347025905516113738227932042630468265358323247524608077042141502754267383390257459832299803511898619310408661470515664417736778630702732613499050109709419326814491176810957337544224547557257361835333858378631779289747402544449319688465443577728897726282406542171120336122598443211705008542662773879885881476520090104976411011189247803981444965789250728618855400923511768775744022871307628981963502775702084302697177399602460232866965894230210055831029117464743082768407968527320411812395488895147063437380163919731301038730750274162977810093815106906022916143611442866688613881768413648236381325726689838919022703289309934201505021660711965821864895888522513602474107157214726595214536631058772098875165348708216238647588399551877259422817565205718935201212642905757236721653542082548037237488415894634281804614955573731751106317891503898038768306140007048077241504921830763762958109350993518603779491060107188464644724656481990699156001642839168755198579777730412739326812741262914019460459116922822674865773402899006358638667036023806318943620587932301864500454505867311505387039208289764245027001113322770738540585004145269001569298097269240664161801986753243215318300756100752297171151577151206721902874026493313864777266904622680202863763562847239634688384196014044673056262726460635215709136575749857797018538946734054626171094029129276341946598635981407630685518525276945614647477298290653425089766313020054163757183474074336861714443126829182865719666566481608618659580209057485826528647308499578982186799469359098252315854568596502566279926225319138433009640770622856485678375237325634011901035695304950494908411314792121546519028731986188387995986503021392838802563370253229408483446050591946742514925714652509858842317369183464456320258504618640674622103062801334303707739868021093845239944524660462973762979573415526016165116717690086231328604351780589097616765752411632794500274449982596660391221943740135504768460424734744797379527988943355247875662578693452936564005574990981175332213465718660299042961214372989601873593226034308486729646458418589395276178616302001842140069685736589126454496661814887726540175770513000931413134188310172935591243044722432048074303431516606005413853611009749192507978842808903314494988492437133688419955356043056296653918479201941622033254120575347024250341071928601643079359074010102666629572846295271752512071806075648371692045711248272539403361106348325822216968385175998063676142367395799283478657774530812902146205396550469450064175884730736516511046895103430505860854803817274500598470446130095679106049103247089070406257141931706102814363874682046849515984177140698958169870975864981301969599970861037910623394943475714019029372580540621528431602646606790138575883939820809655282052503302448255227557497201854016280263956097403601200030558323043076788941594372301469775072942586757745487517980966184591736722740081204253093188003185748013084973523054845968587154083778962882205783168165476619515491606112967650918982612835128456027879410137522224680798501155375784918837020976609912064536627803376744395258657106781438911899859274733472550121998267001136537147253910175693159473057817187820233642351050795492027755955057059205773167102162866534426950930845603174954672220009331472321878098650738477870727846698916683122302771123172330344905000348673418410147587451983877231701450080143018752188130843729066190983952918332629969387795105040737229040769816952408358406981830413025876029158008740296170875024819211695259103819118435103449891581628001904961875994555708201721892156369622052203255698418025216246099605145808662234460159021596579557575970701845967894156281920249196586402464883226085519406497760035539103258637909616233304917604551385255400292124910971865506130302726389686262585023850741147228320906664113794768537057607192823751537566935480417705092123394943560979626945026591178901205251411898216862632935361837337765101093424880722351698970629152045784467399305239393107361268396375803745931565499442999001169208099008403098360624613803392724205160657363423440624253549151771710440838777189720419137931307522040736154288651801673412912164741038144114806761424482698428148895450702811053756368030982473000859587579106912189105975081276360338225979813214910528423501719054297288587558321814003229214004246104171565169231787552433695540086761070163981065439130871487968612794254604898804406943594563160481837381360897820432266507003923002829190660771849115111849502541785815148433717769063498686733493863426672426217667311586517120402305141057878303642038174561958968466252892661492390530535269915715731208382761091507069187940929573882406421992130393165686008727178774327704513366350743440071668475659106830646841743898744595658256041713938951776079643535002721013031535501476969248058500628759800097346463594479033426631541826166039501549900433217131769608234529317748994909048578411617719773447842584870432693397705901312265529546196794376171137047156161937311079157225058128001774660679508013409373680880582820021237855838346277265598967028820257210279805801730413592212379550794946872236653848822297950084754124137336021337800256743053901641161919902256742142628420963729558730461890217398969285691648715561820140297637878310002559542678339818382203825005599377103832769562763253912555326077428418895967478889448988172402279784577667979374847293889607707040037902427908944954097210276487866582165227726188293473470087935522314987542067554069545793294397824144194628367960949218841670371599147637652068883228002004305704772495990620163384804058075002665139149971268709459793226240870475538090689752576134586474808453288298155207686169355256342539957853029109265670783785328458046145061977006663944213002100582681844890259719706034316693570958013418132112222333150347844935813001696039611117422620055685889207098833699779832271335077407214569156299280127762572019477509231782519733722643255450991411151107310056419091648779747477289290488012142522459171082471145690141767509229220015077908202422275795337176298811956746044774643725417057625155126643238084532431890055468417142008345872258289756415601394108854262720553087990220234904509991756308476392773663428675844947908623130171123486276241723959823455459777938910417520525920570612011812268117722869735783135015083184346315368571872033768700815000015445554434225472599134338660070182697032673470396430429586068658362144567351234393962301077189743491803087265811603472969581053388353432342865798694709334561062707417289378246253046409305294331614147828483151827515853581082034695739227087033773463807449675115403920041961576127990226976016325551125538568492139207732808879607929946018177215418785203756472253111382738881849555440221194379723637871995468061593958206394323049284435564162313137777423969388630346324525561881815661515832231735981193469459932623988709424826458759541757794104441826918543818137297301706304224640985772100187396564240977831113763807629041330976358432236616073352839009362572719286067030836257498664415364401436279136367956024631098826043499368062686773628622821636487080445853683341583133557141151138515405363277079478923306436051377249079027330479526376644607066429318745307598708425826425389344220759032957359040791453202968804710079640784949561675817003839177024353568159344836515328769140539937393513260276240678633074380820506939734451549730638615538298774427732821922182550806217457837722218565598044952810177239113546056914258630735799410007105030364290475437189987392084694777537168710338085892678603829437765937455214800698995653103242420301457596670259626683478943086969649010015339512734245267949098652510921885976659731838329826689829285136599845541976849136412990696054831699241557703007409591321628362209471874991735182159755732645790309978492770533593302909187340076097825565791510581106968507952906122361251730357708947276715791829055471483190857393062092278026229003667634590309811757779551951790103023786420513220240194168949544156371684320199461780713547258165970335420416101730284313412873996458116927085247570469083609559176082847152378170355205300392033868476913258195515929796650271624289013785547174692056597194457551536209731631103530293679048140021443854584083808664095144846028209800549750326333552220780204622112498183387737959222724237848583911020871297603451617552472817455906685079157536256878132729937759636473329217245668257995525634270952330358587002665748080920653928199787435122267682572676429716875037753741602085481758071259375446965961124946081372343319451676938850221948883274811497498622892508963790327972795593142448677859648286903053058266855444692701292702442603453321267844385202946246788465977118747537062282267844517820687376629573264562744222355631395629076279032205610099261062089528663458417300308766604150645203711226162153730006836820442929179276127732192682511979247602592967514702637809594606720985746504429758915973378835077110189623115363538634434760130990152472325625292332977394895092308784956918927344799805928737837687684990966770822588035216596561976642501799307913558948715856204516561949029656564804207796427682736254216713030944259778947126516143261194993427638350261481867103130981492014988150444017417229070481359282438064015534354103071254324678734804741248960620536602610288407732533370510884405659328849017746417520605058610900595296532043950680689012993665735718924622388344250845167674597460130260003070930069981306786132507299153514435550116338629851482849081150584520371674874873884504845415055513685028215210878691852269674181541624181081057292635210620604125093281054273196575663769674979484089236174413071637349465252578810354400108132719206170210834040091459338789787692146100896210760125632459545969912847259095533261450828279686018670837781933170667537344667155864952735517801759540563052487043737897116762982294831591119671400907523789081482877002519069123461389790509041145971866513072235554155544251421572940671601020978762243650382209828078601852526305953506361081262550753921735270521288020044179631445673839474205712418216879345276134229751397758868950559465483282325694327122177723775373638194377401126437061654721830620783584951015636712735423237837980232825611865072649154689457529546277318057171934292798926840371743489190419513820601523340788931729858502441532213038252739139910309280545402710219699015083138020646548511190452152244882080153462267690297845469966070938512242113719993854524621798294843887630887118816598337057903044049466860893529556195755985435302822030536345989692707262513870260833950384525291308882996457074551464865301104365134419015212754673882228770796668106395802149720573757108079679888201586187324470193200176399163325962751751877042454536205032583625845927894695751713214448856618844772150865840182253829495877536440321144090773314848994395373592811641469535185349534822127728473353827070072501342762649441354305542653608477392231818886863634552913602513696956379246901961130526902804230651269236368237396687989752239898560826573227804194635160405598951290432297502405347402515260114234813313607535201968848614976553670861949659183541777726165422329794671443832840762651563903850454681381938885586788513789567151915035193806920636139660407570173337629969429057349483645437992424892761347160309528843056759196507306166571797108446400068980243504910565606064472149565135348299374574221783138671343635897573538746566232544178512047076793812460131602401146849119335204906168846046198542669437840437136321321590588955647377459674916421200811624387719035729542666486707960688373710251049550227058261104148711657022926228052967331056139860515134390981025829372803584949136489838306299920884363961819923155128778271531704525763025165931876081924770655940302878209354811873013651442300834737328452612649948950293791032926462679291771777715588227145645088924563046095103484490982226594121700796603665491423887849356930620936827474049380935982266178299285778884130016095706450223313554780892509489790458200292534268205242302461643293374646719296833794382824287283329470450086603829003473674110695327762507356789758593109479159867065621582746931473921292396394818552016751283507205178587559421293442694031007980760760595561091995178642326380716335185601381903171309866583384186868430738163740923273422024449904871212651213062643872243816476969429245663713739456332541830550152340348972970127074631779310744523418417424246080657846045183420453593460279884712811223172805100908000659110524655563081506750710545532427363891771470195247643667835264721904788005497041313139625058733865392111583389105844891592774222239096105531821202247105014837702577985329345841098307379601722983119330019739362194659074444039704289198517087214852084651519738320245228451188371897672349789835233063397262166677527344505436768081805938682830156511761997136676658533368448995704133551139622154914983771195271336539758961545466690829767357478058977002889389562255236951965801497243178113314484357062345807292002336468238117386403820279037415395126186127830202209486997580438342806599907148699593321403296861327755913467319712154990199464013143352573560885484395986085423675093101870638885978314698397299302558066929526201899998073685734706469001956587828169245657144055386560781258834987437216101344277280685451056121549145461702888294174088258179841867291522856955948982996968817357299815625338863066118695985307013466131706670079274332449857017567889573320849742905628671341750057657349627074580582074152866615810457162332709292284124574864787917433602102084959708138098883725526074315411604327500221824974384034870074921427287511002646767779274199217201289521953714998704600135450598770763085923798931458826915206734343833649145024717576286060633442451779441108209911903275578015537871927173067644418860103785000598741563754741640752412918041612700602526659254565076229963932202002015359173603873059086927115709055468806499223758516253339836630631546088274376179260868688098066444825372432079640376955270269642578109225358120268959888860040637886459235782033023433888594944140504885137475412431419126950149144008607121543410779043425644578880123979258903595555201850211961777713018570966922731898225996152728577640995206474696503678150656937578449336998890405842988927431930304805308267661027286725377549098540318537754868832075076677136896971754254182787414255172382507936460139713062299026349975163492511486971008866498051877428547311545360408721079306788491459077434254084789938341618537355655899603911836283577745553683281575503163448224821262578240542892144350764175967715921706626702976617404506539790427151864606912920429649071812943296674720671895384757124307272031075404620277601508069642718010943081089360826683467536282264380954201642303424265579863721045357098780941484714948113518056598343688587683538762694872714026062168019514511023382919458074727994955229253162157547592257745038381301798946693561846482127855378812278207818674793685190433495740207264034874151553949472753057203639813207753660680589114454442715256760459221347264966635675668250852674418216485215007455260038203680794679561209474619111202048776494203761799992576567565045141425754395189582844660833431649554111482149445285152263962084087071453361735995050975967011428599828673842507191557316302451073899820704140234027767224829615491624378207638355855934973482341938908376631640613962453136030832541361236685476212948338519822553056845409678185996022342968587113049445378169474940281294153256562644565258634609127332164741312348104524143738436189780538205598975564878237497526392762185118416259784639641552253444695391104005608998147391859683198107272204829510138877914458014131144882682845185700620608011886423240174141433134502001657874144549189181767796721003800898293673162421064494742966960943179975198677567470257552623899217843241025083448709970911852246765860072132602018828085887321093331801656255776609417751883631060623101980655656711228116599764935379148301375336644742261267660436147391307934176235560971315820654556270258730306607174467066398685439957869251621109907073459094218649887739436750981878414844851952104107767640764105446464816660277160517781139047025119171389341166095734784433197493742766367266284128461177663592721370596517878666412967122107671988401325181727021208915606635897462632504925283141387707997034699228287214824756538001787508781692735566157512968148645817802256840550600843185225522324771261282098311065216408029075082816743010663683049186153157400678644229970619790380198045661282064440965713562548772844712554245772739792940403490145206443118772176668006822851460795142233678581819644279477110810135644080075901671068867264298396762667562472079148654955206590724239203196746281431286725259644264472709631229668408587491735602148802884095050661530494670159738219257755807390541353715890353963303506463358467285061191991707738421412561197177930950834664612987703986324028100838680489493821785495626389249928541546631437295504161475758866828718959296151838606070891751274628625190664804668075696185559123529785391947234154569890291633794310592397428805159611792490784034583362958966526780849116157801688512332154528575548697040285430717847915177512335525241655163144336884989349561532760326167345920773014889789147612042389090377864378216248296145262580980283095116706200611516438853239087546509978769687145179826740498092168808986845405801468137806234763535126782646058132656902083742773056167244646208471793802014461637571645219187586568590475679961184086326649048704401392952047930629697507282423553521804237829624265972958973027754685074258608856650136599467869943017421047655199988796781897433419189050630235167730734465990814547751868607540137833779976685733313576982545872864318653225407221855474533411669398298644944493937192515682462358416349117479416092201284499041964612181541945528278122006399003785366920242965158259879160760186154539798464698645308062040894942154909362055488011339658769448771405346225341261116347027040922158857175007975400676861443928823759797932534124546663891569055792940829761265309588632145806641635752155309872513702084079372064097394591719914751685632524490236566062704398122803384770924195027000634133336983117274449755074326978284281718323917360308452282464859274048444254811039136582654680654701710740735969862466071933694366900382010207129099279113639668746713544448899260553167574779202952635291686300610388089942859350634967682936538366528985515060411653330757484050518697750178081650136491058818535227611056580106376563392507190073933771599034859642210661068787603681518328719117938627915915972072768202822939121474792066138148643099621169247282144730247946080256726967328819028250779255087207927459767701794938320534579078162790388697416221885392787784738293563213439169936846288132422223032901246811670186745335074585941475654316340982575194561114403291475024842366465925703990483645360841162695478498151192477567396923595580055383159248654478608303281888083491170041616285488818806655912057314950339696329749055619521904257392115067627684128497460564672251041527202879124989170994132885732494515179941700237790830695318531570919187997211027509702071895532431896397394813713021751088565210184566797048820207008632456335191558045574653385701394353707753504437321349365756164342391215049314648083657350809665474638793729728744333816328642963548773541665922327220267149666195112012854170034040763561208601996729019526031131558638274071619007981426672870998089773178965342999024298212701820040129272208881438228102251475095616350342605374728398191342367175823163728718094876017667278300416059581818503518555903171414942524782029165828643289156981945904945475792413422626494602127309209583738293483854079646398151103763731841687862406257845834070723691360821421766907584839873367225974146298404359331174817325434581462448271790572825314101324424839794006212760665140741621603421921559153263336481954820326460253120645171390836695124243846289066732708491775126974445639599448199125697364158432608937399290483960362339629183521674781852830510428009617188238092524578805965665714276244540358158489738363118740984923016485673485832705346143955157008242224723111363121471419450369398991371021898846568227289206358571849006458713222428640389164463798626198923304883583236236510850201945588713012400510498380638451154807980465111503607945615093540547008216311718261255977632239013181346668049806776648472027521754824618303963815491600761307238117550867893397021444046190614158996687100233422099760202978877154473096517068927184167664758775924142034546973877096696362090213852757109332181912036081704448754744560350873321710952774160938233388251918675201846525419273225646949663193286466521761141645852096476546782794229759992641706850185792307280573708366342173031031333738071850974780514326418727029852602962511560044920314842189123413020861484941595628259663794273465280810714522675690719251686125221910603877933298325162087157251946879127735498230112253125687500404738639969700914825313576393453022522696131530252146996349820380606062394400617136217395636249116382715804139325281400771915158306512888444286305815872629549099230278680158340778015027605886494806658096067006901954517341732848373267978723608538263429327364606813659795968487241318329072906741499246522994603734488756407679633346745239670471914188024337505573097913435136477586670729338119672414277256366234016757433198576881805130847574999831785287572968903031403295646172357463979059447926839995116129862926529002323680223568808856739412893342859009980653124001418548236639858286986010641659908458018308614391946065945789172186299446087915917154345926950965025159133507148452152393471977881093711529804901716108118439581105768003772387492347014635077832623238048527364672297408143790518618040862632813637725926211775622581120274759522881096887623275841656038117131298409236325769051302653217939946187823612583497685019718344183178663896848774643151119032204420125314326032483087849928029559139616310777514146215443946323100502317068814548708020125029989543637584151310203069413110730646818078802027434290366899532267184766730311826356665573599929366783179438815791331655527895219413180843877619107528394729305176759441190858149294730609232474389771906707504372494537859056938546817097340959012152921224936644098296301135509335527724200513950753092712646199298401721138890993131949791004926101840789876511935457130433698513267605883214660365282504721309304771544900593987538036292591032453953273391102663961603053101658845487856690113882341525956704041710739321512188626058403283873798222579720998366210756259205859610589787347806019973003854158023595754737175685029332463541263984949192514542571288667385469368327157586264398243570222501257817917099578134600656334624466183057338212065076356097296160542858877979677674330131622857819274449641885840301044835284793701356703871834051195612549271831032646555514791763037134345525212628315954219307410832568357105976787209726790367438558624789688199061162432982326037454455372570214507783673988065008332925086931054276444324067917108320135504931500819925837085499867402053491999502599173806132972305492446489229458884946440637118973116173830076888971436364483838877656239473743113758642171354580871309455855802745405138567933960427409879831386378638243946051664469905026733602141657951183780398318175141022040911506277252309492043975497507661569374319944241873981153295229600314601402351148518959005210133538118233167916615292771170685276016497884174668122948179868465928039872880329825187669848680579164962099802850623029867367972242464596045080034759834340947300172244873073580841389257612910020419066421138284653311081395121542811434839002709081134954811286740153079685783114310343982894071854497644811533109821639364507523664795517169060361834266202957083718422662903938081432113372576194341726690290325922644041251327415297298959716072729030676471344361894037662133634812744379978815055816588708845999737779466177637240025197509160868255015448153891520344836354517151249192718552347881712970989949983553974534330011303979857150542337791430844793112707411934922605089921661617774059469817722515634081524273354142988246617598284735400634644928585875974604430155951113539119157285017814208381422877517280594894560753915847900019937852231375445864508229127133324178576528790336652107451872220105368516991794565019809859640360767593660829473596499885954623622663809078824531785857527747434586427441619372856105258056439659880823834921993882050843281688982592397639012557337734269602769213226995507233292022363065436559195018549259684904672415905117666577096333162048560189805135224036378449568073680581455198250283477390794704215343022019622654748630494013152333325460577850028994673873511237884950625172472362521171295976083648846878025110641494868868209219812426666925464843782957293375636170137266631674341004126256338453337358166162104090371920519087385666654990460777377827867185981260041559021859246967782209392228711639903528825201372855316528031255969962074866862683718864466427968039067525078761690960350307940638382945287643504975866494071689131183789400383417985637902874505272093462790105495645334248560225894114251116777472951573878636945377294987410222014198309887520742587674496589087586642582818728373960101470717554102454114754448945070949034948729452544859639677953311078469784707662166172759603686172869335354082446614868267531574080427261254817766802530750269112579507706912657266024320030777411079216580549429602385782893989058235756778950234936602947529968380114640539644481510915314001882086674277428219221261430493899677828698812381134553235164108786201095986057923045093989045045869217117936935555654494405137229909563003428737901678787640271245773779173123327667688046020394068154089227334818755397388678857629025102108431957979563002769431336976038940202581169079390770148140739237678875774724085690590887125488064286015461075206688034852957510316934789263702824229668461390409191635550636824945370654540678033179913520782277277226163624172391670480001656476139501131106659113195690646719031398857487763095492112829827540367391581279345842581157300177407158582226239088812937386768369806053348321075144263898980055757113255974534515127152857539000816007312493498927320698794629640002142979124963958883261899295109675712291095984067592705173981339781105172842861328774978383170932184773933394305173048618097268013796468945015306119866414623611987897779008871876144080911904290086554625241264473819669751202790482309654953640722703462614954870570131939338707741321166667663741389217356336686815623565104306353193814459960986097532924112675759509034218892600670579767840064574775490145633890005697629626182770219791811878493664792644264412815160551319745809533963586845623216643025106652585701560004006001973910018385508903151594192605764395947763986469628595046703644688852421744007981690874530824479039451284282436617123448812533771094416330893826799627981015860151031173115651126307599804430335317195367294872425471393566582451274158677550596184659363698146313817614005767826862649550806454381525727482924575356707756461793988413926270998243545390737135769820954469070535378924873339614989544344912609226724986134278250736385779659271638715711075186894294968186731304763010403871580350818577560441791264704647462835828569453481670511528416420915652096792256811774671449961521349097909884022555090414690989053297575219472410563822552026918615096684140483984777080736361711435280514085332267701729687475304053050243900452169779327380855821068187245441036077411739006710100962281123087628132312205653632054524034462437454249552816738230076060508053619139968463214526640987729623417295951577847505557722120373321454051105868538238231469606988864006205647851145856662192966591145571337429318254490607581539096101666400626536814077841116187001870923722526425481113524332535039668029912076529646378820355204530307944249809413110185918692434948532365995914700401517119839154641868158001138402464423353660632818629950067446297229343459285589649383349276791508466044928890050010933714007213542975315176393638919596671127437990219079478319766306257156277910816334642199949667270020860036424597513333752256852995713128184631604291969752684486711588367291642877918845910818574977077329886420178995284346903651030073045575694729738228755124477301531760010599057180229870539184319898448762875922187167687205493007021583133381790246313642128242762483460660755206712395607925245691777890703385404107509716501493609543293082075210531571330962634421061564965562784775877986012085648845295191648941391537318250005097771050730750341352199003930087471439604011222591656778859291925846420850404308015768528128419814326718852089042119428165197357554921338221829857048536019004992357387886364052396851565439482854441531788775046129289205087169424584848394073986300357681469273879135206782803863972282728569166311954339671792794334087630820185874693778078520102409461725472058902658902930688363096458596631648859390842912336273590185268239881395102431360467395630822436849994311680464261964600728234801649239113745567771252148433159713571120946890152478944022158093680703191376578938220321019233566458235406537012758226949864469150716762050354672105126261552454708384850112100055479282743240292971132302672497418441662155928181126918867025205820914009059087807752498896704137259284150797448293932299110278147209661410429562421657021188420783575783517529251837697571504993447610651135272286822565420026496037781484904770370312717197036684165080068933472210617485688609696149261980203056531409208192596799143553200540039564951399194482620899001667572246328096274884061440628051382595058589775238568857087189775498563993162827587722784522286887995907088572454565754451082747635401247228417561530139958432836922312708223492798460932541966414840323540372997332611753729004508553532757041144940101879149496717382193209348239675809594584831076306218656366320897334126638659508650374069345883837458950854103966432008760643305874488739023150123163907574681996190528626845130075746522853576877841954189089006325805149285794032228538446485320566383411900119061643270750570270703008309162406805876834329233721420854149703711213797361380082761038224019653027554904417743667882179179819689025898664646232882554957382701116601576705547713064867693851754439517853017898754791440960402421866143209879646662488080978648934184253866546943491115533524144256732841203143614330066812643722278574245861049223669521031874322523887892237278985763277952797294360379481946048930102954078878906587157893693020880177828584052222053837165177709973966650294463552598198172203810398722532068446551123897195801870344612950780840406118579574627411452330809836630149281103814375225950064785362154911646920944036752424202227189184082234327270814585205534545629435498034053197496140976453019767658488065406134750473126378015546649578322638476764815551059365463559369850035385921680639378891127749002161982440965938375421271915959396428397538172851424182760729314380639127140819074890109129392542480047763850814396437637916827196443316426921712696752335591905195579947122265897855052022478503043917586047939664872792712220689547940200836049561524136887855142023131738753518689208401006728380027644619122579578096012503254402465847662466488031454706932891494327837650409213534146011621355486403888857993043874270208234595706929500444902382216981019003765841088945329970340485177166561067397481403325684051443369247868358207426064294558099832551080149339353280270594315082415420472825629218744393673781487580674926509014478629048234740768036973806920443640183842809351193971066924652237895629877647429959083986723949627351571011625484175156041246481644360926429967546381419895716452679221277084742106065738744753744508865837940547411081906190585502248958018448697046048817543116380305402831018563894137808021774421985681549426888138703085500189154371398450789596345329337484586008044489705421512929860472896246788856289772720831538523285609580639051638955592366929316409346796997329127859261829670450606283397076967479557695886051773472591327870758399858136475069979077894195915331365910432160359610733836859887009567123340696375068653634752386038928587673761102447929988020702222744238691253101325450020338358250814213591023649075703774552863380061729650293166069812608114326762530258875962650090184886309236276670850289201385636686074201730896941228222578679570325921066849956176202999434889246671960627238137186519218427680900740195528113775701400833251348275484877198569997859272244430264101718274848037334907175246454966832000831101533523548464035570651142295445805247062338496956881664772644234593238228943821532465268681824184510496614911564408720621745105131219380114279595398780707518103914995696198774087439158884493302712092518541892603480042087167739095740691452157027354739320514351964662878419976351371099290645370662522170370621056345150490745697473392502500301339329977856551619378346712853800893285259878595443017252571917352606235171152851665166332903745407591589761912221806954154060766055759968019092177457879361021896279266206370161693195576489028165286528540645071194371943897508424142248798496382441518622148476796130883471987791929451910402970772157369964916155772143494782553187090702654116834207627498124478189911557903417304649843268923626604852767930041872730793383721081044509374105928681796778519482001324320627293176739527351488694021619873632306056019268054513668235300630648747791707807690452187253296007677064845792834107373800359048743281168003964842701656027693614806630691048821306873479951565062391037085959201684412873381315608702618878071373865783008795681439402162935178597963689208782925290254646151751470705581075600064911191277984591817072448083012538334476936291518479461146826597217789475641528636213915718535565613384944243397710367587520562492748926908829943183139873780658405544561962522142756712960513202546718273316227120609245163805134367747162792803817880287816321987034503726928962250571809951520709361342071365273146402006890669842613531183301787031444775750328585950018074013725627590359513528018898476068401690779304835145535150225161035141434155163931698983622849992271573209620986297086685381600642667171366030828630182605262759729446187901888934151417447734852531265827783740452003997362507977384644923064453541254070465055096138059275796345070175617358376236193343319075721752291536932667199026883782816026624474561431534171161166428145416300232755021391989494263348812232456218518572840826745524597791430316244116578069642716955527823643933074049893838892413593598977913694459789139551139838788246700297226232575113749801425573828113258246418294324822801986981024891169272532394444415793061995154746172305325961331659619250356336752591877337441598817256504318399563029044318421340622610685997614539467085409330441151369170460208983697683051468707355862355895447170811793918683690190241972348414690638168027623894729706184938668872460433027620293388255497452081046274145893293914214378016749968581944660448492111413370834856283173430305578932524396948867166252390192056560767842481313196835331611339755662856140440864437139246260704921814617484810658521202990432292314068802299429483969023372605415444550621134879317411889196553355846106282302228770907054148126981313383830685651453124939731807668874433740846133658386973300609578164426355397516210698341266461210967162801837140083699396808869577177814436768967679566893406315709978522141809589903140630736647632625525887616514706947174472275148175480950636120970408901723552119051600030416383606054072479758413497223156718698222263553906508990108048753037395711272459402254201335788272768322059142935570937409476999049568275004716939847927906310753344562611086247019577116971917513892213576338196194949915997185818502761400561773004755645009863276437825602642247517149084396000151463096273093901716628438291692641673261092357293471305103278627462008095631317390784617205775026756347634439375489593770260851277744858609138089975630529530860012371316262201033804541012033166287696890595004957457884510121237155967908965500777511243405530331205626187205906670645734848698042394358530760524142359361606909010113947745837803007173900944606233924132722973181329326029071742065414794035724732356640122915047485660444465283255521720566789056380230058753271572928525351804389851638812804037884330674119030525048989812887048283422120767107779678792460979164106219480519660886509696389652986924443524401192838321121184459049216737366315714880155626919118738476380338071664603198887887965638755464323027863531933959770058049905385684945923662713302738050213241478062676183333396497521252038243145762055446620699730457451165844699461468971890009798999369365576874134577902337529989127591585824443228934007535192114028711503896288946114364976168783562137491258009172627075033859902033911179060263610285990562605058346796720059935091529137750075824278272886073204612124536599912378382355986494389183555373318525801391074424925562476285443455297832099916865916715285305748170780017326911422593940375995739470417442466674517615170506832123964752430080129774244069220303747655071494270534920922038432049146599755753756699752868074984924160774029371073740150071686123383798793785626988163671325559788791005793921490132692534065258214495451336462641542892301819755278485590490105753839343517643086066414363787881795584412243501342334240621854520231948776663731748363836083811431727347199567066602534126499621222491847846014948607545839102439415695928778905315896770226585332279548338096978530226964949754892037546295915832726196597195593572970481937893055353426541478509657506819465954832557291710413195340398630559874429454996268336977931069802416081142105752279767995652787766853360717682435035185369878845934153649462317140356855128316603723062307289725035837754521510943871356946689012444166557486502577117206439750014976290815210582393132447946863254877515810410522305412655680263258076952746190725055152137959527614640947216124928291348645713437534162030453106541341900540248655727028107148170093366062039263690411951357889570177994049843819609716526447632730041536291369267081548640740200382463198402732375696373677973131505655416329935815318341516499361905426634530325915038403787643848678161409354594317071158388641148248344619692667497853056645957344236355895707678269741654572011377910721823730700750284218063619831911576998344853778522360166124612785032689304972645373245773838352002238020577554820298443820341805738370121607786479606440934109907050864053565377595076986443803303105345257794399313223229942351922434680091801518312786234045356264878818679454222549081631777377553144704203283028026801381248504192537724633435052092711809443499565040795246719184720512984960556648301651433832308512968766794389641076794670811478987625045230943940400106006680032175385264188240639300877207042176072281322496650944782418415716478252550387973298146380220271055051815594666424000093725244264030806708452498460888839632852213467688820086339207160492862834339067116256812864544527709532595986061275736359843055343215551445426923592481192065712796936665044337683159439270291837399389072187848454594371569069814792253775239193336864336706690490212921352709467224974129240519189936809962333649729914572817013842153720486915821162720072397120186805526231580329631792351709290339783561605933231743091098824658382386503215723058318999291266251139591399418897851608890232324827735464580617300237066661897228726171468498703971478436202797225589317201000890958425878029721589932103367335327337972090933210524434124867848023794401775067233186114116896496920838090897844482830262805839210870381780256117231468061488314978665035219851658252103545251507769554625457245279597952096971389381174893340959783981779961666018638600044529487985616169861691367504822249664313448562062379781092527803412599910807293517124326460370383497691438351401714384301716632497385496947257231878093458196833062197783192441567879943657737486821480939816618301770094570920018787189338573151162503362337466411490457674117461402338364382948153106264197538825005268173366670130324030887895335888512886954015315580553719427045450182882209137596678423242643794754980623386493820251535880207040836491959022197669529358410158757614573495420533379499937633593458133104539726925529457697217524949342684264673774510391527104618538386373939844119217819947973525359085259670551951284876813673975410941737626304699465190360023964558198545600851292777760400450875652535947020775059804423315086733774513756692274728080044592840132838466020100883907331514112669058828786928059743066322439431709511644762883540849732717214888990458340588062472909590067618627624345720929959937861506313761426762879825707061376540295188868902419534709561257688460257179922220416254894698288948420404831068881724641591243366744950404368057337240403224518459829587378463864010849316985012358241658039224306459392374218113049017540813098715492324970468389255859636458444902763201660367750401189878316025812055714254281997744336947284048981394600275071919877054267070890387022751673337322035126716756948780015181529026283428170246916939601049927073483043587438362264726153055054393212344877609838275429267517196673851296782808751403305429886050999237265360845913384394866041499922653771614383759199996589454315363000890861921345615489028766122896062705132639783716200927236613322085359115458042587658334244664995900380676319919229386723685338220750666428531533550043619403560132855676443495313198981338630649937333097783056391288508155361379101112853870262699915570304890423164858662647111171955570871816527043857098599352108275170547399820184175855627436067511253649780437394985086327601096098139674556270582788782287619064771726689829213663813888478671940035495191000059877650787849336047927980270310079095261253337797651375572094510631787822548897379051680048324766569506777220986467780827886091817535351235547221374402449457210923918293362156626056368468752724117117292492553990370285725335228864514675746167061256890346462564026552289900142812154516951700918051381249429920565339342683929797350017429486322654370351556967162072685751111859486626658860676465125400676183882603132534397075021463547673001168189576963473824529953382741342996786479582275846670747527088793365016316341217974804420500053794071755845881700727887897508791750875043077533730623336577356010894272596733566100067599116356249407358253688637651293589899658473252425464305381127163891356786219720461438571762366262680244332328696384607503962413823778675253819014004978824467936630245236097874674580552859434004597330872690510562388418171224265186826190777496617890704366618060759873257325655553778901941596829747566938009256128950805436405573272389367127681618795927059723730637070066210023653619239651682988979378581591587392180246971020486020574227260407710994739255695053308809932231316505942897515733186586571991739968025866438095950241349653494491806068743908336709274004323813517813759638204005060958845965530943512833374190011422113199384959597289738968080328315734481323299266406267707753753112453155921391596160925274831158538389516601493822917449633846300446596823236993068564978259046942574930175666709837658751315980352859343556124824923031952911038139100829973170001298788883814691658803082175591958760272939128635222800066257188377628610385231127127421250300866033460759991674624305466273875555043028315701485127960143429852215212525610880734377977533719042905113094095115036638023104161482271893428077707428728110066342032420191322970462032598545019605017664734543300513896648193670986569201954402553910994673035377468142095170446859269840654519213743415439889043585418794681642520606053864014866680022985749507642775991859742619278036525660677400067359478802476375556306427760395547877506242474505701972486653960051067217026828259171350770646945621999606920091401545413021172606949567304287923363589564461942999185193319277606779841724370084566841524424068709182771453977888428205434346060969813802569239227356938503202924966881878534777076840919464440915076976756196430505361393870738395836303179077390689702026210001538260613754743263121977048561343737112018526884825816233050392881966193662679935472035108841556405716864036885730976544494127095557116472184377440155229245207371505105840351920967053815510612960253139818692031035408908296338096421801578719259844569643005620534076962243434386058992321824439863647072418231465408242134845639979263459652507576297706714918320751013495123277588736444316561054520059672530983643924597207950979518633797084489895228428248593835414216364891395332377533618481079374113356263644635743442135527174905394677837746884291955569457533568207716497949814221585144980247350396611192848423469151579340942475103721770510428516007825011181082376115874574745780351604103903245094400217485443322989968797385010416947158949250230256922019783224785602071267649234430463028050956081263806229090006166400908765039566209358031539816194638493147046455783553814848069387825686402538709481231480438975731443317667541227484968146424245324044966590529672193464818410978670534159591151189631286343115855388542670298220802068370431778925347237126122777469046774532947155084473785351867196566337116536367673388081505736465824774978945504106776616330634661555938134037947914949749950892837806255791070135036903047901191250330035039565165927449607888922021613962900711425902142285932468582963948220440811056910223949056191207502107323137658227246170231179792417581837723848985596543536601128773203610221481917061558282171861173045033304858683721988165902650991858983782231919652386190859640496201322640432211360580415508448235727582345689039707919589640904200052702677084482180883656131310571978220530829039777715354614345859327264635185330338346621393408643828357656519830593161425848942289536244044458188396856141911856862507273392782450156263519266388930281621335137042186246678894503176412570840727359303344828575869334698649542475133105402503573186122420302238667692445193783210646921355534846193817518185567565840886862214522840256357639397652197907768749463393861172065086547398308666267694723531681006431997484871755882138239034715045367716345819641942251660145404379020993681831016867443116292913561946757500488337687933995876849330526569783085007093087488926989538858901567224016782726348191407510012304064033010645584935568998401200524477009309627716716414225942109506601066329371005042941249571790289847264905783686138556647546524374353119532582058540734978894201089254779281383651618097100345185730015785555136860441082300373489765343691934715370550960821135409286051371770054655828977043440752484365178219221616387471916157903280931807420795846956421089767074728831446275884777026757453864443800062612930918690906109946211155846962135256787310424680437372665731948834013698572064223090771422935861598924081684635284093450478796075326304243484241628698886216987624676120449370570333827657110411103776410184327062987721547278550554644368246391077206923267272090722255827683738237968312516681865519514238408698989165274910301054713135147118414818947182239410752377509267539660926759399300310087513635829124516108733351138463423308313069456382442793900394034040808238858330873936774606523989052331767575583376306163172379742333976560993834451487618040983264533563988031770746083283675812782156564255120387795825390925237907787406174859691039777394935492180068084231643121695795652543884438562712856585967809654909756570591228864651560014898874260118462681744328724777540549147269475983404830696040914862693161037414262622903914546619655763837524280440828564762106548704592214372001885826516639400095967561632863186496990511698397960493132412806746249921547700518323235763319187452547029798023472350503315851841966904437476317908923319678508810486460327761279835945011007698622827444372548521038504686757791272404307042890161061505515059383246856219965162602738708102781955484751233906940170448045799117849538513653990709434517246991185429606588356409616138386463306305733120747058328544471178313900404204740130612354878496419969757917256406954762378482328049370447262367365223460522990400178459739294158882761012609366720944324815088018350327498702254435328516511514488981186747006427161671087600247456869317258553828130237480313305574538208499470251748896176219646712327026355780256298424355400611613365135267600497337964471343969199593510865892638558236043629319472133745200060555676863428652248608231855814559511311113987128622027940152342368946350470467035312405482092039244085159592910046415643447329240453751494789835524635020039481272398029658588978829883696436810795487565341062690025127929045101767233163053451103482028821856799946814415383680560487357388474568877471014732463554122877078204004621322014631817992204698070233800565087572709930270245118379308539104466775320707711693033629291603353675019232718518657001127845557385839793614887358591667969678508211609753987012912602736862212116211798578380765737358306962213235537596067881448800557258064030120511431215892167139575659634322942591082625445713053632623684858977869213347778985718753395856373233955773751640740555512488883088013473132877223441263289443329309923549567259241019450464728072970364072034495389961643764891503067462563798761935583248002439111805460221544329277120401793630850759809951040216298331567017080525178591661988108230790928569145530597076392960713219012122581775105934212521219559554110743719829976506019505454688770699216546578725342117267079114437321263421601969585114208440028325808363593332249118976361100548897303709227540292692141395525540360873695912267207606115197005637409662901166739152639086837916125856756766904324331289491681285088829086525555970851831956129832103228973102569793669950369398559835175686949575978998275976153418260502612548927162525601145878652196768706089315133835028952529346446000702108642710768157409747113076177313137439578317147630963754841740519438702217406492410926343032771621027979642189080671613160727389990734791087500452864894016703289424745465169426513641653485619304326376897885359052583504628133878139502957536174686571015800160161591642378048985584752239085350808364716499070721843842131913999038868488710479118192370581542122389917453134609903352070480661293128541838206005431337125936515537452951838631371686580252266838389403232083277974289426183024725964463984657640161387583991637864434608464303192891514381197822781980174242656963206744322307236249037835420114840607725737484148618124623438556407518490302072683400896897163758346935399652758059043286131508962105874125079118246366446348289716495861182735934659791630966681333931391432743692632580038863354405897185276032789799337988314408235488301211684825686942716977230001434060477388404826650995166713062025305760485191534743390528765202774735581251111669003029646455881398964047928605620794575622857254858850929994918531717965850794954543306504608213794105990532765191410095036692054316600044277184041305406780634301067424825854065813209100077897730081557981223404141871596148540162172933698771239064818130612370157650011780724051368408904040392963414787856873109279841208750642334714671560783388449525668327720541513168419531428196980253249373177082932798222785773495536500152473436389469367960342255166713646097394700107578201643505362020022681903173256511142415090371956095812654585545019123959886859047682196449379017610003830017471074968058709141717621952088925170724126127391432166447580239614909912919796767674292304757463494650093967195407014181483353037974833984985581437774088030708968939656731697459134856903186073920336755753021094610345878459249141360057563073182006790995678048498543271964451465879200719769491414045540633143087838882644932848911143025275816512023339672968452250090405139842182971299109972877683808752739029497073126072868675210042587893623996939237984630599562053361526712696352395143946826314646021023216621903827725851722100579924129060127892564257555535792804149115610936245749737821030874191312857711137360966911025713387761273178061016317915676038241981615809334730550366678075865617976108881771186541008808941697877110740125900277557047744164278759685478673735247596050518415133860109426681129241002304854628367782514190896357844609731022514290533801071932559764307088355688338693568238109732274245477949700178828144021930631536716065071078968368346049687443954155067442142323627072192103424371105748052550353839576501415096720930203512653412987303329716755077827583149923194572529560447270406430957080705227546327649643866576915645151919904293032056895582311647980505574632619473519936138047813108066524364931165016707051561279647575083156411552093350867865762965454038306705575185616958784106068341534120282275722758122765106057227710759881265559394048727962179656368744636667218257216089419218075265014903252913621837539931914905906076723742272766162593940486924442659357981074131185474971107860293558956416210931296524736045485797277505428203232273777095679022493464512401601524173602278058288105376966620072123041412873010073336552507912157923271706558156566386400706235047142827921213950885307665201623367094577501239951763830325755543382292050039387687840394457284532928935013196839882751687218888022616864934795649037806038743025403095396513101660788167311948700172433162384248849424930400264584478242239199446817466376631995170963929527117347421278765344214597053332344598597764479977620714383619558452860263683332580181246225403053147697949511185252050455629948457703180505502176837208313000821582587955670694691108428263572674578025512772301748730660018658038134021452988022246912574201631734893206709185151910555948789783166697762723042466284430067560817484350317844733057984971606287764522200365761918095921520615168348830510356813306860674073015173297561663244044895900374791807089002803995968067199480852856375620343348597017310780701626303553617103615603319414368903180185829309932437868983476728086922471048272880963492170190783081849092224839637756474576972458733361532818720586095200144098285488861354141254113594076813395588865980639050485397564065995737962240383987544905215600604378983276222962512495085119263790210976973749553691387298538959435116920965795342190915977348198517736150340510667922126199848651283147585987633371698501241419126655000924786043742408962951076417149668829881891519615749214146351587016517421314212540764138455517295391969261645026634430641919165910885536328630571083154030902048234722420312983227565053625918898504086143118632530750504843445021443486502094162026018185209822188813369124047973451566645884407445969852479474446526821868736024426584936194651798477250711018458798767660917027242993341681909287952391748592744972119871773796678565199964369871542134585365456059447620836225051456788522806275505261628457376737166367843320210215865040751983065981825357551002045908534619075750214237792645287105183678832254844738964045065501388634667002210403922280085065002628624582532324039549806148019503338723158365306614469794841917967201818183092066368064080297929116268211206347604981246794385636534063336388205511865892761805348981709396248854789260331840522664972557039079765379441393536424481838574532229879884812326418461329019379372051283280402762268941322604388286833548845690479348937660296938749441573068646343284756478813564276250034887393619096933397127578757806334777314221439194884533949216663904341009399476803370469922262501574804989494517674426959543035932749446903525555398838858687639790429026018785000707959704330616713186596183065554776219878122605175732088237236289600271752919274246363100838969501197978703464932384971684332194123234425484873020746542735775114345059789708191047395806826859834668363670564316364297853470539307713512335629485238323967439433602118881106413321413457792569190539915674881543586288084833767564890377589602382488936754852070613114416913960354990962971860450094445142293900992690858075818238287439350438276019371636255305942121693444666008022240149089514826773045903541362809321564846735888903958244705805506719540195420747956249965500998221246340070222560276622718688858995475179655306638011777466652120216063668007316544208127303023860871090329493672983566568830438981060944337281334168029185982880950784717046697791511460575201508378755273907672945808262863204473261138299203039407815639018035616962141625098059008965607876509404214628580473634199041762218742006980878091896882275275378861493552142339905113714744928801065305499158005276889025188274304797047727088505977453573277193543946164300460945930272587711030189700495999163703428148204966544602041763327462931651250065805908811162005316729031099919013581865246604915950451178339763599681716010842792270103062739882767054410283426159539917400359566558855334148837486109503786431666574806116252608811638037831213756765507322061537183902703288239533100280636115318528056087202452526984798162712059319844717677056396491903099058718500191919780779386640636631910025606619084139686954553423998928258818574865027830354919170918663528395159391989751124768808085495429215628402036975341318582579563194976655351551466669835532507996275735245701026922407536186362258745141108930000210704196133726130460807986621410609652316186509483210490657580992639122207763032568187725057025582783707064050194176825904853650788338136816774402192202338400900621527545514117128746473434500856390248077524675696500149797351247352307108749399652886502012138701715677328056697247548108932248698054364230054284231864388542361383405018823216324542013078034214223907275716236195748267402408312271073861270998457287218400050997199271226576470325702732323571113795623428319316838314847833431628246703725583236043692920992561298308241431738608392677453764055924482240362884297623837828739279506712870973761384126797368009054953497037997850335026983930973029259199774335165623848837575404760934480274099942199292779130280532883215186624748158298251615475971939041334020051774637660850147998301741575385064868500209433750825800386676026719754248980168565522149239948834688293354143893814359145831576250079695757157666957408781430589574717455064921275425138619990259925334691536011086695153843231883661141677839346600266479620759507281592915169025194114089015285434440279699047398711644978380265523555041605505422019911690112262613167934723244877673361756368483882019088859196797544619624609766435213777691357658637011320935272116089378155043133578371252235496641562847958841253508345998575742382631256315999128466109203092375907125999734352732336509729245156590946926512432966376299382700145363140578071233728525951419972092484742122054751231544368717699349649794498826418278711323513392436264850033436878600385548259866108938668915348611318390145944659352111277071569743138391203105358313801281345124979158821087628329717952311947504083237943726580019838247667358396425786989017949329551226759659802992960981420544829990587316996628583639093182963501556210641143078746537354504183290617964821758160417008631149772335023219949957550083611894600411735999244955215101477928046033412443367396492878782146392123949598224398644160137790123648829482082026887885816585397475731897469249432089884322087917005502822248694448862637388460993640073819022517520333443932687812339858888965767542364203510366413246600043616457491215101073963171156705908810800816879542332426075680382426137281675689881972256184628133695199373010905758613518675340040083135353477499792664839485040348075858649471363064772980397882465179332752109003003276578203897447498310164024786501525615521899645783162357162148770129928832821154479387946687005204716379854453355726504853688347729092574775493075424654397246905802269339953806311845996541634814215373779131804435914658947150944314667688013867257135094498263953213959543848704633321333621918123398959983711359596363944409712568932442019722063646470965779231339234395078497086889707764927935076617865230110168581466544750907684112719366720940681944570303443466448124726329410819175803918481386089698921918876436631422550269538596577691312427365373297587791359244028957476387579802875020111311097106114540657343451126661691257806543254521971658934914998359927394590033388772500709479108785304911508507650905775924314770545557303236817314291678061517308043171045081664030595929028266027869601810781841916745922313313996220027971384024058992952797843712075157250416015791686219969589208743096845249150074154557334236743009745533534430774753195358107241601665518178390966282139051553926360181589286230506662734813995862837062214658057459061239643826532467368125456410914807755038369949820719077957013350587714180773144489600331545870443453390870361504525555213547878155867493842233697539243977005277179255734533267445541852602768187073377083598496986913786734943108860161393817823219609619733266095626875618937104568431165969273195400368950469923138892526447215649789200524335796399375446329096759532412612191620722882750917522769082630214672655321322312623440918965766664154322757761581327250612607328428925399644446953629244959485929642460094444143459666640425322967507897699352035883127193426429643911637534271170957318133350536880390855835563857929570739379967723701075436582821723525567752369805268079138340343963362762072280601617968135189864924841217956473825972231222526131743253321053534590506652049167550949740281439760458906865380243039086920893436910413064506930437120526324819981026351291317880520538207143354856151558997540472475688317727004497822327906435212056117504092958388283428388785511408497874003653077291713369656586972610976593175484524739816001084386306662743357368029664651807925843576107408800749985574075393756433037765942279841556496423297018990956720663568745714947053861652447955385296843998145300047704001039190260607480180082923469832672906161143519777222557799347760284449963072483821037997303721407766252056840857680826413017860271525410561933482596259212518774685344159283491693790580635556965216525895009972475403908731441664607672444789828175753249771149732404138663336815034215379623835159126299122081952547867237749659421991580797626488392234047557206973379132524632089953049022589740570598271498000290737668643005015541848883797614085595631306103261255352987792663170831158374636901890263372344402335644065339883420122088255666753395642788838380534835113968520058648280872537673093709896968434135905219816091166815748544881542260456469478700068277308752335748390361002226545697218026875373907513355178212083815343169166112823830274268266632442665942171361375299743959892935031819404693911270748414298925676442053165648545719424888118492808812106636893028026273279125581130179916547042788283932813760680735842424071121084102924506097587129962214770156165502360330131180051788006989745185141678999703092232323922027517196994912388453439026649274612336696179676948571806142026939598478112059408759586328624806017983693805896829946270815934314100585977515719676779709349319806167330525474639073959808365115546711982565427061206699112726245260107813744061640424693441153846789623516804362549097453941463954784534830669459541394598535955244475245219171437805288071131231006818606976724873114912287757173254457058587149738842251599903860515433241940323082269660813786957039920155371358870636486538319427454354038924922986270928447960803459676103182546567272391564460417073429001392272925833417607623638243627502201805378190065167951489420008201361902062111008257323049709099610357594835721110605836280090616287471425632993972031943409242935126148884991903268461205970018671040956959715975009954250223556901310059271069727992930587357813348255180364237367709876277244349452253916222066965584831025744779814686049609149907085396479207753512036218675807504853326085412451680853437580261245609797479220770115594569615386407419078483800304038262241838895427091233599579621465406963788919133329718481585184089871853446771707872481519693235275713882507374079330757393498221572136054504149018040270383949119803369104718277009707496513677830694581638296307650581381041616096257992025283940160020666197854520267206423062609217523980071221486533056265878917391572514948484398689327952314186329986023882484388205527599629444853773877763925857279800962163609920803781069548788842633195712949170772991109229331035847731657792043356706153297127924818800317972349489843721696515886149815351114546861153561573725714800761578919812723665903044085763387268341445167547820807803946965991159584325649545298475560966587605098748665893388690709472373208199496696315859300356451233085905655928035693609536514503451958666688819106210926435054554664941195393399389351102146479122214439275582672467346819143171518481379401456527373242382716337326697981590803972653594985038998413995974577037843529531511400250084261944539787319442145180068972297470901776472118365956031926290321560889083590423725478389145612606479534500834432219901086692994483514329104233288627880724782906165340904302545339375555017938396843664076881824215195365959374650569210629727820609545990169717073156643973101598955983822209615630798431065314323449006047697320281657523606868736467911668697202052807778421370857966379345428884000007681225712697662054874911208631928142377254647119960363441334463965351853570195652363893169885361690107284285373156805275941482074851862556572614752868039423301899021121183028225641621422335108593388103790455534317141833648090534373332064625830223599169478959915290744475792337990096149371736195574134231746633371540396423370055999316989653503329499462519793805235480455235792002688948037753992234554003658044271447927538834083436253589821610899545827442981899095081045869669488027604227139941388884786914925272661120712619566300166906990362262437576452397839976317864860173096016431827221761149585831874007032342461727611651761447653001831642209150000975985064165394771505542819537727204445586282670145750711759660532327739517449736381308794036584804249989825151196655847887789995265878692074294507383504587053498477304584055287318860893527839979682957634738873099175849087233837295554147647331011614689059715322204286601140830787868338074596010673655797963369945295046622796984236371039076041569116392513607720387392112900384527107103805414053758609393697190998107995058170920161754640152273718692234180983403786681167757441457532220261751234537151289474193909065030205687477480245677821328133521166199305439877747960758755732306681927320929092900417304409785106948702066889572425406511328017618443394315218390646033382149197444894289786286897862117279257546537306934746197177409413200782304990135405830821421229854742074245758775039971869931857219765883266045905583921435421409371088777128656761553905515580968217156833149006353859271900856167204260747341653923585820852194364898129796895392171651797264364513092704700139967736793295661402903666552741383911934473407437698610983752619323741832290580515330904709154875255839066309264437271865567865713193926592645987166756699083166977650367205357105189400250077435386083175753418101191158968147012345274618930063583636900651881464357930016233525660057673838261244752293656112595420647228300776890822155203172833759631541079277016613698689418154088186181067625538341346146327257030736368461619364249503107271324915439278472173374961165546463476263432241118926526883635514252544147550546195460614469458467870494762158197240079142144491687248001422121486998123635811974541120673597242617673443527903957849042183745529185454955987015410331260714042131337530580069134055601229982739909547492627390027582569918463205514474012925958895346504505481395551906475991530221383002578722490193288934975607862590703759320655384736052648977052854470910035671900690177744571376884406624652637660279857808881641063387167313998006805150343728398283917521339318981758956888775026496557513116177647368784565858213903330957925617431676876944816824220742546693694376067525544412628286227726123489780655817626862543446135475591987918771069335514937416134156375717929751424899547443763705976089538381386740571857336323495357924863170790251270837312081674606684466766231910254763165645462803021530547271700349807175935385248631037948934975028325020053950819031743398873502464806018598057886319737181263431566821228471645838866946755244064264415217770647457391599269224911019428170360651436581438267251453714372292968684737382017797759868261198845843905646326724442271172887320887064560136839173734634627960967670287699769047747156122370624093223931252276666400008963971228307411676708669085040112054633935254587125593935259965287045382635846735102687367034512014754421720314687894892110827472606973537607053476686314207822586257180267008903061652274958529823985014000600669066280135386938255066179836488915144994029751663523498900073259229588084310978966760741405749950610362876584947320432554234985653468731130757623466528493237472780033144970946577362116902362451900873514677594139194673939909223713464710453962683437018511208019061113948381361703257177544949468264931068767651154797711278546395272725212791512830223897063372372319279382399956987550441158628571404430406322451261420670944422460718639148908398406010044694131847710862885688147951643140066080450592400388736210628839292337700270434033153435732306515675558478343309426587942963216374457871110533820676755367559357626276456617585018848926364906691813448498358488550173719283724219837820191915799650469343302605715947900319406486043380012828885800330391662210358112982637372281916914963857164367154679615201807332017287366227423827525664527311043421748312253984034066454656966576734650676844754184843920443682268491524438084588599133390927980249192331978448750456332299859666960732252821470289683982181883425445482949637761158271194321926299675141945120650519219688615372169560395786844440220626231040100781181193120078694377616123532039347930429282981592510182779966059232549689359665325506824451661806943514813178673249133755832589514662704466463040367687429025869329290406416348789074827136550820525932000482191838120707265923886663029149018808516528017760384734107538025753896248522299932365667863000716420137272631113486563092932640661195931386720071076153185427388814723239798723237733294259322515875539606032239540436904954813038118518927782345958863407873557109987185020856738558606562091946342221749288216035105712474647341910844585359085473151592473984414649312634593691980186384536685959825392386949253920275137103254977062773744767193293353329464779722891119079809188301830042694395926617852805542971858363101997191177183808077421618901852440191014737394420166683868620908099856084250809329363088381803359835587422656623862485158413114796153188650311690687336191138043435969487737846905460653143050917345815773457918097591150063277665168670021072289186633091819011284854010581183469303015106665584182526366298745457276244471507280632604208544660042487581182929707426741405144731157799165072026577933083820361446895298718050166047161658368879795307691053704917222048787095007091444110306754431528064799402494390873135538231922706812278885135393099803524163056097294482054519168256419814218560148276306884864916806792349955665888156150620923408502891329040974169291429570276676829682392894857197427181154423773095856329575348554790694250696895211870227264229446369388931685315613960985203928935762526049324910295402443093807815659775686924333601877633853858181579989329875653328018569486324579733614962302827244478516158971091515888499039685001526537729884628247805021890783708331062356016201541798661033729963757664547263738860232083264766790718257528867080921352484352118640180263080438403280318977047867440908322832985620131195128085611975825400649571903427996758991084566333578319622156556356737550797272837544562021093620307860060977139375391941549373006028276875229993856077719829840408826171914503143259408828238841964170695695849210092554181596815827837564923698685828819002639239193120731505429567114933043720775552201511890655018539446664930531072600942577163746951317239619560674378493008376157873522783605355465632179541601291532915133903884546548787589680871360165274329264985424136989293307780008185831463442798842642672612193689606237148292132540448101514051634712623897413365790346765893591474042052314865174860401384908178085121506989792911145071704097629883628435947768684914197063573004729345960330685760143218490084544459371855360595963227844380719859204684069342018969866765719767897063357559047570963822900153888604092476474105009594446372193276104611754553822253001267559636434932324855983103753860002246480240355493175656563760312493431016636456010852072484069838774311088841238887773953015592406623668275379874694974763475284002446469086896174973336922712565870648838788979691629780364217619288051119140858136216871939730357890987030849476287536356267587923791373779891819581550271353392790536643573078428263584348229914147933687049497519586034927541779216653288537510724097982576644659928591429970630039193822098705041872499781304875187667431406600531529606281183620480532377062897326419721505343217679879126162882954042074734710777459584940169070735808865374612643370221572564931954017560479301948881616920431168667941586401991211253271639139726004634061252014447847395893986985042168098295655138125732508480617443080649100322699814963668500829671410761026822976829934398593905268185342160608624378736776380827222297212531635244539422378228018227002529654987136461064518920741429132645461931854947902801630144285970928692469278650765661185707865962522351201461535833664238105406574735916873281686599526505241814332243218301270891411259605827276322000592603559305695165405971893434015526059008703771673514444783127893620830321769839268186657304167176662186895121039703663557010984732131994858956601393227307432801238712550036532640389113800192637850066024177633296348872065541375347850547874293990792480750096294195565819874020467318814632203468357739880531323453892667856429324220090072747649592305545134463896125964314625813866677253980804984211740723830157097638778690178807835689984123558629528774473847024152299284115298822487188436539457514756181793433084342637073997284543150387197953827747024851983444877833058654718418927729591480738502195304451909633665511951670123458490239297350755026319974041879170647652127570674753174246221825415534165346990418806064835591092961764384994585752403689020254973474675208692253165653955204257619409417057237222753951034842735870343323829324944604200628518511206009507211094546299369555571865291316728310003297599363289596856599069750622589461429056441869142178006044672639207622210799768884512991647985545751346520722534317810793112357911087827201167509622634235408158497018879710310247401646716927304712626810830581043982737392837396505959114480520301998146781387490267611509837052788330856217382408669204008072516043745399392722483833638024508971768710444619582814101239029531486001923236101889095028650066250285544553093735558875641584370693644917392968092900347634595017423671343651004480088489925679827753748428444785429399703212392684630864540697145573046248006231378193118638141271456574362405759124304515913840910595816574346871628084404390459291187387140403080621102053722153123640856985434421644014689834790214452001762241927214694864482694123792718247870804521366629609240414675902403958563559130674647333039248854468684686999888311889690024956438275119840759880946502216757556357067092525429695074750062614577239131719676937963142818710400659181316523692247049982566050077370100310185360312889140955180890113104873626026225670668802548723338755798013837005636520928643524249791660906647051637017756727429547747395881655845916680922423115047370093644323241121116559760206060541276173710656283629208559242261048381981927029897384670177000968816619240591720814005973242186759343290766064393228691375364337726571228257830189206842245671678796186771163920448454174752849105177477276797465611138138211065277859808572695423980236719122503776937823659187731877483853267169621077567066875267317814539515743654216768765919586393209385294117898397880484131096614692983979067994263381543671397239701795715812365678824599735318529019739377700083130252796632950340552431228031491179167229268075453376688427239813618621871566249650044063894236310071462117177444785689619114675286973266320081563445549186912034641478491901610458074687118903045326619991485851448624887326383794417019413892408167109616711168970094388209343275480217925461551303950277849163035696658530305173534298066160497433159537129866109508497002988541572195558932142793485099787518522794297894707842400667345994594082704547528099871411870268677352319043651135994685539137815793520679355198336848214982595165822082673412626407282079042928885275000739169279878876899918599764586918622624744395648194251584347132318606374811624114008081543541930334465156045274830405595452437471809496585028423070867737250954814949412691073548811829760359895603711062846824357753455711666564665144574475395918982691754168236747561501556870250817866307992258341754030767387963279208952867855938206350413099530210341246714979812647599146672543254637366971681443511917089344584485181817443654135790252483886840503279924477418200469593687701660308234459912182584974758736436605933611123822807935201774879469130541922661133299248961326672911713177193525884437444676641592899588229703466024610206609149141291917460094329269571844878523700883335100549513239385459230249008980436946942331161889594375956432490900782077032176221174251248435105852017247206896123459969044405393634162250111968260433013576911355315555189660063710682332167715731340945178497588154229769900788386874918614079079362748734056437188732425542864808087894651592360033316755929734218629002537798192941353220343629527720463141436818154692711334404266755101447567299307735908995946036325086327581313952852869164778115386308251466235775621276487478393170573379898509078929498529368334539712132866677518426429816000851845325694429985727833103908805293144266094414320167523366528293113744008928799486795315372257051303840401054344665269059466424959207007263341612399114175067728505255442920189692477739801207937316760935021096961791113353355940613505966984177297408743725759845388678198473026008772654189844813342888245883709249218789750197701196278637471255065310048552802322692771559766293122933380899971550792562411920916295510298782333287452633867267310543389041803902241925332533296422006707475296940871461791714151496590741833214352968852016105766209961276687057402527494661096774750824512040636782057714424405530962580527646809049856346293587279157800388948034163329157202101740027510059598282946414665482518732550611915034423665095331853876411611702231230897144514670842321691323469730034295749238608057711858302959498429597964033091403124739321596489223774026280945611035875429029134964825466640998970017400471056531952831715608602390435055524883460143225903839402679674286574223967208588539306927807302605309646277140855088228846836042328459413425661108696202466376092003458506736461667423723361891308472305833453897368469388480722865282336988883152159669908053861996987575106248205895780245092816424379597457499507998210187543341762916407660265048409299500290819903014697006477468704044929706237066548860596676179305565791845769218969890592703604868328255552201370917104925275044916158447428990090870882364015925654368603063819113132141507297766181006514819359264580992432445834027325652052121817409068528445266270022229101383664922556140692919872293301715600775304791732168874366835895674329393657149039187886901685097255724943785311912948203607320830910962126725348339663751444781786768329190107785957508793962792806008487873747303842421977495498533668306052984398675885653284978991355870335549624713808693208861715495298694310132908440572761358570021891047723752395570874424826771591169610351263277877238698060915489278361734259461095533449758474355817321740092355410449662498116179889469477882606156968361293311260171520726400669449757263185552567214733510899964142955938301842313122954370380333191671269400872894513759703375957559787817821438459886901956868006316824441518258574696459755062438908207427566512866259175432719305020644081810249234044376155370663996621291775255727338483040570616194008666504699890317670061017946588262597374791641047260146569406820022643078946080273051307811962026248395369266979852574316315043803091015989708122596390500239488164501078948836558980311982736186232373102559042353036344925221906759515661666424731683924012110541144546104571677959015769931895833008976494236904349884799531359752314393034698556635271526505707933094062929295910629250472272564556078215034819960736500598557532331039303412873955911079719257169812580435184260286980593472836723201187870745752086907355452808888079184702902225565708203175357581970852132587609890466625986486922123236261035996417834035907843690068264526176171079365146373256135213155108433500149422630207652201510271533983501111701295990705432817450068663283527522369169440486073684826618210426635209321151550250804275971806108323480614266298465193611818559403510134091909525394745103578528351911832571470669953678917849162160967629511978483184848061540815955379596740889902804627201390713698623588594509682775866507909252154760676961624412752088343316865373430729224379560298716401245110478734423603075903216199219250943585189168659336060668476407577848468845958243524517627048648633283995812830443042824488034204451680469183773751537386050901870968614638325256346352233013619430183128762045737875009425957629404300324770845464124105967529420822504988696695206041171441043750563423084561449409086598088934636828762212090625831226525006315687055702538962820458334763522150272863098258131989580635367183572813036433256273186242038533360351282546969916393100473929163620595518740650326728235350857605108985686600621293658429219234609617249872145191764294245610028906218146086662394712459403483633193792114618692828216577974528672702373462257997941666730181421632422256757325560893387308621867562344007435457408010090490551638276434107731227950855888976898400465691982736192063870044957423475518621327474640751277734475437096749164662920435964665123053459049104639529761703727339860545641237385944492198756934324097474951558182943481792492585633138978971904976642747509413320934570042843804972149836675974700473513931501359254606041335568754339575299517572450050999226425076215026421129881152971516008225957391026812698680395415603841554645417857277448228699609186171863022689834577434634531562205400296946420060881382192313708713147839644722919684956096096763627780029289335676309695625432941616271147956877466991945774055390602056879417656188972545402274642126777891499969773524024028475675244415848378002626916435918499034529486337581075444323538854747361060993364151761736578777870175041651782174065616208896937959132562783232102940440241152918980208443133275938619308035664291442491650486078233420018336617961960236579158830100350780973836491612685440010515911595122637059610980676949480347762308592100864706247677767130402903253305073016368570910932384612012287481916108702249727821499836369298394950217456975491114936095735437121803005445394385093958019232448688972525787932561953992718780447284194744381385578742593336755942451762452985626570037162017280739389107279786126681644860313908866952137592926142532529134931343725684726738278069538731064418320824025584928717225442424673445021086018034218682341164357253384904030323931543477114528332389496790894017289366856950617851960021674651416680002264533303543306077143795700987437754141491782234001807299922691471280383724640778633658960570415919331532739769659880203118552787592533179169697984723509812150533131111011037587353083592500411382644576810889048739713833924337941605640715760629800430094981736279623814474122191426161282410596972107398940473272147143187658348358576824410386814766097780050157744180315035566038351723451090549674713511084189119234414408846204002964469369986526341878367310014454457444344806988383491957723765463399590672666595078484260669867539633595742920242821311227084703284991461445681816430741969549114327489153400089885587958486450190762666752044532840627330267221878095040812467288397466722314610080091799300821994816967547980574314197112144324625413584141118825126763523820988978589353198140960052268393555419939557957151088686540702580500713990497727866336116554904918475089693954066893752256829201799237103312714381895052579175006352699319677270792634557520078170334851951620894945347998835955774444540718491205513960757528923842776972775009689963945099327635315870447893847827982890622788666918172385783227471094056626158878346280798800390046466991958430921168608312090644002527240808951888951969420082869351331216323169938567040285159645831359703949163247859915986104333859045022147591154780025615914674190828863936330652888017795514989066267481994978882364594577341388750194433277656692825363411571736553809682008512318709939643052098466861838713408705128132931668601596844538173353628123969222309050291055702948843606064645104496278920329065222133781364567943679493471944211208261509927055873613851765978430755980869726880241234682352600956499366065893215941164205458766465243202411759593030202287318188063022431742217127740964166737815111588020823637653912372818190643704384689863331416888710170556825632125593173470017951901639506649999743685578319901676849266573242125548816338016591970826541104139900547809568239235599665088015474239763087909973942162330090357719831258983701193163917797380169317730881761729722074326465420119490840070011803710392252135298084293607351652960902850483015235087200708900638805595915516498238459906155591793874520438910060236886695711545336211333196137803535638159923415866418951196781774262711737274287889006604767086694834963911392489154331557957121778219680664473704330875155552313597905999205178044021226568783109599491420820851235990427481811918261100118398395076154316752431762218989837023481606031940833648457014133496656391713593999967159529623444412888187299444284784579635923333861634806939931204633475942119919692467946605533044190064655932452135478912329979849450797743800134770436370891800341179443117886158443055276172397603035544805121831214899684640432641758924917669987599969642058311690419240291054484411378506326872641900963817743828221084273121207511569534332004630334071157125929484620841390546456419480107304164482232138270145898872177004366578106164658424000543054330757591160011334206752126896723287167357339232255426423124890678401007217430666989834653051763384226129130851240503317683775720844064580119501133303270714712100302539613450748139451062198697272216128640582202486157735013703180387383965694511623153641585618630791091985689939082418619208437108158863313185191255453162013067021017317508938201022834438205076832359755916068257543151671230439967032705473246321439470931168344402531663786443029656396643518882352546337614886442957726451132690427297635748738946510161649105938284810932780616315327641635396413362582580761771082139402423182968621285305491069517506620550760186384882233737264629455129577855303829395533176514598441906723388726038937061051169848603074804875219443365336692076660747383652646524558484384212168735636346143216599676519908575823763264265015725696164729283422276252682022395248820814927752108739752676651871217064086564021482636787809277820115002296780225044250141823606939325858473020100171129148277158794152912602133460941517235801817321048387524641240119712262409316084731630979846118751570423699238341460482172556047668276668694828182777591950566891116523347371362438651987915385227928387400029667370578895207289319478144215057394103566850714196910109198460966119270794956388668067047303365846184590252174873629711308613976466414552870048722837335852185013058452829947326965538889661283170234405892524013826446659339559200210936581467519836266504113595265489010605059525431333322899633222466868781555760605326314195217037425770449347744977879587414363544610984944539492551940915195997681298044868457329679644092564150912379711338091011153948940576859041193722837839818220020712938036808712760218772072141939218785812577066487837050433832556603230416942884185484427400786115061057191769287716889478311689562608938363348910884006196172964989168330898477153915485969072200873465305846570620001836545277113441759772249215688791300905476751236670505084915445533002095235142810769504374135242798483335309191190610525637525489536371198184391134127440302815501892706619338595246982854817611951994899809987979007834749877261738344585549041234201658340490343919835116000968774565492613177500230773613401170069029419087686320194305949409164105579627391016263061387048851914310131610562690012096762713843531564416784853684378934990204466585894995774098335764751504946574793409564662171540670033038010778850972865928786845097021040479732754325679747002848316484660236601305287064169393206858748932783545748247648818633401386072338099765556469863618572864273921380134625500625054940401306081969868696991732444310033598650878106301882391860014644613278589426430151729941777002557006543161996739249667056607417923656533939846014008639623224930316468882859806899015804572550160148070029083353698513931432018883875920053826812724846710963167868440710460573732689101574796343477140973923212557834589374226278825673719054202527006420743075014673121330417042404546457077802572500124904188010782996891104461767413989306605410777075830380406883725921425774684880141223472629119120290056513488182152870054877356944436005381989803634563158531401210771552996927057670936105125482329526153793755184569345322058221647042083723260088614886424111839495959780159858299477607579536328583773314157891686741251656074519569740119375616521388288010391172882447015368610106776841193834660984258672875820018138140253620498538036275446448850129246069395659880007744544278260479694579972926248864357648837140327444973620176486194194775983730149213498564242063723670349641744823107981465433473378714924982167998088058328689865635068279640015483843718703284547284404511996146408720531040143795251754521940806525565152402530047972517116009242634186787403969362596884417380856740128725404755904489584046679141065744930875198257153495828986045472328829873246379707344814926584991887913353263890301415314918726324947048100011642490999394354596289846622054003267650400945811644122566532167442549181680259637142627848999231519357274982094916884356052373453143398748201797462941792055533692617446898853760434611772095617112708062574443518224556757900862127568433510774138483062233330887768088599913195043924766992484227756291047915436127664097721680209790953163316139369302581608077470584834428005756010958020936879986194257816563644802292887185451595840157153124368675363841098902504746750116832257354382321617403071968112057274022354864670467528078689427637706860632429600187520020611290411968127620501801511131924238606965334406598749803356763683162572032674488669095839896910819459817498793914696129944785943419916752025304071377394965915399986533578233090915434710463344338543480874339225669922308925312488711829032407348618353261126830574900312752889926363861957188473263561675658440359499592697960601112612813698758706759814558167337480908572314954767377481154791160510873459287010405215811166814017483995421532428498583619528439337892610205508552915448986299210261548155150317857406974379561880177159363765771030820234246357034565257140360321086222773054761089267461881985018328443158905683781474677417637463522526607036441250740734261318225886813014010618829440047210142827184053600086920311444762829335510152774568549778173634140892562630350169560857947795298140645304028921466573059773491366114051492251387827493440204767826343641542413629652343473634506102256637243916195474725830674333938338733792841681260029290386514875902910043906803553711305618617321888683680315766016161573363056674796981237761903376853207081003273301114062990966644591264538554927979163892322675161313018047954723110912929236673580765056944905463129970496139818213679103481736499754958063917709310156685339316538301303911520078853200400642353967008930855500396833483223432160999870605430357263830557340697368170690563961101149522488050715287590085191452825932711166466694502223480025533346668863752178488363681297870219280432596416519796986315530291727091449140834518800991745121963753560081531044822036356669284116502540191071166362019853561470268503402002845142486170630643873646974274585461893167135793605765542787433570588700561661951264423438546093082968139844876971055764622241440356405600211915733117863862316264851094912728534125677056916700745091362084859972758604074212676213331207948209871885600285770963323551379313929775077221961452176302168556291803433622455647898585615106638729006789711554499262634873188104034878355998379745516700023692231258170713316785535595390044201512529656454328033607832218269968828895342719062926226989859293248296493365574363663679090309111049513745429423061726655598611451132866036999367555522535680236959369611495467120220051634830540947685092476290687274716287355444540052326849136468771742525065908117825043613422380925108628964690009359660957465149724484510327045736632023840377596238965502726171509525020261283735725294911904102103611666207177696761831820003929616896924633348019159138178128252647687931417634461837106834633791131496543187014443158222429532272157920371507444978003781436845273567107702468993374246189004054333748227308524412905931456534852369275857603885053690122722329575521112728359372647277409224219332865595832215957083345428895767896777070303198952251023836404653443883960104236304627429999638920652395672387149002098351331564459216767285131303444277983624492835872223548013802081190095014799719865746735974527967919466718069742750786723957579703487353698842765771233254687391880880771575150515963739221589574431331648342601189689485237768780784172554564359474968744321850234718975005770849573609416728493163273383435858998832041706145477555169577777549546377134059546778066254675406927831151873159086103652114650230115300400857713645803273179744985942232969965405804885483222344700860533837073168452104870207156842207883474402428353198851863885818125004602551445325252561153213751251467687898117499482458051884519325727196508952767182682263739959327294145666115644133909300589906671147675768082952433849392601620697869846650898757083221019129093756350897474394158591937370717848647517934974211177974902065643951086723396031505754282078796045364481518113042553293301910839103914927880462974364497524110712003211997933922286882316782454195442051716779422567200085969835464261581234209838622062899405322700331812717707152026065374055010561674219736859063419159944182135494029687683115981814020255236569104436730548314575010575013018721517223718184906800146869969255521422926873860307081676464182255786558639369777530381002395231360450431526389145236922161412797233216993124211201973197099672788436867528067769490477186627825244339878219840155033928466886445054286026484837720239580657384941330595220451089901038724563199674342468578877139353940764299864518904675504549729810440659666003241856552831610233472757497744861233344859903125776643603544038649198173545977977788575947549698119671165261759555355926807697251990967812027344501931978578716849123981820402900635646863655234574071678624777696632963086771713184077568872172870240091125970863547668348212269563273129626740854070796350716601731199701906629662843297021183439161600240495160035476387415816753423197938415326492322954703763660926163606018403104777778370774230593566917597096216470509259856002137409111220800571505423095831470922359533601160460144102786779426697788748484016864923491083606517257969940150988708514270336392280855077461482546638473982483086356928131092972698391026800958978183372916674558286510664754426233978175820366867920507827538064755530048393808757945888894452625611926876412713637205442041988975628228683810114474611168827066296744003080057653960778497281010324978601339886572376762836261192780869025661153683283154022257846700692243398324572792356191564703337739221002614804318742602362938409736927755794540608789571198791033651647797516925944201401221866464872717747846833515520619070307385063161899580724450374385210942012364860789332165349424144470542842637975706221429828748351483380066888016376239805047539066016753534761625308694326246242980190770488421337493386545872223316327677738624113427235707788616020312616169754315019667243990819937173121623673812938487598319016522803354439407056072259705884740711961140179970723673815162372816438448006168158402075516511826471559043586451965500213368936508984895153815217813922543601917389528778838759585779090992186125185909020166576656130739851629162120039516428539565528893043011143215272094664139834692722306742074199220291765699272259705701817171327206024592379888121547232098603481080434817818751937603434297620392508353304091314228291863919413606169806786272947644645757800992337288318591769063363847960175958941714187830579611364194952536127077316929384791295551812409279655084942225179039972086372046584867624125117106139072371828341798193921463430045882621763705416334253095612048342917940375059293073377166328351395876392659823044243626244782075674243640054144483533022006185608015995244973136456754987920424194237837169462294525531711304325268356545083942949872221243716155999565384316298467792020999841141891300522063420425202837961079381002097419280397424478981606523457712368294900355663566701742586072562968767972002055730026420764377062924253490697429020686990779683743694430461024323181672466592232406822553538461333075221755825126927535737434117329502351369296495153177649048449562939728555459773419371901934748798926793452183546035147722822140363943759879646212313680731237778096674428445191322848949003760894620126034128280753338838567503869788714764564594701338425963683770488053413601968971387326699773015365098407858588919484447169426749170919560401681807901616142818366019330255553685047346668519835676003281802447784221230918353296963182796264762998062483631230209580573176148674370056879234309291375581771088189628770014872753189368852708696710870245584692697953361297527332435651597535870818547193991374845944926162974959881168989171992990865107204185089806776211634050046433432115215236904741014671881318684435604363414222853241748988030043140406862867015533645564738683762711578860486695933005872239385296247831383957261202790773785377175339289009074739357489403252630531760808887102262733010174096263077674054200815274074134046662068360271182301122270737844861350533768790338869307206197195271325363294796747754010301259891232969543579937356602699679924787973985394302565058454051012848696744010428470122171111632025289289953005148521083003877460103161731755363100051616632970854214156056952916187252014430227209823500021727634202790929959132320310685447498138624636917260160278030422445537214114809117328739199634953072609949125803300523179910245588240828066040854044964339581574155955729334322689994130306372330816303709757746794481488516143564569552631511280078204729722168519521579351837558550739951481668574448101412234085595908506078274967530814376102307580284286886698489562289633171937274552349718812104241472319793470206190633597407128098784734519872630888550247440864803445282860615604326139313521810253923392270280897078888051421796739680285260697442748577420083506831642411916961375830953700422967117952992270603362112210729052944987701237771424978364290077661584496179385520773335032858740683673754847185840036642131877586297443122012007142909235909362709838533036791113863952453950490519881386734767589590659766747881771683081821896158790481251349993206490558260322298453218349316256491317164020851329023037965268127204684485639783001087951090289161197100794095384764422141072992880011083221894188293282106158480288548818345806202023013255118666041175712020872063223855545979397332940081745874812528258113392737529220596480682125860472344148600212400846044180967642528127195215482818884832568246882223492994504623097013165633421690887974774668359386335839824154863909655533791892321571835835294260843229185596792188359526341876096378899818106576114965470086824278841421008404102709839984602683936239833225528702030955220180748551784711529801626478885046916652959568594180985771033455304711178405336273687323778815211488788547919866377612717976981228685647831852493975889608874013966901092707946340615738977924198905247179933112923191250884586916410143439316341974569644718978882018209015282106442890953856844932925403404344753928826585925731288054225554941536831792912631622318539969779896246215966141079433889131389564509515309321537315247503973309458563031566069073029242924655258543069425291484667132368960881639441364514426478943002224985872955776768901974651479105322604700843024230725231375208661505986659032385157628786095294498602446820631735415219074861827261796672187438829464897189733522988424370402670208572076197964673938553053580961002150421461116548125638395669879636122286593468317369026820201394595659024924744155570781329673787610244732097766456057855855652061033782338650162337981454006363845003824439067869544018164747915075586765927411995071716336638571607394039238160643586746774313168379937054693297247474902481126268805365766053426054293162181817262110228383893470475297540312964713759597399551423940478388646680589118564191475766635916188699512188232265194757025989052225878543442827457434980239804830880204153202089003936557141781552612246287961193300686086941177750939175919635790888380566153027843101753149806058911774700963628022730507770875495018158812532207318513112605037353107065678480878152598059878385452001895405140306956227171196271368392665263943675968598954638264122204501751740799074396231513559784859187515852711532282235575380961908722754168242503231564483263473331852551449159329096005503886862262353327590612117619581892691666771200595908234816920922167965019165219444474244335130299341241420869006645093103428890188159291409682773108636931117156517085514246748204847295422008208470410125858582304793563245704003218222267785565887285099486630445022460814562748510986804293652101388480110368962763706713925027534517131441244522722037986875282672283531903089959916931865493394230958946616879272575724730604344816472800118800360002782851490361678268921751871768537947261940123233126572846554700844335311498425189491990840610049249755070971363207009820259404691427907152435331097869513877434633628286284950442217084810333072209863376630170626990199027456732450053355903025862583609032299377222905342972543004255816038073903404155198079459117506732318085276038740877349134298056387366676165435016049865312601972503639409317981074569488320725270865501401959579886154991902325965002561765037726453009449976597826022439398066463084874356448323840271504605351779452733613715679537105334679930487953470333609437108146799666379842738493414058864608272312372552522407770301717915494184094624898055971087485148636204637799671628871321164038864645639630399729888110502773713027434346743634117656007220792132036324912002542150656843705758573408935053161375660272826390492169458519747433594878182939039545125983029220650089387680907011016953377053535492350547619100658140851186755572027392637356827180772595547401154293229712652578730565248254144121816195477838054662440041013258386048711419478572160457079175579312844567343487934252664281319934933852984321548103932901715779008038846167904737293650988907678317922730599760121663380377589021066356362050561219862230455322890762327469071047574505386756278075218849479197966854754492349900539557413419705653546056420265691394304818059636997814082553338442557951175835006049112850541960756406403856642585111843105935962254149824359163135214506957924380374701673745775051749003136575483167806025798139746259818722278556523885478117970557275335046873372949957499162487663052026990277789529524079125263457548406360597525201047077407118646332445512731856042670679426583344590509108584157846475230386757059182673972214105421755797301192648371487457523100766507128292333206043472256647045049519987435914967026984841756630416923734705836324811383281295479548459534615217990249406520782327224772436302367887288425411025501151075242365157352511183058681065797632186131115163229887562722949396101524487308390810124944006881174867310623489053060775996425136249252026518834934720345377143691933756696804350945400963892102421726944367719138717970278171296891832009127072768896144147786245035860538913924656757030975596667707284945591558441527848559487217228794213188672948119197915346788402369676079170865021449798146275893812020237928220511178924976456978836895274723920097869809000534332082617969322890397639232102580240465719252519732980359522353236049603765837173400891956033955498408824739030470717314308439611442163643953018145859584670448598697389596860735444824559889572921515108726882760484080066922394881189056860219090717390368284411591376404920060871599556830204211705715207622215085047936340612624849749370803891375708697925268500920625992472903845806533046693774035873710756022773604545940373339914885189432414387895313069512117751316380856421043935709070149916383916123078366528069663852230393696119458885687997191581691440236267104263492438912609007730373972948920464298733856233591016996716172451798989522644422468028598088730063324858492658718475991486047843323108783939337188252331376307533911260379719433123232108457577483523037955477947251375021301396442054849035751207313825067450197725824624788380312998516890497935520335117879213707487334529895035694782903565309139768753095200170414776455461283052601628568260648982559340492562744583147460320673806442940922638493661472964298534983087937861512769621578038028641917618760225403974778792138613377896990152989785214565201615824035665510120199142723148287715252368956419802861273017625378282124913364305158170440299233175630000922632464940727574955505254079615120668376930812952072881555154213474682280298036413491787233588175600783583148031175749552958975165522200164461676201018606753412932629577420062008274204665759329031307439636161667526721681070261272628110656366639945911485735154469168680468363051940802668196599918743773368285985713998058027249165245391806503660480214148902096575410484389058417584010414598416775537162171569292454941582205710454275101355595226763014488937470739192160772490109163601079181764414753059053945565937643024508213688479275192612755941959487012307534471661689736418070878999501341485854755166938268534700770788786993302135196689110400262118377750195192110295402601834264692274541082959827771315396335746956515031308434024234008304754740540280140138788347594328209497578334566150304074649778127772675774013893701809493459054743116214138261615179130177044959365771016033666899738756367133994018533222357062569559058974461449635947305677477250870309226703752986205951785275598914669465878642672804247256747690226609048128335637958546187469014864675283172456542435028942322943358810169422189656091564701946931774668279399605001800582459368735678377213858593625780021436198432341845071722711414025431115868902630338926105664694824488071134195686148216451041335930846871293202986790278999827771890432903535368846426752718779868165461579030201035982122298865802110591535841530470467743151203373983710172425994967287121072902845126450420220123297625690488756582672970520707444599812934514301221079128221770000741979038982684520162374516337431538055492482885401493509028808186042701340283611566128339736516053128820040183018056256453430378547929080924675361383335837627904427150889130225960122367087232733556575192410854854732269520771391021074456232648807163875942706024770952710804216433482348269749101520528167219153079607132021194909636424405759161894063540709861976883018471178463837195942660484660305281772698697453478820749900323935328793810290928741425680262952820749110963322212700815846652523829193702225106135887850160738398278470881232502077117198646549751927058752544318926426400528358485871532420030228443412971267565015849143244794616653748488049363871298235254986007234169662172629946993043440758889789130186596508765499275217823366791345454458845771086299883506270692144984566821295394500598895085647314642638722376525972136522710263845778185147741592616290380643244983940484819039733634090388836074439748287476492613369983523250979069638280318076388447467530433264393662272029654703817919659891443802012249099478258698298185629927058556384810708747191529327375785121675417696630541971650271574460680829721892792850202636148031092330564463722917850882391929446292196894491937020447096308145600636200449957358415735356801733997043009181871929258520609503556085325563847122533782625692132239783620715367709799720308660042035444607416712592771033696222409959424629460955642465072093235017314146187390379983282876188557452385956257247198681647469511002405345416222024068861642687410783843895368161354125891366907279873723032687468235120297805299804637085367394356160235657486655548412582403835813978673439453383204461180598877556642116966571203529828896674607549071645442152388439899618648052257028474107477345409180846777248487125395056262649944739440759171069188135210920218725598089106383688114806666666297953224092449118418083915666908060073331940096568594130167160872351692241974278849782867903721349592744543635376065154614490218722189482601033679964272978650363979413088516788617819242192350787323985109823207587621858990156130404738743170196614477105497226124526791242104580671318433598212617744815106209107632690117253811799524311551386912564688123650919105347571157740196896933349424033997461207783801880728103967702522800374897940725450750764622491486056497143533351682654380097877011314274536179523360855176743040948232416062095748904416316235120417447146677347380386521285750543147204141221182152850350137446835405995307331906381787577093267986574235557874585371926242923516324891873787515695306031601372093475548753692521877513537433844166502971490307639576444106082608986328968803529277309203044007272783390138800500340925064837594122118928608992114881810257278484091674116513498249166807930828131172656211452164168685307400268553879557033028286732791914787890252297699693059969353139065544272966041715109470108292093144754458981131869336920728547131304369972084793852414392521909915997459113823409778870484629649823577840679521043574570908619787082980115639316685551520699115801663926790581556811553440406554100010811459325930514002180193398565924036420637929237835275110512706820248197527798809264522208449391498612906802159947467399185751307652223312341259859267165635433283567361563886932234444121913077928876817733320601107968541484861754056844882672453905052818737233977672063778297567939268481797431327226299841860481308325472227978049410677415060901065545637087981702756054427124463781430690752467581362428661757709165082811006091251119937842512375326169066213115166479003380790901516987816972043507083658335263230581001563628897167048902503084767217447043396767731035513757355180822919906118456177048646075125152836061477367869110979493444814126211058140711388479579398706050164387427898220614857205823364835242566693942820278642388607217903319272798588095605736104842541284980908537051620268666168467297997334894874074576188572335095413678615866850659971503683477985720884878705101773237088554393336395138269485759331062171176915473348235209953556624323541784424508189948169407057944136477905331397419820848336004348318635319363841771024243778898916674728104659374151653687679014089281574804420703987995221502473074055374214930830987639290002508129016979889872909124040226059556398390038615209391884896080093917588086273208489171928889299933126470689132507809697754039296026553476467314406881906277830477138954732945188089556177603785164415097245750997429811701526198832467405115254662710420781034578809821569763425320853816495576060509672799711360591019838655452464274993844688261360542821404094955799268979706454728055699056467339287352194333608057019082121250950413418982373935739644594275079550725170316000587943796814666603836985400144759606449907942325460658985262196883086770947145533938330223823418624587909132081784640749785780540363291874296515378555672564008370746381789176654663575218782719703984070041879877148293633734573897264735204676174973952708369539355476198263259259878042479438041403670706827210777898902705559653897333101764331995904368411198386921771643318407737796232217658424116958321397816048401754718205005184740984486250428902599476877123618205731515951743138838235752655853460466802040056747522511743297224288309277549890801431864300018783383944096915707754370600058904401071353523101421303069524428871884860780079783402133929387838670473094859262851968749609352153123063113603800150460731305731469647643938047243711454519718069619801580651766337841882771328287509915379098113246066996162895904053542090782267610299767525562040821526572995091892932472436271615417755850907551947251366670417146547792700835647325674890097956413457430082469100978623852728330533599341471907281122250730485324086238753137737329688175808931067010358842944571837382529190651064401231261101675744933035552928032210560319498774913138097140914005494236565680495203792372491838291619817869900849002362513837213035728713771399307885287522835003248571721283633438011742029612425898911734068952570694548161962237030520589084707550168315612080797674089472898975043595015430042560828989862852762787753995435323874672235231401759592821451653446405804774381782563066816881953090997343735725805667255934921924554898184888865893511715012266885213473478001111877982350006596638134270420834019594639831026513325749259783476116480430664336426510252773055385282726762460921715236297587794547936108889931447347570499834313631976465253631155633360819815091452158493081492946213789884648410324206208182148602471294596586211067249584481918175196976446583106425073349791164616223177196088881997400743605285171887657697515459941050066962790545035621383980794958249714432545689184616809494572635740011636135759793613663996046977393655924298039544766537001823631397764208404942496483622020186584601508981986616452051065419987696974687667677161220360485901025711450393234333072886925091674386455798337887070267480747909627978494687521943067030507072828291040779046301239972500050663410417638017530729080249612444626604633486877558783615295199760991003782475103608718677541726006015810109078397099610409777225497986457135722673275809110633225733777328674766581251172742508581861369141072592505597426397818411113224931994542459779479648573021638120446827553247852592697468584702707580121644031236059204818993510613005277001355443476274754404304523189688616402617609097786432185518201871392179592186513036050506118793149508861577487906304004918234485220283410266352381341011676915288549081850779936657978216135428175623079170932342624902389015210272159358653999543846074834617481250079449391308229670943457584656086537573640646083284533297885007509972403153821597860016184348787874871093653754156635511792250792798459324843238260284288939678769858341418468237765419820252569748936801355743315863347619568203507303738866461102030910077675737569445778850490752931869207573150465637616134568489163289627939176902871095760562930246587426925403796454121123291589940145989850154052560661234466465522130423690110006435473979269377914057719524127203096059747468263302127699405556876940833940672277703550370898950933567256176065203036521283513390887131531469290406171370196063284059505877964091916756669056990113678576267900149316103422584510516636526329749127976970038167238762503928864261739404110623681406375691614921575552942811519009228383429079990692371945103419658629726769682315558194224913087208899347705245674315486587026783999279627894669376625226614865046926663827553358114248528054072500817476168559902611397726418934275781403256073608702333420632948825923845627714083278498824993704189965162296106359737161003812144697839988552029652901358378398111655539702408707720812173681524754835204377827007747921649787687096565718382154434866665941166925678618782899723805880481149476116515858104676806093110386601758689867406526616365880997537508210406301022350834650921032816214753496592302652492928782508838775819270807171566089069796452309836961842624438607877980517822629550937593516583792997914566918840912171780310685823142889066689483085536923735665014900715976694015412145062040856232567102950319808540088608410591313056784865078252411693122016343256186141874327259152146194205113661976876776620587647999629488518483032926191077062257779442091137366274830817000902912147923109012022347256775669641653033845213845265970924612508208880666220839643556949453671212718010161961878948205977316457022981198506980926641882336834296235855892993153837192388445063248546882066511737018091779772872447208267127137344004442965271703146256088606399910009558598888517282532153219517051975443601176856072275172759051540740379301420563376479611015954062431840844584338322409429126543028955606908920801000376632232792791635230821359755760470014820894141525905770776399351298553560661746468885743473756229893515284492572765920388099145329401988021735212479678917252115214277214112828329495296804973338122162473010435035583386323622624833384778822484933902113172986732017132971396651583709837092961105413675493301726169849750019280325940661963514304825525036814456650890533462648234908833325450907552931274002815694159426174509389319183512350266082319786229662396537085141254500428351637387642292304440298104075302650349948013042995473558104068084351172628058029658574240405670961215108536717110720972157561172509465380231740400988707440600556219126145493584544091492669475189287709438808987014362143327987506649798002984180681254270727573659581793894766682614364358101234075496714044907341679447511364741112226665412360218685020199524272476040647971976233072397062205280407735483160499079802322249025766087250846541789813154669254007639870854148153275052408043709627640353463558356227057111182919646970510068600158607114204211819624559563935712896158860230587376465199145810476737324921737756064906421076187815992280865612217122149488955852524011348546131764228544392507603020507222715074508904936996085189212251542418830348695004277371823629808411534566695050490213922397762859994662620466363084069257051155191985431500884518358209219863001114413728732700251686274592277787711674749790621485420524453762895651537844232053339319605552304311239783439875619635949047357636150453445598101400925561113762853585589255762984994182681168593949892605392900556461951747719746792092027133690924956949019180154016589468664734228524527818541157030609987244676778059615059216448041285879786718369000195369188019389323476891682656742795290541652308438813301950472906174450723637893931033444736721207345028107262921692874781004176881285845629565239017403538693736858656269597901027965257096728822168740730549681616320749117681588401542580796300332179590535974943753651389659025587503438448223793224433918905329550943238021910396845670255795856307587607526068255692848341304812863662531261817737006917748352109395078174017145664995286176417249552160626886748744928552155995807731837713813649874935155618230493898355440501381906452669022730306290022704949128016163364843848133316555090106197901066863270232540017623819166312778963041263763715343280593259056298524525699979155516471964124519872208590301648665078858528958693565250090034716856811153718012092325949673263611845672090500303054542983318408204741645732590165825477706603827915337590460350531928431253148746879302169572720755990527593062833058105503858585657012240385194741953905674145126876742228102568019949232388044798459663226520572998003521415804190918860226031566531038816401014666003682954454084745248393285391004168409608318765902228136404160524844235012641561054034308991673397956473515315510855192465108122907391336938236156284049342838335513830409303871974225076397723273313729980591298103736214130019106624663910092712169891395939138556744171241125554034210327980835416215731852929486197869696637879160649211998260907687000699612436010800447970703627138985793980601142043545242636272097606304209598887459907938862390658723547996526036512259658773609817023193649178347884025333968899765393446104470632768963938104766202080268295219629304131599413866093225710304538311039161254030599032535103127682056144565557791414646649343800853603012045366865904833008987399412463442084808676440263741734434959603261119154971790203223475240264605982602162895744621723418450759118119501144587158000708437503004205839881361000259854202146943196192842667831889394094560606537443586529851793717032423557083196201106263463128465763349239694745652640407862444919666780368112082114565155259983028745784809456179049501713221226194783028083289035461779587059119888710184957845123474075693914429042686331031875051160557300102972633590295505691592487351809461274745356050802264471486703876469124142126267477167861003398546114461996053765693260218498280526453698698913243564245040408310934655070942978693822114953175527580262735017033574851235853860287100032666036569000274979429803887221153002028828466605875637959473953258758955245327176474950689022990465120331575484006327204816394248526424575356629047612850010692835100232551213151363456655623960612754929228147643345299602408073623968439851214291532376614201233975523317303849103641419145791332893795787962129796867529220632247599918456570812829574925420628259689263985696470327136289162872865548608572169789121410460293441485318112642492346957673533161742578447384123422741422162162469491413765537214946989444247222470311783818276542527768240223195539373868871073857263813541474201652108698868651464456440816604263787390391230397383355929561478338281173379667980476597816665343870642893098595733766418882296477520796362860594740067030620553522691551669790388196965257933315042686448217724489400049572234725913322472828624466664306704659350431477179116467961208835564030721122967801124277971517976330331645733198663414823592641010381596468963626557313235816294291321527832405260881425133400052951947461565352573068745649172420271522930637357308407309385962103286755920805516731411331679891277019069768312481708423263087520716593937157608268660889296261158036797187799353821354189586587054318988639298849676131676287145589960489187608044446925005663026673063375756729217040721875956941071553934554705367193467699419775802574743416569101396118324968650393537330912367099654378487837152975710049801076632661852313804659118588119818086354583330241733426088088324541876285758762901609307062635129852999218705205571785633822052701748472126176731974713997142460812012870069095897011266316212919245849827394991520821616733710061451851421352775049119989812401610872549869303258416267261358772364647916599534050704598136664655160426035436126851959776154817578909457989018734177950023183535874600937394825093113974102409957424675094382036062493194591566437503194316246322194976700214177557697231613993680861654774394552229097408318179081694374443541295847259169226802532092169745757958470526000821659825170247154971608369073908144300159664723382665721725640448113731278111869074116978543442038402040561229907926561339410524133932539174757175463991236347514215539321143630616156200106946404090375128462343319278273112789673834842198965115978426718140371992754742044926493674633937222810615235874499014715002867783885425793537493232507085023677930644362213646233063904835067941545876880113714769866400778836701488995945612815867000394302478305331089086157036054403325682302510967229638205583544477568135348766576169390984765002640191895808414784106936254510942734121657261940543801172771284504648256787222187009156932223968384723715917747512711484760442613722617797378707948194749601914558108640199602479337112433869917060472071001001481820917521474623161191756775016358262593525001045207945999237458300106977394521848734966869687371472651453704166206111229113308649377465986023152833421037731878036720199870764150783045454658160215435307620546386031952008903290297678636717857320460459828269244507389215375740647129708680775909594502953035088341156384162237901986017926779828943388597671063317867061732679456812694463654785709805514643961672977555838153809920204111750972656456003525980551303390968769296508716156207867940671405422241401281054239085879556016584882857594410329550379557169752039920685311755340548849753718768062115227358063777391708648292966988141805180226723661336236330390066754244706120717458124761968053180056082122980722779624980355104717645214703399992902810609794135939838395943425947300720566240979393751346591426390754252561705502735157473267574510519304093974310222753628352291495747339094549907210876877998748901148098901105981384439182523255569824225875756803186959459996003806204592357605123989096211843933863584985275616065879260953097719536148536962043009755231441781335221793045963089815867563629717775105671180588850836164741331585045117299218238917393245562778973238959246498078086453340798404036077329566523240436463067742339765105531710131753363456145189387884585642583644682640232082083573679275508241953383107156769275180980220565476132832286240746144283548327264389719958294860024062663058166295030986150086308386820306440923739086869254410938427633050213707067433972058023409946914448272449507624623358377666338967944393186703739669820106107856227227708155406992848049312922876066723825543615753045152583594290574143491323323885690507143253510701091973893210021148915606558649476761758716771970436009834397597128813038216846097281980006589118065336774843591317923332134648219339762973436742123491098560871225996013773063076872614368018728735036561216283823289849430984741585288556053168469788704439534512513077023081326922433860409918819630978511914008530768319359927224324104367065831053181295578773210696856333956142919645505279375722536125822240635962088708150428033762093060099362081065205869665833472694783949808616984689975553712051630730216655625023008805090369982377123084484165727572930821855327903817190951724851514260624498788670539815479811621121672733394655487387308337404260591502884909466220460601956532599436701359456804847841273183025668597827655968107620674469589917745408542853636853923594986906451426373671519240406502144435713049686318215674440959628711079163497559298625114734079808831671867917740707166395527341605604160094386519647256464553545976857210880720241057361912353761328037015735066187022256530327303490624134656490353531380797513305011574845852834536392038914003952805815353114662629244833668260507189510838703651239986875226468424219655966384212321558696132476397860485837463229734302905629966834736437418152488030485498897459102248521267186537402970458796758345577955666764618400079566334670479560965386411923113690622894541415189483492012079615131598325637045763427409759670368819313142191002567200304961295956352326088190677917478698239797952885545044729712466881653295482661882965869144604438119790260044348870465083124332175433042947340996575117253872980692600290327321919387576565349610077890652241995669328242193214567567101848571009280681711974599606382917035931144230418373185397826653484319109946363165586962460590561801222898591039027093182886079914576267989568809508817369332861094155326544682090248407739118723213560456221433031506126446147821852188188354109262014594382526810868838448196344674363211757341683437349486094322591801125988293198868555938471370713972744806398564019629156348132132450199021410341922037259346593508908333957372703334926278673048334292935436522086960468826451150588711938902755715630274868630309675619117475613257847179976514890110861450774263446290829298156471817480005640802230617669131874772183604717027260036740217429893634990863456936685724688203892410730481240530324605115204825345174252187038701541291150496554240672478957205876706464135723211234886872850495893522779230109264308487040852710451626117639648520088023364088240348933340610090334191363312479778277864708045226757622240453195363842492567463192209473213836321852269696356003573532641765541825274377267358513696812535543031309233180238994443497660648103825715025808476617210148054369043039070190315419095064338579161452395448276519127657672536814841595277441946232647117927589996129258201403171211225762504685749182346950170389146666567216991387040574189700911442044325376528693750587068626636576133461913179761282768255305575037821273637049515574599173395576656386552596584747742922018624106765156394736677761941346456998034048244456460885658724266538297005085430153681025469649407938739463766980723698190715784428943127372905745816562321062137942628827255285798833213524163083011548125151666414969546845939444191424424137413713068937193879547097291301558603842297654214292931007896682285727264900152177502018157037856632363356561804185743604998685645255495092987157109844314687522750637322272494884503056230050967708986255318355126980978272467010744588689065209849455310515024161227249843440665310457813935250722802234464162035955784637582717528485118047059336069822896380186138141737856551506879543889769640002066133281628583555502490697570641165221453554309160894928926011766421214866847462629805836742736859433764125415025759868142113425226024833502396493272821461554297831787302342758390503042175174543031136803693398001834269660093201513646461615771625980929389618444407640904016365176692443376617160438077049867048300569947146437607867614926398525030333759200788488353873290628365418550752002571511029945953452668692976959302746112572343018634555257812396284723182036018985902509233766244089153508990429073488860261394599641797560712044099888168591178265723265762473741406919699654892841825953710194405477255318952575623710519544103382242402551661591289345552221806016059283445508767221052627068881830021209435470500606929965736907010739087182350147818931290054646389558457189370504951821406408594067043934811238238418922397402340555008427299326927196922825265730822841881350453201852102538723204134114886623738328639022936276353196849366143370206621049009894780093506398103754430220865344170708882967246183097206254042271060938448585330862527929328519263344940753536491285048987751164175348145501153886283511094029751849795647628508587693243298021955761568026241139269392961590753434414778060309400377387406608934112016849970961218233579304325612139290715200019279319822807115854706654001398999327384400679949625054319402521401430799444363270009280539761130473799161839492110706852016996476510945328769303995395043637954080234802113327096657858321042721569546276682859502883100251042828983992876952769138181821087966044282677655893267900423311981048965131794464413442925142457828040925110041481683864163959405969095131485168254629595077765324463579162144599224546913133849411180665377187305019789843513239123493666862621840289191731479779403228652212855882742482043472242672642567331010982033201639999660840646835210628897476288113484819564936381025425649475580141468907081359648006109722759015122292422320711252953798026888482609371192978974642640633718443132368936301280853508105623885635875629443600159116010875829980180844051885159835013531993853922117084430318927393630364769226816399411486826525500899916939943045124588542555133692430080088272965137349812584147513390357632282183178370777778164956862912049083196276806681074435005417499119931915163009341082663751742388549902599336396402407259780965715237303783094187957667915892958244831295327098121479353592297497098595467513291383817291353028510642337763755769054567256431676849639652797515080410482411039089772982139923564215065723523359698108737195675908113127178598096896969870452770165031940299268038367330762362619990968715814341866894070627578408254268693828628208593397768303890207874337734831213134762754954946175693388030207615196126002367527065175585124829150225006042128232485802118824278402844404501422641009331453176475939008129765304781878517354700009712049009007998673968511320121277718257546621147749253709919439973722017683147786581983622999920282334915162262378539127712200678534428828907667272840190004098454545297732254568682577785072390143287735024689516026142770764777144436916833893171912359463854052438132456850084912023911652653005267360400298583376810768409584370731358337571923474625993037174022338563276434357444037679600282997397925428944111571595072557051396493069386518710258219168518460057888365669160516439398310075946517609543983174288853006824049636488213739819952280938007059877281929511928538051196346190828063621121312439281917204751821941001471824914628460523599328854839128814208293010449227700780422887102838284269726285092183202102447317316156830581932848361011506170942574899206715200947928864066553221926928998237593376376661793839342284841529759713966573607865879422486314751913933797513267775389942007711453360109989021210970364516133310158776315827694501340396563327264437656250790536313824926931400030603864539450891702364779328036603461178911501224750395667190459693459444375250202771712291676372640115234438773665825302210097714772339979233547566552043175645718148070027592187080764987360039629213725764949040658520333536790067208727726297673197717943113506231807170246182818177803738710014650306117882768922975780833616014608494594544196187440907305749727393747063921091570022082349614227879010876605138776023546684573389384418027214820161841518710010614157428908976139233754696600578885884592275917806464951249873970413284003962548933902251911281127914917493718527192167946849430550961859832838294644362408532223940773006377413713494000952519616980764588837693935784787757369438813674562933890792964056872197726315272413586802679778882822174347428457602672719619446580479053338253441695260483298688508495627599742483104208009741142782304074355041995615659662803369830691866744437832133819891935978313499778406439089224621247684708440675289500030008467675078620981104750178106453579366748765829675328595351899729424907022043543989198472151895217921776882819279095697299389803267769255737293659074606661406418788160738564394774593073145752632356705154690930139973657454620101554232191008899820061068953703745808333655962147760875713744558785426430691031335553735569994208280684947895767362938118424139104197499517933995214387007325149573678841964360690480493186166239933047162842993666491576447196572823638234152087739477462641735065612256738163232518574069643566851382404280134286470970060175194018645539767826871251625593647159268799604006129878905710313380597535457248438997264688860967956077160917961746157043948017735293137799804611815152922168974246055937714025406598037887812499643249816457424907376731801228182702645624769097703439978260592363105785839700528205897366900357118302217256694418198528228493715591532171163406825242538098541942149876805885958448556388512819239082070035521317706539153772232487221610004625489408167993595912713931272108053464610386562696754102921212026713219547995366860274435588566100703568437210626844544467011002524744158397561738986571681752412957062602733929309846851722519040481500572969408936416948408281156389170243299700371521378686510252723416569246774572151321795866163240341004635976403752522556565838756789700202991772105425915026030337336318691433531375765844341042284399903425197359864770472557173902004051808812986308815881145242062512615792875829716614055349317065218910873128441441556987649143964668739876859910644844452449446043142297060200331733777274666671328068311716950042344787841090361202787977629024592754583906017329876994936910472695518155104571769238956222930618841420278403073798076464506831974774746414998002538236457339856628492315685778966154847949405289427939531649108260633038637155494528350234218490220239033098625039112438088909535059123255362519356220667438451481255738689564520965822808499910544146469082780544862647561760899721070953101053306102612549153566497306691665233408491322668055788353931099256720123592197418058180054887357326861419241806767878591315516196315606776728440278947035718630278372041012843865633089711776666513764871489530227903054267644169263590025716610418914972367323817869479833236708516362202495881310363700389943529203355750439090851894751976455109573856614118405617121279573269504823660434460765085226513848536397487598456657901972664073292197060882405844378613334074888493246133546839744299004326954151626630507540971428555692472131735413525096663559957008414278233308663689635266211657426040256773774385233910089585051078895915759199260109702772999987354537936178290426113200205252905805822515539713479880526887420479249140422754725404402561080169434886781662339547481626767156192567810688133964245442236694534125149018999590934430502910890038475945072888962669879413327903171430391838832733456524864597228003472407397556132322230407478488051391226406717798983970283624161450515367326276679747736704747282914103836004460682213359879441109931155317428406989867156152298696843548200981050239437765915685064661063383230610452329587527989970315756333619386195861892698260685724465711495867707432642723368805677600750739986160176925554074328149180379520283697679594593809443117163133188442088306262574747704811320561215548506156029153032395706905771747010804900951352558687492441570633483356827519647975990211109698390033117656199277675841930169316814941925324144373704222461887619149861445792428724324577078143289845837970418749071175850934600706026401916484835295489285196099585890136055871855435510828819403314854475575012890747049938043210712658119591397658233847740138131305264897846007338997102272436754712487163452579204314386748650686156247451478003155160915547107259581783329487231698586344292993056905179665276840221621733581058737562200923397144334311258574800316766438768921922221327982878287311573955928010043279431720950647423072457959837018596474164922670510984828959242379857116941566414325438918267128935435390599225205418782253438681652739858688435826476854884188920488865855785108147782546779575371871508810080862769771503395159258811727115062663940547418827926617852392686699709751848837671440355688458050166983378384891259871477678122008652291427019720409677697988551063106266970711119081419253784732901335835708525299058726411291196664684733195249698475583082964424789766320136358738091535968312803765857275689575038915473941416920566245867821804929027420765265924622088930289171275914983942027273194334046187758029243163568977408145227294981082223139409882756916955228578806405336124075071061998686869512293724971362495681737677309404594263354138755412382433744926831961399207742171292222505119044434785437223927010973642690494217730323517541124973530893465938878244340972565636748317788113946454224924461513035648167332974794012928842878447474131661656928899561771984948377481524722206413758797217233652295596593702525433019787478978359456849477600437828459542141957074484159527671117672940853521784152245187719127818592789493963967074765001489055149220312088668087137991116853308510329963952650285887190036954509067006730426584410834925411310260891667535472578238232458450218359051103018968229059265716913484562249317737773701929203038239323847396274269356473793994534236947808799345951041890998480876752549622668845014506102232479125955571291404239479874042752334096314209349463807275089305359101274506744213835865901093464249446361551389778233333576121611358029056370618555207432363839375519142625722786307190918173400060817859077914005596248309214242208406986452138616519044784617923660290523665755641563092480100262070099815190974603482479048115074224318839881095654069467128924101321527388151135136813251891668567388524890213501010121589466281733646730290371497010625055052803753899043053647795716879695482359985616461698146605769172664115514936788874127985153161730185779116790779953073804455492483529340812890876768859346143171705958806734183589496271605580138018647783721482680920968791892534608294610373013289614521677942487400939077504337685396372680432593279162550969374099451825840660455136967704045507619623161950621400598668011389783373418390018679776549947506897399108623017007220039485267256209294788631486154141593128381068190858303806886167307322936481011492663080804849000579155443154938687701492216326997603458624252518989535437236816792494899989893781572541779124172449764137865832168848317618822597709290306145391186622781096959424270580877453830169612083162735514633540858242423438631491431813414822953528885573411265101188676490528650612113736735373656154212851411975677732211812916203205095912005004789729899691796288201571827328628944810960540720843149817801364534414338422168144655365247463566366871633161763495005688201555674096427969780176682805787384839114398697532150675862172344360454025238424661915805516082908841336908902472208877404339588733970599733102345816428236821851156221291670796568605264243310389052003101170886076745051394368305521587518080731939764541255563676825032360555136212662869842931300071722056504690477472000041989895625804466635504681787077844730146696382172186750594430268928993683561036873803377495881381856232395103920890092993950485731001523986298382447272645579672653311055018996349459212831284438628805781341909211111333928627390999905541930533018560274177186897042308409677177103306327923622712072820825912968278708566624120605551704298427013779287070225980007513319222557799143322220954190942960614904611546754892412671826485753112811549214186644591520321321305596334018901401138620706613705292906716814142242775120355752922002589156269773600121401352820881613824391778461506162732149306278147555984259000202660040032406308019061530707899271356812545349527207629588402939454128215423438520534322691220230803045582129943436422571324309133052395154552916696978852640022000883660220741861808030392917465530632312609079261359945013064669041955157705429134857300097576409577080673386558560863064287232994880292185145602874566366048651571104641288270979104276879320286610863221174187188264419318894657894952043225384059257980524311242308765935369867450322004316487772947504678079750073453935298279431928077653724675903544147977645848337911416450546391155113015311595119834076395034824793721986979516601858945768224878135793508539479703144010431543243609740475153453614642403254629870154773531307602176785465819791167055239016591607427566228616087378729725333472647916865522491535307233948986252772759381242326462226343232706690529298034650606056175412725181877843875377614282335463072955547784043805248415948185241755070344912889501206551977554498303217234954422896001903487645728889691508861568673084904674092666052908877697880021839677628127029087028278224704827960769347045439463956516112105352074823808527439510003119242781683191611103591013755937647809816604275991381609622424778591104162685303988590487052592179966126400795250908083248110947272662193483992351457140292179464418997425661397474512007796133733663747979515559248187701630802793462530595305258341735833286230897371786103646779742500321431502018014504602201289748605553109087202715905215872140848598773032373370533456994640015325988866414379288553956096262566729865822535781231869616125583627718922250922595750061930439905072571693646594480247339960010567805228884719802350193797551675535683994697932356097250930164840154003424396567820723532726702661851821859913278901189221435781899407791790860729478753988384987179635199127250321663681161298593838183861873435317290437707192997672238343528726573323216430566136489313665469184485118315592914523467072468514930855361811866942554638549402103856009584781537486209346537698213549496141471034003273632495548905652899963008234367689650837307642162258772091461823827297397774499067492008036241851180354013243979030731210319987831393076028316906022515391930620659276774455981973456070154166827430158593997938090172818680969801234373556248504642020598161068667656490469298108353520292374699782735362188546885170291779990845080034664612918571215502393735903306860781439458886185040118862645454205035332037143490921677053871331323664710041508609967591345532258102268158780243253389119763855374402878169837525666649819081909598866692226873706321480938739921990692424940461150481595400743959364071668835432253968498464876283448041306921509674994900691976572473945703162223590215143262047936582523189074147932496485857994792507454444907425513021879555071935628590265914123660451782529054040317650934794895712679817252195725425868642962059337124368613798542786611971887848767143744041748258735835943709971875094261613724044872697622103392697264453774587123004465031020726589871845730091112867347061467569459241190970298278621024568884358844039650327017987661454064702980550013753854667208378580550357514234373656644755004001850875555326539250970002065432185853146167583690811754176959551157198197356547234302086946564288468289263837502681355321237745091435305477631641899626764635921677916666072736056482079949760362384253158515042170764464834844715292211130251599635904413474133874252868730034621307039837416871032082020108154837881580282965609931133693465643816790479089931165070466403868844368409387269447951586367392648157706323258524164843092231729403006457709055309883251177203703892374597551049744615131477754684924646995027822482511903524419039728047610922743393625897987568272154047230508989113276271902586509909749307120388221357211346200337803063688625868386950370126123968393079544515648065083239153302549635193718732080107845831561444737092809816550494451075112548349624066220128945585573741405398926964276736929757262219030867671454219750171478670017553161207146091785259995988961651158693177107638617803222467285754072387138204738092911522375033835438508560266168268039124668943112322028124017399699802703546423200636703970503551581833441916655844870243113629768139960866601116120996457091731794031017531965858565416763512471719782132700929014415769215658412518255254599740467732711252729479357065404016173147940904262853717894877031115333101406322762241755109752083627609678402201736782931764255314682938632077237444307023212736449410400494611273422973202820306415193618310143917546772895280103511902557519462923744271165977219805225812183996438004847597534956423319075213074740578990979208284590486763976877875561214745629132014241481721266080917097233482212468734566543304944736963466316684922811200342240196260869027084277333590316448474189903426556852399954246180663072221177097980356186658568991550902395078219493692687342451621620654048789163840484205817640471157847049601033043075324598344551045047608926207569259895506470820899591282749208320032712006780145605932088163216216177518657132497236610523496507357195712621311096840057606877561094021883895872616736423707039932941981639720150637718494885607159355411112660371418963202575419326504030038293199540571410714306417282105481683346971577017619223107763987799049515551533668958469189786370108972841127863557942497214087995516217057166615328119431809255500629876507682363854124985346978248753717617724831753229209902673353045007211086682882584197450165918539927801057364529122021765080999892903407430940648017547296460739636914199788696762173013610048542330459615211636562455898659782251823058881741263178882225397883171011972328778065136720150097289057529766914802683622401076276348192638918580236500464828774591207429891714664212673150964258711593831968096293405508833169601788871312916124598477595904094568667523920951712069895445387672859712887598711020232204211868898656039162375062358582019706681906771655579225792728683503746295027109927228804087952188012224369061828041120035614264791733719646562550373172540404931002613332349004726198416126622472469834848150497978062135000416292083682095935692392135044613291619920192940194784036017810715769468338135543797271579594231359602496141885464495414512589183888662199924290190960942159036234515875215058979139004999933868162886989653162239758834544209267302797082576374119274688693550078015037088864186063713294667340160065802194882196998617887542563810788420714229613777805360070157720022062400070026254159685935852563449271981902584885138208818409061603135636549979334866793543347416670358592029795719879818954988692273786882674793978836683233433540668204183537149255770948501432641047584399951298890068571063740468943127098097767106622359686898367724293634968452629004750055741243898755731523834837238854290873779913102914646962794534374593665498336218581364876366548427203772419919163914828987337297146347075299001711432574474670197483900351389129582371829498873435158985783788730391676802672570259263508152055815750922946257195304027164942650224640636588926775359252802364648691196531625736762543360581878578351428291559816432767623679248403035916797590074123427330909274181257971932922117982937284090666056603731991674543903329918575254384396928944935997880916980983773760492688287528890747454034773815481476893824291934355522570832076074506750162969782408885012650692873819962184125236215349912059662960136644688672122328435157558373661171627515675151812960042923441894208828823869023230349852196387505487407691970697318301138728688064784331434340486924923052826471485538082540456109451489280914014658900973079509858584184781829982887216371580719155878140911112008876106227716681306313288943986195060438792637828389549348808306978633972220507600825481993240767489622330949241107588855049234550392323511620638026270357467793603414991073871968234912494790343747186917691345511087683849897666030299110734028330772250341457219610082648529612985129865929055834391171177744737705456566269878089973447985252728328082936494311059407506937982445603104389856647345398430809343137752954552997131837263692530740748687743460379056336839005799680340647268642915187408637719183414510989934537103552479957003978409701012945466601748200898045361829746253209650186703273859907158700790207265194528842791354743568253839051487695924311615391927017809741465734156726473735121429051763040801160234541680915391386298295618845769906118901804101224958900344041875948493731609519282800866703345620125617417721442473330541685757927499859240919483822139943876441778911868888375496535566374552396058823361331575753876683040636331083537376013915446203889520177987969125097310490531398727839677931941427319269820168896919756472985847478210986798938189685296300027969508674895205493344259730084161830350293188286537666926535025633893411012216050004159452669327853159052743533656146385020078597623293230181628976382549065530651450140561725999194009198236877968464510509394777179597536009093765227495885949064410969364576742636165535992434396300930585655598689869891518380663240838589850741467468588862168144337242033870671918488874402042289434185549218165310105615632384020933100166054258083809811229637398131538170559867319615506995199185142459039218184345678787391538137361266312836251239819564646823447474063149250508578997967676650849839566828578864823570125541098051200919378533335670847598715995209478193468013374753509941539732888552502891802811701506935929999497358614176036672189928683723225513547512490484541433942877380150369839556341013155756723977559603636475218672417152346487200102689340216503901887815160209462224634343420833444603262276462659083163208881452928427211200668958196684432658195681585168343666515422510594388303870325239067276682199042421177946798928933726302670583998198490608803941125699408985668743843919061333748566092745055383728551903214516599821047847056648562015204813536186166116519285444440209172996995571717159016746511763625421386917669301654112424408176217690200059276763948367375826015887519305786500259853670032320535326749593539310767963480562158876787091881877829498157072167513877557336340922515295233493570458913537645940428656829220740310504581001760038950198750936201063441380213636823060063678868384352988896972103103367289079722883395371713378226102937360736864520096112852514944562593435670911073112830611434003871737355611656123519616085468481844541128542141052103580828601182705778228944252034832913772299524535473081223691987161821791762428470133522113964034346552358464218405416624962485966227371264484355288425137157355337898985230153316389992328241694905370011199359981823096399100835548296425365124622870940173535489949766268504300469790382405222973945587890927546335589125338134930333679487274474071940223816865334432415492660697428476608857835952354080297627282381677246599241535568452431298240824278149816250096891657343922696846248224458157429612000461810481061780168996080790431825329997363753316727254563008837399781197536689251073386197137992195298439440183257656632958220040981576612333993450054303467919690509126939305314443800681040934256386424562462996693402289330729138504768490950771744887848289505368383059945278308774009709376795042880953416896417271005968530636270168146178482794273646078207844792837910012117832355227943660537361682067697039484341968418002201209639460525910762203376011764999791224720717138301151662479281714344600354254891159630113430682265081057827501746781139415966229598998859913254969702663819089789014529830172246614616257809897379091448163712780191211315849461583771485978997018636285101805670873284518506373653617879765351227622454779768483681010160942052071008137723791055215133525267821935173341589694727503352588707684370286085737293194041748917187683959460210395583302910628785587259993896794055328753206742687511297403069722872389538683847669380898122252430670958089841435256423287139437956382049951798039633045946771277622411349848239534389540366140145224412049565827866469338888616887821840712144568471966849115263098070234705639154181608876093888911163736559085739348215016855795958504383037935179435282564227348782749377213897812577397775714048552702833755466294756547364680873398234743515033924028047154276987242482625242562281767324759045474493707630073904975973487366201158232123051073638968640525490954992647307981227269321199416789699965912501578763538595249605867072578244484430615375484050137009883228206388953394408215548484956508717904862191476222046604019020874414913882942455604708522055685130659155115970838178795071621156620605457911513853631442570137504346927765203634529345517097348582808268971045312795473141726808579392054065525975221075114701667078857181272655667792850255341050539686089634771459822024594854593978364520024778239249770222093754295980923814494081280108318574393721576059872857373449568859457602022562940253992611052470350813569799928706169916817449071796218067454797026846158322551627597962726921709630166553631886589913750578216597711422801558540732475850292676572600274582697908776932651650013571649054906313993010206663537198154155978608270888241233470497507423301102279628730434863762385766316171246565478682283762778503994474943518560619992566876959169530881250394508505881928680322936287328680416576921980475191298190410600157495739337144251783015015035225612134340657170401462495718397607428811162328034790715572611120905068102320259999041146107804608453823518024801318298888932618970976364456574469889736117020773738004212111985492726596055309712947773981384789135837061417552993308073003113788392109788618396188600530972070452709534129782616718040643303167843613910847920634209478185170472162700923097755571907765159928728985818891821066937351984290477264939548671792500996191454503929348568117635515348636900214614628617200822782919462594242258493247837299429958340092610302964934244118623338741610219021097652017801890051208179391554226655893239240958558238535831215800578441687402414633040598946897945951269486801582954179737533532635180466353748671987827475766179891025421193075417687799516266675636722558634436739999419482151119399857501594260194619518821332851680451717628860820799723643106626497961766922821103125303493145734194207535197605046926310828840739278817210977222042226249452054885847365348105736690160335702365162582427207881005152787890336902423548453768137625403601419940737554377319025376011576041436279484224098565571998381137007103501178528408376119587283021140343528010550213596787833904120999456800389209428172804766908464015508285475470088774003951291501146251329829050225542206491078039751869281287188626586123513530018207064435762221032406562587287043097051498732554889384581358707696350300935144539490584312635607581762453166380800563341813091324427554424009817333967208714430223433156828284168702603119834921154888745476600325506047475601291731158005048659294463597053873266722563076337599562956292765360188618734685521639872370529358454762651120138624188200117385521846305292590541991363179152743485739538978484466525765251948120346972789271985508784842701618612840936146090150968498651808944510967761541651277132960831676976869199348091581645872095483275736699338137055332800575320808983807770702132574317209935889598083473444184033822951138243366706282171676718660341537716296410736827385726406162458882543287861708728553054263475476116744251092439955488826096955299550740370303706048994096192252882286490692874407288298824449082651620121860745895847202687961122162311553556208329784265659579676943655739202505059037816574226613180386106510783560167448286801796713551081491959438475016224491482271617239099758777682600154266309312534964147352933177112388958283961689854038441719990338688657359453009932039088821588032145109425452450328529943578491625124524041536796888609677828535689244719074679293962738823431717563764797154287212228343535815086257274012036053353677989196418430152713131907178710124195638638719595243036937163963569991913834527025488886812521922967412227490253517566342558453088709370857371703553496036639668756735511349823562716111225700734414496648175244898647380567513331828296908725881628338803735002361573248058603765457076576608192711067035426472281905785435632731513825728307667557796992239409498308902330268589733295722041732151508196954623489479172445722712223214267846583252390201502035591967306624742044930999596145884867005139779361585479507777924536308713532516993904413574924123038861548938997134952442991981130013864829370088718276194219921853366576679155509700786123382132274625851334792388534093725824026702384503021915294078389822808001266737269143703173655095716768355563295322877883904963480579799328926164840272522344510374220368189318193947981116778983484269670859737237529743475423795718193552156169396556502019866583061798958128572556696164657867628500537449583791044363388154172789367894357739357165677489684736541217847312803738272403033474227502573490929403720230693806155188610893166922733967222290824164225557177133635436530005708922522992176347886781327345348232820734747889000519873313881795480223240623851037374550972343226366691621889695739569190845976332402391662605505189634115666812544954183712290252776306214488318654321713138544076715694545763879047439344419751599291790669101617123745018246100722060160716733653238270359721003641299151558426111774302100868203843203379794832379569625809090763897682937189166869845424076949127447607353841462550984420299335672365255716759060211702476057702337427756451815816434278792651155056267999828976243680881351937232343952626429273620842016894910656584801420030725712074499612699016890876531142135756068982251869583711023561001951977599930481318199135615533319646003651066748812749462694320930647730779986587849221631304216857103638254049911390729241230553006530972249667812106564147919348067266007874384578967734708972466630344613766264423677829684570269722868697581710884290685606563109453298338040050138697266946398510027550109392681915966628223189346052372420831595335679756503528571788993065945494762211178798081712240205708576984308959001963086394611186189107303787988843184987960734415523237880319652820993604213694718774706593802198106391435223004333132511417564009805059500670215857553773432998893656237259517043103448121093136094844979905300865344760922279958534483419333581960635188195575659212184992123556427202602223301036532146006851433198454977943176149096973416599349938111849231982200412832954558066244556242741401202067207651582828237083447906759842172369616234027462664322379514252376109612519467186791069051538021933215908547758031969101039863645774932681324580232935878179100676243333082210583109969881575921236552755593490934429139941618857806348456412140033371753637691680833185693877631526506777924635882699352052382824493265572154058626392335256331901316732040084303640349925503999780958055564410818285344964474080425198850410359570945357293275901071427426202146391475199165839544455808102017510711822602327477747299972106814353401236893937181019546658685634547103149068549692703865161973206260008598758033196890539221709661040120631200043737131129011591359737307255956080419916864931365175288842192161732669098476823502746497987820880931109186337470100111180826864700320602498513188985948377210551908774188016457895795073333117269763109599896676201109453193536352143955635090498632460359852858988952766509156688932995827173456544741243967775552303182511983052590368801218250622653312467173503748657370229684544557585610913527703080571881043578913634161643616539413274118563062144700520103443420967873755970397534580262399613486676020702768359401668943233875295237488579636829501714275354067536354255064203205837322431444779894049323281542415470145841706528284015335586829326784822104906758622480272145998100113151038301970467585209730511219936941016900133001961544779703630906751489806523351089083836132145217996034230546919780236434528395493947425386706721027706925955934402903671476591280554205849196715341699274696616903385792778505989400786193570172601509295654868995718581057346196690985733694050801667925150578818118106780375632824729828422083676898351648640405983386402994944605322963091074973732157416241077602136222614673854833613474544952161789840117237663155957746323447080526938524846708636016037022321719512876062887764133949538140165245360307318941164916621221691594843278557198557279820809333312140344933711708804061852795987392955163817052940841625101010023759079768744959223115042543302457323667570285179403290031403461008596346558774606656963636954211385963321686513948140187929709799980261314528608114215996162813879787492414102042034149312870163156154866142004962826433676060342073733260902030989361355924555059607494566149062112020024433392882605599794730192668846041641138526622946379442847500784805741848222919815268271575398236395858583506228388515372152794158668338878918406927314765894090275946298276333924732348102280085579952740299756306701317859926331655645143952406351948933051902838946418372328203092683131043011317383928280998418491477488155126632537398695798242804333500379248517740328448009462012899610444363867265356215966729004700688302372828559564478769116363017296788554581518607549596956380991624037896152376432030972689270146321581686848945219102704458894591271462509671424999549435420285701354360914735545587542263157318128408192715858597876492407545745735696780682906822039430814267322767505288122679500339742279677933005321641353422480506364190203030201367725081247542713713754258181422291243288622057903354826562490210957922396798422342761687290862692562661568065381876561015256571590102065577080640273294526874107235199678438945208804445619956637452641019133749523297891661377221352267236194651006610890109931304806493908408255725878201467380339677105276352037089200489468791415966204450390133894487175256057006482245733942700828942978314704350412798944589971664600402825411935426903067475268179908577382712605333426335492602056246185769132919618306754765151194781248689165727769051549579370463594423873099458552182875857421638601065151361248848539344941460636540153311155674883276303654288385481544551108340874186710389590241905784261288849378065091994692259791761466569018895882089042418218950530301990590162444198909439146692603049791772432517843527824548441718273023928899342562846772887284495553059279394898951405594668402312512986651327220491172895713982422423125168105358243199277572724276335619611448770516372747909715395480828632458575903787132931086494739539274114231031823408290770382047493623679236296969665234276263127861325727617919813477082249163104648543206480983194458021542241581317033772846724711636505737385345428837892482512774472227386376688090689542259030166444930600627197759354710760946380163154895903952552879618193432632181839086399281842127569726651177437168318891719448933365231721464659383305064966530216275418773590677628211671337508028183858336248253078238159407192299294523089237208065276422800732893945808603395608772013513936603241541491793141159036924221419522122922802668708906835097959012110063154103196207965961331826293310476095459057021942870261708519215661050958333927150480299773129634219995292023084132667313612017819062040874595569606620807609634816982936877906055750159183755891857350788993481075985280442866346250455473685144824787836254401206765689894892643447850400045128530996611043275849406005894605390673314601520231027119346000396570777555921597835802816916502394702227668357486477159220343017520685228040056218457460291654567564265136104881859578023428440903900499656047424068100552245794247904261105521251709839605652544713886228916962402282932613407251882064831545897829027283707412582129760559673203423684669969591856416238197038238595940455819719042591937132480397787874956440958327958641778821403571867800956051133046285220422273737765119184191905060174161169048625610788417488345960363675779947675351675035549815505357967130816748981255973693317100567201610815503821134625754608795369382119918568799942027413494959348498624875804694272352653870939485844531941510974816354202104437768090627155066373523190053248090151532232669885080233170790207265068282723335076754953857026707209183551245421421209277281647679953591955653286188850727178141964847548650839414122871082315233197732945890950953024702909002028627311394281455296743493168166879961301575539820817895049222057250912961060812918140648579993892554640453940455063422405908753582778171990077260821201155629723051691442338070651768838098375252619550811048142966838807093341422201121773479489604040088530293092070337718485148678198027987962915037003357797678079895040711447314459034029879232294656680266910806468599362667455010247823457283027833650187359770308215499573630103900782017508594977377234902881301001133412344148808485930464867105823101572673994965352580743427018442885565964566119056601739766303944042265255091715388785978305054138527838356235969168137456104404675489643958363501751350183269104090230066438203781866146070862867562761120225696567350463889750780814658181771088029955341077899824192322543105595367370499441197539904176265357900704000400219018730158911545661362985428730144007885533245282576314945591511857200563762873201584392401108639045497139470829333493744544236508040635509425019610059289479832549540361518688167903514983613006848251662483499694064913751104660703237985976641319763723976094232395001357255450585289546793631462362877228769866300543950074904419593023519541170014511914640489913690812036363124320612119942850008253686101754935238574476198595224348318468514929664023249024677608517763127752410412561394211152263723443822617784483863031749095927593840264358830331061501361299824576981121815450792667131446904181391197385474131922145917063844682693644491792909187130961197087665128997654055553808233373161814346422355905308758212467208071152250218829804630845674999792397820200080482215065172000241725927105777839823518113968032959558068409908377656398702315737206279622850203748168806626837044177444043577052373138148126920565537749470464509272207515271205431956913191505509610228064020733178274666590489370757873526993999078472127595135835982044990945184563522391318884411458523232329160919859373652096345565880541484844191620831069007422519968166085605843833241064201495351205577331021845233516859340345947573427007253000755439091965053533151167973060809665705279155451962987868038355366052669184089079592504609836922148982328857293719910649483815370805962952378019000774255369876704223018553126642329921416186664663038198104937181932078397454401675516599465478244719664073994182145106152450178133835896220065045303418173116250474102661757895188225236514308126486596876306534429966290632562705582415075002533982906650727072771993874183482441307483967480917598593327792867629894830711539207024301495318292678377484010749291976663161448466182327796272203924181124190017460242852893253350179783488165781066352531084864363373369868601914511305027628939669699187929028977926615591971336904514133905703590073268382973021416136677933216610151679282249450876244712787597559825680796123681720085511580188791327491407240384329247025260977716226728289464976089968621639457086013180559458492388771024983994026876632591869679318927963584806827434673385977353414787842059086226286057545281232083672889708884956501283722802317938833526688035442211908076645374328138509453816998031872571563034967411775374937762415464675851155549098736141639019104799058307392409913711080257191772287383949013925130006323918456245573278637511229115516324732942760307484867960401750808925198122613446207458704832351736017662213139953732898292909795833938670942962549239162233839906662915883180561552930566400476829749430787310592650644859437363208428178054691850113501955245083376694599930108288615847464301172976769460709358416779318164601655767508407290728684236124693849409087626326797791537031455862211971946314767182550920002028006455076918029945452495197986039463823976283149317591320419617411672849885227879406545020176883141737076341302520100545397610183343345778899958298260066840001832824772468001849362839118783970498286863934729848223609019160373920858458613798546862416740838503289125850628696796370274904633525897961764445514753964616595115013124450387798768857279347084660703214791710722116075116703710066492387948355020015018939451169712877770684351260355005648542048799653035643138238904950407519229659996604068431763247040732635718081981674494990483877686569907294386757907041763199163960217155040404324159866375865007169553371697315885946564023056122512929571749371294728261807383862856837626101454010167316094546370361314689737629842976542807832722760425985973444980629772722225644105764026165473968916481089146986154831579566500701865815148677523950544837159200936604932489030052223027387755334139531895696618516699870589511351749762372562056041982985333631729486386242976941748777381039032720542742837140423929174132919997566350774657709046433583292110631073080729913801429451726834565101995740926817013482124721284057659226933821698793728806119210664776781213454166470946695738929065754451623981484882233185276533680239483213911461421759082828161241753059042816829669401276738150083830644464615020248182457830939304751856191634544180358787276658931761567784955554220325011568409328705461303347865844010566930187863926144282292429522141556982345893969293058032152993076152795542192549825854538031524607840816680905423270602787705153057471224712916453378404502844786808460116160968554658622267750677017649616695677632866591746073563373303362295525918357950710603500273067988599983607244096162788078723533544395590478141094570413636186565484134848589930437976652645264163560543932711949308378740588565269157584895076998360376510368673128159872368192094348231564741665813508951297418836554213788982211883310383645792165877181457656135310908726260048095090244755378401372077494231482602989892047239484664406340044408369134711279906122588573719282801967619554168205767024480781928199071954234620920697356675885474822474637612207612639802983160916242486959648773226545077657684254249415408501092505779615083611182268063111399979197073112821895126573273873315067459394063464280647679408919479293076525160342523404858770848061839756992146352035928865045335322547046353698737320554988246401640446416133024783220958465646595601596201420612170774228760353275201592225640122653266973856943221364665759684723425298665499006119823233758307648697955953002657468024716253891553045879594026795594322350964843536084215693971241933768433005591454157784339311694931477076977708989185318960264247550737364273637270132573190836090664860289268107072066372672618793938296742040035527746860173925606956185418240102979840747670626314840685168695944369562928666961260661497015746080431063727790113045652017846607202408175225209726936208895229897418733988296078361648898783109052829930595692361814899199638989240141750699866262732603550278910179334852849940117890362761117120887932174553680825888872899635472056479706757560283844352971586528920643690162813071347013406539464090734426050548420544468389377017887182690807361460794062837636136268159610603348519093763254029523708613371876313908993278072118362688478250350741666714529471958273118700628314894835019027574466601319174798823222897909236891726804278899677717182927293757314114561705070560640626683890974277124553521706890286159659366000132001857405508445555621914540700284491464364071648983729953510163030745988580103277700486435625818290292838880438079266719814848058861219006344452870141469948892065946680419845975491438255380343321071204206368516724040919173556980914995164570409513710453898514863110834159027322289819484638497135577809526629437033191486713171544369522789610354575497393398424142495306956902675309077297404041477209816240108278710165299670830297569880314125070880662303891003844576022756034428124644696393019381828820279104460259521186513234074717149629587430174423198088809001540206064457702599110937383115213202577124451332793115942961497744506214679782649957398251963812165214345726423238256034642414701377098030368055378089225020391019611855670319202870248771241954860892210052377490006265350187319284803496583090282195758893360494117049254091938755559259143608898091840133463791078387118337923673326331311169544852456748160217197530496258175778451575323836741061341508847368530412074766271568488855492833918183678398478431345915323287728392918757887815520987700108860880066220460003973148716807260144333509806954721230587117159080042194891955112494944174672359366806274243291811763038492200760907226020721236644702518392755465430883750721233996945704864581843804614410042926714810555244640170517335400784011397702295862475935600584410335270975435920126645537723101812177997138538137887424855603213814945294745972720257405508044238798223006670796167538644672602618398872090053721542788529071080365258289996529972456498208472675920854907518547490477714993081445089586898258766063981382898506909848418630362020518023438585125846058660831463301426069876221400517799202681961663647054697786953517449756115725282062996861597081554819141273008108015414563467852785469558819967676421970018579447178894320130802111359161203461761292899028026574928507580450524355333535543944068608865094835277859430597824663277469799828333159949215088866998225955767240920504440029546429984702467614683034196903189411992018891694020263966290277459500593143281819397166469053426305002817016924600044519950418568934036463394098093153120890971336337961204399976131751308716637315401312660221180272113830261567674611121797325384372134839268227456603498655324428233626230039263596913129146135359557232182467664112565356070448942291117117430288173187020672296566873075541369971184567010314938151585813122473270459033936074469151649763410282777187273666577203713738835924670400433599773489687152586595878801673522140196574260562523116726754788325527390595559779121397784185887462848621549648057689216682839338700794192439782738815900262635792498697289969135271638428566356307481505533851246490215925443425303377779265787054575626897058545181773554780727038655383897761481237702672113411481143320426609236789607301904138865024905966765297204477905265372244020536830072230739673633164279915457583475803466747298377026276642629426914765086395493006851121686678216146110716688181819414909455132679811903291896066319661842679530219984918909106181219647248611264619459762674920914043889494748092350328288320070515671678906241079856545154763263388080004576413058091264667447075603540679729887485704088994516343528106048963338941018303001909594102870732928914980636953558343094968459181050060912531353355469900556506077907314816605169821210216322936255494098076686302292038689839527612766134570893572535161167861125394232242248296425451162610622531377220413415758387436993100069249671725814861042196098032266094574946487502698960273205578585056971823673456982467131838043394215361384394211571547881204477498557967371420129101774348736165457309202510601678898825544732625032574169974742312012547148205996680312826029583532126577183123255235080642610870384437090056099777544856997354427676292362902275758563497371237834283364429738020713653020972754585751649857832604586480952618954138901782547554521753274706325248476497948666850647938266779923884905246229522475930151624705812498498126574464318569622990564391677864848689870372376265134302463147819217090411526585931782213693793029000437243088927565617202591031558838930131455961766829725055279873276459930436803634872436428161225983852790906677523684879539415933111382903124385322239912976576223509614527975182946994915172023390430937623101148148900514171452078482687836307166294640743645585222452799054641386483072421100640462790346247713428231414320685444757507785204927676694365963553485506841155888164175498268151551595586135706731462815227593725429402294612335104495081705822375998675016052167077594793322390335844710345365529816967208732929279145248212969390590127351588994212043379028142554161650975872236635998596595380507116786271177485300829427967364948317369689585938712408470326570117945187816004436393514139427843309124054519124475713850880333094163262600409028956777381204372456024246909978382978474298860031148827867716808019187396063836783964709301488835211468724360691842760906317494213989127570411650378861137819432501144323922283087248480542702309406113206364412182331529292933267932959965996196243074655894601333782970842171209291170110418201608664065668738660305268691242362544603937797501272164571528720347034057300944895197016470551103699708672106460564427616839167724841671775969051364553283587407872278853397265618325761562203907454904590425642898021760039078441408161013665962691052674036743232400773312566478053703882073409613558594841521396516847146852303448108810591421427986310784682387609701623937789544162520763686873774450097472174431664377676361391940236930369290687124173484358170321706666180982347432589042074120063595960392368160552943553889792280690332813405872942653647088275599082422843806695551609808662127547074919811867851650083424386886847357813666554658421361210873502856944046723103741076575006347433194372518578640915101891809216992272841353385156672958881192673975633446741499413741811271197048258875909722432488890852348339638867475975911995025215264636845522604764263667709988883902726939704432305331679249694562744116956331011544390199420656741338929897726451998296221969895965258339014554504059703264483738952762984720393905743119965661937133592494198257161406877419399563994464465750585681375589812403276147850434364478197358249272424514364880153333105711111473877387681405715663938274937697451664563810615537851692086686998961832331024610671858518451191460832690220508829015670895307937610139159442032061619707030446713304704851435556081032273701930216932938059128884430842268889928400622169293138109945669705571838317440226664214225107312375736629378819300474268826230866750780016618469074885443292667518288697368023582923772768875283498139174182639394538342666469422153070006485644204258190283562980050601346638474742672843620199446518661644810151508419257333089287442785914844381422577207591900288948888549660020525522141716744048098517977578417188845063914584305889877764421063734011465514545060585957793587387445580766500650667401035503014643528567412939318154562457996291928158752197975881028877477990671711712927284295814402286166400155114813321802914203482254375111915854204043617135620159414056259537847557656728745004651737282837592227384175200647883230678363743311626307929696094988927745004776349030794151632962235693182600995679000263398476419218047853852704952430555605297940648028478417995359079822556572183338456239432252605959536489385668796981097848030306722963841326659352074675956273105327976964141591424999123928942671843852844016951482669492370673134551371105913288509730369477007688315479277070071114542273334824713180763782626954252549374938149351532063016023833097343456086927376983359893169396014889098610043281736383062512424281442436951506232729791264828312958594687894558933856997182933770400073452510127286782993363987862070772269975853683752579182641306872244742673485797953937311414141858169056649446179523353593133835025773564560863303905715725871971090278099355076769925753285782723487746112480068591225794965100654996783285317403735690727432725963986112696723894423257473196921450952175044811453322854354594159020232609173720955331811255037674480653586219163497535124120471201863872052890022715270438965120244744872345979657742006982446875804233551867717179819449695202582643908811230270197235300454247080909674818586469992145391419167252919915639256055976973825643197092230449133295796741431033162818346939728998924824612141565095124754937141495075604505846994655553637235939171845007251172325770129269200805602191010549234608941224113461934275578192602209919371537066396376534897390287132156722617016081070731085833020334003043255814676932666647885821533992874877153997560932672249787659815325231698950803686245076465617028609910999039395097899934678425538876109844613837353366688174103222210114694305695220120860705245680801878890094280624490261302060604930558929489369533490205262141350627368204938158731011646242807636942979465602913651606945499250531149286564325962888886240883359883627822589406617006903546265414195636179256371373994366630163520465525210397738974577256643364185856189554955438555416882175231590694356694098871798059635617100627011374452364413155132822683187233822355085134684931318253231961465101790271953782101779055063424446307324999174376140778173981318596153483097328452868118143458938286951012622831547300653823129393654928476719886605019918886817092447739450434572005362463984489454899797795305572781671935243252057049701353238204162684971743943201423690707058214919434876835951080369877963206446356396123542001771498300411690109056179554272090082994203355716030339353597952232485915775186395773080048147878887894360119082610128968418107687869420036848334224765174854111318886029685754743364186159955557452118640556495122696730062785523513191855984409251283734480690859500097224209052069445737398743901738665287180642408695215657238059436365141211456087495139353906303526665904231306861018724952225775636942043341654189484741313391212502901603111824857412486626803492729444346180239728529693915070474369461210304793855496897071561095005617755771710348034852577405738197882134999144943399935629384226233807709125464300090696892145019109958767586630451612748436434968572486838166712258355950567091319065568407807721847936823237004504630392641599733919091933050684368122496748199636489277117778811291697515877663320974899979367983556502764296157215790021120731677907049762861283871154025709560113589392607664903573705366456118055044056973601862875460462119762659362418034515873208266705133794865708839510865854060880155135887303256210531352201939259572083293724728911601228332722599925384092173318276506327242472254613588401031404385560287400879150483237401637216366073543240430985563439613289553519271243891289887182643871405572823053995805495440523629288300326567607038534151244242366015070900527677430218989057556458220158496962106826898732324128842074010675655360206437412665836658473853197747765763099645038954837971109355293094964925010851164062219755697196990938439366265425006878167906535569481689433349452848184670674079718508022202483828086020441172823083473382851079883927854592508445515025613197110137786340796775826476652546814472759573653376600752778587157881838736024287138196650041168969601371190881007248415932455165996047564006726827381933643092402865701207505365007269883660284960798959164401747813244596389385287550252748139691197922069188058092329429883432247484822306684048690020557336477885797947628257269051270788092792622637694937424509786541698609291175302501422077256221889289885924814707557012845174817616901982084735465367987275764978451283902217856273022771504921729442325424082649725382340624297719651868183640132952653059940215288252861937842282204774194452453687268717263326654834189605786712914933747028901680869951073523854254257094140104188178744288248275923492367397677512168043487005681574048544511176934552867442969936081984932625669432558179036497074184536994692008880875243331019856174137195122559604641148187879720782548284979286235890392194527962051342370239782893302974872390110431876604566106999549633940493117656836013513195628339314305305034698795990834661799124622954756807892980966021503924230695247558751748813855862467515107498847926120173178022859578664533096446460775305108689792408735181564288700184431533189562856637298313560497085896463898722067923865610645033170646949031888331918368781611232836288892602457965254784161746162345113644875385003318005947675732682471588942283657906076273227771565612370333861093360570250053467912253407606484312246346748787614875567052689913128390254050087351486669166642059116734815451093087932693832211020158010370609637969848264290931715507325546561809458716168407677458457571500212734155035573508687892290668459049349072285755396455119612693775832557530499574238988606599481185037273032518363381927975603511505413024970359706115255617210557418787393525149609262328813107126233515508357743067182550000890579512794636896005821859391251241354488192244523052742000675348328352980873119590012501930574777723443387188831837134134356495821389461986449181084310676336369513329443091614730355154583114707589810849081960210076326718344754480050443295535737479832834750813957289930208814369443858884120728530877703584197283460878742985142194576831782856869283061267076529767355066556392251849890125052913755501825318983666847691954188651690081368397181138584035000212366008928262232346443661863104782228305218916620334591995495419416221461983585034172181446156691610167432188409160173966932850814836300174354382825258379187921037232371878513868557593570463430884331514939180957008339886205340543020607178465062913696475038461409043256610968691290894578730188066019754289767983536941429529810434904194635465103490031209645163229440071320518338516799869676943776421243799190738580210042638259542655399354522901558829569904088787237407482925806926477024559339877803989677610130622666513621202265860187386784925935949506894592232767125472335304816331020899305033203993534065539736672718957340260822190064265124946786509717125961633387096356386610000374226500353018455674496414355343928229108248342219484424304803882344419000673347850541270514703033910015613273698474211666375710846988531234721422994869729353444404342336054678131427829092694567182279858499504734045079647225108871684898571996116702417692027285600153099805583403892199211019892071822377268264441302652720491634949794868598660960790331987424434889815653393883707493118563232523969146371123526705332597073680592727090865643022333954068850155513126599587066079417472615009729467718998660375931796204641403869887313060843965152104370270820515552676402449330082126204441454265135626152796287534678260006258959926259189104256809088483848545451591477516619821711097455854718280950764324395522261887598268817985866231942663622068673614828399450753650646741560341735868993005538811910584790443137840200696171849545024067987031749676111027362611827294689545723753560422466648418484997213445753702882586373807791451704961931016483110120097528543784236365954802302292147775122358583628893219386470842271664671838437112048065753702085185357231656467973954561106674925755584976938656236578902745261515095350621467426367293133054947650909104032704836880560418681116575653357937305116018281926608993038603115844243109964553604105236907600322651846628595522156968276344644066972518509706999655736613897493474042889766579199418713757624067363667299735675006200651171202559958659357524991556698303311034680587710413436676695325758961728731471789358901160964277319428035891745151630257797907062726782490902709471584072781436565453783017418528177076437324750643565167556654042924495920565217551471471212210220325556399951074910351619446202472379067075174036642046053134837659516930301615806146933513789520038304882258676565881083150877076623097684858492075195680661644845655790781178885568835903394775939633101984049821282582884857301329324820157241211563063315364875622112037229642290600568298312283420458746444981649199658351274894377304373480601073759815796768362094738238496715290934915557669852040172212721931750404964276006955310390826646098387131417919498818579673080335089482664578478377593898937554923375679015861902077315938628101236501804535455102870488363335932070551705476341966666244315283804790615260030911730743200935786153717068894129812435601025410406577286826593763378889847490440123178441648198284188294050677307430449745589202164208505621098100924715481052126030009544679374718169576030098225627416413631138273131594022288286374387738408078119469790274138179909791362964474405590751655799670292495710612052953917599518758174390432259877114204326831648702855244492911233562764915577428732184413313451492179028857485131748671208397191504896690336017634070326999939072579356429620183094741723916105926768858153079119870101841590444139705066472850017771726669117686628789954912643371802862154211631636442440301835253188712814861425825970488081573614526782258102678790400180361788548075789876958925490175904880098777737517975532036179250287377965403786125263350665024389094971867233624539830754219050423346312150000650403871677776137409250565228306853174952023899704423755292441158222483928960078442715935636102697932871502409431053443577906479509552499559233072562676945239653527497655275523044701479154133095612267937790795010117608429709300588700146811852531206587335858440082581581959271376861909200845268307659458842261773808333215204565659981372837154285566172615325446446519031246173377492079755007832330752712741488650895206677881118811088270835276251690092142401220553848803291286419944685774810099955703859733673657382580175117082229786857964834208387300711402705438001345306734589408069077861290475229263860832314924151772664475439890172690455113797204551664480294953083900760320776410920753854854414286475147973871332893233613129769192050276829868577449746681319079225005968322454841864346285319987477381163265833673065946110849336780000158392108387602640556933709006434984414714650350841910438829666816075175911525202950639413925348480235234124864630923976154485077241358297322448830768142576864994356015917814588202174952629683760295493023429776140789504492665594240783959668945249799284702805672752026826955401975548296675853252773982641141859445076155509165980302639699565351464207099420835686917056890725125959611545864757740737489228303673005971672556735361306149153893272118492903139779836480338752007810942091937471038389389440729357684370530626007980091047511767002304915409480016960484162011581248982264388597860893104694104901316759559504687779169558877288516665873236064981701619783891449874141524644481581118038303730700427123813367754113355234450493091432541510159818479068477864928465844605955249687927728670978022894424136397600768314541442023403985361116545806669573136090806233574344058707635478397928320113100877284040977005781570653361775410501402541791166836404397547098120574866543175546621852193197801875921503281863343330761830791316902634240345367934772131979741806543732261544175863708072252787885263680522126962680838215873572644774698231775736409471684538129216717278903299076016990473256130605289421821888735111660791193098886043931861640030113192165551232443880073502204035265802060741367493132035488559985619887770437493823677740554705269225120328113275705441205276670740276875832422514239568803260137165960663181344901038220036803622697319614215997447278778170189750175019417068297254752459604065752992969046923854815853044254447265185975189616464665741212985317161818292314606071321612189518293021894449916362052369166629676460770501514000349489970105226159147990404102240352905941140700662001805539238030138182211274149650351716960215690044820860850934166871792608156453860283257022280291981965227415865055995924650833360117439348120349368381843969633086838734533547888882984850652775487012665677948929769650608312559641668162768016607787120990320344689161637811256559780048184254808224985016265748330320220628032474603867692855750161161645290180187176598361620668037936939800275521366030850013936170503951704593598436424914441695860814545135141543571331212564194202774063777384411739679509958493145439313528474614720177903787707067312893095495686805644006860764139907124258314958291499125803982430358917417170335692861961405308777043066012124105457119772577290341558504054854289791034834015709403368679497505327226555463546736769899475756617255242847984181064783479985612647208394161515719632182705717808586053211567407452011441948620748050095767087386334047822014656859409159700978009313429102376477101266269615115827033567165172323224244947471897471291399317212584366230024898459007524148049247299403876206027408343006630706299416953635042981422746514090172783479478270858522832273008686929669684256499644685693224943081620627083651913474578936499251504401536273628240420088968929102003171305257172067038766973980651495148713185256934061552986306102827604164369106992656330719650747546030684504354464247428660338740339599992873845003567302115542207821483769536559200308757633933461385252148350556541947878511376163714110789178607702635179675386915796967982827610436451913533024246905016065750328479784356117030223388239145967492019931111961250499066631380371024154583540303723149426184191675503580941114306996742505127944442990574834900819541261193494205062578454562641523839508940689316739939800157835098943957134461374103964786314113241103580531851075159547040085432949311709677705925954077605300061974106876614323572202629026979085399886407964778730127908539103108220584272041200715075328887911943887326802809958009069424666728133715671768833744188003826500096509311658254116419194397799167805028111752143457163935455696606976876152972788217070302884711397526488563234738917164759968601857417959431392764769050099271189235132221643061447501401641514386114384338834159145405261067653633705661729444276109846984134269668971745258873021937947182024384761726279787144370029796720214046226913743633612474666805969110256327161161962653445727316001441863609518709262189913512247714732688025248176972792680129727267233722630168833414254437224608089072848107157638279844006277417656540010539147214620848539231217091636847874315731053476540204008699936861804751799144146585262188583938133901918279439474335452329312917583332210636801839785311958424621750013725915197320875526162948129795522791583840380520578250767968102839815849232483160350298472897886592416776057276513926805351544571980964291359352353317036993907447935487882914597789095458948803220880680271862227366189586235357226646479788502850816069695751728938560486267290628059755177089323235044713320833461219288566618542063869021170418139496404231009990273918871074842809691691119860011324188916519443098764446841721610943569914803134552289939105060243120762507374903720623577936931978172240499577480195439691052862323844746083991847913618276996975351755485839347286605647459732237501834590049357808663269405472474754507260615085464844700336232737076836114851049751365150744937512169747877124989232132627416965978361814983776496660530379226650721739015696268641071933500455410874827556276274246351139380295092532883520954123122392761935340120120844780002327754963175169677370405371136441036376818089349653366695902708967652958083674791497979248050133887884626947849773029155449751097858448097674265070433767662680135268950698914110832913237964636610460944961208119514470490187192810832626014273516248764114574137430281147446804159610523600943095664549319128836072323657701689091619824219506889055797286648264787114964501095550588409919610167870784289872586542021484756104333378992429807506502036700069791819423417652589548289237686862269670742406547115911676481474113279965363153264538132701659866744676786907918822705564182751665195213129043714095834400605883428521710101520414598418952918461109740804443967950289112915841736984405066287619746080468715061663114262788681427930684521084251389824187542307556323111445847943784089269843486128117698425101058107997614662863333300989029793735619094489680718828426272985992700418974184966646335002109760268853112695508666256103903909547663083820231219120606489371640650365280452279684503332369783373606191372058480308045092551433340347137131158154704620153768496620852920447330571212275738287968273485118466903092715493665996105257528028822913510307380861199782073026597135061944021052949623073296355653657493922008717674928397973706383314181636369888855898509343441913886055190004328955954470129482637850824223012696795323186952416611973000262047126132802667108916129804755465116886531402569874482878600186093101606563267630411636512782401742555533358107092014721773199166120422878928279099851908324825050671260150914410437372890731682762801573499283713976985975355199520434674865842513763039079417492008882339413165939243481750367243424468907592200230217120795454761722205125959430238784473260840091339881280509922344430455100408125818410033503676789440033250468618316621114137080589664353333726053490224700623547570102425693833654005552042590970224864282376534171079432550515702717523610023314070602414416078383157341430048565106050356427739682198147620957275677491281303137462808769854701531255855619412671068321760608625611065107258874046557786782546058114771948056594373924874045624273822539725149224880469788706378355044399495658405692951305678879006956905332611199750380107824406167068417158736450350209920151118394070238801950176320970100990669719188466182723701913932075058175643340308066330166034214725272386108357570314589377518727171468049363783918751398141991871403504889653310180376780324836462128242608377018264277059480197787156518119205313436371130754781402617923329927876904513575051851771031583928360942198677946453352284472170636896341370133520235543487957736617291658636322204506456622272238741319339706688757016353871937886824360674974695131535465655015313927054087323216237933651064439257655229041266402009609525374942566303600235779245452585149813246996573884543685772201383881902407446201109882883874515170502425867368376872816333951792924636047278311173709869204014834434201483356575737986477594734787437738603153833033019721945160064139850099375194920789380724715473819972440733878747650663357129172697056154400666906206671937642953213612970811619763985229466563610961087877067956449809864637563255690443417459918413785680349088109611009777325266592498972486228382572379292215087804199459711291917469519776838379497132786591125268179717978575547211861998243301941855172047187353908267721394794351225834707455455893938073242428959764703392249046797177188628728942473123560939828751084640465561532987689199449226103315117558839679003642796457684839214062641556105804023884514915003766104424026652669027318313291701249244835289225908904146372288131583979857821848968765222662380060486275176842367054102375371469032265053390384585788528800317367356706804906828281771995007909925071674313707374319034060276049240040734208701280976818420916571532427517254296624569927390522966233544630297329312965834659601985001463522003920963702144158945627469488991450356138038295391816365363280077291082691374216368983341117898301760724767710810612400836208365839975655221354733952283969820403177636473950906316932334457805163585932384494787919834554448592607226606957507418658044964929878475397814280840528454852062155380830077645330737349199371517980276387111833947847921442203804838299475955607110921617348148409095519598396197057813205998856058455202870354643308875228499633501792305093213834834691965471428740024095859790284272901681985923096596499611545777021765122473296720215023513428469640797516745096703622601041657207392273857147821375917231196399966463324441456656143816586618258517447531849106846825055049100170228314201831415134473277811871783153707636248655785030874883290235888087725929078148783416145310210795234957477651500170872395700825734591569028743990485893092177278576413899063763985286281973222187067165383772072962830553990919355336436719735529245182853271841332133396933791691107067655404956042720728323110930289212903957414260745875244288608895918548087393738944422492536386259616378763066068767513251966822972609571205055736911434652698684885441308569655427016164359707998591356863271513128320781134852386952856221587558023821238414908558629828561191395677024266613769436239604654385820407645600350780092562237723493688148033940415860690096493954910403718389715866743490273541979432910583235523712444187594665714002115293860893214681907729889909104055566411145902177347200881237218638463672635190730506396703549204327679561768471129303585431620004184307923878311525606554434428489986672369827820816804951820844279152583393954082019365145584976945276887800847590431371972685744012804951714292438864149116899184299879194206531004725485995659817567149834828317325780749565141288350306202189495760546311379971580351162179628033409743264424268928888216752740672740749623864684418570806769059990974203938684066736241974149728266099919940586321033221604765205722945242568529081920101379533886530090052274700055190291355694505825328875380901950212493482583728020437603561886316499872403610946648177542559294808088879645792114031152115569269831109139233347689468667599920020012157054631737086585206447310112806162553008050656602548469362672166283916632976624353875596411878552131281098991173700872738512503003372532020227469194290550642303209506529353599796236477511283791626482544232268034968030892768662894364404454158237495572201318872736250928083049821864204807345451321617743617878038006815025087214517647220939953632988410024842774410808039361917999879626474160117440766240752115650920721613059653428736415466393796669856421291214990367327013442992527722761609667964272598693011555071390811006512798502684189860868933204798464651738083297688918745101864926219551008641110445305958553725156356859813560733219558991254798309012089617597256253985509028248348939447454028454160146791683786908791025971398997501761487425613864611244789446123670072295913731798140104315396519629128749182937032871704182485261189503585244188278834508289348098657568727624408359354176158502203305847502975098193070555155223978348707292812968499175331745360762848736485168069231096434403582081526426633984145656338244771995783224619908099794891953046750192435568621397364916135999438909816095884837668506315914865108486593128897395584479267975292687660734828666689043574013549014304212530264448279480310104693950255929490631343698146752836530957398859828320275311577012260853920150793910749764943329241102129683861479443542934805743021729597018557747250556872720936316969253844944936608148010577939462905632469507930391147321639339765769091412013681250199586790925128248388576596675456140628468363329503797880654620006670641360261921492332353113898676723937468351996913178988408299990888320158518949203172804867593110508423781218617136400195381704250252275705131989867825674077031811407304930631805478343178252389246133245411207168052921392866694656436202452231099847619528667222177598630959975871519221067237798919902147745656085748069113249364815965789512859713218914176150031091286734738479444796082665307383807799646265630848696734715811663929748854022885698213378749865537504399249066412089642524982567458367841197634786149127915539634466704841602191403340189770701031872385464060968970990052537081175743950877726165135833391257199591343268030516819434134454063283802006146533248297382700841902944771406873863645466733794632757401389863646026744804872029778076816175136470935366503793379740158788129259244862160071446027631369322798944264197146061694840128774016956007249427897413050443975934343315519655812449408077855411667107404758935279856198330706395614478870765458147195711328337134959850774410678945756474590528162719776196991096369164002502578397726806241167854761962789369107395446414648027534982437343672375113045264725584557136786473811845053488511359969675828538361036813072375275962348062514010380071505085379008123105579495296741633107023147628025240864187235101884145801959980996004842959942849739044019725527977079219952405463771317664748728064292829006632133497743185316266528606337730798090000907914620662792901970170648891199137278157303816433030270313677080026220020606381747008261960143918352984527620127096257003041878085252915564484376920922621278186553314006593918620239645411510264751151406482695117424839414793458751796931261207458152646644442580356573858722316833926371185177244594120388228388366859600819252131817490192257157800421171804216687965149239805979245919318763958721275952450893693641548561796243515953544748172034359802528066978603474297946262211658062742054473458468685120809505366661020082750321590976728577729845707538690867587398806735299328236694840992351446442446831782322333446737490794255701818983987879045867952937027087164254347872320988757450027935418568045153303439704262910823956657443765664123133169160218812918009230535513091475744784788620136689760720766170765455866511961612832203819004660528916060462858607981710738971669841034808547915555466919666721415766330551720858666352832614731383515568745262355302145359553073776538172676914774156115397524592670488194878668161030821535006104249407572184429561999911240882716577317436129719994228896613849191576246647790104584195518877543309834690075069885304727931321511780618161755478617927567511702145891239029130833832659765455947982896225410907863872047835083742061810788178364547187803546848416068018949647491644480723555061108660102053847120497475266102939924613405880864185608765334072745758548829383530042571131296875539403215324707106997200231414568750226585308646203108632331679835598109609923005863349419309426274488087433941986699482817439173608190827490489370297212210983199104698796649729460714466902128277381970868490395815566769518420463131699304090646845817049999413081857030738558919502146649816106248937445195890260955223810918217432609552872164785036354910529154683901218901890883998314180041376264826458816168550936821977852105642093248977641628352743096879749820847054730471745351456554082450005873745827067531812356626658009176403350546952787475637164685462156266420919415173916538757885928241725773976683632350513242878785535752034080617121307173569863403011330095335815264947598105848439473152383180027101334984039040773718510837294053797974332241581867573267751022007505350979132609752474349961524216177705735205162633236885567298723165575484209635875833853659889213263656036293626904057085240476605597345561629870660956750725004428490900708501555432947178074027213579417760987760951467143242080991796353516919881057803595080220026469639359384951510519170033354905979190055986872863061714540988307640328181882546950129663591962745624342189058226914242123233823079277515797268916455295484945911836212323200872670302008911141417845603120099722354892460655450768438828148647780872381531645913099197397425888577588867087647106923315913759391798570927551356380515416080887487800398836699794823378681861820729462184285602717299220649189350389678546243187182834990617233391498194950006979352771636804088345371838609945137218064220015838120958745109691685795835780705005857815715403743447894456148711030656813276807631419035515813689063492315781505725370525916293751330749019337230345044993205130658899534669293454720562904177720218264923149180991402979528402866123321531954341936040104243842206658232414769564292624507440071644343864897420993689059494752316881096963443977574610612857618735345636817949725896453290303709101551166504120867933411216458223578923403440678650680932980899375263673148742285790873183106339955233189640199154424946154214449847743830189638906189796772406305089648606525956790710394389563180381135294404172062184025378920746366537792434438328812276990031263591057813543002274005030791551480787790413709017361094238446165696584266714987238637478142637815616523173688045808534395199004712778408163743119179650180171846801221162317041292699393215460495827156328286777516705819855541315429228982518740597249550966481300489642876200948431870678350248062500031749092997553140911469485584970471151373801795757077600918429644033518543032598598119888005830922207028358602057009736365939748534606714502302435285652078097307178092159795432964401136537649467093413287253906799711909498787622124878456068437429268081902706523025466319855701733645308399733209660589336362591072107494976781566309909795675064961261520250365591523891010980098454292626634313592560557719110456758479408164331997148828664060113142995183690783799217661624315730288985501797123708806508079826932243764575737450212934799997734377962241552143697456852721803573716041566076872173756497697928686133991748389465369610465163858782747138147670064092481675195025241024924172009084289221770603234635557135435425006259711873397214636281486105410922540506609433361602579736548624943948213267083312441010562546436775195147220232868716054105139811591214942773456650299546638153790802651873385957847077739022178465606977520416096043164622056002500641806747880896585220667945335774937864608258332749838110454725733022396528927183482558363145298973031866127112306204111891341099818646551149116228183428402473888577974525085228082851686103518114372633882392582282138731936395338012640563958138667460452651505682930813835810385383898991165470857883973801284930649706907809656598339194421396312763153386070803704109932100254367643154070810317117512443417423930208243708414347381398909552260523343846050156791834432502946486746115777821322936303792356243384277986965427350754968359880637497835925163505471685916621592971734406895550191030284384584850518964106270877158784885937477446396975202869599347808399800843103069322697722842146985729506242235383814875526654940901878614591017350580820849051089229480186687910257444785490640549635562331010564242880455096969058566778914268916521220449278499321234305134338629161400808125211898022993078727212582646596582676312740698781239583031155418379785025712986487987318998712793482810232765013746489825781303620423201080248278833625616087156335560275336293819997734363496605177325049109529081197139256765089770918338138516867176390702131969107199123500774303145958784697786363208486985920078664464749690173323284122654071783297370891714319350682308192338045675069651963906848207346801502245325951873183502354123713354288583599352294762407063880516720688639048964022735068798827117233014381527271643548483384013989150535352007691331509778428295046120948898292149831334955181618879417099529748932572654430030250733575885027437111022798528936763120512651580593017577218111762548661982237022236851155126099142923791501928851513018037392571945685130971454731680944753239204848194204592307864605107475275828659987905438582593263140037504419516491860439442159821630464907894659840139957854432579359383670157198537439496859772926640196613032313038294292148033658380176627011474003469978463158297484404212734317141566194307537178002527925169852949457648424937202247949768572755069417241187818523943093873645798959615145218361545200361750135988821807196686912397074973367882273942727020961578978177229895804156013622692686295006605701497708227545482108080714181788377693678237978999513411525070034751446539855607113637408954628417439797451279713737153830254848639740227094246054051047910569281928242633809696557704235001901333103087769708457223998445196009012449805941901190982735461988721752910137846108203119734802355579176566843364593490140298553225426568169045610789167746054434319402298024001035156278814710945096352918193535013516918652994887627161404638248178573982937533735348880918187326160928462552304597699218291201304012113999344035938644397503229632765209824298155467710981744866838008851944930781219268407539296296100939124514094203419512089773907414448437057628936012561011038034828177125541449289355475711019661016992979900819427548129110249666514208598784185156421745654342374506206560914593692357525178206022338331502367457541335106686229616654311011425057209107260873193251758490538830542061823711322673649826544526291391741342038906463619048576233536507192400008474325866682624069622378363643673157707869984898811499770722854375345350450156307675876772327006001588547257087796957318678498142054089113343025994488049056168844918994143154264498839666496592583066963146340189634077193481532149041327557926614220230266091186416122828142007459738420831070749744246976051930200414581982643765580165870379284792855654737334223386882170217138999921846603227949468978657122220917155151455729765710558934990515864657790390459716365988416013520310289575934505985266797026057537472111478711652352605239278772638285713819030369270295851418151887930593341596044909789316716549247463134230188729147288029809643051107330189217111782052693324685398815978315654695799676756067981633169293803426138283729064409320233589708469183767943375671979544751662431247499011110956967187819134727865071736873064561912539114376635405174184979020680291485601224013584152833187045762318457726720168679727491547533598071208618586156184145756458126670803937349381198605025580053450451587282625831547377274560904082488403359948592768215256512379545705820868189812653843888954274054133968343219051754311921691636353392824091776830046075782689754563577496967763368439104427961938320057269261262985703341888213405469201991976545851352251420437739105652941508820596312309189405983695709019942391568791803861853446938821449542533665259693359718126062331063597678125217884119847577178741074489668724676966497956327986695639931180596517137131792805574698174847707404481603143001851850968920879640307491637098150379915158364332277348272464639474671978047581780051244343610435908535541925501524205419724642579130686362050447482626769494886557377931204222963644450334950822893151986620849455806369813963998799203878239974335349346977221636499458204551265558181959954234364949211348589550654562028141159194225557545335707853918125116233496300929035617415213111208942307344232294534722155154467427578200876018238385923705904888378833244442234748424440087638855830285483650470673434223739799208872989746175892094226901709194799408694457700455367915747845669469316719985685039905343556369262414689725089107293347361964786667931930477540463840336253640773394539328231093695356671782424216044183017047557176977755737080808451143113455284622657772576412130107408398302128122367257957121330493490632555979631426872247873099495107542376176754461999960157020384262328994055236128327173888994438869301098721755949807504893467087127725863229762820712324924426321274426286889603897911731435200155491673385945005307688355165334300643848977780756473104149775663656722136239752333000991592609591790187054938487711606173764011938888886927759134370206896593807505991041640216467859998795010350060290733321934606252067096028294936583260216677524170781600905800444836020393626918043473345474302640187197576136733217036960341127659216104622488624200661540330409203473971099411068337564280294432238542932282130905884951978015760499484822657162609121798806870996419836991182390398739228352491182499613110769062200342855846148581181821298151351561803563034404758782716512794632606250732101574992104552794337621729711477106810254890445978012530708897579339315720763614456311466924690389119811577483620315334990216048024139666647931436693790714892596427849871855922590948699498721821542746617121827754946028281205916871028293190826313962850060410686653469827070384117082507495046972781779418990935484448877085693759508997737211780889754208832197671466644069627963228424614945628551658374329805213119657412829257155325931877591428178535827072118686560708354110765034834857470564527930529200324431477924076486190203079623946218436015393172866318560550983721618457592571752351354080418641801409398978610108422913529871841079202343461201243311330229315484602485141176565811716040705096521128903677443429618665887863282414252315678123515600059509828370035346924952703640424667972767314512478841560296033426865495186616456773402394495666790064482582591059550387005522724221326358351200397963758855706968096391699592941684056849272026512768234174589856862852279567199126626912604417494971970573427374044443197282896903269450614005045777759593221692505743779345212031546912108235205335364517489655008545354062970681881631213360331130587471298906858587970357895990895304563321775676755824555952604601912659105197234199165518196828704331974905966270130656060353389489452991755633595116341175464492065945041750273676670183627289872804630954108213428164152349318777715455084955527323973402646460080362193138383920474046767089318618660980588482062590461443724029038737758790116848115224818300341008614588049843294171384590522386298966381030303066145279736456676643287387077107818163076127270348217646655691867933190244377385131875519396308966792363968504010519685578050385308533245504457812702761386919168141376433959799409167171480805919944107958938693177213532106003393423980059828187021775342878913919988041178127965200199162187231697591253294257447091075713774737987234757960236575918609763004738694965046136642746265403146636996391419584856871438012286242739829336246518946022290259444032855472775391282850218744370086941872365647853446793928712022418575040131150871044605782465695148362572390922981505485666775102315930538855984740453135085428345450078206353834534655988476290933162557508392385008068521086859821309812357972662110971409553566261650661743033555531783420508249166734389644978901303663721714286575548981362128964749985757649622146139706365201774038466857213257333210494699758278300836847276573634613845979073283379589851769714986128230292487446102398013937646730223777074977108630988889217204770442855766545134854271398979878954137339100188292125032177067531610309957045173556670163843808549356414713384430665700225356776507209327683123295649995364326733271603134570693587557252865319946827591486687302647149917668929962674202657715456167568563175354179376773344098710725753226453736602367475876444002908737149270007462934372159018642722173054775845087048027703136876592766256624382380411694612118481261858038003138083648453003812309433204236772533527206657828469275356967554680627603983546109508342172888336974731663748725667659894471657483361131366324688020187407996423683750002990170458310209221534733180184920873516966619740015295628551764486650680404700262035935028218753370410767918693522227436439760252213345660848057685303604343917485424241448135787351011826461071480393469315919140869368337918731500093964501143012168595747894565016188363359882646358424085971471915760800329512824741915228936126576721450415379342410565121052341223079805660320272712769608600082255927111349527176468208462668398444782498375787107881091890451011206682880192393098897025768590154835619848618683464377669789728248273487243093795346626432389451718306587738137595967794270044617259084439861140719918177378586267800699641005090857574162386212008193899243396249417380749777669904137441523132391244607065235642346831266084407474652345287405340602179017857927626675157988452778339249800225111896726597865761917943192886076366591774544598773531761102131800032357308233706559207767410492968023199818781096474452159745392233002140164628824535133928361454241352396133337864163495317042754196616000134213027866294802113004654613141293147384065554502253994333095093327558327704873667876785889598155694947073149347368595199015476406539427416150182856478304197321453469961100246413351737472346318878928775997287686808361953174861380801675981415416973642915737851163591361121476885390335541620997038429959125210601027456674518571102145981366576782331126148577206012256624422754615732859183910619200835812171947291239954724183862222939591288762614684832168738249313601072871729667133283897658777985244940464054537737006483106428713548906032248964396909476866077118722887191225643626637259566240031159484508505526260581066731473480961112530318310107359842570862262940673223375444770313347806212520236213150813729670582154157400795037867024283391532789958752246264103132142513571274070883014954145949799899239923381855850874067104431748891117050979138075470939665786098523820479621072649583567908172024038754683108126794360746017912127323080840802667156737685157851928776507087747369263592059451646755835582110739786473442591783687931663011462494932909906635582689438255116456032329803746392587913151450257670762144685828449545982126752746243092120102575410832555800471628049820190419631081859206832228940081987993649352654600404556996315045952597647383289801266237117714224151545913891030735851281937522489689310015880481055066984375754746150992986367318098447495891760538957039711969755298850090223799442602819180323734473024966679014330467754863735190434732919864587990350654739061210547254877430213083288548733321436390186961521045998333455440721707486293718188331580162441081211596772328880738729678960549913411739741945439308649588497278845803037371225246779290376294146014874889065202588148089100230519864150183773399132216420232473980056981074131400920965362151497767038102004530248433797226723036398913883877178913967019665606331486115160340924036849685787427396721164276310248416578629948912364725832120962614889119552188884272025194110495499060566894068232502907260742664449121505991465724479077087344142982421720712442887606304569860428807797750029719429275940398779566147168856722516546101720137082280766799182509815233035161146163284860801277061215761076609187986868387925209981056339585510039227406520585831118633321342444482383719584488235459160364489773776715515196764741808851252091166531368501815197659592819871726933801398400843193354742286318502523369126060759518886789414737626510075609799040515896814714643243682430969439682767817085318109597853159897665653638203962375339292472199499126277722630530013381725172898851826232252893951887671455868282253127125740515692917565737273588731214936199514766498184210514711339304293525362720286334501651281297651913924817499037171317301436894563040916147834065205314104277557530418389288614409412409925752738121237314392962934561685162887869164200382979862526840977788652692407518165780692386003356083478650792817134399562382352776922772353075207219742944652288974463186112274058362670929182598824059315593072483458070666756524783279598676249648568375253315377364780426085255154688984215816674939927842993800043186731777984440181393178216178349022712954216199896259755247212865293945225337755256273937221055923177098124900885798098140178816052469902251002650143569740539421803114198638803704323646675658541742682791405669049089539875844082793007767088455742412294222183898782985509768629151060729190492825028824020142020554092646623936652333431808398984644324656841275588655174702374344966064348330331235123818787222136360618897981037890402569635084615139262787734938099408726045938793093779071298262087032636497796765619366852532679598157029292173710392035061997503713721072493019469493624486855663245843237354266054958793215423119036634746366721158620836433847957887771312580778182538912096490853949003972633910239010055418314293480651733245567030470759151096911059872593727454161055281411685511754775023755122060075153251917503162446776477578005077630591570006996066810707972504383372683318609174739066580232817651664074651249089398804840093948912363022363842467768065146181853142894144344081547998230212331745828258442447863261538936484048512613784091060740770828102344557895415203170137740071618134045388023416532660113563331724291778343051014143265450284812322907952552752177855403565759072710170806003148230493419177991115062974948254423715503552975464506161561141186636095436669188974809818554815111709423388513425191485909943616464851187401039951204920135578782409075777607823228938569239891537209286308035212565980548935348843676639947284449201167073145921269980464112175675109536696095302094547489667377240595338991016248672661709169264226414169369801756001773695899165527987815801922858537275781311231538519627246099872172373933353758666580781829330315073624889283953239532139774141586117422417492438898333212298938325830952250870212245893366130438417002920972123859938303168361546476319133519310982198292206894300273068760004810407569061035770583356430408877100974746026013543491521623594284715730096172856751719830148522907959718380548661868866992416971691127646120788370754801044247770662581556555176802045456414763931217105000362754725218425111895401452671977986455987985260642474096610276897631016893116408868664577336184117117855478985001589084253104284326556570028777112152003480632021124217287759073426450975029670221631284402140507286598452270222794053519056110178831434725908336156295687304669070219332205493162556358989520473417631984303677417777827197304165515012784418856143303708996420737611019140517767955983200142030653541098846139192172914997450394852737030041151616331501489996911353640853074478726161511503437106826282277900255735729269091852641559735808518791651724373006207285964288688482877963993943885588132830659201381814498702674729981696975556038297364165028711509561012867456199633074302092720164274948130980558890643179335361867317828977524842657892159343673911555446176344876510915251567416455630859958388540682237355551625211374509445398909143886508132272860963357766470688507146818640002480842555587433748813304267273095257494645255236657887528058618687370793236005662356518446117434840038533710249351847471529534921656791720033393699492473059111755396387077967679946066952507382026399080673397631687708129400884144739630744350174430444346507806947887000835539567726580890904172044566867886750808423057374677102221036756977766488761940652964058663429959959366339294336373394366942540011804762771548051201828931289134011707389362881466620953301614189468057021518165092265478980257081057386793427428139082134555272126772185433494818183474935826400797359581172036994319000611182820025991950720697359694172933219617956039193578860718381584491021522119324641311184822611720055544696907322878519193567232223645982103644976569857641217632969554912505509513604989705930099188392208108274847305502379038403939097257879421046194342782351477492891187820002609163569137331993459553079053219470519516003341870995006096136139556254186425970336308848248316429334876345306033129387834058517477796859494230316596901767645165720343743199533736165169829673929548971789358837255931850911619628382457389933050934611525579315426726847650167438056389967694186880672916074716225152583313719703725205280036690135399635327045890384257791093727278618227489677731453456832464822733832371168574069408536555575479766539162753645015793506427749778280901230822336396872907417037219123579466573823675188278461301877276488354999729733084222249766871908312677645904866238055771253133594047811825193340743099701399310403576965611231707516829543856702559266200275253734534417293124575380792634263682441659766768692200583989435420968283900523453175367745346559454175938643580627224040187423770156872657462326697389394001205298551717082317756047677686842427494863916739833808195869510310563811995760386173604673640434875142625201838902584762734009391545171754771933383240938916592313709518052709307652403514791506768571778522322266979373231778740206222183310357934755213872378233424640605672134869150399547956196327458328030253765277875641874082779786245308065463945989819450160522530703138379759795291020450995039759811694984805370489923935632771032069679272136691223802905999990846472743280672408431781696560037360611987941273214123226223232385207775462347118162279517396899124544355945160909232453071596671937555725748102938439186354683399912683086690367157675826124175888911029267921650662974816795011003043092225732544317824388858743341846388756039707482213338329692533998440875471110772378189940575598724103403839609548030107025066840949355404440251054310830088683369260008159815576243024708501609727421229567338793655372344554426052608506277163118170885613364942518165680472403351655915737336144513994178181495895157708907653589941237360816967004128332840009257144310911786721543995219406412526778918245137521872990470077387313354324260787533160747879166656336207825677555779854599662779077063736827899664128210806652000486880128740477804161813128532554568805072746356416524552796640211823099477575012493314212118853277117519085837324959758340135288750547982216145472772562740094724058384800877406010830738485554631543621263817344315654933039100995815582925626473168217394489899001931605384559366089140826580473768590065945089415749745085280731587318541564734609772974562437512146203086475180014588790660076947819030325002885225958797156330064193690255897838093000392762568099098536135888984414452439444708758840774680031180538020266285008101756323276679865499672085298696643775842440276478360589789425659441639660741611657016091654475660215642576018023874975330768661789514710234919975600366875390171870970223001146552672225856143748456898335236030685997957214049944820274594311124427515028890946079795182690260243624182534444487770817931447114311077066166662344814126071970326868189787453013748701798102119750775085624595232886069746264050731295651471582004285951163512429130294600599712023782888686179043386360493605314861686199641160459020233712235943882287974213914212645153910311122734975764153815158962426755643653234527666575925664982751466628527875301703833590353417704138115999641205741124591592861462469091710902649500501907002758714650817876205749857769086682725356438679627709091066282729457225961354578648920273174190867559100150132390720304172012023736557565988682177460808415319271723810913332312870399621106127624741524187724937578256266817736388705494820286440532483930064248775304145797441007680254573400713485356221072428545552937617244983850578014454783377987543992741247496784674441149847889223237810661179596662621949716453759582288595118681728425119554117779270328304211014285139106219343007460298143424787369597411459842896288996004325092640572174532185239051499572421573047605329203109204408631572148920266148866293464033414568251786940096278372334975224180568346041451988123333772420613425280611517871029470813052591587748435573915082244169991558314755239985191266381827485275146811869882262349484717459128050028195328496187520322510155454154537002478671350636840174545381592249608180101659499951625503690378057336169885715763785113523925035571951351744505503415697989064653788176299818577132361915398043063216112343427638068775319520821726050561404779181289094811569230645186395032875337473718042786240595504081683927402468852333745709777765949883434609395743608461856494442085428686640526062080910168979675979831890955630758525540172789624312335736549191403936190847055472382185553415010758011917023993802467288369207353088267129939538858878546784498281150509814595722715702865549059019666400668399224756552681212856484849097248876521647346689936752745214804840100297467693906409941420893206903843771075972727720521275056148837500121844856081230394164634271759917663091787489929054291867997108372993505746131374546690755297362465145468418302632019940568402589792355377814888601967827848206700102492513721488454617493697875948114402338272554110519858929012791114141498774140837595175681279291485321266847642008590356597780158655922872823474310555274827873480702151623852370872547415923381293541491288357081305477428175491879528897809852250665298518343296683163436607293058303084722211698144526324885422636810955378763638926838932991016133063459201842788928386381311454413750953551664668724763956116667765974598382164544436455368324851166234341350131308884849821234001680513266135920266935245879261125295191236528921308676411878884438464594423703026618451481930623837937117839987777414680012854675460932126529919454364497058419935719325061469494310125075261992116507476879359099858824303241775808786124636676692998595803246937051023827548647240124542596421920251807691089254089054350237855072962165354736506971409674387683823752816482431356398495929407674042842057985230161162673164649654835871996702342715260664582483844581004891542711730872986421449476878585322631485934485467380882756441391129174085738852880584697000829960964324107870030846232406324269964065448626713209078812073688550030771946561032510501892241807084569206594839773745866246083398596731106096710818596571498120158093770159318251773100434911747713416521677109210141777179615105987345224381694661954939344612116200671043781923135518750998507550556643115870514473239477428355792328020351675157675901042091074072932090298201561634347039821675086207417482229203554355685247426328297321522528196981135017044357565287683064653995488515155546920516427240464532053824041102395569456360666733896796788479664222425365846425160236202061144611008358995019175007399630916542117252930438388380600383875545790767526250701364185125114537010507326923869418316063564683532219720833279226738769042974854516641352346742294807677625799727098258592795163658545157090758092262305620829453062636154753415977993037072342588998906493805181407294849048855911300568491744232942151508925075470141136050468318990790476242716298657679485770010614382092853720174620911784737800653623547442480149114369775337557706766005974308300666844464815309330319938860372308528026863849745190088085377665969239340829602970935815689183666949764459754064093009155478955400450373495174048948911314657909464778138021228028342092779319414396553960792609022539725975901201828549269754178291915429307702010818098693312164059644675453134733592348151981634030109575301449547383890624609903459359791187679470603581689688096738246728486374636187763214897786759546358293531546305102950455156698666367485287745213949968612630424386501770488674218937892926874561418729883586692648323680559656746172347102294120066872398131554610394249795873883855985543147595600279296457689229262617370628037844542243251215578083697298312817700699265909258916771096883032473439828851593992631734305066727399139364855883593804767484048139044137664362380857109323486578035518204865127740969363152839182425947839700637514880990958609248208788613266951502963996841946231884515361535283915311240290407725370047003478848384282655585851461186437287013466262050448124354414591553971957648929719215603691762503822961062412570159124058747105606666063808180601219327913581255705701772963088330513712752827542068329451764599975759928820557143101910793231329279160799177067515648489224634682028303307636441718207378144889696131844210260340896731347344317378133844854218895405246536614160939539186483191708290634261376536175635921191959103903954515241123254004699067189760214811497192612442048192148285799812376765064734506277270130846455324617841276207530418735153095257476969259235444981888308995636228781012147637179562402636472552783035330400854270855947932385442975182149210369289375261936976809178798991789349958373880614382442979475897044168667790769354516151981408787204652418579217841151846597369129282616411224798088294594622046024799787206089122506882615496407752466501329452287619579807733656964258761528892375000362553621866102222647866346413362087086404690946784201250484112353035426098216463754058426905349573049987675924896207468673687390611641602034425380085766031515906541901080689953718697996836059496199024206611513507467906142978301183049246937284678158158256324537937117180172479423214542017415419835214413244775715886125151328189057928946611920054592249692992709852185365421095933891582617796888133170999011384534549667123592782269487051095016216798280607098443474494937118308780972684642504836711380200258943835222302265211431427546555795080032645769025897048040817333507301700581016583937008035499514213979205745710598179084668718640529842676654644091246615829195276065178551005482611989302557095815208026829090421939382584015020509250359851390149089637793025276928490822127535347466749404029832222481401522638661420340670408431780658087044994124483742956719703412726339374169659641063401728836515911184506340243813703045395151255627920772932793274673767438824809738926713658711056751224177926739633718783349116641523281520129054884396074000253012904719199669844880259680414077119300408359138002216036906807166773676971882504620298704504517182165110237266120494217576672419944750652503385754398146259292306204498538543041567958401585194271084494959081699024014758274334990872099969747193491866606919559632260687892545746496796497396441945842149814937500501074256975817199663894463572395702942443752584865401481167805589767451944854345516277073033438292518233662889314896749176817395688687660177764130829112186885931044605845084487190698858890367757689421640214145786006565990338893346446381673820607986721841615366093002479367849525344997076012762724065180454945078220024125573302075473595682785615569180248789479216449371809192535305240132030353317439439544474408573099584511744942755947422139889162791219168389667262974457477970564675049614695372351029450120111271262240309517731362438193571710856245230548462002091936712584946270837555989337132910607612954461423016076072185838404031381057580576300845342973803133177381909799386833455866448226419054167768695171103862970998105811024718112473165992941751851071854264069832778284348795339341005317896063704451745945601470204208790114626980447426695866343614350021463248186283462755547557506987701990617818360915382907604107642493070841508834568909053057116044595192117389369466894027060049183594456151326736581342281613338361233690118819041352191128786527685577013453908512161596555077633383888805566619885366209925003268992104445779735859679221494442268134680796864113735689294752814659549156849901459159471949814214045822677472493140735486941714793161130824250450001939120130890768905280784962531906499894150674979804665286724388067432458061664229241750354740011970463858050612161527354411881777378747109804692889678861496366208307227636526096007399988190149413455322781445608490262866094180173276344249816010842679679377887635363666576476653749860265625490908415144893210062176169952987592973199238025583708422362145119156726501378090077839569845933395770269759211644732829369960295516642445828184509225936866446287572758925589581788843155475842372217014583306444388164083575224820631233889083168919129727986895334274145744189092654072292611879407711662760140360169009584924120633744007084340036634244843945009702926850051681463905687012954656879779142801349417554864420913707964362009579503121970484779324370022212100634402286235694860284830076882142438957173297160229482131455048581115409035006597948814528681998339177125950642410185790368542548732109135093952900861302290434998498727611391321282925294752831354259900355036384074286063909366736261435239466911254643831818183720038152326001786126200718714446881733430569773141774616228824049465049665724206745108597938135661431805879434418212132054057017962682718912717868001816560110117385128830585335012109521704295769808870117324721360337108512990308803457094215584568316967223252666579099400307400470617594367403760845314110116107876530858850018604135104163883325358783907420325984675815333315830356208395280689048382222585940434907055418441888246857132332003084517546338753001123670960477044055148017145404960178685728414795613603757659029027134071250244694276260733863634814310510580781315912289590033640235477442045523650500604545680383927887631429947365509692711057812315630755525531412137843086510360712334129800216644019114870463054882850919681143055120447946767418355179566751106056669053419838718239249088409751620462771102175988867054031145948254414883216306152138004553313322507554695059314532983820728652916875852406523535711613856366094280662494300121786755303602316495677672935042419450638089775042541882504697367747651931309502351516441117283141614274322897012388529986277274253077350752301757879570472433415940644804450656403096718258868632660460140606773248061396345701254524972138760848925222540447644194891401931608088917712217664315717541797506333166574054844761996478475908806797905087294617117853499991652722018229552813985486686171761621508750402182426429808839990840346203957940998545558810660519218565456239342580657473826721442009772535978173891879860952855978140372286001390295055037580611207969632142272951391489002165767316859007693848494327404668327904208806232019321016705502560254737088814261449678352062751269769596279342426739637939957533175299003607769322738629064623916067595142477024013007833690419984117372113104340527722281452123976868475608851398612837470128101805720558659564676439910465963218861962062771046509999067090968113169107160620368466116423688080776261676869692674468563853540593015732635008756557008699469326604665471309756578520212991953010642100623778596542372740917466999509172430285973069659749275472382264131455751864828937231479942561660211373001382717143949714439216181779885322190078168637024280932864121854496565552922725575355103841645486627476587077562155757345723262272043005064588764795049316749145812893665590493604622092116925182942125371682033557595324810148402308689410197538916631916187580395229503219125404741127376160101215602774629135793409171349061297821143746037608056736684876031029784591675700438169350285106335541984170482006736547334784216766220063375891187062043009398259328818599884899829292482756290884004477445570054946281194650510130081458282520910096148712124981998319124442442186000100782446528364468657111706385295803186780266761215722061541483039126623932949201881701680952472753096967832711379948089159917029436849466372979677880741000414778475998963975049609903448769250452691920757244204880955353580089220416782011389786704720411573102096496284777702351582855182547788350839976747503104783529784076381206704230408475980017603966865235548051295151807828122226113345247948686866054049885610284669369257702306992719948834101118959977282311612294899081955742883428648491244943267691397455194828887033595997944600799164415837140665892244583149695386423332332791968000797266318316221193565883130350880749091532515058324516757931689088404077490668964163120210775076370669908937716933876406728335576324442046482481134976898685279528466426018842378514929297851008947155651720010669790149631875739069007132596369717393860542424126484566900674680349808598317398780122096632278313984972903148679571579255216210405631538667913254464204240173716000428235363993114815887985167931133532425336665204767689257531415634999802974602119682076285663478833545019607860970461153413335807344929827247218688129877208182111077063888508217173186131982451282243459148121507250639944418312361379976735865783263630683487781063506250626143440316443628277962917494436317941959019056365288103430721733218660403282478216788216277023270535265294906474043915036604242588947261404419361384563883582193602059006381930870807400192329587359087402025303426247314834231773548869066267359354526992695784394124358768880511945148402522460499533778777054064922481839326449895453692177043330138225485094316204549776715175914380146560661721165936606339711807805292065333682596946547315247306183654543216919502723147905943030872171367373987371076594609631993698840176487408384518217552093511526418820227615544125241847618327240171587122859807262106840629454037782649201612289534068741926047778300623019965767166270994460289819022937599888024106726616156338036559923994484538384443237776999601667446444798713761408724643274099229466689570710916656734530567574712876681654931269228750296593681746264872495011484970416233365886502821700564863585496763367218645283789922185296362521506023698839944349170627227766180897376402984069883460724110672183007506424105836011682739066632236643675619824457677257941943183683954377542229392781220162620811335431619214792307401791993937432075848885613527922380459966449785435959501912290560189515044391702235758823306526450015018818541004483588000695123209063943045239676022969834011797166408392242914085130768140270029058625700887351615334693435688481006678483401902774247411062017553465938997098189084961469632887861449673725896007446029225556524026790316143850386792831291173368552422064719967091912258194395422969219913668952869373387365367538225172100158249573440659365472372076301321934640923441171472763506409637060107951133868340205568892485311393168799249180358304524070349584670790400607949823790046871360928918476499382198337643459541485353519196313237682089854959300017643062249502871938613232544937787340323545021497903634070144279506565270218387654189495102338818328160811485271756974736749485966798126019206162188048160474127789554282281145872998998036248195568010981259439455076717399655072513474300235457211718726380780427610810789796873212880952902708783564429164881182641589397680826300930763966537631382604156009551068455035195857762668923578566821549453502866894796321402759340494681074446522279869922901069388035031622250623911462760335813579854984026430779122233716379792215229240870447708367867604306633126191706698364514372218096926794133073836236573681255375472469293709473709259924424787522625945574715189130446803931378268597255176438305355722352856298233268044407302280424056010409987565796572020538056629914362553986856215902950487826783045533076027079533807351378255471473124875768695621008961304534991089446178714342584718671773319350024595682226992314698414379321226396897478612527267286002513138089134166269665096090055695722369095701298770919111698647592012707412000979495077606059466571147578052178875818747005275214466756145105033403113529465994114207912472482731433679191746733304579909163590298048987122127625717707825686261864638150274289020504876113882129372718568479941664432692015144075794880543589141159982529863654087513408267960577465011670496026717381625229398409655788432329673587380438623676121632480838015622740462726499391119641673738475725316665431792084751450419115582975987539866558863269744709901285112521371452361346358942832688806298918646365430813768768122773066540872396760399562168637887672500265145783693940941094282813261009579238049871627244903452961041942967310633541938613531985304737808362255289067677492275700696158134826096363755197412088137456621700664047378061795161082324556025129649668303600548681971348868802561637255464623962279567766857555509607245596721967687134726568863603940254224136484854353884637492906770051595530804974410393629854492816405272947317978828606800853094318685257230731577394361090532495510964194296608510867485952844453201341853571859821844472618173764719671683673912504974344902044495756963032844785451530712137283723159666631342088034740295894377418491022534320230209829335503394196112280916783623880448234555621270498140169671491798334578936673159222186121307505537323532167095334491279702901668440641267756792749848224131872502535424828393471217557464599818385196990717155615154012683614756149449322381370373886263492017620745808475524527942206549605798053033383018674816349265020067383675616747414226500799919648861753811864141066601685458676308986553370124863623903570162307872771827828507390071384954104324448134415452771496807835086603786353586025022640522541390925070557437640348974572367761963215655472680413608345798391431516994798061736005120743262249747531464632031063310778916391142064551114813861886797715726194724010442767388205417555965159563681043064901093320907257666791676070055575865690436656973160999029926101459150724076436276685639068815166204118008093185057705925838449584431915876386602965837553115166990474777222981354768046161413666674577627620431348022892926643219560410237557391188022905544759124882915494390348532902478133809915831490597324307898996104533449368308342841586009142527014591326992957422000889171080045470547240526531684093699916429656478072810800929483325474616716694749230605943527224629200149140846851640684467881113154084606867357227163432754920194797902372918340329857969986806352538989498686944916716044482143938685363950781122703603465980801215213972156944092855153417188229944527517575124791909307913148446906411656529851065432306174966130076608986216342995443325201375301497900997858773768549724794786849993448606168346101982525175921471309252978546322248773005766540065969302062822498201307163391746381261084228632056426418329829897889434250780086626291487605496238357032372531068676217757542659403096423026528801915919137978212674783030868572489288233893243317582086460952059897920652132233522436705318150410707435039244750315247533294689496344237507502093732684145983498481678916736046593656623407365635327898244490972058569140782774342663067551771790021254551929925006724366515070354152846449659148184583887242078515944766666277579648594392039084042035787959062774867928565949997343096065537352919107439334216283695384196174741045811782248210986522110326098581819397985985499648604261166400521126087433050194967848215524159057985191493318136040983929089309055142592302436669851673307487501366527309158996347181863808003667579854894869843638113024633950468745785041944768629847640899118721004006630361836826197206500348845275976026763878970725418289666457211485982801687023941498071116377454081902932979537571471206526183158090577229826160612409646616145428575066624391783728058297861045128292608398195975833995542173538418147273204308265345367231712374431810129432903709114935059040614058415498035544879172039799769261382078786630751845626126070202338965035531764172096120141400479232574121379657605225745518497684601839695631683399787609901062776791173561270170629012902312725822128368105375717667869543016086337223501531330313158364268875749572964135665961553274126710459289359701685753175885961162705516754408065503522569052676515836865967524701652374412533795923501972591907342083303557791447548723484413813419703667223127329685595186919131182025577535430350036397218936742040160396406326660630745819999050360220449012596762999903453616131049479315373824808852264287086466761611528960778239949286376279275384909567118550959079218747566686578560622593755079712476926392727434324383242844023115461948538380412640143330846833000515736157407689052745910013505083876650083700545343862749646786256759048692319423546999909761171952291142352343451591361387862230083754540802449536206172615339109659741725737996282661472305966429233163654305488902015857248788690557093773018991015403377369271591985519314295272509879627639494989553511613908510265678862517228391156204284887690099942841311544174775803257142152550830001400481370424630282611572791447789316843162532509076660544714380001149863781237103237588014664015474495638366836702003623285381330878579708811247366100162531781553453922369032601980266260020024194545031930686523485602897709849703249675689570140187176074251334653916158333988300202324537562948473337625459484515330799448996573848186316496803931149736119511784405298536684795780711587540104422589032980079901549176280367730706007665641702093392372212678939424832395005166503864584087533916754409046467169235600473561877224336846238005705186065490203649629817961383962683338554090300014966810933663612972804084751273279476809228392445647219404228001567244494219599810224368934435632439050947354871933976287717325400910773797549674335742831651145905531641035999411733732254314654000551763584553401896847315332972600601619117786671578493661962045093857850376735495712725053041941014069351812691307734622354480418237345612621058412543537651529113108697121032460916993283275306330727656205964989651465483504042712489779803691910813813181247636155301668535968606048459639927613769529892878509691414167903374268079354707688472581703698722378890730138489072907463208829359619789421139835344614566217176881834592703567125900317213490256655559008569007944715289087464668818582687516797611883981071134545313075102825950658066790893508354412735249498369162783355472473188561778861207928624622489063953783951733914350027017656377851543800986722879826226636451726423871788645333924988445749900689152831499407478093927209660602654000085881368451185748380430694916953652783278744029847333603477473292796515857826638761728659807773797111393297622407456002484788483162569882430286802358298696059672919595774619887658017275211347069204544588206867546751300858280960583994005457623722483828094067151654870560327421431617057689803414728868516593204827798735631537895065440935306204722511812254417775070504140960048688917763479458943074551423432405901033564890415519521595293260172632522646924567139271285974233263843199343728672717363784508708141992660852283183910137076800032387218239848487723254814631850796813741546537506369739385530078258960962589097465430298900253806516679352118256893219165367476844393943891103282632107014958264087994369659951291292000686536260845590071254420453445752440893585923750533855831423126982905908121415761112239285162089412454753912194929925958104801370056971977791354772579834315521318670225066028168138086708141762301633208314959137622371969216817272419053474354765665640967816431206446137572289531180437051063842864838017556508070433338127488940087495478401188972143971347960097861856287937135567148455351322694012771580310833269206408094166792524820608316056019465537343132650829698181534019168282302510665867403743539125964836980616538864022178393143026194852692478170058768457520448741106116752800777418539936825923677813339770319051648194049173742001942117056596992143021596621113952058565621664598131487562150927868202458247459737040233477088157577410318669940231604081795118796234144378715982566194872620120235882398853875365445699971894765373254079871071487304502983870092862679768213760980284997612836752844307264910328872994038407783822271722066724464649365368563205911421033758991221877610538988828326516451117712953232591618065272829358999481242079663420226990863096689830686362744778698063886666526524932425109306515030059580198124183682332982532950195408772563027771431892651353035161765158134520119309870765634573986570253616765839660694414767274569821544782389860802396046413179944545601960592997842864787430132735352123413744578014502105041179800247777785938025274660255527661819806886433523529372220939091233901155729134682265255478449146977968063140133647826328825727352899603918901492678054255757233220524924720590523173114464376632996197886063649983536404146092176746052706580319358613005905653477997317907690543779186056038648790022691099204739079470545406809913470101998191102758873223333965724099664883416375868025176079438884311707190908794868008146407544905262915999476545767719281726984651110561673286182161808724436200613931975989658941068804472365040856943835633473696801172465901892936697654727701656067424659093592258194955243724346964330552543223352083928350909754206784319504195727834624212315576385508754109453760926325883673996262406267404674941677140493677482533191212337433535434012748143908343210238344461774010169852891523973297216078366052740718673551887001534865364914493067423543648321523555315055939805828047305298993313994453209575603747637778818744285179453773719517406995423682443239782116763494475103950607793816057543999219792435444885990156446056659741089819582317080400959763403721300237028574682293380806970453599370112589516985613211936106034945841323983709557673004905640813277741051830053474675649045955156991115724796616204624973806975329330546408162454627162031507179721122128872159621663025831482667086117100046241256920982412311435395087785519955104220473939666444509889534008603711672388270543198770944515949669636208378289041556973231553817589729753318645957843049942603962285881379705373826681181493447963521049786740106333758743083547388392415609676356359800968382094898504897034210389263983402657758288675584993453306426812139494310854532624756094955850552316022775378087591492348651263476868887199881254411168214497602635122455307870265420456431319385641163355142485863971826666050339086418923971513550007825334102882649247992136624446623768383215561606474360768694209947302041334326213181652197784101911434026854737657117094607624461916217710554750146019258411825694686005872545930180670204283019986839481810267569156348964326758994598359762367829243433174661417770196986416338027851715804387209055111398280131638396397427491497327427778729592471090160530840667206110100202649014004631309921731218073223478323330757119515436111551303936948783273071661549842463137354302962064075428712225493924156495737878568396692264870011914718668223884732449932288064766479443863663440819828080456915232702688736058217627315404273731259810155072981890130504263518445484286576214279637280183034495186255811733493744932125961481189390027407284880014714197249540085727911463007023572437481116558258565120995852899631412887919914309730668877564115024773914102853943115139194691055052259820183782831963164763995772830775709355389934744937907147200218548030670156870503487716201767766303215774283670826924465456182383810569045260848744791894459214053931485034832801362016979958725598857598546203091420579817096383640961986016180954320850042353666834665385316730977904926168609257713358866343457703958274295843238502582115248625614132862118921827077653051095715852326612625629945860260748965931613320764060884827617553564550714455183559179397742470052579989194820028241627131680089982147703708426491834567825713367825037706172626716107865253428697219475670926051197603617059222550150561279759093673082414319082067036862595345657676615625869486946328842012020243352561419145268601614603597685518511108269265762267022420285734511798775887880596671778377314638060355117196025120287733596299948085929591826818689367453883218235346271542988852365924119803268939190694325830803047840235840953985259207716025795228202742658686708892457315930456398536034979102604075749262471658426607788682683931250738560412584477921694775076483592012707988115693523328435685926233084853399561069543082610684555212133317720208335812618467574915560995818322087219422567648463323022746300879975090692243707217299241852902844497800742884526376351793424367447133662554525272703776483936695259818217922949120634163235188894493785370343047718406075862715677365230977709972484892322060449669622536974491856846900413357752090382109264054960167965641846527298943584494240793231448188234377942702226404958264971984971884092472913835141552616263297094962477186198128242864135346510069254856398404716316039115759093300738123909998161518756874575010606624308409711768489082557248140795294874234231164371960249211857473341843328973839086717756424731842355790394890754959900206938389918777760750407937532293064804712298993581729249359064699738658673899382253153401592666708662676076061989098058650536877318647994501208013627596942246481664909607919741482946155041301296907056770042408364430782638620100541773663819201882962904610390610851760671538435596867308539690908943588756738749408321063335867661020340856174593879298476915562808666702185593152420387121679551286303272778836503228111327959301374955339683533506179798819347027624829824603254751713908232243425200848172888501235037175230459513274387213942063636700717913826346989208376772373524872133224673586264927777607860081913718790872463422737659237127798420406540817317295829991360849070007156008655528024419926117348193533705542852099939237774914869384490235856132239941147782669205610686144212712740172201310286501365145806571829331945871378189497670520098588620485050667422602874907333374697532300055863232846648014367166757140355113755362978470112702683263626601837113824662734106784683185943064572130502265850593722017151090559234530598933222360222494653266418763662051898268133966894396655465692868427804867222388578275256610677640537960106131219487570356974219515694952225240332228236915584935042035693853102595405114331385134436541649749221937606160578731926839351261687881428091068893507149068899183606343562190426296534034172654891902133693664402706281085293118079512051978494932164410717257129328261795539614863273388201746082280012212015569401356007538431048052955599418813010040895851152985921730010490742132403647554011055998064887704369008809654601172120150263074248701733522986746401203580822407201200257423874127348204019629824184293998802367571929339537913019665091601424252557860038267053661018546407332034729899241489179919903101837668595189772133627720431171094553281518525454455371190853058319112568881262533398657198250496331634506259489031396409806895344975585929971256477034506145210477054029388015263102228252212875034415823495682791482779781314689390177586465467394278856775313038854688658377626792457463546036624098112858898775982798774219871164348015150545263457135360075569967304664354228360481596054605320326353576549556713769933679147293896572065864548697471768577114676923913467264132127676654159739509434686854308028005506425416133510767232748938611940997428379277480837839127037293247087357339943609791804916957894167068778909860558621606629371748314642083596616146099709155151481273015404845370827948983013737789666072366751946240132855957848662069541296489161374861831474870283282185009253772864325043962170790762747280583077189082398174333677287294982426594737236616003328974030266563036501643024738446312589891863586389106385167356090270274477488394007853057435745260625591684691874492335947442272327713724044603803358562082777450280132466585236289339873711349404556393742176068183122106943146053805498201346666096115993335336783949313018097792142329555354130375587774317877580217875843515755029190285112639205424493098759395426000116673795829420499992261372110560018935442975774016019768094193659170307554745278537677309729010159138972082914890131610008649949335086694033495883621987665914998573086201483191314737697459685568376337901873832847643402465315709254394475409800711274311061980094189883158936365860670195659334570570801875234140819746844573349348744188234505187358584834635796099630683596434446820753685264391476006311627506253638826726776055866472439727981330541147955143600489993784959734062621729193648453181729433798864169021873026900804348666534630272323688356165788072747791621332391929493098834783071749554261228403792241031075328726963292136809829390317515846549487410317149217359128586309015449182661553043141422821835664823197506071098270218614878677423091442042047911022036324032708434517094383814949597073594140334882691604331252997762726645576343001450235612170752875620459586574286509519144210780300290151303508037228363891070453177919978614809186630028974346552705543341353923672765953181181280070858585001500491214087024735669258879464443963225688043393547242517458431070284528211493644870401484212257178581876506927863557057877450222037777754575295538220260287276048008196525178700588923619597446057842911210519966354376000376188812957892881220764723682707047186228986338870509072783275388933767447951513151046323562455716683127734041467164198044776687718162010624957358024177893547280249851476502030758189803825130591838638985145526847635006584145653955524504430937117732788941703795135156250025300492955710829240393342317620931823788256471419145281657935783290987214147122694069955560362616351941876133766218753032161012323048009544563212229154114415059777995651806128068685509115382774054086270072774344717163201437099476464294049457468014365316065845890932047226262195710302483654769270205776954093358434027980915292504243817328669907655248466316510872950647493264476536013998834499725058892871806359793619223148321875523322822092439848211884451383949096660663000892154788042470042383706295309692411581352051617523696469097049110583479396265308829142663669114334037090832332157025085536325329165686415598045559228618322929560932250196737460912257588999361542462195543429338942057643216374342664894375294155650044092204867063099020428154694472479637151327346847349034913821548850207894887816585765155497458347931185577293515492067493229444288536050391403843623426726198312761321630228173476920495552722386934228163836312391961298958197342959843371509666311156471384404032280715927639984155737458464651903184109852452717507074111324438331985461166659700295052484328584143190714983268832082591423595711735125156157661515311110863419029466134584719823631121389942617723324434511777577194876420822178470592374406806698529545271844631670448350525278592014096133193304408655291605963452691353309018717598244381464348884079638686519360842680252989432344241660794257743125968185439734095024031816316482138516400074047476640747989629047635168305343098716627025073267873984126751543843693414496359998828367694328005769982553135155770172299454785161893267602535349747139696370766176285827594442739315584339214603599487790528695612500514545230866100512410156247665454294502278620706343488621775152498339612682893125319904977659287563947720353939531926959316887692654388396194869688455964445149709104780976283644211058266241403745732346116519420544863493545222173941778193101537006525055065478206406981422599427500487410153185316449624091536029745022045061741627715484545410425713997967491076593215193926536240374272050903630270038927569402547864076519038361998669964465076061334437556232334264330430281809424328908595495744608823145962254274826193018907627040734824491788999249220507801598759420440086713327765055117263337102140199872358938032258393319798254581788723337124688282071558156816443324239271246058568111862327149525209548782341957488884785877879987545109145600235211795126925685573478963397298338577560083893773908611418094962087918872481432029795755388084103992248793596167784799602437520198637249491479436444819702957353506868084488937835341487391341603011207900931901840598459475637147363802503555104320522999813830753604089394937841550022992445173375549740888071054684099086362760493427646256063098564791603809058219149592072630362062384417410773418311978508815709806445961895537976607972735306433541167617248767932985449903881879167080717922603219920262452172993450443900960817859338238720761568921730564541926859696990400213347075965758820836944972450020190461105797088601671440436782213168805868832415277243909239334646695733105064648622086451349429136778599767279312992740974497659286935438303858559944367834894203095257615882954908233812903568102777096900608018380327524169254807101824543763157142879161491575732070180266540394788839250381865978516743942927870128272534919741924739990839222150294239509984698892527849737049630680245091146676855165276198667233777627816809115884392596406121782123738983593567947483950035753607677319949993394598060364259489712346326644895784861578053443866645578903737932631208527346950048467993782418841920940308738696660314417315088538457518135646443041578672116593383058973310376135672965768832347186507991455761890948597349219446935805253298027557743022924305062021502984792526554804838783919830324909972679195784664845320698069416282161850034955775416267798526497672392034842493107564823551070329153677283694561025495800356861442848711223035471857687173637018514912930370061539226668493993260997771489293547057878004090669683660933029611776583458465335855617507151427700985234764326699479293914434316693224093619965753419532595679889920755661537879203197732700543453366218786175606919800624833477240698876727470128827689812777685101805741632024701468561428877019880587667495986969236196515540080286426167416915735266665184070181234609360699288267403809623680835087437490324764528156855718464057740563745631089575761699281454334451437006030346160989141190146974719783317936402200771070329980253144330717275242785093505707910835179317567327710165963014158913940329421982674336992593500750474465517010589170811806961556137678483499946195286481677157273389344569765068555355843179534419090074358744249511026746900294835733747475479090756096049128111848334123244335178508905402555968270485286424918479990931636652897436646007987014352960924046961146554428187557032105461445199955384205857658782057545474844507826972934469905920322516559634983622641677808453935467817517768642889434611164187165076134875791125926082882630091285795733508311398887518918131751191856428087876390696429970758701158001965910312997183662749672437492666496545786714672315857389923749752372953672288924548034163023428338300985455925770266477516016964703805885119583343378646058569571595561524312086490099696561044550233942946305399119601884843726674077053229430839844443606068888880700688286627869059741956879295249881473131516046674532258326359941524780262931018880563289355092004469455609781258965089242544545889442606329332957096847870130844311080469605610141021274885065861966750596071855224149501183381290214774532677004002029698482322048364917950572886913517349588652367641060065433188351418638531268152610310977255765075256277611206438923243083262039199468418297316908521832725650289410841871560720392852790673192254949183835463236511055908001742787195408184309959884872534683686556209258323728488609953002705179164004445576029986667961095497575412762748968080288158054011413808190735542106939513849679600365757042081759134088097366551451310201400846266848989996999734969017671360711420459474250767876332253274177652762837481807548408735318186970580238856354343316012760312895190715025909728153908325019101681877997789748712493528292047618641853128308732344333679505729967897897760236072354378678152350124094552738499220437680924071049132493387496037479195385458058487734805908215408729325627517909956905025449920179457667250422717324284945242262125355333765749566095321064621505141409338218535003539122975703253657933806484820075389338688403353048575359515140813035257174225080499766538652772365683591709407403278002256979380320074685580402849352277228033449998230631109071755724656503932776207329673207069404856418353593087834363621960507541517396621011266774777063690527018716536553885187550241646142676463660523984427517757160222394862811711886252570788595144190864205976907861532577856412879627782400850478275096202849956941308213067729335103513204215954414157577496306154687698234059453616519095215431426916915603618664958681307282276582589000116800673954409377747071769967099725212967842888005585742557985323565421525770395531875644327879075017059764690121898472956808580645829923100913393960386328017963914502325293055277700468643004526319634862734676740157796599379335220268684056946529145301342044508846469883730123860741828304079830694365341959888382766096177634812782306513935918847213680601481723697240374257404642712976650197409887561206142998730990955350628578063977688481856957674421081796193131090073618428384857380297837872470706490865984595183550544314289582382034258673262628285263592231397506724176342962167869862865150093885083148006224047182179262716430332321095303604228120549978717664944087572797076980909293846848910514617256163325721650531867562669133124966365444710259445985654038304871924292033440811854219031472301660867157137503167899581308183215008612356019621717987306258341878282953475084908188787941335640015985329105604965033769604887738595160763774436569611882713340097061053101662644374056364572406763908745633402131482078597425692075624286418573474730018763759461654070168012245874771431556531511508067863300354317501834798229711360299932753977948754586198045682062618055012213911059550736908353995486514007305861569653488287940767314165287261322515360268180642821336413547491179271797782125966084574456394287929485179705871597845097788880583285368973048685137275723554333018312629660759103454096662361575017094656388886837029127487998341660940389270993922783221510053467706714093220053200118362127426900076917986836614063682983646172843529068433835069019223347063630719932611368246897058787985384091498141442806516788238445230829100908376719501353284635969630735983882527048044657014541581537165254995428741549717817708367205440244727246884564775890311354345857294784288097890081881076783179929737135660656363885272605995337482112102719405872750846821125435709503537610425927495334676531653376454090733543598386941570044187416630109309961733562788630628167260247917206659602830477723931584257474822291245156769255503039544913332947541842581309882572721887136925805515561643276493756733077183444738297211930890846439621098214790002854273861171660351363937818679762299866144873422980444205923312974921462898994545037123894835776773993978971106725664262259979334922394513602594677417851172728732215811285031671831971925156415035948078467076678546497150456595798989154997380052410060686097647774590753897061045096471956539374803311132959163613309077793858860931013201222572236386951582290639885012525878195808952775771469628061730407344955675065337958722278889473534237515663399043051444115200788981553781669470034076455022322895413384197623007871489822011888755312645743679674033999758327735331536036897295855944988048311649686005758849423442064646539087466613481795379891651422820974489742905891028807903287593671685762233522666538398627149607339563436157131908486798091776298951203372938785059441870842353777304033950809215499611929560820988680771063405273158464793556745408244010540359489175442801089606914840780496418904600141931298108178148686851481259215316677510511721032253377303301452552689191167610612011290923514760183366531598495235662770307895303826094274586726473955077559155283584039507511310089712009895303041995175321473655733873347275348523271433386835159095465796495790431400257601538886451472119272322294189222144320873608382959250239574032326993121277253324105476686062691407354268697678119300360732126366706133041676535077389655236899622650828284791621070088685199002826500398743503612083546850566598139049467955487510623885145457128785304441070433673798175987882164105934770265087544490876010843710816075087567002310575096507754415679042457833958222555676212771746471993919012315364469672152392538863537559764210436280437336652411272826337748030667748882267340642544804721905866840916586169694704572935976454730351180063058101809187402466505152667055194456302332013358582665269474139947969238289515214336480997854934188827971791170599249543844581026109099296115767066040051111328890801589948640501745969368704450847788962191363645919765188973647398358862882506805020036917672395851191207951448569896101469751844914618836534660946086387581113059567575380979628375788606812673237298462714362655520731722261559947357846695325289592099684273792122388897857876095696900306875083816600095853204246161729741572992789850366916105773320472143830466529203038832054785560698546240660103793086323816884251955736631263884417004300459621598323285639941428675229241394960871453482034902321939241858009996700363262098525455485436923486216986820457264657234877425660713898080445085905216270701392900802483325300575934864587309514685823392518552293316383991227086129726975290873977916741040793680617522250915234447312729112263009032158546770391230022815566847560941386127458697664340790236310587999241959237452531125441116303176838348642239918179841556819005824386732514946145923773300164425038159420017288307726237532029066995505009748099690833340433459391765395779495231687276961842918365909418511951423275222140687178791503920826903792240671657591358924553812883149529829160936866441675155035694285915178788799057944927947552945677725665330070576675845748978952495326136067245610582299249465034798145240184949059733401755982914609407272923455931561207225615914294492139930465045832445199904097153253584186097605495759472246006367158665519339290816198471452787636586211333655212517924817831132338269007937894202978107842494548795781570802257935809512956283379020289548516607652662346966259871250919093756046506353509558414527448455565039065397877565566904880780911056738792428739378089011421341190614457471713269893296424639749685688091570882651774518514839629720066877975542610262906954803003373060478324131652899329308941151277472845481427382082520403125375379877047539060206621160532086335955653614867957548562745521275867634228211273690587492550740470503200299079580272040057258228149727103025526499474511031974409000465164349148108506682145662752432993080100836484560951854463295782412637643091768182742671162489318156003521188323851627743594578359868288480477528895217236956810296091406353407730088988962867797675626299974139009872815905770279654456282330580070121284826480221495449747145572457604988658239475959327909759913010914702532403007185676657037781077880667877523634104276863913218357489335579494873174493529209538647396320271594772573651818651718152436429961233604788069850606834135187450631943888833575978420662921086202207519747874110202534676996256940697288507678469479806834720127424323604823717720134684013708393219870267459922443374803998624664297546592506283557096599831169131556704168906869571825664972442141800119451490411658662841826125895241887877075942884252576762363662557492891525444781700474386595629492724992318424603194762835212541499278192989566222666517640926729061031179975267513502410638722819973113346109977033328657380573513696779504845630063692062718746987210673114583134991933657286960615814682019296456864501177730476686838799738430780911255801106995746059228047779786622292091440665678993188018470231182145913100744048810194832038947160906929844822246005408740106657968800205808649356728691169828506144177205399866073556474903008844155909751539138452992388098090819035876303158197880719728879461014922146317407316816826445296948933093348544713210655514699092967180829237200686864529649154091965588816256868663524211471862359473392861044779867179119584796944068192056118790783060448791268234300257469409927439674792396271586102146484933545175752565089983698694335000422778425761830146824167698871854021597433036823729404780730320402072016572746894985223430108967293159952019908905167924144583517375436987343105730777387453965057624049239829851758551250111394246790521933080663073053182391005683644709164521921085736805565188929663981833387072023657889188694309183758096793985639274269944511149624770141466864329395074846386467788828410218180499132535192193670153664842427573810879924504568893450058027275710331809815082808736516590000935393510547129570823833946793619492562284452944813436516886184801457969878868428169893374593183392932678872899900845921245178537977481047251162344103985811529867032338393209599088342409979494692791318436227689270066615414490991676771075204998483445496218125902523999560623359754189775737061405515234963876345642985765051417322860444009269341637942330348154263747698622486613603118671886937899213857918306217877300025130573663885699898369378850424731670440616196936699004628790981411944698111841936388594089385498559508487750570686688334726761457775594921054503044968370021820398319215226995829016211061735509797126727851198290032701408721306341288897742516371148358030747761360830724166720096631061976343319724126797511060993592053771348463748246701423188072626014500538533990819386403475406742736651223858689230242050166868091509530559953579659049819912412563196286657803088380331948499369580701769021308881618612414509698953164552689607959568119841385231193395223842228989762356149078974820016519548843529433674066552709875079044920799286453537594882890325922109498900645811314523324517513408781692699196539862909619767080642918012136282406457607041003068970196428442002927595445038565981291055817270735051988013163833142814477779303030890797689014863488969137406086049864165299380716524865430995804154061197561288518454975528245244649124676638707400494419303563192813794870103033079787127866600108292737895979381994250496498212680391447689416005835371560928265105433373114919388079345795084209116056538321323650694518909313516456911466501550814371543667580684175062454755018494292842489685872412131364338486621849346458275774514190333394560376038977269248628601518805357087122407055851982916740383665451181517544419666948685706765837259414691290942236878360128434579469506450636459686452714154054653894358414728830859046168013208397829270993585186917386131211236440950771369603060692490360264836076134936757291969743583912124655544403063728369859791222447397467774644398044287013309226589466193776312788176271033613123118816778347970374239876893912953685664915966256235265921394466193581177851663204077309266688631360171780126594169112052685418091068713775270360655640741085482043364529670513969320327180119290078391483949305019318264833005234669841625097423520913183993795362509460537208476525938124450118809288443100765565305031555179818435994380892644157499272745640925932628113772956406451767323938239863737141329894508830772413090048344792866274712911565441430818876764284185027449226832305840652985259035459121654936573126394945685628609822404919976778373265105328462424358832446050800833492928558068991631629745340186311509489009222095630963257504588808775064429556312313373280232615217427166821321331094346017372631336761372851863434263545265499976357050730070296966667259401127105356040416077451950933022480006087792378934230627239560685727204916128505916495486187873453360582357602154314092778727311544403530008343911925511762972545153646153754715849579125950499460593963231590919053113373208114369586895228893262017236174021080981915458114915338898683850243459446291406067934160046728496732491423606705514617864970761908203304970213270205154035366533286193391590924557804202187226201752448035337539842854316680012779352629248514828782852234101045765477317668667018194287350834540079539620264808578084353050488571932864151214856438504490168093070221772030040688803405851130882213940079160954017848124810833637316186179468119214670271087400686966045835531018619962538167958414442397971503954698832729155479536549536000082887175062952939929429460062657435449824602134444526807721397056634312211232565914966285448760553640601156080599287619498827680337847483527261804334576031959647990655665024825591160362312663878427105009324007838270633862334429047291527994441516676641290681461152964932382282853647565677029614880654765100197624731756628726575011110586035741979695524702759181866449681142237001306128819631229803393461108945235522382786908220012675889103663185222374238311174628639945650272125916686366463463667893016522678285789022829965099847913125426698987083937833609399559356227381740220243961940699763133282528914498822451165879942077842738801227120711095774437119809265563451166385844833326708305641983993875564332226852211464322340392310505082225328137170204847085824763807042457746827336125789746960617772671646530068964797994329954944026164218031069788923801981325311948094952283725176761071381137988792529349679582110802427426542807763512508251112332335543236676653182376843709446280452568253067356531227637015563843278100885165242101298266812957512395351802339852474745516193043567256032082427708987598852819520192587348570636090696159593620967406480334878319030425554100023812452602391547064416920385801444962127605723600818413963864345941788554641309032317317313988752708146606361260860797665846294768194346719020389379130738514803014893006528593922104757282172605202401377792586995030791281116810610011182850388372537501781974359457237750152845863704921222086340084471634122627177235931742944038425406860943804731466532120658176187739374870697906463170549043679445368256324069622688474144463137762686348388242892499389899021022110482480676349714431353264094503468631452386724380804144090793944232093622319455346812116280628810942153080019360983699414664147796745610080258501446067452398737794766384364829242367329829281020241997505981081256162310332881653519825949829718960099298359399742725457579882398594640020576474895194975701102557033367127707204840575559218373898115596202183710723692328096184664801997932562484534050490915379513910171167451257959774788672269827533375159944213592837236322990395916143977240636369370805152465998333107711210133632262205184275262909666932666761976745471848017993586882029006704867069570545209469495716273791845005137810860259607230956543822249107562250720721468436729569207449878476214822018890257797586900052899606026291422734595384833879739251712472601196534324086083934731715326147808742222200686658390654180458516000903031570692666304697788035082544111866229712361933275560488031496918249261875453063079550992707659746637273693482966789647883373022506609254903085846071953475402401427938657545687055565948504409187299634092809722165190200521466470583995997691818771914539523425542946379512448819103069389640619808049820064381442980790078588863387981641707916782545952218752982890356632068037670572855262668248093170721081069238553199656199947440924392878950203280456815278372945664590018013798784979127090739570543509720308036315729256657116243251058320643331622273966308973806500660140279155020036816847077702554312400014331556061254783434631247546331870121311128484367043795781904980170963900975677381977401559391953074765405258470984745223706854316264021860400380620684396431465604549185277483782843403903701280175619713281719966591374448916006277139351724688607199366597328701705607597492361473573114592935192255124214588159769759264032298498232927972354526611957831959092077051553970710352901399963188065916198759844592464243641692647086813017686950711766609463508897486415109889517135921299816888883239314270220539693074190860393035067315990966443474722877257903301244759473128410585800396287356063483829398226758196075821475036806711474807863871778387129541803015861780287613444978677705676963398728090559769704832582977479522963845774085800885593630553146467654442302669161168341312565942135660329049871387447515718632220800935017234096833122482649482786779551258047695685560799405965866433167197837457783448377506178288971600592316378832942244544844397695513073961443212976356856944964574274279129989279522557480624240243607105057422228349998470175597598454399358743713112578202474979310328279498985246411167516810813269085674953089062073208399184151284569995843017888429117646816838834420934722962057318768837365553299618584474208939922669939754278048647533736577939824126478516333456195039771467982803970209528203834923569743712900375707930654139180711583014586546266794455342983272299121904440768754105256465942959595849572821579144808796697624509169253684351581733399240339304169453993760044056329145423425976549621514661993212546185583390322109525652278031943331341510956546749569468640110485256186051637528280688486310903887871453573948012174684463614236292798856079311367316018992967096730834728436348841734105162650843148813382876888610293516172589310193055315722031376027346700923373888878996579181254676204004740805420112023265982125792570376253303742759934065680195567517232260635871818337469451982281492331361034379668159171687817194138023125573862055328869458404028812390829043268842492536450706999675723035800896515340170713761787219196448755561786527021686804674766662325982168994733043558041820968209576696283860159731464128459425705205118157918162484282811062255074073295358356067433671574826244955014254672375450299737096403540091068039729449422965441010999242203153086019371282520386349126102767614012163030806027585818298520938326237044392038207393931905873244898396833366940676003750703406973756196407129021546747707761964286463512726607614635245609347959519949222848772966500162922823216193487502481610533878644051417227884760738978076179125442218836896472305492823250225291686188699570081590267313813006529222177759304122239616667989797017335460746834255315880963927934992186326191534181263041614513766534836586167645404504670915492500876841059472824932422452065338331695909643582518319522738852089388334841242222215855054846739560245749772570126366942187970256740911285497800789247400852619592773163929244086298177371039466980090572433074951625920436089879848408711379169471983441913849986391395721824870853960696548800758784624115410588227784495326262123653658077130614325090229852767269283246593932516064587829280330794881623110403585388974647349516530020806210171498268765761184869505030950120807461130655986436219221514056119267918220834957939237774036999000002260189226732402677983119450057189043060099152267929286476437772914814833660010505957267361591885767641342163607925545976905299757738428890364363209609403025076460077442175106425969839309440415440414256204262377679788566298112105057601561560809250247532032986595529531533726659964290380429563235751760274957930897787486745782311184498910103247657685093589912326298929551037857793029548668159116743785908525048667240609051182500769058299157539551204593811236356085695947467073366476485965973112877364192700351263967934136428728835359042878195378246810317322375978023300077417291358371104229405134251484634340542525676392207866765584634138038263047285033513073275939698978048124731115184431096341151124736093675339758151861561336777238437993481850469582199715453389080832081070441393604687571615566882451251284653234800060231863702626341742334221634042511939864655343159671367494957410064246235938586902104893144369049726947868594863467413107164068248059537011360412600666571443888485890065553365022841301530287328735828003450882090138791344473659861341715114624181915824734896257495521028493362740831380997463123691759068191886493217732228899199979144182740046547978229912244776556197401042308025615373027304785966699777913322865571699281114550503214111967048880429577279936004976102417884554370084925972024185591101088097535173513166389014536933995865511539841371761139011163862213552240609269877454049952863646335450453281421619043982924293597734799929635082800268496596776953208812391013379187796704271366010686480653070867095818630149456817779027999133252030242389790576561961289025138100958970331014784760735972848104207912045464109074208279429686301829177536006684973893208554295456773040554810035203824164346387218813249528711342654530115822762537403825344740157738836490392928274873300730711708849744019526660768995327812905893035032279022863956190909639065800687184270276623632353470900203995905034671208447601543610754341663642789926476693974981090726137518232707387729751463734157069560841005662856505064123346790248943901221169545497837702874987387953181770928099808684822097697637847265476514019614693022948368685251879020938865755514262292340476582300206936903550395267812057239802609797657000438901362960219413043535002079366154547472530168985394751492888254910142674318441357893200317809213994550194794972397560859269957136426299014312865545253789081699648189294558967563566594041237696187603547012634119517106210483062016781843836346409031081847505009669277733386536175750381358135241550829043575601181180157495518126225236751699350487779572244483845290550318718284351044231479751296058332815710182639139956380468218138653675307590866085464947540990361578447576815697208409805858064891061513144151924243679096100506190283118813632176625884495672072311128731677271669379234900343016505213194755649711411334958250748548766797290235089431833262338404284552432317357519208708706203720068879451092623913866782303780683850917472671773412518212176902217072086380199576679406012465916341834128104112469615344973951146820191981492737815596696640705121241429269283139167858506013522319367671034993416882117021162129229996326215660032536999336964710363175672857011332450190371160064944225879879098643371674504743038095377444867551021220312612974534332692113182034588725389576167160556300388301801234519827045743612271962925789272254840558892607267503351360780352718067725688063119647046726253318552681391297945313353674568738315623992476704191403028313934338021035488885160941345735427412044750803195745513130721746231463296136612532505948386887985571949551272801171730938988418677716771349099424462781505130524326778194783573197192842418386580504523644137996352722586500993420985902799379518418883433948289805021802635680698620934814121204673202803124956705699907298727393073811400651512421863742966768556228231255078754384531541552000132917079016837059226033624300129082481331059610276662291955236847355135652224493757379858791688960658580791354710365182824363048822379869502849360516125520008541930422118824359788146569507490271528930488055105827038802224485544807011231667356555541999685379391283556025507942366525006982890313581972466297215665200671301158570347806301587280004857455540328661431424445398567137635960278716535312848307974426537446420262972123290702744841596832224686762277873572994082869816997247913609007515779517962967906361673691834404695298496132865180933425684648461325467712957605862344533083337099205607569629381703796653278369002964912024610894742952665502501932399322051616492376334485512352188447370806146825087952867680128593841449710886854763843632224299056518041039814945087822690077323473092064112134348899712143754153027379398508880713453905192491697964203409465576565724425120327155763353510622495906874657505135555486884796308772052259328593273259299500370898403023511546882779037861342904152267215598750963150041404900824883049078265739916893448226941585407981377761127257205579155298064375117555173077516637548204873419622906582240070480450306202869583606432482518064340226308885172809457607963386873378859471157192016013388257963381564163720704495699193356991591756128428708396764640194314315287205269072585808949283132045683058967884557663146695145454431820313523067970699379957772778965106702595156832482341593675058868790494768697268767144821382191040016648829798769452296638915885158231162370265756760129299205824041147227887957906637103534551436608797103587972338221856825985626286182610875685448273674994481347066662015185583443809406634128413770662557877740693262867533414364528479450528626827707044195004615889657779655093084489231164164324118042853767490902404186083010464144795018170546522429392870998546478712873684005948667693848825531900433462174295619231205606833782679751803892373697957076565498295135174524056571616334307535433249108238091115763023688602894236562170200313034193917380233717047766407351600705994927501164755507937181012368273463874227595203000420072326206603424284374620391512666507750968280160172815745137315910649782026054061026931909537365644161988342091237543678604220058254086896838074396690005602875041218317121394212815590494919000493149633597775755425346136201303316677463001805662953820052030821033501361267885352055060836777526231942612278743104395176286566854202591826933601972916518521868308644395755242635906698111229855824245141257736364823414493380806649036688286858446926517162547563613309357427785289623307147774147337272058422574714001332580939726217589176511663550321738257300937303422099552333958486472427439209192410533295593631293147029937735900037317813996446605962283652887556982388956793264981882779261786452692168930691935717093809236572225868963220586764846549790578034288149169343919713522936616634764381105141227539087332505305873078094500608096331899288243239189128959395932291102120255300167882373241117654463319032591084009054212967077185969229112775644042883899724938018071936380921639345637190993923284389511516890549398052753967948874720250676826361180742254736577640243714169970749160582973280813999107609729929656452530887500589814125595701792390362839311130976689515264095528704410920240560647501963561051371518272720760368740942396169378102800407746150381070704951710513804928593879941892065088622684942119325584907106107098001091357116297241756812018634189607125614173741193682459268976337783846101707676907056592319383651848927539725322839667528287737112801449486434667537394449253853201810228310863516110462101776195520711718534454181998881102862948092174107045058424192521036622924541042920659837470221589898680457154215176982516757566847773192836036256791488665300059434507590875768508380094168551396659451041891124665629661678693320310191769084723824903576029291422915271514045768065983171046578919982539825381201198942495571513335287461579265592775857763029915504660104694390231084928954121653023516813644760338501034215730229066476803430933332858105345465110899641818384277522522987282986598787630501901345082803783245783330186469236202471260724758124544452061415639260522182788200813106250850353256886282804697745508837866362039422194183723599603578518173088911897959277310237413955297376366133407511144759001999751702676942251895258156634804610306373227674300306625001587610415096631380631250816134782541965859516891203184157248647766500059766109465387755820761546196618958290637723645660982910742326672328095815593698333828599641365128867201109097637636822247587229783699766637134265910540021952921976122853570711385870639978220053616073997659448513399338529796146399343854183002206620113506053789742319241086689359981576280811476811842478764991695497718329550445025373502230379455217926289761351245723134953750957850879004092101301327011696031016322012257598773104324161854792534263431916343771492799749147910779418621315104675422332971650123568334662603891589763543024363665288353728768274119082165955944214292171675757908579865551768074897341262449934900932693656497677670559520444108086997438332329701264679741653241784276800378452243897377972857922224735078243594434549439142328415561012556796215662793763433115321418054777383337855730962825599039972343168653038602037777428190323150805160840437462951516101230952002577409506564866697212741057351620720950302241336743222760519373124316117188280375932547799195715872562071236078896481576648594125761311862065735390808952328615474943015627590153010445809484236839640307350137824045764708253431825687945257138405577814973535513244536787494051753765519937816456474245126697311996659677986920450017705459987350002997709334010816941922889103442604533776542009836040518697683393456441010788221953272699366911456320341132882038477178636797289743067736710107269466358840009970946702346624535911604736383077747437236921133709254897132921824699235244755510114246945610998413780712245518697677667342691507020978740509360319421821724168304609555581921551009288904840326205816224841536935803002473895631866509354354467692437736948748205093499622785652723877428719319752192592421728583908576150708810919792740562676311579748047828509071790701137852996210905327242183428094964429625388670920346147940093363504216007698615510974335966127313430837666255063958668386844212877706933806246424631652235591422870069916247890447321346141553319271650427033800818539174011336094770121484339193025286183678434280187404561440590011367965840292421728930534943566341698064098197275688559262212616747701085799520557425127751215373649350442286283055238243331355487143082708441680422383625791451511854999215522827406603309109789709043180464450828446987302657072840700719791425543118576881609761862559453159552282802178860170471728245358999334754616916619804936905743890250276540217160816500511802595659961967702559123886168379469325656323079731781295739579724033807443718173792522287535248243467795804637422446847434089219238584907542121897514609840711633718695874502253754598626945801625634939088505091370777424947435109775508849064226439269352989452175420583406911857959560736980727366597339667107829803747886982025157175298869097333635336776715107689186482903683469674541420344228809507657789086033708929249912343656255555847122438372953892423887643974449606867361223174905581702389374265925179818062757923472360652626317347753117636016596389329100612616481288575780056105293210349974721985464046584962485573756816329704206646589811112593222428294521944372723833885165616580490966572174038986473300547816729322774208570686859320660928313961041044438412772336803273835046267060573631645713108227955101841494735108808162508179143166562783455345966462873280661689603345816842592937959456216302790186333583358117384091936872700538849876291377038803097769499901703555279754416679512301675598976418654506320235769952426788606736116302961665340237217814484953561653158906284481521231532132484263280865283402260875655333840581875826227922613344386649974149283629498420699167367270467644472568139613102871051598122193177907967959070082973827387949976197704238262402240606675873920561534493294942751569777166618440323527778816327887639308047513332974755815881217484423635020507021192056934367929396756780138052602257271843255284642523450669361607141646405792393928154959832145419596880469051402058924621109913799146923170062932255412189868548225608250430119485413500937756186905457764865525395446573376489576706226831638918911643346155747885586286775537024804158032970826175549417858939205293254897334176630456634920469270859634948256790225668089879921071677622333172212656692632979129968889668211335252671657503863794604908608216791959972298574139129466983569911618904634376307537503046041866254094048419925228220919903832765035457469248046209273174050733393587418130545822300478659157411739734270252299542533709286002288977868370467319857769208923096557341284514308917501566499772422315308194666337947260839246229607978139108663566298026852760397646549240752936804481408579329897250278566267724219762397387669484573007681819103203964826892768199234544769561510698031054870558414575114838276002352374266107515766512082667496834139276303036233516871198376662191394243971395549681167733211676255270876390442445135017425306206597483719778962797173548075737085010499099690523216831626314094284537771219663820383762953662457400043112833385264209841775237509203162167058022611627936038457756565100666106128573246261753045838415692486918174829411617828792718452422320508210442690708491490820890207651942082307202982315385412977134060577252915559780283579618246868631395733126290661752448784224574939569626899774206229864722026716939021371898075280215892912006437007346732395237581913251493619279430899969440640544991008479324720797044125031574415388430882473533394037934313699355353022146624107790059734933315213330468901361581244181176085472826060889228840461689818367610819574020337997722456276526180959043463680353144300805884389282227054306487624555718397154273514494102737373197021073852684393998523641848021724698883149069511392300820473336318214112725830282381957825472839995967166522393869787957928934944598517705025013493380681054973617437700693921782053899561908697372910907317736041662054447281111468743683499905053964203034771386803623565071385970493269038025697865818858028845036382210749986224645404300927026927084178465015315442826294920108990592250912941944309244947726852136088221722704326099430274788071602168306888766904869896495733769217863504533004583544064877333538418951323361647949626244039962864971268619916696132228483998881032439534461990890000373782644682432298834218367153260705717906267915341794037488166996498092224165337039050902746034836793357915189672210745312185315807768550326093623600471832258314654982052000571512819113393053857786535141052669717386573661997988749030309186863993110591719458487841948264653563604654641494312429864533344973952028139836818678816057382120025293658013882444050883814112759272292403509425946986576186906841483674356271742366764563764378976221474700795758505568136249754067718602351505091198381563573682092813829918736224562405723803674716683246064731353367931053290146077761264103314733665606398250508006087060117440802225744968756301767340545680435474889096101410787946861470205293177841897249257164548447572987238813776563717195102610088952052821581076477430448958187319577919291368431164920695477642750491413530749056888884898286454873539244433860780230841941741446974417666907015703604747800917394063298555318115367304436053809580881859244101088527342715753822980773714505917115998051287117503504822554764366907422720596143762727784005925652667169759061993206807382888771848571594607382897554940407532033768931893828130671094454510328026227228236006110962329787836446585195279762367051012215995176779815533470878584674161292158383862502103561823806561021559724820942205534400207783100838581576469274439095820134400033279628742458842194008503423826256129385935389755503269558476486632123361265964698062932859606754293737651501487849744272012383058949036493174448271574103751240344367469769927535665154632402109753118888998341724621601429845843143359775326602642706873679543404267200798023871462294845497007967779827848236751404492835614192846503040967951067163718285004073976018219266334057330935067843857498249209404287714989876079140186023401114209185708730504571707386756993715002098452147249040458301699077534629228453105863871338485331120789735975412415335322158216604191438199674296798744241493814422888502192787339592282720763510786933768547012913988141056889784271929909802714965228619284316280980239689004930004828286178594188902957847148147519167881677693848090751199754949509482547090472718996665584601838070954572372036946160470765247274092533175648502902418861938719403846226501039551173407218428530641207295449000613493053800260937852360686320274617676348693838128338556345925480783323068465051005407498983057499724474712279575094620958683670099607252458470519023454450388984257012269215886496630879787932354361155256430534246851346258253008948712324538616837346930812294549337296158059615165917873269268505052087363685439276910861555777487808941887695282286016484466616657562525707238353052891770984305779253659726456329820751428460719137953008949057540274893042713637590938392001362916558598562167508112031971122249640813355626120665793409179453484568829981361877589938716550631338191142582121030040630132608591469204548210503035771287194900169630161573649455089170792388593755853583778822711953366240951040588545078941697253642261529939493300609110041836161410994677133413939297338374847044819777505631954928456546729413580330850430520361386589792810489485493943181754054586802263756128712612966009785883344377733364753209647890956743407270461649304445502214985561797720727910962160720554298847978630628100114319017738412663980684815995317968981880400027414326654645875932970657426428273645510428928776814880384993339682577368511050049141691736829925901586137556644998470134181829122247533570368552763107523470019149328721813871987126431817312818529808742422675013928739191808553159768428861089552060655245932162988937924493052471258514226071476673504920648179761676086158379763020181272382805641654739494864195683927813565857466881513476528406844040907411032318091517098802657551393063667283928371276172838854288215844656095503534626998772469371968083038993931746931752320114972494245327532371814868467805737307052440685573507042575078999861677414938359074012750011196662125340349609159769984803702834443715125347503038181300148655271180942016096303106951719670783575516109872619789594740822245918717251605547244750962114702076053001088383448159601438899973282627760937565613700131997472924918785782497254832095556211096556323170951118873276262802954561165638270478622680389887194938308273562139643485981264360683313519020462294727751082068387381798242061873627726772572982773313515959568390993722767941615968898154116212408698371046444497720769190119418723112121234788445261400398828877920704677548954181215255521310142587955968652707120263556855688963471412288729523132512049512740387424898141032980375418226216724023538519953123049609475290888659381059431715490856365365591131212742965355999650493434726561638624454716407117855158380063779106807483141210919661801048723498995827693954283972496369853957903103634099987840902763473527218072309606122790670655274944478272963255541334505874047558174329337859092161712835884666236510049573982787140109233964024594365834390192298134776985940127535011190866611554672603207379070675014787600529774148262981755531230554402906600011295268029548675299354126483310649560228686704867730700540223796189865905100856711345924862952110324720147707670648603386568345935752267797557854631903269882923150300781623533788488533450747792520138531311749359425740667974124598452547691781702904048831890160029119124774526985028687397651393694779561833675580420765053866528826810404426909516708598129925575502069113893142129338413008851103626452601099128007610450461788900474602075468461920018417603253886428387623422062519198904632591143251108870901570122971730328022468919283107043766995151560412412157964316610227546414691498354823385533857380888092248850439834975669510106274352482162249649929281795356827264574790420876641815780524895774921511054471269927760664478118955152731034344782019654149168152566326450611824546725400667708020986218633181050287906950848619465180104167482613111399496602432673182771810230671453894467979351945127436917269583300711330642979022528718068362086953149228893862490694490031198721212645874787215731052722999850579434853487526739371638099198981055727422030984888621569241360179811424117371588661123203847745081211263752669192555808098199032893145986735008047268272274121508908366255163095250575040270940069096521128095898825839000383986103021626954532887255250549438813450401631248553391119704138763122049630090885102407574221848772468421033566424591085417190160007617496481845395203982305488459983411475352151225809021862643396414363498091133280167582875541806364426455520087996549613334534772238713990923575514602931492301768015269697660486901156716686566637663841212681340524449313946381685356624297140124800628147887229765535854040670204761080563103488834769590989091278450361684887739891122745892347054162660222589690924711861153174359883749172007652775044252861995636832273260635489273353596293096663711120648848122204333247803778901553570213466055177129499550163257288434086875631238873790358438451135812200768569448625568399469519053404415166426262767955005996917289458410966219287213410138107020133516930295754499586955102175606590590806879227069470108886677814239491623700448622955447257599698421189879537837350428353787229236915402749056285763021134316993788167232005547074492645190545730886680741458465377113553424690264181646420490959220165029080209198698910752902179506982269569106896214650244728824988848628829790107939477337271588365974813799508328976196960787424932428781524636355477289704613162473731222497692087153220046006289098818718437400468664717628578660297998984741746731430400810966173501027805391311662202923501339764746965337426267378264505498722528259917637934999605702383351953593145330403548510911773678511830351535573157705198741082503464626280654279803163471868508311361023219170216522670491606934560377321592254447348645462208965334707343695605361924866334326052681495067002249592412955111696301835513643593505228181720932753318750614038680063960270499064588477196368954184730003883261815498532763693574281404354428263170071278174512244000698804785328468959786478964692679315731095639850902867025826119942547612169349903596920023463179057891827414813616651019600196622768989068800593680181089739449049535234042381916290133544449640752499864031927761145701730911152797621365326082721250159830294671549153791388933793435626346317113443068776849804235102563498639453082350732427125585938677735250831786723796217442430169218653512609233274429583407932556417420900786471562153463398611355321955155332756565163134491655321323096060058170713317966937676925212330908727852150006496681371727727069441636996873759176134565722014856253921287323057031998996723715587429978534985773311614200401517296202214682699762202312081225519182450511185766301242879648874142491397158724067122539278280242645867344448793556708670246634235960955211881490554307286075846579871370049478575340425938103178895861242573997175897559761096899604736855522508130384156081745038678173648908564741967073260850655957422499948773777243968645479640033446954467601658213785252201014256427290941404423547815209694638257568332101599657341947076505221597716270616053964764385248255550286187339231994274741324411132438416522906616619767443034300064558502654799816094432313016406149198057596767021220896906128271764982937842116268318358189597558217691967622590447404816240377068542933705548728449203529244997230561530438380677692529489987882571498567717737859971591194783551151383748763154337049698536771896497298148889200846772505358562362457892550011301617586944019550254396093034072396538087618884919213313520232488856876959917282724675929784163122801932641767364866875449339385620454705947791901827059653603583839422787835487893994969142450875784025140301792458461342212019668423468325944710867395940789165788250690720668966913345449443547578093522761021830085109748988811675122361083661753501208962167119602350461201726492838220495256640474362598211131608337460983423841959578924737750999991797115230366103169193532273516698069826697928671054030636736907524139901398672326282528010141290206213949479564166086245551708346166335737100334538879561886519034945541605135088380988977590680292292871393787508340569144026010941010457851628379083941343791094465940440669285301284210519651012903828158671099007067095827988967466912651128201929437983831349900529413114328187402536446535801109866222544658227206232944720553025864512196430621910764599082067728627741036309971093354057471378391003517161799706913996984805409874086754902950544169322040461458767101595975233901082629859876365451847156912584300581294682535340073758683557136765886618743180129833193268322578067529324291709255877691864755576964013138598762025086757770444522482199051523673377324953320249933741245770139102199023874150636689167157705202584196708135408429568945467282099635034582205585869676655393814870582980833891632598204679920347265764561736377603324660453485365936452117476447454341020672051156140078715736329534039363303048717584786087594621023664732803601555601848096601308134330765471640549042846620093182607873069574076747468745129270996784550330371449827118894957239122098616753293204158021800887056588587965282692898894163621652442448795259675131866786125409234400852395058850612508680147182302711734060650402150269548906536873050664999756251355460497555557379778227533170215531186794194721727256753731201091627812722792492278742246521746850074099993507614044295769611502111014438057119995631169250150205393687059309406754197945387979207572647164579986544483402962446815904052156518639239245327916934120564229049234352182793000070465929725618323201351289298624310154979061248621254442994306416112780441871101952977799501949437137286547302862098273277036782080063179754591494598868673133459987852963699561934103993818686566599076446869169480001697180263890186769061985504828510428063793090469109791839035360495059806062402340995217850079924719696716746399111826067637506539557270524228130922705681943585789669357360975593842672965782498852063314248975001849437514582484358066871829718916822703602964221941297763382654509682838194274145219104301682996429778438963492375303911830505764541017463909218051185940631737294018394852906151180793158537371552706612514900514376241102317697177714790866476883086495640260204038131968099236285433311029737047109767876856125101313811805301665383144124988961738337595383932464194022130140500130713931378989355656405788135428015961230234248114876973690350258964268238922573561765075284972900853205381286353966201922336089075157156734651919450022339679115805236412135380281380914460853101052464604160669472397447719363632073679634287787269772836467511853491410973812138813545482575606222133618483902376505061882772691004707005748199122685257509865648769371110368883012733701762156912592459489462717316357325312558100530796757781817278579291899882224409020802796979250316472889308466981654011607871698415941556541600208436946690343919033207447910881581444677660288285449489506495760657535334448293820565559506138089527593633985524825117846016569979980554452883230733160885905231082455189968122765639119664178940123211382693521400215106349746874720991520199441261865914533238438359553503814184469732724146036586632763148092557992003067823640355592969783142043261837106873746540438100352194401825741783872038937518420768359307175345537371550837152435170335955257264498028102467013572856399313216543701740233214640580255968178238111731729058643630099311441714263128075159259240307524515596099233651992753035523095553988362612825510615660554445453970317925159604284938711958251698850196749516824704146070365052985624390560152875309902577617704794715192726613155280101150330692390988263246745381880930262852523672266858408264764333147104923579265548224370400807222301477813585630993020660070691577772824784923811088252825167104593239787624312296703789282612148888233974723229955137162687576708793694304552661872704467398122352279031255702188916952849850847720660044051001726423148627639913198485740623208146417292192426137387043368108105828204312786459848527415668884170129068907197835179487015650331231416712617686515559409173247154318121793858714682058375608431159954002755418019504398724856519298402579330161442364319164651319680825308300428365705379942800023482474481865235740719083170416132551048052182123009690522546358905670630291855927998233502672393999748622498712453246123847459159120693305305892330040228127672097555417269698416800964750334289845834753505633230628047533349083755872820424749189460770690465680391447369479922380772277732722464473446670436548604616677049394770536669734808733025923403860703291309472618942568288594826411070404155020176255791370873636668802582062996853465593947616696478066772024866647395631097869166249804894744122273970554722335625633140066351998327479178364126878185494918684339116977866546895945164481917553062749999770294756052319538175621210635771874738951898544021930925975544904888862781644108992438909511309654997371433326404958952666735258204043661799553199167192137835993437305313404116411181323116872893877235153138844756208718102917496202191639123895216144285923982089892306007915315325861361295839553333696494067195067412272785843690403018774295727147515219428678482920227558572306075513744408780750599870675453713092701068887209675018389512031831694269193529650395447767509269600018088304252785959415910268673667908450180224618724495873518904353642741189279287136317931459088350067657991839612374668211468080473791878288424756552622150083163238488996226970682233533448703758052436759975606088775642374277334477769519929353491156491783056540272020477670818564298536435686882482891819026238667628571299760759399834022389605069472482657709563169208482904124291070215703385766420021070920806499255740747637527072928366065321756178530146397013741604191781837318703565664647073254166853771608857663373126714024419432945086637630671640047854999663430556590266764863586012026017292411775915312762069294824703437417972827464783843215995540542698658855287316491151171534928766850367114770163538695098104964562070208104046928071906845407979865219174876368817218398851193173899319696177907783994055841778666931482606878356485930110598412537918689136442968504588075323122861138312976162266648734341108182212257375940787894936283426536474916481640365988705104767756281390224259065422754327711835073949926692109232266256099935371993661872025298027712658205551990220473312987492663413999137446677722592147407625205442034383272660774317838527967313700687383351415131677831747645597512374835319366088808017637582739814038897199654101616752204229450194276169910701187495782076995851087482275309502204961796186533262311469313359501953641616087318329665777125840646388826603039431748221780905110895684229391478271197295354037628373380920231565581504129749970891050640071706623240890435407544835099738742475538676030003034605642354634255403013332059208646792350231528046468264831659965668870421660436526733352788556553682444490034362227086260684023797656229580137833759980435759249979941876642019235781160923046213334932158620157012246506231695563061917479167183928499064428614729976706500240927131656673002331279066807504971312655934990016946241939756451830654056887088584701757664264242681383254797854636421577191071643181017328817119745459833609661446796666691265369668095117883318638519749434866167585274815360114109045618173634148703175503016341984654718844623937931657371780818240665863990911116423804620010084278801396181685794157495045336658295710929079405240907827222525969892356351505089440029318151540788032818766421953882661251465397808252754732982538980354649459546470260794555068532561916039056186059227433806611947621151993217747100396098623770729503030823354490412528341292435844975382263054627465717035818096047029371508674831450777205541522832644483660772349987070996012688361157470252150399174010350788289719309641624810878246351396303728929197795930074688664187448944484331848239139846266438590660672223600047655241636662171598005449154139809220570776350822222760069007991555502248272499908877501877004363004468864161732660371895254278166833884432838465769230729927285007860379357401861069619861106868986520797944627327418633765459458328423462752345151594636285615614675458710566060053901591806331655008468376500069420590579146260441803116825523258962589284155512848466236622816310627105920519872370619490347680221549990365992578337305528156496220079858941930667761082656054148959103780954744588090411496624897569924816450801906634759693914594795564264865610210922875011312967255354710007179775336927394310310996753535436040296793660366013888455942331399928125854282992770225464405033432708772544951950539523660758835512891444149446370319104278538102017289966743149399750762811718285931587656612663626948121099530585885223708697296106533535866021334972787731751197235754306101954704022747756903600286696183566325791287183792205223194019447389582132073892798691335568348906965535514935444385896126299568925299912190143299708511146705274480266899771253475024503030656054494447288161921155112947693435954525557040399542439471394498792921320854951897155711614448356718756044868869849117000633539247492176724413029712489739883509443599781613431433303507783808682573066864893710791050467742847244453996035929270863816425857720300362317635047780441243660846046045446120721001055432365148737529854795510064911639411351341955091709047107643133450703179945075549306563171246456940999154722679925922372766041282276917454348038219022859692663335468797892597169621900299674453220652328610006640263457694676927783738114110508131233272738153429560003508290767346861747468833380759929739776981482626066249162510290531095752364229862098210017425325991585707888633006405629107210419716401715960820916560562873189969914922584496457254742407207804775100839354903525437654538530998070301775222538080288595446269294993389008871736551491088781296915713792351104478025073800125958287791511209441029553025681688237440126818806540265209932045831591844443993232644929953232087775302061211150378475280358327737378491225230517146534701997568123232476592976463630859328864945349276005201395881887057959086592919965646110293928843386567365305499840063770811945481134976950566145618787509767641573141308132947829691603497441531516087103343503944627700412407929485933950227193684668359028290522145519021080206666715144645532388642059855468066113321384012008973818766211442771428018550776886960864113863232639510395747482963040460941772396701662041616487435071462076642752577735950867926138126114164933264280400469558996861271861165218099883349561783168944979390829870862284805933634389353394476961115985408432214607867866500541639451289505441090521571635864098318997244465324585631498486683846118378468320077342034669905652201230885480317978969798824072329138001604033412138059595896302545997355229914494403078710609056166664647306711385151140364982088079604925385645188786514042530420457934855992495677809349674811873772279856898957848571038916231617962228550857648666419513310972354372717636776969741178162249866431543503180219582876462358576936194762227217293331693705771657198403434358946559445953033887101135879620017262278959232611125585634517731952512302133151942274761504424455496520176482045557507538150615464430761963244011018470376492235792896479394391176102320458137532757616248728872671284474180113179909761857758783621554547604857850973555398453194270056283491500923684806845232817722916275850801261036766340687378107228468996497061815221239498683961149292974008815134754683173820534849400690197870434335673273080243675371966105240478064013611651011492942488938102084105518699944499184557140244651130132872377303955835922686627673091788243079849884784979136531189787261642653926302713104324136845680263818307039150223420324675082665130849966051109463846369462451521662874003183367187846372238870346666046717471447264652808091165228523170145124403889641381234406804883595962939625194754307204195765806390162136408124622962882849617869801419582452715733612452920863074587694830137238014814541823796544711580743895184391398043292149326895605059537327612289995840540416354605409972140783956798836234141635713532911799665167558707514139566682836114862001558136624923730237875637143350004225550922412574665837001491629161598074741508038210275832608651784233366858511620984198809427712598806110969145675210874225207016456434632716197284978298630704037740870479800071231705928333681625044634212263586175558811071579319663400218993632409153894292948793788048670872035794488186463656653978746120937862647934898728929212555352957319947598983478148710575059187315745876812956531929081852482011994798289083961316320344287293745500734240560233956401981134577949639574677272417586942244869166575561423448827717826543090216900464171603056693082417420682035332580734381683554776316672616237209139230161879809405535429015954781020721313382417444925157546491261039547638456698960970444673019129461359145847625111913730738479578625925665158577104211071993043998631296522924590808768250779261474785270414226536374020626723701616931597840678407815903993973518002387374173487090988086442016806912144883931878095251600057786523590426489527700186421429854975205995886840535959555978961891151588592241940961176946462571798256296002846171402686651181432974036334032080994966282875512719864981075065689124361695364311776552462189342661287218800316712596324233380325449570663996628185897552826074661009482026940348736987846358096769763655519324035610808975430976255025875604694688793404389866840591512611208394160087439568924364972368022024595524825823791646534404599946593622597411225902734802090030554587258224702311003074703452469782788324989172096698403833019097595994374234871834950510339768077349153691602488410484989908303737041727477928599031853525721975558830729090647080163598509093351780863548919725020202377751614879529442199909249621868862894924405805803376910437358780901845521792490863784309084201309046966918759942563498746897653033838240352078936919746603300817659557028629371492348465877958027454184490941473326660289085142325255786782049574365387353612257366704179640339534319723315971031156481811496807877559566502964624930552062969096094403077206209490808669777173892785222721872439697543154031756283083502651739143623405254223519346994371745165434624524859037302985405697328991371793363583394025367780827154567409924119710688625877067658134451830790458252569197794604113973534049824460755178763654374769015870173542103856260798354340200957107641669970582984517324970345172271049968631616342411614374544141117706304166844449959197277843353145252185281976328703355432638339586545997310699299957500601323949193998633240363592574933697400317738327703540906786882795378244057542524441938586557143955659691568406237252793472570196403382605098683628427328794828909922496257881328999358457381239829678977548254963568219463730347964543322038888970463772517954491599752287615583651206496354470397923788544167660916070289649749917100379863723906186849376140053028492869758398193067568032077099830610520221706587858916903329169262799289476277257557289717587524554198679039139612242160338490016067462205715545488800611759640810126417624801811098141731153090413528824353532770868062370844972638710575783684906030619759484593335051695024578014418001970428752143509612226799350553838806557015383704196135224646394799989316216932656282670270700377902706505798672564646440538320656564151119713233934802131351147289319952649074117304165877304889051472241888813889347271388515105792766073314006021955720467711804454252235086568003273847459119561610484488426511151008477969583670772092322739904915565270926473488652273908103469060301040267842279843085304559563317060098074152516100417575244912190888076277871237185329902972425935151874232586111624244337849911361872867348013988908328673718128252271261423603711828287978643517852496253300998630637147721088685343129510439467687327210330556479203008705509912206938967583874472034515049459977108373193687068999682629682799856668698371907370325897111906614054101217983593792164175206804758808686483777364333523912444953191796224785757308104351134110226883083283405224728460878751623799708275417277744024641613739614116633710422654145134404151177204361723126313616178824893181866209836767642938223176650809808110912208311339450626495620990109215767667953876577301378811487738111735880207726461822174733258883295865695398397623872852507478413939277835157165012221617623032196293373259602781397062650323175165557163817527627475556878801556581301124081028602705683575161086649870001066104388791772105311791136180620055487299450977781979132625121756331875901456072873035113665827744726686202107287558484329548760515695896231950234447454003287582307653488936804010287725000924097991893560668477750502466024998513665009313694354135521787764220358929533391464250851315290837715854776611262191866426449776411050513440745837796232311052069820123143172950827965759237186099901771531807384062357988033104756736007382047162655700687752559572422528481642054748729444564845068218489804261000878305153891489516699687475266217972702702387183734563206762845639525594713835262663486220064769093918408031592265299518423402292025784229616007415686073670257018351799674712168142269636509638184437533189422206262752576360656745736060022366171555292793797887698914945969424176212198191452925282715850321635413550467731582052753449794526952899259416658121641742968349591207526855572618780041866186182362723100394971416667696407134460926369582429730371628559332634770312389753254075245086394956044569966648230249284798387729944433070839318069289833397547075511021398029422465705840266278699834639136293737139118500939653219732320047705518607075104809814323276296951111517510400827423152522979192412271132628673384366707270662287825633041688240231605408176778547037542404894776393038282612437072118506641703634316569051857620850130918227620336681617083914050213188798145925896400794264591061023965340825973389082410091556140209254415077919584966546224923624816064686506482156697825742572560957364731727196047176370556723284831918947468353899065086163545845985007200978483998748281521572125287895697864565907325515537617217701069732322663157371623396006770270401814275518554757550593003734105758650109174842111362790820162338437327529193885779240190966050762055286637401149965215457017727937577262728620825422637537672948841373916328183883869861252216562293163931549710697856037869230092577258753074040650557383835711967476961390498806981860405271456964820390307323814523550124198920676533851087926715853245825353062443257381608420428449604298673767198788175695152726611781629130170134594399540183589012718534119286001494807377099369441065419652654761953558116036878977818352489416605924422482541201681637558509004428971361307264989143302800518117367319994562352403735963634084566811652969287386999928942424085930694078639969733432244226025841767928332312608710180681764464812688061992534126820678922375727081086948898923094523579761021434803478475793810548180008454919729991989149989574708458979717329015471506224597245518541040830018228599622850192765025873229334605327613885254190477415944587867951192062631540216548469012664505452040265981159323569831384179955201497516551423162549999181384227514798866989542139406348306795840786203978317611461003330794369113742973953712533175892800719460709332678919333198900588377634375895361670015317144630425186362803509519647976461366856870163962848245183226095325560239669567391513822568974948355518669576515002026834744164867722673872485210463448830450632712359558204815702684748464688041926856207685540480927244395424468133958435859256242501707739931647104310407378377038369166855626900522408001249430558522613203816445272078186700034058765498146980121933254536719448597906780311363680705717603102865949248170760743774602981047680564969042064624525390643571579069950130694839863696581081001600979445565222988359276211082622321329889802835925684910271232053257348383882648412354538547115924983963075339244469048906781003401559109339228154407608454175441398999458561631312470532133822624273506376397589111962512443184663936779584946949038803675057423693647208078717234003792078610356213179393564722917248317576163844948760627807246424420775275308471424277735576205342472252089030707806209605633299946158236766736089163371421992487693051447949672628787530965673111355229572231301770471749698224522471054757110851476672538899282210906650019702575721017113100824481160534470368366329695046576674107310864753552877622724696886738366352912501864351953518908008583359237155032881183205182789579919636041944366589350320364332254894028109861397446141599685779797679627651722782343245263231003489845373009564982588408376128355101920020697402223492366235216287684384136448565673898308994311709461785156003331805743373110523003108181886945551580229009418300814099198271836807144633680009683110963632312531375988709929954014089862855865678101720029594040769143011209861674704771668044444930473066983798503457813182680098160526193843568290566517210495024822261860948850095525030602036628460458157780713375775596689933190327615071115339959721088752376733883356155336474058155093196067843209655009307665947671425421975083217079442993021550074984764279614712863159411774552797432779588743864125191736569955644757004958924857327070157063359096283322807279401105092989700976648571288641412599894434765285796443459902636497511816877672299305510373420737260703479992528329956004172804117103638360222691086867922835346649507333383776661632668709811125707610781247307979464992876783138065605405532939187278984760380359331103590395315353333316720709197878850245375688973098083346479229911486782904688716851960868536586562054383480385927276014013257240463850300808543542892304909955944164359113087037513862755783138157674210670692074574582879853696725439059137693092354251181713661261144899568268431056661023079236990677546187040026659960027175326039699799534010089957368122864005786646122085859806343532938285492111424174471931939740096747957229439466710232302729137219889129082139297279485210819227124816516097760567481029741958422044607403015948968955878530317639417094039317487453375690085138107647009839296173327763170232258452980316341515655637027269854972354881995615579495058450663234407772107389090725058965133748444905485314205797781616202331845910140409973634360873246603315441575187272603952822358024265944506829811847878883989827112833302256361891784480905209986449872188416222723787575193255499963467468794582787177209678031043955315365387381922633162905498403252102778393489533773092008376567405894051598928079478351816852444373801338173593511241667042938264869645410417888569347965899177667785723926694166093682053646202633938567175717727483094215995426322309165591453947282245229036334004593715214176609857947961125810720434014068780910415927431498996550130828031461699198123999915803505061312533566845161338658164910757161432173612656799881776784234912687981370077483001684129921108449498799936575748177508914572669402113732679141465085024241426688399481740108009806386872661376257164776462797458288511862972333575236472926297417413270349175237915628158176172649854283819903113346223833288952914790823134490919065221239317220106933579776376495754466735450111286317199662447211240958700251235467841745708516814500027967958978394588407414167539564192952115910738362397294042272475667500503974079800252896428359583110683933629682589396303616196989294992262940552031433480699023783852016558558550042873319017967829341702521499677773853511791843948992437635727853457551712762658840450766536272393742022174485074853647103719790484907236800966800406025053527293906056615570556498437898271812947508514503737711660346905455735603719010301342165993331075414032384777218420380957345721018684671634402345311670228242688115283353788228192886947453011690414467439101610842484286316244525165671470530466351802415024642960355534856721418359314161837945802760453530095273735622532402604133732632147411370222307865410587309084488992786325033968692255196131007475551511843601410401994395446942301130144719365045466103759577396178957320449480773331440142420879746233803511372245382940142867411630402140679830565259358812888893950185190548197070006040652472654352594806381287698896995008300278397969719851987609544737258750025640228425867737687541753839844283501029756498139124859640551059429252728973574348616901907754465494501523715696592877576025994971433554010799960223931624977241049213856949045282657105683806726784442317679100127979329844250763837399411707834259507822844389967786241245254328256524703459583947425100981023631806923620021397526305966012167073940322101620579017767465470834078352021313844220389022554396166092085503266627662637774088456781190081763513057999726232666691355324233947635661849384711472247753688426471925981882674899372108190687336467423870152913153771778660459524122623605975353358021423418518463485992997501034360570916435002809522208474731730194761380349919260561952837372077952913312560958829782828426074283583574190891313252513268708608831512906178671561037494744234210441434834412153402930860886232219948324191620424114036508226985447823343744690564110439740233894853966668916895876250786249492413071638420515669500568868030730302353815716758471468349241258246691098360454438390256423874369312908339005825157941010164571699138584651412982304788303987874732739413622029989414384521963175104741303001185478164731515939495566072833110397742411705367865314786868250012455639792078025933000534561828346021683377811477425382972715312068332074845142461619034562421635276366112061624256469033729421533883614084384920228864529066769829994502023984561498593919230777193747341883260703718995382574652986622651172826937875136144886096059168557076318617549528348977301264196428800666124378570473086995071187718721644456671008327549619574319223993642219824717391212006094697995649633051761447910815090497975982300656947889874528796727200809660345989063569956856341435920784355328604486240024603342946193056141827757944012069279200280431851755368946540354448348819490969118394469687809979959695186884168945381390043485261732158775064586334657744757480141310030477163066221986181714369780534650002199886238641849450248340351337886304941869808705362416002078382429962887445491329850578697706311307582160162656811206503275230976657616035055751777339531392875274152354875492740462365697701326179470789258297239086022477705153793995336762900902130897718513195528075911628632326804607761308652475692026338102054346496202469318680677807082943395091288294220153614589750812393177822555302508682780602511184858235419425343693554374122759752034555985779976045300756223192096930357992465828180763476885236402790397998369394485859028454052605301400128864937783858675788298941183425751407134573419782055178148827225914008262875176783466662964183396926653719103769955286368830598262255517728374534023872897797010300986809405871118642689037368455010024155584861197608324226766697844890365868717407061837386271566945704295824369772230391184247635192045202237580202633602329428580963710646922135678162642189806492781466677417168965403052029238500097881708955771918696127468584167997254480589147326945101849135566944819315726654362164096476097358908802555769081759836464406807566918841911609883484175448891947668131149380667179288380526137251725439669978831651566979057822119244067652557940026139369315108952175268461695125947857987323381467720638574506223259539664553322771351307030748510732058485516765106599603372095087183024483026399503398374648905514786050038221336611489180495472232447872930140050466874210546258621439892631433729415387874437032327935387879434047230108609344272842185366148937286611424801701322350961696286975513763624237929905134345800909584448487619330017217553837520941789188329801304213983843752955880038654213612047292422090809198514218721785296228885433312854334611232619550957650058572467238347219735783247497225597381802645310138644093092631172396381309746320683433319300991647291341838221384064077579359125551423729424001659979185956493095559485854529039522039640661006754987854465624388705032712174232693307439284787594431563833416392599624835769041838161494499263488160757827130687474829958341006323772020679707341308293181272333476726494471360369934660895139685125518720970715281791409500054164665939216410796435543694853446743311045617723082638402851210395579131787332176916106352632400024839290626595479525867978285975266398569980516617535836683539189216232109058098362469088570179395890017737738839636147827103833247359943793687160915625920401563343760850914975256025800313322406235015458762430066087240950177415078010899874007116614330528246403054108877757805584369437166661156960750998293090604881494111707687891087059974963786486994233903448634077764961604322116469474112369405660610276158491316043839646120061205369075055668616956853179383270448935392536204478884170956712725635646459779283619175362539668275570531113085468375365119915403487290343495215026903455675695921968221084045562112126194468372750671092000518820285261683785051273671698474191148506630839624556106840808988598444815567917115181435620928321738095098147876576570712179915282933543071713485527219355152227378415234306040106966969279623714112678913293232088403028831917331007137412257082085169965460974814482184305393413145615102514680797777332005161753724658532021703236639066756497908071991509680012821923458456681499880961003128530760412889549963215549913538044547756916378159555117939191755893790244375034210242778059411222722928299043015493900128027813416524275143048051058446308119338092307038024717971155790191372991034319309080285610286666773215454183935504377543833084854168781473515149326246900479622761573369659000775759357571117472015890391042711213867160093248411005259413186337672971812465660108463247638350845906155847340388750749383389191013343837714485934465463366696391039951882527193809334367394078601381163234965434967697031014578114342828237773179189938511152509718728924833180542387286274947640265154473444430578067207583298201044443772697169704997265453921410412623435540864468440704000874840917452172696400525421578671476766249250924456406389238382634738946866133887711998404689897268969246570240307354063884012067411100302457902651994460859682717207135520965489171688313507734828795224620633040425707926197407489807530089703700579035223873245243829395908335351111020390462426023015706357428039834230686594084903526067605158250921904037153944040071687607678937607928357028510661696791218941082951809260478065919334880990433991812915082297479466270580603985439116090646500554674849365408713895851082502892892537417076928227296801698009871925159322371919110114588914108832174229905342567208339095426993340160837113269366100937418563637223974677068834785985874699119342619763163857756334901317069663524790292710311615193766981046776815054944836625624178471654242938613191437760722127366250212945977908596349077256952638238802961597503694500564972305175981191257878372559774983605800214891343096616967680891986421805315866489674643859810663246134963247275583096208611372388758914259295278894120042710644920143465229282402103772109891147948332415792428041185091316908666031857281933607808272269328749048592449028089965166620209415409415381508496832013981427627046046651301600146301021002731644046141128215719450618035480974300294601385315989708864627297045411476135783374963576550048742732317065275249820748731607348053298518316847579248991429428429219925717918679341472857424098322334736810405854448462333030112132675202981920775214488397776401690727794455525150314059882388936415223387790394094872148130061049365306517398813753224983911718539218865791485017698823218801547280451874528670711123810207835398606640880426778750824151269949099444632800664106689085203259709084033274796081336958256670724290006634355849155241083112491290707159925552481005819842548299907264704053758234981451376124392478408889298115684009684785978230173810353123802020582421773115102885082886860447639222031912514334027900862093615038977900726668023616357531279606624390979746891206226704741276794328725437256586365472640688645169802341239177789702751984651478833685271295546108232465113829089552147506485113249351060603829395456514752155681031504654185723846866407455703791748122222983650119362357343830753331795784708928017768429709543227719998263534091593487592820694429773173590820350718101087083682048977902624506714611188144584216052046715260904731643717047211232108625614612583657881499963378431773047478687806132856187321798272383508361417609157841155195610891927297367331726816927090136985024181493453191745391753283098193785086787143342217104697441931637948994267986396750851514268938317226267097702546074959432079181476435954299009193033956518519363362703465266883946625999113518243923877096154147164801856512214653010310597011054810487418628314022145205374618074063197533100689516106002514367555445320342944507804168479303867750451031114032213023938805396632388295010039481057618721917772183118962719554934066421566094916551499824600679381539997538457148143140028226722801460327054436291354364867292339579455235145564925285315882182461708832131824590822364103109808845168552372102912659089328957943080316741846284137592724998426169374853523890747795017967161616877322921127105421386935417552315929053659081729381404093321990876880194299128518876115158170823280693531284588272961055584219300704721536438293497110345047615131401407435361660162007340500822827352080599366341172945030574759552746347345663792212581753131770699229407794475978360802114674941840131361463916019281044149044571172191357901599911072770636833703654459625912830335633990566987941466585390357696809482107791540822148529031920287006737022728087665825426150968079299862890489537304148852077357262478862066586769153584978274085770310536670296814117431500949955448170162830612169463720992684860218798037942089744092841730300768507210426614908821718950790268963947857910996109341867102151594736628153289932093955346073559339075079319287793953799478833045850154917128260410413335132173630316756577135089950500431391963678209883009311435758710325627154094954778115463809852024046311692043955679468646331641428423655169004060108826784497449445230832851889608901993928031674219984663895651030056134841646708224134151388394648706157532388096767132081489119975639148977602961260783478414639758862664689096803885435394078992094563223294752254441927509802437449009064385990330988563705916043144235411592149348505553592710928153046067677089456864970396204416666233392564415115280203968318529131301263974520550383283204722085874182384291819238257528065678526541087241401752116114916404375821669936544511892479264179349224773819431547254322364167105329518567233069938827376736088437743317290281293014530116520592623394219033118262228621601244171425336920799493241331912857425210190692005031738124138862897884741277582079205318412495219508885155048936087533912171737864357239121819465322726635952912118560197956345126918977801304553166530735743276363490711326596869501430912646317356020478468979762418683305346113629528585376200346777984734260520050065788312298924527127723402211735534241412969103448592889182806585695649481765120609639229892204349607886781320538014659299762698645610169676508680878858582898943216574544839541370393356497163594627181839798995582773118619742765564218756658409296388373456971430246885724907626126422933380932004567433573010489855554101153320368407694710335339568986367909245939472087494648987203397614080163116115764152540806711440151163872405381349064665325963807937901490122578535626247085527987720291832581321631667065990516138901473212623014144207185766765013172546920337345735170351770280343681918209426942625403726179088189767889472613122555954031343678783586387729068869858720238173931612461124894795526672708672267854420349979742821412446773816869577229885629861055490634174972788612013484391541428412098316420727645168482477549103723369979088723238587681698786304255973313340868297706733671143270868643766760614992570901891742874654389267298353264369499613557289900722948821049165948348741546754847444517518517007760461865069793018789501472333596019810839148097411230981277638664196318412411568026000428517934591053950814050859423895561357433437428700087938869268099240879910876354705751083595805324408150793471578481032164179986250895915082867161562101365946217944880247594222823442241832471316960876327273810564922002356876194033878020929087307635826769495824628473430735821644579847676045501420579840122816221723481437227607075803029024755619479094628285360209958350199814089076325470503527667414693502507309289334945211932579583945704812414777436175140704700960759453440297010960877338383447592470468140873604544727705019462264159027030003050542522073180605108932751841688086601373374327883222981956231777809908734090493805783224755901777586126792126968993479188593353515055098569349472585201502110502015137570561705013060170640194177720753918303358222543475161213485275449038257457117350471003714121610298091066893782165223050209535039750075401575495448560695241809385361742953497621830079187188964836601343277939838275942248052427808421699414754752368925808052927811529117499930516711065165699850261755407516450410545951152263948105464342314450765158013298008041037337241336072403518497093944030152986804343669062941311177677241233288540679447542666261576013180956240293418471934008471098129187995660668956597405462233814236748520697004953705753467463401334384399513243962001839324653585488329247435448763134454354876226273533589820810332161844385148173185815924105530193791269858422040307262363751937895609292847805057218665110650789454628499113652765153028953209996534705764901441917900486765719561804690047125199086640006266032579356912833332169873982177677665078155547308315639118444395305452960349928110870150896877830727048183065458521248754912382850118070959845955045998383488159208111753807987999461974086966146421655535304775808360753237127505999079239083327424472099776639333659336125462938847913238142767471500966909191920903141266082804263047377605992048260958449144811235998635624923351522847542081098034179434705591332837451634148081351032858632899106262953488303009135167999117792849843269936858277514478034466000768197883537119646051943780193754856893281006124606335153590839797586536327480775029964533934343812059684134552553741022479441061519348042295580868373041813793202525972065459610016508935718368186283443461844388123805871685755438381254134609466021749128788774859039948649803317010449470721007075508215273959331483732228570322939042862334610445785583697912402687160796989569660094462610295577381484280018850945333306817679157163623209924059727716313121140344401928290526983450183329569525524227101336829524475579104116540168720695559594295858167478980787905317933944693968435268756690173303783276984908556225912813635076363751071257505766660754165172577937071320607137505381549444522309495357365630847858177430099300304571061452473187738174927740908847464327473755361039168274829704978204174318076619147502018096863502382194325767622402764645129733751855465275676114046282471235417951346327510480411475371973796545532450841344211009420602884355643753716474798129304048680836183546403977656649791366589096570728768928623056977738272772221471676475933051614466477418964709453940539171027542083999455674944852096897795001920595745677528688142101487846432006447217475193873268287815343170998676711924119227141580422069301662770033397292264124905151072674567114405913607248325553917030187225675540381276616431749887290539982635289479463673715258662297287138284555254803702730590979762297523060302954956651647176081846691640065246848029372202349815972934077036245033739473593339309733547162308416097956529385420805424386801538937962552333021067192137633301185837121031364689120241504068481831804875987393484242265175315239377524330126003585345350022025876978189402659392839864504525917252593569535744367647743756603499312407678886978998615025337325937106764760215694836843560344304127307190310116933953301517985425161337731103223087245675764195271034578187559973141377968626863099851485318752062557608901763303422739792978006124954504590039692115929968410306997482766682285503935375281056975086588984772417442134918276305174552896047242159906287163781917961999566440204316144731834333031706440095505655619709550287896855938810993113667200866442570792335500593999091323896337697210471858405206718387368948828013489671493226473482755634712164090572926665765477048268967020841860851512822766841897544570030856163307832172105745408184455783447864006071171481694918347071074281800831216994350542722274824254714894145538377776773254176304159198811589742387777265101743867724318297373834364577077129897659822389548957696242056369125924101506534463645036795264299113001603081638336378782786876207989342745055179258979272584895963671312028741238524806408061246096816705471935740585794312758714307697997797666665300521623109317649857572750693614286924196605229983064463584642550037991918959720375793027188195825804414281309636937792758850034821504183014484395312416155401659570886662697109355706648154519658660498368315457677160746573428135723236652928577780158465801177919520594468768914581607552585875725139807485261013826434984842007231990377234498606458724350600225208972692469099540253951800873617626733194742397850084219846244058909109810821400033323444364546500116839652993698313195586171924133824421043547991860088268429013784583974491337518835911869414640045769952749849295281986015032484026570896629129374211536944618733443342358883346480159557193865234401229017089950474576706250684813192831530506576581318169210079830181283583014432795235345577005516906774149578092428658153452558969232576484356413495397318059774712049123896307720679437581467194543141550057640717966843408139243932249151397180726662228111088334478852504865753664443155285775440021496911427352703226347384967661751519898822001553749968872994133382809618641261723302693286290537206983220291278330854008578273132071490357082908738150391085727682257339747277996541571671100984908438389365263896055992902915219002757365647861112942536555668067894193357794738777905352344571582320192270834890235962022442274077583758311419766489628145549835698393562897182403371049168200192375257111331283229593124387439401332934790537433030798073773307739624622869074851457410543214937833730927762607323016645064802014754699365986252071602282301835497505331160771826893871840214393692044455454426976469439999488715964168026161640603587737559718872281878904979409096423497525858057227672708257315096255712827309144199415205420095966451856921022972147295439646743278775421792645751522564684559513201992790275340008269832865016415545244685840277559862169080249649281514760652679873000485007769074184223323280560681292933944805419992733864533145927591089181269644188629440871581182990772454232467915627456017828290922488852516932005336206761404933216092718591187076888840371973744730916878011710644463477205303180015194382067888176152261029739204221593626106504762749781881021737903747299585707393341954960356139745170712792528880687286850851061145425659299612548190294083922282582705616164730503672694243847400880217605079743497776689732902345841466399192821098348467378433984581157579920344154456666062763959921384762827327753726726595355345081543001792216219444263095751085233018715465056272266075597255695501338385533362853596551741405599391704306486704781524089944126683228962987483660300488596745458901336564558977094477041316354775134606032592732312434412515720378555235079894061272836712166113853321590212988299701189776861885629278196793077272769208649957353825355673609587125655209958294349116744966021653279483837575384453024176587187182707638734551267118739793489778045677982525235408668787607869064408113041975589096065744718543621808444217689350859809937742087740572414650440556211546274420994314519548797799327504699539210220898657632239418555941674318867294712743446402635694901904880308777725395558946784737011875550469755706734867740465544711894495773176976738737681338199359345976209074841219805380117476111736345588053564615614889500200997382668469155118128939472833060407630831897229560575153087537609273985334935552700951422517459309249909326557140138918805944855516200804305341940487159206961410844252538924270974902127052512844553055840608292800249721621524973616463726107253129836782705996581629175997577808598313717003002505070217840394286316085626665051051032959286566465003927767501889842311407742987330075113028120353834508694164151787493059367749392790135835923452287263642719040010755679208694141591866502052432542756269331947521129073506844646320617674319857436491420639868692398842874998875411403097865822573144836332437978073560034824089202640392865196339492122138757879558916760169885774241234699781174717426982374748724289468576590030862771806319520049879239263530693777750948640985825101723382802979785941936391246281076689732689347689839916299615925766640872517051366098371449639604586684957997213703284876714026948049794645544560483079860169954109725141501869075969222072063194231827339652702259741690902731255542503639458243710563708144884932895052247333591502795143491494017324598654032526444979278762631070724038163035774213086608967188745056370821404941991489451821110131281185968051562707931521284091202767614894256531203091033047637690304920205903461522812734718389305557013547504239729354966036040288549338679553588232429162687091456122920218979843327733861604186884310833315453631885661989093663250427594943151625405024866620749634922940229883568792463157147283890786949332881274302285433757282189238324879651277346067039758152018634189361190317664492111684167825122509157905817981313405935466918627653468930251704392193851771550830237001832081136247287753173395226912782244322208939226531635390215203130225137339719257411756665092862145596976963092695799745738531544324244155856473000795579303057609738760420716507233612434581345715087068402295122229794751820867342010929571378752540775618515720420902962639814362187036450707327254842080746057646321551935609532143476859049350466189067465897045691661626058149593965429141501803187648403273291690773347661823101312458194339136234545699228207457888408410553058906225554567859437929731506889655018893108567691583882290376537611964084794661235318719446484595521871660194931196562157309021763749706481903863193568876352698860114129375388529760170944132320160756360195569857645466353960671944334909503035776508474141159245825392013484576276442971332280128552390157596681259948018735884708617587674635422670552301063538596462788239994574829560079049096728053785622501108166536132463041011767468519410891736103346225429296962315592026616531435987580626098740323574505928508025758713241116777044920201525509550229136797013413622471577167336625492188655702102840581393821710629809203636998530746051511614517766086328989800722486145283282250229135175880892931214608146935502425384581566063904370665668818623870055878094665058652715543847807512824035427886260824234322811808331216734383549176388992384686295135583880640608536927635464954136336920401327557070566296306742779640072573143414372414516618455337230510201471016798070895654777098652616465685900020735624115136396237548766303365375177187705362362205818827392558061407461740140508892121579462369108126453365847711824382542644824856135312788205311325872856126726458563823482427220105939361735798057967520919554176191184022212733087157929374067689882386666320193851830877104004406502588262541239591223735751253695731525665734910391053394517946263983399324652904734474499446912636926515037121909754738327298048429960503252868017109644015879422366157931997726602511756443950028292664226225199379344321568104246624313104523093620942433956162767809675422615281069799777494207829748575394864830051019014152596532761761827946883805587326785145981970824314396014749722756994354530009383407257724906779781582537427278123397597906984609097453364077843533804107951695203767773542648551977800610872686182872849756411109657254950142865992588659517189156483164276352934488281181425668067140223196795150002765729560602727966460740443742637545409183375674578768293756720199456555369568218958519988575226918344745778281570947272718198787415058453484118718922203303346619419932728824187070587437831676537443113432375845273604118705359517971434655161323583064631980119907651895530868968708211684204881686003995858335130735892627943653095714657743667455469828727763312810073478606345823033641702670905435578060336755831554163046366032392417073619121030561687207985251829886034001572124603280392701799035269297341523940696707562610310746085747812877217749840622385502875085369635139611511010134798984010520568166210705878581683763149243059588758827103281366288418312567536539152026039895041988473984860409414642676201437390774352839995527719451518722585595632699602052491638849090122325974419639045795089184406475032208474560652026499244411599720036946662919960946772735497038660459318190058871864925332103499872429424652045136632787231212454099919380118400823393517781284976495353980771554578486534600458312177195908814449440315362543283566788918639453701228952116217178031447603404976239126324014461809748802982498598756016753155466194121478044905963865646227624033559699447522785705165086954839681482808462866114732146530991810380310391408156607637180221995846634716805065784574152813890545041778501613760554029216504677357709985705280524654265664114041756737007097219794283378599247401008434746439180744336134940410752507516734211398625331390700233996564889267199282576169368439062737081425605992035195188395520339915562726624123469317446975639235631279272890770222253583883570530872391998641816352370285222707271777995189353486468814319327573077431266927884855936312730181302580243974612135956566854174774096874044844599058599848508839007114291931198688746818401307143857795920665178433915888515309503253400535845088601436869368242462588872102161880140867149595527404731913289658801759845332724283008818814008233706378056134504284697523825414183005834471026556893728636841305006632241714749145371463253984235307123509352713327224267829115153880685088975655623689772204198671846600710533374439578742046923341668721904861467962381952067277259673715260768885326643126472117058148007411595202581929080998234552418652453803422406956930460195458736340445924548716567910871172717301614197342793200210116329311419063742945575628579802713285852793611557873091492176965825525048755526701567596275653767226093214206769157862525278142401940493096857263281871432403802016933661734275131761103070326965153878210360368176583930392650182593165014212800929502268489291233534500717085581957642838677546978849932076256388113869345272302643729728899683409348289911170524812887283680689722427092836162403451391190566862737404615051890951204336455860701939684711129138064274200771711407558442562096776354125860015896358536769631220295554027625369478215093795406687248325512409960237056040344173978697338030142340930052554028655169420529447228453319803565860384575485877595933871256149560587105072525946828267726816405363408569568498239491725111982232313515356610397739763809230050865616249669563647149570403333964763886614223233473451029608784690543006112609370972488708205371961208556277335321640257550959423954520921671226624293508287106489271286919574744994550360836165280571724532300655889626588651168340665047655564707340811372027868751880645706695912255214591951631640720743887689799548500930400608798108269603277077428832884428495703316216546750579339670667240523911027258115707722649012962653583506295887597399129750040018550753766759276518899742905520295371215770871361028615658901946266427793668938215264630884470357814845680663432111289234997544362049898283793418933679568232896744831327055533020292683135297498765971209899594322412107505539657038329995448271966525557188605246153551701805967819231173206824625603567764135003711170364873070614470657122568179850806540394751618567501136339266832624860895763044506854876114580040112630642081743906241559816240061212757244701684266834932438239619986564500086372335937202463056880498327567070218203712925039481923737886859480671760796404825052329507182096612939740271358901178962764240160455334986777217731667477964293375198321974459668470457187101179354883682847207623567955711330822712242473964820357733641505343817971472265433816743950769803066038569748418665213038411586984002527482981720100052728768340062289690597567617341571689093646890872481165562112295542585741106846026297043608197295645894898491991600772002689997804322818491632452916299228823542927792202548442720858755045484855329892485462324065187146206487811011277060813773224679826533026567555493949708033535360026481678650617454060859686922728050983704253665027922129212155639510778698929047161465721986752776344499529887241877920613333227804573083140693903128770143135170215285819194746638200663130558924729724771612959766188717815180171613869777740553069396831427438428081915332017478456308636636483961770476568495482644647132173194602047116626153587370635609336346898309207228096258281508294551735700814476629391517538261922563818504772473753568688232625533084111487624418379809688463463027945133095651839948779457283836835622500805127468806248528625093224904405216401427150342193046127118223599329087705110874336086319395115917568065287667068952202886010445049224175618252628538275467385386812525722247647118474682971540484211128866278330876967062015950535227983228112180570753606433788245996399296604681812430085818664940747656068270954181404958355690920169706294416385796535612679574091881201076666797666939868795439217439677870443185838022590245936336532326384681491001116398187955179352418069587705668276437179850265153164046919500017396381731129642081761787824073235461404976893364248395429663660068259276289628245484727752758295850566209213523424225478670811681730802200122567886542613595013289736430498603000998108674053695407858296366830235232787261327147978544136515364796670427237907255954273754894688222904452538042159756987543415022758711792701005112149212286166142416707790602539209895974909866230265987994245127696759281311030790406949184977239812767147364136179448206594449296868734447220299904249386837736528723269237468570250401930225658107798786944932918108217703757024852193328662176237433346276935725460644259088513264284252085722696893486987390798512086118613860790106681325805586018749666804519106859487160068695728855459081344473499873593126309604071421334255358800168414625873629125550759022263940405233753384056500842250513643607117776911567939880613663386925130098502852329903948850163260270885723892404441601625066343008816842137354620154277485030050840806270188342873567053830355179431302469713144448522840502362875170184981326904923061028590108869478699390249801600322563286996764186724455039006688610355398334921354369322534506945428288475954989383598983685336565386695803200754676518909804829515494707871703107893099621916474755225915671461301354600370935735406568702644093379423068225243629398428744609384414589404187414157618448800582752024919517239206424203794935148820833376564173235411466255003213104154682569650662917833817485047441580116805258054874712805444066750300511786665570593450182886512116728473389929626414365210847452496093071393950092349288903093681768082185660551177311820550720515453142073136132186687799189394370723640088326279289464404783451383180503080825148375007362456566515436171952859700865807619135126285712531152298741450202906013898107634756978283195947412537664509006491225803990895518207753011224057812599083728909584296065257964243592380575960142870771024239936724187834423229174799397986366574411782519833695116819321797375017593249086131060494699830952324383893861731103927269046603803565791702036202411852524960434345261544489349986298168899622310689467602378108619577836568614211800311447485928689638189756779842569627187663206799678727017332347660582838470939647815727070447616971228272704382669079173863772746150680704293844983894965049148079888116253469205626628602102830299134324437576550615987407680358602479467412909510105248684373489828342994572167002824269985585116730360714706284846226965493641755778599322060966074174054854120194191446678316251872062899653948668051678908885470166580895756984405671463958027098671443288573965610558286440159159172705027060036960746041859142506580009897273989105858198115136675087991950436771251591252299852641358281268776385878100972077907330895187465970435803174185625079019424672799242069166043143741050221673707670925557157564746383813399893673974259833681195269557852311508755491145826350538679567236498122064888663268697366779262707419020319556312422026917173797101455350974989318648285600092083173660142301377602702649794144306522793628220484530858220696564431516705853535401435086661619887243457813073558078956791185828042225451139305580875221282217758592376469178015030747377333963440204346333053038598398324554748052960068146748886291321746483058089956780949990687825985857780176096402028466306383972205192461571955659284531551207619775875557256190888207801173014835227201949417713521569454328080446336543746125980873016450140742215267718864100521837259975124084510212827622562986969525012959545704153964190020627368397448771000220444552984739189025565078661624661226540328793422315836890887435908779910732810649724187790148054854446305855105727254749019246448854303680489995281820559418743747830629255096869847344740847627695789150953434854196338482815554549739007406666162165996455996164779044607597594945440621548319595751665325639762926822727662718895904540609827868614846620099228892510882954690600512654248751126821598779254959574630065713287756977602164500810776673003194015953795967845033420348927967745165457681575706118226610890379714199867790580756249980273803470449051978747810426971143679987324827345260469860485768399076596804198081648662580714960814724962223235467589001312575008193837586438831741178583676300585246457125142693717022695332718894694694288157300514163624972968043535265399507606031116565687125739734177723516365156170493051999586094585469312469074695473089072795160332552023124664503540864695087737314259992244358429651196563205970545560573425416852159943742107432252188173753744817565169921252309355605287341190952991712318409726019118332307132986565284768746978998511571490371537155697233041514630094848840571192657846631998912957326776149400102415301378642657192905873852158398283718282039607473653049471492876609613354719431768603696081909649699170678985984759356426492079498617652409176046883516254474258797891097228374102403323738992317931772248737828145650207442201517493704981910977837136126786144854443581068643405879303256221736115880923688227462580799025449786293119524830497728517375860457444536491784476391768061037558869038306626164013131687850933781816302560776975811456712314182367934888188479233338558919569843833849730755957640114957465069675230792525751714645627595986442368779286887940444108330516898336689176417099070547499793723815034738594502547978997046794637300556245980195095004705514511531442173161936316309415987499627560691109658974240062733664774921191730261350545698112395392106646582412707864943267764716039350263180426408920736321278330295622391436044542293950312446855614506829649625204641964696652120784518051017556908552334901956658416502481323673987179455494375795374131904393652638314514778160452540319899517055007071372493811822136607847229407715706741293132692528622321053262398788360303003685036701273145694314074964677073283814899502516430484752961715058529807229919556914491391764286737558455592993734487033560547573669285903100774970944660025609276904820460287354325630500622897816743247886111744638194876423610319942930277260587017321945694553867273966531926848813681553306378117813928028914367050050687829057854910470090193468377759764474428041021325378445268710414860832099585618541489788507456073754116353404925475662423589656665584686203461765583543715511067394129622201678404687731913593194259602074345545569583062909853012234803722317776498238012154097506093133233861786293069260951618531323985368512039899346321062934149948195024236521821754313383648444142008173240308707973182560468545082807814822911875774062371475955628064155107881371242059061451557688828718657596272995878642620986019744335478180977093148225942519168816141759210367576317254768174600944787068376781517402240489661981164810792184546796062763743509799431564480154004970994517735800505053856539019512464649961650575864983106427119688948742167857035633295962790956993217471139603613381094556179607848289533109626186909565775266408718743801484667922582987545552289757933963058607436981829937390370258008382225099950767644586350604342474636915678766638335290281582339164593765841280719260434753625587824184136882303571344951693331011183943718758562344391045319664624312271298885578720921591705381997462544710805784466858657613701576540886904680214153312124150033272126502712319595494786207775129639580839291830026969338344098934603264612501790606303676829501444538245972148599652586132594976201510377753562388991606458030924051229239680779173525100289293981467738453076334097289474554670462839483864189537619193204410445336552977474831656786101489944010334756389750555176780867605863751302543314233757722908461827506662765519255677926521823302554292340491640985235797352231287188271075747613892194731754763140860435751591654401464050954187821557610509167847594809162177386618313946789164610235239467248040388814044508248342880822170322547314380387818970253346976202405822931095940501908545477800627734378838421688575383783289627016410289343310116582823729784974834469655541339396158542303641371008996106744629254698570644142162413435015487649104974357106982534545646194797418490324657207760076508764824229503260330743578446527316450425562133668743302298432293840997300203833185616134925688630860938384322248797945517902685016736033466687289509628300135898196086609996321201100091094079972946311681266060946459367692374615274761700563078003419752496014401564658060619921360723452821288769788983625443590769648748795565389431691473078415864238700092010011800097176977790359748298121935080582060478081578636389285209193057392690722299553484764670241941383647501564749305805689800625350677992145928969848730179408346020665349969419705211675376575126268143604878871275824522467244283893925415176724873028089053702621157592992416915843975095061264736517886382554176679593367849400907083042985612198810027568410174246008670471413037508086302823314427287171730149268975453801339907699589328684297978769975170162053692729950362545676167466604234241105963538987947623359004941380286261830420376286341774452195315345409369963796556886921125280821724447706638139113180015584053568360359144426585024038320042198201327774055030396581744163026582578294569109523952415713217851286354041354411475245360277324101771553032764517355766226667921323307273879852356823154371840515957515809378408756472590534327983553764095936493814111566484408552577281020328406115064402738069830997100256681490098342491824455426093607642457018151989215258924698570143294729385555633750796800739918565444290731900507668776888315526042619084776753580213152715559108757632784052606832481187745949287789966347875985991800856889563179657736143931441145645076086621606077793382878493353797150814689687862101071020114534130198535860527326377762059115643985279435839102933717799207948946433492202899710044735436260084390575346739124381741326006821780720521781023037185701973163471452660970136932018001993909210860152676017565246161999328729526668573974007218264482539701128705704881152882335541232641432320743288292615084369362994319341131459816395756664777224220735524245852975150620739811094459450903051139445691862789036333508409933515121482818040924654279191615189021640070991863260440277054360920445196631608302602438292309425253910495600991857421315103585459786485355763567512330814125190910950581047786464311184672227999124126579432994238878079354163335682255189486110196613917249447980999016255547532546341472216975288437555188933766744257498740381946119058913898891915128038124419944815882108116905265862216953566159016808896211968870839400946587728160723714359384932126445131696248716569270540896845349943250084349585206919089059208886521600490950797217037919406056701766860845508633552498845811530640053767452163785589324042884905355762576504446070198577045111267354394330226254992836121119427017863661949060475630432593515289460519814823358417438825747512906283113535059735613884656239223811082522665975820143130498952769418405799657662434383987465199402680235230498708162099473098478522725276077952108018212249073733638641387244651340826762231914984408616383040012887660648113585370988538551887035097570561543565356213875230508716204939295653514092053324324569503695270634997401623996702514926581351784426815084074133034058870822493686888786511775612596517103414488012560158915311637104368755322558180408868464310904069279894298252801880418321708578334600116857082350559832893199998742256065419777584815415936998382329978345777821119164421253482800068120690614081594795481437958151570560059800925446544863924079615590381492929631008635949233990084490889348283660901174814873253101618176997667012803658427546385528486224650473934861495957365330178003358201912231914834697191626693145456194126627347230541167563806408258144055956506025623413383368803755145603673644100151382015421806206864563030226886250196905028816761903337070683993932414476562128202522842051693607761777883461637413079885666174686832464880569927947851990050224005108429493714726545085523971662509260597578898182459265337201452228828572328023027422624083279278815530017032685370902926879906634934840390078590431996076971095427261740821967463289422082417406998923615581632853539851186968411362877225236958985708740556270500904477158923387915237752280408967430811437905448202249099230089620991138156584538091109198698138158343220300655241621566061285868507271002344134749103158996446186507367412828597082544654327721284652544027251245707844763593225384460993597445584971378935204200472906276547951143589220593572939801137961219051026750851086052649837586942735967265695247805366968926737230685002204044086321852687566865648526105290935788839336523619704149246628780376650308049353547080151268426939831845421033920801085088815980884610464241659464839797385169194000835991667763876809598592322980643839729943141668863494978946153883577008614006599190371675621434807876267791839362623447782197182482718600870409176404541839445557012281959903934435262635944094079059328775552675494582833546126200453488059746876845050212390040168340105831361834506109110070952924924531187495168076087202769553223526960686315094129339680036258445793378369664980336184006872881175067520515686908294666057376394037115383797810254346233061480840933250342303754185174210308827798842746291263638513072160419390915797002697541393101111821836969489825194604596269680950898837893017719925799145897216398072200913573038106238347185602586118080278335685178402368492418699946064410628586906977951512152224290237614834716167067698046449645450108459300329966016023009575458146869551340222907711423522426003255288213742227370780550613419809203007742725640837628063348945808216013758303236143239976567762449052284946741067591878746561032404700513241948012490011644192062235023231091126782746009191041886551079886915086247784243547371826635986203374408301483163572266294684122611231094779844034577016211098708081369871617122975012398805119723868532883467770230358019094135765555760955694049711528222683029126286376978754278726472891682940764541846563683802928081165691037557216270318597707365087417548090057583690605173363137106250620410310862261342789141719044261631191766191975850535713190638704784513944485473776106759106082647213122593511475451379195493238315640630169095310527959787449996956649979719914983464209904742796168357617049480883404599506811675082372321723542655425768587176378997414973157463965310165831413068377324348012948858337988961898621155029970265165972195178457161806525661662052731837484594618163641796761329350654396930577037023981597850514887356337567663072409730882237755705607238807586609310717231308333334519526762807509024609645319765041520360357968970361027480065003651015730261901670457185538185905617978687228745329078439617901348833932608777790187005315292416414496163847405308365478509214086215650383335350693982579912070034062526038316228004907516888346570871383293266477908498773497580417978489642521477210587685810661570630763656510205632801634209527508057720224983552423707618458869462864481317973190245229556253365651279447003347601563999731278029223242864995338136419060966777438018251721254385624075579979526511459990146424342404681099938766381575411041037525456233439677328481386241493367204240578526722746254025923921646894713728184781247121469578796847925178166234920347303271430908726924159736810751773158208090062382203179212066919669529821859766176188565119991427013745217686699539254231038337175389786784378900830418878138208356044745069550511970792208454701716318929548249127136051443318403068784348400343088335894363052174807921772215617749840939308276521256774743908548096672376624907212358826113434746716070980980224366850674793301935557737721714321415435974539305644189619786243058742520548366832565675936305941203155318739469740965236998100103108228445136110597503671042058180522711637274247664126041912586175618869916114059361912460580080005317923272477818571908184756445492216678055236688012407884645384050149889470479717770162746066990323440966817376959634935895387780038418106958977937481248369856506424695484199541865066519395246232162612005493239138187142744118988296762110223093855006020514581546132451108644083473244297658441815666222588388119397059470798882065099989281065799132503621621738978001241685841312285978892700706857082197726065284271760956296601421995211254680447997443025934539128519779257571365045002187519022723261300674274214977742916624487335573320219507138179504536964847163077024993581506876047461883145756610804490487334213887026940872373239537417044001352183235861749658249472054992736824534667674306918576856717343198792379243569794326389687035947916987209880822599077665772489689390114534325608747061792011417833408814657379758661632831598402170207630231983335505778232967807556864607833293959601646231618544754586929728601140642383011109926202531433893586501702286486161899695276474470935624097882728699070717554351033364761151855914294708068596532296141222854692663873820247089812169987139130228905528741459347827556460596520969571378644195242885651181165871836635370228041639456813443316712971452421257667138357931921181126674239305508046856618547622476376627389891527851013130228979133485563100505969347531005683301637272865224614085202564630056820448065704013191391003617205557649366303041691791774631668185480414197610625412322857306396349399762423336216836280804006403727261803329157424537929088478933159215451236671948294167632699597525998844717835853624627046301728093353166608775492775339099579807640575469543717819374054557708321670595500439645716330613349368938517120159385583015650801533260407289257521611549038044933328918297120027256186636110693716328527808422113604381022082552133067419072706943570869697081854693220549403572867809716378767692662975146486835445440479198735091666041147746518051518470986816142293262743816970329687045282423799098037339580339519603485500446540362841553320379077729390532761773834241543633537118087993920005502683618163368263603206615824871580457860961161796418261600531274225016857145229823447571702688773533856869486198341565201135419248059191413379187554173106625747345222582752633436184071564437362394471512700130254791092571561398151021849223762978517443917939269671617702281105149284224995820051694731894208682284382194870123328246415638938935559532439179728134688616812401467198302278672064474373508093068717615066075246255421711420775083027413360202662461155744429851470788124058999683077157908119024540562643114823049210771345112657433872144735870146563710122220197286506374256861954602510028558730828813485592102329816813626228211139602079097440996332181804376216284305328341729897137389754930517383381849479884502736988545566088375787469223603045021773095395884714426632943733221278367667077833766306510056015740761430469255875320770880928950252328044025528496547640977159467800368143487753014434164756592433931769291972957163258767733188810847949841963255696195149764423102070387425342167873062876736762540335339497619409742746962052625141755082619169254268804861548446551919145952703622472490552482280121577068300325239456983905078923798098079113595224102080630042060324585668351019074568175157725460538664422783456633279163550447900233671234347373029665481017457219407333580464118050592124610579873977975856028956924551110244250908063475178219574467210154217867630996502214260688718305334493022767934214738045661932824087461445682906614844231939213031653078383196669225391130001592468901756000346464244242430732832127118706678455253264274629499861689178741751529842337880612722556495515345120927452858583171659588659303182921066155110846286813423626442398179864569156739580771281874964251398074636193534574087449271000210553394964637713548005488010416127546569424709507611713680782060004704132006449415567068747777118512605281301197169187731908986382821409393840584109376761204586977252479060824777199355686727253104535825943397640555302984197614108738139365145462512134901061945513364413832474993897406644123505473166202236381574474719823377610809010220444084583247110520985815655328435817858174107898226525315012123522247415611232144834233497425177309370932628102238859526951770669968535583304998729586367392816618574637010670564305127211852812507709111943625266585569203554600009238310200111093167699431840076295982598266019994287379690423528398235221131281117864629566026966092117908047553543779226295152612823379363035218341176144211620040379663777440050625672329565512206749551132952795432421905748987841771682493234299801829000546202849786190869335171114382889770090573852864403663285758732780942452002030898635744265505078983932418547116069935402887097069809164979818270540827766493213317990387902946380655616852999170570274701209252315173373280004343539936722672136949248814440818018200171297292026693169754635998311059989352691492311608092025449635711728216335455057837292990618226440069041305728571314393065641530817514306419664478147207256786142126166899063140570911125838600954576324119487044647079708719528053907538200655318457598440991274212404989608801106400215825515730637444419958190010306129791167116959568194459094978853329205367009298923716464390744539871392248192589093796768570157680832583825131167953297900806714310032447872939803379764736292324666080754441640568257465157939949555278285535563160796640184215134713962848426914982021503934770735421888772192754099470438558570316139412428693502377697187593682672110591301601856339066047822256012532291100617667372598789440787607909233633137794815858593845654048220887967546016405817513884183371536953280728183281612216700085957085377012225108201670840876729731564620846193274439695858793195695276631818123265264815808267730373366357828597118577823400517411778576005776168019495775009158172579479332086955307573236965309801153666783937010476255438601910224268045171418893635225829090103158423954513908243917320633612586099067388331723281177380894851221876282312111251092397611346168775882217808329604715678476143279823994417863580609332764926976092405640474251296128472523504517558320392248656881453674373080691010054129021012150472799886237966996137027890206316440683881843527455680241428478140844017111646855975180610143629215371370819340456188680060411739555465668421492186494040168960815610409364507636514695864217282036286048552104342004357854507340650003178572322938615494662448984341950612066993984384496670566932797352489571167408179905843524889099205953572735062325437994798504069224289416779230103616376500085114955997680435272979903737105737044209854099015924277702018728926196693589325483246845083777468300462520384813866369934521027988409259320792856861078330922215471533191561419368956518090931676012299347582711442815403398512995732907103971448906094230539649011236206985897430512973720766373058392734808538848093454778116800371258421202518929223720279965564932235118892703205813773526628052962539519980044141031513012119206523650442869845544823316337330570707871625243031315342260970778660906695078132374180079912248379684659435932969472861832944610899568053246257991684449860084171884091428448900687878781454622938670999313013901701371916823745173539403347495504189188086227244733837862412604314676205626808317664707621427784100375321313602055710985361125292442127711357870158045685218716423196592813627769482701546386857430443377667331001777938124370645759724792086735163623814143254184346678442107750554335331907289016077387284845369649487490574275491918802594070087128750849026942292973811575293307615150646147535078837449330114973072522184840582331572546158784560782051398501981685841199030083008907052628908287669512468548779943389714631775229420180354991502171242059113792968973757957975826894494843717044288411779663428029871470127040367439958366136984171038406520332488033061184419538387272829449874220893224245936453701157950498766496366126893618221114875154462766575492919846126390846771052548548115663152261193215874853537468210602252833377012809247183783044937704632817274338808591208075038914954112748685633362090928219072059884353676992773916306564506757256015529289194798049672861467300564481380514991836905723319934439150719216507365406334332397565083546067634238239783011656765458696071720814121861256061299748848819923438892535210361453718585128730815420271557792478208623622446365810205493495595162464284869783511855731368865486611817713893428278885044847084878203356024190422582156114271093109621487670145393309469484187982025619918111649552401641446670308616633433253730265771386814672484390772740647375413854661741137701546569674420048763695860662544334862189830595592000685714596619359821532703878699644331852464273047223337951214943564894086424196866295027808771103811259236448171647379142301774904257929259976381645079667610961715094109098021778249204422814840059459441203930646868359477871442110367724638269618874343647469702631816111933520721930558511453145214240855068416729809200916874283964797089090974252186902304618331340644158860184375977197804880967258124057510080473919950473525764760773481495393981378171858714519921330626167541729260790088554445416796947450990774247237006016404639120212703877731682101675794940825481976946679279225368295107674775316478143108272316384800596432569008515602860045269084664099371199141637833726302765190540904650651922910357902665297424208761952279569747678884622613699667375625602489158138446505120728829878436475958610982755354040809117199917391116156199959800420534363596671548818778659343972567525140322866490900453045922947960735774708870467762620699840675056845865457994835541500378338857330617480754121881625579352764194556886060418357018533469108768026931475417927763902701335567174230953064147687918716142843374784764127749910242657149389639901771400469927873354329312758861658875025520356394194035865919113141600850264596295813814713273301035004848211162223974948694499097697929010173482955624063283758583130497907094245028616118771615061332312044357386511060673059059931182401714178524997381004304019108178614229978122055101685034660088641528540866814669327580352484492589083416735568366058757906381717432836756477121502675432421934023080989157218228084038042138910815028493004683747366922056226651723274349668948305031524984439807400769105434231596975648247901491243088220777809906517799408416887837504278188693317513978595989920988404961172247471717080526008790036346917751593035509987965646114222264741811657654178363284085435715587236904324424277194616246098441960582085057562744240437075739203722759431018617073487710028177801773109702391491064605753418710834846510874350484791814610518783241483563672279018067450118502956596538083174963400003627355924397302486248202212417291031234364079114913590543496863963297355797163585566177022556120454031447941989027228089732569814054981563997529272805460235620129415558273798833301935366978505537106903551157395030143870542767955745469790318184647052545605454904863489985072295215564449831840891293996132843495552046037157629360743314018775367603846884587641741421028693869234157222965678453371957656611215271934984741616949298008008133830777697830901986621528048546171255786009593436883837280045720209631415272183476755702711371532941806991582601969008357465558635536833091324799422793421087361509964743114401291377360657567040563794034416384791315244637189184247827493168950714468915236458498277552966509644902772610921211046840473629121395282029436319668375855785996802450433873113966438203445957082397061282852654705645849813963220768619895278541180648866985279618072032831199284081800947483763702132353802183447632543698884128335322481061926101575081080041668914541799752985160023826416934665378119316682306772403439783941521504408994145538728632698616734737980618643260218900251452523005427194712094044572264611455177432563149558464816536277356989337894954242555472028838903157323753768042045863475281464849363765310079070734402582444705906796103477615992112875921345099467704119990854747745583443008146945312400971867794172305621105938347317184586237832693498823810297910232855719141824626002671444776874664031256071188795489948376031723068455119791674303805813746435899159977901043687639505592242055305690348399475238677791388225785913752903476416237101605964708626298542471217017617463546992867910469394771745556509305157653752488937025476784285959765233903559628590406152937512789683266109475365476483568828289159207664683970781514064059785821658586568511300031533731761231550532273307517233242170153418177047154204049672995823456538728538782247866302968695900332462449735947771372694704599268662404495009021449747375104909562473805452324991112978943241018422589456536886264825268701536638231351487682917339779027314541366946501189148760479529248672995944874845794982630710432284580427601968097675043534050643038820301781280344221368586584428539577952599308001638368575036301734846217004969661151461544594605322080683818877896612259973562930031528601886621457911841209775679973190813403362022217698567351436377475148790473978660277160869367492255975660244020190687423428575494669860626701592999235054312866534622511696221777966985099152807435776677826526769750287790068321214171494188456582132042319738597928784811252370583976704294272175060822507739167878781017331288984921153621283049297458129172646706720602408734353053809895791900623649716762925142613759980932765759639100310692860008191027575021278367953481578028503231103657986422847234892102570312782794026566706463426877632227685051786542940570079633714777637471726335709316100442210253182145690962667369434019850358873409493229792025624989001491253041749121620444913140473701344221938235129491353466504520302043621321537835130281175150457879786333103384448924231825637189501835694136955682172011881590053843075994272834504479298655888857343853456896951975813882914073181464055389681943734709086063564116211672746584991326225156110080899507155137154931455767818256921404018504616242779875100605380301767387413118287885880854231553224316321396748377918958111226126821198608961590112307473200793202754254105206335949271156760728967707705751914471155230867151645405301892519443354883001909711618358752277069362805411190603016695114494224397066030518760744536128379764590823274793742697192110083581983777956532526569098889518108515983802970673225490937529812622988558066601788838532642686374166285366443235263338566750637812767106667472698008921697623988332367532976111371318712324735838238501798959446781394776689845114657108743067029551637684859751555986163424675359437309232247462553674654808377773530842926660247869955559352780936511801670482073879131036128060676340892421948479773422792042040793623292321084340395022483677628180862057270401828514702411469685450613205402770065005126323588666213003366620684325630030267908945965646646608417210771244179507592663252766052173547537963445779512740753315172628849099581233385835161101201217358967812475173274284296107633862054938602194070858569812282993903853893838151887268286443377174059111367878457670654861098485511792077902952932920182443432788503920162410066402115758261130799655358548065713092533375948726256660066882498519033814949191814175433580343856247720554898676083217844431261501976654108198982013372942673861588436691340738404130134049367606392370098953807392639165863135015091706354749739505081366934592529656638846443723037058087709932334188809632293308570310999289557102810071976871161957782377002579263771503011949252526163600950569965995358310927177742076449186966866420177221728973376112025946130410760760208028431417302946613671253548877925222434508799241360941040733521151350568153958739696136972662835621098971165504385709987047638204462475782404293095366050875552490062534032917618349191245310768146234976884057787868299872605401761700015862105406320663330182072696592050263014395345652697358205679784433332360401053155676687592993059952202605680392006279941176371357568414244159665013603073180436116696849378069211197231322311865867283075817843420501432369696741754881284907120141654555437358374966532354178780887340618474647897789668182824091345240476147780285872335216917193363383685003977987180216332668313715016959520771796992333838091812636220266973241408857672777197488695166325601114308086356670116883078664137865318884230344750478241188107275701459513462008650766058617045595384704412598709924850471023944200078102935706758212773002404158346218637817687527702117100713907762884529405445777393566260892579463294651912953369944307293736830076487585246894391447426767805757785950647168993779259633375242198801037705043685321616826535112017983448683169891002088140003831421589076857953765517264876531020486969099971873756960939868979170217408848025578897271858228435010554623119952282405177092260269019163683389258955608272033094313908932174188766939107086718008542031105402283184189407920105541532283552194795702528101055140659363177754970711836531054618083188150423887008712755244182714794344103268520006607423359728456325346803989548235727095940331810950713695026643180764454732816231999999619774107537403051948849026549902171704951132844850513084417372217274826393483596135114810678332707236147529475693614259076042399654020190838495325545814059347111456937515375876946832284045104156091081530822130158982565365209791831468114637845768842661354955220500390434087117893488837397133962242736108843553306598487959908268488966885066672299688201470365773302500456215483139985602103719053641637969048778557997644092394469130998554847707086169700083649691870645664859758534501318548160378389477295217045477508895926839703621867928490911880294187910440589110806965862060296650182797114228945255029494711046483540492072581154207338291407620134811142534879245518447568241382221472273750461737189609646279804820598052776011504788339450465241676549905493228214054436028655668398926180347318605170080250838024430709976051315642287826874546471596406502560930151443154348678405023853877723906179760639014441180345437653538223976144379584620343624135639852415400687670882772952436899815870187518112339870094194485708316530532101059334234555346171554174110856639724812003693337065690014005804412170477606187255001717737028810806585693146813574237127774833093879463897504836016155459217094450478158469424822668448115522109974625871348242630818996191694268148996190482254623936827629528513982182371510872143701947813367449179558295420198053422688425496730369412037197432344741464789408017505839210372388932290738646453049272507369556558920511002089256670969192664618486124773894879577757143373486440139105991289816044636643857541745739890357651543575948887192170634778678579760998424999739372943411164075087948783691034594202935093006071899561353911516346750781949580617796649252477939575520969153733530321749471205615816083799512885532811602488097577689319949915147478026257061717915436838307220551919889109191645216857384917897158598616133381634602147872208546871681207223753819621297628564381087330285013374734788840296381374439078926834174286677455093236811493506204683033437725863317679755716181526340084067470839337625082586841017855609532891478776285161104838719188202605589538611099777411085904915990065411158223639064818395915445194269132702326538363770987451109958526220840392579259935380488326105090191218879676147940776670242584159137113360665501731344300930026426387999377384230655070693398940988615636626862584872303607976065248352318824170879889298763016817560389546558512146448916612381078004775845837929899972924058053752895178313406169164277977621718008118885948683788131939144608314973873976342904659596001890069566998687152845177037344203291103247374471285858563744812080737393192669466102043881486525826086279640049442119044700315942611080473048431545120425304987711339848415497027461620290324975730149649249841319243533364505826167755600249034707482789154334840089840533250296180629720581296718698122623227813772182869021955399290053810726797766485209544387898992133265552383226964374269553347558805213094101530030051032814957629542418265127625642095049798233677853662224138238879945252613658107921787438669718105572710863555284156729485845767324944271117814918194473561258345859864728315642913738805397807201739507449371156536118097368608507864267634872595817081163470598690191343182673153366008426307741843358643606685111484154327909728240920595332299897823634757872451472848587275003660654038584268616115227583097398118706103830398075472911754690769284371579406569184905931587124320691700574254079661012184172344724694695509996437079112584556488265058360591894549137365337833139005037613876469325123379207016231002633097513405468074576218100827530556769968043510291960951585173630384140486464311278885757833717051615201094685997248601847912358183679843449269476137392092865981815678926941648924763640911023698998063298164884214865889523313308191260022377087147066416019226615255996383581293667969231214969047490078575517769453817607590985480733193479141381874242495220008790387656839664242111791944897143301187686300920845765719465869900736247827684139388560233001060486328055686130452077022825707229620307905335715234345190487408551945232318517509541155512401753049007108736717514294030530505559184126060823726344927235437752885654052543593345247308299088688764595526345337225879387085120894331576728120915917467945262786250176791543705176991608102277986046203257465554513831492725704117833035766021449527274576426119031174161853726145478230890860171759814864654249079917055215781452388416831524429808044943305052000526116213319051740210223887998464810673541612540299670448708942156644397642886410697624672536794997224248259951810758844800784811214177004120075883599129950303376402831963871527885364636131558725981774425106096588938942548666355329922869585385260721329460350929826101189060977732166516419299985475377744221629078928993001718856854619968846655781266769316650466702722147146338342163287183712039043713357976733912861577347120675341650113113228594491071374463212706758292857524102091096383597243346114406381658750993669536350816053833973804231276245828490592789927576356934588122225189860333194355457521790175718087827558477318750526844472925221248626278205367027797393280498928269863752456341872291988798819674030230189707047906549538134106777626692770768748907826106568457269493338987509471873230302229600785788825866174098858425862014539547673356186535748459938902033533718966678263273547740832889195677890170342874001786697379239730401006669090426302840569381878767515930385086055245993575714047421279099092083561727255425661691349071860010707068814049715415955687084083885780114432520724014608404178105830589927653344667795399614683192223309765036943743345665246842765565596741524722980969027242449907844126841631187470315678699404984210121581987495241439139568263940726801861137769534325194851939769977595939446755410427981490823525818987901722726103023676161293964899322322307294629480192028921913121245140048004143896595590995257331919274485544294684841430427290588114560413344193109928878119141020948475377340935878736259412938318211337002771450472006764648123852024621315115360030225951070903947249700417866345259794363284952104666543411443116441991695401750505736339151024958302682869265816221010677456050653342456170345864165018304279356643796417693326930315835097049424788498547915354596955381730957874153498734215218997691091711710234920284387600731042365089467523036266132393523371001141658211042935813686617778934088575337987332667941305753197637526519842420207263097918375977742884510737206005541532214764561443690631518348185580962768103484364981008458851050145707737457911211536239684980548002861826241070977385440825601907033898218106757302150573845950164651043998448074697136606767582436246778400793172671804108634458229578637912310701843762405077862000745796954985196403670737791574961524643611175531997820202854098149549865184334774090329349398443524412811847465159642122654657735533613882010240677058818306281987322351828868389942011189846047967062411784696200998629547215288716096125260321150845987315963626684936203405157024086927453479146023500765240011380159849939549919604156767181895153086098457570522706655603678528350354645513569209622428361357762075900141089591245232597264325070301024245995564540336487674791242346061299654743599447818023725703495672089468991128784793080527414454296063419696671128318709915887108761992254497017063237096633794595777107477805754631313685315910988502816531751791974554903894763359948470037356337731108174139981172434807135554549946362869075077620961524008351470205660801330521607463385705075164164475103174204177290412093827237254588787423828537652751800128319444505327794149574083827271997518026291314542086164402626364021435501223886484332947893555563466897481863129583900068881552552109971645451369283347997749865355637346778804830627063956941076683655475033917628618495528385413703660926213317757688438470016228938640405648858421750289633311260698200592191365209602106949833089519521565627533868641746140635789141805814413971042413751187059307414443941570152799047339740811181926899884643455765229769081702419246751549251692689577890533783070581233498379536363474449438737397565074187165275908672398672946291629868812684223762619536920236608949059542112487022715839125418853307932266940164519273423224998552854798996548309433997739856763587367818740218346923320948384156851958402792270839948906932553995930946696529763884517875712583954275922915301124509372973397284018720898665338970468152370796910127263867540000810799449866732625073443786778023740204610235001639205613515856783494006270687320819976658485070356979721187975972475084702541997783678323616256237386794549631668435230370593333412346915943429280392303006787774267253147785370930978058061800695630131876510729115249141500793193310991784306580129651944020236192438369726686386495339728746252396092099590881297063471251726186457137943620102468616526714608172473021811623850139730442913625457168501699269711448514693435069890178651404393206802643667292290809857427272970147891289003685851947530514068567947505769145939119839940916454753315753954827957345149296687275758394763064201701602067135127113117431328565305773712711566419815450649796350310516403369032161284499119481703984755573155203837495728427227358826268593537008668838939972986648894327897507956368875747321574867698171014459745476924409137448973569852193884690576885534856818771333136393429631950439155468849625524808081135157129764998508609341516347926505759150111325655080274750710061077216206819756584785327932435923374574018302613965377699181866292655733100644400123813361076306268884876920464459721427397345622748576431394547383149963327165542597682755398668921752613943268091942293572438357830178281133474276482664161542416968410333213271499320118932632341414875481912150158759753469069065125871723053633886612866887462227205388310519875212621217030600743138625641865340785643482719398200021862890560663344941445644274882733333903743539434038156933586299599039088021393925311423911648410969167003713485261254012689522993377659975233847245886450499258045518468693810163070564628353350840478884215451191739650331047298045412930125927327261124162220373725831208990877754053750557662707469372644880270728140570512930962684163868315891752190492357237033630084739063198422321972932732421066251620013516963123046629975899985228507163156904620573138206687099844325412270924394572889554727827459791943472607379082304414988580982537178694565238973967586479113744615300019523720986218659090261549206247714166048289411720390055043805589340374587448121636115620290316174204514677878949600608052314673499150839267214541858332161945426094288106271799667684601273320334173139620349887551096606559154056778331819449703718263810898778981531040954623388728179078044130918477635655198089487689532243578801939750315700239728783908723638652955662718304803798539329609723755997001138412707302414222074786377022903133734205243886498747700877486734326412081727598356282867350847648072083185906870641433386943030437560811499863000714237836414372839229046970175175718042821232527034539405433994184319999641127773938530707147259767568381228815867945978270844161603331312526483071841764438083122416182369198283421135846102134079432877551189270955137063615027751613260618152996071755152985344998204184591547468955816979656373135056109430566159225833963576517590756632015866481948307801490925137768601752225929532180751756568653008858260793230249302992625075146699013773527722996840005880643173866505059416678138526561517079773323279087064022399106620548722097829541991969009399211013847847520895272273953136766731300180789222800709901755263420249703316733828006576212936432899077377977475717295280684186078227829568002770425386254356258737317817080377910485212139849981622415594793550996171624610457460740998276057869531254700058490559039318228339136653819973346518229369981894626213931671023877766922936996371029881122169726427978267353220466579147089763884752545502229051614566592543168545506900659314404908569919292854615310629301793075445936935211950547788476934866983073598382431307390631756556003305281815511995130529420595913187817348979970884736553700534033763888576771869291179824574843762509536624399524654436576943961427775260568790128130930390515886635968529042189748490579774233624392702314861122455744703531590082252241313251553503396848915420539787338018933951951807233142259979932206912348929275027985639474776873774005305732541063808652091713463318283209996956765038088882411919387178426634398810280451604059441102352856130312750067105080880333372427642784245798241088793516150897914967465867692668596047642780291912672184533721852630505823400568421220443838665737195346973883110289569431534322180903398693863836213157523519599546690869327153224255672597178943155529870426759290588581346360962038302682450249330192995521444382987703775395303973866335456250428499020648377345537283270933506078640141017992664664676957801717848250872061950687219582356798229587553350483024764219419857119590433319098329385312308526510739720053936861375161773441104899511927472243965832821221518807079825543122248974289160839839205499658554112417242580413735141869786530475872163052333848852023974763996049668872782174986586989223450020327468135124937981699831113400581249220644082857650751914142559168018685072013027489454193431618718858219111164475332391370851533976840771571051404495267834378686551019529596101345294339643590709353057169023086911024312265656700182168924188831360347623890925176863421973450795906946877521966710864377974676777897114648175424397509639054078562933460551217928590588279236670730211309666310446146764497036743138895204706587025415176500130998464267044321594100805172513580912815110194521083680087238469567376091128900274361961293168509227484476183495339366217503107168125937743300562242656325220424372524094786719837827609125283415717621633881617281402020812658399852124360834957264805209089831297670293636719622065673796402275158872497049859726564380550914000861859051000398128268088794204821411236783439776745686980977306250960145842623426844384592114456236170251883469716615737309164754956692479866203636855320019368927122007418587552997537276249585016025763241555939985187831460523052596788835784669857372465221599908678988569838825727208881323774403529907192201495396481643500495845709100656880519760139372300326437237333876924799514367891513131760683364440309226775534630511653848939913203207021338255023245364591701654293782083905354894114602719342160373932177973809285392451564739847068628057133207940675898376139374075106832167782652152689306422037163989166779155333830827630445841972723792962186876429447085860534712478378930386393905968355228841972072655472106922499974077185649389501276836803751941389559716890598524697631941309153763809993599066394148331257726540217609268139831275378746575833440232983828585298432475633868019636378036637315912194300956503630979412758585746931169430975675307233009257635536538677303584811451760904447651329458452268436344286070629940793171608540249868338526499781939713987386286528561125049987500227139992349043232272155467026701061916450852015763953375735114421659543006035010879805231721597321018995734598239942989197534939255316742175149040303144318328963887673905271079834875205860589860003795500162617304622300926094515825011403343411113423897269539642049831602531263506372130936847282262300496791358624827393879196639882929342519586319199898820603221834096987661194369181894758506416854208487815652997093179555018678093524609879968278845036342944155904279973861127043483989829015168554468732806077968941116809243442607196785686466653259349447016465297571226204474766205643474798929967957114038421333334399857832644432404495281164727967487994259889594202442736429943739345375459572531739648139545135391234849700644791831491475267061487127904210264538731573465895577257577383966590367122432179289894241014280070673734715168270402502176469029097779567079809449651063030077438946421820809410883733228750021154548678059634126383248408874893932550504378234272927764777598906237142101913897995973230598030258743949491420557939633820955095894887705641874405140273642569762290634032654883790613394390559387571674986392206432347424938162540449544177449046309310720082541518157652014562169165110945339117242546102725804653152931862868991619673377100208911292025126169599786460695365503822908775482923410443091199331387783354976281591085004150537359367410508975951290953272616199411288292446869766300410523833149197066576308496250826769464601768928284611494344629798095652707693684789427977594541808508570054433518364662419400769092204807982010306842108778123952498408023810850173637791124926060364178771428047266567231342528545473424370493337305331992443122732944045306380719420541092655403129881971418880592978796583817749489198981081943331082553616712385646621421314707851941875721211662521001749987249100839456456586500974311712527886477922592710559155392115690779415941974599381644758370134666864349736637932890331641954221018017362853068012194106631852252608421922152827246289432493607746769537135264222905684124498349737297169197914159737306490546790955572320489243422476436949281737649767487022881644315126215086032010004170377585850222903289068438603237620531664502761423745005910037905255797040231469165157686352145347886750014211684640105753471760969965143597473830331441021220166463650644016825750240766942933336418854594744484485533933396539053838610815589021229189692540904308939294558732026740866227754767997051365307832512180899801714986698174192764901420783131876101350344196092381886490124084639532799307271346608235366645107304546540436546162806996300697710784696797325443916912932239836553394961513040713411762049652546341403779997987655022117132737673447114303007417629274496802168255127656461556961973295609605917271309501666448912178363377669724297527902308376645483094999842043787959710780495353093579635487635810889606259331297570213630456614621300855618513142159455641779463661040052451635508411260830976979417402627534357239785378510724420924990455917544905429361755470153393496697907862449978935231190124218872389665216198850630029630745612901680342161441379285805457923426137939056748656290932355131263405975729810725817438164206100503969328601957644747822467123514913154486009531786170254038947652402360361955665723927406884193694259881221135146954022936420074003883448408401905536834289802499188420410660891017235743565617773693180634230484005112343216227166929428161175848287481641345690389566393401616870891550670661960563642095438413539117855000938889001850459391568604374692405265312557556741877249010453511048453601133952784249371508799254263708502845053343245331282496674011102632888057943534766973119779787718309146423302304371324789115500613076070919862392676771934218704756489562435221110428193057409658129959072353422807011449021087745149619983076459216561807597950075740535127910838841507164799899321550177577252425887633270353402432820986686365320905564153925534958003672641706819570216699790845180143369640413329780925362274329803899180675427409634086538944621364853128328878662251861859114260659235954860197361358677587907471164154697482101329932021275357206454270996137856085288598523777689701017462786595953895989658728669897409404707624720144621281856027015952669007328785224600818737544900187265443262274229511572842146264357766569753819559815850092136553810018018218014359447908978515629368942224678081880960731538417597568888955518747422263964082235897972833572679081257686879848089356523436910912404833639700792109068221919593878599375584043803435578813472592873744452544793410001034945509098653501246387490246592721737306150958098115437722650862576884506992092825278014676001453074685790798561028070055446927863771391517110828982117604123399704104700868913611173785498840861551637078637158778076574788966148865698275603386863914799810800263129045128258151380736664060906641690642839368413385921844617458810735976105337551387675667308099775776800631163920771658254869457785823832949983278372084406258736155001656195273374595007874373516303925970154800826065072623520379779525670566202804380376314051801077418319720302256531419893347498359275483121772328629088110591073160729524823758301192821395683782271744007996476049831846998495673567831252978836668784645691875824531689980609816029743089507013423672087238641978527327873510347465095226792972467947684373099422767797659038956014898968623259771593048560198537696911950816099775373401259798757410890468265448412134155784189885340059715402484978276200056454305069927367637219086765007297486016875481443302881835961611705036055549689178464752542296674623017146940830186768041690348796448672848019492482929486857183327751930253712916126162609518740028072006471245770944458037035324295095805069811850797578879251202995268225327049240221143351990427674217670029831092297978185761394406889649031645817421376864907770585072664128674946396286380220844376724521532860933965752575820197915618049056693281018598405983105954740968049365831160966747236143803219306094685117422923343570839487475426311695119129055081553185505238480415894295466706591916892037100822033204741509013057402328975652841856804186974948338319137463479740356464362426099579937050734186903508691588579418371068638994152789123276315654392606995261266942420532543686648953411086744804952478326604161869680837113426720911026877050218665769840613030372909056289576488132737278272073661889088639701307861887168466280567087999252054269592303399823286498479216849711807251199717904309308276410837745680856330615332016740329087644696650746001192299663009728158601970346821974994388674889809526448447225190375464729050441776009443513263459815679807830434132606045084944253389720326646878502359850939818773124275922971714696891102786861393678183341368281658261006866082105061157954954241735546477580060117627765124166270975902695918221295259256290226812616049850591073728984678298980509240918847729749938551351484142678487785960337130449929613671720050418466909601103415394230164701393709712975752008071047862980874881626669228387540326324155925055091667308876592857000491077157405076646732376825011418723532505700502536421610427563856774674055566688864495566410544692655670339516366355457342599974857169936969919077590890784369136631346412608318145366078995173525281324530302731675668313653502581558006927419849426187426551930357008014415963301624743939142178547244129267534749546855770247762725043814126751535277794190535565032055060918003266305350955889774424143875445374307561697973992572362635169554531188271374765890990451264244972143810032036860372538609893300974544852364727804461978495327604795741594571323001134433065994206196171821635163612005606520782411232539337210188324923645094224055237075051663264746898268848997040449115049745780462418989627767938682247570868737799045608299827482196311113864833184259785506975878966409579441194597637418254118604536645066650504867203076173975298494287250452915638761251207374075488696395901960209361985841739648821444603736348950056512767596235844319619312208160121000001382264919711072937876308704909853971400407351391772824371063276346351732074384449724572686820665239428235319457164176812261308763179393913487400674113803546913102073066252843552002092723343506072415272298672339334621041535785446149836395611208381000779594233441530729896674709616296229403122143749187988856816602855522381111936032824098045736857520958257941482711488014368747230207057380865924598950616698192855836217591943678971383716723080126082845962859215031521162022879313731893509601103171906849402168918552546185720362227155333163845631791470045212744349538521557565014089763688997534084911862006855160684391824139397718967851992894759914533742525554032459268730085734998981377827339184318087969651266275764725761154471248592017301255320444198676003074173541018143765250669473732261750539433556187000401594377896446275993745992552463901348221333459611494191457862117587379550925815731427369037588408394372554393074406330068424645996621742517259277656599283416439335765669185456501053651730212051531328962835328140168583161309378736149064844937298375235483192222158480465966160769167579585306394551991814175626053864149717121424703412559118451769928586155490550968229605980116189801049741066026628050768735477553973415313091914764315296334704360273431636453463246182447388166835008076908579406622886350250240538876240243099018264097408023913440424788681532157334695287021770410202980915683404368645445731167102339735096500136031892395118885285124420508065464674623673833962213099786232557240774371517920259421651287246275229818011384900503559154895713832422503103774611055437717476460791858334478670481594181345630400947275561893351507603937950887578306703430587739680023908204357115956773979892049356062630887289790341904753692786576068582119993582004152731901285150733933213454094867662676530800746754083674988779136795253064261156555719620807058459894331305528740952908511788777396997069486379271411898895458065008393708522627827234767958507281483897383737654341117101039692954803592249886720378209105199505777562488051465026482103975980683002654425651477450684964271994034466188644070698507730321607681865937789171889241620306047434861695545376480295992135839423490859555197645265421455509087982918291073057318340783821005702776583692491723149695664880129501710138745530429041625899099860884053780567144881873348804537526550147857492147455953156910368665929962879664140161277372043286169796856006925528842664059546432848460940627447274379895596210515813479537522298329596788699624905129588468782959329349738035454510114028252208350816953990731387957474763675392321578631835776098095626755631301425735154865213122125000316322501696774418178130083673793693625829828263443182435027525781014128763573790234662228465347644410032845872704824086705949752306497448011447323326484743778804991091858818576422873880856941727635320494396238897099219304818170675399047259003506084026706869463987890441039227459204726193831573941011516988548435371335243727840116171778105583610174515394371342777533383793586351505668746259684302174483576948213320706586070251037678890534400818391451186443093385672992743083342905131262284519881928999360286023413248533752316752479730001536653711062499162904695211714554886509128138472571157496638360661258058218384611877425951657831339475138390606061632121200595153998286024098208145730755637301306298509670648371667526101447819434351300784339397242998502952308676343766329765863083477416594468162041392934454696383338412451431717676718162913599369313746302321778667296689698128288696474543250326310703187773882109798467639593749373878223175250131565060616341414328352814468772386968029741005394159634958158954633944364734305552120960566614438031682723531496503371931712880757156859670536653901993368283704223043919596820901689512028659182546234279773998751431551726094874048840663314710996079381088793136181135593407766239563699551499403764190327410061536616403261903553725933620553416039846880855697359948441029653079571906796999189983410860844581628647495206969186011674139510373087004435626657046147468864557746643455045166330659319783951698433752345835973524998347654191426291410751814366449129430620883766203715390086725603386976981601894918091427650928610133375810781319923649943011112873488984018246222860683502373761599449071733713392765455270822564543010590648863083482409738391578807479771592242078128978145788210730343646857216743110046797843823854868959485918776804250010926947441582129323418595034318144903568800982181010096693471712481103487123191173244411095791730039390681196951719220977950402595132757249784609543915802385555586869714168313045058991367075015135781696854737248276238052621870523199965672681486459603717834544874334850971273828090381236433292212010812140786850372341432025432356988140286687692714263784867997618683174236263791630841461106061622598821874097763577108512110189402765952442735024220651343477645328161327342651980937358370724533611260639089149359535360121634255464360302008809211276894839652454793254842709476404183377008296814960986881184769718847957451817122695375276116743755569069870456734632339410029016724435432054718346260620939413620949648353403209430619782425196573068066696852124854329950929594030885956992841190093090964029035543353195246323785695459304548556689898772305080535734464147593909485208259715220024305184024932290450846972862142117253588872396941440580824392223500434937256928130552012740214436268538663812080154347650937754394876226312203006740717747294321197358939250883976993702236890571422777600504779296784750223306796072042499473246414881461417224083124446298230786373953999641952890172644133964479579864375838326740956626922543853885371987666820182851954698411732253310728765799452359047941131843210585577288720792176703534192348141363894451237511556095416731914074184566352945463385979455666891075643343453239871691986923454983443609479072944132269017960228321924487275255305383281892496427805675271457770846241095242430729516784656973006065480843291855454678843274434177704526834650665043350813285407674691921719105529626644183702231667550534126386880328323247190462948488866846549883908268353498269712821462358969124238682174813234649332734721184450461668375525434882714512515630391897068716401715350906064598533332852463231703007236477012674527567210896073203937466754381057211773345553643878555513417745896720672845415345477421462920083659693046906547332014354266085130403465351350549418440111185912189617236588572354898139726984954681808201471239097135996826772485243437412159227587453185078835109119090954932498509899067278641248920073985494458848678195366812284618454595438584335505603711259154997342031434876267921171692065274361567323038530974468826870784073612049546531285932779619610019741312295718668442556488584401016688259618504351263982353975503718630715863687782154333221987317774711355204597002591388179100531722396139882860003611983012611303287741468990741705362371380126982923184943916606169326898327328236453892973863726883067606778707841407110370120617790703366622590361590170750380141292604969675378012945082339137700542094961262824914202669674759800982329102936645124414863341662947522840788778329082960946221083148096959027776751048558457803644344907801453128614137453364072360414123038978607424895245356659155053341905424466410728630040082975957144556779300376997569986066069342497381663323727793082046211688722551432234471674068118485588090662738563786161062790378947696928164217271593581443187434213540796193950937757591744574101761015969055247472969292100799932267233759142048102227957686722310394773592159844262519159054543435009888144615386538621369291765471321491476763586282054885404314008254422662182753299679727312759622787883621183243797355911112704208342654891069976582753167948027444912331299901033595610959919979724273237890924998872952754919833119979309714203996477677431338104316289110302746153939404339915318178977195878834792559642598520468688186436354795504715903801042576336699860643545388322366544384861859204644768481937596807832379417659940702131962046142084946863490447898062488336341534212150998997917534103034527664107571447169366415993536994272470481458745476711536137413809158953242652978194481844586391905439649585596324129968103929061359820647770051005982688619428224478453469456458487216040692769116511852948177239237648386494869984611186782472021910691186300318678639364313049132494926659228882190608008808359541477967160968118463309487420062606278708797676622034560375999819147757221518157663079604852124392959446139835986555199796421457121512444147062250511612740560917098091804684166836208961820770183378575407260511680126896938523423881750552060559495806203626534091466855295880894992267508944101142451125360050180680431176545771459480739686488267665415645973881206869541349614390994584149981802764789957125809653413826244807277867801439627338913338979934793138213717159945404536540035548013761994811885621425224153395456362238557193276475722201845803569720303867055431238303105190084519303318941504708589705612550587853014023395034594121290983587323981036079003973183659402668032597744224127226780287222020555814006214052320698376602423970760406005992676764829256189283405307430678854333146546317968842004860917287191634098103090497062362311661812171806388609850466368339844341597303222023247804548570880739808987531918640703155266041867678153759643178762635852151624050742809886575928828962300417234203380039529434853790107198432048135255584982917065879764679092721344240042056593403674550895120124724729952567906033345767319936210096678804307887350434873972602392001005612133854245501790572297829730905444788542769938319706532243889182059958224090109626511500824130956948805235194456415589456591118268802031220630939473456253434716072206815463677363314518756862026196600643867696013768732447030705926079521830999599867287247505246973111359068455547394267769997589644377960069225517887110063524525616013739723964502501605527471650297694005486370052512603333726346615450420679081662273520124980765660385981173988781959063489553843575647447496246439388635536917780936380770892354348003833884369242849393357899123237848942342700780973015544475537797980639179414060457642839983881438043662946632901675669758507567479807217243839211552251859063600783867794074013191622486414776493102881988296855745462639892838137635378384483644891025133779977128909330079072858554470138823858867717101991106352104883976158433892533442871419593313485282596145846864484609014717738010624418525130300123030550088813116525459275207027322763319171672031438813549776940641575447410744209728550786370155355663964959216265614016036164166124614820510239955183320625497264082873797674411435285462595082288825434144720205051617334761521262265786965531076113728662189225622195402490085174218166622629719886631418289900973183511678828495904777114423074532615110816090278471529053443393914750603775320465851507908851241389906354951383883182029374922635164615453002064212016498101601578688734633189261692360025655229781019637458987469996809170138820761821781171192797212549717255979809943982397412907011536373127588303785819993414057762017214071552277242765093567870084528410464231897068045815022229164945018723172657471737904353627055474836859853891555784815321127951498765236953564611675381873825545272801576794299469429684597572205855475519096984792004092804816786464704004019151259248753791811923802987135996747700717451761077615271763624909174781318227795052996638669124216900384130645802633642340759267247415836886487531909322816457503354683125582423290565597130230961072699557765253460112337451136902600706248136888670808811332823418982033706042690663946336427132641505143555390889947545054439726432722889027473582208480012720201683011603597479437321505591369686798771548063979968170089879777234481443636725538843682588145816948252323873485130694097249722330333312847187364456006505260227039748516122127754886556535686725265982553611702219517174135794188327103218512239349915657093922581832950658749280099281499168901076524394186976789191571818205169997210949331275099509934983311509470750888411836897648328696213536650546914832383316438659594295000961420985936048338601215123529747885327253652217745928652130687930569938392572500793037203623426982297516660892566641070258823204148288764232760040284438156755047791878599975334297254484600736463937275788331657051406949045313139717980995007143755398884225745421586547503047384547789003913559179718787945451847680623740404785479130747844249830372997560836226885422300359767244586881894301869627409095017256793637171289219943686389142169775213201411620670426160045977693016920844413983130550488642158879852440442750939135910537772277058037306365074845033129201567025493882974085720137478057810964424702432099039019912696841836748097981314920938624530483793849459349154743438481419552236126578851371899439934459287979979755113110767177962820026800166300297645405655130347706983467231273955269794981215083391762018706271656668941826749569999236763339818806775178397530658249770450793984973001575937574338559822361769771506175930729987772147806126965187031982925447788400756748155440121724276134937606356662693983867472903443538594344896997246130165978421401145043428070059318923354107279306518462013494680864778465971236280751248205274637079669209849307321385743911752493234462164022097921097194970856628172281244175952609106416457801778764220322416874075237742557652051452912999069115546895666382575261613132787069152087181829034787907481717169536606628363112043056878032729649297923246220641925658450640010105880755762696322605178285626433041346265207127334004628411529576068892727622290307409026553735587149784818321925938071125859762475270550487517698775317545124754010651274710974359515096716454839262594354621791915719605966040187282506223415206670284626886569878083013116856248865539940119093113657071787018889695889494732254895678262045605937543010549596292710680104708078217608372310011519380351517570012238954780855108210538346968037109280359407476630475900241510494412949795127457051713347411357381690804695596865296722673087862867122741864072260920537100464358907521179541717811508718506132892393539727764897266670895724343910543799310201879787528152409541446157973531404750551429526786384740760251764144439999154394792603573914747387000575437092289381895786974633411358033136202820386697580873694239725563693453935645482758687765290168777863162719777840028904963234956035614564316200184201297241168456784808196055492774022605332145689181023321572667561861953930346036371839485211041152908377901353667797098576991539683413907011482985065182680894036848942314871773923141128211798958088896524383939286257934708092254085357388998496416149445689823856518204506028458968484719651350570612893708160257078638603698155872480090426568644154509474140039573412034454189369662055847789588534042756030336451333802986485289794808186026042150435844160662750069730673125703549161019071620681982511699592700197787569405975443531291718564112126199637801687384092381283527047647860830936740831191875811004338325909598455542003344327651226657219834158743271614968988705553369093016555717531141089323317757617028733047187577332552581736680759754991544736146068089507626817811790211429674201913833988768926953050824164533685151061642688932795689728424435740221503634115412335560319939802920376891261969342643487670873127528429378101387509520282572371966040048369339058732989208221088528144500226319295147354763220909881020963725704256189630086656728214170324668609183189966673276951208265148936479507065910121443384469001351257421319822926796440284857872938849068078544237842653536719309624469633755198550186453192890195800596062053711952944536898870825162914451523845888218031277112304546538842724584033882733619325019032140119505298641568205969592060583117151655428338819144275628518862220998415426260735308271372844101476378190791410705978575910762646134046833142757502839408161646967317930284249211486922108480526283135098365898623005445810784497551188109140329810899364289832008523361479974670494693925444202453056519925186062035087804179868331837894909144645826560253991656455906592397641758277809339660723115997140051689422321723950164930538304468429868088463327661124731307227206944475196763127505734438161997894206913935976896227013716634200539655452485947919532566470243853564159186330712253941238654414576827149074945891477520374389777206808785768951323266595391990176044823514793596023060856090458549705821634606516931190624401856465751453085370394089202029678138119653844649817327614656733073335260764262570730907572294828755372888073115729073500908898736997826985444258274340492090607634821001106773660305147785802189519357849856888131641433649475172707247384041453299829837867133114506422547829637211748425499142069444044963806274409772902008246462250200134874448414895946181605516809691776691092234604228491247805982008070763993889912894417564991526963236945914782230728958734888307875716704413659716549032637706474558391252715007922745457907319663225892129908253006745994262261175343458979182060552175646059393713235510891876476708572998732226915368112569190092397487115968841362858915726350655594598404780825439564572086066512969550661273357362442928980967762107094900620094795257455403467531272743851506399262404345253870573591771388761530819436912208192887219014375544601023672524430798280265068690611150336459959257623541079400453862259588375787297504935483210621245257637292629038830159152893622283058497393595567059383219262368844116927372038035762576161326469833256468065641843539989762486114425561068595682117605497496374624275387980463867589479754771880603024070183463408271961059917912053607566269304907569035473332763987913745475680982934474499991244612858649398003407134496239458074227216071886843640920224525625003756318437846210920197916587999917269626085892703120956978748646840344299389165727155657548820424750174027434677294096039968820823159736950480782885160576855665351126455687986553545982192671632495933988628827353234605138673049785359694644473162074087093217209084167455471403667127827585289835031857696732939196443414108506438195976614397009614123420488010665906701439349576947391907453751787346630627120020274594470340532077166522914189214939131749222734235052866366541384889474353727568149107542212998743365412971893054300371233660123631834024273134461857441915126259474742412773687646443440262790606196551451634596223974880594236206191010828536881349408435173877179760971490898130034417918464791429252005474724080334609423031412147864879923324640835945970602346354605758326978612536357100331412189625180389827667762943234448194212842053892618068432527840592804932225681212759957982302170369297645535111929486040403910909238758803709521783017964117336816433073413681406915807838536777111704974859231732336142268260679459579566515792341704557898959604857117665217978624018563164455056467454245010703966494437147040001588119511136234542350144353149156421269818038146255588754022650385388465274401868865642157073939595360524392017991909362508080117358259727187294075076749699578965532534674839933303361184219678923198836458508421976277698315502879145553834228888528379490984886567940505789874866097555849098393282809255216474499028869769636406125233669889963172591283267975067558053108316458907760637823582004915948400202822200590044286106582534598666808439940958174416744818006223605751831140306898981656988677517551147732965015869269145369399906423011254123592253258901308331606432115923949673127961124741180486235407036225565769542155796375095222429957406564292087112154858138370804120572331625247961684204774873000236044743484525352791002051358505114155810526593278299508906829383533643410894597194299348549064070273027875042709053228799905189752787709164310240889386371407295261701877488574509506507477134883750789259610311633244375241886282724228385965222170093726224005377317647512733444909608916699521113879735298865654195674124499050413452372442645388801130680692587485712891072226494801767373235961856457363261579024837856312312350058067461781088644034235802246565516019315141112101648731293809479855404758986771841367640531208924486457617028834676136023362570011632302572134774779445160042470914781984766230920752339810443212849466305157231351303155268692338963620915803702931856340573575895656168150432731295193529471640582416147732861865052142396551126273014547368499631183051997055240129336795659545383611888355756068512712322056710144165148359641793517863050335153630123207782628919807890463581563414980516731017836223744236346557083597657618098598042848486334820760128249065977695041076189782407620357898815316341029172262308903168725736000442114509434745331348439970682932206654794106083616957649582169327392946265813289878634687985425919463999333877965320867463623998474600581479699298885077678240934453678679099487581411316651978515128695428720039122217321335848204829329581438511818375090728905852740853269632259346142677117526308583401347623860078591701474724436801911601953435986721619007460422566808535832528618398005176503217510806587072253189623548169158861271020331461784848963740634141104831495816785822697473076814459207168668987513084962160677868678317520353439495233831053089803787195177213696835882287469228726116946670350756019475761125425892301150786733021427152187639124703678375385282537406423256732040726400581304299039097712926734867910261961172379665025072516860212082158983300421625507783640872750259986634065763227616366879793175501738562847007217780499390439586515692354128333883917686830644123625928276687709826568693741303582482559643672841764041546358382550689357828980409778271535418776628551885028029497213879033459625270690411650890213297616418408142991890929552652361084644305199057497834770473337672446609280925948041358457345811597463368707010302211196922820799404795693048414732302640030919548451751107416939605537100571757914174060209672861871637694978368009978480628300238770133849663149556082832681215586082404911442216581176672910520482215797432804920881446338439920942558693807247267748833107330601407177085817541679591383516251321218320213837396661654668800183311053460765189859824388351415321977410504268153489786781222697853506491235588141957057380726097878784153468202493904861310917071286989781057347006563544555539600544397745855658607324181995919445634783900689703476318707022572061939202972376716064590581064442056051889548238754298316457544376143510921142087385166625011492776311664315035434406338537677513715131823452386098477238377444667798228450706671194406809781927559955423748381524201983954192626866411905523714893553829613465771578760480447738437916105601316470373993348515196315375898129675390303068074398922078332415395175754025199424746970737625567979403901568904876731318969583766540786521755088101551916730686368930258349684435366478556478834609456092539859808558852488353149861161406666928820007976837593311906942279571461214925097353412870595141822863172423903561435355349655519294217261656750668154042971436381603866053380282395549599798478699400357892052087227059284343901899585061681076605811397215859682349253595034945824705607334973242623819023080545294191422700815210766732744007078275643350517605102058128056749794810935299232883267795456962353878309406518671913408011676444921882783975177413340100326014120366303002387074612022367442309216034775722518486166914136654179488521504307291549767330143982378507667959450982279642648029879076961628066294188717363153079493568355402750755101709134453646941385526405077195965195324185983663414379927425861230433946909965082607511713508674722919762287978718482535768215507256708030812518909354519126474134022649013940781632098029910058806912374643256307877195165424082232779859250886050730444803045839963955165368274233388492479733695987519516718146043146405372092650629103412952879314712650578243459519751984746999436705081888238428218832663599454335101311625220166592450228437756598230914820512384407501277768919833396386582436503767288912853601440071862834485429858721779604236779052136130436439512677556292892106983385079205841160250792232170490038163023652606250789600756695992254216655299017879630646352828083704611799919757544738034407238022775679884134663814804879991550764317817079464452446027472506327744958190768310995510631065360906993780943108700467663832607714825681523167019231099420731950021725484875308309721384823996110993985423900804105988873783933820437717380331513532694206640271981400450712737784529710646853416607972658855995960962194291390144875852495147110779409250918988133505929456416667327981803461265923485592500740211906578438901529994283697449377627701083556867861038990025377980801065954253511832336784696831511808637112141917284161127605421182742518044210333318703878107932797230154690508478795653392568624653556230064327347498052672873974962299552846970333016252052776026561238489344660220942413055421421378549365599933073772512306274632606667720805584026791150513801475207696287770407304166953429830793031619799509608389117220181151484727038683753004510547232767871712114951073881883881208164515757726008345985645456310343808142584388887420663373845146428807296865697447720818808613548975823383526142108266711937111126876442172416786554620759476329372907707556188572915304489117271882981564338273676514602191199932902284094774936171842892452128292148060948586324872278134324796120778265760503959930964611906776655520806842523009243586166819671901338964104946270064686500366492922822485633441831683253665036522451364753042757590922167985639088332091105037360914732278059481486352951181105913581982142896627367190921422538671646161093925542061809547506125449495734018508597755714789332982903896314400370690518445154979771564621892367197008437087181114464456284940102295492608741669284166078014245899511019745111546428579997062115584279155241617018744296707628347097022655577792968233730788502021021344812573610267424261221968942981763687621475499553769393507033997848418232088509300551592455792702574569955789474527583670412411592573177649024756311119911101812134873089410012421154385176468147482873902569224725196902380134337706412149392019576819433227111950851032056321886945964679871536347956342431343320531097883487393254960176999701573613744640593360554030126581121230748920469593000250418507542577537659395661478563831210462828201065941865770726351810948586814476324661526227937638957601953368579659442133528391845112185090845522835045237017307983227404253247652637252762572715317568629919791202823776876814263820572020657241807885137679977805469521627583888278233092535003601545660096739804271565447179120562698617737899233702245340208515772214334982332190998868901601177614492969220010375411056331267704075453008687884713461389492673422567265050051840552961514300909204661641944567463495580263197849223857055822422675083384138106970404435740420206478267654241718521730792317596187181000078359228852873362393026532513985814959861479547664091546209490441776302904370161517428765651995485349045084967192368018191657864589559975450186397595767160656070858089428438584812887564442267904624175664310427805903002930416646092275864433470306384294959054607599068540792840116042959606833561062022978025947489102703105705962297735065373481823643276672609496372725846581374286700477594252724057182134695205491464677730812506062375351277953902897152351376640280894385475785521484400816795806048009713420676306985703472568714845586627753761058593298458228905233231206899571716362962256038822285852175424712228057851584002602532665820897115408197242273522989669668666840309577177732338479714411331992883948599560538771004070192327618376219949837282172865411804747552119254734395663263797963586887997654756499604543781746693227272562101667286751847496210089675548581063748428714494222800839010481831078918972936734373761592225046250410204211011379367686203036765695506496641213927896163756296760450140348654463549140907633679114788361703457931446426352429774607201276101927890991858340587244806434336820970314950896003704613626884674634638999777960560882984109551944513252257643637421494041425454688485940512917274764123000825926443960875001777713650116527110698820781288367813485599688395044210302439485886167423623913715640763111233900326996855279904106467522105289441777899254301846778405617551424745517511390643011025788688438852298819417647899769812440988451245667663961570045348689166074499238431461991767761284054099164000384394331734223181820514746339866513059644226039254572643154466829480022496237854202657861437374194959105435572469751674883940263908091386719563136168119587660400709674768442208302201617454208427144258703187641465278348739331402064206985213715882771402547793807635614058727105303851497588692314546406840950693537075176495900412592472349618104512195177815465405424422070154588936346251049692168026937687210061046003548987290089401818657309986830204439663826009212907867787169783520537685025084646469496800059275976381157608826492753160893576874842184268611136234307359083364822477516969907782308817534051866028625236567716890174910976832711219281693958768266358275115317502124454961536235641576814448846735392855419254097241547920790978465976573778317943230189761553051191190015970387472087357769171591514571124685261065205249375432693573136489418464387577591788756635116929570834018437100575939782933075277114559255298293891130904032429909962614710046866628331278991249056129678795451630771513556503661505839124389131244202516012735595684067837923111903082580133929901684671356055775135341561123749413404182136513421443076580993429760253126859539030728582850673623423879153433514046324484737479220393692251399105623049928679968545146536901383108281432618346522723097439577517423173826831063885498744698402238517249181482918110639197217539175317085466190969750384678380227558000431656157595543524102643442815335601649721149016584026203924854624216575733579954851003126071614920621139179494577769049357126167700802099586347060311787076841634369789297626832868144358458037912588087205836568722393963685352594203648425370379048467021025151822885572095016479694361649009773644333180360583779524547946185212561418984562121842080121850600586454654567365559063877273374292222458180412114926347025922700995512017604826573663794975331005031491932471749514178577972196095596631272037908836413754271814941904695150975354258192217562825452024655792131605619866996599682993503581506298365718790478659724668484288835759794560464997745945342713558588519814180311374800396983468108621487060667837755286587418633258010806740355136189555429545833649142268502049156817196179938359191523633241677798604872397196107581118237363691982332858665226884165099400232021475488042808453593842427074272023668854856844066533411793661441914543446004955287783438930147604900639480976396453766013106233928892103886517555407113300074253223102218054585006039264115702471573090604012320872899463590516467078118967340758972987837669376957364141316432464379348264438928351797109128263443087311588852671183651140297376969654353835176320940404661774817120577347703932089182658554117446671056491619608913914781792066458721579525891945904497206141257481880999130526280934082927448309882880316247624052722694337568568089084741524885988753984457210876275960693847322882607783274506009984605098839642729295180008458280042331998401673704790650870431976021271683085189276421939677115469779940104200474221977476890475332787848618421764446247136834034520398725101611504714254343385220649124172189427935628812962631185903580676404082458918406898375708995736060462980808994482450506379090703153244462884397827186584575826734807304257673485020703295571452292911585794378556567783367437078864936080365732508424861894261725604042749195189298849406947488344101821213707152470283079247364419014512805400091980258809566839203576161824996955242253925470347254256600397060346738575446369004509964878149027013745724085949496498382365333816475475819735240553293598771130681441007329796538428533372433332691175612629181714465472039544323877283951289300800791814500121374913298148090266425750282394400629545062104996039698292835210700994039051130011656139824066761199608198413873129630313080319602199802703206227312007624026087610806134719269945545023110931751993238343869926530509684852799624599661160382944325867751519791033346437342978809820377439078169443847673407054932049297959770869198920758927420416525594620385571475158451166519659869111321371136136987057377159584185242722818152208764501040118340835069446568986349057696612898526132158926389922071182253000028654680342711902252824120923202124879479078504053972015505322268307809411216462450525283575928666956710215995963137046339565933404846958919703876610332498794318352506334971968429600237269352139157821998213300430282271487963107569984714570368233504855664018800293290661142140558015824186914115743020440656951378288087439078611634515403338600959434608410075819848025204771547727782400163528232925738805614238199928667446939899326661103547740390795077433620375226243339420071013744534567423368462089965781538119236116283553601025798812374739102811671095321299757179224684010519709220563770709680634265306957135046367965227521727214338078513460695541522441588673915877027389638255081036333132988857221693140364880155348863709953106205619676314130890925144582309007806216058608892708794475491222641956362603970597644579323511427499327865456467162869297263762548984525634817520040070368247600992087269107162753005254185186015299960997100153175614977410888842861430334091645965934371622413452851435691910241174448303729694507580971837219979871245003043699704236800460240575006558104593186384146524427243074396527058347792265057299089334749310192985095475476677410058956380821024296771100477592874676112798040345719815189177844797004329244896711517962803380545843466852457060275473504957567515645317583942881616210799744213396423391159035781570984626210906684378792173635531722738110130420338382662089293975153059177456347974241473373195137904802085679637819484309984294416544856749430170027093451420263536397039229460372694591729974959431984174682999490666134086651625289358868020844379369041826890586666663893282460270142266937978395316527540723864806560068245062288234079908977156427112563178520124361793129724864498860261080261247618099354838048427176227702156061963725008482510570721909076891104296434219298707083195203019701529629933826460978423043343652713183310335040152674507634944240649877373067193656517855938439527329042809530728557807467373213139723852186581852405743835565658451647406070620329463523881466913457820634984859803064970962035529852240421864809504265463078458083097134910950435793999005461508908859466068750582460946697784557783305971856362762224168286772389978925176541652129307109804783773751688642643854406879834640912161805813809769095211033390786445085977304057776909842062870171478740512934297941227418404992709595855065961287671013704280409531776943638015089360932279635878775361796139598186998592060738726520506151474605724646985417296502222843722499586896153085044770022185005822120994099221099078731669374437824149374282151605959112058646107092522186331577899463526903868873926114238704096276235466620868822622518736835964434969685342635232771674681391279644026640403440884822106582034119906380457313867469416982946949238697551436617567897461706808334304348954575247777419267487479586474683026921226280030870695992966695597727088290517971291752494561598295228149237465835026315402207933610622704893124237759387109587213603654819145733872919957247255868961118621097228763825384580934126703756496296745620231669283863118003589961032474794129213340800361587670988571970569109102640457045188135559112222243891624509670775365645748638497929261501313682339769425374587569395929108697792521066252659752011324086801658607827655344173893615749686327002171764185082858260538879120919284676285621842634186690872277476182898667146780175641834258831998955987955125425527723225760816103797933226531202903142945731218096739273424523995538984071061662225425806758257053642704980860320120509367206824453015549057970000300922999123494855794822128463197275081127364893748873088287556123622375856501076833890785272469236136407904205626946494578060527722246185770177594469273079978063061661546374518949241517075898794103981693124242196628805338063812013908578715967504553829113584053650217919600280755202145589129720767140111259098103033809953330606888044936797769067809897969907031460522950811485211416979265960755505481807291349370076053930392576626844881296608455516671343575336568467183888539106892075125369805549718999348208861728250408929338123194635451236099947536403060014384163542474095264025039703809451179386182540861401863040837423670795495910565356257974651639396318109595923001408274784708037323918425192051558774616553987397515580103340550682699650637314238783582026488764748735581742505756510901192213974114556422769058101341953769326940842998777590354533049315264957188744264097023092306603802001277951554170885290528699081357274985764348767727474255330999738125338020924221316426302028279763436633175754670688629753217546720839142512069585861434457491742612592036755234500127848732288949714615951609356551879502384827562527515954172925410803545325547287982741233758332273144060355427687694225398307279577550548219077416156232668599967389896077838408065487044802628399613723890174629031830462666833965384254249795247153138084850317844082013993010260049254133895031779207436848502327986578239099554598159242743081467603849113817432255896192153788574609039822118687399753878067496810384239438936333672550515741681358624010794547649400641596023926223338686102533419868333975505833170909857673978644761118226443040802997242038598812917795044007575665263238778568579551307044781765648134549936996331244377425651266503051647253493894982731315657993136252386615865985604650339303044529848843133485695742950021683662994563925434467652485257243426236549106710171156907276897565396177639442099271793014254515014018788076548966511072624694746484113421971851789287723399633278766001585368329364806187009243463052717906207759412320046739163114407217650036788625635833253222510668721619868468408283105554793282103335538170764345202959876423226661533087028917516711035741402514840158515033497666821411853884174843134774137410822461046083928445763727633930455665657324159391111710070395852099852794984945399555771971188043483287014007421431174361909269616299014095344910821063120623770370023513294857781646242300286466115001949715905138781813076356620414004381718870025508462110191460345517181007062441603235422820478768804146610515947664658905213232552157425088165736526082465326179233802268589069136708926922423172362810066334430642141970206839239303032543651917281451287035908783786246116418892680913948189269014218920652907081460104569945888927933727225906473258447545055527413617131299227325655861655974594382288932087162374057764975109419751694622155680488301047639739554991898563858316328620656104553177859070542498921697537654432032414980831107662846526301235374719990140692258233253370308622251466464025387047178331510846455568789080688653253582823587468936945161747264102489784790266979427783651518395088957653081446460127577529924496013108929985507682764026600792396608240127356605815616915917378109438216590865997140545348180736984760805115890479475315730147753993035648894359808336841616112813158018649694092044801867213169352681305840056077694935378028171257979139315670153031073224327169866829785603419881976470701387902075664563780032369635167922716105628124744785934400943706981557219979561615160659871293497784592912800194083050151085804758126823744493073085907195698835313457215905242883468328476910702968231152091161428054685795666987374594937063435946191340085509489258595815441177302718759018549441203073099227593448437689222601732521221403707217798377242121982792989666662020360052978753627840640749582576077219667497421874978011423620985876017319272227509863112387247524926683403708099775390319175417010244297762321801120464679230223678638932365967743761501347485473504591520994547999640547641788395804383289211367944933677788874276268874244514253206976688270625309984776069825592685762223148749734829581537807927045039210926836182969593740370166678755171848929754665872659730149664469003630426126955917636246652499305265025847655469798567089476718756839232756085954487224992377180424785428570188922397217678076490549802809585296736741599659335570436021872968533952052014495279800944916115239306186844223287731189114566670461833086017556662498814941743465954673172826079275523507109137347637381921296767393715754147985831177520786869051680180526127166798047195524249088231579058782659747474523746962056438127515748799272844435777849408488570545480339635786859973797661486510127209211440079560659324853394012376065902303116348565991888173169672136201527784187730261285330010881161267465049548604975178019415318542267093157260528280857081133817729647202315809961824836460058225030611812431978748657085429401771056079731958602912188095864587565654839964249920496679335433241724025979908126685637810945563151052783500276216052416249899702777055801640205099555080725461980125368871281809346643160853389601869787726543839461260571875964849674612607960241252158366408935820750343070410562261460469358711279641429591868935596948503023431350746305685044112318072345721271415464267327897094932959178766971961508400139730164632737292313312706340166019391354147385519065827715762687622469835809009540235297196229845944995006737027777923312499687410955592668494772224961221692188392980989157330843469508504652036459536258195704773640457483457049938969805461886838959655536981048365260961831935300807486888196128351638026628353031386695727476240118653839193525798372580500809057941629942870203992845395238701199891477687618407338232715629608094364237302353552087896993158427801894291935498801249067473017647722566165698335612773897294709334212199906799582183327735810518335521742555519201959828997382380967821631865532640908191389531944365466205191185518196016118510653034653163117650022923077411075774443245849245332987445637520127417135407224237139705204757767444803411112613438609448523123218099969079630272901035778922719030396735658097815905650821667440814427828785999015266814356754198683352202828112930648074947086875180542523103203192982088455321654556203107436650978275434835599124196719363054157287101668250127663515246922508003406002768273790738657499375111509613220099030234638134020939607063612575220466186617395948332208233094901882190232736728422856387103534255951534238624999094728280741484870984587740651146199898145321120754849470932677205781292662047312419339372606870147189042087575771209886516154162388496885028818884896862240043328754295014217096359081363844052684053111636689871518188012503017919789204228758428582057992823511840719396464831315799687804466963321288698326649633250485571377517702504136852842720338594501353895307818085356421305954901323883427286112614088019996882868828330419721915187512418308649005688960884036096916253900822498374379557894691397541054005310479241281956425787105226791279343158268746446633023650963061321627289760292676489338633985021015265209497970980081632145709325338344512700588636364285207671769447349710688984903866832777702964817579912632420415901459444308081295959457025276249362500354382033845011108634191045733650163821812416665534378821745011805627295780681909543658365003294490152578935180847441844095225407546068287923558300664616109177493537879248776517138753239341130471001699907683479549858250663034772426490177387915243057676785899683586511249957739249090617424974225180347316392330182324811689915231464429322078351984554547358824943255390711211390664063365138027018956118707422294649630348496201007584672868242743308434370156155627911908637011914775269558851618547994324427524975479372027269080712840881348597591562602606573490041570793164210516622684319264257521546837456788662441215136935626368123110578341240788779748132956391499223857180616920564923141685476014081874524586619701088083498355517259327266374564691189860840998983487626968794681973966260859490835165792743551584939189428335434627008722359013197879511276822481744511862202836641627852611434291707964005515272367786046057692476482281160435140169219651901309513455264247946289483094477901367871100223947479724877476512735189583825520358436726934221303335060626148762545806828484733906429787277652538081123835423947927281741297759531974159907594616232794280485571274336801636927039295426271419442677391904991625863567059833879673059519814271308834499375717954474577362845085924299890627277126603631648887996439038463153727363475086276325209504271908113215625921377916406051682788026831460929817594244298392786530178636200300088174854782500064006701365750905183337008446837817959949674971400564956011062571210408385519378411228705538816523658958844215645144198653010863938598816135837667610087861196080194241773249993251479214913568922225412101967757109086231595624137417184557915170376411371528772072133328022565553992293385629530185577180592639766115514054332515512221330768857892140425996320960964383339755137217639624234967702165936982806064386329023325732723559215005658915604256448384733399466914565950559047642639468790166265764792167644692793122465954187451345673217877135502008973651251131738569946853583666184768133444248625502403035592770018720664827394537252862270539024890940558787906638417367234378953720172561095283022003686868403713100095800264967210403484596731923717538473271765482036482544473793184106702595799250949592801020825054488421729616024268178231989800569725254476446924944785420148995043552090046019190231601028027657870912635208332834440336777893793602622602859892914045165250068297286341606625374096796815317387752981269513106346395499217443229202524437095512243054187609589995752303775532129272145719048159210819883304142839577071400948046777421605730413773943702464647341343403462429639389752590991498441945346806441823499444860452428297647804690942946868654054621653157021721221024372345966457633342959445047696612733817621141905613241865854624497221489062990855064944604609438806659009572378681580638105749158568838450903602480752671207981549365148277335687936506085521649513351750255670744175411062998555303428882138932626318088502060827684243078240643628611949600583076569983855459335201278089354019739719827222350281422700122451003751133179962163868662321171439762893300739033166257122496556958481373502708626774434692411673576947398992529554159980514391496267873476069039708809001933098089480878756136877229153924304951278495179077058637377717345518310569775734698060224807920631365045519683069477716900308273967569165766555230088552475195408038711401665067161185481892409189607821804671607342412253216843513482447334444574938252743479461734007262549957085782828662217440203055615645718199411974954454255939029618606638521559050451087481412097251440421222885745124022852641490670957199629895336480364401939946751839721254544543723736820238692961431009857606805165981916085648863004870886465321110127817055384972750028057449295266106224677570120207864270021533997275410035590002952135429044445201705302202844550642864857549924307829874931469550046910711682748919795459713924874148940071190148725207966315264241165847574870405843902914485130304502119469426185509813762638949393547065236136679358191557454704493723902781392572721370251630570630690628158907998761562317492260534782676400485096620268460260620067049697886137782036850135151753158952291579567313474353706033711503312387681229017623804678491951024017245371141240457650494173083838969975183602266590473989043777669962908393399369987093607110356328787224691376730167170057212471775056068783607268955198427683421058426367349639730757724681747446179374822601856981970483153520459503768023459303394129477425094989684920636262727978784949798175865481808158623157187375727744780185228471542244038289986276738169127831190053220146597319298748196588717141417705790408740682725893589366627811685066280635007973482378603838415277649004184121978981973653894785027240737426798620963753926464467869474956695863382672781363889644623019222365091409509024704301225740471962500511919291051622521520443217743851435666931532462359263305320018380494453317997431829980977315873970049408526261736906543972048563983933626220302773583933667231911010187862518170499669283827307386439211349933168942949372322597239861472931970775440185571063622651435419499017421272689902194926567354280274785811758259712111738427135564080656908996855560684132995603160044740826643915167381037584422852147010758145761487580594022659580885707325640608655053216386589516866257984771642477315392825004661426353396743827789253624402145226515382382030699614786185351442774243592413162128348307518829731198094809333970725491378220660994997922713604635640175219080401084602502426032759798429595153824901231778474286982679167161386822650506754888973126139985985330153612458888290294231526470196571407072924692424464888677096907508272656000830157167704104994321871407648608218655363344275164110139271205015294007148406978455635985642375532930266265093613680943133566604685137957874212586123439437640589163163298200371151282568815807954973502334788356938830872590310777571284113088307030559612289922153540699770718257699264235700542687484323625920134226403800651416276453510765420220760018501021983759561691736602867374499794560148921898416607965204450809516774458639226082827017795973043154011461162875876255647454960047442661606009874223241425980033099403862574718672095541489541920567913476421067203499659907216708148379853506575817833163623444134849041153949267306696623692572343926868611815462948461181081452331800656546291505736582552315423799323215444353153756728735031798272401791654541692575543893456420376547695056281292375724337618616681066271285670496408680755145169472730241828365943136038593338699279978677798127912760665142237693562703036329233362313262405306055300361226187572165848957832343465592634442580466412066573641625907160068612984156192146969902099260866403041664228894869395856080885840655162862791349050724129334677350570088753956815264991399183513196781359174850904591762536449517406515320954273478513212128125315818939032221809484936064382662668925353991969150955204031255659496943927291014131515963480187276129242801205504244746479466468567665413436642306423948467569691850512994433295181457328643637283853025366251617657898802818978885247807679726729880569507214451998529391963636076080483270850787264649781010972319284823285723932245761137131975641312139754156239888294085167209977972610643166107542663086312557781746104006087446441272876426196167379196613066256865759199950682443700602411337258897488064410192757240963935339017854530854145763536360312411949734609556722398850244104495216000592886153429618522458390999977856867928129770420430128610826446904797711907830372217871120847867120476132319097725152685698539494013815178268448343181405677379698223713561184556021830349205004194249570188468952003416079777009161619625275491944421783247316610352965606204689719155906179910019464991861356130733361117621896644425978665485888023191284471130557563958722720832879332045163763670636513578033723723376342336220204819710030432916527684446652094733033711277891059399460808082712548464593089269971467244042973978124240747611721810969051940573925096191967445714792928736082346720165890747043440191256138940520085108240009130945471710611126611500122403759413841963315242985761896894571223596169078634506072210557586872343018991385553495911516790959026536253391044026589476832622824377558719256642193074021997087635531819204390068701010751026649413341519705364596310375243086323373751544774976002369387361749721272368127914466889337661239702823384560705527902971291515746959750749928875268859749454547637155324904690929334795481371623353731495717662213302338316233521147205566759686462388756478266106092322966121442700428316512260968255682281004668052670668513940070130562746526219331122511246050629042574561112974394647531673991074849801954759355359520659179321696288785460892730842963177186510710350431055914045188366684951866511070841522748290945734118805722362571147982667827563131091547196520997539538486322224203772694081353917462603868871118763667819293648985714303530866457774015334995670491243486566188993870409086749826803296546343346614187429408569748001933542463170601925360641590150891397794069911278370758277173852581738673018730977835560483324229511876596001636956458110546992282836004703805243496960602820099404646847079783989826607914808123800650025583411532025148114010281581873614803603085535094946213960474007897830211688539790032232941804513321757787240515767423215931877343542605249646809873051056697273713970792314405143105643740102800588276356461252419382536071651347866051829901605029691951053431464687447591054441647474547656006950211010588978239592291576209725546793063538559999072879924658915468199607762081188436742252540056783311068469658901600257057008112918678385123667947099769930184058702441104359703693342837185262058608820220834464005891427369039350103080011628801161587022000606490044017225781418211727683657997315386073209780811162872252990653995210319149961672525694812697822166735918369133158263687674026686158241778202331524527475582015163595805477679089769070421245781823008934372007074453984721696395346860878932909712354379556392754860721746538561256359287202847065772760518414885242638796509481413987194813276712205966932609351286790327820333379122765585907193728093724247892576356164583690561445959799749331675201344383810257806162368294292296904267609956129785150668279350336670284249420780798306722827000093764793496881461585435229993837602912644104674237244663714531992298744327822005332254181996390173131200177135092357859620912632236265541637772602319924296187819406639342232623104345036049444344499513730780057297855867956509980860169333000450172061580785224987730922291629701877825632965369441000288090273734510580968402814017526036861344476382171374326219233092173994575162120963767596587061996735702867045602510513097276990071956447774143540202018532604205771025635730085034127106019472526515770053766418014738516866083958015673770486227808164326262839105569760233630984982157313066642911189433576623571653432865481284432664045810674977378785639778580727911253709507691759285349865580949482410982586116035017641056569477048313904858571501939032545375668376597014679943733717531789561666755330415068746315275281918863411786970694337495673740006967064966026201569086830386091744009184367124726457873878680004614931534495788191420732279634417832992762388085437066195481903194566985891508700912055744727446488626355995089692221275747923406068033704266736944369400428524902050761633967278571800659215984517930110224219614328418416569114959703745692319730947364769768366191084336682181979925823482838895510378357702752628681838203477999153698491353361389015020629807720371789154801432371070398122196433101397563815684148405578800502076701509939390776186321007853154361406215194795693067308474618609107554566256283992310816027123230897681148693762456555106769206486321462394205155555666956335573153164615845682887128722880833952611630280173709732349475268619334968930127675268387807159458765101536689785150994588422789812950893001675435769930535749701807881038356336096570225417669900686646100896241439813141917124168381497659014280632946553273032577952092945675660462933923257531362917809488459199836857237502808967418733100758517943463819282194840921396126499045914654828208542977514134995267205202477112528591823158406836550928482882486624673615887838993729294246119878243583926722761275747126002350212347306094670869274614562440112408749333368537414358138508264273884559860179395206967093233367766399641557835290863974222965272629987837159182820822259606173119763568177744302877105068025145809856632631574551276378737400855461106219237440827568376912132674949264375492623853451563911542344615477934306110971159941161200426011171360120872385262391920873955319595085052854558809852294618156259356996172572388764888947540235450194580751450992291303208502205589430035597897604458622807305163985947676191539343728157935422854441221871959224182224539813421031737777221565653705570248870008254609118647054165939854235389574849493204776862950569441570901508789158749779747737885650498084804606392239692845154130964394470345459903984357518593745255934751577810805338601678956940965851035999873328461817972254419140154431845606816546169389289591953679235987286447472572735992343196182657368106960776632560692470637834242134762682064111968652528067907803481792125237504687608116237955922797807550315619943387991627568956750443647399677239546188200329865899443844184941900846675456244633941379829567491521975652838280862757998967210010079161326206075626737084145936184822514520752188353878207237683652119309658780403318137387480618982787405470572048979096759434506759568923538003449835494449879456769655910378936080259224129303127097698632736430972021157313092789493188583727526733221310987549490434634809763870019344501611418574545708786827640562793950107901018460024325742194187075432884075043784390664195184953954390844170679643623692891618641925703355229968732970637879395812833081879388097920057914492606423055697476291892194262770644149645159611178146505213763195381414852999003730514844590714963301259404178995344702631522894584387972057429575035687971122888296924850742977534913091735035903930078769467527696657373027120965522226275192801298304345043649025271923341333887180835688254562722532749393531927533243806490568827890931067419167649783396610273420851590007931955359488267481572089727746506573058157444382069276240954236184118648495387943494712928285380969845714206414573567696387534229112022892566102025331941077412472038324854549530239170316480367329217611318457818629875827437148428361275669889256369367539158327409134655194527506191523671871739617540095989752384355928360884139232497854705689489732635442158787677550860008290779753908768752645737985439434404219446146409284633327037210279984594583701874001497480620755187361031444761907137176153401683757082412917700301016773133824947447777595189945967123028432608239167814568914823587703537025883270238644631452905632070563721682058775925317953476653054822126913002702828870723996299467139806733038262632503772072627835978377479394115597517458538442376656066499530154461788117686866729648440040518474675719895028578622441507666568761301614881595152914342114925837597467615667516490459690023606669764209854439457441896775831803942712004806561959179107041809047462574928949517572553970548886496740542399811684310823494073290270933290232214722552027617730686414245173077820961661532054702426219795449180208292827713247390969112568273954192485587256064603988787887870004688457723911351050002845875879928095002955623945278854687544462996424713398366468804250511185996156482929908860390953140968054875794170072453031063823314928256261710504492265292498088932741772690463707397981805106773108737879883647413595391425418424648653173853510384420085475008293909390850982509859990412557639380272020750201245617720217609937439037669295574561988149696383124781016392333791633947577839872179773130712342306457271537892260566217490312463742611276818268903444300042988278976235559767369837981120585889343561672178706200858521533919859342977102184318009624059963990429417724832949864591255065015202974967635124876197060994691870306561693703216550931934995784565469963171090842004924443087636742855302150054100412870634613823350604816413695641093130440395133341673673893913401613370468521396530805948623014762438054330059974060819764395799324058546999391933079892250778117511173383888528973202893906926893664407741770399112066381841517136361047779372514063188745848139971871923148915163086678994734126412322729919759175909815536725384734546921389472113727966491395238465540717500896233136717768642032774790273463700897992546838154452365692195923329789428763869202320679925840223511729713168883510556703191673439087766806180159520260025716741586240888735919810527798377447430013702178750714491025422360662916913613192647457955033428746171012970646688373831960922782094529058450524498104614577975496393507920322327942714137556912646150365260209283286265022922386247116902794509437046505937311430135453292254279420236290195596585894916274243372605234727738026096451502519007232193863685585193045048688781721357747383763881260968759517112410733305535966210312487919590478525790326812437962129561064115454555420852245505668670978853562164889626588045806370384485247447866050935664227276718621478520607095439859711298975907439349354675930937044674830866396011209414639768261668977142093386752958861957597893111929760656493973552593964779552555609886034085607762432402607575610222319892191126331565799721849006585145048338748900839889905939650009506880166336106131504428111484651463404240558528327297868450106323321826911235694067830260476542449303419110578402192639749174518687763007247715822820243241222732156135319530688162726636063085702310818631375063039598473240181171629149483172576073304711682674146230406891413784777930511560335898912267039729850640870521625898187994077204643987770384899266641183119422411414184539803404635781335277825213639351598566413392500590429437435407729786057825766111205135639743829364986386318274401851686159565248202617251521893528108695822145434083338860665936837579674709741661609727995819262480504165722429144482566039318489449016422309851126894992887895770634210117061033081450782779120345342174866689692020068232321190857257141068251244596772945236595412174917917129398483443477732744782886626290562815394225256234614265660880134944910770858283954971632234008167801908073488712958964254388106710976705144736120036561686055094596666350491398722467597897850941314132593847668005247296545640258281583730644457797311379210505432017735215175268257073453974900810024130570518180143832307403613460704656236485047441213141982464885866336820975524574948392841962829058336500364103278648557470772063857624426852119693942554949049190552655697532050143623327020965929507138738168500090006309277834645204971331604251136252156289697632413918408312571147498803961142903472871284967476345896396268713745351431412194013804692084870865690982245223804941516304585598190171850937185839373324301426179585088083620754569110067272191401288864326141687367075477275695907945336936705044476841711880369808969211581320145583080975176736417076667553218797705932788371836928429977009296216610149171019975443942407418157055980763102205829087650033084021967628338859631557428039527834468389124335026656496614836617819433421624362509266533052743489410907011206131604263094469602987158309827177649930197068836728245954771863451006254976129492502226750606884934850908533378283776311463490697907846207256850066748395993884130534773959910500466912231082172528493219923416675142833866161334899846851421466803604527481054678235026664491586608622147314604781006300008112378443223975224101106781714747737919991094343881202073512414080885118923185797330185864805799880474484745876515160998656855600936545428162099195835853234912844101553503764785712896902193422179061648448732220518076006149245863970414172600255848004665069899135725922755453904817267784858699694734575824617340876707530071331250583378435937852154325544480959666033310653628021486180500100283253551727788269690953025897268485506271722862054551670721903667752224279362997614112404588705769839761732192502837018550989169323243574798244071271432290529365481369618558786545026038215030579399341948110941682947936373236683518174451385731838846989286766525210106290617892921479783869534676554420228498349314810535514672326953074248830063451158984125868646997868769821659460842400883319618774511715919479891628638912004321894928823389570540109450613938354164631107898233022161869737321978542751040386402515176843556196350228366193925138357387044701056893420151086617623861796504317096102116368171648007648814937561701567823522513413605460610544955434714745110759960808933956254316183238017717433592104172771172733743530700624317273172437575143093995846696246266394305315465885348751212369909996701426303918871387680626680285088354841165458172835523846324678234746951657494884536329468069947197447264974818495953098971809481982151471624817695538338979451408341126286467227912104076254344245114522114888995251710023934715853481897477361800507557178348713376203568288068861457858790270549691809564486846325877529826604396267871458856828336236724664264174275788313794694866478613267366501791646342996706912259983279182013093127131656369747434321214721817680693963337352688791103380814839768901533912791845486643385342322957702025337254090729353491198917620960497734330431925784321155923044814539041919183647510559332526204609043352066595503031192629921117588986602207707874125641995950122540847020022974915439931429151415046079396276280660068619543736580040046388695847628743933796682171269607245399981582737521630912148932068558866647037841168225474891394390377211528067251386771975053739582231053140748412815341487138242994752937690884838689270444075860910989954389859314213065429618158155583082005497437566317857985750636687254603610818444289268473859821286004822516348975714744924560443822972231138416731233470424038395399795671001801943621240406013436374392518011792574357859965565373212291997872698045747204384462349379810939042414272666417800733701117316445652600060834940549936108216911645366268701811306424540498241079199166508580719195026104903553858031584548331866023623797859218701583710477451765813836395039316714130606733282078937568401157969618065422616672825644161264551440001969873400699465667855362343366148948820626508764263987942453609503425046835215974246515572745995084551767328284534905508090389965141252379417198884590343792276393046986359448412722554961100477950972224563456440354628325508875419095882190040728033010222599124494577872640249114659527024837019030024675929668496084138522203320039416088909635955590198359193580020358146570920889466238714058204082024692709418455945346730865647698498051546211532223013700442163975606047099506008849945912259210367169116982420657885345925930961075016345487309665175818916719165500133768473271844313292925222100629008502640171985323053341808430371968813017364067991846732029629922104170553818989519554460936981037221207035435802593948175054442291136609999910648603658869953123459767626114926403601958177743361402881956284437979465009959300641172480304621028869410398568862018269965263291943047322276260853353235564222336344561200783757822089585378162682762229458276680070348158685687760336860660752591542698965266263919716911649929863283211435588935386178307207929442652881821115868127351669666651887898765573130512887272274985160072192235342957283007601017574382531828860167872948680066465311728625039875035296507393598452283059546981213439586203235713962351697802730223162315413939237501947876386911419374987972280791095319937768910155484803687329777921858156126647005232862909971396077877473814660170630727160403931464037557949047478637946702778769195739617099336711007949208046993702524884322098388376347079360104002424428646439395502136853320166634310907236349782632939458692696938663148170332192456376125188166426287328457226754273120717366977088186576588366510135768883418834009636662559207319357269443003320559680755695413838360701091363775353666483296501104230423421050706851326973261154029975439326477507497121216926313118912177407677606303464689675417085392963454898725058390569244325969286303492791716553729946133720672663800620147648926735676822859111998722932350471850055411272748761450609290534956215235016194272782225282208623114538765816914278486009370241329684692765801529136940920764008892087439930726785593968186666648651110347460690919947922500290089550410455194049026070498063723226544828457142719844448557469387589749036846975426694894201052650475059225411817038042835272791951123364350421073788623863473401303430210451766007572760645468412023487545081499392872374306366884368730778596566100246924024464622701586982865631323029257351102052385599041639575341135953199826875434720271823427944619806430175997151325039959739102081454043515945226937557064094453976481781772523299408891408431097605918398234120988255570505347618053108096852533418544522162995287873128345652700693987551742583486358157733391582373503471957230732304468596311959351984078160998320276684739256829397948013257727861443253554394614773215534059511888180026088364033886214961672903760548220286272982512594304250393940565052588983693011273930520109087236759037810880330429978168853712265546123388965782767996223204246109217467606446895449262066226657047967526496090526172145534129700697473423703484386225542336474569518544320154185894019772540343478166695835079370798350958252614445856050320778190918439779584297637170858905950236913176220680203682097531968879982175302137098256627986997773837310522306173298541188203981589948719028139774417871596035044298336489673348382125108744464475266806261557363019421359731964468914365393972278806494613703234968852427325862523409142461615583398340369588254976108800874639708528958932496730392929177187273558044441026338212652197210618076707829659404540314125100812253891595107739620305747447387273730661419759143125278446625285940289512304777755193064316903670972981721514148025240039966938766360418562352091396824259309573306093156440292470044952282619462217612302493438332245783789351529457160747414136727201189344957409473993197265797904498593416209188200134806286733960329656299029110982892224114079491720723734454513486623031950825076317596268334307968431233275781325846847259033843772559404998956507110582273232091343085263413678414612587396003996900263286155418757946625205771369128370956194217460458141601676179070400321064278632350824826285218940262960702383328137358148956711849620491289666137852615241385131745200090168058852053193626291637832346705029835328572673017596548420358373276477260201948700721068348302927045726391785102335664154732923872868377834807366416688439729641385109328924526125287150796900328346836448345630534246080997015439205884578969862233661030561149546100975071802748320205991324199534169261508958268242865351323745544624725596884245644602922783567758944141914953133208444318297472686616632605074754258586917847423392934031607855765348989308345612964874839123225083290940182657805749191003428748832455572832473281389704128365765363741323852826559640544496424934234377058651110901160112238380921011254022578514268659229105378647853335100290084809129637320234607505564538377234896691343345908235350459950509886269237482245644765262379887928410356723563949962271782339230792181998296887127820521527608934735256145140112673042814384527928901127091791694930692413386466578403787118521436809522616870037042866234348859003645485971170399975020883301055056916795612244920137360427353191011384547452927179383366044409729168496153306172091799635496337324224260618443208071575141490022629941762442972154607122965916907846695095760711303495862811984976921296746780068436040171688756151797685353379697457276547488562516579490161165610935585825509492982864762667665913707556606830534000321191634134958609945699088212030218815613845892354396214284440203832726766599303327747708289855860617390570354523724761281261794365949283807955898553830703054808720265940276644018047906623565663095518807658166594129456354818472238652108701786581258609750367672808104233332022773502995778713333730676706932799880159223796138661387001896154883698138529352097295455584685332547555780307323631873809886790225544400967191323503211290262206451333694585160103845137965359527838284199213524145439222652693196534835170234729945232291510666503076791600143326137579086651484022693649643484224788053732994615955691768925520443977628564145251243124589184135213956065345239190153763701688994652167035019211098094159782743830357680939437416162054131506594466639439760629181865995103485602893989133954767446831693811063882295563877845258057489789554484909453378471692712803431385248422993606582119349607926342051524888322260778317305297790385014323270197239294448710286273829291234798702666064839288950160715386333911283872100836486440679688942836218715158602884196226889328797654557657724352430090535924313896414836137897018611910668383964606380217269824569863132240949781202490482906290384259469868157161022846310336173108483335469122477307394295326509256654867982240483965473699149865438862889890499111126050820320616701896331112248576683389084268111792767964831744463189982813288288907961133657470647137076961934221461376346871577645075240265048362070463775097289865714088219255942981155585524193554719664848805446266323593065168154804134963654983257588209354771596395083740498646321648570823822230746398259224034128676401663256629793458800494051763932826955872112861236052917205906252006099982695727098373693517109897622749749059999572145928533652123751857957872336080674868925802502455483173624941521426486336943623693003322071675730783859419487895480120394083183826009482734676292302719452263038453165275221232702322573000673711305783873450069370727454887230285113737756569760586914537700821154738003601828742457371600336883995884064428864421003294737973637606946631857779660982853168911241296302236314248985771931179484916051263063897311830004339758962638559197388764679323117109631784356868689431207361374607304532542641953174208414342656840104235072762472725305853393871033096850603933913756329810929674330212114194010791100052133820294504545707083984977341741556683578189629923714034717830160444906474754132734658115094019344472777828748020178049940078883027210794551306643399955220815009270810113062885094399526790373548118837306131673953408210168794414173167500411650846282161560897657734946576525396384766862438455303461637544816790443670692784963154023160838501099495336528586510167042745345624908429720688323354603852150931658849886787062837520758018261122473797439617960012836767304115443651582140616864671133456884844869964681073580113116839188625731435281303306169068067223920613231059133249139087511480378301983803681158463824831929783369339298122521419824817901926777281229199527961119616955151695988774926208762702153822164068462460266633747657723071353665862692986908358232449738791561577771170556996479999098172936661006771202167706716604463153836842021247177357910087610813235716472474432464546527090996344286588868805655936881612495181610469934186884320113346661285451222133250921991479487776965075010034819308253535752886493044419686834045098203342531564720365808202655292762116670506841992796299046302080402622022284427876513198661569119041884303202697793081215549028449924329900866706611854627522886613788394926723713910696171892973508002928088165672601548382327647898679915106846896604302513337814059753668003666158516601501975393013835458472440343022919144853913847911772717723543797950720176124906101985571690784265813991534413110332194223165196144710432219333602954911031322561092017192031841218156157371240059301916904775155256218560688859980017559733083006845780993551985635778125713473738439656519497910555190223340335970377387149225718746259001933874853663465363364586342655488748851280004203712591013628659887867230009953199317584201468749454262472547844979502056169640191795861665047759133064450355257529437816976630442419082599676470188960048119627344977381508062099271703639151592008530562795382177211933311228669688414205697812082191218453010531636177161086008179209958467857451012311622987963642019001920505649599456103380683597102917459451655942827207628564538573935087445512137470345189455005227796057144029755358070404018361795805264443267474470412578751325695900802837080463589820289453417685931999633129192489126851177940886607090849641243142330143691954582060548418182155143147803657512448114907966672932928400936052940186922765477229207999242045884236321137715867384042281677850712670028628149619007498798287448995291730001471626415376309873634506832021376274249994766036126112877923340552100485145673562394904501344762067729922770541779515320887590207832726262338597660169372000426415488707766002230761712633204329969212863154060728318212886716898709840336112150428979564239766991373469246477225816446926653024174283743852675496984724132387472380148138663716186828438055266164406791025044077304000304700737722116369541132098086483449107794782525812118369950896828840566113583915971090572686469337304669443768010938766177800908073803835027577759488601098464969502645187634484015447777032815975226889121424846078671765644591119260213779520574827857586429461650874670128654160411676064741933640002927566825959965331550522328455544675960037519220759080022719205776528608879237166732507690785700944627432499059923969209260876574730613488861751695805486097912647328777372739437078053079651185172708954349552047462042706482399297557257576731569235437828845098819126995428596787741320709174261360956504509375295799648532246959091139013789388265163785954493444220891218697304141534868963940362947651054418330014721685021624649672332951785512650405942011723208987634199292341546487889089523133036466920354563149455488151782413134666199907595629446567654571747145642507326626486337733451005682102762298991943558288105856017073871931680993432142827247145863948985734947074197054659139968344775840201982953659955182260504146330719067343749506849439472805482389241074056125055342109331172461662917376672484009454636733215001273358087671934320480963255161793298257361804374646295173937508998786865046091052376843228010048286657338026897880625870232665251730472602121312828779678363645957574829484631754637288421791041048088427287287143435625815902106141374851103345431875912541410526592651699979562345089875812284651797105199798352747663127086833824105469118526391025054916973923051864849259118782315787015086361270254420037454045584518343747842489358353965799910108941601348115028758296435797320105672248691161213939675597180971569872198885243061759997883903949511996784657106782798040627188517055728336324690452715469109315420148119221736702703218889390028434382917485098070172472094047253983656220396801100554868904487607307411073541636585230177060483340121227752952240331483473854283391842442112545208632981091364902952398199664808918953707098187267371946785679875663735917977895908937534197924093894042933892816963943293057534861041483646625124457013330951653997061458399623409626098265155444868983791211857811385959954928466347794534373386612230021248529693416942631875404210149429730434313386611776327821436514403777252787729547549058191985755572672596804093534209955229739806289268654145407652472109476912128325659074265571975572287708414852274108838456471557268986152539409823924016521431560206722289051099077496590533980528578395790073295236056841079459579919350537410565778245896774208521206470412605936434300905372947076187819630264300822288093933454761795247092375096420919770266687469453315052129824975812045860527914180563576113805179149141702015867791410664265848122910965719385863544993035155533682805784220797605207838645930811523487263813387928250040172224342094624278554693531886108515689279926904152832014859198647642847863302378598241920493936637992475463890652356140279627091083626392094807634954523739665580091276151706921031429703770543771175848783382392659275778533839378187102504677970684853413678173509994193540373082289747230684348865110020866116550036261913907640992126765668955068600865079229127613930363500669022820027812421514159869784035488435294383515131473089743693084728322721782351062393112645365439607136951191569629193633676382492893943554936499694725683485586922232725186785248268911277273612263599509272267732569770720973747366309310831699526358978218383628563230585497073412972101136518169594763523925253741992423692185237751381413619652151169728207963404441182860898179444282003098211068474658965451583586978296264598338536417298619782782857033714327011014030376720923472235637978300065517011781199268039687965167004413814626037348606838004227401059878614270046812715387308454584349854717328312400474541494800180026116461037672326451383896173827824996899138304380456229226311297254463158134516171551063657671881217708857341374892307160194001501476740394174567649259906894163660548426825435342368599174205964041401819518120659465122448021243976004884639450414884997635116787278774496542783426216783546881035395309743376053815667007946891249066011228915363527226218792766976442508421620567229853175403513526023192168153735710406555273746945610115917135010334581405214611970727847557150409313242715232977165308441372402923930728809414159560387649469610557718422150145479450825909424384391826848179860949216371141022405055324239745839756569746422712125787890011422101724847088620360178060703274559032272950106891632350650410261765887548359381601465580269007948640291519853512894393421711027159694456271600455326676268929686914678920325010561078855922713682194635217014547721477288915449445738189152048067017749843540731188102037841514358551835155630877222852262054247794424235895977118065738567286476131656103865427090285382483238386355083426470451367940534870067390547084899305886462421241615535496392577103619619247530786526992515325038122299985673403097809370353293771529366465967452052920384688711389325646483968061219844309315259370028175196351065898478187776307010536300621811287831448777130668919701962636637716299372037487761324909347064134441444357156730574801106312722546841082459195091412122688543984497865069129270380872136547219252694934236682343685739246064263346840971083995247830010263619205169449007415582249051474029184980931338232749847209687297217702426478486961068893994306974902480835169210670222224561308276383496506466022650866237039519038016162641419529111992596426229881202640734706198341038348841606581629487553362152853121358350414852982326935856781845092460892850269354710448948084998891677359372174481514599351303391128082410961494962444322956503445704868680816041937749806010131535448032909771696881052118386885378414781182927196345764545430958606031514936032675433666286658596059468148276258773600340813056191480142834927497587968276187101284451059951670169052117333905918612209391734727886810724219646029578885232837410200065037965820208638015338792475273861183734613118341604309488461799097448366479542612921474736423367015201873656272329722341356195899770947409585446411085288233830814908958795285157065149665896983995782101810608571331215062625722365049268177392166278483954654068992783670840962595530359827706229081676729492110505496521982497319794808764828216615881356927922393509387760522599266226339941277874492760646063311350257580028015086791302323362531082503139612385813893838387454067268520502306234990416742125287575956690245540330957007651728822276672586572151700744464012189947494765844369953038458298319668916097712732774678228826861524762652477305513325989708458787597979018805180760195596798324300020843725228410010456009245662548147511440206358715577151684739233416948455572076479228067606772737781973408580823261436195906030126251794340474545376063457050357838280115534809823598493353682025260447165943721889834324672692136419796647141373360356953841552160014506397179658909140086010412859460534652284574199836118515835208594134226798606496246349860378423212555885815173538096039789575454509502933178908476480164461432041495197064392248706671379472339402504609987208257807865923551538741487817295633330302799924566115482896666852538391431437219771778450841808848916945860248067965087567384467474509159382419945698464066684020234081246774569015504611806653680615207845429125808685204347013526142941636914056432075256309926419703971051210586116112182445149920338915771973594448553382980634910730155335563442436638728281454226409101111713103394166497030004853011682801641015697662508687562104319041382540315156191716476688912948664756249735273561166620795070483653765383973711684707853352976890469889704617008152614022233544295841632534133958680058691677654895073678278101587179511412112127143239694930857225254819866694913318244085522518264746425197427378237322921764718649440048451932545983870497573047702736657598746785655249799374473060520509055144868112028452883395530947723659749410268122163065886649951203289890672625831233557293019676111222197840422018408164904044482187847829704389744320706455089068465612850413437531547033702008490639741743302799648000287174206239329932271952635639755120221462699716723757902765178339242234205819575861176188820374891363254457883033649383677494470730911670492466718056496142824061967625923699798498880023938848867708434790276482853703331156905486695707093931514109719014890781813613500883145992909144369558095232782414182121709261901771853274083132209553208121097523461228119196902347863539633282940523739545648127291902250349147693756058064608155175643736413880834548254263560721778255419402810413753995629503863139498756470805598697481342149946061559561185713388519588506962519514794268473118406702263103567448983738473582710387841717258553657026997686863810485834683129421457632018713473790514579369775916270730048343157115679253644389900836393297330408180759539157311972323036892082023243540802028063150088186219225957089426220283446135505795253111014528453392409634959969998808564049423813870054040562579464019078312299308962633175381045760944826607016471776088696841536261671650762304593426854452294356985294976296011579364107321636706286414156719665299961635508217651866639856398553716596369329714371281333300631269711387066622296645782718749584214130006076748450676549568921132030517126445676357232312355903659501295858497022993234711089288312844178772959999851819294155056209508424875787845037425290427461514612621538670160129634132677053705788127808300594809607810723629676530435292462714851441808644346205346157563438261916003009945018053220998327081150334012078600964882774331351468926633357145318352903826631418694598673327588947363272449541829664916504075652932474671889294147973479703807760418399378909303472336841190162627593621515269161642045900029999131492408679205709417384128802695626897535772727931378279481253199184826970236264476156739059554856351634104186131832250104042623652608122098845142498968551000563898739432828300811000605320469663996061271757475619177246615713621972395006638290283067195327422811942083651926184149949716149148333029836948826366090879312009907147665467342422177421563285596331931228592938920021903485253437379323496906573587646932288782799071038176271005583075640825773210657437070644848775231486926605763972548019477721194742190727168708735372506261114451800615137914654920207347797361891969231960406006917938797617400942026790923948513839811493340679390238870098934327058657045854890529612302480070946614777219308741944830750576929623712443696619667751683292906723874584051987504274722664657671018786008696053207778193021608998814279146892262861571587394134246591779117406537474489284414038930725919993683518485679524618409840143831410988266471616807921208868889445249877736631684058696015478384480069502062237414394743119225938425262239457923593971820410574640632318027087573225782255664956591381065228852356177537680825183524282592590147679056869834028374937536125487538834622188275387737807894292457388212008437391132020010284404520842445322660409275409679576603131610059797563387987782966834091612092884527028276173343351714575598930652600821729992264313714864435613215587908222032783641762594515964802239059234748382729011314840323191702364802545098261536226674987422404630999061751437518870942390452034019467153407160273416540477054590938367158984852860061152948827962172635882930645835165583680389743459726126226251695263963658039208161697377275766058026380095304845444355604294204579370748313104052437811265416075608813907673877539455230258087728525010594135733132956535456542929753118883897873802425745683590976381422896034213272673271776442329424375841813583190418714300162350502854509730521392390720059336001811956600109056707423498733802741129064512143319527990943866055520248293330189202736931271308521456272795132030210692008168750778857071194796411679738197854388930173902067890659308027759904832093801634629120526830130999298917122042510284452665552215393864919738623051524744498008975159454677168226806876748048128563028209933454610710796457109707409544952027250396697495523111928718440543224921249783912438834568227546871323475987657597174600482130267377976202752611846724415904972150739891499714455155964935399636479251263773916024210932831135489136902880369944353646975188928019682653592095322309438130815710968366128311803401967817307003866651210679424200979963873299419672678225322088497054995501836314181378867889445890051280428175572135232345276010371644455610017399618857474532628239363316720551923308638049005250127835295787741178166672027357147156150533201904328923995849053752639890007939925210364642108521172682664653576462255716400638717994591570429263867114229273147840711038660710770198315497973377362923802805109114465516424020161924359941989641634122942183829348111175733076933959795247070218502744453080235671773523081003035095915056671366708414255650699359646826527612516654461736550106833326256350014744205263229724931603642850213100910668345444367149210828985920778605177020067510432539776361877465611796090536167069582799266428251808679133046837029368639284984071331582494890030844238808315146554065836127676577631525439900185639791498370854053269947787890644676358042925415159507958489236500337019638666389306521440824433720462041404359289742779584378190920277427577101177029065741954254603922140579159462628589970935763059385579207231257471053048729049512535048480868647115199632222030701972295119202879465821365860152960876681828967748379216728328081289880378395135744918277323834840365175536635713403281740366303087748900386946855671162222986045902966987353311451440759267119378018492587921178824266368767111422806963266707035684778095268027749675143410582342382136862128458013222780841108028262048960701787791147013027275071056362629727176216664537954766643434179217356239240899689618030080983268857996100613667389797630109301287750079130161950022779577722134086995827214574294849072069111296138312774936817022901418521267760270508548386786017570798516716137712380391820290606893602194947437002849731464923534082287698551932452057646066721946261905735026082866414222201515704739868168601152281034494895672125377383334682010228754738563098531048936731131681293813124063274718824135779367324214713184474195193428254155953769046804578640633808988233370622257439614533432127257904632672146274923303283893174756100969502494523235413445620175874905124968995108011816383063313624476353274976127796807297809379395082348548652514477867783006608432963034564152635603297001690834739041812063172655025671330185155775397377674396656154510295162215493225963557425881623215779068984008661442689187290952251439074575409807658058509764161606628812117094650163282924491053735675303880841977303637346796095979572770298408710673914409984890605921070988096314924542266339396847092421131501232268278740180850750729262241641327493263264047603684806848641433246121725883115749050395806361283995558988114577099083207007680859166869414330791486088343614249966409093832678180053965535217628599184740693153218551227854604180368858161521854584342965833703083940193921831253972476478820307569602364897620656655115298320916111676049031928848386186286890002475068452016578428429160140270299630920360305563592492409478742395549103937346974662280640764714845645528566831391126339878362941082478362221637834500553310610013773782317773941922124207265420569457292580037881969283923012264338767228596544662757669498931446576797044284020764686202365056269325921069686261985877976798741076451266771041558582419720392248032455270478154479729389153954428153432467729854269584697199274195864915006014324417504105420327409854654809942686479553265354410510579771937515110306619419548453445294743802999883429885730620358584307986498304288313760230581718296272926019506428228671396052087393969484759744246996831021188274304838110526284206682287836906945972361658773271856850239351465746652328670973433633179415654991935359923038742561491485396649252510957329835955362251235190794759829724566400184792099258881745242469533640608143028014710174075359579781894316139505238945183484071950594722428468717915420393026969540173767524884458926930798776300161695272058035455474031331358758174437485931542443869653091055321336988597485475258245194400743853138194948409535976688347398104011873753740705544103319192119142474483762004801247080993274559427956459406441739977564518394386468206512415985609975911441695046800033284732872144801414589919523920001249689351015633310316979633737132109562290606983270163557638998747085162709622583136644674360973199981495261309960803910354954881104149477982609530624178340287516097742366936823175890121811724783594841761966349050399336067999110432258070316883821228411612076229655638437321149769234562221021428435065263565554312766432192679531343129368866656396918699339087294449652330534969666903781784844828246526490727810665774389416959340379775624550926410399211546618411990348774365828251114837009457964500956450863395081386804005160828800991105941269707480715348179430721583840100622665435823482993848273278171401086585003609914770719418018742829091810464239179161996756526079441901352095808498412812135776570214049793230456724554642485546025355939339390406683673075842528015393510126524323777129199045840715468903318501685147605197398409673690575153848637053041731980740555896623372164363233056526965031067955989287628568677999600816197496073946711973228992473444985162939061551904342959224998259071055217182518172850346208988504702119678084667358452481931101593941390779842215192631032522770266955302190374889745151921944066397144339068864121226229601374256366996136049941781116635282329537177167949469065462878376950065769213105017524951871487291276037723750681505428699702277440037626856221353146390838572469049017372486539824033538142693663505051714398015553025799337560243312025776005346083811987650564019879297923809385222810492963073565562745349485435633496870501389650717059305786243117550214318572881440738016834761573888248868112031467405455653130356582545276607598204239735368974782514749712637960575126839005446320238615079319496067666015754938099808054376088035948744056638984545330459799715161907811651283987345307116229690376039736552822398818702287415708822442761139194774838267587302004610872346755578996705184398170244253386271416986315348855724560772476542238511204077183555198724690062477176417894653321286779905802572355570375882462560089615963988806094763836614816839005356992115875035455111161081161563561728635918799263464665727054020977982667318968257993642028849046279211066070218975496591990634765242472754380247909511965779612437927587217624453236521483022052839904735273816812082379801199149517829513182544854647568080308221528454349197332736929828885683431838257287049706288823456585850172550594592115603364685847581712082038779533970303902252539570441599380385931288934182017886609267914992147333250053216106410927925162750491833265689572611391956318905842735434229221677900353505219546774695930626972473285281823041633062405785787052952944876564853796235561241280318773633433320627544824100769620179755145134392758632428903479314816494842895437225031213010340859229056349582750316846608442692471030794867042242167416924628609824787789809041613025381276995494727250455703992207564674809557110063047876845162221469048112113260401943322915012988220657737653252409882559736226520203181026865889347923738659424716865270463360228881890745024314246145622673886480769667255181167090300232637277737615893395916391864500237170750628471480106451014732463118864886621366624282323668333515584278118133700476883956169388386287661629756766992139557875377132824877813682375848256582067595298208514655709570381355593014770264584649399619711074042527496007898043914609953816284919395362840440421824488987324708092069411065832033907225245623358763962003928487631341607943256898588547972194731115494021971265507405544318504070341376897011460701028062970474705749519152033772607066975121436626511714025228394513067484769855045581240044896743185113381664961869671816325942038459690951209638084443359045048929425756770030164111081453663871799077480546606645930242772451735407069897487268269793899514507283813496010695099815424171487379173083712917569272244598745630235207469329001029249257992918514599184747300434685102373929919335802133772233378191219722767551966765257627581750049159132031420970476185260326291306182216824373237862501753037403227110657393890694154023029857488101920008604780249050290701491177908167081499919519750385469570885288489774368946390003602392926496156917103422464281047964943003705684051639766154243012239242338521997477372147134133205574655410167443585547451031793372075431604301895812369616785105487989964542283866757519398398537452044276170079345346665469233254177584075916786635427480313787700141440339591557681673627081603937810335150616619007594451446513911733170195591155662300261033856491627683678922812628412111448200536286306864374498692467961764828168721780600930967285043139165664636781888928339708661759060744033948938496207801917476616911206055075092179535561842267339023739539460949216734788828534175343418991706015268090288240121396214280061141371090775142442158596610165100095648808003778763358115319985550905014461397157751309817706944758609159754602587050961030625640390110224356098655097234716955205723458224756176927757222659091088791170997621213592166701891832585535425057982545466984293566741376800838329216511885074970685939190999095326948459898032990431442864124225857597756777225768645356223235877787800889471854090880379928095089037932917653397707206168182660513570824214505297090732208842336041369875431532896103192233435333122211390362189824482230370800005211472883344145564366701094230320987068018145416882882286496587952301529102175861008366052720259707325918929846271186294869836226591198620295011245418827084481957464224546186639747028607042316567218175633228147246615591740922926566265045560280492394410136330655550643897804126003923160500876435923087348495725939586392328214558791158013047333102897265971785411403904720801856422706972879531985056624206005219418278105701152213368916805984440160867612668800867339125197462847952844555226423876572201402356019863596888831401666640311338095104759311305073690037193718520020379561875492062568280272228636051446401282338435171543957204275815437907696659469529996484358749525652444372502594322539519376652465464960549951929136690765799604903937986510423013384796930006721165032168751474021874899042043212437975883288745385716751170901536895603598835750054406614084597192259268691219502339685127328182632402308425341595613425260464902961569595240168494646809393804612035534754928868217108409435338929615800293080535759540497440295227932254071650866966357849673799321988943972941219340302285060609884778175907966794846657813524725304217417726367559973349203416422132760003515181051627552103524372831887219157392885793505995775689990603357638830251638981021261438369601041886982329775928070804740382546225554715768200154963499913820727386670606209549109715117934130334931040649306683632301224615233450800551265821872536022782350435453914206949464186575870191199909770694134730322729044158407383185773384911957139020610173953863470584413036620914509954399814257908185868323044483359027832859704002061046073155705259312948428884258547460383238502921956367275615312702522535926853167897510433480259586842384185484635588119805666087394830275595326703981103793289379971096121038885924154966032333501300971716855850873310962856548500788787150096391479822094247775170962668844926593406985698903872661941998223042776286817723788493233442337413535124125337616406468852733567654445698551769547303224657121268085474682751027266832081610361920279774201346227339194549045830748636636455528370140187907940254350368074179131763214834840585430495152359942797998025187022885722959824936382273815209001357900640582167994634803235116732671210435347637724698161578642177057963323349705406371470819324181410206583416540343431037505966556291400926357742581678445270423081583411630020453610557238290879316811297536815940650184515167899346907525175385861833297804971177143378583043097005165268661467874164617422108993356340762959820952438253671681388662360407053096300076949847640519793099279639945665177551545481619597662522524311487901873533453148291873966977230465754530965317618880763038179898287805239547054286376070595486022445363092545415758076992895345068770182113137940547066404346387883901752380910232252018348042918003705281281345258177247680157855405172439326047651341461234344386244827885101984016308407343006214365940879043773061610533871462597567650805437086759439652809007363320831398042020385519348969598294139924485354010621496866376479851815627905881306818425035170420713433352896560321508928152301269099843806401447435269674907322921931087261595798369508101027125815585174105625097281051076693940416444884918475689458910594173902862002416188763734926504651132184802931489801047993684362636274855361486877577953454250354250517106504858435761993311010372821139116889342095076648334955617444290870850104370721621145661409747512926509078630937167237051209926316174184208028077907338922348129696454425930141678822656080883376662658667618868509181954966272185596165527344194597456464922994837107553211574133273429021805204668736410034698651358306230768786547208075226719461595255417448319905548664846499370595398861660023721989729716952648894805187920150646975520415408244125015916620945447849376325722051248902033848400511034619577564470271336613923544608773183081438515553379752118266065584955213196898472862605827314511213483007013679548858228027002530108685188981887237108162658574736112960374296712874818686336775729292031671804169945698619620104866300590396289558800521664449525775159677436845113706320431369273025910871363543077539259871290503805750012176926159919063026101193771827791779533041048899724246560164517622334564996762495650401206807598270340522797943787541962394578160718505024876820649581420238051318661432539442051518181086717081705996370580257025278347843845776390824785102531413753685278162350949116682902787353341556086128324386244848612552536613361617691923842992347103273534980124582582169684521918882809520202618749290328910665169262315776534951980482456832666154161772737958705442321366550314168720480934220944896316249237433227695937868957416371575201331670335091920486156784711229601070568154269872047199830732427013586043316582218690020451742425197020455603147741942570922062180619035865892627227025820356863390513957642111454169542148605773453468640267555387296327541242058713040636278550747625517208965783053590177107859777504532367257272355495480136072338425083320348901275149653706609132549813403786599754338698042118032030963174735924636599032647291921896628530935272970529364543369841381167663945568199058874609982663605106869144069559074644936727970854906144994802560966632443444412668555012388564690564280118648819352361951697348806717321483602704980395855299873168165941788082314912710134668145820074959880269046133749462026512186449687874521332860615712994644996459234411085570517476101025560057204696155003787296966003752694612533765261671765108202234363665924910673130111025528514615307739539924419957674163807054023623378158551551992320712024241269529776667782864881156434585010458824119668387428351961199020681085465224237358873507793446918505350986773882275867306445475460786908875915806610472481563457496901044883626747327549869860596138210937131662219326552659551503834037340659509195814764875284133968952517072243007952532306809090518730522480226945433942722563424093064400602770070752173928544955672623527611819282388895162034520653737609726381703921169573908110296694224676256662291414031427307658489536560457222960590014006135429563429257774255249346174984476417714343247658988431000414686688584874452420843092788758298803425464481710817148235662821185620860450985868156949209676165000104708890473963223347181017859527340420571936199409275188697822985254350376617913233735044700233734205058138881012672503475317872821573830980258116412637187407469638191460256543294832871001370521923856572927221060599451277513497746974279870621901279289110874766103230759742745952135317110948952417679846375572656437472522218191660378557552466596839351657470504845397364901507888204090190248303976259686775446024581748671964064637161554947953492375509025331531661975463668208455541436899822300654966351556402051921397910837369614055199052497755870535814420029137795042158047983736078798143728432075294350865824376195951888998701263323956299421706392772133418363283817130469614263413420550537342297755353876591192312221658383552242072890134095306424393632207457480867459309487704340878708389509472276214813741984219976868927868694342174650102616133068073670175437457423292949095153725767739589524467514066586910748179410378283658115149663247752538388953643896830076782461322119106423795820244042531145282661914610913425578773330885339183091264770746954253257002535969367295487487476138330283622131091491576951943092378936540181077642698167071001981784509889765977347831893450488921146915526426601389258179708394711678504695329235253861016849632811189772856483003382753967825925929129305724792050595222546094019132458178186503814920948189461629172950274902105204840242327714067386919755963230128107121466500974196128284481757437141492052665743493319419259985779504932535635975874480184109521965862316097156177985352835051257030113875644520081410203322869905009212585954783539041973976388433070352561324979635439187898017064949781052211053969383085499395012252354734666969244694588226074616934034167819708229415860292315351103848018707830454048618845564191631598043739734072864224450841392629443841192162166943486151423047656457520704374012298266775660160329043662776354424152841609925592805280519619246062439718420163466142171215002273138986676022996860771694148692253499953625521965916596629430255749194878246640503656276957563823396194584116485747363021974598671019562448000517402733918231907413378794832134472324558343435813266010619661009256314029682020936040187089630107940245366472220434302223816119082013138099262992940706672263180221510493825679178240982191657043128871104393256442180822559596901189215502049519880997772432330054416458756984052314009251114364319524602226931133720418705953033901487701019436346267066817815479364400326962924358780000938365096844554284783846198896282975737349620605023763579175442994784177480458320998933700357791223291747302496179657781350228418714343498812960287178160089405947112997514941583981914246771837611516400789261599768811868288943947693059847126851334158281622953050426360213880775514450138080560488185311896518917247032764062625800843876147051313727195833139104309577006285637157066247869886624198709108656933040005929460606729808813701338091812461876344968571266653886153423500740367300097329104744542401211262035694399640126071905088621379872192902154477435455126109220389893469188011791008744990021153209626812550719078773336703530924466947695194417506288898787915922478879430943889351639236144258796543496724885738883257147565048938181493587891374647722345485698785787346215625407258335636297649463107769216002633485697614118873247905611208128467199843728631298479992581524441969039543295422075858217692099252693671097796750320658935602711204399969519719775174693766754031672512832901557085407502291326359781756794325310296638917739451638308331989565270751969520177388878818584506292391592669675861214306607835551901298246617977010834663963332740600462546157752651479192288645526822434718695377797748851031478225793183247846709472724682039678201378049133945719679069579520861524286422894795765994247281201469662074983171633885021688694570149477870120840103297658762417376222319596377059844234193646589985647498475549262309418884348637487271601703964464131656676615675480195697400692413484831327869827029497267192707153490731363158407542105384393286239011987850232847246721445134947837792206557765259236802319193722569458976913006512052580234189842659914764311108966600367686733950929916955027995593509238895568631970988368131360433608343675119135534619166886392883206303367666813013281039652558322055730938424138987401811402600049632130684389011015966557900811882968021446144035984468415976669060771445848096165389745862230707830250008095680551910002757518569860033032534819405829139833986669843632549033640593159950051882249775856612488344219249886434883573700673435025478279810568309141319645700618512011707441962004642418471215459916969292126525509513931587754811663458421352020550696176499581587759534178813124883309702620534630768104211846105303335068408993075227182363236545574557515644508298803569581695259094623850918038307363364159813377272838953077388984381324760333240639397026471630759981962744406467619915846438302617628570264367241777202478029292634177606525054880442811742667250076530692228273153966816913355312290014836491789519107952107612975282940543742170679311514269206580211624300032819303013783866264276515802194639140538061505341898677219375447004855460459367505002480942196121347904723632278653975434104301688434517651366326445663432089815157726806690336677926237375619112379950184563671757109571838172538772540486376036621598833037661041372036359335181906926672812411394971192458762474187462859155586882114081094886554721887724580649978044351470342797447424981494308745824681903956152186872627403421075774146749586392329945562787048620645942612006935912365210053411479498361019594017960913919238124661715406819834876673872739558839256780080925290872159818744501979520922780913335234598791450551988238454164192537820236656104918235113668708931630495618297346129979305591524873968029712663969858987345863443863857300666337114002058480744758918479106284690134686770709673023667807830434059048327969980819486880496710820066267514546243763744963521468419207543946694843208846741493118614476588407457147539703023534926253685474849636590720932134642168658964178255793265190191231323655457631743489345728893888597332609082159570726087914300639795372671203744893155785293710468945110547468790140045286338676016222879018294480203833800006748478355403584841364166076325268679606744312464813182436457322576233873363824110661753647238840194945818927601282727768111050498680647679085315662589048087837320603342290383930765822553316880811573044316839288800114566249917362014528225360320985354635483863102272900065586518811994305936685039758448823906629586459566741133896899945571591728625122870675855505079236596294049259244484112528173298184374391967831821059950308134264133139585803022556667495670075644339905478141804977350662033551158166559798858827926485378918757152798476097960118419768857036937218193001506572248444119718126170825312850958622074353123653662039368591332619206842276644947447690187148774362655349889878820399618346404245193010884880149412830221645667544436406293734342252448152977484156407289764628784806747677216300553650965577708945592047067468819140527425444428264665733127738519337570028050724225537240931738669562709882322226516315638593470507425418821810772129280131934663779650128539275985426458678234065795077749052794940511672662759506293254122602115285853254680241877733276860406553069761140779185208103535988046748640484446343273731273626822396782685851885528913714432570352114930871746073593828885151051741187473231789277236785048886649028970204429359078850939086763455119463124901416203301895451397523644192433717687759054973818848569694772340978052075542435264555978607638751065066397957560610378127638341939385353246105682079637198019799541941565963146668708179636064838346019758842054019588724068812696935731053020676668804821749769351478707962515403203805606168585997467363110142563216792676529675844226545823555236650440111167281561634492310752078949735051926595136891112654930199514255484936153649636916074187910423188800218951188047858446922058525912006053372566346558919778967587177370860354439513070504784800726508031358840701835853254547684587967264938347389215037071039245316531421393798984863611532718548693582832297254206217462862372424697950952849256371100674307771578654023280384336480596223940080351424000815198350976222329244943955647297451985337398404610433924510948092779373005255678680393636996942081892842526316874459054603948919781575651252988772950514703908612045218414343372093128769153576307188753764930539572378742377676212411545502661788616678398115426905098943051599099745624650727391293733856124343664341286016234309658595764025655415916521371912600293811746337089781849817819532589934052008360403859537743424296311385117786043640883638928158039893029747384407249799598055474569458999788148921117454540480211453208592457201805368636393980457450651804794112825820253036579853305600365326198415026292485993438887822435002575255599641237799765619334460043831983469155374311939393445269962911748083723603035728060232021660249356680488874784935425278103866313941362684187209364350662277422336342705068033972358462201756959219972804232614991447924594741356893100200187190443518432322215713630545870269730498484883596616853351559499826890802394183389404360910767046764989026085764272622500117596841099007807079815138948114234862911475002671113300393910700864886908842746908188840704686734169217277666809061126813708076615416777791791821567616057789432167878590021054025799642605647853919474005247824058084593293591219179417305383751733648729799685153816843960068914080863010808014280753212404138113329854925475220960614717201489375887922864967544969150280094199276890237893071203468002956352791753672686724831377388341735745899301453514570525282610220949301129267885625127345017275195368988319728909467199530919144766812992560390858664088411984871299987397766092677112517264466491092701237772201595233799596888129270034120163077486630416144267527833141146734201099816321124573621428765234167173124334738369756938917227353995382436162563877452528462330603347131026517349454234265062576655698598582575008070031675817800360727045374851198516403055824655171102719001065537827496174987513490576963889452788032607812827516745141244920190422657619696706839117449222897899775551440697237769859743595468377265585848107484567868288716553578165090648903049914235702898565506081774463544911364077097132904403227337459473861537769251769193543737271277286538948281377602829016216688189038897292478570724773901523835099170672349138287642064165776365903245011058214285753730696349502066826710784833098703815282078866419205726179937698528859168932034655103949145493561206880354451033291703836998186849397822355891221003656724946373034091147711900344794168678203009576893677433770649241931684929838938998920715003422239037358777902117081332174251764685203308862187665506145764854807665051655017976737962087609173716427024897535744151580233629055897949873937465023165075925136767357960541060621821677362995949230021798129921471998331928713206552377686515460638433802591378269700745090608670122597061669241379948597174839675388131048884064543581275917929773425347675989681125385149237853338113212605311073423929861900577440124348740834382383336285277382951448949642667138501169190311173421534519058062183027351017706733743038165762433695222953272846847046453259858072084831773536257775296039481439200240810313958703203033923145759570953434436953486729153094037053055130285610727154826837575068866241354416109173308184032418999039960994011952677055499763727168070458491701564133030938614992531952788621604829648362885737575333179224980675498860471856135559935391153732031203465573296501296418358786954124907409586839015126520971816351206445932724866570663709576067463134163018277919630338508914592905782710205345424023644793993416255451894563569644807488582242208326410720839174208752940837024936564485557784783101139221966768161281363492625867762604471349988023796708549290614209053479799977032515034774798154636102101114344991305682630542582575476160856514692024217373083307900165889280825457149980419212465390398021205899132259747637180331522037941539226495433974679923918875171158320189722034503281049246461286798877583948942459914003448824075114226972828950375916864593337334181919456264562876383133122988890979965899787245426239279150796368279326879239999122168990796982742323089075206320446877331099148694259781344672005786650254594216896582085986366084113869535278206189447624833079590602471546743973286441327478357068999761602230285039300479114729467213226359086825307286631935142425853576077170673857685924056128726717391433170192691267180903974280496778770502353218346945039320624329507239710526764532842443567117797446925430120765395987231318170988933419239409012179242299346259251821922762234646423312599281513174378591039044933777825750688820341882623831196260953505371522422733214347802289200216235036081234594433621608144777475338939504041822401465284024403055176752577452885410600073958765734111535967311538580427219966053069605389219892127029045424932111067112655304350274379233657028867033618118571582433029196114899764395347930212131926238801424050235748150410985052636664975526428137081076905829881800995976893168849014860321439725277061592246994468492008672116213878268614672938850980870607984001645073378693440048628891663080878174568080177334811254246264998384275883104162027871004937078367986270169661729175027479398451873972519605292415878456091373782662145400196145062868558196676349053010827311406932035265622684259459931679792477848985237688864805693159990689332641911702012986498448456175547234741338700422435255623343928390496535685992701961940428763199204386465016213874313187061409194482437316015674114967818127927364586941913750045536953466394755950670997058478868678591045658784026168744265056937425432355609660422929388656548523624061842689376338419817183234959303870653806404279545300969102163780178089801673488933865255496210652000842311855162826060834203273041190427449253639607502193771009223444643463073268040897702191456693055624419775097237136456316633657485822628490552011856756637173814499368700393980929683398340142111730730206664551993384003074434906022418213710659440332715609409501211795759755584677982141158544704991871446359073978717068393288091713688453519164219765219655896191390170852976206518838466558390507325458948109239266174814409984484723234658524335954656817528346407508192264485517671582628683766510495510121409451564511689324082218061759422285399320397479129632017913737031284646416863880362185951252699758966175694641838704781528772559477547929402778492744995173546141609154960150208169131997995312008750944508721139603853038339485753186909803835574633905115988344833451006261447998455311811959730473140426802656717001962790411316053761281345757560371723289421643677830181032825295983462270141098569248599865605588110961435986527123932959937906366939601144337730809132666600955544359730443389212894880844307669164732007336649569195133228317663129142292260902371545140272763854116406023154271744437663478708034218849428245256976880257061967839654562719020277585813237315100111313271546466330677442955610525504351546136792366414252607208225841732590629055907024723747703005031549121538314952999588865868723717365337488031785464668270880311284150745631472824610233406583131855134075699958142888658955208863209663657041675928725426240367789645881206988329650517272588292735882860232803536519571033525847944840128888088879005628333139854569057055389273595499127034580008311770250629860915296027017547404706193913909069690833743568726478029729602275187133726093719886491792233755730446140901005887049637926606401814629797461556426315150299350698043936829120046345732758834409933555480288119887646629430256196178850776778947692549387491968565374587956592868068528952864023106730209495311386072129044893535762558882009027979134972524414140725625632727666086441410695006667977909901951589614216893861917819400042184442382031883502393181115237734646479679958272305125475455078036191935324892423538788202927070644341083306491594255493662581057295129425310896385881757143553986561755570608458945558482212759071969003241852060224778342057458607892961236728014163971582960044142079384137018495463003574370478630009496662134489679931961512231458911803356002270481013436960020123062755777797037184866867134781756859797621531400242377079738016944377001733020003181783549409471936278038686694489620754187980725980300767526673400848385629484165020199718550254443782322851096185959313453503065537889950269374119236561189787704702863763349464083211462044144213234479688414918272709620749330445387527434084413312345650324979135487407119604873624070614885380495601165601661358234388004157106393225682136742747180094927843592238388715307971430658089002711748065645790586896142537068418488436779770948616523114052155110434184752788272622340248094953911272568136960748801327213610728407344492228585169095730457370501169353276763297016342122247409269020759093620394903565299296752671881996899429638904542538004559712462315969191085746819314450162828841521379460151928033374949585787848797256446261610825340109256614441515315858915811621893064576912746548479124294535847878613305496172398504675958690894830952908759049502997899004822547195913517044451607362717738697164119249127654103076374453608473391599596862600620193172455569322335787927719896333527696184685176904005461943874952573557924615662872695061546514405987926257151143656999615960384195868572645516889576642214671395686943614919072645340615684718182849293689654984889584637249969914832696036087974493825033810804802254928396810390301308380876511734561099917393636477731836374822718037851738136440763769419484329106794054353274391490869168538895876562116469740654715102944161450783374629492388754052622894302766789161093669233061801600751752235907517420265424687947828735800634963759225441766701907513469734896734903359073645168791788164428558042597545429788063887534656774583595290653911705584213027507659370845344555005420839365824424993292040845240298835166406450627222890989738639978689733130501388798737912881682834317171466471935496036323290001757397022172701604985666274668385423442577524126022564160259118130359765096807382321356705816509416149834806549802640436564075783240666318078977088739188799645319349542847759192448217612475886290273221244190287752149859495206854091806503656869219740689820325018321105471163661226982630185644805599396906407186747422256969091440004334162337588191686695876731113322271632290214105869327580939510991220921643258659489002934147172546853678164408280327352382299183512373081087371360349438873790394979085707190976478901731929810330608618474118825036523695747407252176303544390371003209245626828599094314167265409421467978753821027929782809901162712173824940824556997276335088279321454122125619500122245496802694003722007954206606814512565244728454201567096472526738533840045210968683879181226250335987926083922335013228608568091032556326259241798248418172312521200658299769952182303629946267344070596913605081306351014813726947589872483794090074591258477825897165482075477132510263795287027564504887699080444401153901867558150587841057324730306814828758447472407779745065233627753421001879012857360778853641517624387124587570754392413896135264160499905686475306445266609807539502253457004077407695639866903705006450079938599728402318139384817346238880162625662990167259080936190532488277454478424625948567917437838060494655537702780705594223019918261257605909727493586788521487525582454804060897876794166647965747802041587987635180701233389924569316499524292156434456177740238211157292639151718120848022180176248307244870916976811193646669008184407861154231834434462874636042774547562388562989439275223102092454976247544590274559326345323997057445430539237516926997023044136689267821816273651149725511842167534078894362874027532387773610807317755189891451412520993603003739072627233690304634054285369563898280594061440003987897792209351601824217055695351539099862915834275889819374762918211660185079015905674616259613390284387463237088047677972914388245347734925246474320961477180104022000640418016102232904598073589130082589502658691760881173636805169708637469110766460669131235927115913888056166678901343106908394507596517393642888142311463817431203769601843480674871117171246711723758532142633083178870436468119202546516134662513088623328529627144181276863472395712365396754925571752293448558399357634881932691067266253304379375734825199143276993214102458285400312602312449171986798416202177665060371663330914855651511500570245460968194381798046167028469898667930772545600787253240112621128252798364331512271780279096023808915520900547197294783509259707506330137120444297108085523382544743844961735943880648686616741408914024808899686544945823261257094651617749679085490077790349895729091586030589717209995838448561582415497231859285925546592690068539639282780752684371172981508116362308456441999428325732258752030358393037746033996665542964629116892601779358377882842704372094572500694915186008862564064991671655877965444785183906728222271621910270962260479223374613971902788265627119731380695406763852508373595553353803089254748052383429288763353671276902772659943580698688548294343797479193859392110657306054690021923926159154378919193203411178885836292253116288452424586586157567949090859859561942824671109392523859483354809927820571248743176931279999733214165319079508177329403811772539770977498240796801544672467043325785522517975048605140674036822931904588616867618214336544303684201239746747274213162914239928251649680925226191132492080155883868426274143572335237164035139048424637704109895970360978977054692525942474110796121302594508771008466667554894649374341317712714870287834635676755057705815768012934817592999452850327089880065238580035449215780623698845189763146926057601075046438955004207716976985714881204167505533739902627360404090536123649269560378845408200554759325623981978454932452000571654228476361267993330490404048105447854629322767988686139754597123164662890163115425000976256237849661796168337425831753279218943329437738477343452515964702138142724788638592290443810371924470768716207780706247172631618649887041838236874515308669863385863045552862116316417921451097077132658164108116939237172581395203487211327826224840212063875006873731443343529044129106690110383482551324362184842878711696170693819207990632820380938373016130106704515431012273881379041058596777137129937803066322253460770781795435658265939503159002368474767263703422453058414726317322828322506984421275851700041891133226509338399557288942198526808220571329472772262730025871521183819052564304569623611952736836347440836316726545564777951815664149647160963569976478692820444747073028709656639327352408639700851599256772455876481008408224906161242958967703663342054890912141698317948123453270605352743699895876817678518983089691905827701853576282770047308100319381542219806009844987559351049126885986562548986761003716848546090499752541808511635400209765454311439989897843370226195960615169885947475744839828705248275479195554930645907404903853139602885332082329576853721653644071306564700682843441781963543507306218497159555419378253653352307348739912274715272368526069474201058589699388217967699668124015837152689875567765536667730013342669264270452146117046648275721693675180645985381450364874828742406349109865751451141186161542344613702626902447646908715702720396600348848192995822733012209278628846045331678845532909548470420061509528333163657778383668623110332015605370926740084566321872095659807395151924391890565661383234138562642087279266604101693283562492221546834738676107742313679062918422871229209076163934375310639664005384449507036984945037298500594030668321985267830468471686921345702478364606880981799336782048897841251985693218313661875178045090950289920182839315437336273026004560803182200013168979441981872326194161655260868613132954285310114640471533463293556184292225955815155131018798587610450544056232975820200520130224575715070903084358411418448280471127460494424837553395567281055516209214913797462996560329166653175874392304533248496121404234768996741709598675940281930502040932770392463974280217873536610517334372836942246632430996555673356239445224909690132598945967885636717248365417761024562403390322181144496093892854136671768114879377886773430440512424108594377948740447158543103836004450742476375840582225628968426056917645962490521850141550544014072498103481354301287172314317442684086506494958693033391355002949349400204708137149770299773006700984908893434862648240490457554658442535752022487452338151972367661160696797224617286290009604746429119889140066198803413161315783839466975222692404099176640837932092453514274534561671686668511346065536327880608569749956360237805551180696340604899409370065728270659786207702395020505041722443032097272173166896714884065819622049678324719042888917569769838341856901472628183665060651834141258230921179714352839830625320578277308684608612625421238020606137445725474568343182743118083666457080008413766558738565155903168033963333777675984818917933083575827793574531490321249866506132049601638458761037172783646211084314265821693512513720000428460838174474398868040270077564080707977570596150485548668958785021774566292356992699694645695695682688070188975525255134805408115024397123225810024149828194743302176804737141166782633417529978141536447917155133496448900927098470441315085870967363693654333156822431133288150192993723265849522278414165882933240047893760247158148490074429167384433073529065143561763058179312540431744231110941519076727563621228029891028540138354744060630506372663761959630015289933282562809137499424216378438945966538773559503335738983662582513712643057993677485761240180853201288298263355466092952339472981590067873480821413725897926014798148361349225953608540061247424191237045207071035778790922722932090562228872849590532710159883654054377947768581646418885904106767106071202706849968368920244540718859374241124789174257528003416504349444303294897580147894332298215976418850373046793141506459483550617552567881566693495972710995262106282694918339384473963860849547613744105597383667579730884135387069538645169259439377243546935595113726016190318561815216674119584978792102448149068835783056346610216121012789195059005513831409401914901608905391016975592922798124493456071358283865018835787267950423542174473369532864658640865369003912021541130881087842747607134275597252177554648263904676440385225987877835096232138379644166744119923179555159459022928161606478583495288646712875442544280964832553167666839735134822895918443125247541267789350906958527809718907613653914240716555995329472849024068226774184189817073527567629450387726882018452408668039059602741080517377537374385553540693756206590104940438137857392969150414408722718513519581725991629890957294505935917569551374823100930159634393218079223131906004839750258893580696851018857732465160547371857446291827010465597281830046603721968611079934932329598343961480221760695983057487062820995460490810714521874129130618904355274161582081475126353879599734195869168683162983321816547411633651625941323298049481098333383132777866756447308280046922005327419130264145105465362379432430112064865735145513960376030603694312732894154598005630239681705721444854157767142279652098665742900675657249966379951517914487572504504487161229350984449349869612396651409789860535623476983429163490332969467451063114780084802782597728588001042765726528516327836026857307096968052924916596391699316236181260873751765850532440408746395581115871806833552340571658861781209230585720019274612931883249659802622684897496700395599959400379011242534657446650892135389653187611304081076230572784123738861895142150378920612855884419661640418281002484100092207246506197307911834445736053856867751509390714586848830377758272792165797923416244111123626227217467956310576493979235366206240220597034835350981220648608965070726360806165504706624793473813484933543453307340462822251228223072330483590737846769256398592525792102510338973752649173332261683263030644885162261475628638025701244073819623182363279255945649782762673600299282998790499962798101164576497875676011622597829321951222961583132271594840977511479318003833894125545638468307024914164423533663737167795214569076439317533936059394584585951345619807189600708053150216844132033800869234236636352766795244071690185809100481021626458801469686538203758903181179969232441199432361978777853234516694984043081917725424703832922910165988714744976369516356177739408791875170661369047775708838868786015268035170680877917575040025026837674888848360663191729889175632064400960692641876004393102081656986769610647674564381023853601367472954368027180836061059884085493755330051157729135119437050004240116348988194550444648619556483671947796395133329247119832088402087255409565615423943611547585792077487574336048198645432979764037241441908812465081919846157248764735760000598025996024444501136063015645811867257725136440903909579412037052776887896992125052807057419511195113777000030952196273656334743684020635708169011078753999284408708338264302138079170401292419558405297464426412306752254733445532928298307714294176880467376544654081389870009193948035706977524391594096766030192344880780643077537910346704662036700047343803582140179867091787328412922909417994093506032320346321889492099094064035436176345807445587024734531793269594476141791623426328397852277051332832090243633598441733618590811748889682096494366967869852810589989162575728456885393369081130370541664692444365860975337049510504952341828923461023636645961168296365948368929680518280916014906197983277478383915524678910993861823732721885127472653647939488395172996880597057126885161285815454792626148038380821407927626198442679257159222978644735965034718567517430229528206000730459272808352900421420893225740584910096809128520037570303576774264797914231570499389692610055645288097484363625645715202650841267878298704349961557305052503047738867928546146194912902036176409967734048827219504057729837401647299736065677578680462344350438431249874580521449150610589048205541551540045618626544111672160801721172850165514032846790670295904575297713449531993075278989132667061737816935992797869427056470905541649592402376833774472222696437244838406321202299346539314495380850711026923828155264568869805179713455075093993374021692118886661545181082678780822053184267706438280543796033616399043955401253838638611926057780362417627639963395192157155791067083496016123973449739266465668222520828770460927579101215332321598462842476117389727039442063312527634599590858245959563791593012981565171923444161707008807855339118254518000482510723584935685986002529586112973309915929230611637919621214345009268453648628317390283859182615081748942814116229508203336411399425404075273268876904610764851397563258042650215504849511331458360989548146554529645996975193505106168984643613413484977362503338102652386931345122771944120350374850833087005586410434017749857328252906133115075425376146613833183364427219768649382482280831913227523906962874917069722184787872721716503768319954918651778374672646669869778577235158409990973833180209090845441455922358737359324849528682532850101254234189144418960330173356303251454783511388902432599413966393338785294537014674505848331979525314641414846226933649375003938006188500614579859152670631651975658894374247462370334867767348451304252947448392400214428431374108643781652512060061557155743874442028088429381155948869931215618602319360075766165253641141054742021423475543390955951867917802788490980072101322449760907209531712528931404711822315210184243832703735577621429690771659510278995900466230332088261735912357703803025794990243582899911788206538067058292866807821147092543559514408171018786518013418240732418665341130844728506604955191832989729143086056894672186663603753063855816204570324529526708025272865621266191551784345513299715316478339191827746835711305154056310413835001064278916580846455355125548215048450926620785117751606516514878102410827702231386127987658291270405484749280636528910598510072322720567002510767335981953557031451650377007939150366574434694637102561773777120465307658714833444424025913831514130205258439655479186996623386958766237188340719130281212855154756882610200682732889730824273826205397999425879791700836970989233036537454247004776735684501624317903756871136691435867232709078776082833507046966041537411831840913130418009941792956762300841505437222440810815163051570037914679000089592430119722359959420495920165839783553555694572681023545070092993395439961900703181668415073598575665023685237321322036262822754417907671171508704721894167717056679025350779699390991295349624994153453135860857155408534612287350974862310485325594384035944039630604462486243703320032731474259563043169326621552978531391073051472947504523603073573591453493459276074185168178309063814623700315417001740126201453126832992755888026015415056300682526290431548459791332274700982562262433457187085619078781565428232988369589483835827562269564910334542942465935838586826076531465179414285894461332146122199167664023298912411053349270107717000300188287204311716776010325440776662449419488729479319302088172393781762855353790381538531206828527496967322759309007443252784195382000165424633872733724935150495876646533497906675987666272483961319012601808831144375894356690988481469850734624491076708935962939240931099909785461329872556569664817335716063074944317002259507727247046257577708853289155425429446523504851601828099491793932123912030795908886836908436994598057292463219945180896641460357655309795147419105583470938001394174743185800140436245205562395847071122654249091189092399931282658838182688301147818090947184133459241264006927889436064287488295388320524644840885441844281809853627435913052393254822561324237797709477822222122466416977826319397451172721078288877366783830485678895930111980232726896805151420035444810118984293384328334648294150018424480111493384591205274337175828569935132986802649748985532736462158502263850942219929583086033537857011104627974546975490453135597620832786425986931318880282787622501574642709797722807619093153153226519898927800601860421125503083833770453831007488915622407285814798644205648966034606928842490068337854547017674978942522826093747056771810801553909497219833542348708053616881233393236440317647752688315033821480637937459545393726217031746141293899850121836810436802599960381441261268636462911774981921306730622537687173753028207055433453994151094258409327097127463317867871404117574322064729204330607989124328179734961734873011915552137667748531460291846750440006750621221057546807680799827487476264729059465968832736641634385885741147195847139669094979694507006013316199398621944330001591292257529227211722910961468675109501815325538741549238271950474044786605713231904384538437951118408399445924357235720283625286248933210345814526934796144229590388063342769999710618932765177059536035714930415867226047155211643645610907722282589999824431059405078274361393211465285035803715433717169960555454339151988938625616343679276690629817940853070841934076856509165115996663353309800721516182396909477294956903023257420243484232687408646932695888546143376287333375776403170619529304701150178922407021796976877181036395207252792120375801200509086403029394212944865197628290429635626569607683225112449914371871237789660828287071387459659202002403217424910164920208997039360105184407618798779414634714497273329281110328886140799360201605034906851831829477547516609912118562897854822359545812487186655306167969275663341077917747400999966875181024705574986120129755181030762900684186327425322628555201453700427813111572571191235693062664454943947992118656187535514170198700580796842828217675735102622689490366723095934686247507601870401835299908457586186502759895079960680403606929857406909013124477564624943381279293305124501406779604596168119867874070058913552745293192375695996240943420140898301649300324544387630679704191953476568362052146928348412261549344823076381351780247923645171731583356927406094612804333494231501736230810804672537837794247417855975393188565717567491612594696922015255914579896415517325875352006508451152077678527000375626197112399047568588945829435966820184616260590544443580554982582554925275870777749500954611929165489686513365990600486440836121251337100049078996026259585646439849683284618496033365522142025968639389844696986343110187394697674025128113130082206702251288626397891557595677173116632123064881754085106799254629108114575224414093709119644887843905371495668479495495694866095467582249747819528825515679214962917398556100255201639825864478758875007943554152172874172790614870004979493920666229106395963626905109317203936180899116297234690240083024044416423200809860156916577334334025738280450750908816451865119767756215718722209620093656064070006648902199018372605097490509356212357377646355947547916854111333091983507714295689316010080519406174009093731852907482078524176411648136812440645238487116968821845343696421642500686468102752286933893365128872773963353534164385181210298649974805706410623485552924327414599558739598463657939208572049196381191539899159605352742272981371928659364940101669212400260981941715490805763037590213520889130139550845739049539633783524150275713151922015466964263730390497248469588412138642033515822978173257638933285138764352222984788866041307581285814513490145544405261662205285902735863181945472969112550046278392062015458264931735484743067112659558229770592451718466895048963056886141122671255389737766876638065607285300187925647068410690244363668158472242233109800020486365365060621998010889775370395667561173078912079331150659341270419647156171878426540513853504427877954547330057165597395892559568803230535645394719388031228522758814513414096551395537696479717186319129849669101900901808050915367734818426720882773817715232165375230441509685967987588125657313392000909954095655457866629345718352961240502088492263698321375214905991881399899863248047367600896852153466148037817363391290068449426869661877788025547451769422206597318493135640363588598825687071352837865947462817862217225638537173643154189591899127959228629499244400462056133149744800460911411512292498866063276264157358666251122672926159786951134222409143622094878173201275949539390114556881790151700634695995027383921285139679580770760266626512182506078182554355798178156939660052036545268593167953416378092627332818701291139765436310835565829327748991943519095725144382565030535240519446057161511556583946364001861361357453672359462020552795969327771855159531750085789969840947633163948493919503068710632950839178480046774629748204557214449755200747379965745302980478527155108538649515974468553580597302607995188850316415634603736188244694837461268585287984737274451078632857341997675725621272246261148645839028891621407964777408362974819452749304872712169493483890137923188744251048681025688994565809162263642044678210354842946110600732493570855850501493167467956122145064873321527914678919599417583142062053169502546199995185409491051077068366552267411839045836178749197262082276570022112319156350238726360586121457088085030525517929637747960341781348253244593408878803428621117163853810846530896246819563307195889895592799820745356163879065621779241505074850760713232071711927680027826582210471744615441841036582361132390952880611278703619576653300507292656594314571704547921792548488361976099509416542572130053198311871445170319481389164125985016671329736633318283082525186068070231104400882119885527025261198258799352610245202262080329911937328726345010460812115085664185908060845943348069296299183360353481209851420246306676775066674214117442660380982712194946644086114286686883756662737810897919306854828578550511002945303325940777825077361682568283968993813434077677452117315763495177884877564142667309518328933346003517430525413369165915033957273807214402234800670803539705469004493123763871609760372215971424738131857595686025963295598680322895720397904507139459969722280348461595539105934230962421045613948918544807336943849793543510892097897092692044374990090922669373590908927132630127743398568810384109641151026927420987562313575483955072816841894471135509618318183026899662889830043967218737007917571841341292670993196705942854686984418389429222125045283410901252471132436321925465233919005005546466220894981481341296091113715320841866865410998435777684163452831681332705142358871060557425005690246184745914689589555380430364450493049233479273582162355960090620296040311435811536946022133156207516065758146848150066008119971544127186862104032219257368265958474794863966482963568933617601376719673573256479216550617307260326637239492362234602009783252959636698570575133258731310840400365111288295756008336846678075425375668811957594219618567314210079502808867939793194036918516520565910585929832074031798166027772897841217082238506280684486082152682234977798922955232065795970872503525521753304008907711044548607890813840034487059163446348213294532566744100607183071222444021546529906106232255100960647456951094408582512804547517364124799190871169236640819235190668232388655010791414275540775662090902922615779934728075348598059351025252752625186820920871719230701530870190124181212514816453546267711521751859799722793751102618567089892824232782426340507352056789438234912415587614016798780385615510781773381843801757632893497475424956255045097514599220887838237637318658106839906738558415930504035620889774414952408224672062026459455144015962529773236954501268906345570862564774572193901391802287274936716775169493141196947008208903484626801769829583456126098109110286415810213336704089367522242259176028976582609401970972756118574479631374884885109456962526839435321294336718286350240383192836289792688287567147743463643991611219389687377111096069188195874291803448377591745254553441304146416922782825057347477877438123508194987310404542227355621870746296357658273508769996179977666020903301546275011137689305003624729526461271529142115181979922028060529168466584323419711974069189953593183275007895542365270463301801452587822245311822638182095897688936448630154772732233038823745285019381615088093764469414319216282216546345744214800985475154971025793602405585419687891029128179017540388779481977980395807351188271628307488350153435226675851513406046543631589884829945097253278515630460825151437748373258669362592408032500379131038989181337988472605033443697457185086586692392218197669817737833295968321110507986860526786856680872416096987524754039098248326828490822484713404098999858927880395763029258281085936467330803661319123333215110205787761218915706620508815123323509653096675884279000490380363056493660294217663993733969900125634830148351317120169507765941068146911728641993833042861770039298102119915160433555691539372616952971288805940677229100564650938733505051633606152548548539270602716473226799955098632132544329327253250687318837541685167444405835606072904855048682204779833516605022364888031951702277494492827895795284615532017727977530024892608833891753749323808807424679456742105879549953721435370086034667378447381097397528388049863474056469086186084126008578658667276626325553294593683523358093023960411097610916712311646891877063170630872082364574390003466695102895809940780771544253737682335556683451993868147993855501809360436416539333790013002543446858785994608221617234681152578906180109087204967210374906813421293304953315112813692735445486836143436113289665235894844005873020326936503014381205544474560644153194557164550148156958242349540654805779871483195026372908576844360308189257319968953421901511995106910072885350170105308555013493205080130564831595669576969513767407508376940134193889383018777020367244499694563729370921608343977283251280991129060393321760857179102104972472078569359546003657450687881735908613650769540626936835903398968858975641582322401392682036591800353845626119710418884599402526743619455072480897307290618776611089327223815448707518799591863964827499653898867804268749723302269110961162791296128055875127078590658240759289626164312660385035676271707196035871408253457118768653588435342932875489212923247078571426178753615386459925048518903239977902598397641612649419862098066884487155785185919842843159723251091682109934685591731099693403872940070266581498894222774638754123827505323431295593167729109461428680388272794935320243879705504119776836298210896809311022040824405548277935934099490659024245002535238535348351513576024339713890779704967405762923240065352119927263037307264243936479584211062146912181866005790183448937849217767210159624313560142924104031298184310335478884985797753252954489075043474237408695865723283283683519089920463833552125601491275075271678788177235578457703305501365088913872142702245483627751414637098409010909325006058437000390651714693853822691462085832971438543819184900358574949916334251192310478642301277204255910000250406185219089708533363183433597613156005465465275746849703641319299049588676571842213869646133683645758186344110863139464381652531945167379787633520038138126137324074858046562296912546805195541590849701357120085006493893359409722047255788090258060870860158757297036991450264958215771263759300099779184568784220040741177088364001858735573294616243376783013450916628789421906942238156161077908211146172342425578856265894226624984870634908862011032134451298887454360170365151394236922509131824730933454242718628767485805201817092828431476217761895357097188817642957860107774850094516262917149824934003901920513898182158978734473229699166501906025998007705348344862728519441744484158122338571322373964431655431998452794195164170793269007421236743814421827458985463098719669871577541925602642773504061339511585394427297519415873713044834491084735816000683426774905346815745630654900046976949086585287079953956468980799060038013810865291223591774835752730928845890396063898949826813871926758032603435197990740581293550235114625026748740881161841862522425056379723379066923572526696289093228842408544205722591621708953674404770669327517857043078495491021257349140359977339428214996429832636977465553895692854864687875787110580072126424890485070125320271274767521456797365007967608006828420951393131922813529149545151764424134135104626952717383386647715448717898831796760327400199539494879532458946528475181488177786580852407413897461305845332661706485202385325597657084141915148199339029613043329453546514055828586333999855152013540420546125360779379574700315830346265866327181931947730914810582918756066601180973414716627285250443308110026781762791705441202743028311331690081826218763912926186935664048569462613911028864116651350566364115150355495165525017806471181479474908968880508013738535243552337749443895896905903364543376688528184467500803143057086142322764753520175974210937805453347513346546741009840335289835654061226077419121251630842025848383773709122084983051898561186537347676335518154119340780915260982238626082532277021638170013345407186085922512876723116028995987129586907590943807882280307890054285691468204337142102363197898397492839329651598794285318224241846647116223391603846272316573137046232425015806988614244687430615027872781239936680842766473926730608130093045113185071193849652443053001409566654942911131245169901919523518941104710876547637891080631651931752452921347600281425836888716288374916228281094016268759905090790309230981370331799194184949921994650857851330990679695777801346032332664934364499840614302082655207862911397126810022293222387859181517159480462730892254984322312636010669525555429295728457831112963304576540683173490462162807839635523898394055853026587321011918700178608159500661737083703677134278279936738208898359580009688441148820531855251473295680795441664886542984572552993451993536854527154045867657249057844029023781094339901057471440966158588851397257255925386354313674023439603183489757888398291257558261091079542077060087850475958472890976161035610029625500848878064426790980938367550548040676640852171990393838510223398982273362006309071798327382025569713602352890375054531485613231057692083964212497803372545033834850435554397537258685337158657226212973978373249932096229252276257914417301692625031630559791543010099753249558611124642245779805151340998997488073912533777293060187852479224684436698324775562059003366486799968028866118839589294916019619246719148179652235995953220720831092581157129355747862919346084484529548622729985117412459687581479544355402585891981911548289973043741121661015951328821555195147111494110790751164240642137767529685140682776642830918539393803753541081778500300301467207125717418133723158492954742711418607383029271382042870850545847597239631138422096644942916230120970354103534445518489639711207402745441436117523632414081145033650491105344527261653745257446978512606224494323118648217002678621042006914118624405926981171319438583500562352626427146726066163297125109256504332485516231748129137156961980873166488343037599529536620345597555141304764645178912000234797887259168808975226280007318041331207689191944043010639464337104934141280307738197487135323703804435633007868236870607299652576725441656741193025433399772125458289868906102363306803071275569039715130500921718043898813716712737498776611328642624652223317634188851971260070988837848401592481797605861695791250858328402505089082899772099512321328350409721151018722780666510098639004208228547760727428405619082001755834582722805867324461472498446093674948887563994605549311255740938748209310829556854558511983886988028269299401181844649079513535642438475304351838439906050154297387137480234733474542798084516381024732111422224083797529191318158881079870365591818245015629627100894622405835297886527268701528624009974769131549530442324803221059144061710405756225434686222602868657585777689547805511909815295497394903075437604846873475332523083857041062317320107976952862656902974871700762123504846554030324035867382787414680934945376270044908401295716714106191579011054420537590222920114132022739065936510010674472284683595418032728956790682756328356671014319034238002732069384930189645364573247903353298504725078951434578602874477711075797565954421679349945038309776673834094600824898819679979685125241034140231601241926623504374070284346948456264069020608701750003687539076572269215120702646899679395380581904223381455898862992069174777471802131217439799684057158424159966450021487825371072711964496657752095476573605881922582685425531726846025891491421889785574940358387281580492982645782101277707747477742504035568790559772505414917577135304981798866755619376343656571387875856432542230897703323029741675032005729937875487473087775659751273255809438127368076451806192556657551166039954770561564637891230307826714946198498972842103344509481981659315850073128053045166335884101898676732395086680850672950587015126149959478230075515062321552332687569772786471346041176465796630337234839092902738058816283568959907481762885826989540815615844703290678550868923471690255763731509510412591019179723742290369790429687529080254639843408960103561282728556555371922925856777325344245797835620735904740929261849643274307750225325215611586763908432745481403979311273030059470627324325166146505183881377872582093592169530374094822314384895337446587576291965150440133367877182667544100882302896432935071771673253173099369968643181936330271426253703060455362430594723205409272288551549342127938582215297207610739613492560548698829951581078722959540555407183241668398525958726744208205632797263490794073258643181952673735613321146942692665350877919802283802711434857584640034184262143634294147724695822169331487418155336721680664357479171943398322736447337004829369861081683316154876565078714581430508674560944257803606355535753777169423318869651472611094964274444124545354344011003947354610427416506116642120239218668301411674691445133638700427658877113183686630345246891824436251394355990141458613025101900487110221224471650900606815844386233934490736714657200935859682585790735960381476155505831745277780885813286892130965587834055573155170246738532273405408836746946805387333938762560329529093424393635228945905241366975395347697921367949867815492445858857090405453216753202618103243845310043393566500304516761170361533544281160954370255688465326297645682796815789129470783379271774783554683799582224366204869908888983791905502393078100197916307929334015927612925077747057574529344528807034422134258024136182484135494503706279101708889191925999871038872422907656028538152616126509722109402408952549971915181527080510242333525213926083829183096540913966253111350409088736237311697952625157448666928403595903733301792515969952698383807019666138711412929041959484432812646260897788571470046570989016541917275333913926776932336201455541670899800074038885933226067667559346238041071748565706795899366764468126621138703053738391365882869605585350243938461636816636567013342676140004603614115861567478964770394534116180535736084599782004857774834328153466431929689371434674240521007751362560505446633132316826378292619379352339261797195473919430892624044146436590086646800238825353681839214892575400802988898958913930617096894917052892266215026023825139146212320722050986578863719241912211468044692050298283395338084317738575946586208942482456081100504889936456776702697437856721107407808521266844262023608812645984563781807108929303682599775749446358742788800933487025489538416749436338946925348696570665234519520636218773355413299242169192383451810548734489615108493845685962005492088191072966755536605807372119005907266137629667440151670368486581059664363277299552359558182561812662300086177036686501737504858261066263176399642215265203591096637940510316556352115582510453628267714789049866782595161393265877149883896063945678684863034387123816956873897898102446279673364397444746902227153417356560573320829061195680885795546183324698855006709182463535860710784226123799993166886479806139536813406751233268917379895439024713667850100912256065940582528044293382751702046023265073536990283937842010431819075573619279690031030228072363876952236803861467479685548978680415165691940055077189221457342843467714785913025193901809551166760250422123684176385185865078269519617421682466354227985425336106228965519223347779577577630788003194192614840684349775255424815553030759070230051442767359218586500207894378048236243541918950599625372579072095804522680882795838575426848819707530106551842006963464738818942800298045508904272331832068927875494817518731433194630253580760738027927222067583882901796530623229426043524654634611697169790845165726242834656984747191689740377286642576090740638431529859059359327384700738044874186380336641472032808246414401203948895480023136260244411294734038886592411405434933508345813466856445465622472938120467373552166588766427073327363143236312555095927354640203819062175492443174910375994173890408765492281042831100918108735902924508686292164668642075144391672940082991504345037188551437392095143599748418538887885629092484936428640478591220304091370090134787332028979977026303032944074822065722937044404932190196778533648419329921354761744654509136595548390110518495551350854766955894699414657091959383515034291400498470569224358185170195180589251131097170757663684000876480709644261288639404932906498243115761626506317327286114838257782618430911840448725152951433457379325061635175980211428272718559853092327776963904924806055615985410428962463197619229289427548006673073641174823011675419096330790698248492378611271682424488762471239896195244506600120633407968059622502215714267326909915181687081325209717598820159702421796848186551581650355882762662086481171978417848832721238861755365338326456035150976414096907020149086248444851912064350473281573654132628604881840105468083058116977641256308298226459608403329999757558625712316446035762205632265767087220962306883383631823829959979383902001320510080179761728234738747190632065119277956732453415402404152969592741060881506001635814258655673637479821284238920941348818561745259169864507131045261695817365590787773882434135925893440659966022945080170254756206709899547594288447550942398156402945016777070736018424279043385356849150764011513530684350459788528603030289423482066370686315297659133898868633388126576457279175013653612403243813586905826485690807113640702281519680110195235455627353130815596651849903680834347759350640135227434415612161673982610410815915277633805689165373513745362640602225863649013011042069351978825290268122252849557046572843015573742727234874746763364968899402337376889469913619407012860589509040478170448506869426949553852634769805984479647717844730679497725697790680350862003212092420611413374736679988151651768611798939041953739352115076733161646389087460479123435935138026857180393949041492385059123231103453771978847686556540960358058240195861481474644783353628307066373338431197496457729062953594534577798711079703450491129463153254782220049176381603113642656631450112533314565032179665970243105059303235395711382991130494413629776532224093700378599365091333492581587074742425603515609554386893771675880974878462821711109646484022607745836327568442482854615153913067745797605533646767545387965403278768967812857423595045231131299771702386339476257258656320772892228839163078918346480598663273687085838448375956155329596290059094054084454695221417672691095908170355270023785511865565268051138596360752199435546099247656743432627874440125655235529628358662477749635035794890046062342509832913013695618479906442563631568205245817672701358113268721051704388475658677550426513250487832307892502203106919722220147919874363356680727546900460730017974585304297698863108116138422775340174166481081671732543882138989794764543696797430605761499174584347172739601587932553444172653606415406727137924629757022329618991113099379187365894175316274825631483946757001240336977058521289050740572219234131323277220172012089051764484806063263810824354521580011178189976775097561421907961501979777818822527371194542332325985997743656690775217380975386823399177609857449005224599097956347015508277739784217200712795964916555411694809515043086217629964893813337082160386743599768271877883608608380672375415843861229017313045279782913931560081981332664947700537345621158897842595203636560240916942445557520178907026441834849796719818054469627189405006188939684049114657536130468809272818363212777451406329536572903855969735994580809579879633449866325593384647802217690205028688132336752228174867015834943138790817619919277826312445542943205099614484596425594324235196061860775827204852668534064105824598119856524156558414763225908021323121426599086484296431945675150535746040785578863796974394474977690719643386785677720721135249981411435521704174841940595967203604654480154162038371844487549879238167116336008522588700916610027308902464413914985698531772682744796849562303901523132923499475914430026255437155265582488525051681889357700240956939354073994505046171487852126708044079410728261387069165706043719459293200376108038249231076903541957995295753168837335926159371198151149512919988134931382148204022963406695882503050865300536242193585690069397539564907366608691946611715763677533904724892350958959497146963494437904303417148332558867990926490635107551539590780698087474193651334016452918081955753983886188727621328275196885672251323355854847092705297589280212284646111128408244220924448435946711398082421216449479800365454794008480628922796879091845229216698994236826793561925886374086524024401624467094051217724255437727473796980808852608892451400666237928786274457650952614286590339331127863502447055117867055790571338052788465740877859587140981689677482258744645454859360300403266479483160086773949543976481465476674235463236545579319254716955323820480652042172262283505751930187821697204414804806959891979666251870421741028861454896630546029020273182036015286087315231799565910262893853460278301335097117617275462633681864976401103790455654694557962453682212170280014860983943323182081374208680710466608603458532384442430937153669458996059093226408075765757661212618718464804300904619154610292648855454702368027651205621083569789408908620705754496979250339032430930757450364106126585858885523343972387786818734585780023845355907682514344220053967783127488976744787078912084961022456082801956392264281938868640713658123342263260386732396385728182325772163805442513081969834835466386838196869632510068196068037181833228363316766848559509566064372533833342559179256079191811078055098473719172930678570571107701478252941737584126491357015441285617395484785617637523821740828895894504233013166862951926849168061895106118281892147395344703544255457363017401520331654417680949268573815546447614441159238401979679546631552937464094256725122120792676268486005838182409208236655578438587255221557705558940172914907508962419864558794423993276144363281454030957899109871961164018051633434739016793505648193774106870806809882521926167547296273183976854147263419344146802013887807767502041785392617084560877519500096507766244418874794072666901720396213888133897014772453760386412487995919042460896363572994310198691190128835541890903598292769246340325905088762788410065535960908487772929688568125551895161098322525109375808502680111256398973873253589312077004040009049894591207946995996524545818403789604195313260714910301303523497137207403672575586434615481777838559435734339673373093549488291566896764665291365742952543083950562982614734190072920922484975053625512408538520685746900751930993053996999301136373041203280814792992995942362559493022997936895878652499378883473536487459637106063243672999409363628990012406661085812772678943052780725326497623661531601807830706978472440190976502927912576164732193285383877291935223080644754670109698545103310780436974314485857484354574712586853307409313608069073442856649711847562504858632874001720899849397662737826674781791685937335915465586765016526342093378874827226387155522757006624386100256394141435941770276605638658838814603730697381082845972611427682213941626856540476137642046616191904191439921730612199392185725910893127116569699772997735850551034246003365946957846623079883816873863726993470680332605475178850988058823329329083417129317790439889875535191323067032816177160822325100602506113206054258664224986022308474560220736145146154490888617765584340728665981109573113764636512153624729072262108399302943036057484617197940165670332346432900989065436576095873900186418039372887120667622506178558728276312276219411358213306606488065390374813952714636649609315735426516291973393750784119489768760654820007810797910131782551964562913430379814994907878693909224340438534776827625067043706947653189807832143639912830347130005651638142650828587954026762819670941422954726960000964505972101275272118055217926373444513972583524514289544234124146547123531411625590724170697431805586035765570894622873497465247486115332445092279084287478590941230123041286752836992794125160999858597748445099634264336565853829720786868692998805838182036915961950069078670964221303138580723775333367779683781533446196066321972664166407154008313365081230326515598035493969110783409241833188039736338028451978017676029857743011008556104754217347792267024366373245931483486629160497699226351624195648767366798358841742150070312024506008082027356758034234204938892317112356695552655325454476539276197365367463257567333824102115871433268661252642894321836380707936773362624968490572472257725120853584416215400191649248258824537676231482379666433113243364308272916300383363513722414459005527791026895342656019793315983812298472203105457992397704316649548457953363624439852517365843681559408964267490137161978136442914272777193345805913012570132793972541989660171318753969435345067392603060318415850703549322887195807940119026538813216154109422598335370861361190446612810796565344319971911515197701099698456710471812226619265689709251572455456726930893450329435702965053715731157482561012974686009911732448425394187787515124402702004268216892895051980859500822451047241226217469499707659698975550638308407438833184642533598629323311279773239146040341325459496905464088407375982334866423072147344899880153621444847968292461045528133416326582756175783606411832367565065742302155759440542218503186348256198538475136866051262958108066920893572953813396803146264478355176592918395766054897862826500046931440284339211376262699514858569288941715945059244373317662861830696874640682848255082636118324465004875790232552814060672438426117674921740318999356533061469979802946070711546230221178536291692285289804608988097557523152849688409337799432570121002978027370156462120644964767815436431298411920755192377295732406548937877927534868499651595404512535855085072037684930504716579945234350109204086737979769712446814026005168423973023811338728905472931954162863640570739934295286018801094939375114212088592923036569863091479496173255047701636134154956415256411057284178979827478316529022821300748655354552539815161508180709805960520389560182943047825319475834686959357266143676100161772713057377802265118371312594918022744442757733565860272335498647605245102855573328686316382029134511308400545177167569030810760634222522478837303781946677940784527759169404669114248493718570639419589705759778983847506999947076165710387482047907112384703528637367627595564675643994634835331021556457418826112234937016578538055432981271063748452888056692215440521034907270882184343215996333299639782629482012913741520429274184172756017327756660739423305762508722183097002306511425620445175496970467627843525308209815413646719963467582830611734384434647823594255399220253825176122688448734341957323428496994554566727645074291445330622200445068216313391979111032711990708125094309721775497842656052147500271749231474783186803814972240726431062144087240434517386482551866306388959018759312571212739083864798674849577047214534159777181863408336547470273638430165842270209323153465543734146700577332751432499510993558046497520957532949540013546701975507995355015055166467026057411798455281970687242295866365854977165521654352094285136078144963576132979507484722009921255421717334050863070854823700236944334210533269543357659236594669121127164502610657191437764977716160218679199790531969352847862131502190730613408824579647346234882703724523056033432986485759555785384808090852234645114139852932522893281693209300034421386152042593768271756716637073263555904532795234525741808035009995822140898805569792229737539280742564899490926972865253752722671671892892462333701171655869902857735702705535341230493904078358457180117236117510365838034261550479809230855531131556267612563712004032654179326857937189988465131576454408398380376295850271389745437599652279584828464468165670384515722768180662729563120422504342514304252729674606975457363807903763650072998379687656476342138910435009196623301152185010106050507950106503817537969046994433255801299225005926913325010071740222913796928149078795771865366677820306125597834932426413173543366924704807342200375160500288767392460172913989844213410623966591483276855751338035382529025121557395243025797333150041173574733119179428149192996297928653531961731987792955518107303855957727824519935151145114216618299550684164551357570589104597448808019058817489820594209933805071563189357707199716070667753224564495776090236742288444325828522822418430867368018984814588863683610313789154656621075938249656274607425239012648528370562870041192503312362592119603835781414883407473518363996186391219448081872315305443730571713460649558115076315161184012337115532520551764353824903532952387041321636993154466538993732070482025845732416811647294683065386262490183341536661105751103641225678104752331588722098851422287436640242239537508215786092323000014155333093286193523502948025142993153966070495330080180670397444159474298633560774668905061946814698962198113246128252373299273017935584407864732571474590055262798583102488539371669945000612687534932732927863318746314583044932123554171748795505835425745025088054544216650262287854547762017007869626831301462321509366152048226923827324390288473824035015689942473831732499437463965419011346944139488696058580132536847065515618931421452379955443109879688079725617005548500354569248626459248309365257352495663759388213899489881745316539097004612831080747144498865522291980734875191198624580872349300031313052936018465588361355376267309055445804437967560178670444942914649931321166109585328348059264377792877193430414804093133588155261164183932309449015982299789336541685660720983667153391648481891653779337274826309972308792476185193693942367910332810573779563855463729020450770453574063821201980439162537422337804939476120922683785176305017047343436626726022284466932008655315287877853415477677252220510998987103159037828842468961151717500743830032369750090188813253555819810548983271140620250733360961491214143710158766772015587558573068924391699870916785760441137854264184672385768469758516319125953778619963574208243373645051752067975025616281822545653968617115202914481071996571629661315643018653965152845674390788937370774310336470858256478619462483584149950378497956494158879664836551270962291594375956023434056724780384570929436108746556460004727799631342583680713017399184536213526900400391512357522480943898218222314217746842837734749371897216393464265626669403806993374777954734921485000866919673175121910972739284769199488319927693295053527467959770982018280056792472117150997802136506044619471073869038501784023189214634575895814972507011891310436846644575880567029243857992170517925307922682837729316437247362078063947708603056730085740143962670599287795757152450238747030789777325855438086675532865691140089936121815351103328631693289869906687570534255775784992572965711177684806057038387990494367204117765985352203239576213650720788332818370110023295436050896367249455541770117719887650850712432763798956520100559299487705159959438848481772986660215558340222529457646285143974545102296461208935137963348710658130204931678443641357522441643317979193679315814670593313248223325131820862464283272243209957510439511890841235668453106819325247596237013255319156586353966323065873119617443778640908086318021976378307303141193049916076498616910216002620016383485233058630910366005200012391986857328334382422994002567791362715941063149506550536377863105437730962995867612355438596129965105839250153457985055143223051362007654623577197496966469783987359845828309859531028656843457151682062659399313730443239531529761424734558701843285736742167569562742295696491084925337961883232376420906206147828823835321427028837112200465568905234125567878993103866377970825684965265763939596061872990941132783266992137995109060115309342175970572888457757206864851104410670467129672261784606756632174689551753651937681074396431186442985823333429174447941257674570189099919560147024802514624628379698036347975630021975439923879882593278076899850849200084379717453363941153798692775845125720092943518748411909514708256117623905298295652873647879517554279612646755355924403221645746305182982434461329139284666395157520617227386362178180114200484671423136040131321992603167735794633490544422697547719653699086633239395111697714755589971807467644952748981096243934675723600987204279930189107957068120257731964832656983974828181072995767928223943779709523096173014617662211903499622613276294931194628770070911601913579445981211110722463193733714962440472942785871960612958149013319240121696338639770292195429044616676989509932866937191411924161117423062709905394752764577987661211892056627449915583857703111417937062279024707858197072025821744828480319986417283609237120229766297630814297901099844227361607823978708719252600422388828619594556336563224387523862821107015720200278687222435970102640468114919831587830672599573191186383151114798460418932015684336759150713843270356140277998031935226619774900593813722855916900136860614041348170054119358363834905520350908260050574983250233925503195362778999601881140890015097841877203298879908672645068527003403511759409706591742000652556303069934524310995721443392802889926956518473827421076980158698175037763517516338923855517029585070174167577846497881027968613054660694869547307833829552934909476374266726769808662001459381531877944631254975652391047438408356952352616191360759192355460902417881234377150350261145649947023157700826141321204578838113331325046710020409067469959929916691798312440679193848023828196746074980194492803022447140185111732276552131572901250279250154731553781378621531835228226371558229775435611337121254440936160965223287650230832718774550934770833555248866745551163599385616051617142872159577104286175780478222631251170745784531465569116033924861814450323414679763076346879447563377932555893956966321863333857066431892588838564066906664275321027995564348774490446735690748932846561109152743855763877960708832393201511478541346848504941530645704600598818614398622036352392823513453645293655610096314351173998950255055549841157481721621362012971660143637817819579466195025891431158413609802423535084670296256556895423972753757163059969086647998541090110388270911767476794842180081673592794352534719249079394147839753758523909069450601258533099656178993871847767038174855532552634324676568454980177554519709116052968818202773538141845825578830994619255574620188043015703993845818009019839053848706631373119327651317870315030420611071807638689724765974799964113100716117935624168347072282587912050997097479574267205307177019693429933512034394191222658434019412971017639583395518612916407779740534398235388248809429402049140470313405827421169693447144108962851140466195301421118653514778541276682229117558369648056470477660680205411541012254135749260396388538901681473195188751325266831631383650245703747798058138813598782533058216447374001302626400563776682091604686942215423798128659138024154623832192518446426009715237198765932968590391140385543444610380660353563884777450335457102439600701562628787733910026601855788428910651774258562299591862329007823932579537991287690221147890787628918053788026133087673071108955807504565074042273571628507641180832525042872492772235053868692860759312284213128068783281372519110715125757416763081735208173249574708725142203381007575665786726129769801248234085135582597085442864897692106036462194039772630418543603385884297411352170315343157909458655493858655947064325504689689572395046128798009885477982158803059992091086423275664603295270209158936539028843835581106463355334371049465522182915557076817002062455083750092146602953260116454662537516051988465149692651646343380790339960992033126678489199156987333756614674179255881218462545228808101616196863943206267887182320880675629944178900805867514534192359029608358205511627369070483711090018160493568881911454111728646122406057827469726578940843150945859884440381452434452331696561710172127006186159638881371278323513531642112479794841025123843138423267436228911759501179155406260892366716335039729567680892229352278986604289657104322401440112141353919742701339973500699956073233362425988055928944817625837335344930143239390533822754673320216614964896083754918732097238286708200936658151601846924756200634301844664512672480674419106710916419934605011859491901584315624081681410716763254615105682886493198155579644159568009205741256277987751880924563836921074345101781919464249140892767667787376122752458225431706532148369895395514030188820348986965436800750983262390605928755888833435710861215398254122151730844519571006183876389777250113362509231255963219629725775015931168990358333279694318906328261780733268570929120330612748050842906722287101116264287070202720926177869603371169011326611295262423810267110899252079526208017739919246106609503643819995167886060292192918099951700149864709234817620296923053478681393764068040496777050510675693345268102138269790666841678604597096920797971904123367099245960185141216099353921503153879740047522628534651835262285908168481335740756782237754295619051150154123766425323802028345722420111774250856872009559944975778494948640869614180871183484391800379246426062400993419197921620296939811870172101192255157296118194937652928855878815423603702319457316867780480492050843817493840758930906013318697473116643770037020123296567123623240013459238181069547938453108722045685750714490803884539092458336513476208194431444807515602095749599584147925939868545010973892439828704339465711318075061217113433455191763647927044109685536462282952632106634808123029955556186813516567023989054664402117515256073538432270550737564064227021510965595293976199676543677100822660309637740627295864745016332022994754805308979758607137506861335808220464818319867363032850633692185848322937532033348492432005831381415441910970249255122604920372667220230182744151271528936400396808863786002149395301941767810031980549686162472214357694256139470881500648579285181465929726640850093038413872744793767061609067621670804108615061857950440547686720801713989857667124276253623489084287371715185460203503685090093538071920882345809405970187546548066461613842612007596554551244964927822425206034671742001621693522349203394878209560660631847622689593378311703287061014220843559821881195923150090168245989700907890514670075725055601069522422305970561447385313077814820275025897718731479857830274072483695552213115713346303036876894409328741518541166842435905298218641038757708428048012828373686885856541335603961790044766823709949053439239387912462069226086110373768963469671175038450246801795112906034576417289104714466503128014697650961860570715116487756973369781085678701751042659659945571853323533462061994321429308541207102796303755698710652285637337019822807835752948458430778467299102794521082950496897308223086439244143487696936883961042628024174984246867663681237007524140132508744009748684881228736152542741219750270690468282028975954515289719416925839268601218947791509788627246429575787570173900145353220653727218355907457650810823349511009927092559788992639718281073914980275765419537638482225635183060190234763052968010444901903571638157677892282931986014528486057207936769077826701293699092949262426579102613947896287767722247247105853587510427315636515641594048640036668642954447361096818532817672776334872541910213193134700129445486718225331380358515622407424261449997560415710834339297681529315874608577619538872640403907048941158199292306954416424254148174537659549642102260612893755483159942630403077473517704061643952963851152940380530493670565685461652390978668166587701721182052647420158078952101268387401098848475274164915162124486056365189460309764167795374687900746533016873905455580805804582639165009461282499423216996792577730076165366257890805022531321928376186321074457340491674612218546376064970989401325791490882513213802237489192695507550030750802096348265004663773683753836511126334871107720992702583205016491225438057871712166571322435680679413211280358157608243061854855352144181903323221037418526211500893463030912696050532143552334951891660722559446321298965412225935353478265956267990044322523996394029270754778968168861743764183369510914836721293813822021514982379523612115546005312101060570242899325788131304309545650496012175252733643057092845422690107903303013120062699601179933650651971326264980370346163297367099163539888446430321008769544515460964866437405384867579763498494739457755443214418175941402122287121102900109143505725213683955267001501591915555321838429599729288926194345231087347986240157116309951806696413156756595896400575717867232701615446749378406992577840841990189279660016654535562944071863362126724287252208624046213238560960861262541581815416649890554297974958900850251289299144162239221355179174908226158276981156019592691630145098250722629512931598451730977475067322922109703566285767550811817378256679476401182028743151732089283959928159445538763021286581695388808583361160509052958456925756933311029107095255046229136925586193980241022317660317391570860591395645254154730802099850841325187906071787050375766758268004692617842084197132361827136059524600205355431703661610772128535506640924880473611491331385295186490365047963029853563344964640715171416089114998295792462161328004091779270708201107497930677838124824029036290620292042517852405634323054906039388483291958218310670745337739181939916595372451030173521914037450739389563103295746485592713568744770199379362158211977719254218493952145235076018063414271372508193131574747648508791286509686714204943646337024153424031695529865247659267271915920040790455419908797428582644875142426525389519755109418639660337591520592398139218339569591694434812448861289149559448412109992195032412258959447956078285476011801078270568763170311733909564562576451708501595810266554518285963955139061831899385031186598730969799228326434026362512390664704529473007876035391870419742274191175604531345700334139448471894002683926442589069143405814211172414393944563163554356147640052812763807294273628136249002190296003730252945705329482485781430111415589957986503713010849056740640709469478757906564958710612737168622541167683733579095897794980512116951112216762771013739494578546820810745579442596412884556557846468382311358990650251207685006777415421566397049585960038100117909399412242547087231636808737161329421354343334232926347618864375588981238422084764877151853000580896584094175317726499530397607992254425132098864062325102139575232847206193368304379461784407408207720896591315431906620975256795249773009348168672673876107532775045659070592763418310195316123259757374705783081490324794123838797468300135645693606240820999151572079250298871942659584645122658060213520832809856759985588837771306212648809156712689560523993696437240242274753742943426334952668292766809714284187265250204349793033681903713540101252090709594060145086884250451846302382550535927375925191248433200361671079170966474154429541906724655647317210920867293027959598131610362642723268724268370888652878449438828171161524764208623279094434872861541516336216063614376904685795888362276065382880672810609110755164676345924701409287852836514508674740284666734773127159741404197999031859933268017554505666808920851020839800214373203516260357015274584855178437528402245060336275481379336719428103469748379010959178230291797348842727999303957511541627569820988142997809024959111790229244615268523624444978948532196636458858422889242220429947443349194665992760133414763270981216063037315982437510762549432673841501092145486602687915142287363924500153875270799759450904853994935133285849249339553337246302186938104800275916884419361849912560177653871810986901183303515969495355213715892803108339299728229760754194562423176990294909111183836380252196557366580656507563560247536973111288882072257724028832095890502707469564904430669281656765936825106555809669457602645693586545973110226199170822217494960352421674967405224083300813769002789887099115392358947507989592324655253880626209554684412211805117689277751065799076195517560836073271301402708567259272477339240818414084693335282687072789002185049663844985266015754580961311599777243332679959804537287353256717983460911368528640198964344827604218715763983408829885698919344875522656784901505751521462592211995068104263947002526348173608002142846199137256049412009349383888393630902612904676624022230903484899437182632527195735217335167503341874286569847221699744710322954324319021732923888207407916715219695027862490396644711203236444530313972170908701465504752128576485737130765880164406975154177367697354222960022575162058565775332512575946001438543872062307212245882360507318437475732407038386165607674674747064588934996146001800839051482664858413533624638154023686219840872669454484637209835200632863558182750904991486529886957423910262698622965628207708684328049857749609268921637434319720656786819527538935178964871571939671747466242983207418136125430192995239413440549322782382274473368525020527169692232046754988357922518601413222545306554472557697337318939540666261737472165651692721472904033384964724699369702465849901360514093005986873950504960879930402328880823786990056206849430594282467882185729265414692125891951002772174086739088423068694451220793812612379120574532884147627337040565610579931433695231868352440700483517439816024911073935321157068588660621561419025060925830522595621388887145601306486743557073711676532902954985616609343679917558403199346202257316424699369539274546695314069930280415736101456824108294892498219881546015392869125157213221860533461975932700793783763832408380969721641727235839354111011775327615811521536655872452238040550270532824891049838299517366499545167535644003101467414477120732085047883476517870253610361228256358973954023233604819884514093308265781146957773211059605970095071474705473607060310165458866473540477245603597704247061971323716014491910715223213102254495299882698110489487421083191484567847054768459731446623882637373508431001930678842214826128018244329360656999696888044935095920407476449544668917239214949854297767366608099542609646885135619143029913809467060670101542493968591601047626324353098350582579911100530186383636607172645052958992988603124209629738949055148972829235707852354127309096894960936941842918623611880206817283987684199594233555125474222755637771013044826088305041537099690969196319588076336871772380603716178515085752579828617207396922963614714079552613160810716119677612119292957498160346316166788320380104104534823593151861241677019553873708484262804786804039386456763955185303957476595023336886105003914070346257569174979218400806337089961165731255810387496127087226086953639748324556407771443495275620575465587991904534367071323726384376156441985142041390676448169675949858605290912790287257470254714336714466811519613001442322846433588703821960083658893791973136879158286147839363233336260164360731308882255735229707226473102567674540570351834456373962015020166285661072899283533462768865627996525546550231204514602136596852270856267173976850652544774319031822591313044394230762545439611870135160965636922771728873197537864874365928831445416467922893815079213682959763336039708049281928878737723931679123329720816610568330993168076541474253578164889479019970381163467564960328979171901248574752347274129072982114648706014351081432996568980772945365605282259159122893937721482472727810235851944671047037040194427418870253245992465376054736841444962481482985700156769517079187225183190999049183997239766902242679080208557053444432829625135342856277874308786940071009401195484879059428432632861575772608692227049526311960497436487613851606068556625655559894486344528958180609815538302390330493079890229469878076461207656118803187754479914023009259387046452284579746294663471586182715684587782955629544601980749911858153667360836556078079686688154075171518857252137201562642796436952725118474322453272480423693839393651341849097680730440860271843612618195625875034444902221602092203591439283263880708843736641068041345708322619177455635295980996909355870048060859670917289179348510092595597814474017805680954966173201904444854727619075472261918648759693296049390400227432698263322767783757261480079065406818702136141343925142962116501520772242902216394102984254421911610847134956447269996651501894560181055488467364066900822568833134409572379655262365336910407231166370595214075496297707047889698337263055631265890435266600212902445983403684325807554527758397199421301169772336075246591418422273349463459874597916682583101996332594794686707243562114418548878551422692873311037787602355949369304215002210426984389817130849106333733819731442005821651463536189238760554566658541834319961970656742726593387762188200441841210882219445837024602706662924904828943844061789293592477942528897368338093740054076363297889129029516471786339204762675853269396876106467603664778797761663739126895387512193437887923723144732851364554172158279939231953299951605590850251038787132139720582327489528284523998854308982101292434745295824613331777150529664142283310880014185069962223380359760195899423796731658267790587716457423382638607485597787876536472182121004941911101506510947822001763264728653650025524027973588544679097416682006896949521998097526011206906651112648764164478029702936637684252737727212255108571006135523762959135852747508850303327235367929170631572279169794421953012880165991016885120877203441718985419151110225115098849204751125462246469194026107572216119601878140785402199055423914390309948285864815193065357459492077578162970628336078065778555295901430064637665361266300721729143926701768695711187555803428450317822071829356875546691961550396187883035591383278526911606627138083790196521457201646712481667007540154473847649058634385341049921066919003996164955453145681316754495661612907196971697252702075496221243660635307720825486735632635898584378421957649999520033083391072438558635631178475349354673432270041992419465065310709178531502752581546020518141847383188123667038082732603431294372327014850700962550555792013800721781185443310178122076378819636215211247080270661378480007300430824724225499768621246789749612142776388937370132374862721464537479955666813022154458564272271785399788096674538782861937570078770143026574118831864193825214119301612281087702200126633560692987339148962708203512629617559937270028628752223404477398855100665267322710552418634392513082381707305626007641645334474917389367907710079988165679439201489664908972941409533964400229385953269269475632214683554233560894372596965781419449299217392788405108598776502901613980505992640339084087851138536375391338313573177360175984639770053488371234620595908607334192557412493641173843857075264360319631890470653360865135450738691049199870789126226364258233088860770258568696290141231920871786800131411621761391337838092833221937030821760525731965136560831719656026418658171149435655272006735040653243038559094352175139995456065724966888843119259933121810481690889521041792238696097856793865418559522249465114866771048834062889917041069252785841303944193179060846433811261088012358756728026078064757764254442125386118101800101990136751854084330650549394147934153480469640454283091128905209194787589706454499686611483526191047774112978750630075433536348550714179565618721481472350090001791515079186147812695434423568834282454106873278178878102133033749575276770687851698972772303962851487626521921395490566952428450596063694289753685915854725744186190143393502958968162658045451795778773309224110937790583513458098971246953505376454889807141294661082378821096257623199743871346219386606903024201500312975870611617472412594055366093995105673289418116385814691650343699816455199648046038516865134617192018554488322702843326277083912427781452148059462067731512826361728239903584157104323683636584834043787925768083962451704266357650327016851149228425079936378733067330546971007661655469199004989289167752806659923392772114685144815360518972812423387227922235041080850152403339486284955655469069094695656716913465858632961479149280874452025311906965700345250270945220488663721661312247942085111272715325753843850549673427670804136518894442892654281685797583734422031456067840717554980458984311364307186564126932821351834335251929613134169575279758160292920529112677135440703266384216148200268808524371060081289046789007267133631794230782416160711594893376515502462726178725467298660523729476875041199861037418599918374191714413749000294254416381820210739244047787835156863424081289635412108467113946494227110498007312826079769865489870350502782315991087686757128448981465353458176432773454894582980672191268618555386556288872258202833554251320049062581453655102361188504228523602208310108345480112356261286336453334534881000418702304339359514255711511074859001132640271034305943759999238466977542163890758823471532718913148664257012580287431988823518400021906199036161987819902403830267943718861196242431744551715064990610270535241866409959447573905665909986820271966279214112321438920839529342460888298490240411827471271082471896435795660271696484938073920772665160081513042287311036199768497441056241542605826570123495702086872323479202089745349986590608754672177886954520756730205065795783774402686543794713731938092238844429142988919443404930710404688510672050452074826972650543574683174050967465529204439902836823553477053385953931852182133980282690890808690776449555856293965264176652668210259055937092449800697299328292229056824417926855831116871192871476456729164767117524839529317282400061154018684567392470769805355521232152696603951117338532292325100561136173811069503399814220824482594053356489087382852516531092132091319278247483383299439774223916869535010139284370691887981585448441919376730480766957389556578214829366654441407930853466339719846501662289059280464800236307095901790601950998587648668200701813267143389315694102721218294872979017010062885804519463523448520811217330180857617906648857711893669785076984874436413060418830950078314498148212385850781661305129992407996915534306842670064954170355777643457589662232578273495196941976960890997920693615675306891078687258744474565622440117690815751690822343809501892372369811418180398228011786674749582569303391030798242262130283115116899048543959443105099645753563126954108127804106258614955187047528028198604271658648670205931933803005970581900158234395170814320688188704920901195013726955650599033523698515093181425942099963837478898196245971675522484507858376885378850457189908204746052673528249133917966860642009142430979145751492161639234795117917952569161776754034180704656403547793496927967976906309509775435446689550835231481254672685842218969649013378437801644580993044171649505719438471134585394410999536285339080614773435800345317860257989037138444761716519347033755838167636944318357467345240306988291557348765160135226178655061551840338890344582525052241641579189840848289054165251224596242851539454806620529318542979063100274415777773591862585923982186208295490893917177998663948453908243680815249364199256355823273691525794260719141015499136836383090786041947140461841288089028193905160361120091450119589560137182676853081835085227560578552909153367313156594755906478071806051598247493726564621891449942576303857428557077277569485335723929833826194389351557432675157370582244111432020534599810089177786433820493210970428302522321169077508753247873263776140856677215827190494616195543688479342684297332695364913676015929726842947704167196683351059131036643310210403443022075172027471116858668837081875848895224744494323639371190725095315999042490435911472264237044415340567850458439343651461053985591085787933573261322563503099910468818453341027515323626431172151612470125996893613292295939660443890372037021221578291778161116905002940863779819292076043198573781923623933187632568852523833468797039005071860703604477550778938000182834975183381914734819721601910246201311955097964643923947882333039153052378514528254207412342375283902263657481058279894362646981430427609509745512584407800664701175044403417363271181530292381130656915306803975890017220563240488192774101773426890897049459762977372955201168707205260647677775577753957978961675901295133673966700934800800322804950043154492273719851929455916673802024808078815339602072020920406132480876509830504258465730959962384831653009013414330828848646036376701711570837568997427960685022332444582218545793342334806361012781377776687432086861426610750443283757283951802647615695735857541280533502796172596267371667675103708637150844073750431737822413198529909789517541216139909741481294182231837578254851633905607446286223774518965381026971385034871213536587749128204494870408786922196109170536224510320137139324644171631429785527282245998085624907178283972235836273488282670112671759184554975311529145610354468511729627710707476396820710008981578403689916018933115582707009950089052630845350094233367411242822815873888720898366768966029590669969890054350318000464978209087130198555644763515651135320453141945998436929275423888821875939838906515581628973129936537722341891382087644995572358249826665963618281323773541671345788073508443841745089627555293569378944115757941006986065888357767602209545727123474791481871632909401052849745498056743915830714443895826963619457049872167610278099898409888107691692689248032058433140732656533974216098428645447005143986727907138008229622779910420289964676381531708876688074174360094728784293258429114613036566241798600183502838409068307309838533952650762650723584803056890462016641416764280647757198252037585987507918077670166921754922152261606683366241384114329576498993250367898675183984985216141113986739202387972252640913409420079695753426415732700382678974535408973892892351892942765474038511069385880708214251680852940834850338090113186659301769444732111487044192799470712825213860420226996216630864213517547944925766812902201332181297866401780770994721029548595976737395702811531996766549716821636527849248355745333218257451750893402252088774954177758251025584518466222399698521301526836210449194932891360155205810092262962724743078637960245072751638299507914772528308648820700010837392698974971322980763835955638943961666461255217972657437391488645379154009170264798363395814584539634186691068506441800068345736008933854393407024662584310059650255333679619330943172889723862014818965818169093308313339376099736701190455108301620481437569753035454814215509723354905853885098215985630746644282015170531930702156812802704343573928917921329982391317709966851259345775045473602481174982245378517500221687840056155644672646653449122456591981797080655861809140067124366220220004836798792239419558334405384986466197241669415478994315950388624217581386218279768167131666190506211608505155491503792053980574581445011805830438466334930978122975308463296561744923741624694037597151447684137885048875434413180139920352181819283288645874323916947313751482641331517733960751902576605953263977237552592429820518721776458282752996271848277429760083610333527157539649662153988670160636640962786726551726454833198341702280593312574787285880587618090351328198697955877049297546011170202939330304281304376316678819247994065524424911823984023352247581519839902135098649108423376993103762745143354458035570488519816752556635211273954414810303122100702820235878333976622135372851767951416919242871759169706838691938133736926183348874564604859266386465258557769877333001197119039451099899234405916885004749725487082777947076213822590010571111463408692988391400547902762364548894551147382665857030091383652373946558030448306731666547545446837408207007305490004032592221167756699642768577233649781152275216239479576046615024346502229505198983269760981919612311565508186783310793076863891481638321369795798802875071836001338668995099779495957835263843415094529433751003920305265896508407036876318479799745123279589219045415198529123919232156226291828040793707327221133212955255042623871396668566700297775454708909133927632073922551149689941165948624663656273557964652259980130726197214504686749116756739923600064583057765441288722316113213328440371011921554626046002094750198486688293641116922398224923647023780459390867425602784914877325264982556151793857284856592016073358036615537305484402705894398702084637729652911370672775931117878281215542621592861117487825114861168725063528546247507727644681572615288650387158828064186605967229289416624270519211542144015374362141723357079801303704104212906786450912756192135697501491946238835649293665929784581014744641944104072688348944851257713358564555939651818078064945874518897368555580409436089415651654631542207418368428262199968295675823164111531212995990559275483915578192515793797391901013271397275966128593147702666487132252915272411178256829517750772882582223630477227111380822437917109748896947167475992382171997130855742256885330705023075677783286410956491563051983304893445397007637684705636247940951873996163702989504569801368240070092156478647290620301141281283108129059773566466175544506308064473186261643471084996114943757194134947102657242275025821059451009806375411483551134282092736350566834324002836784054049982121681383555194219838879032910789909632686543450106712213997424461452605110391129382090179212183984366222805263784056737991272625637153020996808731901296626124345935082490793739017163888504098102488854812049551358591638290017988260327242415060591385898409094323663099253505767681536402956885530461064797054692056999348159348896281360347226781606434570894350259470064480628073849691411861789579612674733849228354022437166357514414671638284491816581580591802676891566219264467707467983346669928868855956157406995452951355581707278362231154143679661782079245111064987873094192683030972292861693060949563161861472475729092397752510063569148754187697036186908226099024247897119073547658003680623524435463737404195597742043198396636609657390264894022012418933581542099524508952109265762668690399284447809969947857525685185283122455280209526190812551562946136718350263379219204653264989058559538080584440776625412591050211474560596791086841768592352012227168329346605295386723128261038749437231197923948215951128661196537095520192514683342036954940221825071991778642948525192986767648238151388500935794863942358417533648314959872430435218767790886047741375924801695933305872810781123933890323373561724226694235654981387786344214419073487762199950515946054833995744475547662863519347914210846156536224800685512273959707373880054641769496583158712772952669904146521135893925290933310447809510063606702478742742613844270300971998493269333931026060873319124726336209756717382529201154699474899643342056084266824180439632684349492195227734348275156341959756140543905974061712299948260551824831669247466811371383868218602804465066984705836336736738661446029031498492064234910754601557645746876329431944453234751236420245781558402852269939660531140804939498302573825055080871997817952093403964553557356808613016116584126519161986573267966341410420719329964464460011884416411796907659769182869315584442975404249669914708421161547989197950722089826484386985159560038165869091400838805489606278973631527478743722705750328119674995438400018305104785305257323975796843510507487079445907140314981569402163389136625824673944627905811242349754163143415929508690837682573346853871829032135031912871614249276258888479517335771842422220467455954551903342474094334704006562156173155092678196900848071548567889392433898506758004925263732593269060246355475025580944248787793755829199431581571278094980765855931556559603709302636465940685316967447678899232749123738977466576901964350272483907877303029365610746197437224261109761917443904754173529332075566927896006446947449392632053368010785822574441700577855525791849733864367637555303594862272863805846211384212163891463680111684180400438759213390932479643032422079347192519320738111247764756083359124608284017513869422441460238202275654976859514355250050874001656625346624094988879537328651719272073208606595452926024679957962663906430961602002759133533433130128087901334687582751779081064359841420499694347915097978637120617409367468031551449220802160975191588344521088765505663047214980952273035618082684084232247258530015049361623332236807734894122030787426155407617115750415688427170883748559739058556799502615643622248016141471432102240192535967381938783895724615244302358678205345588131960968654452015541986749208035104872466815776122826693846630698189114610395095268319934764010786814759165184360931528483176596391576583927304069002110026197465694864956329675725427816230059737988077522575546171642668881534968429025819417277211891750801105635008571147287772262380858330957940900444673321961658093479301702809604000471277741076086306980952426074335957769552373231817329326026222050613350074260944405369933198006493883128054264126602190731437357478438782826821073944137329119175522079611955695498747508330456071707576255050592852725713380177983852454139465887220632764986932429503542372991443752835122816694374144782498561628486135689622582160421205191797458671599052001448924220615701854380381968712619710473491917124059507789367562833283044740767124734601782942369609472125446511982759175915857360455644680592136262975602756695729843700505611961461233243168858507085850105321561076546627356705662222946522895683666189259516445396864740390329580216976417571220927812266107652423434143032944795427993831772647548210087536842585845949009756914211176641539554756208674587048133568930333263213811317947485800260722664414106576359262389634720406573747670517646125747210833865112757202290773078290568954549623217543071307231898026414347136918611949947969407667349411786913044721207841747331431530372195036025903510666111347222026624912271997502524441639556359593307178932845621708224852190553700932643337658924402300821990405427419105799873257791947168884700463621682956557052964102543437745243113571242841326603087172087670720077557144335486985501660033154447361076703293557150810768886166481141698798219998051908268027403097229838314463619239630200319750482950836997277277128554223928094069982210827855698768338327525786127763253064322912978728139064210959651656011861673115152412891148703075958014521799786180519096307929086194875315318796827571848442255443522966743230342602200981185114311016242161563289844208412836123918390439456105531623385245152142116932214481359507104725653182690465106051020093256467234519325075906844365875397292313479525460135389369921990782029357800110396220598593480222739081541455815396402940203843316390991773244353002246231781030924017736171295064934917344380775072681415949863032442793381843716541366907486258237507731624490768358897009466048196945500088482642959536564089545568502517977399129552872556996393011969161623671905999167805262814744089318725911224734325355833543105163080186082762582129216785335686569136197059587666413988140191731403707638349006060408622531099178413976315108438531776594160412608897261426856779056702686382011245722109233374969784470677806448497684944020393880567194604947437052042150490618581196244169107834047711256441259003691396750865340501993328772695115760685088876715342490049601238875174935780388678661726681499539997226074452358372513997736336636442462842468729818483809269047218581336205857147502177614975966143183377249238868637211915439164311672362345427155976406944001301468068543181615457050265666829247696274314558881785425246323150544065246866579633026227254594970824223279961287647969278581628137691421583606432649113796753731701272646131662811312612356718314125043367169082025092888870524749671894264804684614952119868443057140179225525157666292455406958666919646479103084820531181391238410099701079938314614118516853279241089542556632028163216241658318152187564548458230785004758546950602131851928984977602833069369627952030388825865583966978198533755888136885660925913821472352650841647046321917337107390994124260157883278309668526416032851846098324347451345711315081876919570938504809268328925136418822911787527564777924024430686785983990026229961388653617810411534888824743163166798067816475248527241326085007965428120333287525757401884495439333046990654773177591597296418966275911879814083957914431813068266049077156705210114485580143830373844439060019227074844544092870853563983740187783884410202728339973048630531501478719560055811782679286554476429245104090855005114010782426611763717239798345666032479359294600704842971057152066298076875095694892232688640933787060015037855455564981756368233010132476710837812353941966387789265843385390262254926093929788283205570453759264270239755304171316612308860762503066811940061085112182978858847343232062174477388450944975427880202349168893061273439629533482485120203725080273239765060484396405491220528552716687803573164833359443310316301370069229437441732538831595113608535360942118133946242684451089062649354425181294258836024660901741356907064440741071130760677663674425782382631137247641104481758022284317230436373399086466245358473640031952247359605704639968741239185035582546629854465883702232182032112904951648104299706956109587154680144123875588908880646113207193026969429529045410894350935221111034095596839814776965532999530189974705404231903978082383849600745317719228496693015054716636083108781257081043230489837440167958749249076392042443463859691122603699397457492014600340151579979990389519342398356446249968319669424735616504964066008051977749990361948099087477269739783931708300964625106220873765638560074170425357753989695499850954253781696596870743441798937588578630108059110176611521691433914113315142821659833333772529135199128424012489167604384198058709793211248391736841224046062555119279328636097720184720976704284466445108374482107201576863143223244840704981479322183633168959279373601834519455827869661733598487049263075082210495956551655787025818413680096610181888166669329108793275808188997642460755185527370096062936662391069372354087864533586936293148508916153195814013430567864442452502341864559936849917131609071024567877549228336880722302924789325053031618670286322478421178113937457329212630650955631477293416115568721534025065319733723341680720332401473056301365876076046834883110372856848523171290410300329792773579199305969260168835555439996398456789670132194077595130074567348058674223946993068744981638781948118211698615246815318924486284144942601771044238097621443813559700260712531845643810082723161562686213742517196727522008131524768538612914079419162044077015778368148003139541932283175183931440302670201809023703186941437749688850667640914426908822816350975751364029267796540203989560595145311500198381533692638098597469320899387470792597247303123218843118838134693369686972171020713236602137184502973658526139677734053051250772814856222419468447801612060933659798930027953511368328225289975409616331012391275870698546320530575941926153624775126781017845360869647143554506212605942858650195950172311688266034110524830188756005153524456445539656549433155193120498935575827424195712577339836138091168861371875912564563737989706524322509632536521057599532557335352904513140812400783532299127342721622561609734646003733287642701526557020207219968031175799438714157739740913137008467492675443194760348257717610226883205616094129487603134440932093908991416749200606190424159390724451793191583808521915124097354433919823642095521908653748167716661522215639063814182559813308565063810760658163147386025549121635433570741526381067777415096407573462887066385874109623496036780233436034617141943876331757407758855893739101261985299436222248655724752205666891262365298512026107377625268339876052154413541845856584344622201775256462752688772799176896633355818989840194480802961687764417302802437578447886352064114484405796596495365878102008812455423300057586837824139864687399034580816435480705072963963503615141609889284430138457123636282006887663714405684500859490090934092761734262973656220288855045647378560575719090486169177860366902146223293959011244156425646756370109902184815414885256590675322345787241020818376328737771500441150299218751983691706068690391460346608096009935059685924428462497686798128620407746387613039884919708304322915548180346982609155162052305045941592381789671977096725265383142364201601390365151885696400158558539472437672503864699473947942506378678702996208239637355250850545316337663479318915864780706212499568818646759199250452114298965333795877897209783797152528012973579650715241250461515217606334777965605847188670623048006196235177081972952617323007847177603087118719580835832697870246671348100559339608659218713559223712376213121418020572228429167271105953535272692009396946147390415509627401293548835119556049302814645716088813048091063472715800518610118209483147401842679699307783237571180151500131937118549275320339971826598463834048908753166421155973612527065414028210273909529523658782248924967357234857580487801455760408545834347762412676450863423550924731999363982346012996393763263657146395211116833693010032997485135510553608981858478783888030499962326159807317591787427464486219324845742994830725906365798717761340718590991720892511786140123994298198283328198081155638732659229660274149042620757071783553659643896251491697046606979441520894586713909444042436442418502735052068126956099323283683653396234398956088401331051457130491877410925443328911591920196328811836146310396040179430397033871384536819627701053889163902919681047521299806951670281318951973563864666523882202745391980650855745521523505074383472615557863251396249461061728454064892485748678906962390109952367697967400347733050088803176688233480802739801801073954489734757107315761810815077394487287077079151122179654416561105653383748019824582861934306859774965004926575547531052440440347424725939571591616900459136517665472087516544301869738788069650421869088011021986617009256859442819226955854936681436413272636612603840545257301182537504267154679480435479238342870980282785521666305526775723316555227019529389257671764116764734195656858237168574795458899930162175372094740780771994429862454270157722733508945906913372940607724519848175009830551274121966373600785041090288077268045067009688421815334837904693983727377359818250265318339587755887212041395434377107899677386824780634959147910645376899760103897814404559735794446961903709859638072068175485394582387910122529238250613932129228244815847129085020688667260430678700284026177817930170985465553425672408430165069392096802224409461517817309847552448419659574353556146982957844852721852747361521774054562136805885836004166731474050144016673729537503907861445359051657090354618907751574214931901086500705984066153512544350838210056113985080808343969039662230909448851335573075432173763801267136176409471284643193855477771373693475429304982188700223794064457654719751187430485505039572831917756552336307688283642610486424592942858673701590591479023223791079935127259975691086501853580344918173693562429533082144532016460137787230255994858455931442400398589266438554846580403784828527499000642828898296289140686503352256601015141818373078326057348581454067150421808094473119545858107828001598760345117477408529436268249140221280404115282554070525127511787882046889974594905617451216336185977201114173623296080380250455247980990128498845831075048332606917083524861740832020586081407362664119225064865790145965889393284866267947530103395506167459620493642949380971381684301390629496850331679171718995832405295143218941451907944603007672467986018207087892680999967822142681756073765015059357256169027891657686664284114286447592018854030720357423881156496373922737660720340670668360478812317196209344827569602346975917590304282439385822071128697649718715658260017443310984213389850257102260032666559674038293045834894145847572597194065279520502424369316966169909762560214096988240594677747900275972357789190430730477612967841316120271861188332826149787595166842172923083732052597369245334444171741282564643195760278740661850918793347928842074462074692674644387834812866411245968756081155411330068407531633121860002501381356263516341148738204399563470338738357718911891588210688908726142727743537548349755344170887428649017122357415336478218721972826581294867034433992317402915069653607440804097509106628123244109788429231817212466929133303693283116539788815310164186689475315486752276633452188834943919896487818918194492795655797862124736206501798094030590545272700003124187549936340859085643328958010917917505945194044096694455926266265748082500533742424674924297168161328965509776924755475545688758693634013064976661045303493648088470089658795353569723435718901746990126443504628970536136683291477708510225653656805749739226771565703540936465763396066529731155823574530911868829414638443303951952541237260083450243545584268450884865643223304950517658627613037001997594277353564991053508493724834318561352328934665405819803518651122554150929742939071936676552103764034621344058917091459989054219462247147419518062404934636500179694649653682422191693530495293372288795099520147107661725892634097190569987016479978084102933685526226409977213474026099850942818961176430511956191158150021964673155904053101293521454811197746260234555265229796149517274570824312819869908914080947644410466793915558820727171988689330039204939438826390574604687063913159341328505858132462941531938584021083270634184543852719637285940215515688125328121445752550833375071897164606523012361149762138032352062858173139281493371417198415281331738579046394769769483855036127415866507652860405812832434570578056695231298191729294436432596604408272723825338246801212659958425325216005564735738132665652203525332610818476710052416753232675234794125329436863579213629388458514383857197645589666621495391943371815648751406201321222083820264982048952758750283147257009186710783815628761720024739645485029289795959119214020188229923688135268748102787594667152582026445317380938790552453861738304394370686795938400713654896217487655731892193135512955875303105663171567577915495938216469062875280977970556594085090228865448471864221506877482935333874684600157677505828700341181732717578561932713857038535577157814653539596671768639243056390495430572026345444746733227573422095921232407009858696251707289524857386783357900839917844087892167608267876767432686427333603849083253295577054444798405141493795746830338224457729477970392909482313189636984449670742339112765473855639254739355530385116513773033929497769846434208592989150713633240400799443478902335508486318075689216485177678457589823166819503449927033843748444761935394851319120000512776874197518985665686696178043711339265615169149756838701131124518435170545357970998684311589911721492647329849294250818067270309076825843186276292375655278508393008577759545836795481862492272336431586817613601273699021146450609346681807597241989915199522612747092586091995320872511931592003183648632530828032000030259335695482076940732491022268144152495084783982312546979255779081142549513863496599932844713911598471677129709253943629900259283695396071697676737210940851237123029643581477982681209988046100921310227589536742022635591255173004949291065090816554713327270567011747387862782408052709514258653451716553476722438257173764766244200196778193315237683550884068625624765477412497563704335123278935845823548157103306349915753131715857956051658151365909637158612511350976615111377499107160470958448500339015130113217669782497194860370096651366696714219433826533448870570761326733994328388234324651581255861552744166592732200917907079719464102708967015211751268044689921590451149020332225712677529172183561502785765773444475288895527309271738694639309665540565354244889579465303547495288875230331112116098745308080302459445597116784879019132245160308931073668849655256563739729394789795394414900951148465638343494253143222565638372154366216800353694896663017414211033876893859615107814695916995495016369318866097750537398429623690807957436775800709237922900372238420792256931617510327000406919046273846778058299129834936731603370891928139661060156798310636047453006641494436546536020367437657173647975046383121818880082818268013883247252255667392037722177568658916407616683186605437812059815084202034584399865473617038215350869077435924518316663202084955515139083185423215317180401766917229787842308757218934579590821374133573993348232832907590596223305946737995105627311945405377997617502798566793920569943631943666589416441520150834173516234065059856276131417583796324524822379453239535883775845650732955566483760745261297777411512928096563074352692340451645231555678838510774456986006181370949857059496723708414641196122778000663746618284571514382422002401664777452622940274621236158455701040556802080325508846864886980117112250458672169421099514938050303342803108352221850209144096006146639612181181849008161403973598911705614481052205597028824802026535389325758723232500226884885548854923976663988502065443456204134691794473613550460472743705761873991979140371292697599123044675163738432354090584443737974712187873779813644392206314428394127290210004966841170903500018149140055573886784656158536309131347749085560696516796172954335110204107835827557144510764671348870005936264371499254446035398404626646733073965234977429942884258180126134489119610588850465096610135324995861950941999179687898173301611537638903325799872114082911336559866730475630455518883289387217685039031609804681310021236003681175339797421692040445132504186145378549151137499970609344345757092278640720293798994502422522168144633692537396944102596826897158411807598486312123219126646857160590998761585898038493783562989090063044700385990991145829944253216034037182240226363532056586305646918589024668408768620234732904710591110416417644310460981183214960268056536272650937892685421109007107419123150423942028357021243360849880553330121538862036033554649653694207628008986934991658847123813336409784668476978122417174056790547813059543048649199693926079757310664322241686355205189354713443807894059754375874298228100413060045329376147185836222131814878465019933164445028863196659404670527259193090190776622765247196448770416014802529222689038587500649674392835566766858397121343590503005024724302955519181715558837266617022005584836312205708755564017805212268567060703635614261425021962532655286299122821506303443385391749714510104757387871316275832291672842947257121743837161153928795815944707323303646274400217575499376289495512101067721959193902437381425768924774617950240732941837336143518286037280241075357452775553168999961137313455295686856835662503016361531818838255676375962253703817560191676659286376836211004001822246238518192972002809759897723492484500047299607361016128981021724548835284782525617378052331340052247210173424839584119011973764590338021609409659847191522531567876997534741509005090530949001409547452812759406992393152709787748360053224829310550639430058857014402222566141933443624643596932028739464217995128086289219741602943396679326494779743222505413645635872447705368741635645031464515014087216523590593007305543530201741536248586800202584081709895627544953138165101514514806362807097323130222290030041363730297676258187128995951147195032866592782418054709792834277464135753302026688141673470048320629557760868724708785346302834205575602270281366744418449011980332426160907680957607919991823735348050545134849134052442621979959733148461431509917836897251940796850803857029627029068156229282213679063137091880651353558671703127530176937676782241950576071980941840059916849583116987123014143418425357945045687508095732876993169848855037388119976439104200837234529398218223677984773241765130398447354643973201283634729468519156857854115109012811942953195385372815294854780297676619871816256458377681209184381486600307414723837564172147511425531703020105054865635917838584290705489628486381093920464292992856299458991247022106430062713514543219830426477357283235171577303389286103026583028012280234646133207839629423063414214760581458953911286419875416412449729734235037729108044286624447112817065927920725332213923519050700884739439616331655835661988190823259230173280653811372159500884004796990394098460898913076255544723519511349588115298075315035479510488625680455476796063785523127878544105228188480295746467898485312411341966229416987162844529741769011127454089936377818800316829752649540880534884224575629233272247023877630337195333235863371644157137537539503921370729278015776851311938745513764796693549350259534439080637971226011796982432155318746925749320799515708410197247996236116588560414179593296638792554873309359998041504562071504089375452540399413833002616534290870885553407951952185503750860710116732773135415494171444062564481758175600526694413184214429653899149422689015776449572800065679989901340436698378899682657972000183291532917644672772745911137917874581335869940325555649415096253410161786873119909917198339635322132944845426495637340082539835050087309576018382118249739639776499585353309250800274498588879951797540253140719290569847982881439864845184295456775407914248384928974942378274415317835044372783342389305843592224411004535587164077527641960497876503233456510863293419843440621492721485128134757359307779517336656154153929774402737982100362413512120735096862498170603806006889593900690755151577866724024035928850182738123288431520011749756993336841233159479500690408289065229205433739276656137914609599138236209110817246651687775523672291681156102459713123337470838496134979671423525993487768969304649959457495446727853293153334979435359810715032708305015981157122916261802122624977860635163466418931197539063729223552082139537207092778506734692228688818966018121490567422654604983846123068689354130174261244738231470767661721212519334835764945513257179410954903231450003507557822192736051688905372769170053236188405114150856909250162366716448188203925766727076840242917491789158507838817152874706664229248286695044530006431090010109296952021390412302944670353899477522194449552996407747068839883755740441688597169988038707916253454907552297487352499723982798858917582682715167476395823438202712014320264977729390835451418026089261386014029134059257233566303988167765751946683230928723821309064660631428346378368370665630389840409345829399609142042858401835207206075845356536416659190037289323938104405497403513350475485385811566623139949199621880372089011311201742585346056828909609487079342556960734624460712072278105200734372116448876972062748689869281144020877453945728382627532753614700986133706652212691034401983524024367213658271971724456323859090868441293065148512917082604369045963790743395101371679104785136093835860046190333978591992758165414829435130188927563261612632838076326508285488607368085068485128809256709964993707339185524550105046868592269487691823409820561404632066954162494438195468874926107029257958079842060580687247930385332415078819948686756400325017644244219367224141998283284525435805194147123225801975408387579812265394342936890368666258362290772094708975613314063504205813442172552185754214866320759662538860801825576362840782051211039769327374080496027679208617989633276982441085068939162855930570930888701099274736006535648802700877109922890796641359473849755836630802809486228616379067555250928725634699005427835989442462958163592212601127935670984637542390123177839539914195441803868813800064249547130973331295700690868297044241757359553262222191530380902596959855664691656566071955942949784865687038258150126448679027137104547113644231654510784987423061171185815547471298244085437605939031766277988444756060181327469558969355341017597377044470468171926664761848610274253390225709464806627880437455685338914100683990495750156810432068606492264288408521751287436489843126568853050535123345956299718099624910062372660807485338434559071179140523524082403183114109216448275306417915711348030950374182467744767215811465038464925440867313747001917129098847756254691627581787117982135390431448164370436972909373198051887586678869765181856351948217254029602711948254693441580500488112874773523357904435554473250632591792491056606598004640166761669130787453360972862158018053705004493919105652452634103486814888287236884456682940010774577940554156774074081455146299121511240270872546126402664989660266495419806422281084021027430550961410293160877934932399771833044799810458937296553953366275343064100721034476462840370241468721078723054713566200330617373156781336252741429785220442082726036807611526240004775306673002079577842882987033637605629062145600497333643873665240648699733301406627813675491583027058848298792114591075118884092203160143415984844560868443454501559136214336139584583127424168148118356292657460338137388007592132437041186460006376847239129945281655297732487144521639978374878889745178644478168707563091996458574180414663362034859602914251813874815805486802006723963201976098600774857541288698316215155732969340420735792430301512628588199901411511140255052110388309019216876140220197787417011380543369546142678929229757164338018385489840224414428777182302148218760456136841193666948241250312454520373834880014195861876669471957536385500403632303602890355767953209991210859029787141333266766300920135752987789631781030064921546590951316153606678862717742052794078818660640627353940762589269460563543388713502621971582403884850305527394024278104388974444847596131945201159518548481036838367347710298089011429228119210593149960693637449661181601776838550161122344218196147408626540749561872965259101997012501543430396049191053306640931318341780269191477404215309712015841386039500140165682478903328154042199199972270730591146697594114270936827352231612079187547742100994672317858316047085728865030109741678306286323814226690056823572284853992638014855889905804849379856941916461850972065707090767053552907502725445321087278810954285555590800953144639026259303003514481075808735587207912342343705479592150657301022129567838511951151527164730194974652386722570142331934259592751737725564566569026009218175094454102750811949472412222874767204485994806979415875131605320759800054495104879840692934263048975483815053667296752633406783144937833175961272990826557435262766563134668027536268737179808950515533754620196792071280897423548388313945953462604029384427428154169041731652796916365316012040450338863109869299516064058433670485097488593134476775177952884191369594693047499342857554187505368058344573502562259926251820403958291787204626737502657856754847239428387641831602250464700234615566282670103525201482693785830642263473480955443494868465736438342725619352891528533332642510590753462490814825443806856867723647781748319678656933099957494524936227698526618503349665369970238823524231338193983944570949327821588649669857441392665907012806303748879710970871544518140436937895944620310176535375691081382248687959990656107105065422991413407550169399262022136028892979335864956201267797480303627395149249951911624035542143211399142491531136018579111255021978782672921028937896101890775852314502987266165476719721386668560795242806415778154972179993504708568151006566951455699497762612967860882664636300096189245340203070890341546908982702132866844670050200621328433698619875387434179449004514081558553496729733325524577314399835190676536934368277804662487406467238291016390913294559927118538555252274078598426776701003040648708566874022369050919629370298916818626226825920569529325492965171400864279987474972010161637449360442858528531253454048774383694294560702369184870346942904763149933413774598766225862693910429482488869142518911749732586972475191829721339790280834684322360917776534246455894473521860277524418499989035736454925211488312919676584369439435928470931212638730446904971213966182551530109772613837314838785099120776231795045215792878154872244461855446873994035052839546620424867185855752513305078922896658802382009891039778664321565902202560435098896261414892259578861949296071817222419322814426614556073530250570314721026241745904175341393841199158328738769681369941682612848049814127711889603531390599059973880216434478641969544315923997156702390312116630472806162556272008756695150302679926179907923809453276517846182982817968697412036154321063006052226412428623488007949613655078878678166012469150334609708898039317872617328796055804482378328936882656252038886045558822730032369126755396366157067012898774381792745863779345279682603030554827729707270228518573731853552705717895718382807105668028236986675493896072006095194192981630341301614780354360220376038777123414786738461299116815117045535855629644987839877286232495889146898135023078172392603104351065215003097167289503478869390892556768290742046271405825926579008354394394837248343416294146575331317171113113878271584329372996213684191792616279473195025049338968181571719317267994859303218163036974891316833241780234779489304064635993591664503675851985891273105324595519318081062478657312867989980867750750940539472155014141521169703478489963734077872291418646573638021925931071301996959827118100839456067604323747137353537221579207805856649890605115750279009854427266058560762385717665962622012931834678461441098456822621729809968407775906476987347198602172889343004694429014045182772778165478736710849639671216795516174265039037125967801283263129303258846911925959312903499861755873529893589047859148968037538905798177458496386471706135766388198803772383605205679089293495209649643573047490029341350727718561266792447571708569321245649236046104032602793150743459107401180794949736217629631988511017083746671937361724745133712638635160941941465682295771374853638122472052364618229440546810912687620469304288332260042172551542357821399846876419391107366635950280150722596306507068326551863103200843552700598918081359348759050302839179828806201527866430515182077097119755559466712347500114028769401361422208637103525962856916516424966083264801740305787135019814042227585713542154279243594872282798477151100688017162926774085180309689699030664970234723479340226743345176986826118609320275141112130744246672583614569655585990866159164570320926800640011946154073886459240845080824043416184035000961681764894661513929493509950938146154359910982238606135270126471696585095614946136668774462287433869176971490717338426220430209430777051848792458292095275786141456975745436655440147814659954185980456199176286222995087641337634647672191407848082281623437310958263306998317898217480192411448252522891230709655420228277791777253908448333976171219031067024077288728699758911930059140406973701131520193189233632472838310617200544172865427023918409359632828361677224552104614939276688913027942690607394438674511025611685596623594873759022709309764727264220600867632141265095464407490438073210290874451628793627627986953535867913653954584800048720714523028269592999991564359297050019272451267140603339908238753404736477716781447075837391825586048926766530885666702399845163849677786820004266593309080533026042118128458463652718152605889271327250011676224454580057244116504494063245777177717814241407555994951496597151549225958596388794101480631348849846157636354113514476756854115320708791078947083436972780819808655791973551953096166309392000593673756129774206218297520872390816950269244067756420755156723573330877387436367238445406343415203434430674805781889207674228094632021964525610257806218946580783770563237903884257656521072249942521846963297284098047636815197858813042282620808412996666654856453444145033224318536470483578360676509723878034713172285810514192297962632258781642529111403060673305203795664410839501230952129660196674353936056674457213916889007658201342876173477251315372809972013136269349199727687550572819835749741614370913524477661048315208088910849352108699852410938332949257426430972185221708421223563302547509422457823268595485558894457695284228775378453830130310024707103262541734160516764295879174790421826036806482213444969805071442561201056288377652366168607662013566085538919898444272368338102963837555138640819765856610734475168084412601423307805300715055195844839392614889818445560940019474641103230185428492910553420763652579555008230925248485045913987017532275673474246580101741718692627256058418227879402697736437244439980937377301612320102976450353514963934679569334286091101854636591608867630581622413624367521192885679545810957266223127114719643913819806837560103274813419587805873548013486289447007049292409806730177965092320447812777459566098752978915653660317256377298115694167253470725973293722334327107901968651017070813245985394666199595832404411323863105101284683465759438806904166637072690934127793727846089841233535956434021734203232387345325812501635128875799051006138444175449169249591522314160400903235958831346835257594873956219224928569294054783557215943344988743597038947446646493118260333167786579830017086474289817233189465057828927487352495717198682061603763837341392865666334850824718920286912026396608786514924562248708385311686594266565704411501743472113870443089411926873111234641366023843872787777939794022337074220575232646125908174696416148654039087868280582905432086627131436601394919892543507563967304495962112489927694170426688241156649943506463806074185412946622198212749879435934693309423372864677117738776836069341626469744620599197824595250084141630222076784435260345379745673913678796998792299892326612656300930700846994175199715959264308667939714427407141712026853056024782641191305570520749600053617479175658875844742419006747137884975813086053408848917521216107127573585576867896039195506640625890026161158543910419943322621348404611364411478665160817738484254995154830444124542580796108671223257796978807314907899458814684483152497084783730020317314042819043425414225303886632235207854952691715606576302131576462245966189568007977447084232349258287469416295642695374269947915788647892414111885675149469211620617474855768188511881169114810561338964772742521857528625998707644024445612082377207702734329830942377375435521516732765501275654082948783693350115737257531667862891945191097973627736640509420494328810396662278054490939049984926462308531777552757472219154026994057705936670441626437606224179123046338416694679977550365567957903437979475054028867133335159063186419131674082804263844821054441893445770673549978606795768906413298466319915773266538293728931765546967201097253603603786097263220176246264932166861218751539360570677013643306478028930670500641063536316266069201083998553054571084704883347344618367761233936162762344058755177499320590499387466302738384552506283592460484121917013210121699396188150319135413941275030047822286926063261578012852943350354131138925991498386835843997645835055484668531118153964191250631171058695553891058999989910375832102015911995010485718346767475677982247474242964930087051270423837680656045436333818184807056034081486930954258177050772691213820681844117394952940846094578063771293334123064766913843814328808497369961075587377601195488440139344587986386446791481566916101524551637455876034925934008018594152476817761555207593755411611214120610108788213248052924476203069188364206583329186808004107879130718420135564316748641724400083429435038090284085907666167061302486528015245674608577956857338225156526907728280337157647165569647457962650389818857303894836715134812230720744422040712334922328120717435032308946653220007187050043267843557854277257348503234881411292065348791996999225032484521507492150739443272826525844770926045787607422685350842274731259381937841124094671531948669730342825984816472043853774793318466677324310499738725174598667751062644706677706251309428469539003369511264543126796028411950250706150628629594504356745801323227963618083240523330966506513877494337373991678920684711548399171335681416832414527166050622364971926658345751966670829704657238138692411779275420550615855062659275074386021196574842279478924748018389329591718640437894735917137904104660244792647438445965731184575622771674022309675974066437316052792927542868686667561735523018900562046523844366931180654684267075300092206629530624332525758808531103344614276977903371823662253014897944408732963399217011269656945942152049056532269214375142439254621603456970139483689198950488867353361454379444388764613544635152348238871659211856027909825466914149437271325479524375866583321528746817241579460637002563612551817710542187042167720766573525638821062212337124510107201760589696881908482991685662201166172109617958532953230875334092366706340634963207032797018952695524596465130266152402697721332212704316399215991817997608424069817744524580544315640868323345147729720509081518741645707926760037752160456379049023454951486307007110967053553387610775078448027057652538086231732966547393625889803207722568092732707433690937668618548938038071024171004400973902868720961993767432237163795384262016329262124292973030384477211532293670365620031030335672079041252390573323518330487583274081884771861709520341333650150617475858414623085647907336461939387017904556822620725423173517480270684627451899960715552156009342718269749726718839061451232809505799177357342778461114104109919689157796775840669305313423726083298921224943609578371703577064356102274291306112975523638852560798339426470249629323192263269909395685669203136929910422356632355551624004648520609556696824179755594970593015994016173053744084012033645146528851723312257075079405107397459859572945386310250449939313421999708461637111904586836148691567683735999359932535058563016571312958639325373533125363204974668217239029579252947130524553085667289226019639731809519775930559065017778252901551831587179711097566165513612940633392764997384383474519128269043536789692413080277637715627411203150622072673987864495277428039599652532303556532314712821344560414226024246145696610693602871030494702160933713825523914114969971910384899040784129197157201405398223285037640259724975359597630359656947842084764594245770366294612402655112853841500703443923572310474502269316090553033305385287671605094347575478837457902662393277764187984925334084534316994161104366932058630986038227488490971143997071610496351733312203523907578104140657334028960561559848329350223122137434083094019828904065458267420188413663574989017564067598683758573242540081814343708382316855992835875936836204557948214014611041247342736692756945263032865355056900060221139611729157347320723476409814236174398403002479822326824221146443872412383295094792380715534177206369508213561292248937592006718710166558755324907234108728350829272482972503878079770301452459650138372393737233267779557117924881424754632345073305235901364941412262025560559893462580994547232050223420716454734236445351008043158593737958822193174464719993653076164298631347677530441172517817208955803483364805673197435139443180377589513256661702965788341612847954789227086768156705260260236800749340588271603512892242895577725401136808051332927425938306348552253171770268286051301179326334830575374579167361601165340534712999777211643227556332135650279978229188038799447582771829582984286944491417158741672053012088498648467515255646134793510021445220072975338345591348398414464805301363383905501840848794210765588008668426160925487118284351900678675336267264962897279618197502988363132570651038279037625327796830438333786813111867111482476678107708554904850586295568195611415862082787683418708338576714282064049453315285689471482694320143812549945373793575071771245764936115644935857780294727628340826740296757844106268783203983682267920534803856266568027251696973829842578764933984406298530838773259297420886974859891835049361687853347943506740187577445546812370071477542806340234379689455853629007553967512501344575163559466374574418059688822132301474065351974665360998876485413253036146342359523007548553438510807560128282789475129428411394527285913416771590097237548906797786539407161189730099687641709039741305821992619077188880939909268107118546251897425786383660770130155418529480323769600208242051555326841847058210924228307196699926911786622665069404403634410740641318684832009730996505610713502895912676398605305440377347455446727317355265639297243200516837610141277293030740906068390066377387206244027550527126769764681475092416077254402238040672547211623792297060798398119604858681628543995967344380261247087044876635759119051135570113301833194906066751176280613558749949621227538202892573811916669843611899147774922437225258380751418364840837031926401790969692818317333693654386372031795192620230462082512650698857927609228400599159674869846603849246581596397010650280938922126703470353798103246297052209052427916768190659014094282782833424320233836922759095735994781345004196282310863725639050574863713243592881023413513705162764536059583014041062697807441876823487692521594898243823434619440918389219224538727021051949946775865563781945235376411727579127741438851761280847175011167898778754855463565747724347710542450142094692035619627019143987713794885237028639138355914940611350420734666627991887488946304557547743926488324932978975662470610052725506764258800577472872007899745709027984627279115481504042225585451238346152680786174479460152400850026130003993960229468437925313928759981828188970880242681809134067049496952749074806021420026049080374397092217011577742592898539902565681546869352725763915950932258323399115443593000385635430785877785863548990466658989044817138512219423447587896297850540735535931662080508780799438947033404098589828284535795668144332248548122806232984763239594845090980291656261851441442287237219036797627988003573539527280464096692390002997797503159881378961489776042155336426212614693044246087881553896066656598592781422652485392006856903489746094110047730319756515848592317087205830468225064358700213361137313617941497542514566049978672760330967051500743759819438366575223900079486867809684945076745626448170412792957415057613397277276468681374952023856500709980790948218121320938681541231533557128935177748786147167938287863014790574652990518155382107602859130155970623858132756441800064719690857379238668235079633078471660026450720604697101700790787587569365771906869845732100020758021316586691006550444481758504742865370088595504859046757763847436911091960408611826787038175129916200407813905492704866247316521371226931525157129251964787129775669243299992474495926684570672848153096605049159335589072497314656330352808979313322635695432901308728057548290096799213356375251092839158911573067697801846956506865090931384099629696523437038821492092322586235499072254205960469784258786759053236522898306489120868329377481046452767592190629765592893498926410276481748936775111133804396447381057748452200682937838827327359021398687778874968674614594169643346450131859047197764215540752395195728868350676788121111187232859824118826779078235469857981962729486639371496928345779212227583614195092167093063343814939440159495620344063659759553320594548060065967590044365179318068792096257685737504176111503588946274296534387347996391954323858817206750802382635265688005020151734982367932304120678892924941464872775615506592515756874956878191039748465655623209973659639455027832608582226909319761342402692861709599439604793605486564926065128431438422926178636216791375346454069810432406443145196249031919409158890793938064698350264980369790123464890059429640284725252791606250883012844719346885940632799322933748487715421825439508226399032769646616876987957761155495239699945632214272460790870347343583727110419631037570528745858801842779571753748865662819284606733097418551681007251003088941955426669191357625963372471872855116015456340159152517447066609997009866793685116782011675777659183033099829909996066413102992501130577014549945850247068812102202455500757847305203238876550690864846969301235266886136394064790451898804482882469768927391096833380325537651324186937483644233088924487597019518030708872076544422790781158670406189203963224201326725865653086719930978577974402859564940971524059580911560977417809188354007977539233072705308764015022285878741056309696865125350979408990256553759111164652309717460080073192191418252781076643224439096465093916944720604369865579122326433080001777834770647747802293418889548669384093013413959301142977549288406636767879908283907868755764801196352718038649684618735568032357719791063685769412096419713677589418089941440357061305535103056960512653041649742641132530047815531998274465890980985875808614713689566162321939653792425648715656120285216930126701767698569414720813432696316148824205268144665105303761827389272733810213950971225586375639207056533513277385839459041323301403601720755868117621478455043008892501238808832993496908396173137196958511804926031873345724629906268602491884543732794032817403008901660682275698937991623243911288058068580051003509055728241603298766796109147651846591469189022325259029342102822699928874485202620221593257145357475558631642410658049548731612153265843934888491721940900458409141004017708876842853750277752368711478029039563456017611185221051773227076300459295279921896867855431253601000126224704104567710693779895042339718239901540529957206947202746505995226891994137452255682589717565030380585680447354256927292436706524086313710808179557605211427075904449363552808524051147627575460361014470857909005247669884640244698163371110176750959802665580553023551678258978956731373492056078073570765843720634443460494789336910540181927790929710032444882115964024099197763714567953523696687182985088910111083946066340509163344511265261151170720473214532770951060587963978514082954554568665530722294586778425811722080415104230899621851520205945262167317081124118916897413003689857210689115235486075437773984849175485732042779425311126276502394062018108693929061916826332437297640645603861552206313334335709453136989366143797773489568001993411596183063873930089357450555312962448916474712152209448778966329743003539696204264225163241689080939952509362482454076021913101230518288624968312770368288141448850554991690208598920943005410879386707491288297008799496703571970053635235078305650180721174836293676725567697225820234209423291977575013342749032739020771453970162561223359709869113325311103129199062735444970065450758810305116714381271628858614500493509066553782102370667446293710602082729826410776035313158723888001321424461763510525294411456246381918628645493783533935217988864269850534589604559654147960134913283979480445699646819358710174478372830633484610042743385894542597186728909065968420100180915164901248614743422943679664339848948260376029941505175273223969705452508444575578691202719351003164131115651524472467697064569447073564985222341885562667900247506041218674291312385528741555182442312160203361202191095494847791247482643948840455098616660048684448916064260233708144218902783815635516728134294259434813187315717761553117300668153521840744004480984230568540054934316522246626455093381638353946511297257691883522364133073795269383689702106646100047977421515461030568862649758791629960983877342855827428166276058978035601860302649161718166898480114088971249939354972749769196912634873804972019037296113262261557774506051074332427002257231327111425646898903512341769412384664839327382937418311687002711443364089164927781715139420435930145554127200682084056261321880888678233809193559165695125729583088952458642506475195006577671216695230544856236427289511851503639500174876421722966376145721344886998303611603405031460737304393322451997420293362606542719013107905190217874296262904524396987616259393676288835927722214799089487442696349972265669970512879105402643178395356264354093264469878030369081637351635045197558211603536140362998746050277189058123499169469260610085749537022366355068917913855814173869362357641396303436816639730308093432617647202711775293048703472183902744053873310573553535297468218688612207065141074986488657416515158555434128177178547079891735622010042115570189912271527154851507789472700797915177856892457081966188489771422489431882185251713437557551500779489916739454866555580007213580299116873249737512027442548412248396359944510979102504135574868760616297620205297780893046716630587682560977634849907583729641468357890224068123265057593576716628237636319525295222665224528931616624780032227040973305229974732367305907812224654264575568923205219700044131409835257707480311468568870109367899199628162484851653033863408055521975887403726704477899199023941340358860760366385046250744391139746723840459222952704595721542124820125864388824227554373133207079125749922901635665767684327687865103023754109163691304160035461859715123344866056658842455370364092051288685700910273941569373566515989533297565447854272456693321081454764950345671663458468674654411879303382035481572870760970142998937276520529559417247331100157625698005953273716767329339971594002490319344257677958048633482472804956250174433345938762744090649426919777461361506285982372911979708516893690490588646337752376111474777646916803027613462708769773500743075951828572382339544890488702869570104531069441402743669782815831092961901120871549965503530419748496236012380701101422906135986465506809040447605451358649451600723706160716014630741406967723308003248116649775664666217091770015460406114341522371875094873890913093778094216954142318922782796893354328541648692515534276702584302289372605387072735196193088581668243195725463727741511413397739970329789936143036996968719370892850044723269896961079387579823450185035058124642594295252749189223355889814529534494272566711573744288064271991072313165023200899387394044777016786072861077599364607851882708429463444217606842651148210997827699353318521338626693759096058290152352284941985206877835073151600708670663535077745289143025996358939416260194236168128205357177234553149148893519954036041235911762536795374197179048207961308260378081486056536874970790411708887268572680318282698482500350779088485198140862234127728790137865162804134132065657109904728530817325233055603927884214743965195099448973361178959010937095494261722903813513206340377450763348827739924691913380413104868856262411926999384677837816487133812649149095434101825757141017754814270247436389614773226394216258532753319764792844173304832870536633179592191776906470059093566403135975153441250912724842631690281064428861779095061987816089150742190284899119653202527112664103604127576239537282512062171770643452343953491352644095726836489134044844351557710903251591549452152580213728720110088082396104709628071678830463120714343122361912599467699347350156021004999850605743966823145033280851830099228743059790542051710220080797435046923522359712669694163119218818274522758942671371067070994063607355489923029937071974963829897496464834662882753062622945918709329123071917805569248539597357758039552781078134437193928972382922906863603445627435882381382197162831025785585965714201107566816879458457735549391402115884768338082014803237735517847476647693223259880387430752481431144169919839806799061584928858878529110228483334427128130105634484570919448332944807500812685242882285522570692331411014736836267412202787267648668010995379457198094518585969798961944476264116498835809903844561838220176592024264414860043544283948595949331997719196507404483522992399767686807594436834766640830586183078380006464951940450927101388314616331953526004018885578094761559491363467252246121797440115060189849009884821200342510168382808889502864518877308375677870381229311825450103899315974609764258039774281284726349846556562883383832253601217141820378666655477632217346303905599445175951025085720122218797388140846718861665411837777651748932781767449079420064553996842946325675650707228459128183482012860987670236139015174517603684165697459948719768899753186757356940385603698983365670211341448819933435975080737068506559519552800165168384231160993521938371601020307057157196915343929976104286292684716665486184851139577182578796974001067171678537276344711442387900967506650882360711846893326781089017841811738664086262727021234367969161135333025120507099475009282088773623006867263975018238020796796421753378699833393479481547687288806758284263827609772924678583514823551984854919145744611419398358779926684594451487046180607078895018608921250132064324984560117486617443580713615742619737010989787983046872351758008491095877820853031247447230462839086504920185996465904742134779476412689304424841863814711555926488655159926286961881531058590813222050742530118056090971445330820305732592763962983187545079890720370949249870279159629946977273772254069161967357243843542156942943128722163211479296710890615142696455027825286316078067279063922485210329850358125938311942236202115145875487173127079839622121714349463702507512971361396178314444990455282082850282586184645346365858794230818095840607214569330464284565071156336699687062631310891877475556753045408651507285077149592517102523029716181652754088796903845085261207106473918315433584587935741380847756182718292010329041950463740277441435754079024820251685077242972555439212471224552181795441729497148262320553462666744505350955884906803447944545578951997170780148548267598521663520227344982713127995612456398443428539724719001187367093142431426434836086274116541833351205721872066056409297747463357742231055950617133481644794278275565020470132519517197620822205162123193794568255607554201755857181703797905581171482942360834681366749401513243683711624321245744136742788053537426734181580137113820405223772773205843356783902970113232694724420614177928632949264124125853719912599289964782064316259196152642618062526331186323714525775724812887260430817219531977907636476716469728516857645648077446450169740305668589932279799033726199098795252739753908121436172724352305471876225804871209266055639858317957008271668379235025811206942483920580692517794443269171168924929390306762035737514593619540333689431099949528788489641391430165676326593652331361975888578241690787078108993521215066246000006104625926260426488580118187346255271740865854789061250210638537095143368508825425722712756431097389956695884104103791940667525174588288561283733710932279850670519617192304150146118436950569656054303104558920495071607397555014697764909239208139615141272983083875128614135495619583593204704663090300610467551474071667430359657034383296942312041241638129614299507974911036694586600667042396578323187662516828700958659058248950880612332602291532113531845183049172862686702433006114792282759967021543060697306824901815032352659248210166571111751384240884119167198573296309883555712347585721488045199204363439478718241839639709317601299287018839900239445419373485723911565445215620931175739974958400894128548756587215025412173358743448630627054432125632584357673129581132202338572100440689047674000162503535835913756546918584536255376642453377018937990637936244527570569929449779765391824366571057349865558211659206468562788871322037364072420446998523293423485786266024589064419289834593140546940978211007090438998887125960300873327763136997799630684214123811674422439741208761616499448221719030833866103558205312337409275867685304946248001368495137822083363351556124446721514882522482175337091341485055377395634929411051100594397336780398216667311949885748335766699575925159210216110373863266994639977922409626796723127234173409992864110158993359288163730282746398718180616157939861992694437367258836218979015593277717554467504923325122599420421685202563841365304656808007532668417037356136720554068273920080588900132537409048291262984557894863798960937627530902670629554517023062844498618494100566800421359685428353637730135566007526880908027677655562746130911894874759940640357423112115446975395191222391193943023489560665530968275181986614323801291710748048982307273014509221809163793481215367754444992030312457456193552393779455952713179316426984523608789459946302975341429683617525058965349393693480405445080099439593375900488528945258860588152063990601986496257140986007527783598784243150702778022048244698859948779353039413831808230325274661744396168831284528997324750263052819162351027870025319763001904327218183165227516354021672173249225704482362926387663271780760795667765415212571138149119623254563427515201455837568708999214830361803524697721006563996608946708794725274171395915609038029148494931067427581832574799808038989326126694234196544266476346418424420196747376738281052916257027090757294515505868453628696530585103899800452140929271901673470880236562125069326998423183247521891507681276302707911775691509698293074783923217133204208205931844844047159950165313261585295594917440753941570191470397561610340231963630896397739997635333480083706214840288496496598615207238633772933276241294413308666998615876946523777864063839466117611290760685323820877820903628517300260465282036930568605827136414580344638914156552512895781144050016553104543237076070471051371487497046547504634241478250642237994221117909652651622464248298344598096663852255779747206863555521896213764202659954536766462003471145835715431399973042453174578181112576071379354039350846016036029631837215614617537081958388462853037588072855204313011129103830704068993132115759964156060727102447295158470741879019995156564657877443029476231652999723861480670948946162362228717656674821427847657772093840530492307477217131487144768299399673959546635391871941265637847736861025800219833382219653208935331250601093579444426944844332668458694922046823162585800464000455792967805064019416831839539043325831766315433787413686872480699491932196503009061318766716533995948114391433461093449911627575723837589011066700815538400136765771131643629413201123237742152260651687548180171174997246708084366512176034738062359873328885655258587916968184733127645441197258884783400358235228184178814395863578291716219712899735201330713812084798260988083076122619050479298878114017890652912516730968991261431632559797381792211885385248785012062337279735577482352211868762719897933331595119085224742893994922577778937527483561072924506000865413083158798126596842703042082164813167815597142719350427102106752421264841317128931569421148538334914987488504905082904163550284002333898038694409657836218166156399245634113458442704542615077176582067729960847548183605867861947632655695129778282915883597173989480182573133425840418089529455959248260219209052180984826538599905155723721559820404460205113402990913362325925571675758111772419666348836670185647330223383880408546531179204962581857303443824814712821096088426083934874424502264292516893846895709511453328107818710582517459799603125771900801222579779751140467733472487054565669546999313222647718898415451531839228489082642348495719652026593405993726669135031552966044429845404724287909532521618208013010065473755216333827987166761688012059119370565383171451788132405637833222425113342087332895961198457891942486106633569000475341596368486436589597468490080210779137913624450269439468649301022285856681125098698370115878949310451779728428042171820815398985107847952386473976264426926841723921190194731935189994424011518732160110385910018263132355968791352718445150113088807609764152483695240642878628788568560016093459065263663485184353520535088842902827817410893988499447590990636522141434697642844608183387216225560706682993804723572227384531995029498197604459475229936206945417075276441814804376257103581619609192399903569335960572302083482366752610527458058891340334324328307457951074127513040451944888696175468606394858558626967047663433206660665547929675361471781197759399666638725923888089264807511095283429533223393896356212939134028020476947485690425246985540307023885873341897380833445333538260910956853476292176651616420588556246508919523287077491628281128737342637278636101535154204389616920554509638900009187666137667331139584244104693653053012066462742074447777124437672100073645780392248257236965078515233211638888397987786369345444734185058293633440960307627302914586288754809838191134048678413610728394443136232387366146829656381355169520012037413348339147132466376094993348477319615594717694725129397436763455941344719220076925730705105582086898647469307776827287194865312479066367434068739150256274655782079838862720199219623510799189644914588527807182682153588162749877655214395899433809291835509065348385805240348838745984702896847454917493674793978251603989942740126339562502565410032288540801840664747608794349973003750969587781231954440772078892106299302847738428554938355268885729804618314986210607476969002223242592852251897414599145843253027155491704575933652661708085124635385889343212717126074509701468440160278752925211090910486182530105899293814619431252779172154949668877229875246706650006232065385087731974824870686877979445689881541654348793219375477364892617198437905965825922795498435565119726104648576221413707108465342772269700396610773118659316207022378102296305448368824433163399217904851317052004564431175961918892453732600966719405618439718036806879601042310446123826408756545835081920174310022223249665744394715083020664225219842977213380069613133332160817985679519433865502685963499328826456064409193852062488564572791584301905277062454648131261117799680553281345234000640598585539541400185087923875986681398833547339998806966714711851957204461320618090981929584319372882849835938084949104787185867462595662202572018208859776548418930252949773109095267631144407724750814873804691657672584196694555099446991875972185040843188605903576859272179990973215292097546211164611344258359089726598615625249369062639575821668109836359805230075317900200956811206702309136308239725584737237307510802114177237901334708742231990845205138899873433130516630117159720434222875461910926217274296437161406253740202857359772154302388307999970243598180819243444820522283518006675079297378942021266724551963676338897111269500323379138353648538235400432459915580460154226044812064685254008554421734079677606396967500359683840129797047003928367072821354266940079756804986904636181318662431026115933700823398619378472216005609753811195974072398525187469302084247248746701757685152590862690843397415273820316047303463994102152327195553136226360218725045406529025389812458473532216899146895672458020355950144987900965582057330647539187083042678159426340491360986753209140127926150189612957681641128457041749123801880053513709121946716286974842310490069134765769788685162359790988726566909024857560691969470317871665647956021085850591216695284494564986602708401819927021881126855918029922277847202365992754823025403968958471272542764920289986956582513378843461417989526379984829036307778252395297633900364949319948889633079100792745631774140829429368858509512038649546013394626054495315597204663657341532764517503733316824532207477735810260737914715667671730927546904426811021001379967426429875618163514221549356556806229263183564124871334415655904475709419472491848243010458178810783581818765491936058277275846929660452680291303549173323608563916288500540243498661850953463762153289072347999069501003354102773025706510217576369128665892641766861840985325537863767138669516468181654960843972240711908945814034583415987703645052089109926274663101580445700949095324612348763716967649299453732475998588118864866103335249052162138425773253217779042885542859549360620101612538171051135471218440393599183385329516435935307356864554486030310990647545986044311395691601048280325341005941654926853956840422381542179497819818819152163786682436108947957132428929500638969322986431423030774466589691698988576192631377041372373168604619168747151353058709920938669755019849919415240992464304110063603432002151643521609852847360991706397154459894410316881220548946029742476462358423286037473798324694412556366601765679783403866246987900398448860503895035729586569701617831276608641116555421037439024984394191064199589861012125769716189412537075001561814298468926852393966536665716899983274882369965791334648921581912879227676822545773725349052535045357830039621781077801912177558514167254664714071263743623713023310262330724985640420642349761625050004158329514842447701052337247215897370999970002518615107964340456522556773385025673806782928481874586348493169881697943075818410042468649895201327468331594329020114214444149649566385239764947816763131523297199060741525664295277599934905705577522162005851703235568515232837510168839554947453507286779670824267959142186236016215295303721856563914514985328348029484414901936064212285495846338089212867389750486830031304170024569238557484124423065739139200742639522270376726335819969721743929214638196510062779069005167246408154969737225290051366610579277546915678283427751234074191122817341841328070760408759877443916148341953367298026075205108192416000996925383262427101432173916750172630004391164671065082938359157038490393416408447344701631018036230217703519530322882387318276865554049842233908199624144673429229343466434717145505686717543221333592099338917842496808450956460575157591393789592303625131739185747441170719178694240488976161662922981236900234240498095255029648457134355684205238552919028252949071788593625464564839335627133444041840307512669730005736605890857162706359636085968547445465651548180293348198408085304660725911809249198034419639325255629722857122287418296356557565724448968193417528113836827548517709334913546339438681972719129978829588639804441732323946020438062118509442834902213879388959609974536580290193647127633114390214773342701202206389683720298508014107237227670594546658109035299112863653337227643771177092307470038135032290652766941576157930228178791171267174868383898835385876361406850448982753613801018955134507569504014647275954903814094077682871276976605831502610040520724083238290499471233580268013066821963932125666080226666253142525301164125590992025030556490520292668243400628786445453899033144055795718833261030114290214572084180275356974773881759203282488328762519180457150388826774921858400477934865103811424783734462162582876643355032136729916345097698738128885934019399966742847890878026247974385965600533451715016005790440515218664780761166857617879340593169350511783091602174376091788087893205678215355124823466523445148781442339256752026665046793684601949107645204080119309243318088785381734536503200532546792619046395273302059669028844746145487764308488018456629765872488206793108240839450521523855875255463710346709383245104045316944065413547141195431427802234401243058287242836110697539681865094862437603496581708616680220322865183590972386110586358870127648350871903553445974385026368581525725805183971915478711529980560672083490962368113634730600981767033631395181924155801858753700226806677435609781963948761563171766133930572630315067030322250072675990485222029320132797250448171115472378778415177968146694510784745371754431286626497868780056603760725331046108604921765636320154105677437880153764316491978162531740849448831866232459017674257745892842382751445295844865598475828435917514592943783840715361998340587662890889577454351578527402605621130664651116779320948444391336576189405784556379747059013721655706048721184780699350509927375838529652468683346425518905964756761186420741604550943026282027901642962626253922641227690930893968899617683939221757353984916912789245293720917551524073682706670727937299376943625524784443819841314752437859424786375376727531067117785386538371895475299412020053897452037158087528041886520514713306029078731226667883229333708775752748999260353531800930430375484218377938391050720958175994000937099140094466123605217860505102143485940023160112442432824307797199024872475056060831757166479982131411532930342930510278152222791337657745042910150678599140776445564265741508597063626827093434767076954182919656703121399059615078915346410283552792692481893779629697928192448404733171243568197075129547941631388416833957337869605229261425540185693817040158055293387621106576624105509881605729615654137707457868609790549770586954417783164014022699059496506707048030675092953983079505043415935201450369355796834994130017835496830931578868578284274581759686045786515517626059064172814507014500344287961361818290313693274112541013425547587098443470274461556128462140483194257936635310284692825177347375329301951956600618950662475462971351965976098952160077419982241940691035955422315206207710686750326243966887342674073923005337311025384508568570417794140782255229503483055074152797478357086493405073901806936289156480961564558213973398818043184041893877938649107630942335865537278370995768074607290087093407103356424421309421366500598522780340934211259426884612720238549549049104146089878002281986722802522227637516031231330958639036428367767586575298262862016640367757904532510445734414058506086169489378834674284378436920823041448775886433811519530952103174368688581396989717421102215641188169009440454902905678983589397964925437599681078086327912174464599933363210967082476234558924940978917682442162017600637808690114989976030712719427853879157958025565519152173036332038545386342866233409753705178664114753503482979697659244783615262038746126902775493801211567337220124846239364903484532487612582263178527417224298050063668180175624606664179649349602272483282540283822014749089161902507956307945156301347699265821975669461066392052646294874262984085761665208271575790813580002885861067884992883143528612915188789600972891259243216994156274570121546159094384487626047259001718520855671391696663908148410202887329461865032523019736762942743926092725420092591019216138579561786627967379470646344038778698430109120702367118733586534283250824109465808183119504124260311024900748649251418545546905437665795453463214333012205538320781568296817989447605683436605456884121261153493628838819937773082930309246019254339748135111560128656101624119517025639080248254978037121204529150698234408044638249428269038045725382652534879628501893463897426873102506134998515356660272246439870969748606419881816801640381778327999306283374711381799495875521559334733428846350071933466946764091986885519199189218266489379834937152667700338363458163380602344131717744155628806322026343185040615097011264713699636943128444144118348477812998979523453942112144894837300931089739453413229233372306465769942857343637025628465448131521220863522118440556880342953057263694899552586355399852603809409545829697154702955678265560108622166363878896987311251434746360165290158551382018252823952458384536022810775656230751644097403976769210597855698533604527840142589999588001439982970751403789334861766713742551599747052731835741486489022501407454843577153818529054647165079133861148147204285957702217028393288041424090050025147641904745932461027853283164477524566473270980611907215616766868985009420053938070432752358403780495684012981403190008253478659611076564151305225399865217193498921618473765958945991895658524634731181694418852937053554996024210092557618740260847711502217533487228442844748153485560186870422636546558629310683119300123783793934513877452453888517959128890804601860173756250642132361321492654870366624376286644543482258669886322232314510457605044711063250792882135935390677702245278492675133365077343677300016464798276484798804183128305840029081717149939949838620164265284561637142453408332152478144427240348767435078546177108295965432086500535568343517374416488389762680107992546080895386513020626656481976786919574909124010886259436050414008469216492773323564641349431687496949829486473509444624987480229770276678013829913937694700339757340444334820197469482580956508578392827619972745796721330131561039806951064531871279193892455554659714480412434998157749829250625295639000845514903373433788739884057790059613081609475885993552074311184059942533848727375975876785226592395692268122176099877367233391627234379760232583197511358375977954559283264631350847528208469577405381284690725627929369051965193402161936488114392372199444031286554987441727791864282785199876169207157791826938644214947254912874514619361130426388886498466067436324321803027058490015504446845092785551824929736172313940800047404301636978500938392669606512845596327444747459103098458513199600009762034172812486992572666703572385472433099159694416074700770490307354387778865391168684416767451558135602146710065433664429400061255554783121155012094892979254216463889396227327643316303840759247691327808210029421172037307960341138193049180694216035050732158047941497239877147440415723030227227675872519717322601671578418678837980000970763754019022504920042908068725836832690909233355489362413426320607691768783255107581437710478636315624053296384748255103580569912452522544034124775971428577166876649133545744268328422101041482431327198466277404281379047463334370305014070499391671760837629739482762667381906506522851343893254437529195848574659644129982187857610166516956511567385698075750255944942936199870352630392210918509938172731648958143675794208196655357472265541987116196832898531573430759272360403959404461200600286612841049195056914710791579691929141979357252262894227165165624929530531400645023023092930785655115469034122039613543164106079056142472091226500228377360883374945138355261492885112053133585475150303355988254239946868166228425508218206079275025642773456583759964379874570412267214264023031965499724708190227411267425029630749160859457870390979211128521581533952547029923583837042476103667669002627198242852167863741221882807941707624384821422251685744183356845377312489860458677228789030694007211002492409793616447255817686625810918792173840170212440167870272727965412846072037130673904789072541433066127269461851588877416884261231211244486837269283372882629009329356196502058501885750293860074343701282322498335596802482332364357161644892315810174429913173698392132503038785866786082317506049273948367422644348517882259691146206132146347283816905438591547761400279675044784358400107435120218421568641444034716383532582761418499601692941997194792678711250978487671290971465852860723838940302994453138951463049465082784544428503411128691630179214164248037624080366315302774329263801281695934174567067761550664099766842359117888964754218996748035329297735916531790959363680286349800650871868936335249646261013331951002352171732493921117777480797327779907549711195687509811836871395655665290419833485847802535681128214805374953347352731109643396579126639908838516284416461733149925468456636709096502967210266822900545105031357577483156303671861457445393697763497313039947429019237395725240991782268736688552266532264165198679416219248112856337931732049210747130939681809697153448857955423410635097804126489935014853618681287855063608272991848745482204385063311411950853599080508931654740896275615941739991367011111035783619700701080635910623804164869605884253338042383218058348356966601047015104158073364140820432670507835797601073132276601442436334701605446212163144827661543922729303523853378656953594155379613934206356892457690971670686439574074769003227026472187714350358265369477301317277863286766435188091068508211843840995854827571868471055691010504497146844313590850117608219639934061898863802058500322961869306241454720439240764665593419893971935669425546857469242490489042033464500922041410591455933206901494909483660506627660849177359073976375026974925317454232787329271255565202869995949340902457404486645636186842860002558410709027521052851002565479217955081512635588616646966784591893922021342649316922038799606678391977350864448035004417949900285179100553631349353526759206832800845927809329790907132010632151560554011372357640524051839787051036848048074019520131014674102020362808417377040705323421254940399899627368908910233173938102728969746481658727686565403230226796188376255550434535279139132580134891139921431889688983739719463280437792079281566568280204696532241813869739478164057891956982617645773189807706101394997587378068374961411992613547166137901012687175587178550128235855596048502151264294255129261137633386170345903235225855495944453132870871870730110862939627579492841350555012413397543864847220566696145100490567444192870998599216218418956236239014254359902236411978327962457497036642370928348934038426867086925788171638494403816374673796327760795562577021865774845287143833401500469076675002811686790741614885549625381705765478278616953362781722212476584478390749727966127937723139911495378532070066506306880071980133442174826170249528146551718593220318276160431275682101280790652052689532143296544224765829921515374865294151955508280392791007482529873528311555230567029588204934631221065262630218768399839618949653309420216385282210595824647268065739708153131941179072548476082358077099664399467161078783311245420514972859449297114890340728825297269644150497253483829268347128869479081075737136231009353578003150679008807714867259998376488339471405038678676320097953658179126039213483219422216913696218696672514034203045137695180186007081725169794162361662613550321595689596235797971815417543824153519945796143570029272663336131882048225373038224374224803530648281539697290417055038726199998447309354204318887952931293299309507963931738204493205525987558932474513876042335303047220971163416429537569876194785470551312348208258779497404083982928281764913457159518803673814984326418704904219445594962286275899919590857528145423338447135467536333642631190997233355145062903620415969787295811399551570850778866330620415239726833285596846398929484268863922681299636274390487686886385654587339605667253348756637009387659473994549125148062886280035504606881226224532656288040939100156916529520861255925535942557333064816375917144140670676782421091098724451738523909178885085522456630838010661668290157107948057487721786019774864552295037986788245866820231463465779988129865618008504233171375451487471379679022274475464127297763422248657465640135353779031109869810439195392994257110060242695364316336793450482281896036184726524926108571695225135481771371506063189713786583197973966496886107120160201152071042395381340042585732299152917907746543202186089191555818052264009609834952761201914053661308288082827239316488912141697765357990100797001504831931494187212316376896800544213731685102220623451557162641659543595500394726635854661552883116342024394526850020256473094223088419290652904649397172866171505605987182303593747399599054552961262183153627208725619793374958158238193224870948473977121357072673550770374529979834098492849400301572236407514801266841168922619919915216842134514959835551211653590545552663810596794610484977223743957864549354150989926392483362786774065554348538060597367460490927203443311817723747816248795547247336530293124976633412349434515163981494279025101806149320354788813786490542671036279707904979515257032422360581218506019169594429051292252365135311121349411346067841567712781195284801456448701091064515580323241254151181480442836238588736647762041234907622020833254251695246213135888025439260332560295195971932231788213379853866106483781826787801951990242058100985899076032856075057110881240940689492732608022011267046514085520675099086605578982027426347898628287390811565885292883109771692939606217392998610911282206584009629144935652160088131447139034070828223676631527200490086086343537718417937434513570948979893840703459383100340695764587475534406710896660652137820577188834420278173266248730030303479952296000012029712521166883067086193309709105973201818930355541294417199506257446005027126915750690645009754649624816516324491841512873489519499284715292298875267199334801685830692119302737168842483936951908545896588430536706403372955481447021409774853382213257196149947078836762933741111063963651940672746510717855658746478348587707149650853761019708033803504294993602279371408780330518938521734394525364303614028489710520619727483114634793648570115296107483052248212980364118030939921833812218413304927100404811719950040038861130997099414395577648770518405053564418307111177235802484550269659378814200409832491580095168743204354691059026226003390848755320211958432264507989928255160355205180819699842557665704413994471347181698765077357668312198662292165755653039298479278330321852723705457400545326305061538861905989828787031047786893518521421293530220285320407665699010205799591855759209479055170992535248985225420226836800198697825596753330635417741355821079947150546126771628403828313749835232281984060239159824178962565024519307717744608685018796232660842769461647635253346087995960577769205009531218787739754609810734590077230777147572148881099374495196816339703724476090407635134158809550062164039184912505634748268757918729790072703935089026382100977472277714836671267421126374597347699948794674644683862624976320205558371766560644587601655816446397638301593333290559535125401359414113974511921189437198478109070274694062734399345742508108157588760299164586280308133132744233197694337593081558095688360340798932491629083922364403736986286451824354882261478951035291610233479690626265786039395078311760261297414779899390143467730418284458873576087265066017733616320620980010775210403128540954420954561820794971900647914343748383015195902375691216479159992009126081017858420548580113925173457153839118709649127043625233046993436374184397198136708409165449319558531232541967552154608966426846353877277695882313498172579747453736458046181163338552634218107829195558059378069361148578561164500944025902634032503234307325907327267246240432854417854610588059397048288546676410691106214691646351485265808069893403128534789420681903570388472503611033973008905428277121325317585295947737330696873505330605979141064226682226459498868875085521659514062188810876324259983858406746292788412657337592421960409622780687106847230811217368276831408476625549487438094935028153898370737829267314438466603242989778419230447740559609880789454403776975517293315479252228241973336544510953129727204005332181566558264653426580027702346716639240645898960627790701439356744236477617022614536489204500464927606248729424028323386447970260054607162276130536837275235486334897831085195571549744615004343638901804501966085497344826569291062741369216694461871271209747823282560054763803971517316429438222119945661644860286222548592558012087646772813429449055231128199743210042376138137299764188121093784856108361946330004480034914367741171534452037822390261136078459618699996702035886169047416693272831899208205195329758037343834918308830534596268604717498574019418974120902730005641550240663407828421963989145417633959387277905273726631398160032770070280439469127247953770528252940985235894175096152889827054414076160605668460405333444571872958435563551000061684381301052251634987757690799964900761074098436209483429825722739495241440509358541650086602202220367437154756251368678341740547451932558894252278629776001521770685003526525388956809391963170600132432875662566276772575252419580287413975644451904216336678268544387996128785660183884673499135567346731564871877036263052480653472255696004306004354894225457960163210613745453913572928007426769065486178670694238927293702566855954247876523355895606557471213015694786675564354247696205713632624945030781251983401680351574930642060557949489091947448582282219730074638709013290130501664019943402520393526119734466547741873409841695562012915194885711686276297897711817140102742960544234867590188234655806272730013360029660201999317483908889258558176398676965806291128023956414880247014354442736066835554832589738808688388947683196119760944722541588588260547350513984367889128729154599905557208766972343252078503666876582575698006445448046330039672038090453987846663090349208935911484680050738286292702331419703448114356936417319563658333447111687219863672642870751990038099817940856082640515916927736228442707417965401113524024362111413861129335173455659070572953377365608462545705684132124235954726860537890050158475745983858403474389401343619379692733871366067661988305655118421286631568998406677472694464497121223769537690128319134682486132012740119267620802344079919468317769595775375819189288057462558571530784342978252941672076484984257807303445099770661677684134234461503757015129114122152307387451542895124567322001843250090960448624183602360521339847537155414609625261239274844422619487250745387452284766442162680171523647816916971781534203077494295346990361756285810276156925468681516821812644810046302784176744592120744227363599734932222467867137847301662952177951855427695922200677461438569554892436966510516855140361396599622306174964785191250551575528555651798356205207308081046335024631851309320668558101276213896493664285629577903795061068517008274145266355727559418780295107519170781393226283791884792010344815535001857471514924279194109388933807163479713331082168328290153239211942814922277871524523592191451038956156950889957955736756984302670080265015319978627031512622760994899013086815154854513099562741730183613940503248679459902770179063156795571838249903715018061877071607669534079863412624942053766837654191001481502814954142222139480493679531584223315610140585590422152198186920582747619499744059319341546620883313449275240308054016841344989758001193449295195325765392802972428883520151406933661749940149031457386428321936048037250343971828890481991106534113507391182173567853740735507370701905486484408025530958499672508154970107629168601539132608081648845386007721013314252963382473603916301909913182450031127514812319375195964185268785627633691892137552058855469309390239852993468577806762377322563656852127575657420650983459773103657582203276826860361932015685561469918102818153908765809442027259163641177695540682264278140842216063189088689726981560902551674369437553680828109944295883315264720846339915543434494097065149933271243994058933013432566596728682827347572973659379293362051762502161153179815857375399399177735402261967864169315011478957748970196971974597738557019712535173837434085686768040069716085022046007867648025594935448250353452810973650722278100677730453926974485903651733657012523029435653137603382154146559240909968584505489949384741095631049162832713046822277796042834640464287414286306723686737675515683624945723320108933041962711325144178909209316514687582431775848604453984913477066411350305071029352436706466212056116500238336438461800428364290978112997244713476449008030471874895033590865434606333588785374629664605487596369845240542943000500854130976048912739027715763783460450790158384438773182795814691219338286518508200769882552211639655254619945340291357366001434816215764441114121234886926227039616402486650240719247758261995088984792640981771328262499997796075512662726301338907170854530308887209701327205535412603909177280038392287327641865907205730368733356873739933913541925154714859897413923970548126648407955411401396821141626011465663305203254253140066166035458923859391308638745035356356651989770615242067309262199519184492734965680627712389421245791303258648575962048861654590473221640735093266294236087572901946721475335812944698953029723798503957163581978397268761258165100326045273353666788208481726806554676832877920946486573967781229426745457781850112575705148979015487425135024120394292611763048878519852150232377774735037082937238440339360610731816338195603640222281357738948508927589856818657829388794416730919770913094507429141468274228533587439402909622658224745821367999601393328328341293361803148216149734285823607182132981155458772488682932054994785639289246042617390949341967534056610295857671690434831269302732711075895399112275058803808906864191926379688879963349279735817304853709800350988817452243359563059806508188402277054176194967394766292082569206814549609887484506554296798134355511431522580363039568006668584504953929439431427238155158948069484530172919605822937025984194949064126444926755106726299783476574047945543466501839623591167019880233334831153987636269865167310786731563859787326914084738879749542464541465768476606441863867703102026685177172809310445335002566165722780717691304965822605111055804872261493848438719117243510155322988478044350841754699541556922685568905870972098620145810976595243307134193966314648955263571992262400681237282336840820051285837874844815158388147130512301683198657758861344629113499003242934928083839152253876723372863712077779695822220393149158398616656974393256259249625056428212719917729153336766958654354546574629841170339465840508988016085200176694302641820894744906070567909315870398611534668852774515582725398539519924907347629323342838747002518298845492012089741567911314038652032563335578354250356951843498583235749784804801270326096681023868527015209041077760688629800224577733721999115895123449050760436703648721551831469619036169914281273805351851429114162076919110158494011895535799458245247724790094958061406611513495560288135543474962246414480456629673978092738946364590354571767548418520176688259324866779044249930015813363471092120845485792223655986404548741045190404315579391126962392964512810678999584312418116848863959753523087460522136924431240995371202028528514591208536396187166472729261930581836590369060454427582031091254040652345072520474925472316270051788115949268378566093064188400987349408780078863659255872843737090367235757080804964377567251185187741331404279955765360681379492958843926527529090900266166510897369245506653895602749788298963063078035502548145960636825979732387462023677134410455895623269824134663465995599895218342626649414749301829051968455840964824440809021049502397274772984822459375526972929167047066801644562136782105326964868528577548080079820264293780569183594700197083947612529516869843084632527135328567273057423212369391868897445538475576325107097428988951268808850378515543481814039969969881753740974467729624108634089090567487313844832372680571010551228450440401330023274687800319026747871986716746214868094197000573678570789370374116627839463588909606122466288250181519179686006722442678582427964143827523598160761379062706472389291712864990592350806279091308141594452441630528713715547534231239117756236505313182607393335136991443763080671262784620663315447382282914324581000273506143288574327888461236275072244377044729268470161426494323434012280718421299766300581422419586817160575311459012279779108244235304227795347810750181476944661161876693688824503761177566503538366284280428637492205435971675269025807281453193883073632097162322072177556006540349976825544415990206443358661520566942115463958773143977253879898953361019740989296891923465663424398505863583566144677534956062113575040916227982805100846744860666858543155132361195406363583308363392425497285890709857925633990113745009811967398170577831039549047009204742571512059820329132485079388770121022442103504114143252894717836804420324921707958986454968819543559362023147488402670759721315873755615876047952928314239605486203215521554471719356762034473963174026443465700792802790873395011962746869996401648777339418732183212856474821861151549507719049556071624230321698773623193072765872168424465145280030892607945329101981716187555492308305717832050602278457978926644744919810542176816993826422084319880268361404793574908497218428575823900752157821117558824074655363780117679724129620738701577397915180784106120606834185050139048014542822550212567609409059063458900470790753915274104605944807937609586014169676232029740882509051703608630014285334929105737386027922707018299363751031165172350571485783022589326491760446102770923812143088602817813479636608370844238975826490496055770362561920269403348732802745857740997665016622517839346236335768992477648634667916659485256930884963385399717986292471498910894719715482942391137243710281220185564429808371270334521544938322732409283591758687495640235105319607655165588856681258207646184547533067147271817553167246349917494140890694145366086253402060711149340898747985663283451095086824226457023785461092897249907055103620844974001602613886173468408482262593680525449304984364946842765384852751987675639038176476338921420625206147655614794295662547177339371431430862753972454504846489259604849577990068296426041623821362981227949244723415840923821080864401175829661212412942958052598581181273635246448225666048608021715559045101425829419028205609885499522341685340688381208237253657513369565284975511254390488911122004602924317890149086900265063279332222161538850469605207344804614366910243023920332241762463768428296027684305094293546455815775209718042594739776002785081293674455003136886975732430511999676571864244433274656193296964707327923094580435257602172442729107471781672789019205580730222817704389461481935667331565570043978258267385992907111568548318094441785957772551303835560212992135273543398415139908215191147988975535150719558099779554707109387985750099216460567461436355905025153615775705446854887795347131519030430577047023722909705222352249832802534455064074416806656776340296846727267165978663775957876468122057520609776374813122497489828482430532573464992479757427875207210922226361190439272292292487586142256654266526273652359617140824598618938887080182877242339246321515401968028696231202042532299664755283577535735113827201721523946974516666552165494363355235767161010693080732272685229732209289079268429652712562977124174602958504500170087943666013289556447804550985742236748430240293228065219796119667036558011548348736880609772874467048857374684809389195307617078817759348126971313371724949636238182147014366382027737921597455788391917970840351321576093385385609030242158101884434995280347567866488468741470146912400115209614680289211528241109657293414740502052007724621761405252639493590528200250407880946851044227403757389377329138334727771268827609933368521591208049656399633443355232060050622665122343563380632916534098828118720986468847131358537420635254941504290703457555843536631939894959782665141342891127647193473417319921708052070207599696768225233758909168966897687017167322639331708789265464617118760170943030188005187239920545821704104174792732380168449997594555362403305661252916333686163945733443273179900464098674480698628918219200271558208269153899617504406103666708734694835664489681592533885991435255374659454657060711756632184271603097914863173877126342096585403004378195517911408561394466642677989046946453349357455395711758348253087804288703652015330052660410619989972471668518800620379797627984412983823863532669774958306013113053684778565431534677859363992834704096971905921940287119417157003181055196340942526690434012170627698373300203148843586208220282566150775060810043592795934718311061461441682608627331994004937715360296003245957153662596755484434607762034776516893082480596191372410097606297115581511265676719565655160309107042944660990831991641063813462678006888296520805882515242492357466008925672540178989602593295716752318491397697368229203163177848063241923175492878682393318466828297147766493098622631888218641076511937083107165333162364219653799034782686625632366855202667362571595124689168985679935175101235959375302050524833089961711810080159185697887003460492184557394199302381458352258833199636804377242091963076273051910352796050689444732162125294642786822114120527930713304605807077535693818731865608007055914929533819574011204349085031339438373011417111628514319602454355394652335250321103768462687644437829662637620668731893969950785589944790369414189839301412814395280082913830631250639722663879692538624360618661033378302642609475455155317287573836473862673941703493221851223825913308916791158589056575743004493527209863788425026119617426480603021800325867676387231775374822024920253345252625065160570426743164547854970150154329859264712654041593584494432876158698084256959153341501332958088741600338265380363018632601677810002768008449863777888222983257678832422206421241456545567968037217268261259139068178947120472871900702245017798192830969967675652994643595656196677608158833248237506180448764275252589161718495941902053483795904464801806734660749710242283274587818395994844150172442625088545105696908757219028561997291698880809650008266219588369702592957621686729986915417407142056977644253976947518279055237386467977876994261545393786386772196997085045072017895362623726036080361047506758692971184723605619282670633199051133358000836266048497953691274007535171206994477382808270802339084114926771796680551237040537477409205445549448395157997839152200030702811231113464463839069893134782454740117629007278962693991295051526722546542576216213758528596948854103936524513441671378359301799916646768829248736921572340931529583133085715830789447098798682331263718960431679707188113149026637174530863855316080950780215564402392390020616852588244989358320092378082741376415927148470468853843030529119848269270172462529348372643113574507260556639421089886171858317004658917722063069426659484725831845406572935915811331759842215562268008329369410587100762487201674076159162710188876034787605692175770878916158837105227130173447246727797497665050848396936421970356820399371386062953566461588912377015914618263585669435337738506851666959528675345289095051143620650240056126728948805455533851052523918787854494854940541499958189043165835401877394979613395286782586260348917374045641665832944282106506501493677437174419236825867886614837105167724010729589238919139545913857102121351304850366703332155319696205443257141261462407533449471516019503171944001696618634099960944122953876277401130963294073982222289775741346090589274650067978837394816101090853832081466092481447543856290104637638995218732060445948631449782172047687469308418404757637030777900686968180931933976919241617860852421686063235094958513716907432587912167038396574285240384174258951045244204408200931044393271603484003936700988562783884209178318010965630307244866789750024580312107772665819805960776630798471211584263765905214747907801412380790706574568997186706640914294154072118214117157539956363751395479402775318735000424263153029810159332228406698822233277116649632765338730744043392021029372838874998503993471442023228471203118185526555711833453683687555244097890593962857570468160557058537378510253148781764596834428053566930413661642520864690959534354781693330395716388081506596127814614819487152015789431774713369074467293926044128174107195438570761063427215340647296598594760352812074879183009805303286674831123119747753698056405839498333559236391642231689287929324082637039947330910367109976822551204406017101281013196382246185823477745720446847140693981841713552541991163598304283736778039136894191875519052509664153421301553539624155706643105169965304668683910178417991034208667797836797276105348248090804184908307845727435900837474672454833171149226776386199945286169946632501173530698239164087208357426818490281606632593424492303975226265393769016994848342128974977901204773423020163667919071301559244184245247397004201643070623481928778379923580604674429476979521514188502739626607608207312381859984472618542444515569510776678798932718551211455453967035232048098337203610762366428726335325155100796077817558840212642489266583776834418386010509461871668984704112343294127993599533459161698207147939292588691034088043466357108501367124482663058802775577513242471532346307828951322469313804008220484582564239386217898552728854579328067154345125093406023011112005245567947778017660539098518011793362126142890028781639961804908076154489054568382932492025708955497783505165810319938394058720976276609028031182638408156696483259811932018549898410366054549024914169267410971664251168206114635086754412600439266733457904800483380417435096082296091364247341776194224777771805214885084495876216789249694049682439898878515262940090064198149428265229540296733495465277686290678859319885511986951887279544874331994721360210271104766305518503856001921854999582908212445682681618832141283760443518150300979241207963497336211470392575603853034183343047071649811202881674018768518541143664784093045901720987502801163072888578058699479257866936699958538770598991668805047602739897241930354636047544803336919606539997981990747990369777394419729314343283510406405928583219267470892718466911430854287436483359494280686429204557397870855660935361360372389972279327252144251458584445621711730253392466645612493160842654060698758092142446345930192367836877357730655253976803723861791669180290256505722778486684817659122503149495029356451203430558929963895128639074471485548371096297742998491379757510394893121895052695717796228112383693663884296051975626568034257974470152210949112260282859386645974644294204515987347184555160627523826271705775892746021575563803674668819285259804812693928820897832111155800621839232232709035949819381246097880224936705337650688366809045696665629379205904609062743120180622127855491677597475272061762529417589879239391805028862209406857923135977086870053955351531267356515383316921801629658416928952331813255240005708816818141012603601272650939077677890725469857834237047950467833766609464296140856255448981423445380167360263258636442310892703471288810121241382344016987649244857837620647762477218954823259857937261076231515394777090349412883160585524230109188486300729599428472503530673570886866463329890517742100782968129559246916179069744724070664485081307917048654513259014277188765908241572523442219936230294418230255584812438893370058605299732924478525105890343185484660869503016516661258437547197021727833617810696921506240807434688378894802303289888475001285807139447019484903106954976183907106996839140206103339393875000443369327665741396270499946975709716006837571345318738543486687309218516715618254435794669699745407219021085257829638466556494504708128419587825093493835279816822014845837562904212383362525593044914414835763642143532488735252330377404832025197204144636493069724293714808360126252010959725855080834186262330539492036883997071444231058626988808094017437481864676782463674718284475117804897651010379609770859651932002138959622109181086047955172629391411264981265002681064017309441919218702782168195991503777511158138698053677551553758146471052900439253297334889551518216659941066638783588527331975000471042090665235034237324008586055008614388539764217057348592235366099224464095918158135045099861838245526213221169892832433239822673612944322806022111155008801716357089007691831734486822256047501291220291620628999394525939938912993582236757231857974313830069827552787116680916304960551480700430962927258462684061482221802996077200025220076974089879172767085075077747430316792813512909463256233474436895001933084257035607255485688367070957295508351679536918201659584999835474857994908601481379992367480932584908906857353327332701600074420810591571746039419939314082257899995985764091351320252419427680040039782175528817976841313657707445733733782176524054767349286602116400761433842189034855452682503586857359606133762082266441933693790621463762890580543903398862548616442084342114291893952641307371959237685458013626902695526448046842887408204559018507743907965184394734749480217209278477582589092627399175750827985785348072442459927127487501681642473356029684995442606617241801895250291180096211482762337735065113710557438018714048717346202193617141206919995874432833138828462689177320136493264634072018653362286075889313205084713782593988539840405736736736853960370018968108656516509748493403402341503242386490339600197823891213601404255238088688878255796840642194957412951313210200710617166371261481632073233782432481531053407793620101183611870314790448646450593655049055822148906970252799436636168142168188667788223223559219899612404512615576389012020721053072784363462418335096549680637702726489363551065987455073817855146241019671511962904942003786579310943704650417245261951934486523248228534066584717054135211810737493527782137710085467878172487149570271093576977684001994359318736071011138936845554458224986902823103501868503034166862289467321889298894904942308790888786014986822784884906073275126509667676962974074616247806804005532699091053842732187962791085248645433588582471057943383298118896198017870678772976007054987327188178409255091814510162180692832261159577413283490133327137726840888399290487687748878376498679709575380717874277098476573929012329933776553371475574351339546305357602833635126042415312933030717459974311391845427951855954778634042348275515343655788429600659616645096098120139968818078055775397815175975156468197608465340849809563348381374020654160428726166728820738149779435071884204689535999292382518516073127438323133019180623005222317675436727246990303300285635562500632579069957374926215349691071664458861478463485245586228077700581738388376214729912912089504921934601165439564019442685094675030807917569471564783564311492642086022087119777106905484158736441300926856000913542438355965378759837520900596493688082706644067075638824046108172642590707731099665024716163019953516471445579055483110211131150435950987050927606724248097254798582808618375482309009140985621875447350744258729258520594348351061160304228210988036355387788147427418420790558932663633129507210861735458523181208395305486915277160615934706177950605882744760725466837268734207285142363193001125134421767444003657880197160431158239344928857283553823049655572924188529746081753586372446259825016884549014598050290209263283517908961197177163300712983618063844084626422132532191572128735203192989942509061426108479777312696570403695823974039759768092364846345821088949839294745201580405824992149540599721173887858905093381276528601801947504901778917145625911697942768466299085857635758607091753261797953529542524452917190630268469263998217241344699368773756447794193101425223035100471023774423986031540979062481302366372052233580016552270216837315617164927696467285831459436096320839038237420684980487915829122763526617412501581824111455080288995276178021268331583353399351558004939376281645493905250979184473667639254000006921342148843296879371654428457912507516312586295570959840414676811136242959251359520895334913184083913578666089254323755472206472012440423907090243273246366140013693352897996604046939123005036596918426177337521681344577098839856499040659945833760410639102923900740224154903035792234061271196904178351946500537763871958655598203171691204824765488851089136590445529325270833595756701527756418039265198355739824616935295971280331860701134866315834566940359129099331822943788163376990796260883835015641086969243027015402899428010289034610519067053097516436562451221089233612289532492023985889677853436576687194910811203919161323972237095557178685500081208583162156908872028287839740390818755450995950212490516683859027034321447871995673803311147983335404144706779697615429537488834384172053133937924704405680174792110809126674769274088640679318462094557009128645444093178350798488335626888138882066765579304922382466908964312136650334796413958747933748957114295820088803246369410749687326338902971169716262467214875172607844150135465801958277473031162413532222861377698720413819711799199525262963762323649074261478294223480329672647788526662239140113403880169885170867028382214526917746072629882573471783412222875110736352801116172615089294419932855487878312136841792654940075933240223019626681232453369960806268231783019814152436215556339527807216551687215712263561721961746274131457347213964586645908598370925232813044739505163583223457927139526507779341555826318209841492957613021034217870183409933412824779013593930716973814258525936936095777764936384939420142578572727264171903148949130875567586656530188463796234996914188819973264300789607351784286366525519276400914753639698072829924855193922995682528398644591432776724933070270019224117747935994435587922003722284421898654575711330422040603665068518310875641543161067757000112829217427762694255136561247890301601708884618465756197011895955548999619649101043363852198178180250627062674773353708306374150547679701177551120866626213904750161496707180786644698618357266222641162199689103273361880289608180417953251557422228666794918206904992123594291170572394307188048987718354878599422831071798796627360541049512091049741778988092618828948329831905028399824829875134439113038980868842801509297054963540067856127156579412845532749478960149414744269066873041676374302714178545975623091112103548536057619468560419787284236098575209096775771135393242220873243900293024942296226851882819516669520801013341812416312722945936553249383213088239317623865510609490284845096749768081569520476839651675967082735150926448339487583816891096329628006420004275301728903294056840313954768460519463629475289000045999217148584484327278925513652027025068238753857524305497599336041477020139445348678966365364644568876724563630878546600360616165080468836555609316965223025154654964266795397562594129496088504837332642731848486534836987403047968256971506871591595542516306807997627114809448931280273260359057606244286676073737010995227496835465557309292978530384947952051869159143628680219143590612648138107510872418330735013370664380447183543461225946591113440293041751588936421312080430120805466116810106084906676191438246789446180921331375147967978735191872010028136739210240100647915270490239354782332821036072139223583319598071510447721663519479376381522420323727111209697648696952711616682885282897579857122804772167437467656913430382639622404716323846046334360212911114287288852802077450680855333199382091972591108004433694338834625299374323028807928193635991468655069078850731266860623367508427539980698314741749373814859413148778877168863409742919955264976171518825746190009847647033789336466922611855501155173682852427216795809370777967720277105647934961420263394829449061646834407899350589445349738363548687172627363287737309908219219429870486483866838599221554457578075488909520565463189246690061166859544632090387484057008567294820770081715655798902083636688698350429803790923200541818498059032107209960214518107102532769563420910476165276290332263469020225553231011715207393862608506044519576760797563549188526777182766683666285849180188811938483157220497294942447072203129021826942238718637189941695475771265103746460009666036794539758046974337787324765488549422175713100051105951490339262460407491223015354563414579647495086846895758629674863888791019656250865432052243388596352971901794140653699200496807694284375416746208010809007796764477065382755542274378897553799315811956036091831426861804950707634880917873959444725136132277119606577115917313490161982849790878075186011401775468967196855300115212074384619273446344199991951859481722050602981120074694771640941730622301056974275985025610545161563890894205500077903140437899270969887995869353280409443106812842316208149244840573136970146885102545301220892298146653351525240819043932691951780047282870333701653567230767518713414597982023374337817687718525014789332876711318180086010076908197269203066429436621108184587701087592338983058835308418804160399582847243050172205647786142106366794768177985162617484857527498966488243451600365296789678731496600678331913385324382889628839646329910262836046463247824229552446739560936421883955550669018767417251880328658725107130382352812706277567615192798374156520911143806212215110449366090878996250659238671587469877333113186491281476247771650108615682536240361315102562272874150690105504934733280746346608115688575277050930239312419956829728285109473016187834257339578618141860699935279768658463431000068914951441153301409985106394249482285831750749366330748064975139626670914970808647949067040945112035192967256413439068525727184499919461741439526717828877308716608518523777887796386237783937404831095509003703071391867963149326757950974255467625112918834946287029961662098469237964833302836420041857765355153174397400810046496653191419512249328816830775638114446635510318972957541029133142667171421189696350676330379075088863607890625167880282953819488995370208383627972559939253538739219811077512111092784185215385232534087876873136289540061366248470046855608241490245502852281491936631878287436137401078532768992483940858165265006513316685976949321843111455721739256407513567242525984495857572430221508019163445136526488174199224602618493669326420277989789709300397109851892073113748604518872710328207747447403799701321408536474492679519963751377659855621201596224806885969671661276439450991012269258765047397865002961038011267673391450482130428001507459343228294321255280916946970406766402971756477150832752077715045150191762006997275302444252871705268253708344240634871045941864081601866917407795079209049750696738880182098615873917949266535692037780337558588109908951945942831061620110101239841551137933670877014806386799695155787167594992350142542053536775500050813717046254204712845758653003516947338286280128754325844558429041326100809340993824897282202438985802241225243702879636517560856519465314887446974067101905405468414597553097656195605151853799520991653510880200132014864410274777547675571000321534549117231051390257964507429992106891268703812622114400182630559445993059515542877822705860921382112657027679223543102145206334130843765010948977443223137877664358979618744351821882855939005608758957325408037377310337722986689937058903359726128212981507331557997721259809462164467704369648517863813015213621788598184355829633756877899715411879885075560486845634252456082245106632958120806307725804982378825925833288917148750772882748168920472497567058548393659780795840870128044084131271921669138943854531404499212262543661133548702896500518030133895300944139029984036237465012706771987689174112854094727477553413469448448493861308099529685718478459757167431440328304781461935349549292582109761382466048141144169808719608070961676034404927528911805022897224208402625978686135616217252830256237947151118761836184147069295331716779889639945145034218968335645631443736882122326219443401035235581072962220822506849391491617661709079768545250844529996615473436600297806736556630847743835122035941657213180297110956050968720790654234384989237993724330483210524266673042135445422120522375489275044274415785891964385261289612903609584302248206105239238341474479509017525496322597992342341952158175282330250879960127016667700969260597830354249379199884626027315678474122273253015368097986741847625439223822201814422934209681111771240720806789015868383873077944416215597419936169390515654328368283800353082142879299664904152640231254988244191733196802212136905417191551770759526997683424485841314551772610540142261208661218896664895959020869673520423403312210879898188048383892279034292654504047049590529836624523213000493906782616789917264443658940395829768223422501166891369964886738180563645376016146545338947411918764582575027924210284545799290838981609977430874273017260467089772197263029704451706266916194960471888333424196804390586671530997252694603835759416308535544013770143528625367232049718285442060408539643176646697484564317593391758654699565004784691988538294264737052249913789974099087222517743220766827756947953093881403605614659194047100704628412524494981609212317830918207055608082048822037099126305074020568644537213237829199005286110646200796098011654545817873389191212853628577046900395242403384868959333039334599524927764326215699645257177192286815383889849809889495894878513507373859341811905660209531790773454112775955330076931295383340662754202504661622748778762192840910519545731967687428408091484288632275777315740646695774428573014076136341464835080982896129937671397840498505012613880074844344000717381947448487426804958227551361015721304473220551782410586674496087291127764328926619081428692680557989280676595602555293734054156983062512003667660627841126406132977845807952707918593011495315224333712595106639047857040677813105205419370694081212179821128107711216100067532083324920055607668869652556141456690391775517983824531408990870850815617256176171632182656376369943383231167403471878732883178735105655025816332427391078689585132540796809600915074923811907279573777429251677689303727570088786268809250295333714479708307021743435669115719247838945103877275400013928661832615562272767589606677003549695650129359857690019445401629375867762202089049523790741375212139068161954478872697928642537643391697739156768281593729810674822312716697940495690621195587662570353284979997211584443218349289637870388257538970270808258089436007103540120764783704486252141706108121820680626294920657237390426509506570521767672603807179113552912959964254866453516274844083697421051447840286306178480451885219636713535483427592912755516586779418453160853010155737281438646707058177952744018860724532307732015062870461123361363066917568133018772527133993970944096267985429821851396955297919826645807237596840674180665541279965352543909684878256850393725590515203996907336230586054916773871391432249592104935783167772509040080164403328657097882400745419103552011106915382802828183811328947253855871353379753525278868182632125598680658039993407689063948723797096061356261063572384348948495177457642510645549605919008919229710047989897601384594558242784580979554044025153120833728509574161638826630055642734161390124274925994364437687058796969444313738094204887362046595989717732625958727109290542576587036023778452305233089744221146294313024524873158629648323304693826369984348414507454704094251892700288527826413550148728600134183945035586727144520626991433621178618024090395217589905265285619914743705291174066414839608834597408971613257483101142446831308699522317873115730510118180449049857766202887701016334172771152681611608808709171070136275579953895501519612871837693574645198611551564209838146859882712212373772058991143109511824222969416651758061037355379960851953562838334157454216054184538331431723126552755199758825735761763079534335489676069292660694396099287362445378541705770410728721371703231394763409660545422151320338258749806852305049442211810181533488763410599594913506946674292508494440417546994827419970641277311575456662582646327709973461280136152583093599335322162611262769268922084389260495296077801979910348395258490103926439654768802802679517150511082684923659793296548791774096275773797542062560272891789496287307510441257417747208460230702259178814472593761019538242727186622234447761937446095537769252024870986669121335364258108242567754194547152797560808701845638827221408810239734534184101757776554606453314053037920870051793905269022243180259980104844501286199765786372498701483836050979073530273426488136506734812123178892847197756419845854410619141261692431546884246464764852261844778002339581488660098801103278573897666406788583807719156549035736113539656248153900330894621355836933965084117201480321061002934935041324045178337245162841746673199276020366584454003166236003963405090154163853697741487831731266462486662053261346435939941892368177239968562677424770708449194424601890965072018350982717406190728375524914275454222797588677932408157584727203359606656933252442006894180157142562333844527113205458865300527328374297126925235975200934260147898945552850731963733580851096506941966808746286481776547365682870822211926394378220673666387992227239973019730003921431041920455536565927501164127358832943287154237014597256929776083218370499070288139523346369474297012903629592809829424073282538578251098308067315604169754154785659393887239319827365873665739710883463656614048384508924458207072881822443154437620555747138197787852643468696644031181163261832030980333358234516217997428004171271626113826193400431329048711227937135073859336191427692363514055411538851053302937968301722255940977297393194508410235304549225656492203514943908003981233979619199135564677282842373634784770784812504527633824748182961439235332781177850686274412977845175490467471119225902591851768263190324994900091225732696153151160861453373150956342495751552085500366360133161595802527504064730248440185357440219027300465949215402543924098514795949445085178804409798441479702942748492714369968017948578653094199013678224818954603298082460139301747903495736280931802528005173572125837462991476207116349673408682376847662667060619395766856367900330262783826991536438245887577769736497328933622539723585441047576708485574305060915809840862020932732844871717775521509807854988350257321616630074681251780532189103229868122479979683117445098737136011215819397689583445707894093244201769020825614941316515774125489991619304924403181067396746939637981826071973576551557116731981866697486410184206029142716026485758234876473465360959717667570577584447332251659272195652540692050049574774856753699373524348615926144346325230180054994986706757045113273573267084590912281070992116885401027821363138430335089666900989049326156781646874778176638472443400651235808976498112398101463888699369388449511878513904086251369725480604108793645664082307120479992284626600610532760369800994233883900638505839882262734718218938237509201856976928018442118766409538259268130315023234989968537601292002447257223546119301878801591173719533927805688759448614582502102398393322846504378336444529271721723452919933716320905318944318043077771658703311618530161422309990276095908352737759870281078144526576342440780365415100046590663018922388035029869496386330932418574566087102141006304292051693010284625233240451970570275400044930205164628044898523779017475065933343975882610267532164720676473531980125857015233322792903999774614664119099739697637055127665245163631184234070152270522642804061597149763575331177774101320731979829145047894425612219371122927471523506135990434518986592801167075942623073183449710254059352566478326834828674913873779699919761625594729760845252491382395654324083742924060616117036916698578740872639825746516922423535761274838427164197260762207424081240415863568889159134335341046143046542650479965556715911243326957732725246019228986442507487485762084959297517670568169711783120759681228090725869115306533252161400579998284250237051159421594522091369375404506679558757678964751983505367969690492695852753301586380907004395362285112180315631782580243964309917829446807247195865587272217444128434825676301141631567867888978163664033723770827531309967661911237243407925401006914426145473092881753165527310531965506256720709003040357924267168651204506318159339591417972625800058376056765763427466194309494368558519186955069649394576263886604810968702884221159764826848407657788759981166027257715200215263053494643467493929686084822320770063637629714493609727028678207283236260306582955611408592176656126941565934705758455175702517632734345456864074132429091191373337791714551763682610308118207084267669416440860418368855036505246972439441533205401031519962908977164456131193115916781137047358250447227188294090630163316581366652066571809763127219727780016866781682769034692448714074111072275791727327917565654792806157288445685885915637477285509145491811793872318119806159488474796194604184226484785180836737774781832287753778950707579110571303050823144319275596741502658598036736883274757724110956784777979062687860039379451283832294682322325760397325355664088089435471682674131736435581550814246696730731678057589957315436367511022479750417339992253791552090969734457542512472665158309207378582480333781838979001116827861703822913928338936598877698573252087504862703983494879965046361824081507200391689747871890517912070770829774341372419000326935947302633623290270639413167224988293997326661866241982358215696343154914128297660800705586086967750817264800739399479580876687294878480738478067491641221418700406493484470623537065856800005886251066225573316250767225302852672482314175768249575785736596699715337582512877191276454947267154639808099126364469851462624080156853359862587851683024652388480327525567159974727456158898258250827027541183350982160959776040960261391588149521986348517371803626313459867862624939714714941232270526544461842930214327671921061518838728555324315911600529733254458412987479967754761141662347103888728115347815539215729695874864703398225016166430567922542046505739078041394972080352557426617517481142342653671316993649612136487165585172921090262578305035339650462997247337840371886052816504972690805603991439144213286880408145208184305075419137175199805103019810289340831719308948440242891490906167776874736827741181884218879396798350772604640843522095175574670341259604424044611676322335160698089618220495833900511572354836566803028726805457899442552288299373111295807541797537686857079898485753545232505781440028217860972028239690722113436260893948738752500323122247818773903814763302496614707777725004147450021102386736061173492632854567165158153047525047338011651841119199119004895603469038237469860562101459268305396062953603429302498904037787398797765830477634016148948620810855645691640157073826120657771316024733263475287033975665171932259059445464252377113058820981256851695376878283715504314215278353124918512692090825257513880879622658192424596296411972554477337349370723925702204614697486690856509347409749228913031134920729438953089376235785902703357304612647567378220889762925707457084154813076642308218826972094916977739366996547576503399435330065191896083828598892125690930642103306960462689535681276217504174296677553675651914068810346347969328409491852203833245547614232997944606447320195371380751075290524814460568364728234696006835637388741071251796614266595860771241014687658057583433337095873365767366841445721881217379303566244300309733116966064866897121147624840188602404700523203099930538008850785914414592358447057074816195573734873710226566668200283235231217170879269412468487567921864133378086990676577019809095418879001368961345228022312292522769550919052777688981405362303892597315186418457653657251378162821486754409501290786390581052926290614427388687177745925297045924792273544968718766806142321239405469497073182519142554985003318160809496562284066167455044416651876884186474423569745962523708890616399873328109125933230396602682758976458937008322900396598611574634399156664156605483750421849081919495584063042370458507197451299674411419368290042549252689258818766709042995456541736351070375314516628075760212706330359825903959408951459364400377614466721907132564917916308967903112726036312676052241427065965897216859562922420876289195340064595639947978199272372015280402445493483079852841056382183056461353420414513102173573811422402697945815836677611963067358493557557294262533667460594156909281580381601354762982308217740884470345389223911677992633366354911907075231768828504663666486700615582983694529661582694132728516537229788263709604375173002864051269717325531181106168520137879857764701944302570719059159472510216321238751035640834333895786098891817242447111032406511792884737128905078391885255796701186690609367075926252128969361222046737195747743189704876594860254035698324926301209613723628169919517613425560622246518779674701674957006411561408585927539183361821482492793569068467649512760294321354901372387261529302314511566659925448565943981512385836232903305032743582667548586943611173320357827875884514973184929677994534893861964014147083329964194954603519144666778264033484861867004421832450762240286847885267288004170195226191529770531444772501355143741861932115149842123800907659581546483132594414594933499853618420162661050774492310080030938621979251197237340363714672798289141457762922026290393553633308576965911330066968694452374774336976413827897796651804081062394807814259491214806665774704415273800313785677451916460033572225041677029862023080750542380869798594234315679919037661783694761166645388049192056700550733987215121349964912960944465673805192484142395113734429862024606752293926541165548406837264808059304268483672007227140588799654342545634880895981717256685648914459715076272039283775917269330830905729065413493786959773351846600705989371279145573107839705798148138611346971128072505938400081261018761825498406101333903826050351152017396399829975929270154140443742901158056359304559305044114103609600441750519901973775296608151584751799390163706862548622510164304456069374824493802123759552018600835451469930724902844965540266106853058580242587124914494661449439314620436652775653015962281060704824044682750478888796415525372081084357053331392103738052014772447708792009140331418694095171509614631209589373327578608089444598248652341192455581519746879827404082322879280016541192476396411039688380778782253611854391213960774570908363844851576484189429669187738085923802715009630277021922986360718036797587108371406645819543094379042522291876724036583876606601567109819710919456081069434006383772700659273915395060151617653711482928746143246808325375226481846192088092128332480570792790805259066609099153181806857041548648026147823171527564094424670700354841382127577734459056214924157240442598497866422052651345230160977732133066489969288563907822031656145391174328691852069787215064927722700565364443470502327406116450093275419235652413112771645336883369180087864506778491956834314608498432570279832004711648875458368096242778975917636802459072839630850842938084433586411726398252793038864062963964905677440843642733391607587827550323915112504414045041962181475732435035609362071848922335567287983071577024448508297525656348702866791287737120760962333130184497181914705572070995722368247045124095179707648807359373992901568623624982823009499306085501757047523621935002965281495068129661712931276861792874514699265982035865252587308666802175385310143814037562479928132551162072971664060926645524283166123249647057303992620159360897822171460288373231781886599624630787267271433898533680208089814123492180543343149129813590927596606009033766272560200101005932881563326437373727816511131265793837528273767508316847495748525390748989615338870548933332385626833146344454903126775641585001250684435144635649604226648630937564683774503487400287837161366584997841469220762391783848564171335238878073014787068000549508165203945272005325596287294130336835624955888999320322127519136155816403362935794589913171212144826617048786795200441536103717827810522335425179524429517921900031355128090060904116866031141612463622327088918075690749545683079155501107771984868476044155410780364797542716416922824941399922532382270543271981354973113043656018371150532132451744726427034030584372538490004258240110226035322890137984821495822239602030340127269952330305891605094495042633477218124763906561038203238767642271247468605167287861182288127122302141120495775530603564182680856066831185279166726987738602620111629696317066100516273018205055170405277759405588950568849326487926128205546329139465023662303499935784065167316823549564766597537712353160491364467796160215927191281066775564756052176538312834657605408747477913777370658249558554557351618282549389194441274937531479893828083063532122347587046269475694743178738116885055175235616432333215121554559404003963442017611014768289510396781761558028924182217091353759901668630591018358267739759887597305929177666068267620520016710531406904036061977067130430689538163017038991961064856221389071848242740633162088411444210119940057860554191381878627482548035194911208006265673088282148505355770359834935679029798341104497036903160174402122879479036175408136078492496913847476431982039915089617359863495465129056727182451561954577143192790334624449045807477275050866762094295139229074377479972405986769648045494147284960485403385823925899902866571855875944717468298720608521551176022959129095724486139424061862906483680225591370073984748833880286464856661860919185806181885825390308156024618017198156456280231414142185049862031846727471734782301686314317095070915925175519609447155715009399475282628359291090900612355261790078562944060916191765068178083722835159806362120387585531507286957419795104359474312555480937625150826402933794545703766558817668204969866401737209859341009948506374840683781957917191219477877452187003839635989220595301088879721541113343797147993520786837016506936888141861472186548659186430604246127809772217168598659168741660309856415949748404596731008374124241163300470985175437067611676462972459963382525637131205707379525348492500206930865183427977776909196486754772375750640872089634735145149899959393371150314134064824948125709149293089055063990949283524191777921389006707495229918907957769541020602259505065904383945820171317454958670917771369650388224113622182003062740581738179530407590369451632561742938141115502299523544088802588561178201746425849049811765924244119669525623764136556486238674398769954904259404802489884628211004470921874302372530138435292182469171979734537699425455196126455247780295013308263472600748386193114600599363151564014813020622764844874108870482322369207694060651452348749642151661302513289099480762167865289783427198382455709032134205932055048818516348776274698746772787565936594070996122620324304096770599980014973830085252172356533678284243931713931219085538775829510653227625060894724336977785358822939517358305591066901235177902758792895695106008409958166435511448237528070095269475591808158518641259669687865064225575974855343724136079018999494782039986888479109796529080479157819570208388342646839536183007418929785604196416334582797408516751593593900358952350668300283174215229050905946694656216969173222521283404874046732299865003756195400190823257716762769366126378602185001790081098062707957538662863908723246675457278557029807698791832637034505899724276619509799895989277479186926976222977670871822375968657475379346029682367639760500104430854701443520973143945266452144452658873876792952449532600666066869888006034697854388866436924294092544208368468309833876545854018484536187692850538899507159839995150399963833616776190043621548931109105252386145805795619582848061105330875106400800457031778043138476898122981624395214126222808021549889530831202963923406311446656728424992399829903896137187696349863694738525027154015884338950183150763230176058356795735403695314693681123369235030316557770275848659976442883088015001790448904624110873908094089319558025636026205525077286657669577019094439208381642136294458503982835783529011019017380233548255537014652628173727974836802715604301172666434177913015630414163827809055044968003245580504799315689504612703752582847187746833929662138598925901793402120328596809832628371074752726936750199814367734249221956716671384273162109620291948478119524672779082335486441069763196544765198952670542508332753944622747842821335322572959222350518123520228751147561760969151192582664082319207244056179507284131780985729339815559832624753214652798925265915487349894872326370030285322221846432081578260755622190469971894453070619906725137099921672327969460037809055481057230260251243676260819587215644901976516166749734793459289412012900257814609662151020575855483458405709310498229547436616047033450150045748219290255722129156820197568205456955392192201151785533121640873123276201376920604658734282136709585126640510844641033996462616038361750152506157513024688849694689348509802129219202660555394285040257116166480424800153491993938609619140420132125606789413708339607389330877802394239073609311351864712242597970529354164653992268857457831050739787883807177825575868302506538600284040810330954046518504082752279481693826013938730408936475389115335594436875234196435612576840239637363312982894542822321669858302058618206149121651328356523643474915677701510649045071502834188626164304079357431236377880420830294220895626649429188095891480232521176332193492916150238503877179553933629497188055687597702095076673010571810785515228097746764251809199748190858011947679247405998724443994725885452999602914379279823120522608674598109141424136383153715911199794693408185544916715282769684487678462321457933625854111428256683682271947689121295742172758336699663040581060523290426010682477731246700525379962366963899429151194703248281426553824811540567982169579518794287063742923518893116584523722187455465227154850669369651444773303381983749986193042662918716970938369966315475708439246661514013916395941238094809144848795455041055497830293178816631241248940978770592742602385091092141669368198571218026263761133576995433840392557002275408840420661991711305514842366175637074827177300618401630463831549154030237955055524729554847530101530719771628963840870194114077155497994305754050174219098571812599776777880940526105068994768708731948464988251248115776926927273052038311692155327644100379272235955157147171840315446525809871062781731217962510224051749934609979635063056976990823130387817523618255293377255227498466136524075462909753473801181064680693680496130538511194957115896171210484467938805129160305291114632189966690891801238071483610457815249396524432948298106019235484424761281650375439820559521764588001813508294111716012861069600424213743743108167833590930481068171079102484230049562721323272539834616842673521738228233294747983965694914961906828548734970083003184966430680561202757673909560574758180279730784864709784769563153354952782267071853723588214937547707075674325379149298398350205072157075535772406114948194929871835036853351523544846802497079394635300902023192152649788687645382264638639307535371370171318786715115651268830486376387165072690378595907912777802358377405319721829419925176188597310445130843805938541740882044204400575926801184645746210916693207594340359768557637159246655560620179606887717135360318125253338826467368477090147460701664523821367038113085318326649006795223264347611042841524603299607882279246678261924359489440670521279562763343200885983785657434561100221230025432486295611121087809146971398035241747238376529703105438754836903083653800228717809548129090167947445066563541793999645845674092777762651532875002291222709598882359676904076262108769718485219706458796500564459332299671060585456843118947708255740390658224298383009301935975985707014989735422143959485681056579652247784274948039210307989748711976076002175179740446227830398235606327683037673135707687543517429484780725700109710747777512653931385844398421959490965181964569753750550493564610611979121544968925052652530235135087865222114799106526807344537531291242504457016306354851471114230109583950869897359965020152721513328479015443465313881757028713458552771124819384849577965830370260560571183647733715263442862731597459458152185095766620228263828920935245835177129285806292641061786640838030137431419719469988296541151214526626557912387436583307621572365208526599218478514188149357449086367823232195664910811942341818669428019021937718892980742772147752875557243309597233947029604548935634485978434358091745947332086850470849045589828245070305729506833645170654673941230975135226231785866690603462578490236841551332404204931505981988385556468684923650728328810363342598823930360650162688569734325095006796903082724665450573528877119497444715848740926897463878266601967078659365378315298182723786726256845120156234678597037549407020683581732928918840041712734268299341378164990272570985226197947664029038751136069558262644090144044505097806964409643960548391866978292627368851876348343924026235289970294993170894691705960686393108763249226403311457722354822840988142779985899172973054053743264598976781624083201784300997511748398009732056985621067156534184993747612818274441119857042772472117911499009210374807801018682409336069661600304493560828665873314514059974841999229883636205771014459018680502055983830190024456155820854199645203913568599599459165743258285968495251810483089378705146636550630653130383917571734874359114284914339948733659817397403269117000523521092428477313672357527105156644192835666305061575625441956275667953462817221406865416276524005973416987649038717967157331508745889939897535665005383553869438392054626904090301300800135572329714953667585858821041462015870441450542592142641523780770784318536693066537769471158208550538568768705009924366623857126562953232871505790339813879467603877555007434965847508404196376793263019340461312425032550726739299472789071785287928316468764528178714489073531813034386415889418244680337549952372459406876589576682253422440034777858348619256809043431380011198406794485292886765804067080736641360256293933791345842836022600602056920838966814774559249774683662137170802438172681176256713772526348794812267058867055760087732080715189444383155128813709820720514603393711449728690483175554041368007903675983483590578613598940423791868271577913154880547330818050057541030389049324486745222376388745867404053423337595066257871047391365606303411343009730985167433214093634822878254904868834280007605710018659668276436246413817564012033894908277545968899496608029167991677583372179039830105497671685839841481929241598778300852378012260655381432709879773296866861370387708276577835512531746572738551949998277974603467883150955651211658081881952167765414768681666748581356987758266064161055567828361237097875236385416034990759560931694716027151379329663205516630023268886232697020968839846572917763983623495967983759187670821013156615718227378417602095831882451295828328936989659606922753995541117459479916825523058670488935375600648794580564125678141131019218646966885947678752769815028771573702025645464229511223283104669828559589832906269367624945707263251020641581067272259119702268485178299623545939183915813822730859306456816748305594369681492771335219796480816585371838783484363016774637429607624400294167061103258297835383557767303080666016161792427902505494113872894130495580824478263477311033525667240689653806087271769449350928178826554117542622229785486285767256497855567594273763988661396146200893872180506061002236490826062684074604988518319338032735288308557982405638802388831999724008818106902895779973600947699950849612452184756602481819283251828090571429536214056512256266163117228055503608986619219504910534260464881684746935708646744267536265046801376890781674224341020223587976856027889562236684448976736312459501284178375873352817023103531950154115014184451093259638945084068825232368976299649845754619016357243882676386822567054738324971308783313056408551063895838247529564858375532621207552999818461432102327847986510952514118666611955008229553471263361936707885895933993890578089236454331588827139002392408403082366087452672144550249427603111411061371602764722519123577512544652840172556478903488822211120500060567976786824575026774562141619651896802522506237808217337528321958681688213560451171483840858587778909137862472807594096596694833797708995812279712704129265521384940445074247879159189526042444112736178165471360558334330336079134720343451364376226769065763386673890397090320881288295776593657560824674379303094215609003159312663569011631645998407426019865682025993193811931396839686587740008656664227759411876946805813424378678060266319522624249574105425143816742886047505530007479693985533153629600213164842735230583779300428753097528136484678063166322789473029582090196972462651437390913958492333931340333140764436986387685265885566589522843734781329313728363482872769751197068917166391573807210076400937098955826092608745659160034706294073903924634021318572924944900481782841751662009131332439892490460639244666819820393930036856135196952039034097019495503518677500061183621966283127088135710688908337077039066940451435431213359421286259447049652646470628366415879852450923097517173370060219571035272728138872610932918965823889813373907439581387849769548391727002736004313070414440777237006321212500896551764589920488110372951959482811982229280146980928148379102482218401749022687623167629386854939898978123267608932970012218852929617990586810150781350479915553812266708051016117832602194778394360962341000945766501954644609383710895312967471117191818122154421864653233635290594497111144606138089344231111345373941193781448294919044377528580988670056854620661611086642767388868455372259956085219202904996748749358249169533931416247590751313975245547528738236200560566298895144499100921813629990708094360768097677822426791105873632930475535637823634672799434284655618737122035690831897562105759617112159919150690883454209310542606679952953994790999250041373038421515110059691737037936722605724183573856328238203753453342392153031637020885810060564979423570537890888416201574829879225235822192920265029228124456487008102758989617015064782220858350429758050394779137729068573819989217947005985304896870247297489702425231120350193945842550878876021231694309769982427584203168652341806359696514398078316766435619208960965155950817801524577988024805297372270213614717825679243699412318462676517462611970926419198975780951182746074588038183622189044967498340650738344369655304484444932067434199966749327960485233372438133724038587135339072609334540169120100972705085308910163944523511415856563668049383452798547178866046713458182517366270983285926227541106651693716623627795356307896649582079330065790492176438019444000177516650981061416415450015220408627004106025997543681498825084452935221930722026540594327644246298988958824990742214374324343304467083779507912853262137099141287298263823230352670407482423400279175811839589995860285713563995789551672874565953133128045155241334988786906252463252690747239705708945807670499607345963787905672691612591322922772587880122333700391848492289955359354094785438409041424807837539334629536785669559279723070883409492011574646842750116376034700846813635697668786856984518587318905748493064142163078662023220734996024823966393168709633740005836146306382257229737429181116573849014771653116433736542187068040926021188434556737494185714708549961947004184751790813313000285276650086199456765234653786511834690074049506803266585243178271403286741049394452391398112562632740033107040145285552253584598114708892053857239635675992168705723010683186181963601848290853122538241368645223646799066168271997642508853353805386586028143338096927124035363268386164197445642238917921271213209634336787792617500576535738182291412632396221721944366082074008987475585567069875361420480819582059309611509377211883754637477432581792263040927099090097385971531428796752403890102479432346362984892364099466707383913052475342242901371958984710652025942989442874840971972897675363265691282830108367398728570035725099771176920537293162860877186005403057267059039862170997145731772137049984663347887199980522486132432841516499079903496855934945172543729925758603312188091427202295667179360051570360041035106106660441015417697572214842971961992310797811453292526680592442968549557188962057428473399220748400129404699280333337068874038613304978579628392104756874298555320534139288343249824290382045896138197115885768350920932922996975919480895380060744947841001919078170853238737708820119239521051237174404871977419116044224631935863800964219025222913307809071528800500322761588923154563319613435890992023540881175418256279856650895606540867735255816795226789601710869113308983446899307411621960610950328154511126160551589404815521673465177948948449443858440936083700633740864476745535978302728160498182448927699018662494354906338747311107518257702302203169923462641603228566987825016942591444669431724226272888749686054794352577048725383922361212580018301974983040509283163746489564648428617158727345610270657663256973644190510794611529183312818502300445888095113987798264251228932110899771271538101361543866750281636685245344116872941011559164295775358051889332169232013877085221556101350835125200409018352273569538711828668607040902128414655240488570710972774575209205098340691622434633541144163658299210548071402205644673605288868236564786394701687580928306631312276813057730403108717810114045990953339263035769521804720883768018800948553154320276953810146557835295904595543201131046155775430398927777682654045692013962901881832073901754014709059557943771269426863172518279715282941461056673880168673532533916716498001569992095916290279494600728625871246440742448159036473507674539523825820217006475516391330364509275865431124551625740369945645654594286911456429100633546471765176556679089384002880482489743362971337414818957840892927275709251127854885039031709412883685534160497953974796265479608669929428731313837721568153579320351007611282656480241839346930883733178673620066467381604235406838852663003556973630813808862141218123142242366532857264579793653823401294298009302195784872992140433796502658872970844530964545095073658491484599292154408183662365667611986828388715818226440422522144931511125514948789166266988002178293657899697006958176349246460640381151694121013113255361506081639689318182816222925607060948012470473437766679598695542406711377551463863089064038205420163912682389223256732028523581882704997172874271499300261354049578856339326224470982033988384994614484889868876804222667920030183311249772628217984015467570248280224427055338896601757122187517160614069453861296659922401183318386973215945010118396472086420010309342813844037293939568997380252034066589326727844405844045401373086647156740151251215470525684142733936081781094000757207986589310402194332111090440822055802023625143649528906174438613452120075115081086436829103930811997659286982760833146240595739820235334760556362817058729557039388106566584797762989662222398740887855354966258328610326072238634331698326000156083980361002087045998380007277312355866100068810511245623037957851888205613715047146533934111251680738895332749731364384401987555137150842640332718310461595298652196014029368533752460298972482618583600168689576406160732560679423433550078007986702822253803469148391397469397970142774295738558126226035367451479268293353787362516492468629774834619953553557931283471164694233324292980974955074903977412027028881307055044028133031926634685945447028023768363895822364393508091781567755983012845892433910290606657836877006905394299397502327272112957631531137792770710785915504879503614262651833322885194915485385191391959415201214292908647264905574766439905607249086503553479232565504067435019095907272829546811915421654523162785996968545780717113943049645117326538791105923866195379563428752137292808261382510142380731222963852666288270045109661487592915515844498267179563246468816397614950040746276295881430490216432465613321670044181665412507233636284269786190439874938467404218253275982206988483867281386172457982280483572900372875681789436857907671257151162222689034361449979021663578623952859360605346394942911156811114691695910502510951666778957793204440154543848655277687117935173014689758395581152978227286227785864301814283763085209196049444823632134207315068749111827761625758208479480145853571344487344147829995665509134870575621982568958254367139836755556520002911112458355088867585138321035021527316442264164651182111041989485544415761119262152771262027740388839694625617536266525569893353120927484274248790667994763035271410355568386896472432443364038038409007160868864465929063629624226980128585212028400991693675467724881193283041999017186040880536566022232378621648454853810945787614467589190212570947876145165263916830522821968392694115330436582829306934045834725136143796793869818763435961515484587688568695832975956130854155617959410035407614985193950419003190855392671221331543331423868660182537836942803583558494369374057140231148820753797758124764228357267997962677154375083561746454569288897911389530202500768532880075805760232593843525913868681492922943908134584614660705772559956447583071127922836638237933223141234317966905586426781789449845681810677777925427314603190908409869763257183912924324018629769073935728963833206377667874683888927231656067813947360891387899037008038701485754214314896242729074711821879184117647578788385036569614301150768510228619043349065380720655554453989252259388612377392381313005861079976320439230451790722631171572334031963277200514425330245520404314982999723609452314473994499293306887515631463649952057135638927022763807786554114929492176637340369188413149550281238767039218001646213711833676199915434891480757308344899084161977194658335434599356982517638816826814780330159637986523695197488833985798533675060677808593086955152579662324500811583344852130219110716787797911946119549536859790710558306584878799434077023142056786625952946306792261897088445135132616184329887442171909558846120519168990210068164419807834507955117706434816428194596502777873641743779345424152591842901195560730325103885710705130004471231574795645642931932831205706459072028926543910732895471513269275388721091623731540523412913816648003325408128259986448914561948546755850827467137020650879930798174863143738626541398744634111004452075317955874071646284913115265396756780598039266643302061041027994366581200071245919950354873542335447565539206336810844168974736852867600683319767430675393331314631376057761006877038313081933313988493030306908957083122555184794000946621771464653805564599566778593808027715198387850636594101340329470957892129749710996413384359873680535433031430312331391268697479832589629110292614101064690950158896288763294839605220637085657986723460691949609124429841196238090414043001723519646748975290353597869423789800243671403231733800263313345147080740008726577494174346044162917439145998197465565025393241813492759770885648419489955196050128586392808872302555125285868293650799553097258011693027352001248345956413747664379877252757172616938760311190456580456821706177664947088036849154602610875164788039956216734021104985674113010509614223140383529185123146410371645971954025097714212979969471516110754559576454267196477796257377249760873465373272763383185717387500889510575606453192152061189741513094687695722321060531457868826550630100429895980933573984534805819012712645659416975682254166085533390381480926431737563578925234096978323175019040153248630494430229661112537681659250047982634157516447731192484200029164824928386457455705604395171224244535535032642364174220068764205786582627292080209405267707060238174296403923631383352539730849134580851100526174378880220530888454075811431941936356143236468403765951496674972187991750480476245076472224916558963033950204500106148467901934018754795918298730764275026652002703411131886370576109946527279343818973883319332395521505870001189380593708082969841671616183599525751652933667763852473023697518310454383484893108828682267418001062088029501388189450997090056622337441454654913282073198385264674791191126947265726971037776317964336044986880907339626257196332780630989428128369190278090148984000614947481223015692688716821906593903278027684214298815724985947750125441973621064951578389418693418887547252647243786650659976830200993970224399729423529056018994109236520919992682338263800992243176997699908394746023419805974254682316635220320728045173545769811268358389537935954056458479297283434001466676778831854469387539835939540405597966931590215033395167938427813888991727805164921815763269217225023636950021602977338621307908742480049145561301691067520650417098625853708748399139941104914682388798368567939127169404064599945901669319606015498264476351059290584672871405439204202297597604853800279852264793421640150351176553748797207063535349547916399910988018489045228348814362149557122578412524187087456397853689070514704043569102219635287989759719063248452748582574238036401680729599972230406985593851136845615200081421361637694673357742110657305535823167070391191916771020937486389905718204979962152210117905830828974039989676552240113344997298662278637629135018340304840366628823997965541800915249112465853175667321799263213231209174926351772292849852213433287919997425863506036142750335237763774524482051887336518975706371140232367764519584108073277280282702820307702330410620086909187882773594995244030887987586719246424508687562781665663368951975060530312177891075780320613956972283548904840633228235536348496929303807747181569405399256677964433350501613134267507488644753107396939995194705020019702374982624524298804394500940422589557404513640275361855329001168642574320525926943652843580399930198247203174794814275668178418431900467944311737090626769443583420010756115534678778334662310819039702245358738554540482774608789692828280909287013642290245626827213622243907087610934445339063734425441544818843987968676085810713950441106153432279845723469866984654359985273811179611397063613979229019965913295028119097771516973129574273442641824128256629203938830953334695406334232919919788218636940617886480966189739920793223704825420447870680539099389019510960844873402181033478183838691147009253597959975067700755163383179259636599488175913726235804485065775247714374902038012728910585049860673970273720745555694376660123646094501299282859816295854857439674586134716184318176034468346342535441628697407304028567514317502042757272793817090155916288563102304772463347323967641492137686031794516386556944850179831720177790626927847890542138671791039456628918646142952945223872700553888952012325691180739762990856409585576153072775702144526359427861119887512102675910408270386129112195076973362134064201934953953505082188805326986149256917497615943889764598321827520186399247155443674914030288784971557943598677102843675423001657155793044270728147010815435341434401832680204377899245236159743235430613794280723936377655996729603501885081442082281256933712021259130152687954129172256344404563000596040111234165180984080081160105267538608006423997993868626027260943133350834640063515884051306893580915079946808182769078256914052333073122738692138826976083095926077130942677427271413258192391180110966730026128474899707962407370857709047198063886682106571902586612311922091178846274679978650766776779776645449086036843749674637528186160980138629269768685766064944199069850302257896624966560722630239680880777547336129352686017200188899088135774337023931196028982598545951828060184974186233679017029844870035427739225321020755687789530405483316478579923125879062356995501274222285157876478093274604585936892160701887288427222967561192597786609884768231308982148479790150907563929033167136226285208817017337765226275954223728869358337219892241579329861400980837282357676340975883294727524392717817272559432815851030126281935914781771562985716941916812585415210943760334652514268557244555589204836657295659112267663402910466821780732556181038104104265690910298648497811310069948378309005791017700992056592013824334330519460036308591039554720592241806954044115873455351267496948625438323679106032172096256793162443672895736813542598212266667425713006674181684912369510934407415742151451781597944870366314671918400476290631271887589966561649443792901143059553659758757021099048797121796227939897104475418691619764009028304876501876184955415854404676233541215961240603154918268420851639182335053270504161573414724967775533462889597697101607000391376092204597850433318821754278268027796391823661711723361912299495226654715400340152171608243949224777767153869997897726935205590036614032399585137907441725235014747362177684104733252188290171833527718274741905048837351015597963646270803590363769537458725446933367060068903670122050693639462063906773647453290224794277615692835373111110039290197783436451877226504002370289396244484123482261950599547218109815848483061689997898873328887280882479630939368071363835950305960898162685033941197138031845272827979288479846610236637594110104816652379142035588234292429505880097818001785731413556627065893294276945694086542079652526449130292297464284658371241056934536740402161586571286524727660213871732724459722599463665281183605078223890164082522578289718753608649117111843263909247797979889944287838193159351067982938325391567536783982900305058735650007747127198000728455326442562901497451149870777494713347605420292030399740836518887102473806172352141914588464955738007114656152825989138080706379106502490888524878510184848526985873447189636795956640145973709803841668367827990452648086926224528242525697402625510430508244899260136646495437957123509282113749500297499549455710643977479045571840004381889332065214105906417024305016730169548685160393605985729168363202196124587431776571962912534411056353436092144624717224884567487960325779133335625149771959818457059231477581963768449931650041296421368298632839829334484819118679484040968879332685454448348107509380163825932000821750408689054214137830854050336847515589836757595629665622553367093466686684061727560409836131324541454440402407878697972363755656696526783586576164434795582300992783055963508772171463922595237312406826198658186741877220451168585331629488823386812739210433691348812469343283241182174838104381631625643044714775085632869804164533847403982101603362102730264888912880451411918400691047659064137724302677972034216968033734004977924300546182261415073406943079259397044573950344507439488079098755467615840122391202530386164341114122898051093516642326761837895235579651279963028034368826339323412480508086799577939902527975562008354160586971858106170326789190221607364475917585521905837591839136317678254781792182103918790410531253694870348354145871723274142779953902154922691469480186955045482891957329974568165761165565089156524201958163242932982360819006184585299465522918837838594227413108111628142713924999582355839317293725268804100692573103587136089006804222525171338280381441380119303647775340609536684155781411301736870700986124870638418378095991112265114633186346212671757619599115116735861466705582885807398946578201103900870146885894298945994670408489078682305330671370056180028612883795500969945535344922497900834523457329741796140787210721460244019819288083424366892015381265809979118299946522660918382655892863878557792851005573493433281179274387380344546397102032174663675513186361574115475852950465752311216897838403770616822981254520199159108948020383177265155633763725601695687182323394664061804633633427019497383997627136240897382276446749876761342407714435342583914829861634768504051837468940367174728575335408848511953024491689454630756166006967359555958072005301020637674438183642005646393921213507671773765665855911889964510530671014004852906320164047081511028215712667556331710195227263733665959547683313855168020747092489528103558684517128019978389580736822615748870678654478622570388864640314583392586313976975875314868909867385118561103736361853066644377315834316908961646114191943495467669394087017577212687841221476831054040323329676033515745939838466377207674454465739280236064848751147899969091849350286797996250257152548736332735102783161106878946490044202170651491904861358554204346434202868864216439406414259594087002834536383378610052752987464773871550566557373744381989831268514499424270634149863083966363053114096501684409155288237135658966936420639519813804037683899163458812606268195138731134687436224145994255293150569726261418979443600599273334561292607712596570765215407085026872903953271396392011419018472636306094839504992365283713293016449945447559796376103128315396043311630753259993757778485822922187376048740524216661695388173730280560382813021826827123649764480855551829192893308029065166628936961445258705718172489918220036307729203635120429295626652636509369259791953475485529958759510265351955062934380848803341344400989921500259880957158383257763095345234723203375537897138497234139331669905469174984749221969479052028694514229265853388577985117412038231389203751810869043932106493198385503566773971321116368356279616316015453487762344684116071480803032718276622198655275056624584721328477231446193440411466556465296986409967270646460840613196040928233290499965081753745584773535524912239224568537032306945901705946115334311784859118541241615912365714543296605253102412395510504047097987407001121239883681011420966174359255008354579254671536749626518629790972373176085347714649354021961516699155361854843088199328374307801485360069158410477122799241032976471432815756758167682067290452455510676536797207632624361323096710046899915702312544524454462129237199411874324327944290471496773622968779340044311408830714708312038959445522139116148481091912764629623691260929528603407393668687617647837302733121060021556355095842044227137693861336486998559471657722284129689098602378103987069306745456209156854957093461842964212011098061706589788392955578945802920559453924639653441069649591602793228649799970370473668513422278814537995723265671085484660388866750284849910706454631793248097378020220155435268001006155390345789599597403546542281926875622747133145419830135231141468557587669664545263147624087197635272115379043942892171617535622621596784720109564312427953124404068261661185375198090853579006763937873350961889059929586469745140779393329027804466512360843101647683734105530302981091319930138698706615362518345634422979710938094061642213598661364374949790795871112155650204057287903692163891274365763635267875277514293842481163119513023018801054471244960668694787080377155826186962935860914390297783646005015098925608015454636223338454265219177805305772034128847943685738268065962919415492164939324520697373361030933451866465503063310075875055978182818151821269021299625457555882762341985566251217694530906568760226475934403334399422507876393341119155488245650348561601369024361340774820322253915816664110315192253720861600286707871917293667600132854716069929779133723352005585100891978929836966887829270123670415957435264562644689125645256976986433673626057770607823148625692836544775919357923344314572111149601092269975274269225660665016665772887383517839572985738423815543871638775839103691698032730288458185357078940820919567495919599277351377051108286703697302007673601632422055909980769294472504670179552936997824331510734298693573423304904540089106440005106149419273604221244317384804118085791261782574948425439874823923256052543851177565935387529130984457156899807310309665622818704427836810287660548475528615202816552815977183314690567903763358054732674961699892533072210008605343019038358806277906902668452538013140505732689951327811217580393708319194526766924488055475820044511390537704234432453891629884890338633266983998350786476572609321496172141656199209511190097167319140897615047952492797008569117977720931124850188168789404557180413398866369829054202082636156757556483140336463483847841640825357433132830593461765978641254927798672942866252846924711925585671975275466652493691369097365707210381909503939916716798542248817223085769434470879166693867867309865255272768097148739991770993350500559079346509080109600902072090711338064723433003961925765399659552465091706409282908138905245727705530775930960745992269209430194732553544163351084362086372658607187677034337790417437801025548922824365360447560502189871616137971161840485753073079152760619421241975747756544751319728521711022586509399006527697125813092114807142025109074565942514628604100629144353019351321003775762775559450498121371889394415665918171315377899673337072844248110095655471046422774934874815035468161799825106580537231216575507760838968965386709479891870642150141596553767088635066436920665598685446256332220858649853072802568013577746169435327514141468260521462083239753315424552050011645945753591202125840344353441903310839742953122050271615707877169541027920212703185745930653389602230713187168612449489051536106323445284453775879412492564885135888548387096069716887623995075462630095561877042187677819984181690534204649307907031914006055636951842576834903139037650045894148417869149661025588789435714872326906557315157614659472417610801012397457045137607391941681468875662724714178969589091005099373899975856152959672639371602798098121106015760214026231640362200720324979188215500397197227618500357539657129290814263964002019754364051635129927328429351879546950018826374971147912363962006960483592598492479780206357922432623242710683634068602348071949966927529997130491504980891392196219456006276460053612411913279950282080242989098328195910055697449121830431340690219913194573695720513238174926678768379131881068107396821081113903942247467402586365947368404354760375579062605956729041808501529938607303080054931910846548562897955779280815486537215635781404449762982112577869926491816932662777628249907956932769606694986251740149015161415579548424470258349692065748047007633958053188569873894718219764554782146297992383768322400016412107108535186015446001775845335927511759412607359726192096241399140354517090755495874257543865969264725528953761513433300374450203083721752237853120714871449730314618124094994312270525595560981856091742294159694257808173046510184027890945124708779252325066595753987465724018646133980420432109901748364300774826017763853516574089664780349346400687480790896540492818429090265155290078453114354810276589218756357698129846764082310293900899295173035346753225715260418979573754034017749974994114833484678844348627777020713421184675559769102653070827142144518343853859327470802521589202157383714640042794929841603430500620344868171842235188702241474218260830991839468961742571980737349240318203480905579733874768415925930519558539091988282821870123587646733310130134685435072695026639997230573904872225288263083312776196130905044644676963135786577953786248675986655755812474562962109970694245540353633116717091820171149789480790073508235001455725082791177376695234482452810423988914815913298144604858906821406462707103726524509599512761049735780810304113560844295270414545912798804019270671581680560122388030603524202925502867095941767515107388749190476056026684468814633591626203917844944163341561262713394574258335498411999248231383202920845837446135101410360926981922266388863604988401733639573552664755404196526213624317590717087789939310771693183669514214713669580520910023082445287194846528384435110835577186322684293274669973253417788401083828187693923255614418928453576757253629316455984866784409830139474824052977453830175016595449392972343434296461996734414528188870704813052577459258394877892542668830913686742298307750754821813628927333398854684671779709448855709593161898279143680932752056446162496638872687856302157152387029079932118797478018256116816496390856671320354121154165546993658495948458706537451804323358426766957471523698882397100374484596740539001927474806953233001902443632007852752234680350217803579295952160170814580159317578468530534008863593202829323517303875318361154394239156978649670239590668824657655544856043023803374685700733514835262663048972424189814304757749649414221668234428331099812426331419866709903096421538496816213037064336407817144918435310107812382866628296336144274924252651683574922100463333249442822062198593817451887367600683670999542946182737468512319419070115228710941716674664215236582818588323858157867885064531132230821524304922454104728875975965343216265893282074650491109078786157049119572434568397965610368983854365192601152919434829661342311135268318383709425931863732993723978098087444291207524993630273860026588662348870857326990467590609195366697773954077717976361747308344457945726517669070750212231279110868103223450629303355960623270776689351044089108501828137591282317041698477685852871360851698962475859845541220281864568567164964538243281706536352918395358723860923636455593155074864457247398670857301445572754672927619522071056333677703407356655375340590320979670340921259561975729329972709734600147058282047414207926782002860213659077437379352962182904054739321196464949980810366457442664801631449655469562708562700155316048066435426039475123595366645599251346095991542396257493121019453610058145733835644171071639668116429925957602172483647803422217620520554448235944005979428109554069300545982023362269673986784798267575861956610999760531863497232008271420660538862152903422178740319634648557122919446899108237549484517685789059446806915441752839537810327607626439394151818915955942326946781433194479166365190408306745232272304947765412753349654707110628770140273431625035738582792751866287745384319648606509540649153736143614812425299262568038204810417796880245542615450207769404032406288836036187957753678685609087317309286462121208600738633318666309986223910956820843800382596073879007426564632882022363213372424435549027028523389554989600925143271702924591287225582139982971800634511040300064462143399495507298806325446085708387042280928443743472565433017986124000113777910055728328741407236100054343462396811997872869153175765795373238038185890854467123508661851886130013714593785522947406298438173551301898125911081700879587229037325472569329481717525516549682171426469441183629546474211444756642003396725702448729694811309076955541885284357445443305004169035448671977676323691342255598297059522802661443370520407982569809527169591114640107338575587764962232752944586728210206373457388498925051510569799940250405093927582400607614112763946327392197597435056477192333358300080298967396587994882681759546849230358747018348406881617997545955529206819890089260652004032937024489842186353507639495172005446910596837900705515173337809880325185080551039944992774003883101114752145173131660545926899785151875496233448563396497082321844592117486244271257160690882999743522862364457619223546503873371475877076706648235731679987296752916796799309064633749391199695699391554609914794278177373074619101654728808457862351581001115658006208147330646411801181903416076065515254430143601409111887821490522497160027485769855520564213032662874685930813662587635611674105338281255469773349834782022430211179619916310215262008285269073877501418328161812129866986860720012634893598112016676851840035649548655490223876862931180573294249152272578775716535287163033979750206886777514058748556443568939006671450177575000473607960106558922207614632663625240519467042803231363137365591798529309955483955814920965194700749273808259667510267770810692431032612350999789799050465385491695416435762184720216784724123424457219114753638524320415263160403135242877824179395851552639302567619731630547137613453594072330656475704345905734886711330565861647024083450369305589559858361574884489947097181208821718755838854264741681997108572343670712935546302818550121175025848644873581230117468617344163610121230048738378493101148745466306052769602647778492410923023771616229910320433233085288660452690025644202469102518676194314769052717474134378807944134986316030235806449466917631087889333007173057659803739539370756709158415900894623124065070514413053393916786791799636327938232981628032918940935266985548693556044030109574412329668455685721146041625528661938987614454823951464933838163447949737222011305060183257055424846405238536698250808995458263010898812946864015373658946890442773232669663951388187396078499013234911608990194226723014621396825628074781224597221537281877567802130242439652951462156742869061610130634057375779558160574380939399424444702833997793262390280318286765361270470700129415567201336154920172665164623682620013276624523737189896905151214999363234905598541134341666795978318748376457864011811376329837758752317903760817639911706952288204488137224075931333837618944388751649461730129952857919458522111991382476872029021195014491459826262586545535214264048873114310920345815830369088591737041986952017460456358234790272109510015259453914980156171667488476379180451236174128620570159667144188077709687275686135397600867029780175738541519336301733592718646603987115187568882070391924697354236561248086889528429921249788070987636833083211429304992890245689459015068270982128967654997835108360895357648701996130571243184157968121568754349601803674881830972086376703870936071459108653235792461409667623652710746617253417407659817003494041070322950232142585190336638330269422877856694460802583583240405323907095585577687540166698598919043396024289414211941685255890085642833077495419147272757425472007857527464085542822747570247145856943333102286888783256768690040735025092902142034298912371717465223807000620974701036924882781097789235352584215543707145167783335076623811471898069340606488048947204593675212122384324908049648143263719248826383587405561194412876242928440331428890450870315064445035074972146717376766753148184372655599192617091710041340929807159912317011074840053178902513945493764224515779261166821491335211663624262912989128872711266436504371286025245298269786149982376983014738616537055714980187259545755676021496244425198305358807144396655792319458016333143241763939884336859115026106224053664113913227154678468402405845577061121445519016722463010061692873904066676974890465853213126609428745176810653187790181764424444891807353514053125262173139315792134979285099932908871083634717492941312439437338263901225098353705265872055869676602104051662906185955900817256787788843293782820099245160515195144317553977170183742886175634746572127531250681327171776236532746045465839142028909040875738955768353204849400786877030243190682356505876728718786659438600500327779046217855038389684160378018476081323815360114323170116766272888291453636549050083693035641832089131926232516704195669394826067147014522243951495533748117505487281677210889202005685312708473073792398002773505956835221649009694179010726683846050191488701128149040640091881825779061847963831459037497197469607355101106675332455411176705629750004126872553195893020900492548219650015976890236476385213379660263936115880922995172381233321794699672714588356799319604084331070081259153476828482175009004222915816021930246538043227997130118987966615740460828239597744023459193358081364776551091651033984935822178577790429659136989302611777297914021991559153087967897413422672116901224383414333487952733515007915576719189210307512080871384267557596396075905847383108772669949671627017275633505772151507164550770415310162772492103047740398337269824973470121861966752861306456109220690658540026546823311008753492751404312030588061359210802399199947966297351909150849900488790653273898867353980530692993896364112665237083745111440923165243416748637944520240428471514192351996310486812067645714121073883971575131393627739253321016256338382752169216764254127535041366959079570531573152657323133917095901295742447233830277292730090929762901870853509396819486963845875118684601659923566249508833981903804750834434837238211195039672101291804930064968366169331019015107194504105678738693884300910821002188416361308505751361843496447267135449348483055297712161445493038884913336353376073963207385037187735599736391300270968953248205697311020909190748501032319460700665505405718218069488252587380975720222568200223775301414276637782331734411812820142337159246724596529848844593027483053096970590424805050264578312588624121981488645058181474339668882026514153578054602482732266174947558044774926290530537068206304695371260435712430310297867261236238244570715013975444796423726638266939475347882136175422693965297159204816596482249317758580776092048582654963756157966243026775607717689645854933345898203186198600139660706396529730045792913512316620942435585185409513189373612505559567852500490306016413697036156773753387439345946971153623249563185647293019544870304255358480986102378492659266914715065814092935959597810771486690788447134657952810164774626287724742287960887734418271536954775856566322780467304344615728324300108100006312605480270049282009541263395947448829593213723528506952634353216590235612997652001918965845143051130361714370590506739334618656188467934118797351256334442937466629730980417974227836631499814562667479033275325390007986922754201036842692017134605201558282338747453384574933311820133780855867946665944194503544861203623295529242651207285679641249840171246663511031650454532471580396863111339428958553756252865655336308900838601078738893884639698967377279758892918307614194565066092531683819786766774886670552055991891104037057826615292027062985354373854537118957602925698358415704200938421737797407408064205704707937376539737770925773234525029262869725454771882062636196053058577477471646883467284920348827036760454530890887952054872630247371984798867959595961470205209499873859271467210017964016747745413135243174243963635517988044751359779631635997681824846985485505791434257286815428329273166323584183370906984341462549869453430490750987152578926271869898331815341590179959218510587988685532828138719154155461231509490777969405536245940802063268736375510987490677298043615824175413026410591287554749277245118294572862698456603437427806368207895913210046171558262302159780895221859702235445274530757468848894491464816801131149759628555180102622658786835888663675286731312707954197433067821822912007478408769964772345153651792135224516505795788266959177957850920232052275623395005757614065773379386729389278000789706945091897930093823282321857527942723873514491179986822757556118103578204057002350540580504300587369730543392642013911405507910821890413375827125784066482000377611946362374970030472401545597177274082680242189222624999827481676710769108103009693552196886385360187950468402972867528553662561340862113067476021334516371010147685484355286127703868413544761675037362176491995987146114336112187388563690491885709898228285825484988356800561982527376953883292186448031369321553997881424215670107160913954100690032270906699243386994041340267696639167715978194923166551379635679391449448574524844697738467112117025624662185472735751740259681682718322145017985364898634689260546098460906433197263450193408188917591603576774115102435067004395668404852146480270269466333747806673579754838802810495205045780897286555785659187439058011059020548137041876488509185984462953847015516168283370661591211974872789720317412494625857377213880213392414089845643269303885490797794005960301498975866822835895422191173315175671018133516949588477110604207153507977165536048504440217671591202096467242159001842245104722933072130063702757471347743413006546699495089475658623559082236495518821320124824420244582954834111795125423043227986621039010528881411404682374318077831033454233482606867526534587433296708197250642643651696650128586527700844587826507367038684187709506186202092309178249048229810185701597005686260922635776531625527369699955199820574075454040943363119697044018237280883486256344230606254306836238649943330539172041963496224838900570520556385739125743057855187489393119342157138723826972321000935147165282572576563734957403651738872324548461597956196424896959807462573786307928595343945835773927137853050461937937452974479344617664196618703496770766982004858499628622810322043539873329664898832790087472230735034131448279335641636350921554417751457771639541030327481992071765829080561673881918482006155919914655217886505554743354334638948019552099258730627550236877195252877990615615634085506830762494526993287994719206309919485828040811276435812770736621110684171606608646560614013486311522568184619263494763676501917264735856689532991682693453825093343366000950993256599840162705638114882693316738913226335732255255874865656212690234890717336191132455946033598124141607201043419126921701822725543536773456120731699190490482844742551281996509613452266473851547651343111099880568702754639709221753942912245650810331663200844437229323575101189307721908881285560061255385902735264721987051216554053481028932831950725317807118593418064793411711627253599940426664321466845694965744091412728639689508937994236633332251922311045064397365263404385530496119315090244589947268997889793570045244185973076144137270264959745909985908850717311963499695450890893246704301743837002997571332028902450584918932933250599975888736046233880515514616154785738677555150500863521010500923725991326148340357838076513741852128265929660149977608053461169255736807742249639364127308518139247875546746100315509112794983775692256095953396472233744413148123714434276667367187560294845492085392591824540154479174341168282524846292413825279316508191265913129930501842809174883774469446008682131172811966158297660804512065369233088835225697437963655306479172449333338102021819226077183053767769574647552149404479333698678947025955799458719116513972053830842329255105425085346349216991552706546301404966308640623842768349169457664824913638002167354420045810997436352380846566922083261078451465546337059614877048073488897602047312080589734291391504266118787781310952923669144368486076836172654496584387981545625262764180382193355193072162035588837528593297348434066854166029918969867795383243325739493253845771275299685043499517377082155937624645032081972078581062123868960449196944192385592766255758295541745683304593775896758298746633067488906451352164748326377619575118544674274148604292273339787522950915796290425751095772340700508310817480928458439511626418212908891877385995416360609703227728734492076179201533760029105558588085892986453947961756560804668039811535747534231838210412275472731357903018124061822395170762942463283991195852027528067404877906599898536925435250863723176079312956482362081088626436862179472133250387283392472272936967428278102474231432328074860376890158261412542570557565836645519444062137190249876172299876234711731968169681616629438594779537203368634683780271963301278144982790065732774058173227065355319296020836605909809677191492728966165715679080255534388429351493268065249903753584679968889613332498417881387913114661895771283836608717355073453989339615743453380759854936008502642075498898081755845409503892790986635245758568533220744453876030462330179659902808791080370006544828599506805547361032577170965182500115979306815986533664842936303838343103038027703052101009929905911309456632727059996494612994511165042600869982560046484291433121750699970590004142991325550193346950200696590673863835157286244400948183929587149603567689830028667665248335269124914305547294895826961365095873559765328431996400458329229906640195162716207727953438573844384873567750219917327068534416058868538339110370792584763520955449371132954427133877509719444585254267605140799488593775796740811919951370211940917802554645798175147208034527447235088679598077560399610017605886108875561194900269097327881772549603594364649463976446140090653556920098449705191800299853446065833774136209718532212790303015372695188727602473193360306707303833497684221935028114617064533539904242632762913870074061816158617802870895479173324979764421409801156970345142241227689854992615298155430984430085736014640077242839516813661565876211470242563662623254333787891276020561124377359342936290034471663557234511490774664632717484964815964138646622176075746814772670215792708516706738342623144068399100969477445415735047094432632066404012440479961056292402871772146917597507889599364525179960666751918422150373933392729773599777887923429013651167047094120355857320655597701394632797537602459565290291846641020410809803746016405275595322960819724897008852070663749375476227365820120805472001621830665146183572599362751086641213459576685248527898962932304209130835951629828838648412951831203135846848149775962501854742350466378030627248576997933829435064739440316865561045866681910333692534304892013439549861850011844127764666433888506074360236323707236803443126781173325840406356017409559153319892047161048952394105634618589989613669447509456265844457242644921315460822510458386882601189743152595063607037055454058958361600494971062739722545777088674183063810887833719732696069636926314353435038754491082106288708323830744721853791181214548984385053551359208968939874350741209513204012537587940749374606129052546387833729091988070820286294535572463184913785427852660950164263623674506154349172532450538876579857376210896226728901564010533463915017567915448446514138267962845369671412908249055218856690639935849095148169845235681829140884387588869646441392426050149527060233513027821967179998564786452254523274103153441359057387413516731638201170458130896497892694295391892263589769489126366112425909157490866701703328775097692860699488861262720539446334909373094231266712102579185468728380809422720260162413968478581405422590717779737829138701765762913212106389778614877434177949853980428627310964142949783850329314857974930106304129678019186558065934369920746543124631693905501042593127687395095552898523199294734879513481775961579757462524282466897591719017935642652057288576462114934733245029064254540660605180321890415170551119650070084554336414093996198765778136538458464881061262281480390121082331357658366196887538959500150582810217090650910962677583351709007339404040815264569920412727478913621866710629965361639270873416348760601451922192786116344911503454994800428400491470810867111606760533111385951168748795514578504220253550414560262190648026472945413344349921801591983715337255244510641470343938977647385763571116532453517944471845978839427387152456782420440390388739403188745500976490251422233279800283153512813918523898228514400288698640770854417195165947317689122727491495453856083263409359654126296841211789404128114973470394123704505875398549878852702113027220227084576521035410914782340552942861495661826665236238215626155264671013115365135543748264388267593748578865524207735247571931987102248903764609855494529081781106608653652104418624309196913027828877817407671680347472824269584081950008895244885141051146833752905559172805944714891954503599332254158463742511014162618891760922631443828142657243125456015946466159277638630701746315142908765389111134874229915716915770642257297289056580973136378347026100199940785536206156927409131404902305944785128604057444762709198617780435478503680273961577180463939708599620540713677434499090089052747104482380896887362099133124257119619732500730974422759139651556319680376977795322360240608610461533440562416599452267879888935833754213277523634120971047307589137870947970565804548875524493264730719656952740225428200013260941511940688634156722234518114137584463494615380608982046422356106030330504694459994214440074979337839176640303821371955968164830121781963853057373574800997851010405054896061038498553521688780260702093908492655648882036843916752871645428750447174755590984582781217706352411768092951300493718553288469601355081640734734876006153852455173259494713490236384814508038590127605953038982532676436339954558326741089736167943703090160046890004851857275950163117758623052674313017547720504130272779489190145247220879035969400763201372244960541981927765261825523743046399299303843066645528545964871113309612894097196117871951713929190353214898535142960589757195259431136897850121659092821736823644634496723107355632785612330342389828947482064492979386718370997388260809847330216161161193201868048003904435400262062742933063001505344842733269995006267395761410141149827962531913547485406143482806244568334682054017193800437596242331882289642570854400459492684296740460128187851533575159511045601564707344625350635997307603910326236427651584137294493479433263731344564810206069917435272356234776929215673348051229699884340082866873424660732460659031007073092220617926835885846333809872377697602268438882464179967581161021761501410666755189611099295182262646266190451131365096190063266197894184777593244483465466970259628651493926920232060057076402894799833694901683783219337994288180184907735964568417399790895465612525763394918776354828164933735461979843367922955173193951722033586031643216253695650642423826163327825210952758567444117560626907075951929035344771733695384401614328144667576252766004560169451980163310279587910832623396048665259375981837212874928240127089698228794752710761591247420170772382061054132142669497711216212863681271448085124467326651884465228967078577858960048116203858471153155408364747210863701484088573239390349599977179199912261190860022858905703892935708938296163721998831851175359577716683988274494699990033272176055266443804588785148460085629003760863951748753674467107916173535556599097823681848301462635855205035547607800060822511505895628129410216789446795418976017513101283243426482984855783109082625714445030842883684230428584694165063236654602555803846680225494746150772100158674851871508060358387493255838068173529915666209060776441697673302378150501906973770339555839447059981655073971568412997351144275290269957967145377129347139685141779306705039264403270432875572240737700785313761852262397898910432804612710044006333880205617621671110603564281618666965815650598007654257749278701934847992207612802190341265725580605337111322771899452286745771985884089174757855067983902453634023149250126930352487791384113672822848227170817838639145607593888098917576350024634212079179031785086911736261230060118561780952804031762665623411001138261795011652037000035037122986473652227685137278353913462052205629212073509960082659430804387907950857543629008024074061281745215009736368661101769732937915245231185082759975741073792023571881899004908371898024734204748654235583144901914131068567732526629179322400059199116616369463557955556077165680189544107698792394623599893726663452924220289849805693633238815569257887300082825033175023104162198177438901389922230577500552558948054896581345333608976707223123340966845953715542414144944140934959386207227017262691001894762203194922783957501237324999269126138352256339529514546593276980544691523696437430746805184141844107953406934428958046126533165363716170997079362442130332053315510462487641175108381825462321980780234055386126337565339583661131404869657074307811913734859248018367501893918756840954777864287149691649552681325132524752234982426568842945464864761942959222442568978597579579076762417883200585889444114188379433165667307470179570711500261938447908238548367129669826907679148614643347101375162888084624936526845117069848455572859858130520572416915997039687731275333110309801225150274697942051261372492855515729475261676399636119142571982290206478433918857744387061406306633712536854018467812643611811149851308927283312375091614167853117966682234507697454742874150509280671167877825257322933457405627139669446252546406618242246166226622834659647309613460684640397911344991792991511912040051631609659760234843069230343473987263243695074938066503420218452673633483426546248435720755264067851892945589869144098567499294391384128227671169380983341953155100128286589136726844649260288960735385688273843106772242613563130295767376732279536827292740089384848509003438830788719341761430343015656159259143494373193770308272069458842174231712063712041548045281450681051044470525716774795267912631074520552819772125598440653178399243217149988256484140513363708716258783497932600824877724255907634258639996473510650478037391726836120500177500810708501144975600861153093434205396952718858486123740399230833853781108983870152573063661203187418141842428851999676431282884370711253512868943202277156224600558914678625161764918993542860627208874321307825797552246399348903157164638169673734125965196645782762851065380294610683902629269501169782783974907420070880892889605086288680426528880765456353422513195014939627033322421660718257725279867350428127172779516890009943182437997300222822083727163885160463231802250438249423749360004107134190230705657213607320124695121028711593706365195036206988400529462349611223721834945814147749446162651801687660017648240117690758080895286361429907334278094253588787124337499154723747361638635229139405520397863706929834589616530605872051121767446611549010961990246359904387653017385332826156444638724843392656186608312788545060794519885220256959418166332768605463721314764252286888191447558180286186814578198298110812602095610909756250482812654558207162351484849118035360553296367137644966916237326660508426553013947744159117094778607694752453680539310499982817541578456484743299428173026628148189190054711172298780413296205029932677180970606214540627179868182728904817721782270180318910094790155681461494050507323849629023715128656643303639482817574856553324354634480694209521300083668630356173610808765618877106293586469209114259411662483544243690498300042142983696038667205146923712339286222543567748795561439465686634259914673945115754919792037999003741444146836879453767064312884420442629266914095933937708932387492549573447311060154612430045678077412558262235079104131032843508811835788740956428348750111958523455488906723467356147570235459694199656053891137164130170263103109609988982797992494864460448108780343249779085086986865032747607225455980717743705811709146580424786687369756073358371810374250197694338967016005741384790050209916230494433460770222148233826059547804696234214878743439206153514936315392151757129034788713439341947169816939681287422257653060483316006574647180862835306215998282535936847175721413861352036855730564191814688694033887199629128340761742341281785833626333340992608703571585684645163698329451476713353134914129065341859559889651252578651952307389623957884669960824935153816980937661557210534938895990500088325737609525241720883647532874638725116891029999416111911135832407168108100781569991665468960363464319591476456210328225766809164110385717004930990234814598736542335728832726776960022754150764601814020630910005476930673743756330378092649895911261315148958301036815324507121645654144812034919270142507182578392516987165444316762489296122801606830405749424401742506096997348367682432961924231188944007437759065795479311790405513728387409443390241432302352927043079882867694301350176212759594222464098867956779066686883762524838788776752167651259647098475877568583221248821877769690215892378982517893426708081311694225142371619395271159375094117674328789107397763472122203376301074132157191420015172072353859631384407384299665636253298506317215010604155163944069622280389760472194742363683512631581373460565392860112356273575912477208719592665766874195411590493524810459522221814855051961797398269346455534413336811403627808162463834396993711486027987530381457507046750439619552761485138379636915756751933120011376679190848562881552342402232334456325732436969558785848130802785844193878048401436255772352737538579390023971945613680209377660817547318228792978592416544087589359530058102968807108862709096890554428128650153450005521646040406742185292059961982312012930740226606035184435519049352717916371156590053842766469778378347246793676200347005195093196005134264552249350387307123226137519247314688068383585994395894875838118197520255447184990279208379194881091667924611136417337027539995715481301988506824984419101238806025030198141852862647958766945996878197662570476566241317810991593051008379748750655317067508957257661530645409299902751783500872320507683300957896569768818772062220195580000631590876713935700620685605963191405159185620958198757812235449021574937334750594560259230850764545680244939032843379158207651640565527348518449685014610010614858169398409373370799343865312539506110883052359315011071909666040737924657469901946945414288176704877330448189838257457104426252693664918133650426868891001407208232582353692750230018280715433275529834681262075439991225984596852678393157602451039184963452903783826229195367946539557296066260641173891732709999178343924928118775822300767530110004157891431232697587609482314487436471878870312735024888828923128321215477091715720671955546730350550592310414473392915059799204614571142842972399904196379162352587253153875432149980805361398089789330353876793273789603663150561871646339458385474191139785750798319324046940037377891246780706201139310377777870664977094370787695418385312783464344802879580577995440043731421213111340522540336571958147485645799678587883265616544573201015612372253300797044586121097553880129045218379393058010199825208437542682913346530576294618346885461969878118932322762274645334685965995832426804737224332274501762701280466156465583497781824131473166908583389150695634694756894433814402916336085839157451474236638205182249836712162479264946941349522317287128931699220705377557572099639191782169067655414067875006255160515585068997516830086432606121661514177149515983343476857830483712680546690160815562952901395739346621708040029275279013300212896496959522603717927294925620620742837092936930658002340658919213420003135743222418300125581833394167296771359213638719802437233607843215197849965246430436937592259409483421534819851242617241801565204126694120139946024412911264884595901015692896367597917044535815330480192889963238879126295794450122389302013203626342672074471475182133824538942843823879869226342324251710958243969172580387232111761503113103705330322545953475723673248615044099802810548936567813074211741212274836949432613419464758170956974880150395991166806064221584871677431296347409392772228106486938286813870356420985093623708644455106676874817758508761880243315324244449547349558751576998069722761163144126621921990417930634952009932252890778228399634617594934807306027784091249992469065657883769827428993416327261152677066419694385192840161447835326299957676251875243279793970628118457632192066356425841570265151887546248888243402208501287018702716301157070726532570709707030320544319491609954603956277372751831215669423619483612439955345264871757172591153363906644997251344878272723185361730222498233285895497022375023423235794221500238008706375352210047062630412069166837787908498079877399126754444800274176928463017722800684078118987916800463769107266041763638617057778295534465410899218214163365395474751141308566472467783018279111481132679416521186507608147356506554068678013331424815087687573447135873515864573677811254850715596949699683698091307833681663072800890162574168452339663829584528873024570179921619326045172762172430107635517608254125702861787466170216480403328588726831086427707872058981235209942045589231862809384669496895711644524941060784395079634891299759094944372176176060110256820927802312902937991441019587633323592216432659042651330285545370738230643552884802706539654857839052251420342447894189665120110310220454500586723768509719639733720310893475015148659989245199539634653672980730576227482474011352839628920831106855675401153048781659649528745787973714450326374104417392840063133208213655793514571433834465674802233591018097341782566079144746095828918562234297410181158707624656560828896850486974064224695003570749173716790564043058100540020116794120671082540297209833078826514949801003090550753389048588719342883001307445057082517926372059699376968214427848557511430656057391587393537708607803000429096251741703061658010027547368750036639615543590229673718212719092297798259141274313519760680217672415002377881592267235831484588820749464463225108882163395812943944408962079674830915336821491863407530016794256474703194398119342348098262786004926006280391374766917692485328942841875812249770765601616865065993310526616075074220219221216022630731955330767946257910807976920292511039675492821736911788008100657607825891631898122785427773641791723795438111251263711924155684428545726977606983310871664797482003075007338288610804579310568102392274756075120065160023974422310233998089653361392010080451379326593149747216910623481907125578777403892719193398938167787446921076024000384413176959237186736745476407155795067218906230907823673524451219171941054774967489060609093044498592483514300672436901064680725418624651412106520201966470267639357636400016680156872049132230363291350254634712923997765105060969983019043586602636679889233295284360039149163184194836350209751821735029980452405145562193591651871860346204222865863351687422187941107738352840960509249943759325963451894398487286263882378208839843068177999924650677523083412078536977603359611469745861980460382457162850770425659352321724694933938217380921760748377627224614437704571777661458283835824902625834090067935844527377114624150666521732528644898057315205870368975896867751316166115373668568569101169568010452826157134425936358211330478147042278012483136385531027713559695295766741190239793899155465460767031275120574871104839599302317792793718727555589455532905802544143914682168960800468246030329022643153910501716555667127363981355512863308177429908705308087537916888800173358983940239441423990374338239859583250451759593214240150540482211549887315656788050475143626885717394020309334065017718544598475592852954427653393777713155452861710010767419925294681961198322394439884220618194613089635132794720430650931006059324166780855285778950112554117053909919692708246729434458588820346824898643138522657503403963102663929470916045267457996427145294237705593286488123463976131267852131047281009260869921401641528344305663349574873378936726925662721540599771236170763746507994742460392146719262447041786047750341963290951764545934926788193572775665116877135979757742688086184265363003069582116136772023022544757492063440902199324785004725434826015784713569986747543754355469828623648739807491641440115932133524689742355068870643420286654367867017081013097149937373287121112312926653357986101435932818685140348719039601188849694047028840574186107336741242710817396903624785585824474704556305131873400591230928912379201271362503663171937523763850582074313175109452026606017501397587834931005515795118175247027259543583298380578718620635228169787580598352493208688687504674110133675380974585780224418246419368099075168277595782305448251410988622576625604247492916002095164494136869351934110440108436985902302502084116622971599427177383278628983238443859190928476005251050632371905915077895212272392703234921672209891300044169393867781828762928359941194629130788846497660487479432995822726314868420982559789450098290936758281948780130361892831204852674212234374237295041647195142055738976749810530896373365493839653841584662974900279788966466370750882633610912166836987188105842937288433361314954943346071082847121098630541839908028579074172272403108058106229837629579500018142468613341844747894946282691426132572011574911813251662362172208400567260742887178550970019190464901363421648045457125808579487957125638182567207891712321545521008148144030027040253218957025187513759440187662369551530437864487247845071153891348379833379353581931807194229756090102128565741669212058166133517328100133965179097167665522194836870706244792861359521414356754909808536037237161456502642146627774736523139245873368390643626227992011750103954096843600814945570118621476813202436881631299002421984654013178199191659340592405301134688001483784817551572103436277846258134853461032521657926936644360135632185558532581304633458757079396733127999030156144918207310269569899589486216029471482788544539524108875713224537460248208408989518640055315466440862683377570798067196486238229442863986668098778765080693414470968746505654406725765160651084313940789531490157329922693785572420803269170419510594203578588665471759498370640201641595174710721514084825719003009754610125306469729033414816161700353718617430590061854038088816409034886540221732576753775827476335183541889856680087440370923555597832476825161498488631631310646283845449497454294691695242217704491971262156036374610616440862547482356481132795667913492189625780108487542235454544415139502478041897665013226506170995907150797847866185977016388757039868273801099770263395709736636445362486864419240611216569958476599478450269530650985844275635298756725954656427879602965029558128269761146092209910245531127654168267995604951515387265544421086176421269310450914654996303967546658504122106177840888544553292173753667058182616416666567554332093669901276558836822406358589912406661179572753544558260137524195302615015062751821355633177184068898206095633100818169758107074035661132931577559037899349216620378861881483401382672782505879800150912490402398486852743816678267824412673428879698524409550084755368136025574679533766084534597879586661811612814255618653073471990189586258968123084449440194207793879757306715068538837249961448661300647464244185765476118603135865486571499078352828600573903362081988617580485437734585453907478572761739729799050699900612681668528886724753574174436148385786074821959082851090114959491420196733062581923446925018461423028610025493596016076994471294340112980989599624169061224638452489979085728383950404728464772525862705774346563730689548756506418197464395241709321466423190609160625630582675775157428464120509993722250766562572145507886208821393683406847940588168323189865503115040497892732669070317557297337947637327669996979768603394385952741563299236543304503438327009471700301844634119978255949813008748967034949714651753174686244277314015973436960803453669263029657509642639030902521530311982195938791304313247943317928136591158226499402841552280224608512163645062427446315547001115657082139768460279895062688150470827087677392124077393018952782275161998499491417532959863877702038569798888515215116879206949539853124470757438359730750851620276823919424995039211819203410865743960873534711982783662552072807077667503280619050879244203411729976481313123446518455334681875099661103468718826295487661345795598066823084183058678434898458194216668387298419652515121856532752863317928420499474584029528877075500590544201181113791047293252157653213305157906168499239848764804896998148147787159996785960939564951808660334949768464216927790056922479103141802614473160053912266795038481054706490306725122637952490878427305446109982797749925209447118747821064970578856591251456045442159756837581326391882406167957267626585001191094920019137970723734394420232963294126920640339675560311234904238525479276267093708513957867156939402988907559117817982264108405190887110923182496308458204084974552499748523550147500500546317037576619957520672139272246373954152661396933689192585458282420913104321955076045107332585443582201423955576545536462249883915003043505554290073262710819714400204957484521021376192939725369112651474610448386185045130234488745448732754557464479280309125956866298099687512481488280767875134831938611526621715312796481902755137601677269981128495265014504958807221070554522770951520679886476407933757422105000384663152520338336913136586978588060171857809204269201763942518125253665547016064469049169528106878837709182272354822903022949670369921653454938588723018998300861888713177306632865667166814808894226592322548136121078679786237896964700188690301475471680247080428733391507434954169635220371449323350109301636903270775471939376029003374506417910834781372481415915036048122422813097782488703284249088655233854189004755309433625017879180567110936415674959144944443403888153453186919391209031944802997883181043227271360487958482883560350427243813473843575225243071663894977800030336153383080340111240560504924195830172190470112584372442140242255439772208651072859025321185460138738020644768415978889283681805894010726009590630595529205651828399256664621108914367618214594570800933215543919336512680694047443188531459888400262975442680491546724190545672291112875037320855898133121714527893448411762059859151967180142869283677269778975454572412147549339663492855230281480801755252153857088491768451252558180879402616181870258514511829961476322320364746121640666566143020390396637391586709258304330525390291141345410861904414465295946511916931282368634782423329602763015339781569525658280352898337214315741494761758037594754603510806120603299854006421440686148409273493119005869373832747305791343360411560549331240945860473264828528210690772360119156920986039348779198323071939215699727611280130771667253450833158260142791634351682583428490033796891637875978819657258821690057322572135108521892382555702248532369852961134972691401704398416571639349084610917401155989881583132210594986486781234950741496233949043971417595054287071126836101418984010994538594045841540473865943821170420219819961477293071808334948001441995429033716597388024351017955918341477984219906726539483775641972621595404705143719336945171932140109255703443912156446476147363113936917549095085380143486281444166022864383208936677099317757409312880082341959767187323391194662607981042455355200085358762121412025886212479922695840053646386216437756836253355591696985657321813957601747633118989643599673256470161631480759615171582192481346652939316658600764996712223015372512256295561303002045688852503482101357730686955179505569216587225193350215144513625374023405128233322284810902222702445959821548667351272047362869479316669509818682568218264655774105102145321754838882393982692486681822475141356951346062377303493022168369685749499118159997752013341106934119328791569899622793221767731278529573775880515321070015143189545043419440256230920225400005784053664793270886097935818184213982131565469216406195058253005621427629680247080641702133409742869481438264274246697532242206532428308787387932270328455494860018316198134780583146136288796425588498545459673530308914839098374896075688410486704101361549862125063895185192447138673402058281183677144785583518545587803586374290502211210026373458513205320426878074103464618672890810111062045235541507253043196942685613288562915865733509348908777953764759531063361261318144031625986106064247648635625511646011602016249877059485112050775062272685522511069216402956689476369281943207745379393721439991797139107497441466422804905878049093555368791668119447277787528955839632544690599683704952105926272985660031589462653293840894339484629593674903009272031057371359232536524102752434357589344428835895490635942615113833401142964705159270194856870873645841550580067361391310352829619724098421887453051189716489371747655688172512582243767447090869466785441417867299549107800701802318723157354569955865127673821183282568583760053578928670251916442441808031528696155004308245806564645870082855844457959703647863004009895546253866381338924838376810075359964768784618516330306824073282608282471335849286144493039324904526368169330154774352207753301673140341566182996284772523498571290814323886910942852591136077249925585641005703608195455089859215062499304344499911864560782826037998815921671668569827853110071733342166176338055022787069467430285405552346261423974922283861006182349976864789711083966516665853663900763204171940724834313632864856597527649132409910779557813895166789278825467474027152433245382974968758050239814163759799237617731462835294739592963426874504536530988285589810186400995161831568271704070629483827753442646896451170257157825883439284989170304722634167092063663919103767269086448107564212607878602550708534817380794922726360438937468873537559409351589672924913616162106270838922594781099418393047001194506553130766262710540090368962339496929119904057367184611085349119062359593371975313095917767745195197033542946779800460381023137707178014597613696215423984643590085265413517179991608445953143462630543550011198478811823588922390102483514164247493491903147863041670709319805267620057277674162221538109128467067108849942060265991352627554534668289664790209497152176917251639254518588723904898005802628522942213947855740356908060375386784711969351995753744677245785181841977337909316626201787494944275567337189626035592589440384352184670171786640556088931353475685967805999116225028953122196870537704150091079265812605517056189596987401519940611743040892262594161737092912778462784784981399530042599822373962093193671070328028980793875301293814475171114676185465263941662251276592077931284377307836594227969775988978292399606549450956550051981296624619415360650585046069024822357565962536456953987977511469361809326120014464837715045019661044685145290731764854220578646437878232645627908222272394929568289273880094498689607297216064027347345432559484252113446034107566082305437336952186730252794957492432619726728557801169253084498216891883272980788921047107128253550946700036475813905898710414379294700173762892765666874611160569642574468659067048745098384373134499912076194528355583954402386103012634723141810572230767567922679670091064369333166552886760365604453554409471103284820864457781705422119788462018093804719175654619799138759192527656186075575859955059784396694477037575016297970185481622469256443903017654518349557037279305176368418659394435008282588861707597258665360900012965032499991879184490866394355224986176513705222837108651715409632709562199953197988548555942037740333363406526753213281218228264288934505940397464477606741901348267861454646568893781160793527583807444355323225363123816518394407875407391598213530153546247202607994730849364369894216479025279050987272822283545726600355632723803692998897499483073618510594834298576769396576126606834285599044187245235620735636804665133009299701077098985552251246021205546681420768274040373968898591287568488019917925083333327514576914192878087585399973558003666439084733792278207682153273153129882536890792519803977770192168007714050888425831522106169076329462728279044570393217292491699157077149936801939892637888224379649420365114438697763529797502779603763598132821481297422803298219557956506795936570882313236744082192600468578675100942411508684272835161888814618561886954161484527357194972445065441976362782371058303438315097308298228047807388211938525337075474123151406420402432684931074950838120443821006062449685053702633829708217759773006980472297192702448046898828779563585516656937438698883024811946000411893741908750274404057336880658535441789945313924030872946600352800844683074388002650586009352460459442721494403538172948964368019079093594783692800002863514589377890181336305275472535193643343499814373642192588395975235277406539499013892274113179596285249588166028169979776169367799774423621792836184460167885948432440359114505419187811912212462913292347037549491957777500965006336657619523142815370131223255314555314874627073558566375989540800898676840322204447859792985708140238197179749217923841500698634616098104479666196853052222637648266427058809497889176715335934818716433098634188297310207205854538070647390015894761622535394977500828559677300183240147173035762743658259269103293966768936137510359646966996091526874514502482563308168555137798966868445377877676714772923482824409596118388137836522062758096691442220417627039003948143977916842604948745888405430880899082380630956102553762985827150700224422830389781076469415276407310695659013350763672434074616894509706913247047924366683080933221633479118770837451628686810632939814554351931066051101389092068611132082412559971514791911205951180198888051537388465509730617714154119905100103471368441282724378134496946332178141826834582363815209344542994501454915799296687552045901030754124739936173041735247020046549083781889185522526767893865600630560601213108742511040696426554471972795308434636628652067596623154834601999892791966146041250613560472214904543103088188683062564047114881954573476815045624413003207495882095656609807803985862794906725763180334489614930796115240280371762621159325135605435982001493189888058704799574123617408715803535656430707329410415989253358901771676256979209759520080521210474602834074569693157371931372809223603084384746918905262682805445563707685047063026368550643337093176141979113926043648806552358412579898281056113486874818157515953472211655848501098176809976195976223739242585845666151239068936431738745292887916894382500042288815899530391085103892001198731806139991682634318647789268768496354385436280026416965045608702072685858241009340672799163639283615412631733071659477831134938550722791911291007652734401960531338276450271229190785450542463873273399026861376881649608857958355187772878187228519346951105174244978793957755257236037227271069932001496349373034322107569322023600275723258868409059103844269357880452839011308610878533456795763674899507949579335987058682751956904354537957869014302417177102086252043079615286133694464204402013426965435833819502282476734953789076023815540561976819515754769715732261038459787616777014593553641370070314888696533323543328714848670267894798476044312767440624788170680300484474222342747417204237971258934612444529332985543793003144284150485741423375591778657428214223807513936177621791056024603276043244004316471421950583497690258988191465941972348046582178403193578129724227619440270497922661603208456543676545129813176868761327766518506248989356342178633424627383402736365454591142628575479480654626396527724737549525721153173300314505217102465305880704740067516178114296211214771682164702676704111609172405170312201519663474611646744200331195744134847203648808047300732126226387873493777395899591319680973091315714476379738790745535823553279305919154973303221781403262348159785498317250537016456212453365708874960847871324861438254780726628238560191953519943387431286378269886748021120891081084039498784244922242705716506031922897280453187309613627113302905881507484236506501259610386536026874690990097101546229614150379174344474997887512175984958580457482125258330896640185804600417687942263503210103587885028202771792491720969966661357920713933342721630674909744503032903705946070412622943090775534703608614909154140555722456054549672365332469096521497540507009452872124179575774255602229900511175393366757486021460032405460104022782801796274137345004918212863332417215200032418118407250877028284093848858735356264518865745210757329705010430932236514865752570695905054142492816440724569465284010164626612656465949661932760999107026772627995501760983533195355408523241161351785172530710557698372378187190766655752853374425129619489299937004799003462499728082917004478452389962610902847947963747627296512204112543033304465475995718066862969171374218803614046786695781876334636323403930302329476108840465514026627902843871412835702029066253013708919066643205569679714251253881102521007507778617770580720658111141391736656247291362718176914059982848603506498710967557510748237923976045487561729631142775339809632701665276898467421168098773523706493509779668344119876994991778770913283653155649400260904777893212094999241889741784325347020752091949104920200960980659845237188515222271033578786854932162901352915012569888722747316683662172875489508607130668996732784494826230337268908322330644442036833786734383549458614713967744121179687580568427163694565989651198882111133028259225620779398092981458455122210483280089674698185608744254266324202929319742451135051367577227570985008050593932477581297448637007321161133834351768119362423682222210552669057265414260511830750613488985127274049950410339697101361407958435387976384361131066892164287845089111014045915421792303441936323958685637167521732732684748421782091357749615787449950396239595319422101808662686039694821344044683158265218989029296259485494252748463225464656772632988124868535726889021303403405177668875912906632020500387788291404953168918888655849147758013876424300457741103484412839415822990510655028327193409270703851650445436719005752161056427022102013838406943112411154344425654943855118240015683424518110294445328341105542758206315505303326857063940835481709030331561372391471754124867939381168592628652427884918032237362597557680012686778732608687737925693512065501285034724818067522668041297475414347223240374826190500801627777412085830348085172678890849733390441039591461240182597523504684444248395877968095766552749877400855138258980108485513027499724547330720087806990771449708900150692526553083053797949211647886518975752483127336537569034599795003027798954396417076590993170219666585776200071179819070669300642195130460084862472510920495033212243676937742551190671914364015711834059322655044926187964529291056493161020307025765618934832845670687667151383469557147740850456530650005130536527642521820504279967316806871223393504755918859774215949482491376648008486716155888642532575312059105220895884082295883636147090835575065257467173058132364830925321561295035368209307279435884514804170528776166973019704994908029362939916891600219705365354063147202390902047312870184319596054342689002108422062779874408871685178978840959733083533837439876145189256776445999488803073151321508010216078015906152870945155375234353626139290544841834163271069219156129691916746595814766063864386218914269083827857180648552325818072315739010415125824726484085859352124198501674399869769332346141262569625348434058030032816319152894569801565582820296063849687191209708365368652256168426130082814602352576730640440299295588998265556819652902172562479203961546278956160297905663909780109895828308434227580295696328367905800723077540571841011044189588516364730180893147566156578689262337563577972060439443209998817418542505603772902623680680107300235538588634987338784066581815104726131379277523027021534516461960694111070187148171134217269551803448238867154434728531750699847626540124503938929503803932764303053798621793979452095351838172996083288217384896587167330419970569399241750420578940840772875915645430373674480889688151765301570765419889797643845123417127598323704044095452485257369986878929774032991861007878780603577003568086015971322736495014836467757416680447325809946029669804003650818138557748542179287270233459798613771256174391259321363838356668783486073622206645607381019067782005127872264970112006296898818001631201838291530884843336934568723009522464830837122671353590213157952801546475676084888713790238247258211254137568897161973916364003696893418262250585976659711263567394776194331455581074929064519465440398216578634612777374750823620920315933647333873530457576216260660453168848001255747076483511751819413151317975660957324906657795505027237978663946105866409852766636347605195748454439889586029139771854432694798658410945254702145771714040610972172080343677132734944667538578346580279902186572820992701746812683514908221614050399359224384923004945349158245494574631522483522408606397488759340701699523764185555206305311094610130253415469485299883956454691339299427512206998671374780961677298073208817497345220703698771147352777531457912514348772195644181289198587476963727603669084706097208784118578148257831860944097876806032921345164666208446105704899388472094574831694969291026109461136401297581397374475272369687426416809467927906551171963994625835115034278560232705414379867311914264925480235616325164420427702986442915887593913185558964401177083801891195113657514046344662692924503864927658188027518892149188244615210950007466630902428457758933597080412496519662412075139529083379628236485724465879549764128068744064124753189628248918417810067607567814364477445562794321728219065316012732582040349006547885642449754986635118064912734909371568170152528866847476167646745338488233711613929615255919483006276276071977107210622082103137648580880209382704169080672156600182330157268124947879705036528273123309424272802663574383230096066223886955591047044519536389157733543750374371329420856258301887058850160303341169311283775155828593106192070028475920579751575426898358869194252480791309896793117246364225371444239218386497523168140266521547782731576394494554893879018533487745985557716541344786757353382636270068503420517094438513613639695280230726175853695338409578271031730907388218306725799507137050354170119423326908159060185208617380887257746413465486609831969783065038437827715969296578990491800974462860112477304143407160742164661345487334605256629180061710361832847112202272117717859493482393876319485777846853854533066370405942440067747288365579428643177072605999991181689101660644277817250773395174555206802018541933618401339446909608574578900275244803959593142704012922004154897289211556954804541980515943555132816941975859652088875883100445817986451689443457924239192645519893409813179596487053288615075173972288645621314871879737011876516895559569561125907576881523635401364806603444377530198302388819406837609760371859866119537556166129075484962958324892829154483674525019716740136101171213352736460686686378764645881751815223492837551974063322159091366454631384829153098802156716661331040391867832009998210936312999420463227774364784820651358056846307140921751554050750325862247511354634794405480288095637395057169373910751535231743375640078509505432098929970427591362038393734487044861999059290149008420654227511824743753536175192143225021355751413705450070394616143440408083801779721697481064617385218710587391862305716045706907498402774315721894529314513159273859164949846341032184465643881558983341543367754719800612697252730192094860209856419570950637361634057780588248319831839161852206584238975590269153859625082599529582101123011738604758572399775298656168681877983607166929871854702884361197146152126614686421822537107911065863916661587871413905988212130565161657264649486849408593929866674702142137401751243437157907148429800412476796014801041814520177754843743218095685105829899955803400687460660725005151966485995299870569397524772960863799091480403914034051210782467658783623573520151761267289713419130373731577700963434160081810273487701319836242153999838189564639869780929589736804095433609076990191948341621622150207393264580922224462294244353020530666129412943765956142455124030576493516862963643631570002289572756572822314462739201317189626876194979177593365910577873099559962825368061133919415746054679186021709064490218216551387251042496301489985900370366599895667410838268017339635763492813378237001909433734587820461702583368813174579875666323991224293354696403221982976269548550518283009182364110711168301282797846293082189699402977139495373163813726063236010064932229310467741990767167232738234991886108801491211766391158616673060588721644950612685331127703519079622804875571029003900995027662770681209497891710188224168921157270635856712806641338167945327479846473797414398940063570088041626036094751525829092975758833379107945482789566393559537749584341816208138545727112237515858708497235385165440551544723448281272321754554264398854007107359409062232236092837939888806887618347299319894886391169307671451278078213265012564994772492916501876777175875187245544636459533076125157164060236417607541919900870788158122798634700382782500212781044381703289376024027582507581676515187340387541235867528480522070630870198589378544996282806179515703325285103931617783684970915845266123467017857947264868231432456190765605341648931895778496541948510513710826815297310555770393575912010601636300404651172798550613109779863705847571264598201286996329267513123458605091682072930400203781757115321975217840938213952642830398390717799470226740542602368296039593958164785252455491526365153800024459680829502434461795741544091916488420747736198943161349999505864141462542164607198082173902370374570815914399563052908735553697561141235200890562083209330873484835890020800936866717060980696938312140956428848089861009342176380044936192550593427376998109401793542390070325671592412859469615878782724564062770557957979964987874064211963154051499965346860371613250326272397473546494122732215171710455057946818602195028299201131651637643937975482030308776717851717841541786038398083222351093382264900780283472213511097120664231868265144198454625695933337801616488435444937225279707739186938336785282441578243908924491748200935157587067635422493882334216077558109024746778999438917435281951602936289805957714395579758589642556395031616824024325820756468981234793710192101582493805222804468241131533139079903231808588969820611144502205454839035524644286478970385713969986459165001818137581923962950877538691123698427468375446313440265696967819829633544084222197282403152892817247879077733794670096940934335265701943783972192213940641085209587719786215032667408066486864575989565155082701278066003234572259557075667111871942700825476378226941153288000990446670399085502494117165644854814890315559455310862554162723255777526102975631643460479233842627556976613817506437387560676208410290843627636139056707322081513000378663906661128556512666473708991895030532221318518996903544746398382177800162378911990855481580133428042886982262584717108326751865150644970915588883677015633980415049204168016134806957993504196454935605296235528254574707538599552178793913188022208032196923861652301087536267117401498557211302001907149174819862660382855896099694441240628865615314529530754023551457687633526370116672596481021871954325111666119651889214376887980379959295560708060312831087415836751813567304143949374479537833265210844094078162620604533950935391251434262646094613820964460066249334007256442132395967677148814649760829800492187195360480993821469793734759343848634474116560060345486656917459649163231990132330427438009516306651835067773956695637185763641974514985959292321757469339598079408688877287839614209556412525290021966890262305561253010535176723379250751272937930967589871885397660406334368710021613796568089434071533580132400591990033071984588094189739590102619553338548912029951564858019025551051640742306415605799911924677250680900788537327301140232546589193231383923248191906429446207366076622931818920864149828786016849358379657981859413839401438939120436480681518165199987682439282441251439555780465929061573793681593793268669946005952201546982522499615387766415584392969482682795645547587152543128940014565693949950544475343351839977861211300099805920251585515124209519214764836669107542573246674150255179856844869449648878073788390891008298613629104511664928334283420402486217659547195838507611006938061698801253559621826768865129576785228957103727127389266392881482688389983732907656958618685138449797902250382780544716084094502153516714409594445275430577949723593302712932706947904086992921580724642103016767110807734665373672046133959126792986276043970625016204053683781658617240213687433864812406466549478772478954729424664727909061218020582382740761789843621868183707778013039801390270580790213560831183091287163733961071914467252396999481111027864946926588933069210180174482838383530921558708372261634589368028001602752380766657885737192993433103174363666936978753971637474634148242449020589563897019997999563316987947217760424369260420994559334544605245831770054073010287634429400782106671433020265873125600863062544658286614255252102649955046645475924549296714195625384658085136076933035748925789709897707047267603786896142587202228478547855977385422931678447564150516861438611717281429791885963740823836359144089353561056801789384236004431331570693543619418915067622036134070645559019513616851669375090782443873330935649843574657116125175422837012332231928457455358594933284694829434056759705658655207547640633608780201282156998355163532609033633566977544090085501912711349250933653238384598089908928207571429245753401533077181453178674872794606672619864397203356711249652529234699311635646843136782112291451611349295473358298243442320100570315076939754504552295599908033309414181163536321016841026522064344965821504851680907285630783468787977133358122583568444142083401228970763061768269349280132885678810530660623813173422052477670509099629039896164891970264599526792588219300325353070751462760758366506529130503345960313139138470026704415967887942579897683428211294768113705369328111299359448004015892072079036475332285575178341196096118842923296685955311667850632390414017240276133447096604169463517322589031420657879144667034482761399282824672528512261970312159908529981204974224064755566922021341232733580294060083558301733813372136139511338474412611803203631324202705409345626282201370237074824979514274150568067519989133864998192050730000088036683608945997861265640463231881236000350625747094905778500988230930509245441415432482639151393651329643320809712669887494228112553895839246049596652235575374913834941802392253548750773296406803910854784856945897318640489786821560726487565861344743199335063742237933388847034481330078183312895173927417098029665326508566286901119305782215201086541027276122375876320017086514813962935355558468624125635133497032297407562286739363694850731334532308442920289312837826544948719812390697199929904063373051437438323492221374672391054367715324818022829063174202710099537523258484871429628070679839747375540180332563479037542085228379047220816137424509701438056779067674868670270669923096756306093795845881047900599944732901725947387583555709465302953185251393228164025651506053757211902337734512393981057583410562511797303040263815338483598200659198483444156481256626434937426722685506012525391993216105349342745181546869960560874018189038323934806125426618739025878814204298552672437434218215745948815487654839555554106666338883921325604766813967074371060920374968962585665495537713822414355900448612209763548272839474728733017345801440096335691381452675406577874676628907939797405757469995954555552558870384607369752629977717556671453381453086859453248075740556456220399727164436269186626396870841324110563790809226255724740907713123260524357688994449734714062966009015984082559549714145792829783154175112554585169498662912429382260135350358624840390478507443680216056164014235182300058239784713267656687937144288001973049379168129420976315284981957176306650230338564186910699588184073716229692919930149352714398328729412482609805394954672117696504807165282929271953373840589970602541166175529212399124089303552313501607144231083769665459816942686702318184067859359126129670631488314766240355944209198412712239689554033365089826558232863003130240288190925694967087682047809632419892469581104776020830214986343829665736783681811339790927400939497247245090377652148712330361059174669825221511244439328826721912216122260772644596211729984441407928076144481897356831537278300838626765575336508465151559558342843399340873147727390118399805463288038347694631599262159859922501127847153879808862335578751905094172780666712326065851960143423554570825849143692052360617265411656444373299635771751099591859662075524447214769632537459142903002424246933419698021930936536388020256466828018383070283523219367019760235965467517943853629003308288888009505871140990480213078461333764651318275015290096366742107483806498288733983077779034045279240534739436548743403732783022968070764840334790036388314338230546302472079760111100782767756255831788037894160647600564669739207883789268763874164991799351729386010253225574732036893692027346677596246589218972153651060665630199458827633102544116057721635217921535031691306893344322093319406670185702772971620957457937593970840578847618197603711431152100016411045892064828788155709281684620707659956969556580857126364087932470623024476439788684878187741776226959013419071166019452300910608441121787948986876110977704286648069298484482939637831828521527690069882120751101903145726262809465333490648445931005847039967181726378376559771040460218939128660903761444070736449572719011804499083247117042616700360838191856932654879929683785200446124875497369673226002443192783792264071093637782244175925433459173348581853905640864412743358515052604563236713235333406520501326059702148099181667351050459972752299641294549227600411002870967247333005902199465491633605252006629723915029176807070308511545457428712818894102456007864419493968624608504664561980408278770175580283489439941022617571828129552464311038019122779570539928372364358058860013751478778785826553168953040849323953777470773967351745311661875032462554358780546130537191733427083644493145225736947072544972281684565097804547470318466269322931060758356934291116380536704095883498677673385521921232134915759038377865623298512424418433517239667627586137471325728970644532763704249677503243263098356216968810641661532929108581899327403556071032969344960238908928551788299851081214396472631308109171667101301829586202469119473857002074252304497219754422730445339832784073355714205186652678843017619138962715633025662448247779682480850173176262245663135746221041931278561234029008752406787063940811611861755366947326768396304052325638321527520802240690077144692870614895090631796210516354250427395661599832660811265966224642301751040533783913307635227207718750526351012946960390125446889264697145685501624385863147016189478856944909599889108510958828578277613812754776554394258892868536851647432149740203121464108665707342782006308540679098894561439197943130732617675243979402721472496133923572105528011505868334757305538497628260121731764857147150749970714698645897506384733261183555123859733165036484510521320662689971038350110914395174005310406477359909557293034940483661458852612287927862974924007773526259643325191964488775862472870585880556059858908658396555785306146138789664016626881024505079063083057849469836296187079978008354827173004032368954040182587621615171442695410323505000333547770306145616681056051304752776550711409877547363329132732305205193381593133430393511776489416736087610185353643061517150237369202813922540493555498925015118279378232626131156868558408183215606887895172168653166929184964784800052227201001300146598591651586254417891637524634355385262117544386995499851383604627278842882210783564569051748588839389352504355386882288139051918935248066068752248903564612404869012456155085886116262576783765887371317707307734496717704291611709194270328656661969903989491928571868092389944756078610664587709806008182148472886895483391948166373405948971381752493695669414907797905483733965228750355344343624529674643448865504805362107930218561113446076947477540025354883801320423463418171718886338953416624057816080956284517432296209731348344809510057088782252020735937343704020875956370323304175059404792165870291361808896433435646101479756090117065364881914571029984413577055736284328239789019854764936661498751909836030699257551501272077840243280775533272383834727063747036077795128461368572388983082046582885439551669230762791816178136756793039146441357451525388674243287479207722537939884150579109445211728463844054790415181433593979432263937966159424454107751137419605318454801118885545970220342468171082682363915390018639281743925535653053967430664819296037054939679647029441509970446462420011497067449898223935649169006068047721941278520927251988723713584330092032193442055261737412720739779705495561778175847992646965707978285882749731933132947762420857387197576310595591942315467775006886946284102191266752306544434720317141509090623871720095582325767246194704467442516005162076211191267362446892176054367104633243313861520375292523472768807435408263561157324460038581264762679473224577589588026621209206662825133197323868567678040529894140798199789292805504961488247538637655997685113113076126980961180816722580970926760330163307495581589836097717792472091119714774148446513220507443969091915611234835340089994903054588607240930160635653319426339832067273056571853930363355624191378670546391701192734515788123021608843922204498219217288024871188767340678963373442956365915509436780216529527764570094855108513913216110532164993544069887677394053012557259887071864179882768989954351843951231802271544499607895989682579866979302197755551532304615180381677617522793322299629654340502340569473603857698295246568430894766548049175751032286396682540625424594268906835947819494973770871319446829092239527033271246232022119492941427660224619813913980455923296589818425810425845863204281877767353588990777178132558808958607144089655429692289238340948788460925994875577502041782500123661491833580703528396987678674630652181138760840689465159678993588561014766856970184606573981409664577694887015952870856824530207262072834478884372961702684560521705447559159743876105581594255543398673567943046674007453059321637031841250541329968254647979928270813668745733947432010063972797013876549764601073728530223026197202040460610791601942923865258898973808794941626392608788048719540755153452561995976731171346272692579519165686273417622782162975156400218446373036610975091188602204988514136899857726338975382000564874794535125342944980598490390778533812149947996450146974464727590071440515152993242992543428595910004266416251447397700443818954182807685743463995717469517237575829946127007802487004277920292392852634160667771255719883902014450136914975176038299240584389662322716797118827163947944569722053263353224748311732263038225851900117961082303167834170328232489096847987620654658664349367517156207062361019540258019122395357720687793495950854614889481484974409727398120856599688397079218085015021892559977183257628960401782560630844417967140850141219139580797862310394414488215879936266003292755971995253930522368180510583439969511425275963782210341597803174166669662625043310689925641017600535212788560170598452821500267640619755338381840422435564455253842501093414645870490215441975419219488977631540173508607333326299539636315011280308604668330183342968485655931045405229878744820775284655739247855763303278249101873220831528870488578875160336397455289456975418319018359420974809109602066341403874663648837179746783570497677884821658932234878694423457893482360938196343233549550816049134253006597801993840968702892663553746075059534479646475515591505713123308027309954672589675590515093369271292647443959493766859838639446476145393598892439141150460805950415495232899054451262855590403036485221689028111894698460683687529401385792682416675607575725644087541518331421640008091218453328438287666156395903661926496595483207366756478825479913126878274243646791603196190766335759527017768922303641644535272137153017164883748764891820653525141470060972797090050254002358067271456095474874329336913709157027039834350369444105065747988167901231466915925006945407946153520822434495041102806435895631262553247935694102806543835874583403359114705885612663912280765679459866453813979233487308219122527227201488415340778101134212540365920133352703315787140426102908380274370038635902496357079816020140428384810773384258010252601514081081426650924709588960357605361031547914724342001591812444908155981286980367232300874484499221796162446424428022217672096934445358665488849599908931778292326992891352045710061588128363292275966202252536321268853976619348384649175265664107707649783921998625724877559990996532170087497906975990568403726193262902498343618812211096386023992433629936915354069440676486603496005662880815429970379806537371863551190275668484394093601736428728270098852462439008295011842390638946543444171168801959758695460800526430125181822052942179054229193088008349780635664541723536839210172636541499730867591085271905302404894513566553620752957753871361546376658119685193360140319442305891295959270944230639195005055479540747683727220487985176549734367128083174666041137000397428329755000864062758809562896475217866616512615449078893478225045101038389379087893719378867996999246300629359364687834155008666321393322537663553812508953683229470611698359620516648578320080502202753807073400610306817328033034505314240521404914925583300897701918835117919612249068684800449334777869697590439638429521305415159966125188883129652103173440332835242827376929485851662772766753249802755878602884270938746302978854911158626276015130930242273913535071514250700286623107477539355712471816734724737921361654103084451841682946903212935337545187770804303678359605024840271880158039792838419543907746888393539586619695447049167340662226922814108062158711697122432680002273889779919339511902640752354659213442400008759834416538185487037221477818829176826697590251964276220687925222250992185822580304402306140687558815347797716717022858121264509498313316582866596798940750529864264616474844873985201272663535857188816960822288745183414041973282319788236271338097396203925210625101677023674200123431748550769159285851412528168907945064186792963041850042596542023688062327901013893742604766574316920739976733380669824040800638636904507972506413501042148208426507334654287962801864599809090204213092042244030616502191454865857142532146180664940525827975953517746040310869631464347019225561132835030809457943862229403701583510346768270130247303889089342647396962355034117223558848102187978871185159421107703963187584543253920928729675852749816051210821458559788987628140449164512521500598257504482574976875659118372786834285733921903056699561011840236691472990343222032746659487445253981614943487564432407964981739272760431467643119018396237538202256762809207422759364816415939778020035306763787683675188522424514637909570287118805018833292292362300641045642415270456922452032397914672583613977663569732080009499542497522331342071636482154342462004426983146537414337193661872699123316655548823861078505664588913914382940341395786690132007272214434702774254948014704421866593339080808556877032519891304270725914356422417284541665703351886883713153910601339729529786281489045920093513262922270915557119886193784235427410104788216698042648325854271704407497486045254055025877152542032666843954130413552952719139876756329638321248801623262858300962933013506838059977056288421374284123414099972956570949229505558372123697474464682620121147335217125857362948865794546045469249191009851444755288410891951753715050851360977307119506053347433886056732844003544175214888561085932819196412243442736260270187280050863979409424857940597228687377612017509016211881200256156799683877119473052245225681243024336871336845668466286302810127954763829573857327588103638463949834280977850937687930801070248438940070679996885683413457760669101614622599896667124818915434654300518099886170403606313446298400783998475975054864519600516761553158509747887921150928641679787498021603926051700088023276887235315198191116783878189826057335518565337878500777541747434171961889974616428239842869014635224594670282684730262655419247664612915189678115832296784955910133926969400931594514745605431469355463806830893519521243550790473593211673394085064058676369514245214151218571066012581562933950890286233788478666546036771922422732218068797549556106563631696671757775029270806888406949460395993072622016212616658720219110361887059959267796193421376003927916789667864448661714744806933312661036158164126544647727630203924413810421925529408824267610045984119823461748988609948817894044548889354284564694434058543581881653203337043194451495175550735242977790785633769710546475384096278767129177635027782565792043220171888840337405571867871524334858029364496822214146009689345747215951661882160520189037520847004572680263128164141167980780818957182050155590878559643593795849646754077392219769006819372605332316907871154524880578460760648255227406834543125037074109402394506933096605133254315128328863711997660733097224267873805504660111066137797606597662732699506289946629999412715441453769808862062385374684526916458045750733474546750935581098426967925024757069419716248641305786617695089365713616071419368947818734435269923874921380989373298391419813921734967428866846287207350144189885438343260425142779361818303853725362220273802186009038022026715401893642886764985145688177281143389382653766101727798225051469340889944384469550973387725082474909242920616044791523871330714259435998366968888208338354040731335211597315531756039501705551119122915090753414539402298616971624148403207620495220670675938959640427409680453365347519713084207334161832897541020952339601859417839697463941204058693264994213034491888859842521585607599747522475347200344958506380506995657729435072355716640599821230453522812576267945008184318883653405807941403440353782891264379262303093782228847368848507385431970732733939014793078633568898152745034320903330754573338665974388258797062230635010359306390732909687819846835133799574725262402455354509798450848438761247739718712027384597035529212975294062892272734021322038004632409467649777400045443639340386427967126154030427809052415945254559223012908664094642542844024526215158257889446733413541636602542766747984823976814568796477394870072650221830926816264760000128421386541354924530280084272137601899619257232802666638307195072975727218935977100350784834587409698246733363450113802380794166345178539043478597097463689054957887186704233883088303950637688107606489428355020272187061147717947759587486835038500792897939928246214362517460135449470094960378062912913527573132179163243153959555098953333307772844472332523354875034181020748874191232023792105710050372317741766356883901009428491366588108384983131741915749572809567449219102442367705196925325147793956700971872908605126185627623029372638022708092102144258367194858121207715430838465397437182071668125965928379713108754174862505341586629799505729955545328854904278029094296314849641222628562465913807054940397516292187263652628756522843681976628448348927779552818461343701896556181389350459427752747470083201872211462473201675644038170650270946953882188103876648224008818241604390239402667304079349578891271413038112222850864248492231240383971819767847031609808782074123299508236287864370651800295114457215205427648394944701827708285541425313819239277466970274500075198797237323436020590760531406845257814288723810520214302011445818616531111747247158349186085987511303190173133221908952210026728987652654293379171968137692790194863544825800854743413107136886109439197693528077796603388922461297883264913963898783763493553661209603230833014776731112608413073681575777582541777197563882722876710452662044210522459478060174581112615767745550267197780575018294528311274524168109452168711325459352946370048936491044105165128568915539116226203389350113520578564164315945821152322695758519604611075470718484865837682306305250436170166325172183891222602378205707486010183635749041753614820129769702333761212089745926671736797648358688496251259947369686664944816749696424174310664390201183148033047358741109178320218406567402476062755043940194665068677223111324940067574629317537814271138007306765930383582779832193698680366795176754443979145408355045933276288613186731803873531272791783490911424348511110191460466700958532561602401497825159182554875081753696890067130708183886472285204369644683558775130445665262914755152035774880363375029899730823783489426102986162627131387625930422855470044027779102297132499992029151211983071561536285612300204204722881787615881528134231212115822862652825334434248838722707048486060104785495281248223876466143484585880051891111600148032445891195107537873161927805471508612015714937953235056617602381736882554451439599806853636630954640776284865855140147215776554750643195853335496640129799086490899083395600856800356817395528187383217779343073243275918985558787936104247440670909461930809759992749111094968477776104667594908930942673205256263219921699280619949532946213409203725316422192571173335378855600579920168909772625568723909060896527706035993140267051827129459908736796325219074411198743550996713390106207347653132702154609805373304914545520319080136615919854900739916712442172610941472168845010677712171709008220090151210904957869125941448301316884418817777075510284255681480248398232672220643198053220682115741599580214532198262737082282766336932229410985700251244942659856504352076106317669497472596595608846234062048716338167164097345602222029616806751288522224310897522822101417786604160240624018923947656127822657867742058737307484490799523460063525560489344329542765463540459294081954413928526822849129712880995968217652319974970186223158813503015902268072981309471432498843037331458793129955099056510257131369057757169627415798200085699482529622282495725208889671733447530462889764744504647896522654310729394775736295057010066266851884178883449181179823295938455643350025001647384597824304120990218327652659571220242812919529805922892772789195242783450736510235237585790139931617565617354550755568865944220478592175487700748700611353492628611199897347148653480434342476460957261812280766341722924775678337407155470057581440531602822488088109546477906332718698896289914616060832196525939577378262133234677532662727714142736641708976510592218439016540859547648254573915517609614520863264742656099574891547003561384068461711466901853062174968855703310686249800978963726389426591058958063431940537096323557521902302824521159590904315772813819746391323861132992425330844655190994632802718565876701358261553721159504108602933753606477651932884721010959687542648026053401030474370795530189992937023657972195866330044469772112890324908081520126633746873749077036425144576273749996009352089898259747541530801430547059569062246703862813471192167757556406078343915091362524583177779500924334564553103612473147882277709401538073612434759377080420845369447121153444350846452305251387747537293208215103726330995548912348691711740147555990399299846904044214883962463594514655583339908189234951063272374129164024036882846086228285854874303745509804192506490439888886797423346183682057355641185258281511751986579605244362903498425449746648696269881833630242128765623158854458271232616170476267356217471946554807181659861129343312213118661539077287596283743808352877068310457748043944463042272663011418365909851337970082965259327050217281830517239352136861257829074820982268028600467834952980766797715594768776993999139437859361028738045510758486783724781629300390253047809612381408321051710916686456824111966167206834876658082865949409172628476465334438174762478983481697144570630753805007778532533115432719932946816126764333616220451039123576740709773145414658400809348814091203266648447604618790982358251015603738778835566358924840086056406231033074461604006980159269275449246761525600248909255815150025155343209934757154038136008116971916137695037492320615386977335847567170792856906449034097576195580987258318123880644665564687567165697413034271948120880193663937015688495025147650753452085718030017430087053124494539701407905423017312539763371813491742915500444072349481204782831817377024501118096329484926525541522621690473859865817492752562408395649011637933335403609701041553934293892111163100441330318381504054339868393641983004417972765858916820531379029961298619025816552551020300472566074421244964584646910802907124395877909444846477724781924492156434000237119296930454706018310497445820041188095730250881941082265671500367471661286325540396995041870534654850619713637914849159818746047967816048741715426624646188745614182506364425009035343274129831252544459889372100425734358743322202443099122004768735954908299692868551871160372636015719017709413825269335076261255388882779557556312216352612837470820953407349352185784523294090164088078136944772476306215456281095964198051398657793508258461080939543446655427957779536580980464607562075901156173758026829099424011189352086535864278397769853907479312505241555106088795961920638357217451295170762662811693728767408079234077979267063410429002470588518401125543274154540131143543048114575609007551109414776037896634178127788296721209133970200031865069505745962312287200045905992795645517845586893722617933005906067366544567500838582712320962315013076407066687971073248180561332082721438689065381547178320135123722747483379308821291446072103323895006646326160259324918078859899279549306490434002620599345263026336211901646925827785696828327522861764105047934880490082101555988040608976796177687509950630291578299471644693357022232989138564094121975433317034742747165523938943541169920968711920341858270965678612384004221954472959710021503812416143495096232455681361347079330528619253863444700678402912403449293367661288241261514768040156903031722927627995685684583657270909751507071011801408105898377589880006327083315145712644793354451486809638699806009267356555576078199641230667335206535554941259637910579745402376313412166888081036938411421978452786607753127364616699740430431340511691523352826974131252803144160937049195340476094647152602216329225500125815148514558279221682911822607899978809765569485531458175496824265504228809210525582659221325312573442386089933853560008327774894337602434520175914571961806712410440593572040633271554419915196198156026705416905884437072972125684189844504008639459647950744589442016267300937510048753324913255697126912377069441355439863627138869196150922875287173189248757152229423666284098846645986391315005607613773420767790524746235419179370529049274521511590310781820089515511335426812441971196776866684835463428881147869122650224672960627992391697663220078108880781487582831540454660975610552564696493704599776647318062091316932626027586648504535801917474352856087588303668645624823485522185711537630165154447402993857464530411033817809618669532824940343973828705388259933751058994663682849818193191511232524742885059902404470312137236666590419005285227033045428220229648518327998729869522048211650172195744837598452209612138216128219555858641168945553664842818187166567178224092743742404655082284043051768394319842141116752956875518341839329277593107776148604251364059662118275718441470527243993603178660202694012971857956640449858048148387423122678097741858151567645317296986287293461907768885612959163198228903770228374614329725030863522636623197121236604851583914002863377824735105270714825378809866037535219519060198092909013060665091451168721941353585782584885848447275211902927574767021155073600799442149898183761261189309768598169781380458658082807195631906333737659243312931062620713608473609760330918899578907510056810236849958993774868237923858504291115995098578834432084946507457166621038084798036663172600955009078139974361001523444445577005080777352553173720299454441137955437545280717742457211565041976614382398622771039622250783103909606855706688178639975448345069135354946886817576090212782818356144433747171806120424474090983738017219743879545531202762151463732319689657246000531666092817788993987227531780250501886323036808264979971347603473910580918025607307196315407603308043235876740131109246103654101227510122008178678634186294068339520437674391797476674469794302472209078480418906381946118961335805384642283947580906909826713340364966489901891620504067661482159962599512872993163012327096688580503654577448460157498371594925813718812737970343530837739294214086797069587297053455462028829852135459581064838276664138302186752255681573300505886864189529975612096476338896379844501845072583852252694607944409817030544664176565207721817071765182602850550279106616508762258804385851768939309191730379837506944065544141498147284581598003975772317438195952791509778318925685404180495443027643110416490613646687914953322889216884807709306648645598303514443593130327116933970767010010592083601993148739891990159395090172110995283290403440961980005678143616669139507548066547010880469414029610250942404137269583834832528465301263179662847551880047479748922390446690729358582641521469382792844613970301559314985807500310156937020855240885008127198562354278604272568389371858456823163284896582074379811513406686757565352668027861072988934757615595234360872091593320737493597107199806562899722631132772475272882011338429573971182721547899900921295350843532340582996174818575232804943194873994016259305659868714164108466576448985438605643558606061192668705110664561345639926363401881680881557813507734904521909397341083473468283330179793764082955210235169773407399827290806084993506350648303816941402423521181200833456795605295048342506114808352887380121554270441416020835025624104339573647799471215402644440618785389133620389124370425305753387743667863580722347161675096988748485757171813990109166715512520080072662158769338781706124148914060887706011790697462630727686065422298336010883101569957479603599226575839402824501713734487215192904525065657759526015406057042505586507180731858301691474278077558968625289771898238348474101885730944323722350505392205412834327515589540257907743492821529819090308445853079122725596747107953809891238777562155836984809891446762241287749697082961726231941209194262248783800824760667631275242748395609129355222549421159142775858853237014258781490432081812934603795306244597542512816641814608188544005567877837569021772287921080820610122482700163556834030897468889324039978709262310880623953101471102247099135938177809256944154036676054493556685503823194073847309741650345366134642299120362298025537070089681191821959440874264119776194148948452121947471017739348194838732375618740938521265146413250095642769229351427328174538815202128734155732292120505861585361767686716320644756082063003665564736852097497355126807413695931180552750203879554252505252642063403440405799785992321444373922207814044374828386065414471195055325733718375873598128514900860468726575385462334267285192302318758759759270480527994128573932085067001335507240270830083039848026702217405753847073857432995611421125644984282906096160960499542208409242170827610339872266776427347539715074478083294373125841546522536581882716917555105654560655167789161800167041877482409530357484827538598264953089544497808544052094969577073274549872169674600694565844329332260551209878804859009758000640207705873166583198905483877023130878798750958599629362225406911572244606808394282705186130964667408179513909140485974301652784149404618057723794879376535865316146326911607099142388522028604762179613730342736772894382791116812482698727678020034993966445002260942368649938402569534201264692340258174264365388556575201409803303950435686261427696797012962370968845532015512599885539344226760748900921598705380655525434959639739190083248372849812516515471298205479209867985509524592968827862077712542283337624437499997875941382746237597957303128516899033422698022226559444158275688696679542609631108414325973723960202687914008418449275575919061062752525329572636342314753975121474140718598857931452559357261051081408735674167256327726830431809521683684386705337687419148369964033026446456415298813937796408178231403886773400006309895767298542804200321598787306756594694654333849690729465148450497115221858841458629985897379677673669924488493540307825648500212536710576374623635897575813278196794559678844010840304811803378996543462045073735897980540644019472497187880216510592563904002943043349631917601645051540950246735744773295305929110480363735173376330841460377830655274617871873424416555963723156695567953761160060785094761122401834981215305126363439769209157971503030482306572895810950125369849604189030463460466050929896318328800042919076786514068360324770383618905977485320950437978150434580830839866448290453495271107674331215311503970995298057481462853112167491305944143937594009865955055919304145301512980993160206050962670489310111783605062959329489300058985539646537732651358594175119812332500237959469571404003355974250940871160166727307120959240439343555452891761812146894207176783565567292464265671510891065924944039395441793425982363775091579075294982297405465578951451882950231604418140535360091696057687899108106647750690856821998734924571400583562782282471519864471514144799264843791396282210820718327801128086371249369981637675098213168080486908715338980737096559219357500465993180144647309681856061859996796694679880558225914016516239930759169087380363615867229902719944128600191490080153016366487325712830250475343809556176817938102581892434997052638447633086768761173478896855078964946879984720985344824287798056717371563325476025369739038985524528398856191767959285035885423156768838227361833202616648186893110717873588017633317213004285926216220172003033484435351987723077497506485046211757836290660569281097489136299834614148075721062120155451173174631589630338248348233750794168636564403683903485319941499110077346687965501561414033681050866893273337570822969596124902044137396476076975462462313068788156970671456711751600902194530490830805622404934789472753156568846492392275531655777452467162447560097345764557835898449471913082141816083734564963552710506033211963493595230721828801059618368584307058287239267604176899178859773786248668905228488710954483512727018317770698247150281320547715796179872622550877540114360954086938974439062092659531248842053338906324782190529323404251319901245898704267158141187034579034906512116735918713277301425774037947371162939798498924058368267697133514292726782299155647638315488314073734905201362245367543549007366367897870609562643368756161680891062747801332768072623544211334454061598247548176325469801985859195085099507527766228264245637886821618185552940531056932418728055742163918788629454694718513569362913488064559504797669938739453996458890419363672867199298512515926763152360112799417369736533640926607393232643053407498461651776379821989234992581927013352050953515469543747631749633748637908530663534534254032424173958032094124336814764373647042646824614151174645924970613173134146552608243414896633973134629774933728791815486180729062525226972115187942761104284703968536269624453819531478668336701949000688961820355762780565787339178530423985648972546890955797625665270396373271672145460283046353099729707478120499200467827879454211769100415591051134294430266809757878655560471123712218360508104675212515279612888830939554614656683794674316094794339276534959735721169430918186912011892786859226013301054625659131155825364047128230937320658489129753883630900097647654538699296508045368694612440868039997489588497594433346261836714877293112505677545634717946494531929672314504840361867191470443420899366183722177219851484061992858720700064432940208270161775252871703469234942077948393029345937026393729375976792395626633749777221745870050671765714436099109784019264999972473315888229124709874720938436918718446735326743737466930464056731191111056431988776669775319476486746503461527878907186232025698943694969245529441672030480968421085255893355039588736526095894042081945905259266301526090973872044453630049564795377199662217274830708390420453200151510478646436538963515735092821235891795586683352253991536022661649706774934437092290401404976609783637596488026307547028022923927609338407248982266162219614568412814278020087576366538956290355222888266640240719277427579918949606065402587125265755790989654120268183069638889274374396991513802164695734411732789800523827331463400804074104520439679420250775998208381924722312970880323549485882244933401751691399687891581622077611807812832953095771340862478834125851646053743036978523197362771321421934636630714151168591241857959357718486297488810326291958610445976465529405323824672510433026997870396962883419655912711580951999657889896704469743297863771936338789340121187932692421420633561302722874108411670835293413880193523060423471054924563916313813169417899214684104677154263422985810400686925553008958042429096950503880971161664403579723519836452543018320268233432818247810563873026920476535711128011324837863609063650779161567907315151575055419180135552900488835678496235453997878461732066706900420539713068414297665838096324477932661022076566120077047009259406762451241846397015113982173115046406811469801188759502395031949519797302143809755882260253470194041910811089989502788108450838269588824966308773263514109153643843888910039717014197507571774113117515573444983927998031640455642814717707062819192430506297673315792516078064239566984429797436770527094894280771854382046877438726897876915608178220944432095668534669730532327259115845197238053673711222961913251321842634962542231056323456907942159839524973567546598438076778945627005586591589633313534320084109750138062966291095795924478014015781189286625097764371055125468208246966257471963992269051159516959494407914859834145329198454862094120365311239415130778169505779422787328015672353758699970034046451060892752367453458240965136717675701848639056507138412793054860471881201134397704879630492198254896457326370013321954389361356719758874980009133904918667929802345386693086868444004162022247854187427240476638910100169140399478679462701756026862569769286205528708659471433472304634814598475653678506721344108264759355238278149528004936627988513185593649892079367625654633765402717196717408695338029469499077175436975976507420439905389723597552187700333751467649668711772111346338154374622579826251293870014775238766878624170485903270664398603169500388306235023148931483596964201643389281022684239689481173182749755722404771642131910277411039275495243872352896028217647679229879269352577227800451229796714157625227571774772487206327585530525838141040424169202589778443340719011172654019678698652375796395405269649301787630128338055471336373463116898649658981047307519355109735319192573296688949596917122609799858368913232019730709541459974918396873299417235646483995953679543616706922823017995986248540539258779638124502730181707969633847242921977604419952463123413907936053336248270048521242314294311305535811214808486467839477567189537248518242956449111538949024026958950998038991843651621452126498379713278415640482802400823085608772865739015401725592629000064927442265389260673111949260863288497812302063965621843297755771501202983728359163239793309380559948845746116580839250791035418062054237632285958593277046502622094450390453175641700804921906180500658310469991070721926604410549839102455233420401898704593930581189840502310801594742717417986509007008310243353949455871881390906311759194513374792844846523110168385263929661362047786533655411469656387129154995988052858745071584375872580292750460148572965157531480196846084988072927001147417529226695106814422450838082679805471957076426265505174074543895962903509685063097143459573096010294437544542374761467703126380857822209142689515868721269145287913989678673325756065995680991928175311900923612122195961802701976961681486082239372034939552050528902016972442598117760972771463064155118126475651560973060796283033519443093915517462798492614698243248948460190553847151351687859474936142994256483156275394063934734948744600351916754690907849100538718564414532094841193279654177957553373773391757522110356712682818602697979962089509938455584063729539086267511018691821104678199013718775819267695768130266385944647536267938240755999640788213667362161791711647998525133778129979724786143993138594378686313870129775662778246360160051211402290329813203078094444535863648977181002990453897127915637718545645692260179965759880966466803190685475303006487345256293043276112316155967896905543851202532291967704559204049075912836387939217264465972075357247108728744495847093236000265382127392227703857382511498621415260267841260115638285761815101391925729001354771713837603355839828982899892182619683103459683201066460378990668614467359368390607751985193230725876680177298222926839461890280833170625085894289963148948084899320663312178223259415063027230983493327366507356102683798951144745250924258336508527365311080503080145442432267163315263290546074360325231398938066423008764490260603774680040466320391865042404010526651711164018447436417282978911068579782258232496470609748056994541023315920923990222160629179118467880612360740454898110012749380136995360002393741010257674940087398471151229287951371394029214059038148182138558708109879848204065711882626224771428307399693761739452604125987286179685851896928873884986580725389392685374938940765015177431298816981843539890442664560650281839507815633015588022945265356268877809475418830197556439368911533830161909482291027332738245874472633802839730771110280964869062846740167928096679549613047105179277555407464305941986867434341469449203057947529741195874552462940952283002454318554802922370189623750183098962626658261630233137753278068297711400810421176142741993097176315562978469956243133229532590042050806141188717352264055289968088089740491314709714922584386720056172162831089675626350770474109867274229833841020062294183898505320961077901246728453939207640853133847320967628299925200722589802721399166633400199270137202363806377376156195158219640009661244580878865765377706926152701790824905588307516634083038725912293025426721614217396621200698217821823273756172343396884503834079810411360266387271732860476531641503616175604912078033635741918620776081197558752644934605050330201495837459464583618931895664815054735761665752766432800437210013744115810004901973240055970074224811867910339292648580362089757405163886286416109587944638853016021482924798845446527473092651847946031903082304491553254251176631796492469465151336141802806581681608343566636550344890144470790692978150873627474307720002243849268835956757212645457013166137792375804538373717677720714733881481321332968449376566902868919627242699938475242386115842044350587351358049117155587292214481552543059979540497770386488460445928417866242118628106503210958788292735643974289407365737126783750137145219307646721278603001419387070646640896082849548235386148666032453803005564789015492298800756398165233548535698867602772379991849882264381322993675727821956208524835713040488339800319144051298492681517718433863390821580338801826080266905274369076435460255925721335687989455986627602896913209319201641601236673248969111509830693364734828075192583311408076631211537734617315031553773311074773358629519612565732969870253013929630299605912616491684523972892062711785957943848531131920434572682069884640338828212323965951016523799251618136034506871289674768361277529309764014180180743633285227192811784362433026153480468086990336223098881804178025623984727208185506986144835176046698043064128516477994338129758657887537192663087439627995384872892058960550812718234334794581146318964100425964777069214240267093248709009107932845547882937361107421922543087770346928585766157256287542815670179509117364800183066014905297740358644625775191193883023499055529844372306294353120449352064305660109112875217389104209973874192604047367946946403037727129733370302416102148635951895314577007460548490218261266145412096883047241232702938903374520997085463727869502170359477885414426111149282945168424978336359148527080160047978131094179423960751416969807765581305895796461372816400175078833711458716076013216892985576625992191155357958127348194571780049500059190758394778689671003560775033621450293079547483587198734510608749584646150191231276134345634290118683843883697451632399302637551132325736573644715379347004087270674034121605835583262067887621859371310750788791623310160121647914690561019150875763692307010121486697369984594666615244135901067045618925670722191439155005278374374641911563471522953163255457067626000392863040959320669150865140753219421361802806603498991262193888855848816789952548773586088752052216933214740425455831402640110009842286078640525959807002400391072468673817490683516150661661060152816581592304623526211810697697178718768651385651183868160973063701058886744823696524659839333613091151441539570862939806343419344578848031058519019729223412102970828191625593079658218924445069233011192959823851587198310151010596326676317312762148335945275993793409031853484949864738197588851128964049711401050603473046687440088197652661605627329989996408949893183405839892580221078712899383868524465544109733818049591109807563215773113420653799745207690227809535795471203531357435490804386570209358577761226419207302513964939705000113801132405757279143813064788712985298632167170054530691794365694549133420381124841719763248523560724164512049989851300320768574721535293746868840588780712003910981208523286255080978926234124862686741772542093689752776195537311946387842647935069187609277449689367991924447754008939654342962611244408947074368997953829207833675774891981745489264051528575204544994307575959162579798518749019579826860775579960678215559021269985534717497708668889431704357585306276099358089155339284687027217063383000518836350385982811538343294770728254558755313917499283870291101535024904863032480300078329878991166807057580596053852734725048546758123673056381456420158924543998207215805502326778174142691254688727008988776283031045427640474773705160062464788802009083914364558088210788975113731725190246833451269766052833252035266116631340742475166914462337539282235463010537355082572216469581921021879830335700313525852982772712187489369598257735361080836986832440974106625599905350204783004113958349986979889495410985619439196021557431495746446474578399901190969707421185979993093844744426544393435979274595223982969862646338408413377138003381035518323241225741862920959451909057152186123267987402129674713723019769730844667745611378103982849944070333328747673543979210747276699061087426841814818579770880923162417709840030391446114445388874277549120428452914209877945077204391360917380643416770004571296258480635960749849822546398768970684093568180780231031635771857098471835074949570443024235643115868467800666289270612605399954569552545953046130489102584354382064437703897152288968986245116564202393490467753545069654628419795637410014215503179416014605282165264014190159446808868129639880863960837169147430132931903675582907888887852806016187204906019439943509164808709369938858926161730437303690314084875264559520340396949766623524562039291779299139213478007003625361790486329848486506079060240774216926070614305810672235274004232774621194182385539491481485808813249738928317363828591491355534896074741556727382725210749029680899333303938492012691004765179455966668004099619224627823929632959944782577677583908879215066936456860582492694126140000648277133707570947318902451027003224347405365209127722346387654683013787207293778495411547101169239167959781794697383692289264554125689137038399499994835871596228468201233691240446869259101136454406301926703055126792701746227426879488681205428323687282672490239629266756189567340921797718354150023417023013596712313653364791408298964480828785146163812617850828620452493215968600759939411959464440079897242460697957615042537509743401917947323630141832978163271488547771532943894584061203441347075802458662940885997325147256067325034360355369939368174933954087757694016601613052173958505856380504466663646254083398294233772035626332216096991100858044226494548192026578023060124354287492986841154306182640485973965924139725504563750864926398121999411236946242976776860686163802288309891105182616719843010656556777995797317801065040259089780185596431257540316020599072172475071786440599209444977482502958786482116867303831189905346697157835979370339338024365854065972758268086498379993350179181504330599843939571085149611840083426604830606140745827412815976874856730654998282125876936225172214860411532187447086327353770268750704732582779865593209015101713599474513083970639708334145267740705372471606474153379500810092034350366822846600119519144951663403064499491747056634874615872836927572151132599183004633451017359783785940305058151165882876443585963595073105882257701531174785438303417191004270799547318041375909898303157992741480868001852251736014940993109324628839200795341955785980270638446267037738055853489393524721363438297327556243791263245110094274054222670783148955261405941644444731672997297916637923919228975306598745286376999046868639732999938148797344210077119037166433820344895419900002809124320710100527851746156909159874546045002085116022961362650654986862320682083151962215623195910303744061562334194479714111649794296488262964110672359104750937819166611883380181722447794264684768875768319646953518078755928751892979882274727266654386306551079697858884089025916664688399357550181997316184266569998999051447935999409535136796734308860116436960185017645274256692152415879051703915821715040639216049511404471068671572284908448653569819459036119453056828053239976538986119549921051792387753644560442028824350225073901507966649702279036585104382533641517635687199738699803900227932491372699041881298730297454409068208414383601854488791812732517723612076964225020690804019167673778348605052252664582928866687795798976555755436651438062081837495820594854293553931591676085534579755270399520662295416249185232227105352562063902550369300537343281806915418439071507392901954931687293996037186575089905375018629407354083131969883780304234969783849068850842314150221045021802125447755643447397703440231471295532493147660357364661127908163610013262684576910380726038794710152087256572861550420868377001873928016712526840683673519530147696325069958038587013784320968165908071968086229414023975937995460293549888853952353898293428062742744496471078203681564899581250866311660085094255130791462200727375851543125358295379655691445344042985909995148033935224985098858131828784441054878461359258439113306360786012439901643219576404299703187522640836422469058805288482638270455388617420486648518681448982929580715626317918137408992551540980695133158337338460937009024723060115630464566122817373380835989049875052832133719344074740646958914254074102615522785124133401198180575441107225641326903494170398441083901896352069754284803367813612594494627633941600035526111817132944634955839713325891416938251802509458623627981477324062263699588993782238472054375476834433274466035187570269472736666022148817769048255383157229464372031060902165582579011237737009671830960992577966271358179730534771816045290465480428127325276419043748773792467078958379165777326941316110821705433947893301840504315952007415303636544910445881983029990582480195654900061013106894584363017645827883083831195314979239598470602803308932994955671832451582090213675097589419545810512622718981162799556563866458885768339085875102524844555447788569855574511212920963052387270603911377362423714041326065185741250710359892499524746792807457861710590931007756851729939787034927242891884185023625129134070590025367757461381333034195419787801158297206627128792206923641944899458543359430520163930860620048184852023349775186766966346336464012375287523051035180017021602682335086447249251713255647044745388200083038553505706175798931281306462661490601669018476104934964054929447265136683056338271876906452971309551308249341787158346073482013158509145773636835773750118406926072234918655359938264543661790594689638389309079557094514031682974105535105854555204083704326123025808787712407706064601459798215297712370772656819717659390670825946579833351540223814197880791087730480480724490020632228542221059856696257775165191872333773263680533855216269433973046810592775471512229985947487389353777269343858050535408611779759186671602970975613117021042869169594665346588398415842188940454217496165422849339279919779635349728389551342485792009398263808746967289345549303305585574997998913554508732695888460663248527359559116997170618702108923333465650087339887181622108557004916126786150960317709289246369472656280564048241872844221074102358808213008540664528012930609408094628930617740132102252642758212713894787491119581866488431937072489822885192623768854982977261409222045074524163421451676153824954021255929499968902797952053245578217505031023037121473302484777367356843384803529096139719504477149082769536234173005618833002064238334819624651421787540895046971754403079188046857128881510261173508133229836295593092345588403814126062805466553750029015083586531448608868367363923497054792421448708138672201279236198236600095791575521499506390009175747915225984291251321906113350934867125192780721449394676837310469212466972775113310126011794943757455135216383981866198085486842187241414388641671168272714448044887812499562137221062085974203337617719873277979742286920970748884702485752453602073079035563156210500460212133668510229253215608482575806368892872857077362213224246992445892236564177843303484376416589102847935535860563900218808568499287266806538768321945756901900575590315441303445744602816343922353108150344762258030723003750022581872358953327262542511275370039618574616036261942029663239251350989232181070916537356016858961126301864769742444121974221554098486042989399377962603904013116556526921532553735277067279816252885795853947030065358483702597342826454968272854166244658612518824014490262970794468084060950370513853964134917608628478986787239313370251611204214726827928508297067392392421879707566116783548766467963921076427182435675601047089862801920798715226804650868877039424048425309765639547087415319464935821309238024555015534747797325953096629747725380629034512683197342146341222456177051897435768249066484992129314672368859609796986422380941887123823613005417522409255469554450010674242616956731723542155657992729034818401659868776029864333891608840048870439916378752471685259945376521227639361945638378216228224503447287949021025016844410632369762583292081530688771411243525375425851786086436079960046460097066954203466435667858006947773380859093775544078960859842809156025009008615055036401355351236827071132309327816098464526721197139663450618022299290393734679511352525397259713409325248985032355878593300595197331380719897934567339766656584700239739518653581798456075095035857607009786719772523625957342483975839688974222812803286653366846892223510452332452249438191393023032947687784617101405095126012414633195773072117363040004313697383029451224018593046199151734103278954153349013917766172399324623085696975082022623916153251955022420244711136716038766956943310945307549351798068704113326778057686236442709192549133533638693639818837900387701648861925131734155558793436623805128643864371450879062547612437995149731891027137179330383670963044803380801395121878305196531346308327945143963481051674030323241959516044994269140253881616411967112522081242151343776476516713640788829150000955843701854020351128446385697190641015269337810470822659830182689859490527284992931721476952385777214988031602558724595989826832130452250518088231344492790287715265237682151435399370703807995607746862252522150462715620966126790345589548378608035511638301722072751305579545852591404608050860584173176327064367738284571705395943168468515281076077738342474078728031076404609156484556658135369785027867127706034447144410988660299479536004765595179717161914817641854463700089374836562936167571477115309316263946016824411106686268892548704578540614990569120375199082937474140921625115173534922153218322182523388858226270710345530567168123819084564303753019032123205228943582893715307606133495821332981991470607975689606850796168764871669839611251943262677372570864282908383306234110453557835593318503703974585856098310244127319055289485045574665226365289404210987313786147082227906920317594359167845821632518086769178083811288495558896944305479873401396504645529956770531150225073639437650745390361959865196274635527757426743376479116716058855969598788535612141409297241755983476222254128101601199963340371921417783732961836477888901799196221748333211066107505336407037025083412824979365031271072659624119942059281278024503121705996487236448199686779273576502992358119851941493887065849115173960143753330064242692565320485219378273688081256222607240209729476337547276693802294411388510730843776712445712566439127735881537148749307946276521429840320065358043579223945603742935625687789772932359261874476826476834931682911089061800262655587817102281223951040306782829875751928177408058598255797464737654472897551875600575363795721566845563261950567755411228733388431183508852211258918716853247062183689695138286568296557111230711322006626641707691502404325207888838590932469720821632168399130593970576358642124220783155562963353590593822417138843480070726129197439714933997641147121286103460043685962577220492160899545650632167049820519996962377849632662315365497688982035510605613811040840000820636352718586091471913209003752797056619278177762233513832369814005921377655596977552010822043183678863001175460875843989878744811893600359719929375807169501490443999912744375429099194145416127294538616335502735590874918757169926757335313524592257687280778567025372875460611797712981664535449092023890738170400020290991474723538752390451850673338896048554479641131940234711900390589959319092613765459049998259737805175529315414733359574158328652578238253208498062348582940790523042805433372450515215554441938107816543532781123347803482991981156412200908949697918953005399585978025935807029032676127564143603501190535371546674279269217980544142108850860303567889982571651475459273533683044131412563921439100983865092520027325021237014588007356786065165188140919335454332057639414184550349995218378946257477590204977564041238715847134794649252990513124720736688136787477214314549111838729945164088979597460818562865125048253141976033281710213521782787189459990363121809059992961719146517975167134242125630466685205853465790966121980605005363598050576153473875828476647671094181586653182507991367537426259442625069678417429502631735757494027661677540680402900979754443905463756042059056720931800172317421264080351304060977054250834925127050128310767807000767406485883749085850890291302964988678175200043811299741995752889159111211521867999093575862123009821536825157422161766981706863958953442169434273097992895741617827123241269814351872214677237367698686445434753514771466414323211924785179824341107250539937721425382030535230876196792871880075248797065401777346196038123710901615644876929549283890493408736939896224049665077314372033881731599881152610582671147649015212631731416858978918851254303016463792599491698290925992920263083006009268656552791817110858420225078987476399976412849195869636240081544761994438796109433388185722282768632626867110693798748971277563674763433337246025345603489021769283560454968489474181761914438768655522582196285329729319757023322883558616239401686127868829079097286894422800739633398288852062067333926297039229141033608737877932198670742741077708616524574658710906780466539705208837725252892335161736900570406737433421497492723894456379074813150937492719079945459689039340342521891471459915446016087757230748182272229301971709660292227044857454170622510687090498408159494956438249238168461345646566699747005127974516783959246216498584084741470372788395313936665057143510935240309617094159334355081460104254091684911966938597554117198236324799376397129255773730937786712378275675091753546523450431495452084295005852879025851016511565963807490572551030908292327623582211552271606552865967310748327282954756860799625326657956819250203796566145322012746867912802461006446940963537005714223197597781202740221290724864344763676644289404987127317814623455580594173938757525210853587962469808814299081315744482743047340110041007528041261490620130942727032315982860557697777964693222167563240064083373812590957845070545344608170906703543545513857737940176949400479557346620103309137943780339846277635503645211585204861159051348603516341958930597262784995513190103523642896891028845283425625589960099232563654810609028287525964279522449920797626974751472860712168683410504222786850205189454368358277353698270536971974063159808703579926254800115806670551245781070889596811526046715296398394318347045091852930714136405102923453948812183615297408664179920745225526724502021194127432257631355637579242295776758703007896364517966242192955428712863074694330168244758642795343472683036245210368988938051211435390792915203031185008187906811382292716108798925048007406685792894325118470362468185277126181521691808697724621533448264613477634674365758697488586628648345081641656803250261172129782408110063908387408036088462645555177154346241599193079171393624182652984054609519513092734320219702117256366459858495993446195731884682819143498372135707957006305384795700119428406191769071143783383408074954117959831286233580140417177694226210858226549699399601314897639813692147362134019471636684569774793417381000719863304513696494162797030601921018855824730234576358922038753116687936521567890162195754207548043224049452390890537113560228873632629335108843997526947896832700038372453553854951666588191775560823673493666961097454971474808074082288333293035471279575387969791439782405813411498418417871818151272553036721162518153468036223639823677877046527763785025503216587244014763642755867887444362800358653851315782405360571401922568594392360350083250422211926224827732648573117889871277678097014588985316478406527557716875902963387930498405463701259660012681873979797231282038551704259996440063100873412607587188283284019522316640964922856091630308185119980755580682004057375703060228188369713431034373467439899923424775653628207548728158558668732235856034999917923887767339435603958528247301970568724845648770068849796220422684647049647074772395360518757730895781415626531888776974090722493286163057462215238568924179695902441949837024062162848311071413674907817967028479521718060575800243496764080522548139867919801421083225044355408040660807719288750180763655480004185890439104016736718180950553150812056090685528890860603916880184223958109169011297293282124645301469047500894710336660356641060891349446173209666995802818407073796322643005606274446997981553411134726823308955599702053363563101206440008466044455252525553189475457719635759059209797358126234200620522008654270315980639925704280248073798728710861054613263872935804629270831070171258336359162328008537607173776840892027091277076784522056591738010155292500249572900928046221474062052346253416035086448075522822142744045846788335758248709216301053656828043464704772533256720150428488105590275680814066060282828642795419295882645470498803385423057741209367897047406515708288295541084944549274077880558273396336682265815833153277202135629474960002652333924420236466440159241109063760741090702979781425254910081163524906187657966523644961023211067837840563225789701504957595990302126050643412636124020772458873726100988707367958975590120389145814776758861829286123384793942656547070421695025083568898410528115238919204048886484792790060520956266251403500394809357458336715942356281708371125163369894231648146911959375445511992325552636882979525451529256750014148462688654194067904659168755168166526252994867625176463645987072429874776906740234416953445158743077693485930760304323161185047840522003531837968287747776189534059419199143311970277415595817555145001357523025587884435104978510592561120262027883836949780491126175940815280784560426413688359479774619545903735212749359043566386141558681637727991583721205348953693279063558334571484595859645107375939583696152420759587871735290220413225996208330201346586665052424045989343109655532808930986565495397993004986926590247899226711059143056626275466622947262077544252152992920275440526720395345801563724006712109061973967857313639453361272397027285342666607921070346223539746314725585365449311116807636749592390807512376648399309076554259826117028712517143275055980190434844579865520782687440021367194379917711019376270810948130312859984057035899485689992776826657978524009473968483758169242348179343017064720395509724327680910953317821979740448762724859747181061772165336698500500375564089728579895659243938010023293564091551555708118304832168362311559718884219058609831677664712457376704905984649538369279710586675371729560118937293121714097920019322252063193801813576188408248564873981950609834782639462981038313044813421581905718564890448134498387226584396527994806439963656564677754862126727818213764271744203747942657929316286983141209088265356395367025480905367819732053290253646252473145946221516033422854297200362209844432797485106851004748588696545106977753054866535855497114720507704051075038637463262693901552297180555011447424076325101998421954591479212092620146298254914638616631715276411630723867743998899755994685366607747124695290954602066284885668840073005117327388576887927423373130387769762353399452846821821417260131005920145725611592679930606736753574515962421267697067278312515818816642453320724348132655584068036552290302840103258580175340081175974062405865671306089778002366374609237503527010114036446834423639522869055754766620036412419208237066410265536154636967170306329625453183565136718464905380532624288056197378383728969645801340172388197646903224341310996625773010236583019537508170188704929898573723834478699147890671070674504770187553876180629425947586868512147606521670685003293568187858019192274819397988234017966343326884516786878173058228520577231720511800527189533199627666987479956889377953175026735400785939694047217530402932712727111185573039728819488719591048097558428917135697759311587079928754250544871864696306990724838525123977007500367952820442184058511381319254918171091212263023728550244474592807949121149268788719908747249320098227555521994562647422737151374032166300592877421188583870701605606435067000004806052982053700327672877991303947646187194087276252274885680780229720182318669173380163562610373982233003873210643654090905328365855157392875294973715918891938048379709213495553312893083274747837351792046013998287431274950168053831130850661446748192479204424861313674062104501497575940474038283288028419888297864241685211403209883977263112818366644882434786038202536945066035573483381269373817506306678977811087333738863226483988154218234501805690581151202346348586053273251549423996019669230269515201800851435512833069263728680436453360743650497190561072294182181151739134097340747081160080692354280514622414981133495045010039724642088064445581800296240375866105298450934419131312520976761852463237981481614095094051024482227741371518138933329831394340470257757313384220312805652424978328966276569356133551846661741233551818459926713339121880288200586254022587196172261601022571467235381194284994287977399703132143810958601696842938772312184744451235885057324456600975493858189319775781386363499401026328682556296838600112569297755037542552069982375527723895730045675067794682789705651520276560970497767107739737656753981468637371965919737505561359497477575347847640243327273267604402697918359922867150747361102901315604819664999670714492851019712379327682367289556349156841287452077881511285797780883261772720967912953830827701995439846592534715122375969203245057733850743744712324821165038485046416273985084313204213245757999397708093452813985031064016163881031917951413709861187515230700720837893700806816233537190082014755268881511682887430128195987875456814561920744419181673218057180039247529143969138837261012115025751536681714724444710009403639527762928166168539838091803938243605162404458373897091138818308190485042539653217179899314246287720221208130283763687309131068663911119608588376141503513081487382393734426639771939864525459529606008072906463365384474639251739165108536539310975866123793938907063861588682553822198649016792188820061318565037692955523581052041989206131255915937138461954987699269253177405467237390812615146803566882978872761664712929128701129035309616630749731492462495188289793400146541666711347560421410316103271521423755036707728496249740902783799083688827185555778778476293339124497713571916012324302762372690591218957771022239191939380490971984850215046114786439157045817887281188817321462677237932902599438066365405722532557534815673673584778593427413879392829536338027515400302421137673217652969183894865680623593870453343768162298661876008926104313162912668125660242228451832931621885305317117677474882171249146120342133955529536073768402960456973535049115084787759471004301132304997052634769792042135027473224327384182325747791363550509074628828318030236840108855365624131607163892458818867034036478745113719361198157438588961749129529115846299918632590026440855840042168455834629501679115561945289387328462948834787865037991963356854712451421168483352659966702013048258473775924881005148646457090910871128191006134249617888137991060129559843721069872926614476501918230464259748206464232550203189482769466775703167840231843693465724925306814625209540233853087893605385782953129817181778875596927874546717369153479302264080531364483575519470520864869939289952551202364514993869392032496031979618222565593731423277639615852843150237807284142326509564903763648416194001065364015376671580933218058694567430692490941119028036759352339367210081029446573638870415811623519460162289539789283442752662384939538288950972254625437709632531976632170378904845661634544090411488333913793519431209725383732758167621553451216409926498308981088369660317530539004784043246369136325538163458452748824153640411252099450686264412761007844902844263613502390429923074879365044704263611838200857070026026662918594021662860706690237583902794814816216483912992851425234145470210285074698314856584475180428084260874916573882984033952109903164143364162769953812480260593239514335844929398541671116380916615674875786935904667002568403291342918556542634774937280964782264869502019571755082962117652667152731708661395616156920009281428208168997973309303802273810086614448351152376039231031195192080153566304108533752689275163550536029288929733334749286082709652893691391272829886416038405819794755193499387149759560766115225307907108130785217391325830093425949765428892847093456130241455078353584006211484753034830936539281801728524431672959624950076953366698526132288775128852389885118823869586951750979571096871639888477522960486819719774865700791112677673702668257810041613659726099889040105640327875196195337250861734916363892301155401973016375765252075839514475052514526879683761731969273219920211701117770032564730902320971160239988050593330500276636739454383071279692797829512092635500068948920426287374889675258253293843957450139515828013430775375959926276096533573655502158065591151445597954457699421732995024924842599865733446461016903899676834709453312448886773894527920360189875815956647767985680025364269663311689372184283843498481230508900367563823802968683078286877882525101017757349976573889911355576336532661594010784105366734118991935951760197627843995312994638062894275828251022191872300365134381072471059555699101052254666481812335733980962222815848727521594071905656633741586787096009241659245252910812356099195675837941085579045301539241177390349067293151299401438862909143908574463407590232886637938258095587175993908063616942234695862640519062581637763869662385541623626025746431444657216701471657222913195844444661858858989369259906462827326460083721344884964889064092609855588525009468608886489540901046767079269523587401863342285648158312270293414172330108809532222203001357097457714844191100994629125725946015267065809093454344584377807149436171176308173172652064151214537029685978481696344838513365392454662600463768483585067991228097651440482106352713690772621092801141276452602770974214406648175299862982288124647036830971910777617201571177348245411124000301020490188183529378006054528106357621354580045988272651855403349787936519460046095174457026543449053712012313556666320951557379129502131155028199165645109311842042035836633777029004692844109555425666809423532314637878322779812433283590737329722199460163807612462326519066911542402028958582119599196168908533221875669525889879537926833646538522919988250205519037664372613911268891644207581650125482001508706305591639092373983338607852146185681619625018174764817367355401832171618109723829280626086354351827367646633295286651464711475575311819574794908872782979067280994919492921669374934128773334640467276458660555331998165692152693102260419436549606607040871241995308727622646762201751921620493281029878782218998354269496490146984004010261466663643919516304085041211964271027477339084300963523012089147814641478090841810157176709801776871460149249060271034913592520545152101144117526064614557848107410679530214609083973207591371853866079773399327163152549460321917600804827859941702912944785471053248845082014805666088954822205657792560783372963911718844494864141161233750414373747803304408114106846970738933342635994426354490355528267479153332426372756380932908441186618637877683603251390960930987685071333297373669225118871058458455350772677623624971450416028447686840165143567427889174336640967431105730930324604358826988103507136312985960654476624754687940796145429588710970556448500721994207452285857596555581857381053845575165505641448495188656426030936629341394580038922319137100705746483235074134033348156827747431511760221980807798605039021669003911664014312810255747708138022419504875865996566091129419727479387327149841591576466831514895063641937957749917549964277016049480673860207589839308367376767721527955870980274936936945730087195012310167309590887982538328339316196396713646630613496341463716189794246137733661850492676305399032980158515518227946830451402908818952567048597988313217122974194306533313189021550639510769832638175712076776365784425036096347732123717937645305869151982942615462537988207327990771989873761340153395645368340607561908663376120622016685952678255724496179557265297481126495084091879069371179832585493851571323855946241932659468353375761935735792847384766338380475735876640046856955297284740188454554166842975406563131831198674759930728185291478535220615530406406826667098152705283377298507690443454160077562497262836557550153053225713280804151725230475024507488916025049936662815729057887579288980846645207180202913974409779705782229516215543021341387645587043889465243272317272989076645966647454371230709006211088692347991771506202642421225569922570652608128623589161909038089478906632822398817879529535759396872860938109157579782030664343351008953385007275202917895734666517484484737421275488753770118988696655372965464198808913865293039972398573727110571942950331880929526071021925040799594981821557800578015569523133719226907998991943072031490436425522520757878130447704624476238823920891183202856587813963126413201436263123112087506615842633072093686025114659454107742421456345104312482169706451018914402844415609965704635402764376707948233663680325532095101066414554339459602061862566084289667756522784706129871905202998272540579409125981895682494485055595238177481024154789516957269079456289740515941991166489610527741925073599148364781573791919543508592321520570316589503765644449655620348094286234579768913707910379797133848148127239440899103981476079451369882903053605940654978976785414112345709077505199340443078709661672407068041075250218247789033127067985329241447058371906914147138777059024004644138797182706226005519355941188101481833371007807807577147075123870280876633415402667401425485197055928685352348366640226839392157850036917007931438792412136444829801112422521824466248366152483497300063764419010837623531367604879047665782646013128181344328433673006284896682424564024658522913309221985911664470696705316216099454674102145440193016996619948299967804086489383777767626819375499263631900502145724243059048020250983871271953798539783903173466650515728370848666059813325282788375452891571748774861031691036585154232339629983537322819701196416149122265337437888421056704767055348182455100876406146305244427804593267624465165217968342341944843504421828396562703675599337838447108387648904792569838871533753058237311289061890678833707362013781765635500711557252406563311669120417005975615537330589021926869776925800798027343983675466283172194236004228654529799646394148731626503234710532486103574298295693139415180994939989657861291027417976818702618776053515927880191216899774231890185757458923251853339312478710125746370839735918445334945860858915577162723443111615134588908507737061289045575913237233982626908588160678445105628784595215734818630689094591598677727657121044647384194269511619887409993820098554438307550662732722434166425319030760540610896328826333010450284409495844675335847753225651304704363628964569552868998644177734325889076295827569064951843033142778191927708215611178214768080820791240243603590582908110154047943815809228014235673591078239694033812930122318814666031703881954225763719485727146609812089595324044735173347652040296282451611302350659121895800892377883554569142613870361695512650864604001272454731807702862488606130242481261402233703156173286801931478913710130076917120491646588705746288285121266777856935407719784331975787911651547620535079945801179028661299882147878829103407547187970713360186899769064270202658436218099576622003755601293006878115701601511116249724463693240474607189597874330914049707900426158248737576650209982356032971144495597538395221531280753877272020943712029335734390077202566923560593150289355901405788636399362782232195263826587550635853880693927918764642291136076552615510025419996545094946340676231220459799137765527638890185501224741784156805159371801392818756515516465086384424391596697714692862429934190464054714964104823524064472208318666064456530590041440428014056652790104298575537634356931935133059696065710586898384902549421778370980477631152877126501691784438452696450383083367930808942950575586146282640359487545689728864389087411857101404636636059209523781733716784414268816110935264183555358508803574149822165755359572240601144815659140908271119319013460105028647217385134365478083320744792733377997449563141541408952839189522200320294933764743199435358920197180919572292919634424366590840682099877056194500189591864579134259179492736455561121068282281902109039978246702109179368628543995991776888761266490761387679488341160257293104560470133452949946967663263344290391694979801308654934665204052940078874495975556137189607249670592320249993289696164059261772789426796916297149122363427634700845911622543162636566653482869472593139749439112171419932373314230385497639133199597194911562488545293563771096388798294329494987136023483205953532260921471950087100912051352806941289665121426405738294109068357137550011681943520061794501523498512404975187782636216888895651137664444679531514277297197332682885543502253745584842607841849292822763574614106885789818982594039451623724203208542915313265079572553363253024489285072826968118685726544815385517952424837833193427082826018870149684348440790419850153261212088926232267012535888830680332119865835804124474010103366483636182518285669932231805555850050471817953768524706302619678381796081095827111326203755389928481648317457830679124710252221631672109601570485672906139445276321059363305880205756263952431460143073355978715402310803398741772101609693318415961186367508676863913214662319890333565336067063349257843028919725053309032615988776288433292881111114207222176082354857159413897485746991020143879331459507860408010356927023074522520895030708251969081299149474008094127527432779146463209659516163251432683924357728408729020663453580677522377212453957749881558012671807328090037884612513082583118929265940811109648397418567309096490806326589552106417727170397387746564901143887453880918764425443817336620544313317477819998693547168905615510728242615809484029313392967583510422560176284120589909021660900961809553641651769432358694355448232195331729478129349625635219509999405493299274761480371736675369906735979190898559726918269363576850642923256474521639657968473419394674981806910517633111098640022036487665230941902662169762873446362628788724370444131923986348301100655199344020297105993752960748570796366937521231083327305525932121166872325460449379750207292410064169568124132065149014688710577834462997069716279849435405017253371709215322771283153908374299599815928247358918326952332831777884961004928417926725639673298874216777876725523651108663049615494425040371269833247030402020393184881473113510001130727209948367590453174491017502424743020051772546397929355489805820590350870213463394799199068072346697847696961939500636262751737629271521935110779630516090983797926724336410409864788089610367601298814214991269338174617910748888290087795342963523703558700903576192933960083548523464427541475416028941587778230996440841023587736215809277757769060678637653415690541481072245679154051750666540640663727076524258905650662210018638848373125081640511296832765079472715470165542371539485715539865496390418197123520831084496417690093244158909146696341610661299855480519219894781421477953059823295601144024374805174827091952183326755844946725537562124310004415060293934281536834015699983540674624499051299953600238421766076029733865174342286389313651780504573327783970669246795444591876691798487814718144774267690076656176229721546881109230139103718491326034978593689639323595517503673625848939081921324173009119944275035795923571263847373120072525748214207498030785029914255558414859864642695660583584882561601887192318941593847575655542090711960671726871687595745056225425495498286215365453004794293069875247381374624273850473427805074357174609028239630543149063724566011079058874272698233463644260121675345422560979497648754560514255507801121547810347669019504121825276392466360561854163855373365733604936688934533431731980164484999550456630582798952142551946814439465138414789973762722687360704330329887207228653641720266967401892105196060620476607533810089562669133217513393528342861523247383907533575781519595139752323840387903173238988974909557811300943077097923802426393224644997029626720222557826746014494273604649531264074660469699148365966525669963951308594822333609817269412020470107199866828691046960245579306935378272589858522879764595118468227954069460000969335155486086877855410587278067867699182593077511831511778240316046744315579059034448633931120918328937519061080751448337827796834798834381990321760817398951964020100668412926476844652490447814901349324297418022217324975645182661284136437297591555538747607765017890704789693293140550872247857098525881585441506241468215404355315607345850451260535208052644223925443481398204622947920255583220805692266153876455366206129859557200077812733040209532259015627824129700499952082413328135915631787601046299722937316441854672879465037371332672270695604359986276422929680264449907961106420959154648791175279147961251991623133757559485896904594753612618741435122409902337241468162152773301226272387294767827358823072503329816303949265809708304997942046354705036850426813777999431186866203633648635643694256539783570656664199914039335708961732884400077550255078959603398124519991290715200018828225252819473421285707130849294196187991542230704090554840429434807213673986420823531127236444193193465043922951589524892130397368458325120372718046894406475625953541202205189591113865783564726097859906971261814316919489872299172596106926539300137919015058267646256344659370026368858117944040473058685698762805890008195512541433305349647912550355517090351117188504235976976018169745083373953865689085160376153149956751057838304445165515680648954827604477832166895158054028143418537831532341924421605241974470840097403687681702229427813616546023824310215998484782154836753283437813333270211273566815883965745390920916836529458175380690619569119965315780846842945752087959360528630754908218866112004235422822651714220174622510990198365918859437831578684028648197910737903153366250314773612853589274682798768478101434876634547871958366579477714832313344935850485169863945446698561869743495696461683517543325699890865695020220044175723085403173383968494090318811622200065932753045034733832621875788264160078922886028296506537515615577641923956269656422152318875507015525939930846798127202903135868345936690175985898530926250550627317383372047730996134734817943717625451516383546180909839815767379010098659457384691277760036115333054624340486552670198551262748770632556037282249382231622851322439102382393525635271066996808443402797984470567030806693503631815327747472765099429174062985706629888179437680665436392012365154209701359379924655010248437029291594015140790873067432077153442039303305828122007001867017366549475544403714175555490179383485349462080976942704389453181224052749727724735868561381941227752293178579347494528308831041233503434569229511116872999896934533445744894567127517289999036491076083544624113342121953158035892627330647627608500968377311373524499377848823249545447632733831357586679937196692279687277060156727624175777402007993468506526007043409933480983197846232461802801462114018052037792068487462133152214508861853431667579908536121849210569534907976372994656889565024607036057938186874882036338835986883027298978996706587203891618089503813225313072608997905690203550381446502281975311934853739659552589593419586492749044471397621877590183035654904158235753993739726097637169105826199382251637803661323182675432494000602700968541874570692283919379051143740039670014403538876009646477006002066403176561696343132354469244528411128004518078638847003421815573811368206094859329189542243119297513152869936421869329999158735697249375169172198472155746422428382996748990874031075947503241791535039896620848061671008167869660716327487827276975645971521988334939382832612377802500888941527222532623705013704777787671653532920288830021585178273804365577953021030578297582328516247408535876605237318009278584327643271067648670655326756367961059161974148965925446056628064125819118562763919554362962137874593877192314548845952343730532511051899754485467369767711419003870028766382399052833074740165658214622545607295367705635161047347893019644002396392554288098209710299736683850979973690364546852833406520838385194360324606239430653174387573023104999626976764942522618716134746505300090238482502689327246228939737298936064634568095356194531890569616230313903172707828143647555156118764780259007115633745852608719218059008929442767896084079712069450944664325101513304066109691474510750529507149793624062908711684924933201245608368082109769422716615232492641823634990572581631146888564753521244471201398785912026898517424880783051308674346221441571133392595457542841971381051485403139809259598805811881532977674263162401268449724798698012365101926394239316790279718673108503466807184104456255425793847569491388953421457966319009855772674919336166535933788487670936896098430496959489385760004004672555211470354785848465919969799720250175879565120129426100418503482208066583030343558162904968718083702714070125743657305118466221981719452695824086739442168701162244215025169363645090944467243833397885163252731401839609748741649510461569828868754958387834848268939436673368489433731141718598536452800289392664896656061401030838803917681218496713615235536768677783864855005511724042897375692544300746473591090331953908346651171694752104348872993659955280242100230079585340121364453926427595937843994948291456593562142460378481906604070923659502153782614692253479235015464866186458607408680224913138556272021414835769396180829082508652364232585539290642616487248556635310247601540508162862988618610094185782383575479649451535681878279800391315758804177513188639636557361210957587248832967427079799917087193588509671777575231673232763439709018826430081440893853860152520566123332666751940378413968343984440173541493949673891275337745689632875074074144314259702158063693565665427263893414201882639513390342320047805063438377749156480788967803475303022639040531923593720474303754830003335302940646160138287247082226567482420812600498123202391329418811812001404789945189288291879141079901766475097861410143126350287567119213207724022945579606481081882452833458357449054279160974977194860825848148256412716437228540549270710436145881678768999134548364369303422597290982845435516516103265655058925995840615524974499359549086491752984156116112457566079564662412670459134886191865778119553611093924123666413306698424568395406097453544211746514354166726255282300435400458508848897074458050757242729071106637101319889587258139702856390014404267763506194832077843783095564416866864799086761421183714969240325740448741475883905695797939435027837653276332162190619654047796649214175229210305865709200569654289385751512283138159269908589205302142792123823301136510474314312710436788128261765976131831573006179318843571745528579795440564060709379382038264874919867331373766378646465998312769523378608070003265016899617234173925292647437498440403995233555683216319478477087491392698171538715038852199794619277903113685208302787164793087142037123059299373313577864917909970946348628718676250691511419578606136530766777509450385154438571098562120562903582192489412782158732089314795133191128191909215625765117876133680621725352518514202046547701136391395593806138256311807081948305375728667165860260290722745817377416846812690344453370873360076893999448062323784223265535914469410454556175105464678605148857688306075052661091003593558170357740494132013621867309189944820951191951546509721693389815738871885148203259011797504384461817621325689675247439680474740968088241267215880539515143888126909055982884061923402400727783814036827518112207941194058550666601833859412041771418575884042055054242235682259314728770249378052321937589564401375989262248581863134294644353142807534963028633503942982547835421565934637211498430174361331182596505435775390297605674191660390548884440100172979794648137954455958705125487912437929536907517239207297448226167025722385604971177642087243073444080064415546077277511620385819312211753045814215655449494686986824687899072914580426548217903542525540130715022000192809213541694110836060013330992608495286547379338901497482709345488296201102933038779753464341560781427973535095408237445304165268047610325459330350919842484359656790711552238453756325492736503762488635494851755946106556662182519404526118869738209939658477906300945057402429557990008603485839490600578363370031802471508657663386288891302779495658096440219455091676030748313737435566021749848770965329838984588790455045496858900273444714389607147802507561729921070488512755706570429414788927636012808532119731664200005119818974487837715052724857407452705560115452939685646143394544944568275317005799450146058425299773040272034036199567226761818169964576774074400926324811424204396413162371782712594721105627018967996480607801291383234257808152148355334175306950715079909099211498462785796344209656026559727289678482766088674107367122787588702127335531692484858917660967947320494208347843308591020232181821522177112978312337555506838114879817721765601071172361412920751019489833276745186582458155395880606894406278736566579718924219750442836969590569662789257593749708791011075400401053128004367288602169450435661489027649545033067682194513866138261917638508006428922239316483977858327408871695826362378010299747397830668143661275875839572139272191319366671336821562804858401503281322332099819124129317736350119832805651919428193044768079412362495131519034628397767632174963336026636120272141310220008445877265762453174733998086403027009618106998259299850605634250154978054065651350344089774996146603449374333046875476855523401275463875201612873403349329662463658049048765388251208499300329507892567475026279540419098648911676475985355607330569115544046429766955947889715497943371343147805626053123609831831690093102998165694845081156726525560360927573116701754470810139637890400710845767902682450138118619520919186020733539998299560530794119292239715693866317160901774443959752175481262298364042120287473212245427396206199734354160623077699561038101845835290185061301998525411483634152273452085558963393770764317937433542846429383685076779258063321599140361663968578727512115210956432051617246141352390444209665232313668950842998644986309049864039511922912455969191984352552202789607800091589033993584954164618982082230107762776035775854382081709595683651124358922063800740244277103293510404466667247876267532511703708370605521544692434350050675398670060524092641690387136396751987931434621444327875932770737118056282875863313694921599720795318688163519402381595123390979257655352847317585572655507334572485942669942031138300495944728845165778190925727866846208636439145539464367482842735084631793060047641979182072747025472129646646447680536759322567717159854491553932429859156627773838671791520742891017372599270758284661097168377616271983899633330738020413834873326064782830585148093471212289925566906498738103354841846017256594600906932751701041029168859007950200090640140598793573527250782788744970999218839054434920541446018492799148138918130942872970127046648403331875520301581564201330012293302978559559511902773919308265788102053967639676840603229074490423723283619971090233028254857149551907032523579409011112756128603961123997555983918685531674763298074410443148479656037886213248821575679049952464368128548533976012533402783192458929147156621171015663190831619812672980144992648745305262310137135737475086367638379127392822615932145086950954801363367213474066483246402499650910444622167099770641345219532408483963959826382776522946208910000283916191534103360704111399766856396942972094144067680749940984728057681856789205456525855132237968999550469632271606853392334747856135520573597176068101985672009336818853910074667838595077778303951019859196113905392009510887296666300530478711063347680742786156347503203997252231725292863603386650250364817815422507010703746344648296759794582698842303041458230413563171130139633478009242480827472615757214348676985700712409124926593334635283640874301607266722390685187933171332246242963610408168905868879952699977519455160787299566449813418148144925965428954001185686364131647705676584051606455872478081767981716190395848010568624375511260233555993964264700645269062190429676420270177703778446455509394805797985521125402259565508493526852578184333810999015142764678141458211771574685240431611082774104804976004292774029295573227856192585644898117437794672091247140372997853989247878794776211039439806467306827640470967847710677083176661182248443410930711450269448620056652708852129651195017359959122903884802565329348397509398487067334065837329978339561956907146832668833791240363663010481536619459739347332093478785135787918612441247893512692674006133318390889331083797910487087686748174137213529189004323151436390684516035202010517220740034670151013839218019993217679381365220278621604670923643469603683716589299099772610075584392817775831095300253464463957040026040924749252802878547474885729184645361223115665107348894794344054408777797621691105660108576297639571115174776300027591849645490138924428805384587194577444102405439827033144910942512557745335409191400086219155206675913598261543492491975624287324735216096445062872832687611662098145213623806186917747952376489561088603753422805592794642383795626793275069267637185354402180154755203131475997586850156874941329486824133125770694431688353616594835977607439546467762706607328572632708623255079247981003061000010932940028088405676853437285436721123093597683768602521865699670281324453022709537037827200425782760338710748559555939894305016319173190168593750451758181012051571005500325365132211506620349533680569143505769827318408888618348074710713236802400808524613056921482443062692155998979702915350780921824197384051728834975702973411269347721656308758670824850795013458850011300503197205223870460200283255095280196813457008550077571478686671384001442293968242497008517681660282298323613697170842724498431359216658765022334390147563673686929362853581681638485112108697645191913155768808021606508925426727728132802470372170464831997376785101382634353851387193288236787418373145951138953559493502084239654217738078980030786512968824725255248534065310127982296460635051462549138382276329386877079264423713160697402228312863987417840794337413789898412391354389759149158387775304736032926587444049761223309232415248380623200285275777978028957894076150394931749048207224761396928537997094569112923557701576877580917291563638729319780750504284693000541667270846341728658554812052155461870858217682940551770412143140444273210551133394651046220585057023736357519679905120708137169725016666920456099969680286705584080663084520276563601002375731766627782256661174486515537418915469994684435037541554029036789947439325066402436825186651333768601174127251256045721591350598723842045994983707673570915671232684007878542565307728953277441823797504952073000917893848297034712144940058306523908546128116314559818700255312410247792517076262060530498749021432391245343594711465888988120020690944050362056602348566952473288135378383395286608595187338402065814636586892662503938342550950489707022350808880721844207181969157901085918437120325583027977762532887755555281039067085532110679821634118665223237233133573835957147268743906988955301067775434796255158418283172257871478449682904513367244310294466762485762821570081296777389296368453087706380200719658008090178968754378098216130259567520267381478250423734703048254168607766014957352259996765789825633581163977357426588888740825502070028222402647035623457682556028138003313333853211405799042574402031599568516677159726773100506898243923352325864970172548990903458007256219986056499656915032923201016058216029552111930459137694269727374129949707751111544608771718251117007840316909762734025714051920412697491504087405369744309645394156915595140350434680278700459915705060004330036148200140083688997548573310271163509037952486390187819799765943552922512894128170479534365718788327559605137813397727658119576949903444583311397049440892747590112876693827105485869704151654700414926288043654993743199729796359448088394442043505107108370054142722776280090793690052826619317734887923338982183696798974090779138131902935604655071024008685176535010970262729401740750424145142020788220861679061095507992749668274368163833633619431418506310711744892845825146951694037577474527981475914825308197640463101514921191211825746653540625195270778872514170322628047757045464597318478331171834371790764454936496364016990618664377212711613983815288974430925222766432621828564357951145261182267710784912602300933406734893505405715006992990202573835422984448266309453557824203729695747005438510469771883171773897530147711240833293783429398422914920764870373604777667662836240965684188568173498203732581391316642002638505914414524820550149993525490376205361170943228838032766033827463186725007568454261194917752582967961240739021100085762951621885031991085581071793349206964118844498312969535612872632651486614503045415083531294848519228881628806465502708730378492165579335764018388572260709408717558568539203999743368622184557614377154899007103992710817691199583482309905165141804878418188894112046256400289686795141452760281333440520486007996048199698410691924978619039569077825525158279893359342523362728946850076703750926873961856778807260126430037331478624000320283763136814678203742366974610267926957412460919951729267596035888457748660574143211505122965847811195483736978021823357611692888452904930822065966453419170002316429621580344526932413176823498734513162678045305163242732686102041555308732489277066078449763184797200166863848093914565732071989074598695192061202800772771091445991103223028605764887948826375727147245685777475543728229109532939118271656973016038568782703419671870237764650203743431250350791288226709319496110060172509485815461290713265461500312169617861347493599471188365384992089409219415717218723229644276461037744079531234063362541691897995207203174082137109075116035168818774965537827526860231541659453452709109345344954938051641830135437703002661243653792760182417801364939966349645569089110192517054996059001363130822964499109952967642066664618489722737235321219696989509629004132847069419166515430751413816537400236287972702040648961945074883657712679035317116749327653997195823240003136608988204773950370169852806423504300336391886645401443306920722791209600926483568501370208500543410992371069189516978554888053378646332160534234285793205827707377051571611231840088389517213681262756300516583284210775909958414837591329663357783435497593236877424556407140902296882992049672576938369430991096121224873314201007351327507171818022454051459424405984371127990472929303751242942359029829812992296215748151803375923056056856149125544042043958805764313950421174077360099891454741225014930321003537658540721862026409864039419057623507627561378625404966010717662406658775317562408213387571392218079328049675059809840858436562666052039467356872680001529895509299043227291813157902243469430697708824271402270049481254616188135763477979978278461722125348164805413242126036116087206929237134564781563519338672477382241652472344174987084657992906342447173601731439073684024906648811433260515877209909941995473394818786322634601907383427585091632929995750782186717191849548284458610792816770426023127122958174555578912834740330298290097783695272386563698111272648897559320164966427198962372808300665357953345432317671241004393013355259417175860742866864656101121644077709823862509991606680381035310827209522529016507560123352365922603638450935058148273892722074154423601969082618193446408748426315716154913301421630804536934800138589901077346869661816715310440334242879213118133629820047270051938594504539007726200060055364645698485406727129730189000791017242160136734672571639066151577902591414074327708142195701372380931255611856063179089128567023175717894808122600172875561450395049128914431276151025042515182498489593704104477927290498550320903377199530838524423871088203605988840859693503272129461419488583525786770577063475545874566205499555545478304224153239635790937185248190066697767496386902269047439645882454590336512301160270367730318966990571172432152098193710307149997696370123159999307000550055121623459513194228201946002708529195232108694138842808479846958144474882277520932490892304447240762767579663731332901029928197969350493636698407766340283791394553195933753953957886777201162220640433454962997967779458488407940812093588933078619788276608232100388353365488061148521962291932056353840617199352500691080486195401768882613693754670127548356815044283528709011341120292088623874658075905536960708423797024681857282274071240844083014521862251375193912274143774522178262980988533494387821252956267000757633752584685021038851181071062387857666290871060022332876893929309136247231052582289613579842446698118052745118018854016545927247299638090689514057085378844272124353786841054080568595910507802660344009883954351824902860394930144579515711654275762183210271339652210334954037180923780527152291111529152548493298217408909078826070246833019572991089743741936818585227247860231551366045609738273006817536438071840648998060275951489433108469953714764681139434945711395055101003967406470202337848680581877333776802685654402314948694110265126105935859954389586103808799902333878325649526203024713417968257272106473853447023227496616623238893210241759043334675772229009001243132936909853355218257397480172560958220340991371104444555316722834902780705500536922265021206458143347344890890140770208966977431942550365600933433420258402903907388229795268754917087029680520144489853694245165885194371523626709885162804454613333376549152293630107951650933091056223547136365791035807895368828189863652618757068228761370030916808276643851095634766325287502441410520414827859033195954991060796619270368193600033858006999055624883333099280317318930783477937658021947035309248813557984311867736771482456107429445068410381094095425492526971850878196502143486454601745232303916511154859074346401576388494789570330975386035321631622668720682921718257551811879957832773623010381082641162792759786408839853620942304902031358761082349906598365706617737031611323048435216007594756178942576176964479709670428945947664914541796887254094767774892458924700350037785473305875543571430361495855213873313086383903141534876110482485054888441380926523364350564757373020029415654705405433253894310973893441490248959258909790022861247806832359866140369714302673340879858798028370762745203233861182400218279520733591128849063174510170731322582096790143043877633599468695007540405480536687178473848553434166782277113327572809704916925620706069282770744463258988971465762621074579337964138163105416255747662888035848314414483490247409049252228601928235797313165804561698249346111416356437621439768334022908432344885008228396886815606933847283751715600392046239601836360374235279119620684888687954131612333876890932247270860950844113869283964333710624163776478951821964314307082193294525883480207790929917637127313601755664597606870369105532685895788089805692927036878408799599406793393579587207962415900865004711247124832336449855170129462761997772541109428043405922021738570948576956525146567652317867063817782014167200609164281251205024862337088280071277686972774585518023040014950581345231239487544176044245532627535668413570408826470037482816335712739236230160408824467837176394070090884597639406441988519911341140327820009992454195554833464142083549590765859662610967269273546904497622648110306341229181469365332087793634248907835618028332509880353222717455641952959632658758434920497080100941593460908616860234942219028511858071959977862461347566891960414783115244707428858084902526727092037314801524263840582906027056571067911455675035892253233667012461500246702823498529734987305005616064215664263341064644531311073668728099166331201005349739913132075722910679353488164530475203715899515467538610626665883041845514356274468001568817013140497570135962389239387722197084305440134678635700984886136886029760183913888422025137974530289750133725510081521758472960860608282545095077306914129411675475280579087464753532669338830638100326783730466524547274866657346828120788112456800150341012962741869974227081376166652532032737639429826931853529019483112394255173568834904837508226361781372427368495284428066557453603378836549737726435611760173329817361676502887376957713455602298512883514238545957496733551333267328882083991983164482488194271812938383941150894144368919287014795207640704275482450317114129128188570430103977943828391221022468504114678001727121846049534952750026750796465815121733675780021752535427023249112215338313932603665977798688922135353754624927332440685633313367748583963438562491905175948373502092137567131700852098333739362273732916530608741803125706884472566091411177515387950103974405709182212726838677950038641889163459447168977933345884633224648300111567746366348252195506776223682420308077632343444598209610844537658160934545786911654302567397916532151519340576438772931441678491912246050466035851765354309327914610798906749185632722851393698753624338716615009329891798831716039940200992545088744413873756531704888719671924042339965821700145441502310534022797174426590656098019071085309354201834024248812577841322551100870727854677886139588493665073401774321106083237854859598377274978191835850721936296687957558520385906632541181101573390611704269188283733649684223489475250137287138205099861027339296070191233388277588309039800025484678993271390722451738929103878762424108071363809058494948838454709511928303170813078040924538299515108258425649791231574554838801226825691394213332131723869156008260172601331511220156892986877026801841645236595254780220587842408224205311177215470354811825773066642741430929492072247078371031519006642997488738808773111706517269533443987923596576865052593544196987253006176499997099049760567246214886357645400796331531919018824797484635045707807576123874295060565328875855531351192433263065269206007405693468657071313798953387925952290254905323254906378301333778937475304422949160584694953152127762513297278553105046581291881894661838043284578171398555411212469379456482545063835970269805949897903347667448956090769781632923840366938125995718383376294249716322571434685953470867263695291224742069726414267265149084657997478180618313091641794333247973082449472127560254178426949768325883949063774328576454289756557236788404930240973098594428041383494487794250968943338717428918412657728344883056516043022379830418430286829199232361795286705594313689838938671520925069328551514388673473851150304488320200354131275175500758710173818904210213087058561905697014748710145043193712135100660100624237837852031274570252883691890076875755869013340191006653443466960761672786770156829941010091325851698097293551556592299024418341473906165939703618899080625687421793337707523025997517517523908591974694384204346087696691288075775276232064559197917333719137267950284046297338789217482344531866263968528166461713890187794406011293127648123995300032953362020291592455931478680859200498313289942057640108059943790975049456852383571244730165979623084949552088479394597201396413382715129725867515595252049178696327443246903705188648717449652100677566922440029536685068160960109231745003325751897111364733534190161091585662784958477754192686141920082942794691908703511829479936852135062262928483177780529491094937638775711005132250589552642272725669492491187309940185354250700284896646686856105429794256973294630265251119602073130272669126244723488479348350136778291266740089347378236887667814389584414835162119790245577434713031879111212124937528113924207517879164551064581193999193048854236233606809202182938577428624381140802774606730274528394646140359350751542022136197274121822351797763758300129055985669948876026183544903345068708685004878963169624038721649839512808704788446964863128681387505138377468251115403364057661314677207989059750013354350288222977363609697515521064357500572476567275316212914134827430061998405192569325354826138150457772147837126597580847129814867940706676577085473587850163873703241123669719926408422226784247220544959938152369414510907312433939347153691422888648942129999524429631638779410628987795608257219983036785544304327331875946802573980851282168239393707758587086107745412359384826388419931206425508053612165665570482749269498194363712762904461789762665818938640056986506073058440119955699197064559240353914213164327609313534612014068820725389583026454034985858683771468256515169177886555191630107992450427550859721281992053728929628716187372697409692576558279825927947591474438322998315465877295806497666857269433761360698721468742620081505301942029874333901441223859562529748896903117123892670577063684953397696147470289207505168949061768662767747642222728301323416339052078198712306066930392234446602528458999872449404103231913419203693280453970002797360647970266493425751314523659096999546540583612397070284017575362430717502849480981061472672934603583929174493076513613596074438242061968254981205873790205235313652294623430551805300373032446113503789506042303034756626975237844420266286881455470648429417818832122130679861656631810840020571450003989925409304955614940820855785847606261054707289756698855971530386863425535099406445693753027301906565849368141354065574335395946108079621931125964138154575549215904433715860537448025156850433694832090451002771212078827609042383520164955499814365603049308031602885252215422482000967010023182890387991901497900456293582204325758522859859909325303137953479152511696583138016172493558360282195725180444661150966866303439500712988448581821532055365444021642194879086062931500828884910312746249499454308963438942145994874107942382127294090726931346138808028106819224101903308665858259741258806932628412674018328418198342390523846989098721943058117227670039847055128614127027185396305111362621741550724425604937989691169901867202625787183363682090461051958051256262582974740464362637370845475018564427941568169293168579176958948187824837521440245160383470123704922110813799015182196006351806541164363547527455140399347272826492120980150258161488831957824338621129022378842871930990355772682964125067085651580760193543557931967184409291666899973601583269610622417404535377824774366028602619223330008627461081425001095243417154282937355451401532488004988703823521525910407041930050917181286800604556437995486967706649337740569490495020074782369149047492806794669821949719759131259491660191434983753399647892499264076068740143179260384642438630363516989757741039286458258800506604206646271259847435367279807200743834619937114215640552701126801258553942995404173289324864854177380278918642538612795717852068766049600204072610537343102311725937003130172615235033428205618233816868404577738348807378376595585154965683252854304848480035415373931209611125577788516385634926569306259974354370687828323500642910414617871245601440728157670093349784561045728390792653369302254694003340704645757000403163817882410024955286289675351712782152804052363198195769628355390189584719673250743798293766439185315162069931046932450233568471348915819544859163258786902987760914297177435930038878330664400114768863568115299927762254924642392441841377252367353906501811538627078104152156780233043962106273106858281859390332396201974068228365983019517607955255972068451734330246566984091651504958496840950103163089787104563739445394553506940209320189131317826528535962714307811670507333052866014796374387934114666813752841842025409772858808461909807640288838339518157625940930230298196039958765014579125193391686689938536834516820411738041773754816018830604361129205441819350419325230929757548818962460384297811406092635210816389041366819973335994130687840136794044162157796235251784803905370475586362237410492253736388168076017823510225938068238727978790077675206512662860788800738823946942777210067011374566591663022583906726490509759896976736501190213265641324436754744892459411251233969485865194782892704264679400479343744498657740970975272493753791585790984654882611865748297882906248344299054758928056813154252205288007523460480383853712507053117540560456820370110926930867130157259479626829595585534068861788988608403783449542242352995791462318226184700461415800640342681277717332334706837026504347527909084408364049846635530807462597012758418820683797087549274861816014939724510273822172781869325507662118844468265342312131810938825463116097390952511708861010913211608078808676379660885448924450763213305490061697555790145808393848017798660643431955281725851775045493972066404329886170778510086951005801729546115564934201535545575700314529130329620139181689900596737074935537296040509530381137629357004670340062384829235811811187523604966893131325699427004622238250421083331760761251020528094254340697823099875880767425661329011092896725254854877704762821359805572818289836279110001697941708734726639253061749347660166162467332299232718477999048334356311129829776579394055680869418093761576568791125086709638254391744226484046990081693765616618533064799888351345204079777517771925884388982809382097148778257857929872571453406797097006240604153730113307924214251050170519567544145505572751162899065126333989972069990608418759670499558939280693044885685551069682855758335606343320336884427050178934417036904742504069890912658599402864482777640315501934107550757571848616276665031823667629560310841182693833514733000481900411094775052718131138705434073936030683441605229085145255917608919045329298136501264886894146875038524336568496702603820885913244308192040384174371445750009574044232136237305280247774794179602866063331959545741882725820720517637650530386146083433405590178031445642927806815876705266286113663104975976429492310327973827382638762570961608121157753978468051831199917552124934755709768740809357756436036764223922133606784534154534468394267795194144508600657244247799652110543313030148160818680338524516521970963763124786329640383456856379316755253997141574363389392155149524072935551716063655200454170870394826277573222964308824425084951631379975128473479348499665786898034558119975573843639483039553246677382945977901121809189376949819399098598359213607055487244379479077519587631784646054547382132174077085567208694511639939047247088197025114970158146089468071140087403000641793808410042493153592456445010147985849453078671730267328552626288359185162058113104470727171662211783529130723842174859185273751817041799407444887077793468592278515555204840547192522345600577474806316356127721613916908514738415465752534876652167424140574426700707954155550664785520122172758398633753740665921107406932831022077305931850829935361510842121211908214223373571351986023148627699615978345177201974269069458129800715960470869030361130820958093856928250618820407001192834330692032778045625736067497587981028106730716398223074002172567529936203166732284748309730114851800081908241029556665237160436002041569571442711090765898546366673081201093487007574198732234432972793930047416937251731894620833086191482278790650062618956690264718397265273751554440042263452863977494285093443686826418218606913477918733979587068265497052245665383215702513139927926380565110842631224533805114262518304123229594705331997659495936771323203729681504008265152311686906760995817488014428926585079301612010895134803077220731141568795591622144040464851652797943062430179540494478027020183268900579151429695074952324903138764242185531376278457151090025147752192750333252206878077159173335439491003910351800769232964446027938620423736524220910569712412368354544508773261518455093708127739267353679812955755213557868443760618514746044754346483456250974393183507874982290512226173204140796854651811218300746813741512492471506253673081300653867974998034270189512344792606966156336026814568211269774451155777514887476263809903111655732579368814891299758043917088411606446416491254819701756049620118824102944178165422665504796639179431389984797839820596971262729449571733144487265478549314081636588549650433957251639964990525602674815601074072225609760135425204269201861177402029398528968247496892930827312287085656588586888288118013203867798671608094312624893324289661478860908125368600179703054176427483970724364511338964137084559939639052355406528012338609958391595309163926399125090097765176282960732401191353005342400609480538305411604325590684000411143957962795467923557171719258117738697258200848151139202092054959916642205437753192574274467409009756300427020199874876310280764354922957215359192722737845259644639991710991163256458427285079950603996935455347012795601168459951443988609155786979947603359524369611850068404223750146794016148180875479954489379301328384548810367465037744230296719982032437938066555823164173224076046699057847196179365170989626773734624389658397978393403557675471814784679373316053429311712974569900652917581238806872073523094342620438653013653759652237073920295715180190713493389301960223298965149453831744008895190771303677632266272721580170691205425798413094232832122498241240107367271670324321906438690692975534855449996732262839737808348754788477427939531261876174657302918750590909608629043110062519648998190864064304387280499849933605165320027279114899897567392154616203525594970342823611625149977494937079240012810472410256315503438084185998698398113448666526525826427914769561562655940970514271324288189939930479652034036534234918394073868047842929825675578813929303834260863067913144507838480985063917212240788231406112215984617191544434391078928081417555872312886840683304593284157951975460985813537539660824483843575795825325653545343074702215642271554778288261017295530226508519073398355508148580496145785567232893701119731280156481420531936016898412434031013387173856221744216517587576951889295720523555728014450880805888576889933793659150796129687753235123706517835427735010025861255277314253198617663006612717279845159851370096314120028947122928646983616900006102796158369671605089245555671494501903672455266028518785530980318777585075375522767264145278804205860240603917413170929123459802840862164899895365227794139628734747545137778242301808629996588002259871735813529311487445352771434340287690929383192133071223036991316976633065737730216102185895771974480274855519795616069563913768712843557955009434451811130980907789702724073541705568262121955975940657523500577676558019036436609207912791170063920831396508163719779575244297743290490362665343577932938384284091214483416411538073314368512583472859365882246275819398911624874601638685123329263486224687876059012341963926387576387061130784052662994251573610832601112962379162245995507090044445637639356123585787448889346295534768944681517792322832932540748259906020915804814253411243085138302087987162512363945647270580320889558350231081440811871773319268066866973828230530981343690705307338509983708547154639053827430761695741573329933698925477068988022401269212374023830135641946952501266807975727321994181247996020080265091590346688440501488090504320334952461816235045333664500596379377461162034417408197428410497959964508964492706275399342981571279012203213331221495096590368661312219741303820614418129919538203334409319538118749146023730566262004397009321558051534704610013655520989172145572284927811348607372866093173321096558622964070976703513850048358570472225359279315712795454677685681758370065014592749559045319380296684932990170107352615420158553608655549619109698822841216770777969875643402895581393992358801201606785519346251109224429160102485030398116461372400561509733755709739616784042795357586064815219931911522001218304131747094950402345301890100866866965121658522365554323325033290170949369260980494862803256895276731748124497443967395213607026568341934259910467251316675877124891406606187661222783439585344120019352473363011381871915741483469680083301966174789929762642043272789523026155623202021884052265982454997221011084106315835711821254813816448166509486452480320232438558670548004225106013808845159444091607311107738869095317722602035993044339599799190690890667265197947904734945154358245618082458274076886516710486579211114660577301286364887308928811241589846242240144489614507898235068629346620673865670013305772879489489721758953423592795042383980742447134209045146692782961267471802987141366435247023913781505168254724065997970500697754801274344038428849357324739852166417704963344997735748079803254057454994824834323450914516219351615251105225449377810287569026205941280885654395331228875082564503200683134240477980273404804665536754916006089272686255292528566157283493628151949871569910303971089228794710180432530053380664963950970449013819313193113402091159563405829866756374185664891667711218869973216338574110985528684846650945095232756365452873929811355027648323416409108883580309863852272154711128280882096981883393663823467629405415852064923022509420964685958777374350920905122545507284398266103562644625666382952619562894241583863634854830809152403881505655518205834127957208275636614899915583738748920054887171427553119134710636561387579810852445553227150912774503889370463705055340636590229143600195503357415617412470649652277098596465199545043188762262609218412287586177541040097231357000485347901222014623605019814806345974646937088093062961992390310618764147590070647581407341854014303753690284792554150563039962324248771480815728692144285154919063969709405166547565681904257689425094733059712087897273211609292754518306605246864990872561676526495859777782872392167017898967732144692899575273762918443222006494429814184157035507258866199619488020774206696517483745437513383015130619624318375634684681627735712750285236028692837140937576055282426657282054779443995342730431245198512370732719296336681312957356310806276259756568019053732940383823324608599045890076710699344943280713125027728522542171393510407647858276178584579202504924194389447827739698918167224330249239074391340655067211496738799594945758078439337580743949916389575561478901250237057965425396109439994911147218861967129458980671524476233149483212556029801794945008937381749961035125865890442371494874386388388069733685836164483585735310731411568061319451305411344762241688198615576253682258410742522554028363651740825332191858828641158546830895564312492738751422370427693726896676398739763223062195231865913590206023467828406524834643611552272752455128870890866110820004041790384844164050265718542614751624415982186054654460872253428833013881370621136654981705531672372114812089781109863179466060518925779205458024554837324019302883759307586329468203065341429525004778213838826493026266976315314822543865127602365975456854477229316354107858808480322539932476994004352140311657198011701683653777322700544810328592639457558523909199414655134782546336783756954912273294187924002679751474156769770076946552847844200127107766355637503073591543690227726425590698398118888611900180128772595411608980744931049437434595522340795298803843679317019925761934626609562609425414132375836272378506922076395643221445905824086862292224170072563901922752109404547766749728533823895763121258213800827718475759790928146773645294873326690039810222354903206184933876378213028963531301828269080921456649318424203386675796085154434883375011997965355280242758591479110023405757088154528906021885004254195324821902719749383430842314410810785574270034248131427568851202322190551539311121511148732473785854007417500192331968600256464845328943918341461417265407312725341907680779964229685849155260326405749986284621957786886433173433378549310004716734581436717571080244338698579040419381443531532691280799155923064838710915027638507742862171962165880711639125475667059058166003115500999269925010524822621012649785492998445270589143368349556705491563674277777183272753851034725454672116321495552409998732446340216627788814667061028835201819328909406249483888591940050791002579268898904451552364043294408279115385592106414555798733254902101087676142080457358991089548852277301405899729485640051780797956631804138822379294243287018247112184256603875093015564127925892638883605927230811291596046066045484684791508800098926345437421717743351367043922138515231522708118050561605447699101416240197495643182967195757197344499764201307610955357998645811608137907804489443786785352208780834288429165355340941603327028442891020234831117361455080326751733374891440942814802301810942512405966097623160592272899382095972476406196551764837094101077647523174537010397690244049104955111509542919384860285715529489622285849353648303634693542019890948631776743686705478612839495280334038204345486096258463368151153460493224007705512157417853826053821070185696889335842407456345281015245985372556494451687926315708536309580499318311722185333501888681082856250240662550421229277930128363713336390342740619341805442999934981424522770940784895524460323891770917398162195794820439358762136696185171209272828282212137754735745943814729385254630193006149710456555224197615645964265839042107354445136458656605978363507231946581658052852197635992099588302467891572494320370823973431288436800700330262352663145873883683463007033296939006199959347032482178544527176092437418895340799148181614212670197818304373760705600745924041014096689045720106102967070499175712718275810683108075464548280845176848774894354069062074599536382505693055039758863916382978052467843856889914793883598587290905741014806205767508916346107252570907418954764412634139629175442428141562600731940252130750581340586454717736346141283911064561552839619338145899012507553790095724081351754929422676846160764364408778172787177797245077331533326904508484428264643541073120255893751996725133890723223146825932347855585083044647937001285009016407626848853247606774805703566329537399330694512334137137753915749918024466025925443624557146096232546505433265258234600939942691150983843080586241764316470652266179996069626762964447838849751429210399690913953568056391320510543079108647708414916859663213828572332991962850403193748700469313664456657970200616888894502926203395823378767718313065005277437826575688043373687816845768110184971514842044633806997905600204597662769541958647430303113733777209069906625100924406333306816584819457406810918249918252476218734467215861854047772852282128689502409048788678301800071414095725972893611872633888248621580693252616467399073751679341606840049465181951909106936217608160633771316466819491424008993234223443323983302504803584799293050857429674799303729957764395929114021801221924037922072394837109120746504068302462001275968954157754764728563430160375318053190328041133497476648610035725334326059952005906557472086329696172421414088874048261776359900939875573699397941891059609278990524435991082933634065918588353144090125230381417944324242200029232117041977622886998909169278041136366187325004628374965720926304734878635617145709742086052273822937663853534712822674118046729611485717825988915892086584921344770364450252023903845501581757138389634670030072975520592095372207679085844525563905057540916073684336375868495733987067279222778624332291192470500063884388708791508152412722451473638333062161772232774463614395424985029681065640553466936544871885758671604863171314360414257328686348704438782845281748313016219853388195982890630477181742199383729079227663070321150330558296558411847614296812428656726949426313245156204677437887201474762099798298867751981049803210257170396054206915222766792771218043118123798053847459045688059576566088959575086133817308626163118624518599002268118109508292101556879975765940197375195118421815319415352907273221462823510306276366243242581067308999880626461299345229805794176011210482051378285606157362380737444048499514195762632235291357394140785614669560717953508271927019775448232800780392336242585196377512012049528985188734603551767257609374004819471088265316704625110699682822381535700468319881937244128890468895336695339270332019428259630221480442732168524126857722713283153608486312425712690481492187120250257414903075931583080039018839096553559553156922129625181394523295537996643640873677468587681372468940071102346771707886827364268936714730821578401211696619992387670616217494932505470585675581053031515853235547091611665014339031619251344367107643869646918088823804705393105703116755335751323261357513025306229122531355492025259448085622731652487580733969613971928776450301887184015376518457775016257096592009689918656951133320969820459443899615411541396120450486536966116611814925110610062513419618559998356269277677116080830628509177537499858750783522663245198136301912746324011377863347449191446972515615001357611376911618498134371506121022341561171205411188736669029208976562251295816712396097808598368843677504747938519337246297761615157716025281145247105981931642236645481763699970227705691850733428046103771019730785144020415804297467950460548577037800310922461237011473329598868609001481653108068712812465778046749990581408557625316302960353224757880956473160788319444800057370815110798171948324336739307929227863527842843466762122704716968424891375294401999026267382998143856541301954094918558334837942901883003707725759967354613278359600723496233684190170867545155078277698944475722746112520884744167192242243406309241032938439313873889278224629746709192381950121177028104676054968803227829429212220709529236602918213690086152479521855992699628972941257231264117991213980162807315399314877552463689546458417016716114266236402265215148200815647563833814376396807838434646753397273185289080716449362914865890723271600447535900911250628337118229458174441960859738283822198219826240262567913164100289797959231303205236357553718802781377978275466154083273140019650701616827486017865230128723955153328875784800173333626265941418329044668799937417093680435246974531459345953690934972007870866733349411855476158464890223785293742187869067456923464851027152235997796205693181735179810804752480903947920623031013742968156307606895245538952740540460533820673766990197050657984756884039708411716141259796300589764406127270763926121903711935211912724524575032426107615577463045099856884637748607135046426553645440528701644348530650598990804035866507069931494041542469588040109510827155820601535422482870255610132201989377832182198338224324015475424872160636113914841486163126236765285984316485898035334822172506676398175473166189453111804013660910960376696170825148107075448919980618649545076453411400146905580582623266504115239268740026795913894474433957899954693352594896316908475944761152058815279373553961166491072354428039021684253048080623017755562843356723313728954532747150089736770448631268730950826527790591605312217259825205901538275915935031504064112392324527132658037296250174237424828342131170468122823194870916174665521425277246637157399518441245851186985748350598824823860355509818807316360637501256163728678173811278855508145467742640756490936031256052097122422821454768199654181027603480138105861447624854658641507209134499935914871583314001667704080304108583291102137784265015122501054134421510854207067258844525299699651350183693239033406174485328544315606334730195377556757254828964814964352486161560248410158002810204563355774851139429904403450621659549011540702582322251533644584543476551413058944403609462992321558274477368744152851063531056082656669309204630873491462794848780385415659616676228398104903012588383327281961452769080262323544285562024822062308004423528519822488001722319474290936958354204895226108420451678842910450800862810025507673417720352180935846672836642769980756642846492629199722065635172122809335516367335941285803794148493256565344000262599535695200825217214933699298821552152950111136371388172489128544431775493957578289632466630876626618256178754945809202463610973866285990228623470935026561187822692458390991317469634093903811615020938920353993831684349975673011034821407668207933665027051705438059762736438380663239893164532535236347687342664601650460053847678304914896475704021596590617331584841798841252808115465002973934207456855723537457538923849765863624052873313781690885346183289956938388098044007372605887160233200787989902125291351639397613578159891227522962708791553993131124719653888185210194658910002463032888636459327294769993509596397905420423780488443372395815453698445544365167963610697935935598630393866554307516379706689699342017986226432400748007029578181581176181441198891828833476709490750521865373590238621372409396368398334174341772070344415154483921541203907048757809276445869999807571862984596497607285619247161261234528781846139412216153167632662019194812109213196622457772836423803058396761819019299246520337064616289465867755867666764224575903375565317921823438080997924918509486461969880292584494896718601919267298985360164829692185733972190018141233346185176592815831395240386429845624762860542277743391689390892682871588745398626286218820474233395915097791118118742820353790557147999503675768437852069031057485027877346981200164555688278256111865951094308456426720308809405919845442940612140963892596948594097022755645405205063519708548887482758919734588052397980054626543327425397922982506848036579030378010452970921083101274550650853913026324152879006720040390115269740149883538393108019273191179258226139833521730101031867336100448463392466780726040790385249243024612851214705640515292612317415936542135039236931603142982132322692928917436983632051094337433629134626649891447858104047405380810387243628116266470753934483263818451860699223565111239460345493883424664446476214055717938276877645146238336776749856870485562286189464516093676268166333553689752675431728714018836097936351041334762476151016803604345247387320434647356592222490330913841246784075527642852670436669755528160864951526655901343105791711633266896597458203110090417102868647936369700889722531943243961136469730002896130856837089575507578897948890098051219027041495456075593150661620151241142222768307421297181033076331708202478508409412397171802035325814693950739904906401991850213330441212397698041272750936861652824717767215086566579792685675146447660255365780843474669879909023662491119831386381674220861701063113760603720574149569275400103764131947506365675398146959635444158764705414072714470296868301927384439592258107972424598973809446183528776513087713220816085120787583254881599827569899503725976425010785108465491668581622785102210841401893452610945201267280189861169094473612258141802935298189257029365872609400030531750046704951782710340720095402040437849538257065393078751655765531318366116516890395989508351230711599247638392467763607338725761767871590938295428065265079475437630811999815557124286645466975424769932340344662727693866386364117981808334285753079216654094023320157970472978091895033016626296233576860268170522851177167445893260013001359866407647494433557821066065766420691050558990357695016200009368981715383574890394355725659900479996524557539860016963719195109482398557706078029007869602271862712571683327499559694577584040870259868911843495613200830472293673163883284635322567287966582352591319277657358168625018167640234961109394288124561830404378504513565120343832713519446092684465234264280471771591155204969050675667697004987475258106174185390496394979122239992209217116142482684321433417112031009449876654071447919298957199035921704957949298520041053524327926806307995715037103537890631115726690127741480272608833053111999634791712958650734341431151577236768225895748327696993139827994303349661300483451662599572828697514290980126713905361020769255033338616469176090502414473424856935061394506754403177847932027543530410585322680132817201480343701898361993697362196485390591938759247493012997809272883536194059288528709288285293179579206563927828547651566468028103556081006113344097819595592019034272124135380499628299697219124367171689846163982082138134362204156623376496329832935116992131532686206891143098746183959928189916761426841961954942790956888712605954341288282142362800734120443189992207435966773376320002141815735205627152699179357291448382074359247568172139091012222762126373281241989657522736648597558149276865170105852415173735400696895072235366248030874414148116612282274871468761092857281912435886432066320945957544005749199122494246787585958206287753024134066900579780961792627875819204229421745239100670362179945372197541251244630226694077010586018503042479266047530893563669053718365941547426437744884924593430541992747312182991845440205573406649822555211214560286157468590003043105598165592036748438969496134874746307424433125656570870280478166023642976266663671735298700052415688209621629058923408686191969002645697827899173891428812203270370621243730778825040556578931006569131438256149443588325488104008207966647522639143317563377198663943417874025164155003220069772603795760894528422082442634699157533556123685190040865915531471239547134235751557103918464010030045439433041810592926643957915250175834968347883235386283331210113123700723035717674042201073128242957612230063839436939557679981006622966845675910502747228965008316177613352222321399669726547765792340641235872744429069507559828882505931743893046839240079006353055541030377106242223258038118623801788778358084066365477976347486996041248372831866691627597991697020128227107996238980830502958314281813130223182837552909863314980105421278438039463763348628871741275360011595803987638150848337940837672956307001486864956325005459712917907545330619401529886672378610809438899006042944943891205282522506491724691198155586719988057607018302919971606931576791086152237955092495253629655689739739702022773814246527859839921226546628306286586265641970166312006526370665600281989602426525419358002446546870900137458183393079900072914573254873240125803076934420228315585549524125851414931734467660148025377966247871101603301217005578937611266998111002627000598144686915291704567150366551872868070968044842732186997536591953161499518743021415723205858918929687767013882249296402419074728849955266938124114728817216057557315534469063323411638329934719552863780709358394740608483821910983731103775357003391877016659508302325185743602873732296073817833313390790300744756080566791014344497862632800290517272862541367897145409584963872265482205702717024165197421889705308430281315086717747334298304815524386886357843328018603236447708912373463670449299319347994071750876412993387265491865593787597966945717502303956444889502748943184729932375730663123485429785247991525252372267275429871805172303220492704596765433633941053810299754142557994438881413668816624559561182861027539101874634034912586235688879170852727203407468479495815973417806765664342109411495765394995126015088472914563526882132109752666929732741942184198674880312344992814684169896330591686190769498160800989527934465543176846404689491508268864969570022664809915926064064650852941359105034476944336012177959333611889917355058963923539711041921325269788997729171626327263466960763349798899219956906598251055660454576126771622703743274436129125428972978641079798982003057446419972515335670599759112583293440140446513230151476100062729855062150259956475929379090257920278907448942074219570821148031838156598164892445853103136974821264383957782436231234024912376831134618201930286764563239868328312095564704270905603141120433165099780887964644893097733799010845726801344987333681869989513938606117222617594924307492945559026082166658004573067064131034555313789373697389835916418947791594165531072811423334770049234457973682855348848134286965748779004589830129220546173535858680138830087419463327996710916867794709395684959460939236619470965272369691817185459032365736218309127092202491894877679011803938714517038709435824982933514572967834894634527090890847021731614184537040699887191437396060852952469950391521141322979275939555132584407687099341417995827626506686117216612435216504522976062779299471230025162188444878358958547294582276705389837418832966848047547233434080961389435141071753790957825030949202693754182892096643840536862612484345970426818982434769644777460831536518730334402215783002685305807453116741591627529828220771469238235074632815265390834399055886172142863962355125918876633987307944013331139852430048839718830940828772391838521368006502355765538981266989008111446339790397626537134762867108922123691849409613460825575675025187063150448083883449820030700608857175096569832749366356586593919224967681333185355795380018540000621871389075195792542075438106981856070112155368934244655951957811698442232653063634035596212946545468750380774439033980526333975133115691127095221011119233056955343198037517915790780146251916998214433371717928580775263056262719427323367813646235240074574708878562836024527797458307018408557082945732487337050283568662331485119185898448935033467291744620840010780288660472857836059294156206950572251389870934260223429029899915954562229539865448535778910152261722519512713184883233007539730059151627878958347215893062151363023277121837295800088637719349668311712202334310395369377707906346062914653414026366202781096772542781881714221070262135308614335320305359783455632328959043791327270285508986615712671289793596087989824071721899788042087859519193119338651120666867067436998363393267641598278365127439310329002804798742337123000877386068883216254313523813972345783340378706944800614174229740542928717165788023393644130635840243535894620864513209937809494765087171391672466130681960860956318661898760292002234338169705722586268400619604101300554609142916933418705372983554125464843219632690438474522508380736839120815771694872377427244896737603485013099894037485344060949365697520623065349786621185481154654695540174945098059962704891371750602923362216982388780667737412658993080283998588088975905606733325044992857308622773978011642868489027222704949598684028220874987570894902211201356060530621913682077272232309527734401739999204030238118779466308608887632410715008805523582255049966103813114341602931111732578996403478298261261169278975362422536828831144377066488774564241453925037681132112440350037655739014940884757162903292784888529492848353131653949084287402889953918603369174519293217308923095912491273122020301732152551712990699029842052207821966649078666967469116509495837840459246277648536333777603937493536296516528672870338310331125106975811014381127082885823460941390704623607432322808453040569866742249198574756009363271330442567491474949191842994341021889093005408926355847800309772788004828550589676446739766383509432352507318687053124402568855215797554794757962029996366616195896463128671848107852391404293285445420341242968313955403415500332285261903970196779491198130050711173853237800557456383694604995021154880138558908331672043785838662149340756649955932671654263597442624855018588952387131802358823973446059560570113583280499147777576164778464291314604571542080282772179448240051224054440135916565577163898304256787725445513262878854042062675444623502466762715652780027409414476972038208176913759396817337167216058500440577467750462405469086839332425671034356917737891427138952401419415762367977903935616003455621307352615611387774258973469956152375018196746868586816641784021739239478551350786502403508794664937503392076307993768674064111016094702312262971729544325391848362031510854895473972696871330961236118507369901688232290758279621118249071120961442589254308110020054158318458033396083015754659865250922859206264265508094732935101974006995569855577826530881374395372092559929711142073863592538461191918260839404135607917893476317541010282641603544480672104224403309693902432284688775335321716870762985472310574770645643799630511380798454383693832704361045775088353423318053809875941841741223971846887385740900119568206945281563040840353914128361616295290347626170310375285438637296628908235708957709752220196082428576524810553307386823099399572463371590365963514987747816175766436338573343410144905869416758961539490728332018014596146028677105264781815151481922541709819553947204493795237882752164582750087343971956770365279905540111872681980844790573573745634894994368268038171873392521145431326404107705827632174735985370905566788193589369090024214347632696557393154748055451580136677465267409230779727278823905256559508034024246964514548644676021985915062830855060773750854008245975047961813066989940209768581496642962182707484842890112436688734682851912590723226680889209717589036744888631380263735784028257555751962920261450486508809997385386721815716355333124502988506260431503891874885224124253356871123072798115458349776754736137366691975781656679785817091141044823694672480139322241053516066785239083157783406870697229147872376359650852137271185850133357759084986512765837644702201952153034960915668481235182947472765088787110997279492519462745511607411097083426984642755504978710877625470747463994969126351058078764866631104000721964247912865577125189303237225069124342903259576628755661450023744910611650437891428226274229857553573420456288804053142745628974111566820004726728744688186175062218163488532607267730546626163833292108267369837023959022743816538831396138399439952067900510418087541876456149466687647042985296539962314634488009887902486041258429555768426639783664747049862151895480331399419814383323338763442493398917072657035870921911575641425361079933250883534815266727982213390653312293886162732995715166622415636909119745039278965282952595559748469879871054470366714994649556423715242558082744981301833843662564303709055940358402078757663534067954232694826751704307976323800594949381901090049540316755209807190537641185289776071232395144613652927973120602043418275526299527839870587317327989135140303941807893512102874057577312654843284049512974036079038194335241091251088227994134095940729263476869186560718304446063045704772158943250706385221496656777858135968175909203991929040891658650042886867055491771858286988924089223359810716693932105643537143281058612029439758981117311266316360998962207197103222250298101028251563070966286268971363160168098126444630502456407759681471626264355952687199769962808454369748038636371896103427206546997539862188080342813503307062944688514430831508799747820273381391568091225972788995565210796664594707407738725003302546686661820442367171551463874062679026708355023227715669270348154793470608584079956727698382545253249061350577724739455891651389685896766503578711314600231916594666603912537824901611565315783906226240066226527322365430165288730896943739754834141600976966183025574023221402840866996626673492771665896030184139431328875713203205242910551717685664073050421883810150319918146276014685555977957786069773523655177572547598036338684599336793860407481555869600451807251054992403060703546528186532349627888674722553105364904168752597004434101092995243856238517601100255889546955309081624682757322619931830928737281355775994605715349691018295880937653363824909730201993968299871142451213820434105680939548612889357007918929833934020247365499851129963292282206686801506095114535782273426674379447886460304470820375783607577945440316020035642530220072047452158027301800194645818239837749694499331524861141190953078389283324417741366774639136276081644955612116429236218837840421461006023818975098378943935730587978927021588339249828785441358825336800572271651418838858149295407662964985982857285878430488115268768922593001120310374137563629715715075162486626403912403308054046207340481045952775541689803139649802620194781064911597558465643384835808106704834842842543823055700508235863000106603218361449138794972409859907060553536207044079977902934349326477856598897114579024182501281747705552730104062062985187550308668599868898851684968061389433057386768319143008556385278091033446963012457257612796573335287653038142762393783710090691923611357673955849880033692886786360983147879210134807049167812684018057299405438663352517417547758603923173993702832077707167078850058221360292882964485142948767408919208189419930312463434796010500387589500734922716362420200039588963576392417491432773921674754928521014921905504308548854406856062700399674440276319619646993189936975841024834712429900535928486349407115977304442160676037990194224142299147069053755048410546231664230015418700846554769200966821897786506726076412042400346272384729472183669795206617243355200420073142342690595508160521351819119498735403148332966742114223846097244730364165176739114890215813352947001777791964694026128617745363391736255876441772167491472209916954354738286991931835301131291920387004144558075224828853143987879125865446170297900898953177395396725654407988960833370229180642562669338270878365187080432801812172362210953264211245126180640119326455558597683778220059425644035114351781492597596000769202769760355632312014755366216801631961343187095299310697226901608376779809971169150001288826020146070921488433111205317975620992786821281933208058204700016381677361092394629651891514052115151385277330099130044882765563182937359489194492979969441209076232081085136979716513166008918664323525013659808557429600389364532379343263021258830333834330556793990045213592868103373641746372798030895336427919796838954849698799845931862241423354419118883820998601925340418252381441336991060671176870291063600241451950642919451776810455360184502770273096696264395475681043292393279019839474023316766971771463297768671309114527136809119683916545261146741234296285880640908622510614607262565372459058871656296659986860814638857705745599937894983306299583857559948429390001035155969971360196238481336254435031642121695928110628088467574604267091296691510414159332091488949807715002505556665409431095349371063754711975716031294327024628078761413429986834779490791837156704516703315535787379860202572528397890820596672052939162974257387068995378979703447490787789262149181398866874923525202015616990095381405869031808642651416424451033425584538471240513032216601403558740765128486809246102714388801653230728798350173671174081372179138856335740536228273332186096857888862374916682031226817619280705692951336055474358553494197573471847480734926265385163963005974936512956943697888665701774267367964426988821348820162320645693636507665081108592515953274527193798175744754215900259888675760859136848563057503687954486643473324572912314841973996873395844287643574329698564374503731140372798779373267921447389277604495039645398799196540004236088820747077538232212090699070657213616720857125521417346402849584050558049839643420465135736870041663166443948286331221524445647089798471859793900823685727355559989250240475866204253012310745966668091844607897866583728983074074789333275163516065676343681166626582110473185964405791175878255554961767403327043508479545915703867572258903888672669299730308205166521886471135259138209650525567069946127749984140371484733625184170848962063592626878256749518035271860872910059616328305164545239566792759235617371192500972728566598512464455587397025567876694370318252869932703126816602401988581665147841538756227513432433910902262728457092602226758211881503561415367392691979412435618920726792415183019394706075923249978031796609294045831104459975464041610988960351111249179429802975098259626617959569626268488518574032627874895153114951350917513180372684111825548748228720492746962087112273423837740093772539048021485713333151602985287752086086048343193264817133959628966743593109080076282640672752686493270901898619370776424943766537121723196150923804819413733381502643648692862692938082860369732525982037384817208537329268450675653717832127880849706435530571799147298665944866832788268167693501813392411134056341625610600788994867855943779523743066494705611367227440648570012834360056977978239898730062571009827351971225025121224012462083354971552205144197155617139368654403522017311729884384899352097497882973103159858592572394193752145855827991933248287418681943491918419806821317770173671636836549086219882016529753348404361125637240190230923960981650455317128864526593255252025758889898037383688718263320590611452051132149816590146512401668063741394735408406338441948904031360766329037941405567532832143960081294616950586128803118410430971212813741187220257279690913163170811434134780302835754494592687499758978871486809320109450187989557285946375741551909340592118748513418015251341725041721904761099239097830690076014466432552042836657653078315900678033712774626309784855112825785135452720353514754824329661904066619736328060502897718289509120364229099171230873938163993421666889607096110722073693253781546223602869308739281563946732559278308230129424650589316288716908289678069279654797721676551898844529504645297358946105237813617560426430525751690415665783914588037640697280362315095851342321465995084681307020335827328393461706062780497055220261398292342737019717834255178329433843824596405184965694117475274567830232225703027436072986010954765424168352792319918869686588360261459523625594915960924752607366914306648711033299942310970833086309603222364926454749794952714328423074340776756340722715555155702518226541324826348901284965140017638993113135343583860968641053034487454487268776732963705365682938046446053186596745153927927059149265221699873105684364544626784503778877837948440145602746441189884508740241778056734793337526627782971074222713276025121594357636659839601064843633345682173821790918346084215500369124712701637880942664827847383487493923780168312562731927536981073909189169738236679847798510181959308174482170625468371727314574950742067711574915691823030730360457133830272303962681571271253425570257942963134374975464838361018915165001176809797506404823626389121831171386208347088683827676877075614287256664826164906478907311538581166552766411601852412049044894655647404389834909694085879559321703319265239226523503751444831003514173553750472976419342956781966951364984269605163462660093290526944998160648985012950421965899000656946192557958965400892725596484421190965469611841779185748376310449252035532466012978454566406376436354382811311926826372319739997051163559390657694037808669214264585384998446740959550267557793854098132875294661579966050594524160295232031458368932968823686390526208490379371767346679881839776125638890302856939948230487456579105341913920695993499008679621630475795141186331032924043901543648123575398640447119431031371648706982393820184350979880013404882362788375874310654152826969903158515058299066514675129478637567406568475270065930094831689844540900184866851478814632533658612608272102872547048558431981241575079138220317583031512262883890292501312640131485816135620767953347811717881614301510112765600939737683676320313956115606139657034375410456500134771527812993411176335534556486642679598964223944183065428300557822367681769243481659759856182286159782812330150943445250808980972004193373737014373606210109032726506316391130123858791177338129080852821616774147746500639136694089769827753277942755705139404621768050924304391600307434183047258135233235473367312589587378864057735250478979200418529043585911400385290476714585295140084602888698945074271575466063701017435819211992964331976964948393156405649940872003590140262447806444926021038990194564094337596400424660782390509219582347429826727855394179633002545129293239827021448260730538208538073767960654395114309607698558077294859723166286333200407992209985607779477278933406347106570786784178625308944993365278626444364842561557505179582284314199055472292885105811648147313396159600567800068227207158387964750486592851425818786702047491956756196044057294391256618152273336586228895119016373187026734841446325969087321174814642900505468222412006900869970617038599788808981765599762190450251117881879470535415852926959724007555346249466035961286574262688940670173862818622263229372297427706252654676040189207182467625381370479519112110717982369589656496615738116351316177848169727707131912761832790535169172576675278625066258408020192719799053420422693147934567942322939265444702481974661104396470485872665433046165026071594590539639204706804121619685734591695607541508365585246981878600453208581715952213884140095434708306215100425055930545025064655593223160712683717651757558643662713337905614589064466795525833562280461893215902922738282210581524726488200511384674428618574543058155659584206094090787171959199750241697275279395785683659934305589143310348693411508632143720108317959482197633729107358737246741075775064993963658306104817954763201495402356865584360698696328904435718134393762738626766356471923588975789249859555032279258112765380476602451443003231678300687764065788832019323985085866923596328324617105856294865947649943797425146340884914416204058610442750120069191718644103107209293318753900443605264688921990880172507281972322177836803773423445869375565170505652052386982161364409170451534087734777734212675680879406007671001746911496941930965190487190967017132560282675286670849456483917997670773132437713158676081447950997167621856338723676255658398006398227176792412431732863412188947520474552573235528859774512251884330670152124459782208460825520173979536778841500560362341576459488782123887355843706781917530226847602550007719509872705969448971179615510261514715094704351510944615660560342347666034665433024871008156861048991755254753462472968293109895533624539115144363286280458510039539303047072909808479140075209109427089572555545762085359644637189932146511407602936434687996986004584101175685978029167135298026234520177389012512054919814026184437729703460041205322327921695369225223146871573933577924901436954974985889173406447817025910471225404654578311626422824644781638611885574237039371767737583738751022420631560181949217649887313508337363210552086315478436819591058973717132829160429745327076121932135253193812064018982625933530099939497853740099832354950411927705739777560945138178000558664766858210092192337054595558438715061948148366828408572144656870962449424236410394920312494631011060117939910406784700373889933586777040300216259874363712557031596344967083430041516328358963116619781093355077495795989867559576429013079755740914192200325262685245814033529595663536049532376368101513552771636170223623691118823854034739593703125024834130494139619022224353985769382543427996697224208450861225079478218907910143315815214851372087018615705859261187439454874256701298276794372194553065959141607276024233891417483149291675014532548499093511177769902701659058811071906336445044816163456593332309817887985351999676962389752798568358265974624757230895131857421822624216269473209805610086022918424163261792924641626399206993359589145844617984812485186910160096967926441193375125271490513061560570638969858087899140643832578957464629788523563058360466455479843390320942089699241747302791510085402452851493563072648453153071567797444422551015611504794192591807890746521532918311154589516642612988951466285247743203956517349400714640921312057359716233981489888335589428783679126660611985448923818290111599898450324858834563478965219290228031057161556685300642049750688500447763147446379084227093869149565278421236473985255604109841911984972511914607046685591002717623221435849701755033731508714616179410749419426527598163190301322727694497272999552402986316319142993730613064034409164085354383442951721928261108782235249797596394956918135992354307610507926153663277957972693781471612807769769885238218785982297917583550494288823456134467311855198085669480840374627219800584274662080311979833900481473236425033022561867332560188613661748738893237170982609666243835176550455050156903451710641423647448199457412014326720820557081163508865350946893407914503613116175755910449985949743007597173556052288654581414430590725641098777580460787707944876773968775262006197381434321139827169971349799739254697730616660912769996745180340095404189440262139748801221202866077367677785368880043308410440964241454411335006181162306624148368998790087226790436395326243869877495874878476362855044348245656595128692262898687066874598836977459834123947835253513760105261853604609059614174776751809406402229155648203396749190782845811948305624291556491238349128213281380795831528551540630933506965698011340530527755195947594521491614108392333357961051067533424054287228457650875139338080401897190176224314017607505817398769267810504841580441300204005721841242790032708602527571483372034142319974828069604316122675664124094299955201307329038516362932831950420489092236816343934693741705494179770677189896634601107100937954209199160541361781781453702254942800417325498434059106590500905144264337033918828821534278561446630115053925499891638886788895569264808266769762952531472527167240724216424028115586382257609217067069000297292029307905742091108178408112427887050951524563438327385436206981425568120403949463247541037833772898931702049317078065606682620643148764822040673352610821015931673093765475189229413909800677424519440371645039338449858024219967756472396549601742911809501398374931701809218839932460120454274915518179615817921544576904748981588009373010053994200837079785332217264831062653402096617577958374556980827667745122595972051657850965751393080055266112682665274863210237535047550965740419260085358157900005975827658327438284309974257429462520396732631099050726794641150372525539178627677725160650759503664665484997811544268280022108959162809658888937878288813955648447664624818777185969150339926453481257504192428332728069107386277552984236528039728042830877152779833026706114511764687005720520179018732628957901912285501573241199464082513375103914739734710934245746647098365568016476157947906744287579735957700304569806667517220500238410554505413482410212020709324678068020059354297627435428470129958418553288486769189623194115102681172316061230994135179181137094857855383062191802952994936771573869824146176583769240994534393630513497396666175969279987282351765707573532709013826837295439356024518052332499751193467767444480268104323487141762321752388094354618245079726809721249803130770527234998438805026292507465115967899739275355923492027796991023602759278105918296264540189971807395112254451618821318481149298011473500758161769053191236563372496845400353758713558422912576830730262931550455728675624640613015235193284308151913713389088482437021702707157762534978313672446945390087253396038331288824072172837574941610949384873849363094748638910694843021012612257470165565065232408796593952892925925546208680332615879986079021884610945656419712137008694797290136686641196883478881688067400219969379664607320826345891255100391402593890644726704283265466438015911536266692011656844721376970455973259327826180373438583310980436492405906380251684810990818460526138423037936885200352831968053812522908504375452330193488363044377669461527807025683666914378423163491045038466109323238553641869453453171547665516169169149080996645864080195644986723849388531315545815983758517328667953881376700277941563818481205588018104972137512794983625959135212783773824642545167163826909853348951705316173319686061674789496572204136806554174367294774894090910037055430950382710571180204560686744375446739002915054857083071466129860500109562694306340176279760559844887015663321160343842866458293194433244529940337220879501838366789746284152052979649764992280200301397939126198512635410613327386307625707454867792133613059942091124305682674021927181981531457523305151373740757715396580025269480546713892275790347507021781503792302154996698188565785346181690992895142339044224932750849711768203904814978519843811724485873852080182823198733652386743531366349122201261916205031214469906943660220240359155657854042053676023100780165117817567657905875113643137534290266332652800361904235185698292444100505264682660143186550564293251272785118977549313470145936403138626315259382712635087057760521470514052815342432300315240703960559657927905312687452615977260443874892315991276068150016619109243287348554199340139175501119604252538684521436640959868073853524282893197090536649277527797814801649955811051906677185955088153150708764891087920983993447076494978159908475592630077622533905711572028177449486144093326492666471183689401179130710127921791872042724371408526771626183871994260491125480256446066318688328062053841082343475389010087362802140443724644911974704567546218715536986407074026281032892066292629666994103141182917744111543856394743589972035510360210914699132082508723763958809672896192669712688597710505235393337513158154097436610822869303698577334062543646709132894089034937922787613985972539497679734933345541422532845005026775100078860102571287585719934504520230883932428834882552286801287906060609682523265318195358858955812130028382980121052993058383912045835797757931630571657965987982825350520426519924757897243325228573347136567365788472590735268860010535641892136582024106532031548453823759148640209929648624317982712703232134406640255114957887880490219220146378260563154598276230694264830763226192494568895342492812257711830076054484899261589232757397009974674922943416473212464968460129689163307314118340348642923858862896200192601898687593029033652056337351023870661860916397854369215522706394512512905106239552480408680331431550371206463140077633901863485197434011072160513191291452079783020475079294895561002559452487649914819563224425267812103278362710699429487330058503843032610150941046469164425088280769694285518424838786954314897011961562585323078274471156577877414378429509918904940890290162829260135646988656097367643698896083277118274528786832531949803291043333076063441852978243668208626264993680505941460767298911797562514338962147342030639321196363320567063505925003037772297793947260983950735235055615298323435968800006820130678942409405408196382763891939122565797265901122746895929158838475274299631322462248114870469456710686455545183467024953122303569303648963795600090960658743134771102624734809837784073313201263497495373344177915220287801264205792573088673385804221837896307974381428758927678142892671283179920161756419412602847523897979629547681911094568976716275364800003658823972613684090176326738282584032686919978884647243804484379311366680311589174865990730957947826780617516971621104414145374136680667010576335734241401968101427524403131252878413059306265754743097355352520630322764762724557860940185412470756242218124465129906672584556476942810141932844289387600660243623264763747083309343936575468063226416894002943688879093542007434711420497903478844005969632831846787118588636835227190217989446110390950111776274236380126969552518063963353254965982461811106104121038121020430839135581715204248229270758934176265500157768659663806254553826615368716201151157167342236833003517472429599696877620991342971714981410027111195580633967264713917938539924415415725879700111015918290797023784887132935017015321849295324468702094038016411127776127203074462462775175669352162446886223289306481935511780920537878602845162239106034330622760223542651198936018680686014780912581628008573776629210562569922641031454539450511675929776641333170839912163635095889391259972344802122427804958156307477341792256179570619219461767478573269550086256686705123208416422428524904876359150581872529426325217585736670996428108233423992157578121730739731162945541165616743519874428989776527165225803392134235682971423069750396540984268653201020419145540974228833653858886426043094824192020099513890004329793967445004377087108354200108093132166097592329316109412378929191767201522939609559937471977676421100354270312776555831658637574800955117232004745860274026813453556301302938919780937828658636777690700931738122905175287745101643468487729963650490176639541730648322956697977485850593228786655125390820085930378753963088186245692028902420400668370056804340742276918554353603919076070109730842516249924869131345382897839434027611583808207095510825783629398062507548488680505009254184432978940317684131304816993238690345633544799172271821577925228764445328693093395154369833005283633851374373437896449882544734920027699669814733417212767353963286967052981830467579304261991090370603766091950675410139941425636086814887500662917897264614088770569811854729107194256566946137529853326749177498376093652908964139785785423451050206168170744720307059796165372438279304439493986575736113423202447714737319251767521672827500162481487873077746014826167206040990267177879618805220260415665386158152928926000730782190284394944452831405493556635248469919041681400596401082468444108232071698940870873036536828016143331229644930558401314008992690061781905075537536705382150930272990744372199037456385494843536191954005773434932286974461646069157507466980639655376220128810365355544376858035334276943215406223903997645704560133570338112080218027360163368485590744191406010509056575690233056254219850604268713085740716371472161813643680316058890226050502603452229803577604276036215015675066347122630865886613890345693528358941273191351237393852216711754909913156412150196795765467163868509916807305509416658131669640315064218914537184867989313871744967764231890912890093060396367022190238956810425366571706763880326229614829280759097637767534040651087300762790005903767694587773769651456630276062507141243167932955270942353158901202380707524821531995674913790361037981605105831922933347938553557016035008625483043807945152666784149500984823081357849005612514239320986484682767668278146231375608458242344776354905130500131662062192659531703793262937181033199018407638484574064910991543443852797970586051647303545015327093568185689941528646280955443142740527390884455352916630384862774566363620142023662365781465488231079376425781125905819431252982168905617332543821047830466862606690388678326069259353127850290148661573048917800122608659258402772510991116940751888777244298334674235471586655236396145624432473030448975667936696244927836817937156805549097026321956478621120786496139337923351524955420975479181267113477974739887863759450883570593714077259108926979527261778543232412687417284039409197770258089336960430366116005464902393018524925286315796614015990151901580928925944234053938536331646294924375858493851811768210735934902811045165992702020988516038750154277011492260677153591274045141044092931940988419020175691984833955688841307140269042385605534738701889265961760372549657469744492866722641137244886346275450061842381237370388483168324542449644897192661524435299719955552991640256209212496281453039995840896375364663699869059619702123016418965394314667568427966165099341289719612478020591089494208203446162027047739314771378117316971344846340823667948162852822756611816666289207046913631924799835426962154837846450951585410597675498850504195673384620843821105196256674471396144913775125239199590529164209469073313691121248888935459474855370348383325637789482982302549228943282937109946534624510758268400069394542449260522006669641717170615763144888136519308881302396825009060743353347844736688550462829175060313415363591644765043128779824876495336723907339479858242342726657924811756778389988461008482540274602807926877431694007214474333850222917589926149902709638610587046461372624812855976861558852135440201444235434935340505414498848074296130717806446121916211838492666451584831494295655491778717373137733694273675076191868955811706782333522758842527341626899562042623124954997088467208793412855912383653222804600715612433028509227625673496304980198816408728610395945407497645298951983331972518950488559534146192623516111206453652885014748829274529760095192479577008825481349864800686051533194159604124142752766427219655434993437563858101926477203796793613443935684832135229297885979837960462912654489071209184616439843561281407003987585581676321521682779413237033684924996834266410740787946980139835681849594542980964173731668647000359173357107813124668671344868242774024233963972363927143474910266780149358197850511418696401705669955356602061163059161393179051009663532601786422448901585647181537377990797021851406144242935646670525111839433010783631425643723788644598333112448079417592185232678398026021177365175751091844965627522800649388667858346329759001962068345513288358420934701796273610059712009544760180925234766769476306962804929206141568146186998895276058696326348840848082455926823880595429072040911211733779324228595146408393989432127615746245972593010479540217440950110786540673170590003124401926750778910123219546404440268772574678807963819605937346961581514355639581682147307481757273682036805780166969054999211492982956893652287182388530741998147611608997294534516059520125302382312193500015524746566886144289939571494330190476918299692536029713515930011136539188145758710323497583590908141282277735568716112622103870331638522457830599873414483034416543913173957253679173803537387285540537807848834243199931629726049802909294691236972968634139091257072086213503972717847955012772626718851426533068459807151554143438178489628965173071015821746170571379291614827371080463459762055693477356187893162414981062296717275152817729371713524519421359536345482801250754016385193541363785506862253000978270198752066078381933991544832677184819779824997487126476884723574023943757914437137871055246043514767257450492921564886177375908033170833271171122945059512776604027209798297019738236818996878363067721196455785502000836348340552436759070044031806655155025634133920563017310461537787558617936463836386017899461578475091366155732065518160999011709150419536620064490330300720976311614792393640739266496663799254249464420416388528133523100714708004222363248321967960349745118642112718608135089991816140380188603408067236990357323626407535612320999317840839641056911701576706637281386317041459560507127161958482518770453252929751382470932334959519130158381707916494287965102743644824769002942250256705268479300144719057012240692373001180148218331561306953775394526145591798537037384219469509573312381569952858318299055434966021375497039883095506776475339792811485439913786258455688337532657299109068235186423622426454487546690470087905928682067454937616159820575877262676331705449969962849415733334509042654009662022630570275396674570020273235577991879806763060040187730581775094646760577723428884207353586584674579869150698475259989154645999674904966311537556463453277319888522698414090842314121182876705993474752551251904024368297342858898191771096419527512486436921938040292430800030675815388005412994661709944461800213047657001742574420759835181279471238927557547639915169440041496576891112366027216379128757514452654001477754214148262952382071095222078345659109694128418054942955127517090543483371948700569632501946643429940592305965085957251087073126791161862646792825962938643447955421719220275147518650237058681712872359317570623708395052135129149008759750821888637235517921986503494108709734407119091839393391793477532043554204165187765131830272798659105251787366994758584347884691602395288927549646764608348557731685651985453243602925782272605914990889313562608915998273570860051586913824565727886060780009253854454274629727139382122505935050190604937386407550507404007025988978632703006100706343917637243858719613714298412451711627678587615453088904744432672735848444776078723922707155349220046587711674037476518480017375212963821222892334943026774472185893565744391308327988609832352019615019320759708422592928859778086314040330596182829167349581140405312316131426520795944242806951113608159108227452212451081624556624058371394278540649532780034939205594716161530030174894883650637127335632813774602116531515958573336317003226792029858117427231698921456233762837931037949049229072894335954383702803397814488042274402023976897229212896088764803484239385764890372506197248713774770244483699590086235698271126036426414348978261810650239633771278634679611250617004622076696598862104634141484602690016777503271985811527183625464075683863523943016877619243727915065004801342016778708932855907198282304653356735133739311244454883565840603054107126947745395566719896311727772306887198516834161186842251875001993618472030046194457359691361857787916148676488606745463221992628731906752703892293119132532917326444105851944437518752985307994470253675360111360495293458179144348720195352569478867168424425767292427577529161540171166155654862541025003634539968495303443790959442389487031196241951901433888836826018785244013032464692120749065031085903073063605661809934823829689843213281057263490893437454145188344797081532860608601961456974485170598241299261700690200623124744979101832388764438095343864538014812031703843686353194049901912048928998465472778890544060408176830719931359124070147198245326408117355318158165705564216306684095756605598590529415319871438025680972762599840386655467242810375741020810850500896343809423420479987404998414045809783697608486356075444087388295102734981966944517750323650235491119049221736157980676102803042345894421712770153465726461495410027354281365082483269904682142692320117376227271240864051242279013121038987361413728018575588151653160634153482153571963372960577204104214464727999068788500959095959894870493308110511127495421229186507860477784338103419187398262604973389006759643161362377866534860859519345327070482837249872376377878123952388913988733524183566999582078074093333358948476405995269024148754208374161804064405957123100957912544887844911206651001918247858127072748230037787031992728052570945055059900793602468848358849431024602149491331609701805976362281489561513188075349733135660089302495813645248517742051603354341033996458801324252250914057601626680337066193221471578003665036070641168237772602109979736494819139538998566484389252176435923236673721081395078834699339848614700291933714246287372057741664835375803063656470870208501239322141834590623080120730278009506106530792507557443720863420161078199615755922742000163409581554590176058829441255861919418307676656048674633478919489624654212233066604508440888239373301463415670741955833107358212137783188987242808364937948722117430366337721644001517904476063612889439362638288648961263485645959253845103819514197617104676139244904107201051830232194563745823433352294858426573028463613236056599302670322314646724271708028646515144481647922527055759860140149121246880649230233742578425984318160925616039063723811563793604687393988790117419604885951865857637748253966917274778648004407049461101775511263015214381654832418332513500162759523865729404042040073491446425714524659833248026148394041131726816631977910448681683322475358379661489046581932526007298659146559327026864629488544401262413477873279682419493430737844438693816629775506259522486815050249664284326445321293171996539702415130877817954722463904579573648085201457919875946279747461122194313809106662437289516674540276891116771047160187134427609623674885856473939428225338569829827126198736354982417678443930030220078493393386073679259683600048964706190369257848364884006433217596925368939697264030266843241054871086323146464254662214776567844516257791351486463851220355911970073842422555836046547282755531051312727295881833066292862305226285339605851371663383211686768239468379863123689401260615748386760727414495635310763433457594042984017376623542603862231366459801636657254049170735214080673591716522512297413145751518885672489031499500285630630324767709904837198923671850310019197048990928196800027069170325747040652964680343092650290264432961128248063564503596957450626875298308668023766070525400924358227121198642177423415682811555773113947329541652064630531200648751694858832276831498520253543555107137132346140996361802733594320075659658397505612837920222088667892128383860705477783059163909515990004291884417575839539966978011678473081727164596140872251590003300660811858203051094998731304251960292035242988553081923054508166279579152422477444582486954584611814802262144449695840002999544163975045134758617306338205998761380839278873661622310947433871427259626530086494643769106543155609878025795117405891272830647379908763652997679616233920176357317259229147341226131240934327240995515739667452127464307853109835093963945152191908059825790055598078062993091473908884870197123207791285679934945691246588978851703068831258324618897751253246338686968568600643877010765186303021081623692177564938025485315966654821786243465883405858913923647513974944753690881985907769105593186155844177737978388729901602268581883764774486256367146276192043260693959132485146023603891659188905914302441031542121417866748783575553068581851964594153032678500801596222257382882975214498266617520228367280183606067673955141552401251817473928257657956045105402495826310995106189796115605095321351353648687543697412026539857350227576666952541011663816045256373087484296766749204171301607023783325624611464151823421727923873566760314591397224031061666214751893829755667792167156183632297726658963347703776848311123674135293624488517257772342321677146139137316901889919201552807528710927528621716861876836938755366684826477822768641820790684307400677799702385405732061040520432673899482218426327020566026226333187146044986672484243255904514730532091574802574830474225565365663929231392016430737230162156487183227763661526492401983317315245692063137660355836916361183817115087645618529968716333035192043522250788508796766329491533730406471647827257720431721343162776136299662785725203856887781862834798383365152312971838674227769080537524994236915196327755474066269316927015476716090067288981533722232097582506365775514604441232954168112146210565097816633383018035866165057126239213602875254129110677751758029372382099286695750194346695791231665434039179718160381423687860746340427220974283509680106226853946126505721102373370705566038983470364502092713496513077698351246996192893051696299381755384958125130090229766671297132373972840991433126511314620047534099639243118612439818591810156954657402120507293737380016016902068308295266154920553524799350019623005344682065651110198268002242291363011348691104831460261623553319516364266148604908232630408793606796751430746454477061056305752784279131817559163183945315186220074203543583154707828129556452629722620569151606124069659826556453276321119588702062477008067242001926122308876421326890046423126478906660914342908248367832872487966397174821184735434478285980839032425924850922518815029065486896623048023329797700207929417098742694070967027787962729486293010647598830045807797511191261393504004738435877552375024148629171211665540204478242472251786484799104616035450851688044316998703198922572466473203617723287638808587120983493534230123409395890339025443524168971091513881242883730178725912535430608668346584318930331195059481004558326299344439947368910763571063070199450924016100182236331458418870323595770081538400682974171988957280090653134310002535456260886124788845392401733984004862003914184190488162117577201010888034681144667767963790003565201716422929223603970766796771251114361476038672082418007989606945899048842595785435927866312261398965427316964079425948560249084370777288603086100765135424926796962180634843817113479297847394435959473577139045152089317438260494274910975393211441310146691676886252844656610584296283891797274493984484960244452700079545956229680847134932532457732646716965966306907701755920607776527188918300496121419599131099491131402594857555612789103630326594145608676034780945501352885032018794697401188618253241581070619512908323945529122315873069074074986223046512703048405198780878473380773973812402429182129942887208400016104587410348825370316481286742199742133106730775661846101004772220947603105298414870369672513056001481736658063847295403526424686936796768983853673027752685846181656844093621390786243613434020096832537794824903506631693327430941282202113648405511982425561870764284124259284733256123981920661803188914385528604290541883998453869439823680746350598146636818214673222791646198797993127707342883466158839684492672414621850431957540806859761535802340952690166119197743976995006731151373183735517824605131490472948322794684342531822729001769681053040086427954411345229881658829144299957546848730362417376966802879162092414787525897537232013986815415601465367338011750625961396364210832814318285529433326744632210981608295680256130265880153402949407257278502836260553253457921304054236322547383068484767750185304891891723637654181118852062914032192038711110922517528190921977471709168033802265096721549740031183191623864481872981340643628124539243356625967280355853096294977462965972048954397309828296526866110103931109053742152641610855750977441221758609640609080776408704945634292827578939317521648999330111517723636865772214792486152602149702856875526881022670460213233599843913690463982404523136675969860201457931788191540378522072750163501290900840045111903957520984200397927517665357517278144068589144452281807189398958774459394287681966141525589528504800675338988846384097540685161229155812516095340526157145151517210090092587079661385232612232101488587769734886387485781221742578461823574128617318461160760453995306539055453218501737348438215701457317493671531036617389326569916775914887028543837569900101144494974720850212349379440001110931634356662111801366792946632618313395214941506860638727313776944189372229141681250661435460270829702869871078520634780623819681741423075812330707215988624519018171349847261416673741420602711370198662731922390819228608850644481998397997525667292571624919705894519086409526800596187063402513531689050347225964080922808654830545557108834116489840788392727393617191336628840277135772609545427049002150570397794391693323572650854345328187235731862366147588890855041967617349966020664590955863306529779156854137018079266882204432510743645555795346966316358924698081470205162335207000932210255810472603602005521331094896966123972363791643526869903090788261875200609363100033072091826295102544201821107500514062562853852681233856937275736335472910534133365697015179451933529310036992635409259707607067178093190811168911900103621766304466083027900437209317509212098493297989592374713010439321205552716426984441063342076301315438587863759374654819836348206762763391164978628011105275741989658093966842538267730931608008058089099208719758915930742046316768727841698323401035714755225256442403563021726658044356429500261258620932290853342424258770226433375326258105397550170248024686031563023513294550535486859568372429614699189157283114474929814368080330317035194103750769058251734600559158820375141292278762000900544768977940102534544971876239782313169205203007439084910269108511070409775367515362022676304022956904301163689180859986338245815368792446703625493564154022687314912356779652722778910466599504485723557793425663076169697980342356636410291948170650657219642390890254639664877672550364079130116735949592018386532311950708790874281070078168076842410334501611546002194085299010025351384652290857667144411140292622039899942804024404378710835688201282263135437401012734822816899141410410907143999787891518812409207767106509947725299443818023577091709239869678878387194802079800959639345787304787671036259820249148104748191253031073029693063440792047492386870928394441700700732256185755512315973568246542045690204270814473461059820529533579833361354236260740688193442384009140584329602039724074397233839083986643366556040496423001130942190703295369604587704275702535354940216484025699165725494345459287799828333085987389515588132966106481132419997100670392732923277606845484550055137020678374615900830791966385605116869390186192312446639454095491367606561097906992187312614630114630750172652251064673724745193677800632691175870749453772303581580106289271547577371001404458425051899007570783136318338899977727898539424314473191308796169407036338485197156980641683411652230098930127564113063574355552241406366841782198336383778494879772589445193235078102330239299980714250059763375932286866968839665970549168520090858164576080886581457003592299138784276047154058101669227844424653796107621218230435001015827525490835323855278046308656624470568164951408856549264573457054485737769207436224822338518064686526389504155187986851443672999336271628073534027436408657586416284509792457134695157370167085505558005367712559922150030234705868185359829083269076870068146780087229766293475201190427617555752398508902453824813765946577762558781160301138213841836969619614418784836496689270487850919305534083628845832680720593192272981514151744885575704297866476177954487233055532801487863150032887998540428638540826375814499202409529389938481068734897486934092008617784010243808663328734850574490533432843245404970671089783910132040733681882187517179376302628201845580471166541078403047075446224573950360378747311051083369187638615742110306511055161030586263824827719198024399214020463968894318031369548823725421489780947119973423175802279267405849598325176169926816246309781206828234757883261847935418084751580395992750010634676251033765988826365356241153631764911694135883714461954606662602861160554612021286023356095183585148157609279616394433157973804489542514266372863308884473639244959041827119028146958045569145789534779358594391377439605195989601560415222567492717725471792905344776327274452623879693414980269885055483758731863951537722246023244153217947170986627299793311980182454935751557043769665281951184543178721323700064875008429718695333801782960961230015887303094249973994469702013906367929261983003159538527032147731172486084193392195464280303753886431187743949855704297724419383984277764061317352593431320433105402162122798536113033121795936293860297591387047989772024946775238468007357940996062504628050080538232210111099870431721100480161547425616697293781452586075438735796800888982286207772348596958403772272105603716293258050670937394993200170262442284511827320974851357104474238574910938313385065594852679721271189681310383344922977816636809430262185105671250287659203317200109493010702171454356418756787481816061829491822272841875701758008990658386033329801893503000199819770634435728879386375920769202725079646423849437449001218178917846977728144541436568363948069854679319469469051137297065451467844837560773655152508349356499861830794306488489411855098550839933887173525124956051849979134584278404411130459604055015194472843468770127293322144991537238853069092121972337669478664975932454566639520146909773884984660244273700388267138612306289113355466807417444833322197743385071040614005637954357786855879043342649257378810079778319265147674669112558758694061142050141944802698976679700525699529106174148073197419736297272236346775779793762573987453144747575334027968733941515705398292734981715380242549650998323333814621238561040375494819399892972453693758314616743052192521941220891351501607096353660482297018746412532214335243551312363822426626568967477548114610211581434142090458252022078945549154097695916060792459362240546021700371350298603298177145959206917507270540263942832347909121486312614561482963179267923403825766387864794266054085215043577477584177415194947575659460078159228088014938804122163737322895061945432607970865578751122139068155395610374972040524656566712929269071897756672214597158106610218931199800510694037635646952079537354119550708662162606514260274303262271812828883157442731950122667961075103109382400426087738052026738966071202854705397955741250682582369884712800548083223565584210722128438132335139857624895398470696794631512960621171177582002507309951590471597482760998284510646744160975285610546425416650194137125606729872471349405409390392048039030803560021450215054462211658167851670425789431945689787730451778660691572893473860119112761545384503594757780014656044198557691791501655341398940250219192829565869687325075517752745201331346143716977892685325532669520616397547841659498870088295529802902531297899193451569381495595495247850261042169100357442315404002857393155139188056033434531757609135966040259126639867848932476140304310186771890687286648993930537346021730979946748318438970761864995181484366283818242944780387879107909628594256185989388190219690648008105195551889245493090888776741185713135693620199351887841038868150979330827114218829741735764652791547951630079975690680552332707388158583783990465326421512385655460097826522864972818008851057524944999884446889916712075782317911533167116430826645987685162316047873576839707592079553770698214425406585329257249558457760712771733928864958526516000520739033460504000708499999729438979457733100566433304467967363350539082015699063121729520747465173783526618316498740456645972684145527072098298688165358660571316229849852566929564746828156243591408503842219517309269764812712192609674484217240107686833050410083737570413873676087753475526069149810682962648594304417453784671446505049841791844273282351221271155730825065966264272665492553012748165337700941251203458303235135264897110119450332186559936639420608709266834199859075758597912655296898643512734614530298979178139593255023075357820512225804378748917439599233494367081763008288146525176066955292036244032882834122634065975131866198925868323501470727942906924298570694014366034973325498885331335610675058196359060026952167050563667906227009622777341673826415832194347587497548372276360776270672663395821503958357396610586051229377390223168360152241238061191488430804565370033729002673074402326291729726472069003400358109402776214626457781426982087097247301373590659577019816023967489517239115730279759265602167921990522320778766798145605140581942484324735013520575210636604836786868496258069572260628900558819466412102745873549765092028533968831124234215952268619517495963904491125755336560254425761483119123981631147985553035928572682931532882635223026173442168262293743304539719924528339140415564636796218300293766801802815234309434016203189013704909823109752277330925746605133480282515231342663048730930619972838330135385436140681878232461062335294362423008599994079433354884752745594128986824613578091116905321385232780014435878916129462452505320338103838193577230562002139602646367651324966281498678879289277312923298210353237146574213813599054407348627504509162640976431592243067496387142561883752421439945311639512798388820095857946066882966165566413872931293174973083486093855342661661654348927715145001103975762258754594703068789498108405523886969037881006031592808057886424834502753030232409023241170575739768914938174796439756352370173466730218024998330478539479678550181249553132006660527943520984282100807413125538809329505980852615986240171900628931220447925682068689411625048227841623409552275273911144762814741300254558861618670005898010539678608827986781532340383704294977252846246325392251451674771671868863768044864575426551535672031932956262594821137871575241021236958991586494116234735749061350643843645612202158086311050683656236013855105030753253653171971337685276628131898896569972292375219784917252651144816395512468057234712753016050988247476756106462101465756779080537151208085321850716377785382760647180509283712267642293008928775388442499798718665716440256524185716349126713684464740851102154589668068819180310591107146488358104040379638719138396176064278700769536259036629092124793841669322903731458259153058099525676355643349598972113241247435209398453969589574273217908228202808037180563523598510823551098505732341134052103382348638256034689443289403088314135042793141919509942456875319634477116620551049953025550178936715523247219075850165921855841468082175458916690496913268241546910720988374382502897542977437486633948935293646869117517031950486304709145115637905484054685821653893342944853693190069808022180252259728961615717390002597135622555177852924108455891074902178396765580976809426628519248244058462715329376808777310582406639596650657424786706212014115885177396294095481711363962379673767759790687676830102290897839339958696645569438687737773388828399315256945919062331482191349407847187622978339644162010131255157626649695743235782374746758433170748233506135505458680616226468501543867951232507661542358444092640105742933954164397427478877713332914772055015126657953798261373123196469492211932480409701009197365918388394453622264356212128380331882751849545742348919749198209710172527460453042093778350234903442483638094481914182043871426519192453378177720269075641484543927211455191469907207061503566390662843977203158831091297681240058029793076176066487790405239601623883244979263502519380697381757352180275723067622212632395517846506086674078695288123082258974355177019416625642790645218527983595844082919998354570706053294620739786440938291546154705369813435158577607938800966158815693353566240346715447521589625581995900456629624836605562138185775765930068731339452152563315954793133368253661179849264016684270424861789569151926089689328609467372058544938582516951349867305981170000391528721738666112598851075244426600387023589677285499554058038918833088139879816786936292620144735241154314328288233074587398284903580340396761638243847240389648937416521687821949792301451237968362121629146678778215567922349983481460303372748043292352285908521344359125277125772854233589581754670593283586124513253018019058208021027212591275478881809060815770408377302486253808315084555728977290608791455612572068298965522352810261162138922636608096174085095259008754054329878970807322260848007241449797778639972986510201986915184596955312868255067215340690977807551002547451244057196873486154436501602954487207813891793294947321274404723208017258081635373375194976747985790564169866292482082614437273097050922279620526111651059914820396201102596397078973068240311996172982715496787693335550996823059885475591261413145736413130717876424252672548054643270904262086252954856621193982341174474775012668545070075668048261408083519193706365110174249592514838617155622751029815187205030898853485744593645494722877815560426207027868011458100104409283152615563822431191708618549102686490094182714583836605767983499502602424530665704753926363196356416734710643726025957084758531817166705405028888491852196754993267690394861893078181486843573950514189628579094220084885158665295195228195067801867867255068118370639569969495327753173307068882596996533649699604858785600780520097435551391194428586008494146833073274981867445327200155911273487296417406844520639113860124413091440964431658256452586255671817093371719907633320016756623002912711775724099495042620911392326259421227614408866818504432327813243302969198311529859942545090001666211110893873815856520920415147518011111986120612355227304929556302901290127225330375060409019292493310414995023779043735005268250900423607913542205578061518971235500157572052819294502952234067501290211734466142091708431936467548479893079639046726688586662726131964678350358908494612756389208207153553606551805661141546150187823950225415863111056415015036013393439223541376072102901709028781596323611367574174283704207528075235454282141774270138479476259412765458343800423858810440550449451157432566882299222333901092214398030598287711297436633752245564926959788857515372908163877801552946746321311987621098753428265774434352699377595612288404838154033697214447245849593720283444131291685755989005928614400904359100249794946400138086694534470883282012711256893723000590251928054375784816635711574890510345157344887884639493870460468680036508673309968573794769304392960562101703449386254492426307044389202797069732706216149948950633472679827681859010085158960485199029020320367565855649440420076863087220977280389092728049050112903306579701445438180426021314922963416961386931550495774266030446568962836623893432384933376677515359970399044092625880840744904438776345466220425285405127505673731707615368680709846436901458169595752228613860478158402913373138974523943550462240631362902641284606846230679377710826365892332706385077146065354522636480315715102550667257234436168857940035856809087898169493693202800816344757768400905743857627787119922782897085823990834724659860132892495342659169939642795896233446792902408645819722719953774708320069982445450511083141630168175061076108294833583879280295417260095626025054882507832481435120376216214439451936914417976100657395328449807246233331950322234980575252352715026131870560584534515205438167208936318717922526187987010921412213132311755659095146505474102275707761757260314164987976439948799983639669932607637363428602168158926233028167296495995925614980960506668604696561331806075188021876350009669108298704140785647683718927395750208060548349885800023014939658157528571007931692419908921255697696046359843809904358179234970713035359695420060583736766610320517409366278118434314374059565534542736113104559392685528250420615297488224889510265771283320630837200411393979968562467931438802544284444464654355725844626183521808160712217647994067190908987056420226467040223551680517771998796510614696451206308330990106592663985008144038344785974328040552313160557011516568627216425353727194504027440949341287098685504728852324769498485965093843294175469224486577304286395317342601430458863285419540433585061906705389822856876408847233427707461955627590413681003269680467293465945126062520000238830948016534250207706793532180449517528026162484276320094092232557336803820159020068046037636959000301498984848966918620757194510737727971094729862751125005308276679563538859216502280201957848683921782403461329534807671177034753734164485176126846979494042419946946771178990604402224225619599733917677494598585301538013784482842554925329415501176496692650373534701709475141036159082969102774471149230382886377240726422219350158644205668960404467998683347708937253961659007129587026574361258702946746991975641339351649911911355396748823298758560311903966624225029118113013497982052455798876514330964078198073893797427630027075272071566251917035803967182402682997379727603611156489330097698368020244869107670933631117683483354742664217901615319420913711151158005548293538184360338016873825637847618791499768729975215203492562012933294901949552065477468300761984652714874340828990371288931776820419506142267229027143162267238460798424300904976847779575416846841903563003912171822821875414599095576213688307856621782815273655017741921268527235906307970158257340327142231806720865405639028010046695567387629480792674800674964487235527066159619607716842689639292860519629975686518707849137879753342585738348283515412084229960311563982081448677893721031299627698890803324479140814518713504111257655818269090567363246399473719293187491076755271547311324036206526389239315943538910927943879163924618692897833382350181066844316954353882700714506683323775068336045298584571208048654246302617446701703590042679933109362201959345265778705243673580637812442873326087941060361904553648085669970046110181269270203486971167544558677170460870290394592901040016601226518026775988077027977473611565282636077781720022062870918105676011162086439715058193519558939256429143953321527535869408644244095815694051284993624868066335226935806817323004919375060536703968066788758165596778404446917538838801217884745200865729427257968532611948915973241207096336895706317521237738706646379492175910660403781375758086968490628060727574529515752547005678047794783397974580822068083910570213005683807319485174417052281289336482513542385518897826714637838127024718408167697383392553918640632202814258976595425888477733152757487769755824036450781516158298370838337565614839724981024973080156892283964531526330610810610300757778359932547558003767309097629550646703150017073842793054358553581099513714470626648734218527115995532461966724995785307072962042125295442402818933016517098582843264339919858515037451728446061532371293877144526948774809451054881194029038190170197204341378632116829373594413839248106157685199942915647317512299861153007338593268581976654427422768605622385596531857588866283610756765410079346747751968820113035472587344260954528413092496330580445386361309320490040167352592323261541315153062832214259943237051242249512319682096599076588970065479713807413872960961955075305373957679539114886655129396509139972094661067796852247369188811982038577768714622291363663555522657073743451850918604937553729261309534770769318011926652755237799128437271668719262088989242838903415529146000878027787905730146800480021969968543179119750333820707017637602077980532660577382920274087272049434058825743536263400129116687543238318518204419600995158283020539330065173688732696352217046357232789434102080540614581281238073092349395293616615307473741751916846252698619842885646595358022083692530643268205819834422638713905443553042298323921855020733350964266468457555041606830674930878197954669508348894930449455526037867699290990664239019046911186118634016249073576870203793759832534340366793752047507022668525563335617215782447862221049394810335572137666470035278726779176982530301073357736518198544577866350016178250136792247848577870723105405875030986051657533260320837816366296174843636314152213311096102850177538347497631967235850290639452650976941382814933608358307679891130216836106761251767562251639582795859640417329060698447637808504183834947074181836836617267874329043250818916933883269291947724856986665460990255455693162769488779695290541856984075345430075096029453266237988227584411248686535809933643816478515027582090294927471867929684911343633314967195002009142858719630468145159186259657171425318864128526941974480449543052185622558580426817401424006361537318003414641630813201982186052585002507959851485059186526262607256987543525813434259634844185576927015199931495563787975958341976685402874520797524274028961457130951150228315302666997562863448356096860451310858070123299317372106212276391598439417705042333157721007567822623958443847282101954604810247545619672007175404683224576445843605220400043314990613061011763685262296572190685671865946761018701759792107060750302047028486817579034625169111159711020956934744827139438877649785963513096109488214286093074740213053401583438735445292494279582458972708095288082520077505042321579450791445366457130047464637312092251872225658852537544025610309379320221060264850694600635076608476907592920453894062590038870962327597244394174767469692805578023669905917075912918680443599706595175985103344300637613877743923372498246790253952389917795908760480225226038303691668581349875644814329285630638158858509525399920321846926842949317118663291163024482554054638161469590200413748458157476478691441282007456119181187039058659548165066249310921193346078193048569728261561954175989548508507542805653097039972204858226510627987421900969601771619483325799283736332306841648671887244862312670283012305790025246127482736651812073684987536510330460615416694327074921460384380130725788557344656033294572999909056443134950180395743259599991209075734480788196065772935229241952695541096635338373357416309043047277096474351195487427368569240541248591639396456607188132478201718466506834150621732765929883919087343534464029148663367052704357038125828050772330338210823983344111212555180189729258088107874896627501883293487695358508787651265063795575137010891749193238192131763789766612763789599600476667954436393171512538492066885561480907578126569327343306582290527498999078888711189130851313219235382025671394779455600345103095420424890204314273466067732065411489709832951034260371864371141876960668287897791985246313594204648359791361266992231458652990163747918684953893913936108629612823273911566687745644403544324210906587115132061501508259608042044753914434620800384809763716682483385416330139158796712103296801411012175855458909352818166029661411607362842155971272381789805496495117762599033998585881942961118956272815420235704441971323676798454635832032819777407630512868173740783866728561519299311745158013997378719553942700507203316434662552840935486403950299229921266504462933652988267664955734506288961202926009575871213004768370732612675047482578463268452090909282693783360257750341825102030197485015961514104479522005110825303263409033567824006075969765990995720563875205517084692129932943595919583266466992660494822858324322561455250591853848699677743346387409213434935020089297680985971735298859119877751808006246988236695134818198582365200725548171019800921984603277005989534700010063952856605111756389033290435969541232268534637013388414273169148483975961789789507367151238030193158958876941604536314600207836596025590305422257084978208109992206394046748995249173929576565776608583709166114508074354978269955156852106219699372314335484354710199493010134233410208099850258151373581768391223185865106178885881872403872930596564299453179863871674226951335264770644863590329741241757467818747011750905202507147723170689629089397593992045451782262427063351192591981442951344321178709961687655546970483987306658905422013761333288924128046745568737496270615520376677268319795921880313831274898429164186274957073587405657102173676202144619859972055011686983769837961967734210823532330693629964868111353634614103067698427175369414085863806188372635595927922693560983971592848778881596163905615092549650972584884829390476618904083378971766430222060744262400699768846784605727543844164844281014275711661884226413132052579600101187923723091778444766876344942383764491449866941466434769279974781118735101530126538630449830505398369101110558538960603976466848882684309913801193505774021090711054845969143644513202122559652326882838087130971792552945281070530113714487728509977681670088219640198007395116560631967594331614884314276684754474086181115981255508190387110129116676286877471876018564351985513951146022921177963937127646380889610262763159465611070815313972306380522479625541230123886636997687046101837248532371894626881367411588415572419176294171236557484593263084268849910328366959695759587230885450607505197184864262300522545892387573049771923597094652749729688373874625515512809079091139814742141403112435968027289254328246876049185121763789680899831136913350882396578744077071993228637157183706278521527330876381722240217395902335564038676467012736043808932479081065275502157700992152415244734938116985659840718809612989401138755155124920780623717790720617229199292832038855728118799100082030651428023434534577483351889263858145566284778109662599993414579048771010528260750581027253523320805183260485381258905097640028065300196243810480126902318949332460894011316878777969572234091308966379633731915055484196393759878582738622541624389168482037746009061698753943408423708042128511929316764717846395259356552286424754671288999399414056431972487643725766558224167221885383034731417595087043983743905358860637754445122373172556527224878607747392901087713723811283552959312490135944450667476279463002380197874903339350314951813006210228186717519193827930915748577295707187270594149282788568056799338854359105002289227955583872240848346485690138049389980268898826246511575989015832503718476124036773354970976143775764428812225516782915012210929116848649227061925990026346016741234805234675310520115061374700543571013216288832684052972895015486463224658687967657704827784277253211891982743874865565030932182643878650355709236839835700549577961161775683288480634386180881639329834435874322132477263554127590404179068735096734435100772841080658857565923562373563529985971872212757464883392406556059751517439360444111043771192839722705922827473787899626973941612492740081754285916280031190983127326833381508778121429826050459490294019936702122409685448365641508720947029587542393241361321107295788664588411044529278451776590336294101194583276486788638074530102913797184093766662680791202589502655044906543271962917509009245381655512954677288577250523213773668279262734704780150520042549593562324462937883447097679659456213047640707866315965258031611975751799669947089590330772019524984100123577041841879639174637188338198701430401020783740481782343946629841180884740224816455903580451489385400083116463769034105832498407909799990872751112176618590740905635374830772122796374962710106190232767655748120645900865399214777803774534892774808889798440988564371040242719851564499479530668181793811091266167570781249834656483914197259107491471456889302314678287008461487824182348249745038995679757606793292842563993603022794675480332993502410635510350955363444520101476411774516516302149390463726847641150549572175526546227908385554042269228525652519259686351834872490693094618670873024151755612897344490917424632036826084833774653164792825011471192852746683527819390296024631416974664849052272779785917373106250535918136500250365572725464203207476700534624669873166828368591743513259546499685099543466610112291813703520548863146088794616230267337474937110141366365159282810667674804335653601700298794402729270443446302718480385034044159355173982548883984349967204465843657261011336602598036419437292277111033101842832438078372930167905255515634256434413568909326496324466711194941930682275019144952019294890993045088170483571744270516536315308495064133803186715356782451164951269344657720299095508333944166641055176426155648010957428448313100724754793031607228445778189724407041010165693321831695390711178337876141539736620285218599099996459628417227611890625369270024931337668099559271356378829332308738012115292096148224794819056684657288909016508763407147245827552607267762149155594465101918143290985658805040673103095932903347659973899679775855693410695372299263165306161493529355779998848424653435642428202863459073305070715064830550340594995645766845519015891832355288631288721788704564288069380622434772201649895355896784617183759788385016829827928993499349032517628118395038108342172670393148172768169170850737872393094919446501519109122046922914999321012146385661186432252336219079808043920609793927753361495909730529399234804317508474019908157747295635628341271387390382442567179829023897496435737874198020386959385082180561370048002135637891328694068727121524852383904270684538324025934918188995099314867612357026904029629232890238498123825213195754896273007081713910846030143350599748032395961994132165930504332842598032132316955033029833437582304917232919370713445756213955758266655147475206722196950564319674076076117526959992180042096399903509203505177670059795663005889998723050542664618441175702189576849322806076032918153008342452048627241452424498152240378231513107190901896400599920663346524991794251843549616075946893268602868994558238065021461726593951486680228024309402317177316481557869384838577175138872856358956944552069858901856856571232385690842909254505794897031431511935981106279257368002807790609990034918274468859165695268246339515753563005209461684429881868134916007753386149909915888212062170942975925834606073201431183163506699708763976974948870486311756863306208837341253216657119939759156299561617408931496733140409360178086587767281702581256831362749444965850434641290220859555498500697467076359814300386316041543190568200428571696188217543398438798058523550672537314949214846560092093756446535717240139233359119482591004591707878475421036922974960537531231602024384010710448529014231485913155741289661220663301443321240195615585612723995694947058803432620231294949151311968022641603632726578288336934800426261241366960671950722284276192071260525668975314938450326435703664534792000646530124098357245771398305416153518158881117610854812134926145978685592303114855268411432039075068357345389309201248227736746872539000429410883706448501470243566186822389332558644732814222949277915179731095447021624003547042422828913242392015150406851655306707671749963330019820121598836067214331275874393374307726993908764388419551007909825839296268541467945036112071087351897175917304784474947016903480565930930287664039044820150489000248534662573313970706257783674504151064078618771641749582027314701100374004822096325396178556691694922330253719147029905138696612986367633014216548993669125749675200028535290661192778551986541813228085799194202290670582514556310575770300558482276942001621681640040292118023097456382816249185682271913739576252048483332720262960907876689285986857791667850864197584114154507151530265799084098592160480973142842985924297675991364089640482741917576598383048878210832783415798803937520652716723822693425955974967929729745789126457797913980369751305438784061284385109548143066972094442283344539929245790491249936740404350475467045322876722354053196380847888001507805696209216204026927590426852201928437897826070632032456372417563219492610085881282750195344253205428252499134132720785256757025215663440486597410745870615749715962654066231724562804376540481581833676798039276166760521407961582983855260937941610473575784983222700411005109496076758470939033044808284200466175860581894377900742604482037514744925633618940405466116898627321260003422623005663221384323782789478231906228988656026564049982951171052959168706095478221036493449514727749190029311787097062435735308686276891076731461249140561758888393705313607397840824780075895104369651536504013025457628468949022440878031170186257409530118875380058671058137563950439174172636786790637267861677188261399117229523622414086849080895654021193217418762154378605007236302283635726390916671710579005329112670376031162312508482156770775222427258894366580819789658240709400035600257440650869254247926710637698156651953015584325182804368139345721788527938109967352354063360662462554395624050219242962498069821360580317858683729099288774500867580469171670101427330560592409611151930450166204098804365135256587461842802117911630045291412184844506126930078829887995410847566076836709451995164627380542837395581305933848479656008148882744370955901469337694490085872889598869761985983942997820207920219547736569240308658305751565013387226286607895144741282267099381149282115886156273834141854972749733585332251301573537079602895824619117497642430731550472337114252535196571689938510924888891145973102453519017505634596242543817794019700562056205543136507590111013041953201812913383625963696472285671593781922124939354235185990608297788056883402745222748051411734987665846703091175447841662136125586923146494483308134487613897660422828818253862900031113342341271257933484807916499099677934492984560526248936529734716528701428278894854233502564012537128142369963193889669564167281797039594728048122504424264089099764179010113569305456990838651522616283739799383767530820706647344840041221852907226062463280176312942488058905362089482481508701107792792584912210018447289036081488815886971976574402446405057183942264843881925570222800493333787833603159718838556868106245571936474066094331805443129713783366123451527348119180713503199436163512220484885529454780974160758068345123812865747889752994632198505753639584815300170026746278388457980138378686799926695429606375225504113777307245253772417573715544569808027319461666714988706024514858164221137403918990792642598221820004316256530195287772300444974662955861381750528251360391109617419650156975286341130477165262191555957401766737565168128981529350884428902024163800508711188899168198497755155443880162704546588022239915812711634784848355398879960644602898828138739746030443825948574144090663499911646007317503599432822570213177106432760328251477878117377649303382345173802980540643768899538009730788682736498762050208134188933044847953580413517072728685738869943968014796266619342599607293030849506910223724982327229273338319199016907241714918248505089349186026854577173439936019026173659917653665777540253310353517909404798046922092857360697609670056544696684413504908077362126993751318975235825438139150921599396706853426839707119998641624771929713753336344892582826950941067483548799879547358580443715387614535871186888093295182448921310897895946907094725096185602308394393318287653062964866630058748273682942687237872575675655699532628094105703312640450202130575290599618589756424311102713687145168606278763554559831385412806617194289637411645509473512943616577672306235795127891985702815088149654892369759000042575581718728074042394328554981942199066586715295259449237867706886553374986522191914802099104858205211715017199697291281366597389059628898235736818191791206482396226173944704337001302939927633470636932166736714587089572679499038737178077043919505261945738372443155236224571402282475693115112167397093684966571819231937354729000825429486587521003993392235865742093831075721778500471118638868941665040398171774801658395602028018880428085642238066130301229226952242488720784712102293133182643947238301088413300354562594908309391174286340737350680686857267376088124560781615096002795695732312179276681725602809729360055474128956403499606427333535733636795117399768491750368831941454365472806503952844969463856544425310441050000309384502266837728879334285319164270259279274847501956264379180279460564550415212761380337957766045799354124034877535610385477578205359300000758685399817689735644601078422516832924952834021112851700485305240876199764552381068240238201113542249244021324162930295762380461606007152570269093031631654142231906190786809248347341501245778306675891406528618763536102930116418312599401323058586070564943213560922648405919948960894195355108545526942846618772194394697460951987000451814908076493917183779233679799180267609923853683530518757301649026071354515056950411949629037760273436083980531836763485153063541049744258124387109187989983396139437421844555366848594519101673674021599916325273693797133867512072065296426022861183354905559029745593693121036607462260282190089460324771210655848468515557817599146340105629772727841922208551288236725644896229190390451754109329362755208132037901193758992788438484300826096048273839327139982842130023528583229136092769725478262436524489874598974611159831104945614067141662639781142893415249235477131448729930396832392993877361811381619275502769251107727417901228149750136204304516556280403606440721583775261042784261418851653401163120305636504606591649879924734195821178632325791121216714517276034566473112604142415134024548026483641029375726028930613759695645250914311007977140833833973910401248724228625853349474284439412198770274242818128122816061781747323426424747833282506457261305649150289086948504890830289267715344548485677785187160619708617109372621856684519456772429294632815540239042833812082840179028361102034064152620168568898753732747824394334058352106839908246701341258044407181074249981388527454301051333242658876568617021043213767168283873519150669944314766140009293914850776547426019446468262688612080189229634594307743844104467146957327834074069778512402861504198023633319056861725371285748789937796644318826837889218601131431772668300987629624508082918291210459024178533746788910175446685977795235177754079690478075186754420023199227693904596561816126458527033088747641572026905592817385722716289961742131100884509904503880930863644901569627112348823867553197937527372566296905706116514419285291449568396884125551442597285784864883362328724092716914495349887869425055485370390177851633786417091404158035480018653761005881746817860652778972324376278362843727907181263429102155515510697406840070266526929292807748242748666337484012281564722648391935981197521606785141484935016153841812393110727936893783047881913690284740950797258545295089436253160445087314924698009497394806903620623398460331707722754614661754853510537816226459661790534669408701492974199855451274352421020934759889277039753621441058617970165408431917873522152349621220248478633221229232824665723576439478625412181954207778287304656108820953427949058567981940413572160821727844273975213882119120596806267935758703831646751142615222829659706510155591986019807235039527680310852222168832420755803348893921703627408683660663329829473329020626864061083827470347416555404189259387105678888159073866460599294084736313291764478683310844454182452973933923372901507623478464377150620173590452097914542270348519454694579269091386002710009669955549092407723251420622511173817642170803620472767820242498227229300726209935605684862232721299825517062824919196534777906064284179693674256518939101221458494938482107527746796771249568285007209244333305902320876752262758605048182639563073791100698601754536949213147803170665224609114164560928461341997835165124631216515141892158214162574171966803468148517254011611063900567255541846750034979481188753744223395934666513533978028778887091028536479556861292455025181774446659930298285340613611889631924132807809516382873280870603509818084584153518028578959371137162837222945936604735441336451011153209762176292677720875336075779342964544931349878149248352655896180076167896823607992311376324507070253901390376558052919964231701350805487022552260923572669105370154714552374604146093968162629958944200483260506028823267290213102081841976689549724999555225512822326122076214784888080221866244424493030047807536198444669497344116438506459376970224919314315584100609211757807336251520084173335173441394870459958725070201350514450938394750014968685706111109897855359335091491003871477624419253487456206328858534745316128475700361386083964069483201688246165656640287484795120213302454275751041650083294213579481205403297140367911212358770742690388781306436024280513908676727540405761803473779238405055539370596054822803385310645775052730830626923570301563151511858788577717561638207867890584753711430986372751581185012811179323290517988879705303082339690521583912440984202196478328172333546583277620638928954258493046829710538093188338759742906342206145712255717891444922476944071779071412426525575102604798393801066900452082116649634498753990158216465142542768617704838637857822253371084847089579817467319080337404445029659979510822567556611134127073721689175105968826773414198572085125747687934593453324019066043690863690622776140449585859908714140072853781261073971224382260592650458491877114761991220143779109993624073367902467971042426315632162541601592100110655868395945814528409984656828858645423562566159007358231836629792148338918733132345393964881098578210514754151397248430402492782093863788314911251106579168243561932533551313398727447705083400277758103511826559328785264208471246313953700200186003854201899235965137599893596128968290380779128330149265750571485338725018912555669688501591210989332138112569296522689140086190480853749647975163697852392703296477776291832020403625341143784327527778300874258617160334013994521410700174715041047836693808172060369101485426006266410618766299668735099933960112289164918970778176200432166649750852126289465983961467962580214257337987256213258521683860116333144868747435652379871105857237608666673913676463494054421425855824451712936633623919729038427143029687251619211858475265368624950607006477498615690750937922760526913139246718583576995547754563639910380543801436215214961590626342551512495899111192996792010075612758580108618919419265515509485163721693548454070001672669137542358702922809838445849756941799399968984204966356150681168754484712856221443087793244179602862070860952887229120247570877277686033050699033889008858959846659032064797128083972190493160908903609456418107738198239658356407820818647870831377062618433793513579352704249648346915013383333175157607758165175035385190316523398830786031229119412416288280236041797626617017399373736559066626677747634206872344845031447150566574620188552704465314444062396710608421795596383579656762435557196341452722458153103522745873019139022696972092901646175254737504437326944378919783327213524476575096458237803604442346647188016638059707202500839604117475854562595906359384806140028261715889793346980019282672117268852781016583472708308993573913656912306337869384895007963972707527568103576200834791383875182302391905526973418376554442512239745312626468891478359966732034446829343695657007769939704483362653185252965715145065689799905030136974206925749074577254414386031694464072761791607894998415709292341107610238766669943652927856965443577919584236152430395107119785381845794601154606463549756166485830739554500130023338318129846305064938614434885591248485004080187531605633580876140266505222153477426847359236892492352481361005237514611470685590690561968024507608622825785569185156131638292479718549575022103014049721020065539650183509942961861064613486319600977307269765550909057467894879662940558272261082227679520610899185422146390630167035300579880710547936291493516272209202090132033562346401479273972716715972056705155161504950901281461202742221567621921387206602790505340704931866225388446441692261483356142779498411617873049332284641517416849244354686119908378316233092018658697189416003853675175757447856500039127078551323896949199516310366132405667901769026861348126325325845033836705752828355122665917301590947240513845275651292506058668326161238749705339981528615358099305496492135412797335479435225887960457992473153595086437153089671918466070523882007522056794415008494223822797603311821602532350099441118772545333830832685391583118483174150885487163990829304453683138865862091418218271826548642182473239216459462549602520143304073509609880646177696927036776911182238333232644775056686056121928767917401114914374633255608416226808337130113069680200061299933283083226120187314973319726896968496591504749510784454157267423072796932014137574605112620231875312212179764156441959927949326947563064889989206529770332848481000528020175109735800603376337777119779658242186075809894980829164968627673310190045414765311959752415096482292299749988153218430887284955498881805480057247377699794070861330270224610531247982550923492102460524647138292916724024806289218418418799410427049377957968421291159454859042570864433739990244321936197028169917289161180969407259692878521512086585064011653713184450964783389545836059507028345111724952816392101877756477057782987914996643496700136456850399410592130843966828247559248570674559604574336476635562652667624753803297568596839858175984679009443363629298739533904683864055702673114462989375723583171291870379552037640440107311819535266741034816820463016524027037917587185855034932813089895335735409774826068149655449679006453273164080477128221660924177854851820622242802309845795003129910982857796811383351025870173327445399858205241926466278947458320731072126827727370088262896337614993783293429666425225118854467128116748669035115742381674444389847253993391364781210976821544702609334336137986575103621173534315846205725327914498059954585761269453918269064714918044429348917006746787286278060365291348676486228933408911353915465208225090412937731918372925605919972793536779427128337471554903163925806965475528148217931613308553878894940204742097206336266570484867364576403254087772099772570128352829894378604661400604559052200530303014459379629974176444804398874171967922189008132947718641979699934911856047838477802190328480223697941102885490957188037237925416719991951583170770335431544529795327426237788847580503290007534345270302802721542459453714696802017203300433352526755553395780333246716726108578740157257033715945064817054333339289393478583590255516484497459628848272642358020407512703072827350818115343418889200961032360942007168717712989170981642991722208444093401961407899374367557331713011649595947596835773796341366234929360919706015364672922332869588627996734520923335059385619744121015342599094405359477432375927283765546502856910546834977026804184039867317258060465518210973568308426432166180310864875945429877228512553981201723788917641187758443499212049793036895868812724778982439797396557080371508422887427432937750984396741335419858780446702315791514053006692509620763456770372604440223637528041087463807309100983891026943590813437354604152417786587170455033459365496372670555836974985242324236434251437876100496226507283660975699820868610860214420879834489809239773150285303426089813836396615962770262278185140276434699247200187249409216468894874613194056850932096484301529017631188881033588585003292932644337976976930954597865322741389460469908944813151118319583990424316528146049468831162463668901284989744845034307433630313027354638982835413216319832133884649210294957507093900228414455137235017146060814601292231938541671804964113836751297938878257029494735874603703504041611653192923170259685119995843590822334924142451072400508117629639072871103048378750839107595705365731766580131469892481539498601052919905369823620930609658613562139131527665463102201574881566109237213069480100246438237837667401477202135994495156744567729578898973515410386756309664594834484655209129400819301728280563201949661338508738131665857703398432931516849646243999551935896501141952352228224190595877281763811584740583068224937546807283202914200253886681970968029653720864342881066604692935081788562025958195094195850049584963724415053775095185009543357872864107489106749181179743734964432927961277192619352389028718050918466295432481363302209704373529553911744559914779692680699193939391927413080144346419492229887538991596153660467265372462363336917609266654517178545412551767622773078746509291822045098450009862437250036465629001376995634700757583090901540423456364803580217938259537354602483161687603611788265059914966655231442114561137695671620161969027180982836308434435401339946207793033567134092744390521993599702362302036541906896296346626408335334384334472711870020478556928962741171579403673658956301091707972673150812628156488440097134624180328170935570015466802253046182380043305072931487511944786821772600349120309127556705483549102494639329486012789840538659420418419468367235183956919986343990882789163783178832874453092055141759994973757957202423279018691661149028744116504912249382563752847694051196782294177315736562714501570386973701584384216980559297919541504523610451561048738581442797456775152050101336630318058477737672831865440441351558616532441824521280809822870160884415460831702179202491100411570628006186044923198822252333846735892579859252052333471934787744926113566967163647653091385650608110083859190264382938635705458858610791356599092918096163631989266215080077607217960124732363225421007621852233962745018829122684188257003388185951851161181220575333282275145985956879781140251602871924332332123004627209121173673952804816246703184858148796391078606601839444100764050647663983925710670960393978813537987286896221611899298304840759535885048910120428420610993803098171260487975617348307514964724676148478192693903341562504099086215688101850721773908363134848423832415729492940267301363810651299495910048759457528541487772691685332084560563932190874958024944200431448368686640010115466519804604316069835271755980736015812142806381408236747583698061483448030785088266076418471986994788871643613715671089094199661366206336138004124731639543221813085864952902848719880234012109661176769694587363705274722370822093067928574536806585892170847173074288627829582328726850485556766653311909974302354773282929238651054702891509810733168732822275761502204078148013127140034689472445897075372847575459887037824297488913079477356301108529259740712056999616775997449086770816522441364328823268312777593933950990149227153730623584394402178972114691875594579189653654170151606727077833380909702147736572238019767855272537564347113747527831174015088043141040480528822116238530551258415705055721590565023716359976415633770030012389688032151819766588661591010762622530383937252751471676848218399961076373755465702221298233017631916739801993217124551730196852023739335015264007529979120603696724975727679193660081314075616245083843619575308773742240404398486293949652903259140297112343297224225512930161231132465998443335126273688747082832747487421181680803466765506686351107349791906634598348619282580181671764427575949121042849637394374347428821388543300653190280722646116617703823240260899791682630638481470800738695567720128125976922388666653432890134454633335035315522261429844467820381263665286862524075599652659048258477418968092601304997801821314851628774415373359096686333288720149630542185251993080726685689555442141699788798367572777748765481847935055654937752627126344056420759686850719054229496727102794108661832275544761028258926689783513829704987402481163680512955934215579511432520010607564631840558867282169148450010576393246391599476009473691293785796341894818642159342158996762835113665133972877737511768088321024250539365262536816955775277008713117289390614814190008876159723788136726803389340963915550402905367243240828181048574170184852247756439248100016339964734312257994752961022237974665348988959332567108249321294793188286696733331895914181962105293533798396881822231436035207092648911598238146514853388569782425957114553892613322013039731124755996037161550238110922810546698153718262537254043442186912976424682288715103017492304938405339336051769850114902780977188109507338348144621657966233916396618715586030694496035085563350161168236580673046365983092192834579358646330440784293869035779298114655945229202600618212619907660819938457241518122403602747176494996826176586555250022255897219207467822379972510083812518375584176298469473293570647825361756296760918659102636835112973192191569527701616394592352038722137182926389326596892145744100165613231046569799380754738946960182388124620675901163051865812143180674211892060595654915772035824702659850212168907910386175124329555824520647428960230478020899309351340332760330875442894967381917035343198159728549229066183558457549451865030302494403449286610347683444322483729965706712582875094698322035109483755305042075556481115165209110693488273833062097085373021380365753810055562897524621734962284288971175327286205954851424822509904371592335751552481593906601373014161247381113124315520385760405291744474488755521021705756148149317598456697697851368401884321135288463726199625866031367160297867423092822086829646410735446587129339941081452310816984278833114189447654329911647128789719129899471186954737038280151507722785927696699886042270847098425608264500332180031051698931524163278046026215114699753169995860783320272680656997071522328037923454432848615923870337034028953240099222709934482039924236149735586068751691728172394399329468915781999609366327963389557992365838731121857687352658482217047464402937174693021955049137276666275314830675298651705117315064457152627008256031676114327507882040763364755453694337627617460707526980072891390748429452972554975251079943872751256492038934949559185209956437243145209218441659150066086551470984356317253711380656280308457549854754171914689940384568337743799957929084903517736712087845146006123429965020106916391957710204185687902127112810022436609597217758603101338177665529415162606908789301685895368310516759484472534733139767693393334034395322444874297540923729838207593099950808647340917789644420969409208490535418187998132148315990624355665685454482691078624177078485538287063694324117963370741264651137007747487591424861449127866268706465672166516300840399324595591247177366138080491601098978556806950947957206115162515224530114089997977989074471702296254861131994522868373095877903205083349193264954345982534231155440958747102108648852982890557871941082341727738983145433824893445783388092074711620462054650259214700439977439118244016534100805792521097452421169998040834746383804683327999804932024262347381756953185693895694922532908634077274888901525977611235271219727123105198043587279882934604901074420926798684842995190644701424993712440700547500198873234638640461817457056535478730186220194101859883855602940324511979555676373476543408364164236725389618467036626067934032607116529371446133745033171675806257133661036357237499408849057717751416358530089383633196497951702130545862723819488624843232184673284926428304868770430472249906855469628492960568713858568463161599508723074585747432479741935779429947901144258968843786159822779999444249327773472748035576055901099926840867989149885006217792719541865908558092358329142106556737364308398045918304559331392269553032084675919721113872708958676346550535918306747880792900729042369542020249126113696548183734337405978939371561876407911931863257708925924320733383801999035174283522526039228505174600708252238433745944175263914544279640987562985525879452001045774082115963073659824725910229224345810674952373271229047227815650381724357669323218798870025563503766467113143752597348863896935686902272475711304398406120967414421789519992359618328896892824651146014603052927097308598090252088518983613391746760499339620026427350621224271590912873608691862181358475886130079783316741121404201576594018590622311155629205053762477197162132717684499470694648553833396649985517054830354787462426355087991166893707590944914448046938373067221796115945804098635284926088985970071226765171356683629213548531957677678039973778373846100317555730002347672990096423071839346547359370854361273219435420087913781349058872319815024769176140006342769725292597516277698654920449141501548945538181805681110831687063382831771159664091256232075882976020638599828079486101345429973837983312568919455873520125409735274227669766527436245855371177167808432753429399306920461301424273007189150439254009061036371600146012338763582249109354663113628893289897405316488419323410946473701616150730191157624045188567931568490685405578003643398321910485111443772526921453440522656673327815922236496073210212671945990347792528514862654795458441149180834193417969142928329616980195578374250709875324253986335556553000516863158101081186105087001084015208767263120794393017832947797202431648558688489245659956997663111457151007019629368207438536926009704330387632446302359741152167467958988523267949435942813106798504685846648396152483577778341867935052772780839334860355834196312136184623869222731703463928045314120067472444253607539116099151407548503608215342372701569887124566268773243465857926317832962796869565046971344121110961279655119973813742033186849680005927893655512230405922148000672545296460741576394046098852544827148625766853110196415498066414564002566227705414172901845610696710760137265157403482180249241897535753930973201015721437270986457963731369176033968025583761879469779143199383966236429705735092353142916262775954566664194773529375290991221772139444493586696290423569476879511077072819173457495546044928044415396861025671032203821531957611086293524037575080190663082434996791028750809598526944428458626692028138762026365990346481229512027545412374680959574434337212169499103839861127126842500854147505270064794348645522983955163837038066329454323731847166780138833332696502455246651263096573782156858746738256242115122372839904172136989400408365216709973899245173152587816640221777570506978990788760797127833569387276217573777599376547825469438363682157620140410100890454894222681187240888529049089781705594734926823691917463456184037311121923658265980024448073165915835345887489772193533573225658530965274647797498795691321747759014174121919371264937222281446544507068548361421058720674251828770863295600943466588189424012913581878315181066256432027176680517829438715242280371219503656325061978471033068483673033174801513811603628563279570420916524311007913997296937829794938483551800961558322486713831034101253847718516816690941956566504669385885649259713610891555927002912099925743054356934129952653594838617774671101782778307720479808962451154985176956024226101890403618938608281287403272859029765687962392385611855255120548526779363797576287365437664729904191730059512214142500978268942807065010623133693746266125898008062896325248728165680036596770198282677531764516545610613207947473319769072175134231957443573100044563293850060597826791863146927336536762588168206036999264842093074507642392936776431677886267521248481518683662504861695560444141956549366345802933750673169430398633335622542348197194901595994265488203856791868691694949621801856061506613547696377319310392089961788742439188771916769390445469706610035375623532307301925990783120858505872680689682360849578383508430298865969343359562623293904398604639604990735267931538788130580397533257380602777987214211746384010742013644017052150640961119599763081258184165156987430020845742313214363307934804205953408422823032718929712532782274460630384910374895434608045888618998518375067342240976026895489280241855841465762140711433524607401187221358160918494868858680836764455743064362032868365702824836536200011681858727197898577986999546327799163372999678650107318230124926627479227248438709881862271103105377132042820271059739274251426807754022563974694669748940568623189578705504046983495929217732420406477718983115513375462560910827144515892559318645084402499561813950157724947755236145222675466982134857147768920151769791680739789262107688518043480659232089439331729545958657384406237711707545248039020062490362788380601669337824478657946225051990624107197694640481528324724036363231835705208039561258926569728975820606942577267423109093083604239813579748494736555395111030031721753567419230971425877241586524707990704285603318012968908466758654280505885451459084145225483637782519949762452768687670622180010327454174555501271795766029791775716819677489855882985838397439762292490149316203098967245147588982005164061037933326487035697032762004408781060341400501522356627129262336613689313834641217074201448639951085528038175905596862014586985785817200010102198636525863287923094911092125482507210950937832386916175965431379689398527605459604063579742038644760356759869766475406659214155873238698639839921033580147371876601256647814932029991423345330953684295423112144124187622931855462133785485015803548170606092245584274116227819227326545418882574819972936146763758499946254675407145125525693299427283172116245729217389817190689811699126232903223894386338708454826932891532070875197186972373192198563188512334703729088094735485571867169895538289492147597439064414240092503807604541457313942856438639471646758875637181918721538828869930288553927860339847625395417049616161831405190778209148375889769726580701584883176852378414631515495099434175223181699839578466145239888382376138269542541370352393937833683979082548675309636555205315958116757474440449836599300282517568816985108725913336381477405272920883721269620907377809702022545296731408197153212591764843795954986166790743229055028844264978235200369104738888930583022732411711519863727037875565433028209222690019356952187940091465533852534246356538807933472925893907860608499167937270165261986300642366254509491830022356731538898485128548288175729804662235667722506061269786998565408107053495001252862233310388216824280266243752736574947106149505568069698670475656082411069731700012506424765523176757653432754228311173030841233825599503601899774960312662342287145824817894428083761333127313004923548453293245110858248263578094345043794273896233961555532331774519126933446665106318757943220729746852972532730618256124350740509304937726684330791283158849099170082035464631816637946676144096579622938710571737714700058676871306872875817671431023949876629704552698971506092548657239086808758969805698216982544921431188586214591065445210882354333575548141662776886260223277819230894577354763685285926416374620774713814164875901151858405026465188343102831916543540193554090575964041601975045091851519271482738035882628213232109739102109695542743701536185356211752787788817422996613377454435332261420350938386644095079165121875832909414077944973967561227876595876374585499833770958579736962451072431011274563161897442816596631554880956894900938060824583483056602025383498064572065694036955680669522026756185161647628118872413909445114405605044564324066843461862729536618386108914266462729341762538149420926697207444952445177771535241217811271560310092332496830414444694298594173509139715151253682982666624710700501195816770612697317033078163871930727759551369952930099439960411611436159592256192477123071657165148507147753770218036833773421387194188375197275232004305530470294922931971191000896207676913203173894492204474260501259338381285875686322555775591971108791072981351384340895974903367085795015356910083294174919251515150185838871599185094526351556281351135228875458327520926348965700974852963198908549085961298275610369955612255900422032615721351933379127507410868681093663562655804701007055403855909473308005534155946833898943168179344068919265126183408722141905748801707401805496723006998210194019734403974715139466759235322708211930870842822874158841760620265423008299891698824311959898826034925029770061669969139345897326488959659711353735054504257056886809860972531533420340638050401709654761977464348161100686434320066973325462434110658285917867241709488097549696820714436837369214126970575585815076039793097584333072261077512107482095574792575738776479155567583232580222285325298842661218983367124901521172277834653580149684374585987466744270233602677021122104080270646426095522227192461164368807816780367084710574464306233609901255069190803571824648214841618005191865065569657372021249811774007243171399718629176612456438031604053841479834144397986304562073956830206193285727399031869353966724306764131814496330297366749009907517612949513695354289470619664963483350283612686979714829946476092833075931225096255465897878153290604341753160760146672237631297105052944458187031062116223388747198011377613937130246911723056945434390305293947517008583337083947486778757590710227121947074664401613163450624061664895752204707075014203463411157432222288743766637681227826411006216395501877396040223239211542822682744984500624493676931060847809059056277825733241353787588452214415368862142396040240424398963277620600219075850949351004434989372027043764757477401669845752756107881625554978060812875873368074577755902337825290509189599812151302505599703881542692815730845593318887086645863435914592044913694349440617211207461329615318755350074972587883381726407013860960098526023674778729122040717843340844841516995712040748106372330534953427862866639742218141235114770187401728257163271058238129605056642851075741374144796714981045599088335243173953332927350235332320543296318174518028900091474497968232288512780643322670132536267882529676844638590754620353267140859413426191672294284510561389445606043528803624952964639147151648290527043250265334348243696299102422552815669670518432621665821309625278845420864347338753272007820484265608623936565812691977883774054390928466787378015757414655763234087801929241096422979749826264285079015667410396153195289139837851648930997550699564415861075652033739887228259295733193603569098496230296889091748023816130079782539439613913350193340177151256846910650675869127350643089925527119951500599519277792839977244153242975467576419293088551911726710759410535134137513967278713600707101543924263980873896637904489155435608786022562420992874660427844813670059758157263619559069003691550191885132157631906881777956578172805006069897977339626498778159016725593790970508458278966660699813783188707730665998586927894466157130118209576972559885309164644199623081385627237929249297294288311791652963711383087598129476221185561593151312243192727892464887728513863265289050018410801722850811493893521158782867891947830685788114612567152832759440674319088676739233492236022436570507245542543662281773918128892764170647732259563563272944060420850134497043776541551832722363864894656946819469327382168197728402023235210597571926954809230259470902799938668002448620610431728810351364180067727624671182525277364891141346126768035661897523930727954080722210696246955863722968887081221370157512306351993034433968976275204256303384334213509850076235885517993559054593138461735814497503474650191993305318449881751015169781647334413828578604957552010407835571041829914368795607572017295955265961071088531212902170385714708204973744756260351569152215151201673217300416937493751154576983177864813112221074378369823773639460825249947699574640308005137693744891881590025155434267509774976887840565377659997889026437866974741963174449758766586025429921874313251114465813707615006149287934849950966387556951277350964867227798514483794962915045617727251349736405289937986615493108151066862121625352657926129924042330391881868888947288268743637886351026860027288530766851039553359097309975934620889167314453903188823231290352485933029588661568026782158264597545632759861241742638724942330677022964778678042038228097778405595769623374739453630320446161047489922965013962385807362319611858488632903210317237157622460491896431463026763433465468986856082663527469863486757467854348950603448705211401860961736149394742612257912494084655961382326309766461458905121422735936763316644857547526717773793848703836229331668548145147653073131134541528860866327615858905594217466388602562549688151695747799493604102147484737905131520824374065449459573984089541342616087040961072727727504458692748211373422577207046575602750839567563536113842698420537320008433354595377815726400387273699568394992053628883038796934659119916800265189956300922088930745577317744022330905688723963515029181807520618671680033212826693805706154072539376268932413701752556175934252960372227383958881413677928696195975708140320082381782768680156955273831708467098606353268236263178060018688933218086234058866449481167759973535231054244209561533162561797363085879382714145146253734974399770234182942533936408671953915030701316432011805213916205294898690417340320699857261841881582932833385066352401618858588600173772816172181393789259427503396600426584383706592733478643304159160975820203473464703260223078982917592073931433292439698108526019829343585921335931126474314286000955400887770124309360423020162723315623869305535139157613402054320904058216449807728130487758984339193849563993722139259744106176109598426115561113446386180476461629023955284058149259528807469062918215484285501475800734031969225402018822087320504974183165904730664597304797943112249060747569033193724002303091819069994481427411164848833205845828215380160702170404494033250240477022305178541933352143233773930982137840194357794586149338112275669068493316913060962410286146315616858648245579097910757414054036891444166297744689170384606131786068360437757845383523464036989412367093681757344808598062370022378752708203172704387919333415132148738191737682182925031605572484686302735539347187212386148484495256274636591150609975279394052492281439966505189438601675106601246322615056126839997264853479538762034298578253921249148665255606273901104849315432371803982819069399483436310578051899325984242863409792878694215843125795167873419886588712931395665772672938298115534333882738475253020826944229573121252475127276265104120022823375700195610925396298329873257586270717421229106749243288856925416465990233253761350054295644619030904652275873704593253130708528432253840767492966162961438208730828978466173237800244589170418658689498762794299599054897326246070910680148017437605317154653623151602736601378058411265431641122786766565959073002405748162469654935925538575034060357077487647655507592401115693255392621986839656204346362350017894677774971435916297679392277020330148808041805849538616313844476393002190552946620353884598869889534709451699139665902739946687520033424222921526345739157232521999626350135144520816597234437096083038909165844455131401762310178413665456766226751723102937627480331363264370988156531266795030540384168882471680592960741434677577222713007233704234168233112566211913925298158844834622236945419640092490940953282299876314063346462729320068197918332524004548414190280866303457139123416257886219122594713925789591811758325257340123746728404961465196676458469055637800231003986604167364097791809278243848829146339493054052674763296639946071607264910963078923714165887410105003685642177665457181173117963941862486423350918474513077493085469069912775644264629055678883334420377356598579603968132267747210105504362068369746537021409382510709237546655004065117242075873377397700698521190713995293378769794191689466904097640948244761245956816618844496481964959686207879348652085047164518625561297913453936219103187326472849488662341157076530792567417344981147521032321669195668808391890886292312090667129306412012041006520215917531004480327746736719245482581120035796646528747419976072418489857801784160752581618212787776625379536389621529900778724447439349355272224328145338328537558699832139250971486286631045506076756671884181249161213714367034836500247803603613608551885722934938102668375492314945758060305466881577197419940658443843721146609428184325652511248392217120032683303843787320378419771998159830446652777851397405375576573808483082501457027816654358782679588711096687309292274007077084824516787679225804581183475714713124634999831366057843352595177414810825288043529448774639093514038640738312449812042105793190215101766670896578875453445742756191155514084751561255130974218988092316673762937260721938125001238486065336176319564539998734636660530231603809634956871990768918861644264326913646583404755427180465974685717536634975178468533571716934792834935744314267945252336977035485873862841346097449533549708180233584864898601549573177253097638166177140294870384971296041731826934850051029930662003977998271969652333998421457843359687716441280683356355861330036577928704288780651271489051602477689593344384212054708283539573745768416532502084508520943776421698675132984276051016503769213300582495286163126720109625424381929684079754079552123062251309037329202994300470109398246791523870789207872344730862514018448771599105353990654897285981126310334199501926758700043757138560674628692686133220058031257055176177440532996291098148412808645698355701717300356448155773902585753494040836071942909462367584931162921923674297882296432095674600318118795256625889903603433187217984955580097656503054483089141688977413683438767108193688658602850441470319442409536767960856617765632753436395270100253290118828439486198966877616459494694852263979763731705863653539908735470778433978865353872305782663199077599026166884170893926860351960101699234916514716924265886475767865709910625164172956309153842722935829865340182840408997302700829692461733839602389702421866774907458791167695913369259604364825339683068407045675584764573712984290861280922291276326140122185124026550296910365839086836109064756769287482471215815756974621990780054873012737199224902750075498471451059605218346480332109515127030990188683480446427344246980675473361905977284737158555737926356876995791277017196256237233355134937190036197248800066956163604122662366828354313845425942003908840341671364771583520960080882548249869144946184174696597506819887859068522235806614267798288757782427763681619167926232176052513016026055785886661497120681181157001935046096840614529172034045774652146392235124575364520885407200043792608003972146319417356433722372840116418839894308801434498859702940877351869769302325280671147284228087939029089983320025072808489622756136214968184397651050668301996479293835772412974808068170158615873360000135760491421438072755069691135559680571796237035942356615811256461326056269643242431300359977646854314095367477907893902076747073415904085740120195578126693905273726972947245902646728712269069452967104806177055890124250508467017166750408148000392584618283513029141459243374564891609332357687650022510783538912115289114042094354107120478620138039218283266016648189318088213799669913522461283236650355091652255436028264035646791533234258493559255372715935471836562569030366473174317522386509020779782564903355280459992735100604799718384100307493348961323875187170223648353623552780131243886103550528331846021762283094223752908186862670807659190755976320381561670364879934044417048939137585013377223412844669290815362654882099594054607539898943449418742000825333316634852205888871048392843439390267329191134247068985683685934406678731313107021904651774517172578837006727353714682639062781429925979002092196182712547142718172687510126958346004360215042900026514274631085182237260844400112896787641855524519013699158620391740360105732290117355225335869970958311460515487344373636979852365421293658283720482916662656911600674457799206127398153002307299919570864489824102559383779839014221711405038230093465395517508420095460339713366664200520483217838319046397350917559764056968749939639380470724185346303524227424031562421152160275722442076110083024029076269482265712422340035094059591216506613944715373335774102343330971094424350397936967541480215986058633215130288626843490482338674625668519280283734578549496133209791742387929740317691250749050575694331747897102749376836735888707814219688730824214486118918099792715349518634964706905221012137553293334840930204889387031999535249293648727255326695746453364401015482300560405167330321200815496914056658082445881725581642509585193165328426408821599695950897979807287779326682476427690457375124247144342388809609753449080758743598693574264995850018098447795986400746864037581616448547457714071332023226022741478633474699117122417325475722631825262804303838846764659498600741603301562338474051978799399081756372657991577184182685845691654843439477975179897080890271050983031589107443372850731148127962835579042228123064868946497350439921072778246838568404829076948469376159172499859532797112297597186558881704102523160783025138645003943324101440565114049610776535219886453918023178850570557890406694803139792707672186012171649325636875138825278472944399544448623030867771429228547583339130187613239589135539899462834662210382173643279127344196111161560311523440357690722298376214948265858404855042707950994119548604390967601726900574555776387809484341283178713303855834032918295561281921604048709390221960158784615408254302397394118917731865050161038161212752335581306063509582782602442829956241559529900713535736923846494354947410503238806143092603679514922471074917546926831355423388911972107529616161409614372976029469771339814495621482470563986614301004314968231096884546926827009356450742519862350135098660390162268270964878623398865621582770615081683826369942808915959275024523470836014088474940735654945594188293955794978189403568645509787065659886079482009769358901596012438510635699151547968389471685254006317494445109002458540487520481931136136140295431818093106640472668802132051740410720272198608618833076310660046522554366737804997337073822469540507437472731233743002745614327732325299338700783206608314133970868007181837351476347505704963795421386392781702787059317763431618365069353701266866585836305614570996263438069530656095918896412523840198266688977183385095168081156423981306541681956522820031446256791325471064126891952137372491515856898598017237258271753616583258538486359966628383252152452206451012740840188511338933262641788658466144952606528755213866618526980906072744873982840008075329018316147506954669133643685352072593538059081813677589372659932251636831839566995352006204472132365207952471698690075937180206974540500868078904206174845556345396136133070267756772221168986192864641449962043292824915629926426529721417742246824887739742994864887997303398235698952983539977592020366807262379058926964541646412037473173199160362090851160522372786447062666126682779412312691723685362748386533701392221536676061329074941202907807909372243448809717956280531363101912471748094068939416942612875566663623074539895422361684041449449999700489796498235911355120210856150483328065154192879289095183712704358293281976835202623158072170427345097508002998066860347811720094621645184005121751903275226728070126643303773955076082154925952000985750306353465863967605585757184693839940107374092644761845298329793174457144920006603726919908403614427622036497029327193949172073893859491388543405395434976612624682627026704333532658437853339078988785980653340078967923746788871806126933399762876234529516248562395957372100396693352004632175257194435655617058026006668010634039864553529882555195775767955130710320448032637031506330670266473436055966306262193475398191535643929203684224165156772467752849882535335658978443801994700515333161824478919036569762953208010970019673165700119025095396800285136725838913878308568618506387999860295753976527469297296742039495521596420322583582289525581060433506671805162738252270210233469932737892939946760810221774723579834546505171525980904444947032261272059689758769746759269468927067297954482518030108480510031636136356387504754812948657292972789038110932751867997810414819302405423865651947211967277091314020902301740716267203021480599779633099116934570741916474255469163965037721103431925670990327412952602865647382840363397749422296543722506198305627902622978376909535428278737592901285685158502135414386786305613120794008481248083794766422831132567791861267047822061520711952000460099733123148095559969331497787278514370782289228115765541060347553675723686746564957854712415780193099186435778355606504259119608532190782887287586052959452436039462612106387913715807425094056940592436575302706608677054595045905226250059849634167115870577984886003778928676491100850747956402949057539332718385360098846921054860621405034655602932809378874056896090698469669688982010652512694119984549965566893388228111117770520726508700110609706998005688741896730391825042062726044292928562166871271507559192679225476809798764297418713005649143757134823080061203112962759467025795009931663169739946509636079723652225309032250451507632929857835704748490175910246314607281457281490030224537587001190694208798829833723076671061884333208463153593647515713167575304320099380570398878157580124103333100255771076538617262777172926103076246459859892713957181020169602480329638856108143757690769163476395200083983596254171599431835724919566487011818073899134501481405297498354398563456240518668310159218269159629364786992875807200957971037333300925381856414419560842427588347234457810964294876528355544036909588496500991997872628884842136222941670990972432527937543081029738706158637200004833800130753278295349643881996535746528059150878453849085706226780484249680043296877617696748716427312418884516056057785704652536273424326481435922331864221897916346337951554847944757773809795549006104825441057037110672224460324247830152036761246211103333088904793512721600334726629088352718024651110974130815608000925001156182838512903308039979138167996166230627174196305149399877297072698004317010097767122953403525439609163438038638996759934693027053493774466362496593291998504180215048449365695201370030537513754256663303736958591814306409775712089549070841473528044772079529015393866232934532614798378408437929376071306472553634891208937762368005012837695243388653968151608156332604432537658327416097797679379973882530880598725351525917661097647057655149329891376929524115135942514671617795068993934025949641911182316860326849544829421929548924457084057254853978595811991491264767581083228919933790150820741164053989778074931572740026596690227611389498263057430087079243311221366473629633755492743695265030520036418894655101786377235315397585257418896384466326604289477433675921806899653686418320769071667027666798963040139369070706290957197400022748490518542022579677983584991818957764397621148736611636797382838176468930495202607724387022403591531947954012412305850261041974655517607428453128842685319945356682406550576698652599756620759028817903850142314802083934161696205997270668015245521235443883270183741611604785536722347389855279130538773736654312316110975744954194454960253254804168944056030196831449125471332770208535911860159667186587072951314147394269770548847030875873700145025297178786431515266277848688239820277649656618732959966888726760201184179134906939192307326834858114232167836341042424139199386691671021888800204120266004557645738221611747295420799740023191511938881361693379938324602000636832820490190098277190916974359012664616060253770825355261863677783486826172634066593131953929105019241588200248277399896348369672543162613869062613414988050892229161135130437986407026287421851381309745924123971121381273217433109652286684036368406084097273155642720917426659513500610067818896679031090077239758429861959697704231673634609721423520249936563267328750127635860824420147525320767809690148824722997136107313733866336925008131881836835730218575861986523795089066604659950073720187495110390569173296701266669785679323318806491882159100781649678544445780732112730802303585856385515852690124394975524219229627595798346885826458040959389493654128922506225928904456579100192470357647382928662581778661691410625893876660087558143447760766438846442841556586932976321248211590332955073716529966471743840338863755095901537467814281534014389953872167632823312768062375671851218469588576728132012693485108044922322392376805077427411028639551778729506224928376463022738934334803880089439442184328316840994329695837077443125458739246892362801474122897166902992910823714988368217903627604601315215205189691246390696889489742631170478647887519562526708699813549822093980522725823552349618753143737004124960032174128547077153501889700798515411341756193484496385802719121090055628737336778816981367020164737739429720264606730744659919454156450176596431847739118910509475513916241132487298789085862864619826088595919427644580766238269552474427005867452801546798392969606777446587662875626592309800678929465731786625899178601492680207396876324337090249868988741719981369953048988915196982324878474096878340760908822623903611307562180129812382630289750928632916093947581083334669102249225572242096606506463525088694947417391514764708220377244960920910222892460067070592240374050976259949855765416708475184236723797908902734223212410060075703581311573696935965986505549730273965330010462179380370517301192234388832478893541000567917777506132855305705767047343732961201918577950405789833892510482572250416102752616605545016559390651139738723827501141155469294657538747287558892781504992732098551658260456950652405935443543690849037860040253709583181027012135801909354424295550057301349038223801507078970205358267787817037491361565728283587413758974655647309787326374265466809446937499578746497924280503224194879667295893834637453884068261232445725379484716243202800457447420419719191137326990334813388114352051275213899802108070093424607179422719511468274380682206802425776775899396406669379364167011159911389363708679132329019340090668108421945012858754016147518742953178663465719786676541563714388622050517030185147739535226430601810206541766088488885000094693098110196714275511753239097482526367614615094728586338598422584308491755847846111464749899777013346307560877656399988208762757598941066143899338631460472711534565048471409521092837607860162286185976965953790997307998997481337155896445194494511049624366925222251425129210708833178654285383517003124239579728076432144917959063114268134636248789300293782626213548846340654998046364244229232899669944683440693345773189901996720246652067575088791904141598940909035058925862134983973703308335495264955268675140537580619577365414724671377533650564637622937128324015583868269768757156301007593523996141243581746571721089451889303959866843455827877982644550007725493931219768445803182209033783464957851430858007143880398035612287164346781988146793957163329156795994285935686529038328228130638672225984190839025922969295038860269206267016276290766212960722701530609792123927740002708313336967003782360619196771621504091704685507059385974204843639884621668542325463420441261877082363433590692307382266301404986445627095554427636063742232800454701400852578060742714892224698372970270558389541540305594995795237079706273389419835478194083479568212980385729541915229122321460763955264922985923665687777424754258563164564840869024652268593149844069145041273750846923153187812652618110078242843711321300495296660221834453063145493470769786064626479277251143699121541746587273556657093253057883105387059214262556098201295773455804699494387650889220504127531018034040043488065865194797415759210453613668133381213178890253071711080484347370679358395788474073428180624279586083371995172860584849772843929880208524669056933109335063213346753250817419748031846088669319497032559678961537652420263775193471801840721693184693820635464616946778054918670317282957365669830799197442511853017714905657422853963292789470224343138288400946788741214318484943860597930652633986443048923619781611091376418289982102790474746227808547535951049371929591661701474357561589441305918337392937014079953613523067676120528685647481142635181114713407684453228807460604795559348672814815062346027383818861545944224839241557976537796066460215360842549801892572476968651101134633732607888502738682705715984787475792102737110663748567305930530750876161910509573503553493212085354547797545211101657392943305169062917268742108455533375075986104382147185674726263972682478490784319874593470821117939870374724857609105224655889486068236160409629372541865051160102643533125467163027431826084420810762025233771857916567404792464323820459738822229511451923371826460051323236053522474840268710502630341746815781756043094067425661849195511589315958459338148445118346960689727685784988149241389809221241777848016120663228488461295727426619622246277775142816510979829201626209790217776962694156725630625849317433940452050576694119419108527110142075245304768348566470250603837116385523617905167383434998472005997319974994121200912894712586130951722030657696477504778431544803050991422317992984695543277913188123290467087463255565757215629967718833126383792463097365265116637357413363794314666176077675421290528094406001139469937348393928016687982974979543642335822417366862995019088597587750806607236051340838573801216680033466921701383539274008247701407055332022556847389827678506528436829767232833500908926872007945333855842073958643179088060147181530178732628950160846513667495096412474074754538782465028331401073039723108426402840523601650339894625886776368417870674408219015751598048618629545453867422800949070841311495988705200617865568851405236077473600558676348292458398160665512376462498228242714809851695159066548597192687616842482085113117735332178650342011113751886398146405348399594117271063431040204620749339106480542884312953825163697147965160952412673799307074037776497432602601341746330461803321173814416231067154277141417496850478572368980133107092991227822209755058026974638407087832550964353964178780091618431375681529815823770074669859129454834910443167501666392487691340488136266556820788830777147333780027934617256372890130606607097464966276366166475406001005698876489674971678238370831137638045248952711824817040209790832100103192860871824168579792915532300392423759225828734906098406245652689667331007314638098770334984095061736182177150926013640335763523723353128517480572852695750633607514068408251490088549208753228554700875405641473917039733300747528945905995028999174390924387173987847662347996081121644825978197700293747294239118381734145219096012170337695651653174964474065003371870225716827072904638446803891489831167315300991402846119054579496314523510650817844983374728242213468107640822594343344844108029967367787311843211528181672467162935696858747185537722386313196272033816405119842148968615396870438740122713513778855265670475458194388851367921999414251046434760462987117067139500049340086398662547077328080507594621139040092974711965557252665699866026140852471944300195956493823234577073491383469179663298851295058926896056500665509243475540805957812402272648400773069230829647863864414876736778626272681342353556123001350587188195655545612314102798917930863915241394241815684970660717216462857435468228443393900243601850495524576001932563700010355429895370185374743097437699710080504514674681329381813724039244848266612623155863621407908836505796677462581159196650437928178086535225516427558876994071868266834020190630938835537956840312464091432789657033686630985684681582808531107987867687218912473034014273206660595036439340021686263763370916606317783459238313647214384998973657506826419670744080671557987855863388133559450418865395150627035318615074524149772642367425769232979213171136184535618346532935885886504894506432094292508164551784772892291966952660282611719597800348581827417008837880010296635475019634374906776994940324886426605101616387717704652571533115178357989467773528209426467744661797042042370191389322677438803973172742950975430661064401057883809996715985196316192428990505534149918904760448337956757442404423120280014717169947372204161475511482722075437596002124125502093469028157682052114571839067015237621717959442228360172690007526508109634068743236161291038643884074863481606318960563883602777896489651224170391629371258625458653098487922346365914313940547434118868316746147388378458448028729571411931579974834532290678560487031493782997184028187363123680795363457841596670936629402122168883100045250951644164403274402346122487785017880222109590498603523855989463913573715392428127942734470590169333936254664693374526332830260601193177722646784456379819210267101833807796618577663623361218014142902553207386767200271667808471062423140597403812545332657346138914042526898167159065614973313968568236817424718951309826795599764787586938007208504777937859751787027082492045695145632659660860208158579084406637241068679255313535901360102219724855369605399737076461161675840021827879142569864821050741083287047655631006781892679419631100444340746220499078522982594957690400859296887531568601034694653220578334617497765321339993302745414690825961059371804985602395941045692838416901548871879061755456997841273981014852062230046377146443011567679288878116918983829236313438725092210401483086578680766948396156393930822449229518849682095358951873472241226988023630104804094850329440490535115435060880496492258412912246694165581407890976188045695944193183711887853873311541646219885186356375634572928416784974057740496542669288737383252150515113500852188345065868061040619775838694332411969396231598257536162340751318032045259741332075112232002829721110041227445163948560881407979800126979672666094491865233376543000294304581103836665342766531871763709898922117263847946157711177297077878450961847035949783160303512718483330605582637179217428437695677654124954476410237978670795115458697637852703715960721506394503706939148913963309954277616329986704061534838680105006822640849130405054070699572138121938825234118356864935628999922930552365508242572491406046686536637886043236928600122672094939802472337546580329890377802121899038571037940364774459700722131731536718851410002903104185763466671153134861523644945856745601431927868510200640613797020068655076481434429581802850200199793343956888015496286494477044002269490167633162098860978577387197404022542260362835782851024461877278165906217224471184430532418829651200263929850137937126701857056431291795518894346152059376522796664017165666977401631872850244497784590709473627194544530086104341730434913942955157811184966196540626818013947571640541855703860102517426108696378284831855584204795064048675752925568840347141017392976113285049250441815690173144543962784341337494182144532810610176041034440454018374307570941403171655894599347567049716328813000163897157631146526243413079275447765973464754816629577151625594757529140420383785005196983003570959725987694113565314681703284504521417412036348138017122807277975771483224215317443446782653703993529329523957128554997662982881838610633811448571060572573352361143565802206141154816270933102592862541467390183071020508921067845563115512111727215046428264396542612005796710089924510819272981982394478333208623976715338517735238760996276754252361448553273021558391865072173650725516868975008359752602341443136667304038642406139855065665504414030449211271121313400108674295428761539206369460489601325787208761347289723586264149531682772588930905558614408207967100207807644627366636708235953547481834055963792472344916458955662738996632239010364966694309896722201722367007014929644421860624312299815461413826143250091969069096228290443130184201133244673257857733348016100361551197693208332255272524529492941623496040679901079481707251618915877868758636836959597924378003715420166948926541090376073826192723286502982231329515915243582026728479738405843885448051770994679545331234244908394758141052174269779418594939288791609625295712414710754190028533245011446487746865771365871158605508571147001975708207861646739058577252719691836186996212789222085392594029269194698765765179121279283904299042935288916885541408742216236658192798812287658870007033641313876689159323314039389900196221165725196820169215448732522789528255301457421947137407398903299724103636054116644604021449966674649577094080024666317410820595612809730308904552027572853288746974086291676212756663484777035232265553060142290735699666069096991261965556217432149964530126152526294710126678895770536712740335558007762023374618484340201945313563886936536086911126086472331417140735665036482103294137844363539335714787971125992370640724227694903313873204649952400846677384454885396423545777646214524647089147702266733862711902003887120655949306243790068002007530609763313556366959279676428204974909202010335380213803112600480308895145958560657537993173993864730321123949027625611699317365499086599044806435114441722041038689747908213462144607100616687421190650747367896431728206940493903269450516506768491490736006766072534710089643849101736089683286790263550554390763881594580913028834500814079386664250409652917439932781914022877126231411297024951073227086527280555197120567173959106916950343966589648374457107233461583849524785993755044833674272461553760817953206110857538248080115700926330353465910154845891225510533986153869360281400230552957826469754055552258641905701878936149814800779074548096070090572455634077216649503020622287454831067115633631624473426548926679288259999805128608508403854274916075902608937318916069795145805333548658434291866979856748125400269234787440454005573806120139811845707201221124430512433245861827898063071564690036443988215611859214021932076509369541134984962748605928012676380124935841570735059023870372997950019317733375664520062441351997451711475202584692031581635723968431657351785991472525163536806112741260691398307358063526371503179885290114229764427501471404255179171480526435948404656031402233809047033867055389650314123580375342193474748667021036914595921434249759678202042149109150696968201849647170257120559621984463952229033487634746568632490044628036937690201538444502655236297859418970140387395205638313807792662377625220261641696316006860829875787695069434813355387814454377820948293055916165011455177240829386290016328842291441698214648429530671459838376582402235957450098380753109906295497395462664320026542381621945452113230413186461231075751623542884768846043051439095780396860164796910952651221613458328272015751334590381776662564773798801222627477745115006474099128597294607322988894985421513248183014742891779024968242449057901299330725929290986471139739836666455765608952661405384709287915674262557182408870072166514508580138660240147348508290397966971586098152728625650770812603261391198691746870879209132187982633152966111550205816194389029715674722587019481508244453870287295358330060724910713131852923014250543120840281333182171858361050839316859661835648080193560354256960859815057863696186229565235899772830775725036196343539105635864950803969432487695056631188171260068430421946176465623247545859765604537320817819035794921832864661730377805160886589220277118814874466278067497049241107697111219158874385069981720425562136688470435883040866775650594525089255649577776286616095943027270323441061545415384149173837331223008670016650490730964950054865020902929042187152517853946915395540440414938441760733385846846187248184585603879662770156547908415210451355775673472344861610485857220393966952395724175619861835363241304912749597156616727864618408070810481423833630713499622142421296699460229998948861662446453890807240676446881378424053562783830617893438214188777374786408606840338168647807941382314150801382439366722679857706598249172589476979694449016460787282364672975837863294611480437069017975251436839132591136677015944166030281574032377046251378037951001964743488622537056982406568979528439493301582321818906970085610304762809830383104677052642834796525521274088387319853311809643292883442250378175193307805549803325265568030087043420729682489824057029601357228625937449030178193765957923745063507946825780105384934424556613100192511357456015711196090512665776284054604981922171268207074908454398169761250587098081190782406026484578701381458762094087101988332094370504467735462168421489492194493347204287862779458581355414066749863001714006947722731975960087239865656845707470874100010912998069772635310565243330107743139631162044553924357642978380728669926447171421543989745782607451847420036760200906310180890980141031171306436645706466495580932891683813553276309867642689841089262689849104003388908555637912350280284869832461757216944241294621615700441406234582480347481355867175725432834203130193731534641170287457329294036305412325680702591311010421718779031555262358499741244682536901723878471994129257935324020705502303032064684247753757375163511042762599293731393428393788207544335738320372872848736483167520293294383636730672266505886303432999747291483501117417395766901151569082007885609714857232947462930580314040793026943295275193828469110595128253733352812526909164063178411605319026839219696975554207482104261686948824694110606452709208110099737389519107972238322539074473624400104589348383432512735367843562312273753084406435028953193823518437378651869163530446580772755334512385423622774760410188698359030475693666859533339243700781065322258708069566844904449441153273170907845575193919171202902356969004120928884613313128531675167461938885452262362386454274407068457921222128745019222022650908269952599127359066741212543346528992464823391611258736367510769009116267161068580628846536103355517877470077948738210023406437290198385775733228341767066349560465611026484873100900650085889022902923409764349340905729905618855045680640134420293258611575414318255388957228161459277168333255012934570126045708834718166196150100780563101648193677479289237517328588449342294753979117340556396476880276568918867139875337355449035486135460837474204439913191982877920597605051696777046918851552749655130110651603165082715328853355851973856525797906799153350153045514044888677800459329295925427990167545425959047032138302548340531003536802654153518388029041231278658163318280539428972266621487914749114505703893996746563898553855870013482568689161508412166098997199365953669651871710479679271921784234049052664630047934512980903738057121342259117369559757903568899838233085879480652601493177570800987197964880597572096564214885137809219317373121461157963487520813597130729635487727282268344902233846007613116357065835194655343410133549059741850675152919996339093111806365516448909860200181141812901730291804970318157117899060097250606516606536839234983341962809281976455914081662297626979977620675030663473906537294353051860943853576621733489707923571753387190618596171232617915922661910856373122960582184162096858775370893895989638025694446764910655196831215070590943469458862719166754909799606058618974908368193795241092305342425349900313899976521169219169280069812560926333429477630571696119403811798944761172153263357107081275461962609741856273227322124368532092077588134325782454212056690388188182142626495069689327274116344500094251443875386593686034932488428240824657010789462839326043981788578735562380218569518893642782444376963073908780124049487942375090469507901384103298114343164795838001120055888034727502493302876746840358135393639186851681060321368614319334506886335194978582670690677904343235313039662284641548132177329833963103857178923961463020775669213608807634482647528214732543759844539832231622289796111417624589940436955316220139423701808136721010488131990845489321715737064367619780143412404316647317101306354592299555683146380101195568169454823686897396728166476564310716663243804176249329247921114734678643233563096578187379770256831678929754771606557838420735166977357194694019440219978237119421836867608796747344394586983650474801450887822983075735807615097381508912048833476190251548697251016836506815790010761487041036683580683162232188398341469860872971129648300777388569385087069234843555294187520052794114008128124726954742122029728756951054532084228940904051360879121848157005276166782219260916942535494874172959884113100637527778284753268125937744181666558708737736460328046428855547774426728905452522542397532173088512080475256441602013578452704271436149639969733381195043569332851351314830061781611936300108426629761043771869424209185103907401862070688123133854913720680279579620175327430819282266240907401644240195737509585568443506243821978499352322865049267294784367509142915715161730905451405223031047056433669233737718055712113817310157652857960987576703133896220855921885811748949454035981819362303936019914537575931381734043805213195668423936601075325914190842026594324280721625167528613450261025164396390648729613896907993572955934223668690377003492944672746963071889392758699262632635309284404542337981750731182609242927042048809646345799919501804967322504209022338012347621999141533582345147930303557662845859036259406321545875054278851500206004044423812746381132410371793610179214259194213129671932742631420094702364112960698360763527977883353907646063136385233289806296304287435675405481214585213423289655333620456971519155994219420730582081098652846751841577687958446633045275150435986121283457715562056697455237299191817512669729611821690576578518149249299435271624988393758620586229320399315833598510360354541877633996860269826948084034714695919265053189028328303244699167289643733491196870564842840323657673080113580579437670304668752488842679929108587250245992181404061507726139114787624367180820064682316933895809193091280930742633559476018596356168031954023100745594284742595893117433766624959741469964176287970321102267623496916574238223977590303094887431250221865242610718831765073088794768925414899799291423914353553848468570069325493447715038316127764552146196793523143892955298036911759238386294860619141074636707287251444053635449218156321770277269529943680676525466289178898354902615982484415603906872955606916088910011741690704475585337076211880379141219661933300139532457655450519147904719121799195693229177367637374445824883309879259989409659085094028024807675301582933089323114039992581842173542801854554189520122772363656250852966066753545117052661429730135102283279674574469284834378381772520770705854094627514237471545325765636223385058432235410630165640950953131466389015430318946233121237161885103043230547150814651926156218196962928405805613524884124843400685946607362569421327684420741672770531142813520652642322153565148317604398400011892655175854685731244435408575292769877110450409812431612537502655613595436830768816357687020933686259726347912320915197574600061711064570255264228183644660834869155962384467037835348482943309322612480336477559583033796683481979880720260898471899244300949550464908296794790692126820827975096858162715061958471010193629688800570211092439715512943586674353396370405256508825368390639200519158343493654928553344960647364226824990452965568999237981850747333527717390242590444431887476011896850639820076587640170033759506172635485148803269085526269418859222858573924150733991590282796991792963338855407430658949284615214460448098229764076043448571905315499080885084354826477085973433737692657539908425745883318186191879905313014202356699506715443041374383396886463719710067241972522469655280310365919190357806409699039696264348927550187782742764967948261477464700374041992505599973604524602563161670266356780559678136144445486379188709124773147745643531396450294228076155100356452606427143139976046515306793587718431590192641656954463382122354511593705426185547324341798481623151779029467879971368831544859954986860349555748740379043870636742529678667342106949192507241882149822587520599265794877235422861634777236590508346528998220331217765743496386440084774374292659319818870950863736204473714016519473749227031674704673220590650525207193927954862017527031628691954878580700571698816462538592431146824650778440281486187289268441137828911275629624568054327347872909736424542386056582420203773270030908671001704800483655936610424387512413723206492517607044113610304669245266000368296522871571407346841815705008993650086715669707530092762590058496702641808993315470317634227730826704850059085284903496120107247930685718375832308365460074771924961431542521454713156305319687763000734522974943807456261997081113664474982071326890502715584600572801613574649989229845449078675842086867122184639391654183487288370254540598935301818918114179438027300683767708257915027928176233193500123608372200148177596470346942156345697942924387901315753540921894797189422512198006425139931244234715284684324604279179418095162927604663843518854269571152218871413500107450624719117527328137164585646823695047856007758481153209704688719189378895324731368504188726818449148824703194756391781670469979717795471857222532465371430840877051976005644914701715674431834285301838504636508591512724870872611279508705243978785392572227590938677384656131002860932337986956930325726356003333045833674079807618813366597905900239899819248533620046124535359253529266582626002416797503710439980653443781231614016279205661633852192182469201241504738096634113618145632340965240192277654849001749172458736893650315623677046750947002215439444601549750373982030900799212235600486841268802847384025932605705833042168979910208485586451810514848961771549966808224252959657589130867377040896822693305327361141996054949874651879764840548995835828386733808183925364950622561465290479141640965963868290417773493670071184611466285150836632411689711582458671305402992739257201834938284843639369162205056620599713643889835062616875457434856924004372221583323073849010800446663359830211856473209410913649389343015189287326281601886995416825254124433074451806512505507111235987050087617673332977609542672799141960576855250637611047447049210834469858801632138456372272631275111553049323225708983071180562544782370391682622413849346550734056434393342838641238165013778394406564914677437104133969646041262119571577942762592293693691783092633700484121254684947692124328997235267099175719064514174801401740215117060566791807692239375702034601785708119594980777149980126891809396983775680144620415119265386476947213153022939009484381117181666395991879455742554915573822053126063052559618673080721336501385584112324325007717295410530123064446638505976129620426640227449919530463643219426959872439530213805938637778711835633187810609981386159017997525433140483643031833905674669514321723874645921818706070140396542862331056347086237772014807168358880321276564275845539397819591710860068698006502006299452299533206932844844017564143161129875703185188416494912191997020109272390404275155484038704014507478646413002717139637822729914644270460645884255706162173753139092098546693474801382236392387770768342618222496419007207014469338796285075250141570154231325189775832691482050093971512471823676913145214181888264700575235650060155499855047880619063291270781665566832941220690967411768076601072953597506754102232899357726848895726994493755470745451259082035252044599530314881013446767509256757341821811998363220415735751332633632058084436572369472575616878175162938707382346117078130309482684454558930478993285459350652308721481890471421311724230340331979473681821122360819870159737371116992831343817593502819151673064543012730645875657498679502067879980333980757291157468558495819206304248108567129638234399679621480129919039495648463561530433907352224140131448705753037834643680414035149456778770408956048519491719575728278913689228993377669796716047678181681617875128107572089610375736313491674865778970539037990865026014719668246633578750925515893844035103882469230635546784226137287638828829130523609539583746690682796219660037220991828242259486106288119429374351791820743011887687372025334332922874059486228995433931798816901032385916360048445848077679040706493343802965951883155937798300783086735452797871441431029048943972252985638490725002396246780600634949242763627311760113778861852934849770312015989692562003833434553122505479176595584458687446558692084286444599844104298113046184126480514618817496572819278931697259366591690344092385435231300456366365525364886925994657970703986298978538998945081044040300182209323758613734948619209862115103188649343365461706528524957184799091593590886380345471664367705567439527263638482964093919488188539563663685222260640812949393424526415317468261618174172487054442781975400330865645357093601112152153852001515936367302359862794020895105204454833683172669065087041150467351451748091427065694620118890724566622358582104997774056280053926913381395305865504824564143848905397746200429716166066203198567121237836812819589496885501042512368970543729108790927393018883877642438109033919067889454979574148256488265157765107431128013331313707160169843497994657187574902736796359695327756308046021962434313482730667889742604442097527564133585733018952808013037651427029073661130283139433394342438394707670875857761812683042057224546801229043289414132048081980927423464211633724535793662159500435454079276235664791650366092747551100976274314304777379826674230911803644215013605160993750328979250152947034609166238441311994604434240315098760298645044423560593978345638927065443783326467369356776194149100400158383438730169598169938152334057748244089940220771575925778373220064002634839487588855035786590483036896888135139139480856795487411060904096262171208540807542283204169523728106719369760978789417684990342024679798713023204692607535868912682692912301491594259527977407337204477008980366598727723312459621171162707922074304212661514831790066593844273124018698420657812467271109494802795256547541661382276591367126612846868712878723309845333613296319168952004705198358687911232258834219584546138543051041238969419504659673302276987197420065897859891504590162628699166330088476061542199861546267307798056304253259999468036226961812403526338218360809849735465233244331225868507958506467011693730758141664268048103775247793020810628837306463314450799508258136122256259538762420380446026763489804256512453430094689286381387687242007347129849019296878616263924436577713497092007691020828677826184260642952156770365838056837373348735415010919712954656544997141421269847736916926344055744639921927482054940445288637179677012192494151337878333144672929494032742955647861025360568930854380994436972190126344821371246251951262910325058205621829577662435689346058196022182084079207778317731776109328011806801178518283360403967118185200669778006985723844995795001439646554281958333909101745584161965053337056109304868917086901813874745060194715683696223511485917314820829124708583460446021394061774206367516909627149630463940184819222367025790749071990428501224438233359416705749854593421981225150498951778933457451641757213567496134915423420122336160329388485050896240548789646408182068882316661962998499172799066355906168659379640302710968327130767925770065150361972463930078461542066833151139286393811604833748373068787551523862846525706447075407830826965341875078325093710984406119579939182335382769249613326517178021710754451073672887492187748020294946280669089242354712133500588065195187623196737673905177575055570525744011974253271194073638521063272259185205603309249814782953384551237977724333706208922681189305839865218403903948596895633441237110773731529269542584411839898727765401987283731801778707774316520915210941757119706750975958687424359647435562564551449630616017310373017778508009236642664901294019589794521704182520550793206423369028888359045818304332230075025367537185264685526296517685981762396657417689098452612281436702771920650004570855296354178578186736685546238897618696903264528501775381384751757453865738192396111371490804742442878165107383046458970568468815700404325521125016744003207457130141035840456162581637648117577323836972420011561384039826364241521855981855450685896071666966523460526889830415761091025646304310577750851352094973611853492084706389956271895372356140194699698748254696343153973587265739204189428575811258752149366874637450077418823256783122168241226737709836249131787336299477104559548838580754689123962775374171774704414662761593718411358964208207189453526065369939045306859139801003339689122977368175906256406942781234239924597876146227047183786088809046378432419054630249143790821097534869843450923151306079725858033560546833881827679190512758651115950175903405144460118406315226932503698066330940116849753777191658550162922763433677206968493477621268974787273568887359003263416642296982252093536668337501289594271948626090316048817750940658221361651759445747683994760787069591777610876434348623882579293508220778318262900701672209828429344206719512784315790339865479494052241549194584761327575576557138230624340967125718232841120973272708354307171168005488838827145299388867709947308436694410104039208632449078461883121160489194258366239912694026382175556046426275674388326326785501382152488539873515852059504779144906844913963312123061177254514749031120060085440960904579717688058097893524457704086001689570886928959921816076236172910856508483735063035758574274518735004647070371159138691632669903031631357397214498004361854995769621827311949038334843997902515688893013730363657110843402403840180174399497995988597374744884540913709946343265050904623872142173117217627369518311657956215159662251502529924272650030155554577121563624286073087432606372164962796685188001531101883479408290391067087253092259304931694038329044795928513658012507304921852686439437987450141389658590980454843976631107527634351895945286012901542152472775086166630396557388263447474012065120161931046742278127861545899607896247691521372170518652176965592011163805014591465752458687369621837378370212374260962851778026694468969152052121460477590512601476278270281698929134435402248982396467480931565976887316801309395008189635753467769966131312624068058102289227405045362968264701169074856257902804204509160960970804993988598329026510557618448784232951488401847098848113511388115480110379304266867098670991450511548492085511499822069017560578682235215236282318691194222230462714668068240472211910407669645186666355330489189593115931238555534255702433026654132132841046037906683979259883288546681535463160596699329229908670685803496445266825846482910781785331279081844515596189208289854371621931044744752931036406121117395457067302586252128351687604160465164229777890900642417385355415439398768982209074599749846961104224897407138906630920729443237200793430001217833416185237418295296965699508750457266128896235865360077906534725824685618849375592297856239717990640172233976698460518065852907709710813027892122912954982138021418957566892807175729145638787780124223142963580957827433511475655297649119305565760972107611374702059949831731945000109005933056265750504022727572972508093915977173776292563635949428407492406726273010071177308236947252605570997521909376428125827857412144084313899428138277473355550934356765754928812446263803398484205726614027263196254855965086436586849247138409887542416288004256026121987427522654819676853203122030051752573034682136497298348361796112880387223026805773929321417595269046561655716429050559363785853894122769479505638849944325635381713206107192839861344902005373266948150112724540989830828573918059992922073472727510498336712635061155639188583210295461816498579040600939542125645886573813584751776953827408378173747364664407052611803720654862210945990382385468745293460947876103633331795487728248523783848285699686338122437006184737022046924237717912011363004228520248681236597427212180637497081965256300939215523710758410237855664307079805402907064696849438560628508124300826527377402549693032016061248462975821629432663494154840082921252150530244485159605231350389889240478209903745226596107740292314708981765099608388598423584220370006046204582502426004717955420131887799391365558046169091821049961899771969447975245186925170372369909130622169558662162142483720061704845486001451792928442433629356019036282699873147167313600462135745568067580377273968349301395290226644868103276802485818841897104738433802179757122431820456663566041977768335466447989124396654259128066947255059230275682994198136301708462678574963029051455128493437987141674877997277146850897736749906334310073619177990780645394023119897992148422840420478746303362476749951848791574061220862124152562578753590601369232323971189540330226277842483764657734776954287566429075544716624202059786507912248855828053374863445019956077729205764484590502469072720717187710115890471970731469192149244148944326815243318387757877330453986474208897670837066568552546422141597492841975525549704560489754145082045388705787193999350662275713305529619534071772175982589353867207331998305527722789372064643594593958416698093301627047050276583979708052137679677178602905812621266141271310844116964806110073454680681639280662428343397869880069700351073646424317889793055719276837164390900045834604633588023744383049341609219264101482481556475225226922391636815747849217659182714710806453393597895401307979273226165441928319920940445661267130557698299555164823384094470379105124447019812556807753558400475375996587540354456491019727483264595718214487105814494991363323586203601402339657197449381223646888727677178852653104553019801665289766443979985769545314126950869331084057096142704975021049216179483339634442751833446000774611948450163203436439483429366367058396602520500857486460706049527648233063320899403647950665648840744759986634779745999009162155249893351978535878203720192550602487179200887196148884033577783071032693252134233841806559544603897157780883056603956388981540751040097534395258210009836182896560228950029050328301684526893080996099435406495106594280864642032377040553121472909342106238167699884963926148799141224181685370193742600620338558585512613696101172412339688564142180720384300710123984957612993444830291128052408830641790343090898782926740746810981798889069916826553361555162621142330239426251530184108798390496534197951952962183276608004221437425874412626222579860262643750979158964022987037885307326322006899156054181010812867066877743328641548645803281372462308240561147262818388818557883180504221888345781516996800275444137657213252856451683288332419417831252011161877564047681572248696305117220011802114430777720330866576413269686429682436210394634861040867135645584458270626073433833042342790902814449793858474876586724116661939446950999608610527309129239244237956293043575625234568096541166389574755042264069306978122159045639902402279652469931455871284976267281065549992074439459755009730093264907888113311255376930173790321376349484338160166022128410552535647003476339308648630074197941048504593318163094557723200565122837634643585174558730460696233613351589436622846641083485774968239301570671074816576596077520571947327342217879645145349259983841239496554988454033339870037713255428074693762916751607191410329069445699631763295489392782536884161812846424536183329497187133492629097665585431962887037664805263484348495632400734053251783613423050056970895665228563334470694779986046344991271237904530297683329589373746156642523731861432912626203389233789589582027181733927897610212857281105173132524521430289924124531193658724700901100618893029748274727380961322204880314739137176780584925381296558015714590408835300148788226636547281043252367192260468700866886246672577615455872017561655063516094694487183972005846024028216748804089983038599503247895663316085782495078825380476669451008691925629861774898699820035852600184473878966778643420074061538918326443029965309358797017862428681941285572795153947094011182902399619072496791205459254441976795535930735021797702885525013743869237074159111501594581950829256013719711661065815882979942104791480923811647343299826418304747317097190595122534157449012647495813983279682166202081589152301599491447345895937721153438928576004910251578628947401217823103388820884494762635012675463102457540255552036432758249802196015553334500811168765145457539501740638250224353151059747801789396542507288094831921115840665486158977658036325768877118157786230436987185548644601568322831749327784156246599367253741017928322260125165778849760155047731587856863670732422985253428239964649850364133233143859294508477967229114109064273400784431344687771826722216669063579237564725540040746259004978750954240642544702059816856458500343454879551000743192534453503296739719559641558511698379776190979477214233719882443558894495800052871889251875635259195155856225869021911416655594064403975142826257566085019218682221146817763608592811738393164881778996699678680608431326211053193366878257568210023204888240876760655550454833904839837319983155674550822598141160822127635864692770535296891278277416155757678920191769454915754258097520198508580389059109282349706782403493245028548419564598903652817223707255695269336216056615165029960927045717840616078394361213535158616083466382479504681918885667108707599206987412148042051941352300250277387377142220477748161462879318762475444805566160765299136556403754702422920814286924359975731806061410890099270694161321134226625446390543651987724364821841314043835000008158481053189639809265745892927496052490662215549103227857366907824706833748024857884881660207386857551524232093246348296155465096004595136004900941055347074619050356274157360263979925539237954463153076454661971444603484900522463365318489443051434523432777491500062801075942049911162925942200819035676743666294848798685265940087308713016010164148360405519787512767284083333272606412321700315322434606220118915339352736998571288938838040867559543584376180620754266290199391798292155016428143502901528535953031826648345012443628026363529503839630961810716829604528284590048371117617310894925748135340814368586115791227822175833897968168931360391976058150607491548024798638636400620851844810371917042082607036341355003824590231790563918465037745400786292623257204551306970732423643087535448595021524346837292182269566791076704153472533709580635171521281256738993957243497002836076751935793192053179210145766440104864716998069166668747209256794926543057394517747335541406181395122568305606736941431160654575842174921301493449140775614531022554527541683563901062972084806011217916798157702114814473747516294084130902732323950304491352205890762393614085628655198520182146548672563218217425301971318042968861660072101070612853535738470586251622388196817186647986731483856607849266288101417090775414142323586308510938744769742208206740049131344002326838545426072527010777096057150782664294688429264030564161203948453498371412068436589332453827209400834950551491146335954375046211200825146998850409301064952575285837485337525613112625996470601711767720352952312454176457385012489246249695426776936749230112502217672471918556524858352360441381115991219722032737798897139267120949944905430930056175458007445315901186281526681521766685439063910411546787332292324099511342005677050740888731948138042353765500208246344890995520602898476023814767371956193641609333432816199802131045888593387633796919362913081076183595413338343133621534008628386586621728516768346716621883957571606460923649865559720951787981068850919761752144260547825690439190988199627956548688215935020135139025033557612721775592019503273579423298194311131993133092337742534440202914311634073738480993558754913051196320767219082932271175241315660422922819753193533334865331342758883601445611576025470538107800065238081022011756283279884530281997512040785124837375398933405276418548857353434883375949187487152231846985473936327294033925947830512959272372733487373097778486922812444660872605112779298648342842748002456270181875746435295465174591469695537253110031458828242803645070019302451443682042480222603173673367631753990674884414705006152813602351111972202205411554322918946654161482763845128177766113345217150639002739185770118964982399459427485178159232909528124263141051322872339504328712709259017836018188781352962572334941993534375883348255011805278763533687332753112276885410986867749792868354059733825034436225156080212810572829503347179529099348277307918200955913748955818979061821689775793618606740921964692204897758229286639261669839646770325785956767768801333293927145773401136859856983971938729991878582953398629121727668719011598192716056122434940161926993671026839939983937422110355324526200589678822232995057985201844707102834185953802308392706017676837151324872651375681100497661504998857059065829549488399121554950188984163526927906734192271173678670676133734427273891592285774042092172702187668175291693951016715199781423031323246775436435267685854689320498218703228723483114536743454297963768639561989234476525460645099267361314153306409950919997892239740648108765044266629662831542897666845588280005574075749296238087439479482017338399865475838197897293260084902221475267108850732068862693251107334952567730489172115599064346543493942494359337795033649933781712946372319728913240238670589488065177438148355831123367971998871058819600657177362124201673707182220839828172073247497138995991380107445062766152940966591919620798721036166194778050933731276854599876049099501320200277427437734835764843367310383722531426296949303883090152950472900506143070403681803581950992562314428231169529483989572199613458655034779768267244668854282064139290375243749107252608579410177471462426211662947170416544464221725252071201175892153349679361107233514239440657054864170723961617768845427893069821133287706148662323464368796413346834270940350997877116931350882611510483921269205376585600882867711901566675644048748654182270854819641101605297423190897768786069019213051631324768050048399031209388003866349074159311905994980448390950970077206344170466816770237121890542600289732026589797436850178528359560397377243922042166302425140016811089864769128320718299843323946655498200662376988383111215420110776015457919079240587947019180461098710889521103779646047258464161048479041730142187624767358297159467657621065279014103127530489368370730564965017759757826822245504424077578225385739112141653244236394666114433246228762839345975795456763893538953175056748707984875001487318954998753212607631843466755138352299975190227020340339091878612432098738456495969128563070920258236980813966889581730816968252426219481271975561466959408347668847235152265538478122394481343438989377770908633820517223655319376229039220826794016423772809640107923780104017826671089217081180343748359882288889909754620533280158807312759164009823395999088352669539209732622196207314363574343543837796472100629157409201043448526481532135441794712985434549254196283584163648501716821846942375473240409338403021493645839987164850958095773628149593394726483415649086772792359084516506455918732500958641953909109631665061442685395813597269580062886638979679738392964424088312128416827073770189481653529997055955022743241478085068632897812365026947144794871453900965738581579017739626736029105311622259251777385212358791972731616619334186735336184732080169147343617554121392501892675916222093846312785135492992752341085236547727703513433839150774361490811907825647881360945015907881151081696482566194445666416854471456783742759650441384513193501614137314213886314962178914253946215812273652024385450225798357735217955111922819689163994786898414967611821756181950973751955681873885759108222985386179777631555629799759932929298829759163284116076715618345332726839575585880047796530956748878324733518729217335623426672325667065398447735005351787299178470159805353655762052127416399352140494396680936902510223075056179834320620441933438645964502828737297340774465705286086798806348574646396582457440828284588454868508960265936971551136045580081485212734907667575849145608249153539861233173697823022700476389456367010015593712487964265700665574336101808859333782389142988025424185326128183832557436876381318481966144877753684125780462307145594893197135283891854297305009782453911036844317634740701077622146898363731170272264300027177869880144375589785309773658259699404196403495667306570592671946196255333162478035211590002296507278179764459236769167668795487632124804348615023969599731202485174700454920244341937088378738304839661026801493980880262718624109918157073500707614832960259699096413951143789774484299559954106953464140035943005227847385887294276064783154911352716676735900042436651714430810227159799930811282426667125263530595971001432022860458656159989907837817526271252505473861575373636862908448188719598348138813728816859391764714938900773780245144571413525086770579143701504183752792216299544013174141502131256137740165206083155153620525810913896757562539154445609311582570275671883657938994443157925468059735633178353456599927081986344952380914874036242818906921674838018186343674455853951810619136078840774491396182304132579932665643974843945815823297216877900497914662821672072479973392139312287342659309146188840093859192975754472422271622018040845364050138628385933474094591799359353794403657798464098952221005414908261419575777529701168173897626709165657516723813404779419931058381970620931600917084285010204396150191150172968287943542777151920837119046434000556553827687185020337964057641835166543202459215776365600458495537689180682283360046903402916763711430367989970853071957910954564004193221064562497596485273801351072040869755450636417658682726770829107227770688782126956216873253639412710987263786792312168133267156521841632314085937549101768150258303035342607129198012454494491014401630655454470808143211020370222790961291773920298740372948179451305291869682581737171311049333772820560214460987929589149695241225345936451206724966500419608642721206270141926706247987268790061516063426470406318134422603392633720423298410327156816435703856825842344915800104409872559762826665463178620371617192960774381632434235307790328299450652833327713175637324257577762265504480120548443233667489430722292275215510463127735825085105014703579899767356448392900219865446812047556148992213619062200434596606047430759447074988542711514184943520302916228765213443432351747170588765615238766964765375671755502161635623086159406622957040365244047371130844487377812757098691955312443010043123610848118552302283385296478370510480337700851091629989348888970243171565461360541332854963467272631148084472977306382659955265509472911594046549107045057779471584040813924504777135692090311203203586627393210752741791479888211086487548040081509573581863296074251250061139084002481117173243738270276787620568696611191702631964663690638054695401633008472557928073632757481097890364603303367628729246895096675849645680388028031126138359665528043489012077645262107856356394691191104410308394178581500172286919050803779211241894336347156533707549333754608991384282393033385940720222760002096171157978968635828183515916211464866159063589490775604543018883728384682176385203673735296316398884695076142713770058667463065142618770735263491802362808969321805331912717095825214265895474231239263976350018147606102208252334198765349933157897701755890664171569575159805948899995514901504047539927662216168551708178544089208763448960217268800982545035618312669248507652463594028989487504514101196879582935749880054626863554799230490002370998091353111572763631401671486317777390661375570905287826017221612360021879740523840008030670516014861888173649075803100527037645596708698976142766760027761035826865718012033089500990610677569965339790665516507948110868459686114565245229763779819492470739714249490490990863889063631037119831615422654277539079507543064433806817009078838212333630027625852936469107511605893736120375977147639994716572621174288292587239592128944725548152817298803338557931908941910622494538131187504102754337406459566736946132663015346766594698182127438128585586802412801973041313162704171744596370644117540223142607323068944871881121888043715859690839145264189753307506728047125395837151354003867913900277126338302415552466361354897051406712029530288296690509277767492261046716705509647981182396912434317512450450016584575963494182368343839558150233901217748747423973459678246484456485984265584040488492042579133270345784442371991693746268641870863057646039267053094403359735545622126818040856197636619621226126129308020177810730331580803512594154840375187522398637966345384288993407256714294486177105182004773007143290704184249978915938868577010907005791664696268311000981638079759387238141246195684498635930006347727077195812409954882341097988305246933437168562394819404640145950032100366612604476484707053467028798399229310655574172487231895459067685905584480262868858717640222541431720600377487663254978193438154523339519615210697918602924674050682256705451021707164123829922523343025677886088927900772970673498592808699121455863872211974710957505731346805859663144116767907695009615432685644451822870854947741851332862876394460330470753624902368432055822688623066954573238462738491828357803872208419808596562270775306400954713819569767753415012829183910774555377873532817788328765447626418552213539271415486148000923672757960759298613153039500998390326144994483164184144910565343640609100210483898457676798160897636200251400210722366307302792812753399842514272508107443150223297892797314439207704435760559652423137235317167096021152098474648735403810006814845010430133452806056431550097529545614955319739117325432338017511136883332585488538985192043310033747684630351956804683169042029510900098393839197482180763644892443067934769881492195596617427611623851660625922796091595996980643001163570200170197138533107514353518994172871662002758509643846510814870835529268260138470168892534045024652625942775287508584588554028171670975879483006633835042591330283207253416773638376187852998449758399426344909089978344305658956585198575436652211717978256483456969664017395438358623176228667697036039412159311690252270543652421593133518444564166742427244284184315800413279831551561128009099490220717693810523740602381500930142910566207947013623626957174500809149963625489744198012690497007226682476862658089040942286373201241735186202916241933632697573960138059810235892932161425302786054105197289790860687215231452097376294296172376017953465844286744144866612858418895805550716326969555738576790921814045186847275294035887895516188477964311244251007382844914150082561644045104080281456804941055403866148315317255459583876501823293315979598298711120402079620592766597573645754092501373909467142984252238520969277546597342805352721280872738402709456775922183089810787243776646718752267730385470254417023682923673432725980836595273653197470017146817744044126651140917473305225469554840498991461741320808851695223004436781088653324903324922410837603393713395244342664425771695387466007373137000216062252078058148583432778245121432087324835168450706934733498944849909632565048834818260692268471751673307158785548911800413228912270010176899083835134688203289090965138093737640799923631110435134046149953314499964291494597854918340064495974280208549991868274495588037376108982405959403317119367816600567207872325436126631814386072633236619215113656866695757237184982226562783451382976383776303798842850980521387241721266947179142386365012517982475836762580837362056233862362087209579691492454790118361237276889215336595939146938689484413348360600463558163627632325545829421004420928590012242245751509129764464443864809191937688112247459569929748253824611214444970450351195232823948150873268719131242542826609924108404600001900312698155798155312805178877445128412060841301017385504621791285536568228988191421200799416363078874719974314314075248451850207576376548264709723480611166114774629368107926392549414235690702459773443628960576489839424515869160390510631341906880242492297353616913755104300813757351363846410135087204131211026529122070761686155548737602775549839990707345802404203163605901636712050561488250354628105110390241238619910175998337539012829232319106500082699011602533345357113988346043115346100702810558758840244002909607503695314621141164678712764015682474077327748610257641647220115703727693466596561383914109966258326918050392326880613061357041863249226728501829198156850512303734901655045422158756132131356830386424999388622278058599762905218134017045089636984947522766503450401893631906781033780687372394956190623821410203116628503018319337680312174610320995570883427769322051097325838726092675054058564881404288097988655911914460194856339381481445111338499703270718846821684806071976181454720000381844505735466081572150098515766359774834978233311524943253262564682443866972889181520082662095476318245704412478656721612075632797568333159641650059881814843443137319678608680808483767899795611274163947767112165081902637119320630789113709656783463255907526509660652937562083903222838268822040394957498688547885140530671802392234678562773484836857032590154542452319026566484415231778615979066055473730454322447628983369646899509151630418947320425558102654174078618954268167805624374323465468896165519885513558636351251497058863258454276144904251532652546027091863934964416259949122409920671125230188596794847524277349531336784998063449367207475772984297365637048445456824481867606277434969005237455567550747296097508648177027320709080585112451869954000267037973606113415141500417357799591689468290856803485613644156801377138040683174169865572625962012279104039920485110210347230342593760321644120909019184587530821370815409221920379524841180351685417755161202400498732850071006861267210883665075870805277957860115216449073102334534357284460289820459108385072876554782040644320559654351189606125031240506699855950339073591102922052202690354263001606565287806895234749594361556206861499115722508016700144789164199153548868044442304530536374491130995006114609424556718956967630348336387252266611830370231210302962732969733717260652567380651171360102250186421017012835470062239728389111767622928508717005148646891394194242162029620689132215525299462898366479501676948694633422563439608306501082945368937467176787091310824857577694518791562851959302807137921184500226739621279884537961781354902799510185119139064168629964044234457147523068304411301621718635198654478765625842452158909849259927272036264525487260607047877425842604156543209571160968155332545616825908455293504389233020559840586134172984466592595744080496811072706994145868334704945894985104066002024611759941949870640978573484921569856870353846009765928735736109335022467364671491880651799251000411594128101614760156297566120550761760336974420541689618856053626999387618913555183970304745836068552830638697566630475681094080483358748027982397123692596630003905807608962582329286373724871419840514418180969444584473957346089372664503157913889569162013613220959397351113046787481008077046410549064210994576162859360969126285961390104192743363253692773727258037552519007443057846195262203946364357393356184484425294073384329691202296092465206311716238972050538376138685048932206741939254933062585805624850978718288560881354464783057469923268736581664187692918613833950756032950197244141558392508417346667779264030935335846438887488278104350720180270057185670799187779538368375569649359431425989643759914538683955667900373597672461840353695851965882362651290998779909569831359455367816920985872154852915245663086447877131283992414954399250153903105027639902580187727191283649673099042269550452259932285056630687387293795238331717571684902362086902364872579967348442820636577777595940081315737538826309291919866965263196632687789256678181051593898383871399781028527547708159718450363121064148330895589285883013835416519945323609319278177788707864988122002638709493122493096795717742531488664659117352681477392754161974636116691556497126293377599887416424298102365250855095910925842651212971470916076072952911588301923791762403190722627237111246776988104591385479998863977585084236047060261446723764644639902487338296397634774581121936159154586655578798317597764462488240538804654842608425175747101216090316545567767447116419374295822337934709394779652162730392854509177514672621668764348865272817688106553831432273734112307567177816031711388948899362992067531002160918905723259285677251223014313632134937353670716830354586843217767253217756887008201026160271075677112821687681372676803640048444603743662723219913583562262416292878311069570458054882798984083144078477987113716497599803058285897938018836131704470368798469894363051084284075868425260383257830298402073427263199910638846811894955530448970066124433299305913334026923934431716320148294020282535042463768200575847177419667355887624939517130078248412910209659372458863845350690248647616494677107802051662202938432540770096987706118092679643507138373901275117098801616031977781270086131366002999644456156006472799049310592575561895032339951437123138974848169181816969654390317184917789060796358227536219260283738659379397251223220576711779559783298616490912237272394576809498842417683675849030098050016282077626450961334120384486700540086561006168055520382160045834582001335346634889619273603026545321016118015985390060831987818462216597834631003286768989180714565401147852423940433825765704066060239956358818254699179615982564052720014285623071137289948952457995754327824231181549466466276464613136824274152459318806938865300353571044013200898899813843480258658359983512170805960568500888321125935264668336094483705714109896025129706068905768041553404467106800612796546344125790219258772013837103100213743069528257070845316578213262032620691290180392310959924177764816250608308613694884434947694026949733105890156269493027584247374995475125694529945950266290521208484863194156994552308213970698070072391149890808677519201975184215072211475818588988209250407837787940499006985729513378582237382663873869693980897533643794853101719442574351081247124024405853217320423386444109888644384249699012814019139286347540331153280399019018477809135768727800222606631109814036294658141686490737137657350619937008109587892789545125816763969238100182759238770304337007139663022645640855422271165467154558530264567622565602335837187857127816122552599380312110922664256705125607716567910941099855755589071568799547548765933761173657629458853982057276073213672856486738361759287241732711241425334920549555189568050830697499039860533659455579435307991903022103049720986308306756313130094521769996179742798875856543490744696654705076945425152510454733362381863754631669055369016074524512716945427148660753322157799500994244144814318416305333297991525295455614088014450538061971920972669800837867168642433496268352932587910995911980248003033264561405971849160062926923792719025611659237542301315159781343724107553460759888301314299526430562787184009128431926366752820282857127998887973828252484903177745510269550825308368329031758533216538453645628304026752172669367498379698838510559952023364704025665848255959463223195974117340921261518805633378162334811949705205442515206985748342221296433405515633026383402846516806894678712945024322395971053552733926413901110372658637862515974971811166131415068036973258438948248768645575173918742850466941407047266955709035128579858782857566586289277844776138401183858483113892897419031202068812237894101011365448690248687797227077577998980713694290000840272254593567392209377197029793909960600408396557671259471806091348571424810608728414935941863000509792444652136143890805761863138275666187800506993021522320413538155678742708477214247369961047907680208120487122102349262299163654133285808646982145792522943669430984713955620476823193151234592005544845066165653807076881789421304468926718562549008931993538824596350317691367400661080264209010373807164935321084879329290508662796203960946963587637759217546496041361020921860176685975127363082293163789820541931513777174987808547539592139945754776104670578987520734134061679769862603038544527404091559157116485032407911894215147506601688433676724550701900606901413749094282400414505151039956221013454815807976685852768306959028207281066679263715816125179358102040703572264169651333966644054285220513390060785263186664832465023131262826118875737543821751865794250605942619839911654529785829813589277516329725706786312281553008599038787681673000770787615341746517554330358967655898456986077617391622281448131703698502438153967912980320252300475937223803663462887490031855950516159752892826321964532077831598193872889995589350441001914025675275067699045914599497504135624883181623992469693513222687784638725369334698983788086435908062880202845329877943623004106057769660253136186481023113397173311915082925885004608856749401576079234189452164221913390291918531189793325766522173483805849330910447309702787962102272741967600020630120964067503920131985146931430030350670627383790165915076901320204195991075505199012762196688562382709958931704867629428219199010007057347129758262361144149008603579342239397962863530391850445086421471528861118698877695248900888036874468123629127849303766646231290338948788866628263565764521029720698437770447667121682678388500811303448973058067395370625258178840765530687095306422678085180879845421062745664092387670397971760896137681061082362413195246342302214076936602992174667292526438979845289141226647649131977612105272251270729557555156945628682750250234425468389579380676041690810903488903836453260424753570473902149165062494546634543130498935079867290474019912712355450793978036482066152504654733149571971188135440488232062861164257585157253755231623592977572959689504027995940352471656473108198349404865955233442961982178995294053821197766462077453512354768989886355354483470828963747470695748370141723238420226349230477295488779977752292517332470675262068695661113268581663884662246877673090720917163188734738201555297849241417109658890845850410298143714787551122413337737678843496985831588067004542039002931827869749182208742349967095297766859956713811659323776120590846471229324843144156539443340143833071844715056309785727830176694645592053974775917453004422936911694040715170448707267164365927419987258646600179059492499028460713675526690581982183292778843345603344016004783411272276432372612159714261714033206004085502514940721102763051005000607181940126435403244502246320468463779848856718696341148917348029365907322048748359683898804944448406920340721299623728372898799960427056721380023315724325470997657886594344199281709791242058035720909511527477165881762307039015713427576953730137478605907091008462850210031789455762119896372039679902143647700595249102502003215232569871047111941827126921296663948319096081992851053492143300532471804784553907231313119482299249386215226021915151988983271910830665018433778090497467363128122083722365455893615721013017800202693462584296222700185325227057143562185088247713969363474345158688533041051578285792822793058400690838046486411845884162955194808312219885467678683465686096876159185629223814032507947169879425034899834893814840959763726156868450893927743614487072775955885540347501555483067748063338286936415238488816068469943285426470738790317629038179457077619498405414622840317264468535531675612994355104644975340435384455201536319337778989547585586264697699502947310641680995468359531399259039488368759885314346734767587668559175396446611005244924093235533204617999817518727057509886088279483588995639398196163582192875345879556946728423733221562524309940158711139714573132400998080445954010154962706162376810620335783281215008147195513437596808551002059409351146807533250971242725434476493817731969878832142427332319070079284035435874290074047857974633338371305849802665746919705197964662350389514207229389883136801681548375434351087481820645734746057874750929783884034842251261806653109441525756599771301649979014467607300331427934809574801755676934586056339178556213854507537988136939572345593799646387769825495569800124187249815086795032466956208908180403685070982240215378917619664985284916021673924156840099933222160187298837891946272653701560324931276741168911514844129900330870310106430772879688753043392073882941401226494400177061261010889387443912784752408459124075230107627323601410023924309736045738853815476122890393252362076016569030511365111225028287858580510802134924641265424658340079224784174247867732292223826312549179929207188624738868493550072274352061456087319402835737299812305437143302814982533036887165285811354054119564770631788156434106402471714001827421658757868036001088657333902783084853298940034568927857182027779490988369459394981453396653155623448051624312547746758011478128184506182733451360596433369510503607627883340882939586639946449875784439526625381449280618746603851924224491269439463374160301014553384351344386665044879166567789882813646433780639753436098751953937608440337906731494194427162179711096962356096535960519713275499755370332344710820304100180320105277166200081833569417687968372627565679210352122290302839158205081031089005970256263682278161226222332153680348112053024879971678342006010072302033284059420036619299529823375886668494739802727555199742012712844454292679995666772513763805903330101055879583890696455437513764784454852598882528982401180530571367056194802815975130395086580352350954076440135759110923584662862636690108214523779253287085245677210357828260216338603035812983543093466226221784313230941524290270336900158813300500134978482775850643535642142403073992260575230836221280026952242821643015189122578382612171645021696977934017614556171363801607921355247668773213729917677189394372138335442657519125912345666582212635823359603433661137662992750415967832804528667362654811200145632401211375257614520736686789800403052121358686812584341188921792479003921852848625310344542932797762852448147073051125609450264068815579022805323933577636878989779960165645103970179864877614174278722271759792842556951784595461035172039327338241848689025102260164671084186269349427573360685100274159483749624520206405007773865542425679014492305021672470598024599875623932257788771718613104811372731984664070491882795555585587259874525787098410586331189014582039041183597320341142496822826802633397514761703151640819688043393864381625582102138911551571404244641220292177517256552491071767464316160629428296095267855678406435988422429154544275637282227828871193301695638746266796854303981184536766318895579478761023635007845716661239992404531152776684514925497821965287384410591321923632519476349805512923057119073402701349108697265189320160322997581262264866905204427272889598160557297090077778883781177081168828418886358888034823157682430912106526636112458118191299249945182514890864923448156851131224355997602392241612108005132454065867983373076411971585382480727226698918257871360321511011966185162149819398252930890280092040158680703698074098492853256098786399425666411124821142757894878900335945923723089992369128313805052093189508874064185780805745057701557430379762542018114912867884302738224665286718719068974125923682382826901796698722025168522430645597961196312927915378209565451977330326327287625365466118383696344932272085779353688477051470711251952873793450243320461912860751759916134420601735684168466168245600705457795877925165733352761852795405243488366839225252543030714911800436509375187720403656107745604015974413500438224526765565567741468727461714096034206777250973765536081019567209735780502979358094199113869712786225767868137053404917465923717006362747062286440306305028575214001385740224363245426809008822745364756029888897129266392187309643997294366521988644000662592129263762944898698472906833078544424368662579037113798723129954450999947307642000283888581510024702496667423828615457007775359503363865770085531068787250023993392355263321796787945292766380585150787335803127230499779346417470544387173511497923023414923240407048041150824219998256425644586611277473782221178853920142531087443693916429996306651627220714445260448578363379463970034912227710929901723316952346322422796083565415199360435436564489678756927098338483100178689593402656197299630732223020401858043561213212583794653609885986967327412294007922138999436639144861326803711482489562196165684487327071233598864982151846272020775949716838701656584788804659062594049913069679628664535819000308463634804408973737146700126056097790122167717830069079107107683368418059732524559021050960924184919523406083291071866251401733865206283194858111727440502427373189443468879150995138600025019281532192696146539568941541515048445454188937676939151825551787646090121921674193735127704712710166307323241070657569262572904892833308812729740946534619692759652470980146320222188007060864963740446974857495245902362822810796940571215793674372952853633465543195421069535382681673536100520063408391574431775899943387116761920051880686204093998544316979420383196956895306346908379777270517881652771506218800037552583854121982825720251429899572182694520478274213371446247807313790575905955381361751350429498149147100508527312049357750231720749502531862102167066017010654217805688565492848061568769685086883741551142651571867572142989051923649205604030020688435072654226335455816477375262038573315436243175125847547472522546960728211644859570983537588724732999356285091648903578186008867961013639109269598367327030945237030686844972138262719556413777353423130740437653728226908051028133531065860849721293276213006250150674698637068177991722081666708339450938811355876983229566861374590252365769942049369482101474759824136208126487527790173919851947135190371557996702854146018824855412483818414118054058532478540986931970750709729963757139863157557697292710447076546097173093090681709337628174795499552815747601570679362651635084081356495502921167430993658546388550926394727594341339849162348552131721624594086968669275216748846812199728590607332617107692144430147674391105463539254189631563864570736973480673166615158788901458870555088204022050525216176926987227980555131935289824302775280289286205639169687406929341571344276807558852994329676480940142983865259575435866449266579801645077165870291249844525446577962287036728124350414102266135939083016116006028099433835400616110792489994567925225346392741286940176209462927627974731087152186395608697776666130721139190605064573159762915883242661370845577383828506841460788266108038885416580858484780591559670974899181371638212724540749075421720714788299402660727848741677869313428064104674627893379750607669775549633129442165187644795860560158704846248963018010599383564541781832690279205056269813044287876181662347833103622118643054085113561323365781040128499402816360809906702265360648447912976929425301412133469626958120229422278753931430480064621644558203857041788323139899828533536862929254652334946283050995773928110239627842735173113577918079196990409646266091685252132467051114443610312542638234218859786264420494367566768667938454306574006421358524731454469625858866578851916774281619917002411161093589621090597349413825274592043305212019151834625553218548640828443605654369267809559174467782214029336483867788123532809731694718173121802339413156757831949022849763842604735526272993604185777733361088734254277570471336014687452708564819985897663613571035505562822043348537032946246243500082475429641787943858119825612665530940263133473417055914990863244962423560264291294289507567251476593723469216831888090700090360845738400841665790084545386356176170148557439908229335677738772864627715670329550749651724148375521776005624026545714209560034982555291064160953062374081653369127631089002085479963159997299966293314813712840080581019454484063884308882139237992263757037445653965638430420323205271930848798137204803903697169069300058475127396170423697249517100628473954727257151929745743383300242537788337772015352366378203666387607378138843917644497133188433865965883585708395715726340552487427554121746614643039916534453843933302961079839701878001694281759551856110643165591655978721797146394378563967825373031663626516273905468425280006806374878171166610243815466727679408427534392983481845857559530836096618129951875930650860095298547972275583902297037323821151418026602933036300897868635231153954818386206150395132182970093849750343480716148275827993537321781912879995728423076890748090732451763855459257462772875538025458184599266239151568543292495945134422517420112515103459864871104863680274895149883518019833873594588520753696216257646290480141831964371921881046564265045916181999221041740965531788909907107012203129311422884509665226278525511002679558245569203478254178341397838316105087170735633962723895680273814571408734760652765063505550461024656993291122218414555744102185027919054720602488408108426411368299259100643770137567886320051546131041395070740179085920520881998790571465379249930122024780589527789616928826372780149070250269475803432702987031942663307852180615174735856941958469354760603528564415042631541874469066354989471058737327468673387238951201860651024122685234754734663607677480865713455602319999346778387989987050588831905493568716206534252224031913408601596443684774439448435578586440112771032127208417621785253458636983047870175927766049289619820211924567758043533377087526404069548487983869489485472161897887257382892538241305178480966539208358006824188038272938627103174525764749250870504241910478415678731900063067887712741721653342077217284165524596811161694270355828671743192533782258020613600056904849845618154657165936640054645663226034965753550052894586312090592227208547284508296287883952337634916375825187811144218436767064824002656984596067593859562946127136701196131303154368364777399200706860548321139268261282276940267288232059526080335523310054316448988543658408934166091751107082789065444160224420605624404078673537681255074104863246924938940958286899952668618018470814425413683284415058094723447943085267864529925589082486579023480270850656527467580799616644457366581921113457779681236545289709961706253961738833052975860092436970208888689798330263820431616517589637098506995055636855212287299745842938283473261687041662953800212989038523693679306427087408560865912096298946077947673921803689651667671320109002393822879275718647569866469100839155212008928787425405149774459049382046551257868973919251537012808658596526167675826124873006889853362973114568950327959186524564667068009280120805894857031430299240544258292949448565680039060473727753428581134684261539193117845283029039334172664661197689156377141489812913831447889720180877695895526960102619209678316515129045581507315649329792254756573374214640863410453209023143630115358826553474120703449037495328463922586382067715834533997174639258720149993525764207177719362528862906598343795844037989452993417599847454860144842382836345860643353664284318392430801670995768257180201622757560953989196621682251466202158258221467285285562877840050012502855685851772425542154554284350835521372279948554879750101524828023524453039736051785291374497453787989006465379887911573287512679073125824947812384510156435254174084038275300500987084593172085777032694318937818154952216813770564403942986453767762683252071023675816534681093032405099255081269643971189468695232131383782854496310417608955747219677656087968710973402578312437644515306908830319889119245739418326591211748710513750013378177991329591603852922779042156799450038464443869954395629803094766059044398054956551265034387307205115365903837625597073004503702122926686321311162096718755924611853953200755408385293065859949626648222766267541546486247427253096222048511813121968639400175873828371418704419961474349718689464483231915227123363093928716738282428574109473437118562242167699935358008951465152321584855268936143971255367087360254047480393206770072453990848333909374867911455494998540640787907158511226772599469907566787658853344735892149297976717650966374512131256162209220699301088333260736054616403174445333516442645605140679728918036954786132885691085863939873483285957626564800380201548356396334796451609750628524823185775122131692609346727128597364222840166152074772045500207318278565280635481876684709241475932380056540417980444788184127558368387963269677470932809562822697596262223294866365575285410167292360295654648191702174152004426709311925715281640543740754323429936745480563653556125235033359591633854263167697102358643955584800834905759832730053822067822589007642888095630194873909835743377652080351242217789454097577379466721883763377965309887585117617563150247380990605319051195254499786642906910193059587018783038570945667950457575551983713043527792602327716391341508853182797391678281444893801353610225876538494438461920145226301636472977849566541892030230049051709918351263761499764975253707587255248031107586835553838705749965517711495029964926670563418692398451148782140030073205787005524751485716184181227621418751092822942055859674041960840438207061327054622020374736751619841332436616840813545381611759420478555339361838292478886121919034826590595330475405762256257445775415010778499803577778452857185432430365251975180572632578354195537369435519980831924966925431222352772452427042792538618713076691311637375001376954639001292995218470280068213201052111529175332996752359922287609344022785353968928847210210435844150530406744209256686307045741752550198030940305470003127671702005840732267766047696305647620699968258827398010186604229144631015913825193000375567040048414156614997635426780248185850927702216711414466477457783696533263541388097008184757913123498147083673559053930608180011978583612910266201421903994431804017281141713211773640841427427373723013476260686792104193015422063178850222441572343656123478250846575227599145896179280748443271312586184124821724576322242500331403446497027807135084334502257756967427935583225630418294207305538647411326277762793607291034158473768524646818988890992027836510318086092001134054023721465748127545779212602477700801332495225385767991895824171756492688724423457033741861970329214478045632456029753474037510574537301123310793186093226058314905279834956402635617030770283495024490604257315724213559890941852529585116646173024782582232990394824561322645081987653195118133781858577081749160283746557610620702062804630874888600014154516026541838770068888826615598920007877114386773396196915029267228640860101863572845887693872804178931170686573825645239949916680094715579385138820205822415008376200906159790357095713644951268491860179226399494272311944774228091276849009109576424845909745252937863342671437453770789349069023279436774933798469729091128702259914292578130032003681876810481772749394366340287227267641347331527417036452059070847822789171059360175131175182499712978180101029617910131108169955737948405269996667087618632951831481623522076249613528203990700791555962044376439491730827811298341425493151023955103395946611527239565377455139115966821282686036255571091001698653062278489021658925389693096167291140281801706348483947297470467104809521890387885381735026404620320451505769424752649752014629938543140895475937394608187539444984154696904796642328654082457412881588297301581690205088794962202661021751163710570153255223203435941180593261405449548466228977543467791750067658851110589006792769902566481347331714040308522388892944714791337953918544975480279574331707199719633861129476368191756427946035841562969670870927864546933199824704282362417500184426202728132729547338053639610198501437885477939801037235157571097714895879487693728924205887922753290054509635971676907742706526632818862573528322722303785607147625771986091092683422252731520446522515106348730625234903224797407203606092435567757011078804187886788399620765183907001693970846822975764491773949568435587128760905368496800599310383903789690066165779070679852095650256512929291939054561380298864613190036249237821460838287382790435851491771573194768544033032502887014013572312769495158162333845690792908570744644283589606395487698018167347281928615691368898411997638032302309776954533063512478443157966183731784556855615781455958088834469548676218520330445528245832979742381294980389652365187122019542033323420322236346090570180062009868756393376072714428602140480741828769236913584789329578522246429473882268435424805757237059739090867442581934080150475692862091786157184852447099893961645235194612928726730447135537890582254497988165610006429059664112510735355583078228132074347995421376169638749931224633927841764348805443790327329239301214987638846510262660888592812240828918727487999686879366158576420911911513908752957745968809478656202541136263942096157951358316799646462208667292645313818262912279183005090783879379206691956443836692832162357151337417389422509059795680826288541602911516233961585962196782946673287114299583994496231735461363748449748231635421145349922624061279078883050956996620215122940349766837413504453873222918612937380908849629294464642013266739626412851448023267731994624908687832630256302394208862094522180366501522384284830409316781847187537952879085543213851361027821529714933168031828745266263747218989870595963276869905181135245053425687735164431793649291610303825508065647822071650297948787648653995008763886861109392332530106803910546018330200221008186084076017323203750826061277290574284773863670741606466640725598504508949767832751247253347842589451566135572320871378198717772972737457620286751506720474459202435036080912061218287923471608528808041759952623536031725433379242590143472214163372082506233974524713463329557209997700635344835679917503905648611268779795947173186905087781759269690323817843442085392800271414187884340907099920915003822744299637083673389071315628946947276276891050601542287602386492379578627798832895559165457067532394893188511720810094437937538152636697515878611667113744112440153380618039621371766684715538245617220231813501821870452276852152706487945232181878157996938104195455244823667695972183017459009205829298472978431082850346589976736079653629873889883015884398340623031576583931648907136816536994728033797253135182672342057802036252824645457689692845023270944187224134501462546429277413517499660665706279372210534922382864381040169701548642163223604763372755925098418507672553264179273182171079066580689651449398319913208152910881800095645023981689837371739703239836608331361222119468598567884094555203629062091183111444303065982911911787025105725830410189248453650198080424010518751346336309438834104892990768478781116435834118989595650373393882577799878168592372946629591322174685807569130149341796341028408976139947848149283021850896639921291740788781380645999151158427154617369241409752812551551133621764373559334434572911640554679312018756325318762755814036850984820441201366465857453058420022717015113687965445243107170273215891256314521614832110143265719874498545685373661639986258894408772199415995685458945706546557985831117693797205523768200815194396529113496158018605070677217164717544713184727156438631437149665129191001856245193163684542309699215978073093922742634191739898584776883878436124465047071961556375552842132620632182126074723339263054900042991935628762451448494381018975416535198278035488313021471488924362319172627338883629810202054404776871761380634194695259120950020970039320898047572966407495939489041764535675959995309610578015335040109855171895480463345139458019725189475888023156287763864009264920472452634586906303816834239703926397159044900572072625936368271731063415445323640201975818517518878807109573550079917637041458090006463798666390230576413619106483350072714150242048298486796434615497766425669067509141878161108033412226162712524906649567282698305963627184040522715631638677463505941767661841925822785715861565951710850551663633882481718745926364361478725621687798314808890152517361957598953565434227287123746614799221045072539325778081627449269211652618859627846788851579451007467555500755481425088013410703829531779774950419057766713296022385358684963075797990361712853044317979446929868549529101128033705141211349887669784672782204564818390077306640584202001715873993129346753074680665554313854084386307935880638916652508804587896783248826966237113370227451611443718627059835540567957441132562834189363106469331501793280510974642466218052680793275029657611639021640221982416593019333309402801745897019486487281147289150429170478112140018220589898395543244317195740775021164232442289902843974696600802162805171672560079743727404796491160765936745324362487052031584241882597753445738979995537470403313242567540602128608092395705578353329169054518207050941136285051006140361879250984814821864469083684923914345529948455451276508092298799229221979516323409496001524915086291928078723549891296809035397738123175707213731401548840247859541885369257456920173921141079788929941986843908134402448049890498639686266302442361556726504676066237347064456089753438830642223564707474830262993078254114369803196429329483515705993483983104059922181677771703932275056498143369137652117541399709921447143106851452905629577631969893469268420306223317497297079199735152748089523778372679859291627327968983393807673178803718958708205817629942330803496823249218438925338383704196421694741000037375747516672451125484614208204605972970300763392815343622639574204988697507405744627625297881331147366727712756186420479222201373057863879265046708900115401152313157554074676210426413446593065256345305524067564295995597889422749102448249108999744271683383760278686959556861332121252696746626668675911744731368431780517171103962214548283325717403653690727692630812553223371670786547698337790873376514042634125982222598392175484139617621147782492947558273313271171190972658425373233386448205971152708615962676773178170346502799203263514757790201092364280315827420822497279607369359354664188323270685101501596839871813640912821267187467094753851197099098808711215473280055578957848923293752902791803040946724573028842176916532676530169149957086511025013595284931038132568432246946619728133420568566927534580152692226259505413794172742153171825235116423750737265796689845433158049585661530479646694306181947170812319765369685737567429408141695404382348769781544001273755006753520448458842611325224370425149528601751142880439298670407428373264252083388618982205272388805874147919544224546067807866309455067078374210022556900165611594814818753658564877655139320886432543421115541196291006431319004207229362357280402614376570193819269453530950389668771622026853617646033326361213984321650647228382017239935455828629499047405857547653867763505129857401787557939871143982201603922523190545402696535902691063173174222300062772230463648601296083803642576538355104124846138353599175055613979742771161340121032048511486362710002020561506401512235986572239489508243380719038022485933256525562117990199538443048764173473124765326668855292281496614655517531483118415578472757557145311010187259679502574541084144860105658554413114362461062037804241729224571232608317219425446315760501130900958957405482837632379143323607254124900534958785088701222484680466671977232288023124653775285569382881877831893360227066960131771205833912695694616960368600580825141922092183196532584203352348384412450348703655303251992817761944593668687164964802140744892475252661228260453500225927185653223232003407753762296134338518320624019343365559452243583084535305650032524517306531018486772269486992304510290196620811356386852504734997245653307404133414654865496040946021768173961085545572766413677416036152095093906710040762366821304898739399103458959526800958945388991877202164841293076750446388861648387818710486460488285708070068205128706554330303985152094530265167198046045420359745085796647507448525940070347991289847510562080906357161703134670838760499050384179648900074431478074245511719883436930941430178886160508892899338452925741306954098826029391567689964168336573939374614997480135783409884422946913952583374838728388431324131444414457655819895072205721097825001556024163741842287797717802988525032894524497130139758487516838677893560095266900847540274896955906362881684092988369927625981572164210716694061433670851990549842503974420733795715167819810009305822080991922437169463596405856351311135224469230108852362546712873877639450662655353114656797201064161266069126999857029118293258359460130105961981003795929625911898395545099413769622585187279899894179906945812733707280082559145321910135480107082459773855815338747907407332833673140028470479315091877798686084795882410006126366571938519788374013657097525872801215062799049795266928847298676809201228801646130516058506358778979365566410292425084793332521199292063582426370586991293104442314522482085720170606831539141636856544129100899240224651347533496658662031271701887302422241925214608948841871374760466912451944186247123212803393952393688861836127566908753114655748207373527505750188373202547144968446255451725822784544354061769952071515918014640138190075040362546308286434827913960903489714650892837115488480128039892669306429935826146624278569969849208467743323387149397320546829135156500540400974011414624452567343715746859000949761046616767286048230760069756489426893090053302475287528264859221958644325966901018555055783362493095838080716527561170102579615630787167598616660532990697798364057477412308170911130575418951949836138961860908557933498358488724363943963880503416452352261847186385119420037904600072953348804084614649499542203421895230042666799146128637181207255612019656183150947210843190933040256991490251461845691162494825250385728539270212189567335190913924899101984465990450357381388561028685903280019324030699909977767452406629359543083387429644912048984868552092725291181234762480428529139480449986588270433319562354267559846396343753421348404761963190840292580053878236603438641033024009522667645411889019288575677456949698148235184115067703701771866058468506248597456241473951509227183432185952227684241199489767435356947359800290388141432897969273861754715213727863481324281016202955069144999472240758852476398881437240257971167062646898208634986327579171415207298035417285515609328563434892847548962934455393745266043137454352758482161441122467740330166532046965548861545055535343445075490356980497306878055766596573584592011139326977305201577553350604604828510786488260095844166204271218493519588742041202500604430971756038600180149838601734371430758975923925840370340594776870785353913254243135095375271189800815214612580896866385079991201329019185479237165411135406426686921349596336379510064896253843524278953726744532063398654571162770202856322876331697604939479537939207222703411843637632121695227606124095336137041639160717064075271117660051962391268892409895438836244449613724070392003467094188802464263718439383713015221768088830988908494682740629776723056220824645293481707005136956418592349487819721264069706353141536748186641559233174303672995288289724137292359747947294777917431122149104209687151318644987361079345530251325330434765375406394737500572857406561282620024852657476103143584107511512528916079087082477168680541155865710909917357720518668088965430582699908381404744869225324841246050450149891976729084986701301562516378632186862197858874209229465679458397119944016801115057223354008810267708004774011455905310306515667047606419795143971060484207597473307062655808320030331696757896454500652206531539115243037748612558024973685251741001834776759520805610046679046083558320903871412986260096374854007228218205845441174813107915240106733291555664137105941066520268950758928395907579005797604531806404274368814685558062625388253276123333277137856761706030062219338577729097689095270172625973232514698845181950394515193318775299620816922336823288927667811619423140355593362354869790385580540183762790910399562927505978579456683125742117147463443099837611458155495226506821716003021224776203535930486007413426851593591992594131090471030604894963953221854635504798184639160013243817994362350213600960312723425370914815673727209841771450357898478645771894616298560790527183595416649509415235478148764361230489599373566983870377706575489304126041212264269086567612108921396408385357520913699553481604554942014040840803026121533054596129737214898805392889420455222614613968603073210470966312991476109397033974248879764634126674245800013208725567567646275348987696821261424681732133973767432944884516821430095161285226702364133785649879453335736555037756274581528981614000846400283234195021595583897003176341830054905005053145946576359944125148123295828116855052670921456491999169742682820884808229501684488643813333503775017596715613271963698150028561789985574501820024720027914785893197826719797531138400252686077803212309716570527767076723943406224210381272827841337441656339237354954022077281210771425504010055593337758261441551803440625429566823671500582128136780590063148003709190590701122034503233263933471567574367659430859807436702800804593392219603971461899824242857421324017188048689218575693195148105116218600592885420382024948585226968964929209144965391176887942528803098744225562377212581990135090935893451522941746902795231571296720473629784352054132802804888676839696491723949533557895816541228771457220157789296755936472879104386912695793337489616598725792490249995644270751330972635186722381392047828724370140347005687300651411893612334881556186787131953830283166883146867223610589730883925044960377125278923822917918447780534967442447800246734020915765744895812737337706244483144105217956068104620839780381331878499215852118445416215372605977670686854614204119258245962722554075766639854638485740418045953598069307820194925754506678192650288336069647026079482537237598622520168044125184610868410480526738005069509201263083723840678091688083483110549044431386927170607362394146758412327898211005440593480722827047029508004814050919093454220554839914285203787525568923249305903842116893779756328777215542637190748908484797643665169058638941688327946171381204491873804917529601374156370843136245587952790923388371517646787183027984119714509357541452358957603211500066948322155782301435649071163589963508717981804880376721618300169836763532538811655747605260066007521955647562902995358792910414774106864475433134940008807368975265371366401552107373706654944448585066508116101286948673198050272175838054453521978431400659487994061889963555648210783873820025545340856392362918803509399660549850329743354163127605733202654880364877213904267145441250839801339629021610483567478230593814877984581458595657369148689028801561613684029172135457851282049634260061134027916010305578591426917129695163673612061016589144408519569813536209829899159541285151984864689894200568630677589255377316490082566892863026574031571535295970421743450934547689054924131559390882854479274459458518090671569228714667198033239951283292137818997806598412596270318838767501176359274346968791189102390306040249011622662416256874802563347864815709021334794864683070272564423584346549115245518411204486061912381439945161792069815774558938982823963574917024898463650979871314974093221862643781412876493412496478690995617370182906947663314025556053374060273122361169585575034212566025660134781017568903132140809841590277131449003502780532180791657825048545453927131020544824978081028748921955160852568462070283476806643472386459493308259549276219967141812019950880151058244348713202503330313169044046560635399585475231285410252209757944138901889537441159048426605360544197390150146945067339913229493015254787507297392134272595209855663627873287500762979040436221619565351011680693334394867923092755172239633632385566524656222323347246462501548833080437453467112665729604579534701665334891369592472976060627711647656999499650024666608591003545221039503690579308396066001751717911863611966722102400038294346965471976627140116486737160930691480395971376293371272258007731327835048331516368816450589678847159727718034641553654086105762625667993304431946844032902140055883064602999595967141241802346351995746871104976280910563053353992199918203099666084757301903411118228702174847380420948066106271968286117203349933736311526860669771603176979846515903650118880489455755735012924895716982250230520421451361062957201876427466193409658636485018258439593777330579127546815248814189420703376255368872772005662972733265987455366688095556355897525705752924799607210291863474765207922755587402214458379641298330032211706675493031345476431934485014271422892430953528751192051202583250114904016060312394092254512650647604815672888381972560840800323605933280304292289982353312485630301065009795559075332297953524081701179070282228993894169960599336693746935073071580299211918540748600490583512816040624619288583418081464205294294829086499120171632837313350847659029331900412480410923413482018262843481969960204049981765395668533900650179883219845185883508240255055667697878027896104834456538887065438020497238877658425236470155740227779699215917570987162644469196268718682279116779445073996693893613727461339581906375770051510662842961735709218008293782127263833919970815263555843384253442873475456735666572774201213415649644930875955738298726331556755934209472114428026620728092882953862157788616414721111468826759173024379349496590384094482985551509918172040129999348719991268738201783840766179925991955633086304615920991077728638538094151518264706196200209141783147728922903631177106510572356937418848918034366285331852268002637245794984427814195900367690090724348502916009305230798878051832779366606255190919990323479196655033599141869486383697682658438761323126743626923537466591878122904850882441920858907905569311060778519129623638415289540027617405405648808060650980314276942871465943288886466064631063559510339676502294094508350000912069823300209813696029053115199200037239812387053782826946924918095982096437029520646854223335807743982207506785465734371034187779764616517972126868337694197208774748134192540790659613321008763394187417637755555551207892347984539738396072229125496971532019023216869123038123284732197094913625346041413289404513350498776550635294130628564005994983497269527422316301040197233579787207909664847147608785028725846812135397266726769638730144859593208656814825473994143191471295909614130632325522519026946764987861563175556209684389189997380509812244045407829866691465245032720678480096316765002919251638783362632875297369857294735304368141523689575121151762238432850282931900092606770108455784651768645428856959434462477035869867084337411253907302755840814702795828093357230102794531189095126537802579314040794785734806463464833891255123879095552036112473247755669326892057561972876252352977012210453972303853402911097639202890861715496374198085666532069217907002799816576617424554506346453698718925044131130373758889418651307890135936650396766802549175246060938853977340976282163941361779135763357711690876592336739666260394282396104123080293675715980612009255691074106664274803948618162335482613265117299696561668692819148651831511263366853308667054219962901665258620546445664375918433502580084810904056893785365986716973580534084835693179171542313317188983907977561507939870300428021883056503738395513197357591086599809762794348167027389234383610442717563422231786195779441866110453747093550539196517556621090050325198253236727202245636042744540698585839779029765590443865462473278648217025337440519187479154141779201192792525584417929429458467251370813884840791510450051153339144714106298263871501151161524295150320361402252402698541478782514912223348944212038606469867620365898200734658465144003222014232095166282732595895570255229150548445345130403917915930983968555561061455844600959321815944835570366729406998311688056090538591363659080120995449422639455245194815279505906132553327543666605389212943581799832727762696230070890901079800979710772498508404880025516706296800147081545388323909126218820315157374414389442931703520760773482957391359685626160395035581737494022423972894874266754258815732957438227862870978303163876840855794768931606388057464715301412106772245072420559092792387580278603739502333133588570900599472152521928254760488990624836186572406404338466868210832031090170042101338091692223647905126230048197817483401399971890951903917668502980202910322742107559041552949581490031506283573807854653285637479867951562068955016072630486392902424153894170082297112943925863628712063682983436699313488985698334382658537040356444100326577801130386978358657701265699397714403829016229886024059030335367081766777120514887666351876685219705035688479025451833930994365043156033024363026973648812920648145768103834591713914782314744168568907282833913229558171868249479683010673314553575474973696939159531838434287775334696558167402543281881525167936357686254854026101858993104659751610990139734773858744981407618806309429194748596934242669583238358720111874646988470003806408590250722271518813656657385063237775222621863306401787456369339720664845337786920792392048885265760395511674686009807979653514353511331479854408113595821287164637566850361525646182816671607768605318131035020476047882500911608158768573946295353306168901158946282698346548136792443965491415502117792261431589560425766352891438770721480442818778970245012479076431659634952231135373800945438732441601965749179196987106981192538682214128328578035048363732518742566684223800953192313901174231427551070304452600932217359907398159490136211483487209064192606263822921773615850921555841125802778739662126652588500226291411365615190869992397907393102689761090433114020633960789644273673304156289043342125417508064194584866182465442557012305292464434561013195269947886887373820162863345174928622988330449812841885030086058122883610189444243283726351462539156659833263030476172329047144807666054175753285176419153179995026512785352414184338486136571652593827424510621000895080209241446760209938006921155915499856893354714871745694451595697833841411250632293684862357663629537677193252472995371136674943571293947135607974444971131865427792176279628252332777165476087798777093903059333421353512074162109891408118658172350912994344246019374376357752288361142981789615674465121970762215705116474462891027531257505601398626995880715749811921924090190793639410244528697735124592987425410074148044761644099103776279893466615599530829268818972893412570968659566668316811005438324571598678171996192003271121092493120049473674188393266435741988779554006585755035352617850412902031438631488299059671818839829490915915008220855031152098399491473726700573477086867669314548610160823333903036886246291607328930646832423520567319522987765450447347944139849257562704476963834470466882407771027192908581034869288632726988278757326962883089735350073495022899235645690994788872898256223014077737208833385787651412804538681188285097757697506805222037102056359716973933476852506516646318548000999577734689969159113047288777921014558425248231109904771402586220402092008721501057157235990234308489248524794276754279470244009609485381084213253956095411236802829601802582426637955753012016802047671393782723808083615233798947265394262269045627696362698280992363378515401059921006412905977276800687620230210636183617664282592297488216662392738854692453350242000386005128042266696464877552785426301565450996037434706899048562292882180005873923502882468500307183558681925520251265572013291983381517088680834542449590425505935987205140115921342866251968948937123240170912415342343447583590096122059866725829937633022704792593204638751914799093603333220302265529740200775027182958268667129934876216791609175179136004684091233971573764897127379824945854717966626999486620361902113401792570385155872139900513946342397973581594549900598877129827695124235664909709950197314664368215165812408509266725847834271841304000748491805165589624015452530470272343333931815076367287306928124343386487349095302019169079262426837652877134878550162138369238572718428472402604591834586818955008465460881657206621792567489133353607732035798510126757162906835684677108333547275949379220371243281822310924222328200864383666401275859061378586167303202768182344764030025832457069803618623281080997610188578294409130203110134751736831848608610575306279024441046047077085948102848634265176299968095812277592236859899498199289697834395042792462937997505828560703173108751757144732302784625927978692685306992242791235475803572635991320465922237855011135476072244669291973696347542980663734320990156848416721266126072348439413298857310361301333560115802796067758411548323521245454131501494326154913201584728527580088162240015742259496722201507687400409990771426248022955569040603470063802580043852403395619199978918714179724514987954183327429952926500450661944944446941785711737588416487215713409806649231193651419397894585083021204005031251603729719942016102444246548520737452299164661342348092073355585933160796674032563475814753257100910935212317471928742876937447663376300571152436688916304728544257628623190407087274650995025252722387777244677068012243621105567626864645922212307077875456926388075292048600233345886757705048450831539751150589933025983169650824420562388623197967070302441158427617961970772098565317412890949004308270916772781131428962146332843751382700830692355943382774979016116352784365019735044551170625674426462907148815454930458124175970702235823721483897012645880177666376192037894072668282391687814656327019668312310142304614047683692873217410949643997894048988505550264272988784402358018390675335094132829334259817940383273501117211939709659881062507575116754278730552910003629050600108168100156109016813397690438934981079984430798726373251327479778573779647948553293438606636106872094296751028188242315377947772319522042472228995361753354496171880916401902242626125608265146136963515993970140716001565243700179894747677482604925150245583666563627884440870041651367466552795681137109721959556495050130539709457313918371599866820002848164786427899261298082620989796258918385469570245958137648019530322883897944351385326299745390585281990814880361059413735634797612402618479990537017521962645879419327493108783409433890401002603465300503789650760986797348817881525402203668689477952650574300789406101307112723317171460102180397800332993519652131797311986965647691243205170350027614893058840568416543464795043536700614201633898537378994604665151731427301116525540501443626337147795470287059749976788179780600908214993505591798589262741050435050234573754764784330009459367503409697740437533339951286938344993628208422675056262478164775943115091560690234764618526639244385935454246988660542640442627853533507477621703733490697405349649528304149639564140914798791028584116920632501813006141934421149529452643228726521458519129646840881696066207296675361211858749063049156251545931246192028493904220968009663668610514045834632497870480890167698700283546323888581178249642075912868631600503468769324311094558991798941071578903807725226921611842653973557202895409970117081781263320006452363974999360673276633338278707506711348455003226810088349747138658905533325697227212979883749639868628931878558708970178945651355511520745604545090611259990999094024029955008572741916493764879941744094582672477098644208808099908031580469505119149146777587071033267998760104759972981667577083082168773960470383035463996216295726526803355090537222666881189469232573658862315944343316430825301749920682442059465875504185123224762069538853544271738746277671809884178596767149773310984723873045455546108556988812070920688620744273630504561697626367866225583211722241453050792216907346776654310129174447248931654643773474769616205403395106137644708193144930262825708403577278164896287056479065798875600823048372394810074838997011058582162748367783738605770883271456458689676139910343434783536128338759033114552703403138442778552909627805097240257791226688087101374245525837593277568390560420296920941859346570417361032035835566120086244314340219420478424789376570510552459307536836262252402818666050781542142134850264592760313552247394545417559976842260729575068581542979352186980220601024166861018553696521921064753206162721110398579084707414654102079658707373451222137811122911846834591618100821621135317851434865442381925968384689036941936277017703895342954549972621287431178214606857561790202368916419152088528481693222488728250546446318234152478637151715651444481767030978593836550014273774531077122623001522178162712448292772376797359242132434401464940691998924479921626893408016719560998328358796969575252770436578213768629851917539886013291261406047320740017578360435545712048745308341367210779130652215386228289244969420340385252680574882855536305360313288435833928621359360896777868877767606974510325120161919866938102444534572454871884443211745400201347581754478359466536738442968591657173832094869630730900878168239347074061793206310438772316857648802288619333571826659251285115149078648265841026893412797228347309557061871164407381104507505054613423454042384552634049895314962815895866761998969207362891955715768628055060842562130681778515996396434926917948208019564551769194998872981054801889837040520223331665199926024543422060033151215708589212533998624583679090432480431637460128746533996231846380006008857354894919128299659601761953744437280794333903814944800017470032839742270616344018692020759919989662072286314363498617076170336819089992286701395405232543781173767080154666910749619410397802901664878520538374154576754178934992946838739884651116553666947812908870708683198042226943254417047316842992460736369677883509797478313668090050624145185854942798461061848304315014054688892230070278701009445517079879988999402242125045925485329777952862909769873829650646687598849716227335092329152321881084121198845196635002949671913315491679884206542273086711287309647087432354489710290739675463641216440867547340282647285394578223217880083514448509937187172286421016058228021742246287524077389547749989842745789270049970826041270250239458976233908390067551230147260284098227502061222138336318780182907128405957747058486984925800102498394481876752378479615838559143496633430157796485541681664106917146911266106948957208918377729333820791474943723467355841203843746989592357141965926094573593526344918876187875612689671391679096155657402650264727546092585322478071151080281165780778526362785813440113343862677872052103794049679403953306510286806346915087897780583406168002166659397488784175143689527503046244466306397864400575263222662065194699747365150410090247801870040450225471479431593842796953486211572274034264229532931378927463057730227336165859864964960733105631974488288040342682116301742680383460314181441479582753706484927727189046290541222900732211687344965049246859549072372028385724478380594327212629892710877335433014760035791173212577837527156248758990024317056209713626902476112697396107097581638857346271353457410881446875711640958477088550234909639254815131600854286260444621425862855672428470241788333794038614868413139491320408270714089009280958310830501334459564093591033510579788485569199440108568938357140990703908157655399090766801785183089003186007609798625269802872102054746424794095794075508991978900590776774204574213859543565660758516814322769317706490656918267200728015946427799458108074342160556474429111125065184829282717452626435277501354400509806936088951816901090446900751665109494979969042465427833833033770134202162433247727138398782639287809826877325460549599231975531099483572799673894464918207780463852672258235464454734398304749771322156907075996158536981227101132719893157132604616190235570814211398121585326939122314953591596455188525466793206236706119006424098837082662107334834085257017787420994347745443523302544732502828029293534817472114947775017433542326684201357951564711959325099532118352063355200160165407548583961129839279763260073537466144920479269053735596808380974879510463367276576375053824206776073094289004721597806622838013427447531872276461077022039221523128938009104974444629867821148670184100409539484515056105217361071466764493031885070237018961300564759948932247593892836698529070974039215654950003953153730659078771647273501979330854736965354606875736009516724400665520180695579685334440019042507714818643387953809760989473608188638134909483232227163655118449177077220592583358384777243897098158896170532973526168727662651119705589454144542953341175155355543205649156764735294215317695286887766024023843108971004615641839276324477637699174812053439529070892045588111737008141755449672215799007636339491994844975527198381421241323397976620030470893595381447047067784917141374390292049281614653335950880481913838093412323465582673113176212033040396915997866814513017743865655838741546801654526391809270898642975745828568678069487472591356522857258353162821025050118828435557115822688885005845873342188897172975682152368365232900959727989813427527558935692563374921692439184794983638338741928529937768944549130036257823181046655179112750529876288622601988479304321914974638380039942725974422633915587774303976020984396070456137056611278980178155221432910293555057609563726733189907828160925598932985358695164388224166393158476121938877862502033416723349525651642174297818169113799237538406565359673016989863918182578113832552559982194435378681932606098073911048574438742971442043834865037366244729607414093146786570414209044475339328993207800514636209342800252749823361025457280659037407859182453373400956548596666081156547969517540901418179843227197432827193010795636242124112480499609781951206391755483419883851738548919125389644387655072362972908127665086584297795503134910484485718903086744017126830640950335742534378095824152292560784341922288947897678428360730351348544626890599795710180329967837820670375998640676155197340418522749702534208769824535451854396524945466837381972365424703905166371785676776096815468485341605573193250400318527646912849146262269391878119067776374438189674270562203273566294358666930739517047909798922840525537723688589753798821251853678946296345742763430669140295786954379671448473802355788123261594792163820398513362349367232115994531478386438898356287882465131622664057722406911790180932627046171914728594795735526398607564396667836470867743868535183213254700912498912014888962532168778151011933853505309831390562642511022499475963615544918700668087079335504849288272852693496337861572636929868878367917983550749989684117528284742455909517569068289737703817980834296833044707962783563128161046729484904470330729116717466898834728799715393285292501555347542449403445814166484874201195738187627364802576054366807625647210341345166322979411811020449062481199769429711345238424200792214912423061361800066730094831281346421462882536445868811443875975595865647950349413080871325874021273614440887585843060163207262169611191981535380433174565157149734664873603146882326131469925187022545619161139605399578874097554468408544704184582297798741509659081161750466705932346013862716808150631123772874030301465681746014366047062061183372549845896309466110648232134490066488068496043369436159103806598887579567081073856008091938776955759627857471723697556121804660930398722269274998388686411735006180169936819182850713751591618524606799471575763481174779149633296068495455536585253327856218301612660446097474405455407138964956163140644523748170080471993055964474583151712305442766470384191908736582556861693110658779735408987535348759036608933992009325918189735914477805767911979455492831922638389855213509664966907708020209484386088902388479943277945457842950105525950125614373926733075174008766949961134365344662130555450600692956111316441760311892743065124229701912009126687279254895319134545544660821245289351675449305936703107470523813247132655435614053018774660188580727802293485336094145380351911137906261632136520744081656344027696873361561440361472117097249866409781866254776576714563082038932840983063312725300825942783386196095807396836015627214095941272705660037679581663849168421339214413249438200528909394302670558067383141731831680069893123108229118846988065777807456093735827242705602744627467647232478924235503568092331047237279328629297832849367346944924599068776261941411431593069398097271241403527863051513839494640941779311341558196418949590464708681928743322049718950942904305714214554061659658149400570076255479081382561180711134608465672685099397065196117109568641289426839315763867094231849541058229416651078204230242137179587218566368207780586681699297086487078936069566699688596282585840002635829466243559585268836557744411505208935088785398814557988515463857841585217444944177948677512295356986087257121016212298746446429708632926757186420423773817083046988067339432783727676882579421472583532800439350524766427626600809996692650876440488818821491388923358468524352151355104699637323956693995741832782325726459770316084724303409138307885931861885246189671388312493633687300753282989981120148668418556866504829511533965605259601360117120429547145458085957141605292686973920371333780449976742002160507783632212625698198612064812068551731178413295771363157794523459839579770977154093858812095358207465998822651626143654366002034771653831290565207351056500362030191781842528248819887034346427566953214629596959931313451016503765338776262217492699709809245203263642897394896395240168270502347914954077668261460329180055695269439465840599252029018854819095060570472493229120664074844701142402812135462524752176134200462928179957851733977456105636168314078650948468142034500148288880266850717512245521683078944660957196413068623050723391184592034203057532221629830521634507642080532886936683099574103497499303081090524541966296860026044210838983392256786659144543839616925249164423819933723145425839870156823125323125129455092001604731577307255124842999759975764066330646976591457581592921115614419502462594596747991870982855118998841537297508091658095136943489423114845839045062353240389834434537140762542831343550771587553430215570751333410977019112084975684467606060540560484552363503325433185610441230386314776273550560383366594752296842569230221518801283632371995988684291872240463556659577894618455534649584385590864249725308262859571418616870541253691341796177767257596009934843178172060266721050461949110221004618856254345421610480056856980077569379258474102373027874552025828040439236265520303181786407577012955642633894428588955317455801837480904150963852787138662032857468298091178142876403425399208830555143677103723488165918770985827876087327735705683224635533637574356902425315379097678038775782095095977907728076609144421061909220918754481915575542693958359762718461317645288080806915868256136652505550534341925804547175863629159078150930672006107963545225546005058661255142097890098526548181816107617376928181378207638559386910848995715945199736504044977197224297038200513122687716395727149708387429004648694997517572497091709684705024668631432704677567520694243483502747138769218420252407251203355480758707454038625304290902679792278275680186509268271682365950003993317806892150058698312712146763705314480939965405430432239628292096511988399086936480005776434896100576935895825864276397159947376953066413011623226007066988080213375687666682867467148837490309740747714018597595565908888246908950950528351310582314365675815499470578705408462985703541869435002959497761637214224007594397016799987164907386647621414974657987358226310692833495466847658169867323893662312515335037513633290403818036475827157553582051602450530572855771389249447744842845424935949623929968892735925507906656810417462975664534419077987324165011706931702280496327213282727893749699583588318259764425641026650417815854835064394592128228550329794657369736376787814812423020926822952345396106700380817188311814473691300469604556744944109052858865049466412699138392983256969130898043448981473979562496050818660066965457891632258065086229438388843435145669544288975816103235091945895527829229662498383298147628039808156497814058433918594726035953476212034090514622593190279871115885701251769454764001314861756720180719363890743065481346943612769591368060389410177242837766493118523132571096726204053273416691535655725989667573124082577658165083734180002603200035123387645688653625526697253148946190320257521153753682685471870995336425502049286900754847808628136878829459993189480741697309525827089494189916615787131961697863558628513738180942780536996572817106353967271564159643065386248182668075872631443450789595338324192000938569715806506562596298154316543031782534839194422074209407090454425607097726396808245206424390936039754607126038863011487458106334102616539489365648503874108774308509445883118837079667252252128604532683532975665360540252632296298717346116394554691279769544351820644954986468591377912848683680314592174828019269336062108007449716026888793904705041515004916489584753205952765384233604153641018649149316794700779265829093038113433214822137119591410827429449040831526032145726132607506448185685012488299266663391806941525432027934234089068576171118575090459208203200972499833883091155830739332165423191054866774661785915258617228731101760622484220656882503746915384894521412712738652356141604701783607829774693337905962210542369450391916211912776675372674042984647138796370465834287501180390494531382373551816001106457035981609456715414314980857004252542975627487048022857007000579105469769707625602051834968850915640931408892773203173354375447256909928674298475833190585996706531144575228096335485156810086117281639108470826784521354592480463311980872014546216269053250079854646112350107536601482532485037563039866216331389083351309928984235224627755726624537990866870053269917454466136806365488815725015399933368061238085454227328832449075557754288152030453361659767439217597701081672597306098945543888418847207967110187436638237554106749560367360185059897596109123204811053973565122406193985669189006470756310959690878261022084245801199527130234484795177795032736847691678084695868228427857997130530047068302684323350773296834871672860654261848618225946090598623663125646466619174879621204563353204405802519388303026745767667462703829426923698275145292099710351200645311557627159713348113309045960054920919952190489332297189241327426377960508657022838211013735623401571789490601090113709749287563332528795319483362133883132406386603120221047638197588848996685948454741280424686735964281249610023323427879224635339835519956361927744588322654338044014850761451547501484156777306395013091384802706359059267629395253792238397038630259148005951866396054087957174331676991703049453102460398511251251725626413320245393432875440969334430177614989339717359473373501366508147492363239861835502361440774501352529835389402972811298528440931832918961298677815858271646420327059356196392545687084894655069353885178382974919839752995521971310761825219260170250242883208124233583855574747443279860134828282409887606532125384314090413387357957743713349440021585453857850621221713624360412933479059658758532539860604511504010365741990199947659358788455512710005301441996709136633776858146807438060843533657126769606683139518619723092427903645421122867060877691905918318667746234332320040715876111964500316938365222763677973516822817738736117781321245552777226584037405160839501600989578398346826347626566411505909438124907531652983858060888226302398054002122656209825807870612239010224293922525055698989490054151908763007280716418809319464453597480185544842211969335978045806397989062482190610153073361874303292322971710388788869476441595768615064679070876022155348475226978819771933089510236081427341972921329656494999983936161378692489909170591133751318022379357394975007810327236912337558733937463592912026315750959953522363802353109735901905974455628567321020343726516149953496054617228884136510126483389301100912572835086179763971444157946190671501907547968886765535519308760185862297644063425113984273506015723627853794418147783930601110062304406303298495567156188794529037456829664882897627835609159439082222062328732286532307174055975646072617178314610170287815273455715072766355276058175834572852810397506632622095747127111469721729578405832857747272888324516533127027429685072698420908494477775296405124136846830445111346143566942462098202601502330579089240419351317028920460042311467259548319205061083328292791349756146964216825945367173866337526647072549608499839028908403284949754198793908875379113084030185366720382045474071462139397704246439329686626058953740266025368749854833443633884463017018923812142025256184064753746577809045915902130705158643514152852449328516851134893797735526440598487060099375091903633237455321954401833157191906049431255287111409489040617588487252393619290184180774786269132361827528098706874893655587891967496618694529711443000774580296072948784703517677925522857232421243015830802398211460649311025410042204142491232692017266139869850559962053277327495720314448958702080416445817316941977191036629223146320290570849420887201846664501681447893159692412575476277759855487235770174291159732644339538034322401569693085646629763689400466628657386954835671979454627266154742560892626580776616674373453161670327977432423068920404319131341483637540893779739650567886030896246569688267636054824803184821563604535620677156265502365253497637581781728259387445708401838559336496621325866412083738414269778455003190631537969357852649090446312514516865503192862781871030719822429461950961898746806729787707999376507575928226114530489726444691512140575896467513983400771927905330421179145930215693129591990247844508671518596119078320276372326638375316024314520171820636461635291571913872647891188425364522991561446968537617244877704499996929029147953811901854780972250123831529907616552935113097115824073593602441192883121287162512402010573040284683209268966510381431512530820243887246443271929577569550228971273492173251381798002227548898364637317955901246969074258647189655435189550787514123529761050666342563273905398216788490607698548178315502704350562659167435385451501238537566219720458306069702949081918797741835883558830123941133549812491826706334973091147016426637396811643347308754604341657517259234968104131292631894010028709431338018040719888537899753328762795077891901891256430285680542573752369773102850006447119591175935374112780544406976166014227144128047559135687397188122829470113641890548337420179251223490681678161308066818970371157937128586742646609516549306263030158893181282370213841775423127492050550875796246970290640206303886570914366459920879082546822947982474105477652531642897734197624938422429628003351524620694173740013017312465644180769301418604651741991624354175343061980730236291863470587326758021509579248966143413602352991750246127048639728138918830552031486585920300825496745754451186348243511964432742848661312899202994175020896392436822719354565290596358727102307848797117222573110091387901466847949892946944398069256715638806365115958398735486525716376077829609073714758798054835045063304117417476604915369494836374226467064055063758076417117215945256010241050752526564058244823838387432226720807281989713644264871843634053356434946158616218500478532629523822957449124424263571256956362743278981336588319407868016496964301868788423652350836272065515691139335826353558101053936063113891646092506289869782512950791287917867743341263899839406691758546383219744164924073729402741562461871054839011547694145706974710671319101796452313866665856820087459670023294364602293659816922141120723178263786370659250571774459599524937958563528082432411304887886809928640496957984025534051561070940866790971320776888969481111437733114046838209691274882119071665978489415197473739327298616967990089572332497454280656109308283183025661553247866875386018417388410681345096627713244533214741122044055486222554465583401381005955529454135497458589294224328737313550735774512287803848243056550440802328400060054729755310189085030997935222016145271927118146852879908638179339351957984652509027219571698140845528682957018213082505803850733436383740289828923593331850892922594269461408129827901149634860080210876847362165291791441721530323570169022728460818338310162874610895369810287570007313549473962840581467197881062858508350230871140574099006813438335313637876487172946984303344620369165983031828720664233574107855583458141450245314358130752732157604722081170048126108007887400490645189983210058253166377926658662274161120140376802046597292122358179424113934045795352438485110255713928225163834246491183845099833761763947524224959642999700866305358740415822485213772318325883058370526094346397933399598470075436376056958914905516366495425368080828373999411522644602932670619408586732821163255909597865027960407537441060389074392376964556575472667354083651724627531822166411496268382944555144226175170631895023908273352105938393960165000354736209686964013867887242193828724758145885736814466133163605891358922016706723018676716657726860074770080006242987098818176721957554072225466262604626680645970520909352581324598106522007964226597394871084600090226602177498130142029939557116173371207169602249094663679483443986907554151312672393906930654082142955801819950592255116454485273882210104961399751051638500975284277198591308721632640282118040835923640370666779202977561680822150493724497686238673755071097117672845743423579115260736786040176330183924667279091538132579421303505443446626604447456265965922574986636609214758237752563127702563230544075857873792200055452714547269961592509150003236735785412430412349342413153857836573119532714925775943969878720440751862291723778491629351024791728806207530260775153342237705807287480501055620156190233939749661518037185828825666189773103359018510216290510121559881844981258419212752483495643371996698306649434097320291976431903956642547495099262142755535093064812042367837094298739060641855831976393187692353411741549745804231041501769907226485538285688029274209530102970600098714429638708029137073634646795178831771798423156948235539019456661054272574293526048546508445894662489973834122485064565020873391869955607267358260627177704305734815066400842971280011858863636423368518531155851687423753588709031536996032919238770994479332443690701615927787219189439294056399717858374364508097616983862511911621146796411560377124968420428675806425255332568306258326460384647294040679752484765085085881934601011919864080984489617395226135583048712098252502982608593755719165581314359550957598074915095184654485201378321620367767274530419856963644372667556879245621299159850267325669200246417683941478540707903206099859489125797014201572428911290445427301955336658023414710691165882566265544879106445402885291002468431114388145110062711464933941504326206774407879059174334033326574368251595958376716287512243863954471076511528480925805074073699578467102525042372973798010535966044743096495570204711998814184866975598716896669400628351768276297906192569301753117809335574263722253659538430778488491859797429909869992464984137580432605746117428581427243558139382871399973278250710843377505067142492851763709639783201777229639886494767938068566243056054549428843179737289505136903367990090932977786670563514172261060088045737773834418963011699446623425036316159115751372105794157181449976930695009246446477308128897334246399461560518950524911643692082943419990320996124544113711683330255614821973428912387619742515236637354523241008628218887339176368141599767818326867792504564212960566307184262364006555730876815369944351365581309889165221861141798221859976220764618194694061718799787972639696616429945777566185321606626865656619625626406758473551494406111446950448865302665008249471396954237088496249649264246924957344413077400996764701940423524108862335205336651483473158410033314684343684830508910231451711374106707650407686188984882569986448617362617694140622775346251595345713025335304485273896696344973707975726985926069930693455045213330658139808955572122316167253636193648356665920347627303931121142332193848766436867891022799461520190076128267596987264309120616405186644021886072054298217898422576350910205208651930243912224896422597613103692078870060523232594851726211253824271967123310807490414700973958331993033608215418309519776446549013530581164420501058721930661299988970348626682141814867962317377338159669396098007231429928206793500160259611450095021960014952367630642152606625143642560964038350895578038961897511946566993234564327093951213516271865170195332609771887506675589096491790576480981026753627603143951814205300622393135738964266251596183714587586146580990524808732517209746962267091777851043239374399378754189484112517190379577883238717983115309628169134006426132852036300180332005069601908340164604974235100443940903936485203357089075949776599014101924310477234648552289030236543127879394458762415083640900402598418572475574673515604406284191916531133863844392733234853896108923006569259503845511747888298640446326313443168277017098321611394528279769280215830049196804738960124135353392306585442694062030797498150606746504039583874635911947790042114998444401128911664125412060041461952837985862958001693457690566876164617693423502768403622691753953663205685947211201157881961637333406155140632297722242766422240628605971271010321667374687296910238033732025327585688095319903931711674809529110602782018011775524346135303068872676136345244040439614131163087699893338366890999235393030129628100078636424958674185878321988812408664601534242388269731212148888250523746889874720509559450555042013138066285486217284839752794768456698624704878386722837023716726049810308954236500334771736195719388097204585001941281659884598552763060517770551910628560846006614470110400314875238332493464625217063602318723188855131659521804442819546343973196938982762033231366836021040455477391606572897495253116855601698157442961036201578314541096528515061621658207952197632946360667584487813876537380966574677313322170244051246024943059911810112820472071294849505969333276724644419522531631771310621669243723201714285832279364565300299187018664990328330726018739595676170041297880275029611154424297439178801294713128409474225578563692946412112165672809066156515945184275738748841262843049301375145367148265089597486799290737842119298583350635596942281958171793244993366511356848333787964568660641092745714826668602516090897487100247638732900729426177238879486198022127747440999668102654423235875955811308393361504150639225830445133895481970212217479091944083615440968613197046840464841104570736679697066058235460273774553880271601599727864162357163492623121033356891299887699415244020956363075857517731353497989759749846715398849759289629234402887154668769112634364912725039990445548543806633149014179130810041461444493087874201602037840308639954765966204767497467615879257534515624001707821777129515920082616960887850726860947620925594937334718507044425854667144950261082015239482058526184058492767281587313039678301791233418455581079334190763952793514525447127004887316746101838236671489853026166590758585544421671716662625169813356793828886785228568667117687129795071782632487474442776969677891936889142978722584832016320035470098216323156707377234761030872317768339723034802307039285726303870044797793492786512118104327582293946062292276377556782389004882060457161760564060624648582813844282808888189895453404137042053798453787044270633533823801427623858169815990945021530741043283823609961350264430044526104925096792196606265257932965177222288838131596541012874274571900184737981891797591064174143789824303052554681335066419674486317133928146806528020672138410760688738373999811484660223945941553110451736132872855604718688921133683126159763911882390551730915356412566719760884814182378363694210494027332689994368992087529626584439848819535627952226578472083165315815768282302680584222445424819113558455287094981132738511481023072960855190214993616536121157553568058919378072512328347624950458020610927717018563523764831684180684917108510729270811938847292205328322578089028838215445261211253012970553193472633270190181835217783169938602578418679183162052487620089340178711872774568089486421126864334371803297188716399858907230093185142197797423844955854939109904814073486197971233616523547579136017844659099131031333288076373210350561978397291802287467947396439915565929814748664365335256313263766107464947801014994893997382028347513422740623006613595257926592701493747290091601402844289420677510614202869351845495206851585213956456248858361259658223547103200390012683217069534490511614681600687058118675156898220271375059048686782038463487987655832989492432428906873053847039526989374294064000983573070338505931937565767332495933901416253698668946897829922823081939554228873545803471441950476846145288113412410780782624395929392410954168288204291769803778006456962829107843065178450566992093149398915366617264201999098390995787357973887129786051184578784802840721022384990782250439207809805110682756853181510871960566703259420107680994416511678381363664419798108177245179797470226914119824678818238498997039714497731127391225471843288374402800171898470594278391074670961537405315698503988873995176849112548626093997259455302602699709447242103579780223200369718160001635220339810693102740814937610799325525161646138970141869910923318146924243568641641999587796783677680093392823083873088234932589198803797296165435035032025411942620387769602390362245777220001606200795339441766837992488319803527353539758351934976669665142006007507444664752955200105385204310170210336441078514514035654769279286214343091822208058108643775034487259283509652066671051935013525180105697663464057873105347100921362187700387197656424885193527140234045341694635440882211182638691990355436332707537875238618671829775924360805352662267374208382291174945039125170268654308061824960257353315677059020015989496812164130004488152088265553610180479002536864950020840122288675276896941314442180664077662363694948607680683386585168668333897140742751756162840813927803002585566234895131546660099930628578905776822008595772223847202267658766229800705793892717610453939742975597095724241964573088142875112058043620477757735455074887369628378175226212029557023492135367228707754485718917605666884410657390543707394312342195296810026248305060707752149763912924819036335360681926898875600933693199737455899409178120917739565919504360062276086713214179747664295926070827931462753406707242162145615428680510593097537590943848636623525561234084542754774375036764234113325346085103156368394108009686597647625529622057638552464983577171345354141978238790016769271130770198268289932040654049266170470658327478809769223085261737527535366193423163493224261889375906444852359019915534858902417831001812187252582260699189307594811692806270098745483569409833997571067767146269336670416038764227203153447927013488102821240860911163035335183898350980870742664201362547873888748014318454923449249644043103865184006847116756720845502622392649566904961794265399563282252565750776678563560838096532025676843696264531174137115015999334927445350582969453842873368734689010490857228153751191315001227524181168744622418757479724731378006105718993372442954633251335130212937049095375297376051969018642041388067593916617223675757275687744195300107319187102154854784901846660013416880503323788949730071904491584620873976770550143401716059587114833188451676368472450074147174531791329750569251213577220951681379908739122470298562846629504629291945923003371963458625938070945451326000121171637397288692673672029764721650923481718548143860155780682626634191050510292485276532498120276415826960315033808333169683666942542618303160699276115326520286629966505846478090134463674713566286267800843468653821996199311865291899891537305424474382185101184473546682513665803355356357079237565666513152551961085831283214641133679417558307279309902844021509631948450640655477432333558629132540301299743185720104137866392118604966782567607803139354755209770333632479601004066676705863908242061059102866797221714395990333890768324856481836994871978874536351418412103331042221327396410982567269267251367365633701967732121291532871102460849805712003041762599480044067744856899623361111007388484260975786405539720141535261422071012046369329114594390944185823679256296421840458693643592455073464898023333013685974877806998051921167933357430428139013691697309836202933357271672701169669824328754005334053495854863591863404118345626070662806755815935212800922441331169943675949804962447298996962726946696832237116360594891771673718681165047585219233308500071744484707686698493217328389066676103986279425367483891564590963857120830529956952094380510996580939549774719876798077132950676022577915293697229249203903482883381362389608770381239320373417262044798530486722993329338979042583997284165381220070703209643486891544436950641774088126605715146825235670044925210517652440497260450804882971080153466514047543823438931555037658217756953804877876127642267191082609874620510100299327143587275938833336555306135715814782701781929995976722576074990869756150145779166216124251957616587409123121138108498743746740676974307508678042929198604964252313382932124104089138791295192106725550324994903999665604500465079318963380144186755490431838056285968277276631703311834071179111520660418604239754616374155689420263985078231253281061784979044205453426920263794790158071381010199461611214926783653265632718086669115227215925904246155333313278470630066464417690246664282057471168024020751250677748694912017388856555055384492928047062115745686078174039033070213384007140881240428659418651503856099430970819334628979723793438171946672629752224406640680773970463602900281516480787546791661579225862774843690914597156734477105864858820496579631373032946720191539904010935097335294469371430259606363559208390838099640526035978830984728954243048273496449381605693319189414418898019226865295917042322569641783420016002346792816814152161580440829980892997776474410440217146874485725874368585426567049058362256867903307352699194366710083895094246918908435234563540053003054500417948696488425441679707235485860620273652805392484974793804687626701920329677875872830778980547130869356360992464024281089359232302098766406350184116613879807970255122999672508897239671747957755400188165095824325951622599427854837168799247655184043584549962992342627600263519138145551895966716988651869279443915022798217674485042558702825221385829841819247337039432453388857930186230129884181561583564926411533109131040962266904880912126847229991326638303924795785295700444798175265247680451053169098889102895498548444602709485606951135332849188851781244709024984090171898759550648364561717601882134620790458872749159795798794230314901381357047496881361825296141528859514815825250293631691507476214657045936998386015019835613844980761433206469338257832979722458355357038288549417061245283692535662947330715017056342510992115695111618039467543958467072790836633314930929464827468555742681625910023813898514455929289372451387942628819849770780287440297716072388086480026887495535309969421366816497188362439480418148913577678607890899903415275996908447379549961734820702090338691126498175535356811264762065645708956086325839091035146466658946958428463076698778860146666040479120985938293605529075504746317926426370179787144196064648312807428214410446095833332921077160278092122662564468788501701164770383848345315827906305911662305332379438134899262356038681425169324685285548350779251396736709025765184677032157921451971457495650685634636586857090961070325642723718068292461033086646148994908381252987528621921288251560620643100717863701060852873897019047271720538618593456748553408114908723251325201601886732433929227025174304030484613334512616837954673770080551352220309111020988170047779506210629998531109927015749812135958609573555856504155688098804533571917250065180500515416106401190118794020019295146308866607923315564378571336486632806113059850678599856395590433592780066744722472532513690987483115407598947078632426454263788595517138577443368070632998585993552187767428572349242797212970609604039564058462283967145221628934953494123262744377392181584452022732909323597265099018107830874405444251483523155310572999044073465783560695069284130591890641821462450136645967003710478716562633854902842949067837359065164306205593597820784826399430190356720515280757704129958381521674345062465765581077694962740398095041717740019768881071095612565083629120438387926787493046385482434288817415976842673400529742962092680464564124198465662111903159571482386562892636350472927964248674625523528768658133577455087785428154417681983061910926655236684345284928796027854505482560998374262231104324464733672191607702687080734960295381814883586470751696844220880782631526226327234827080577017389770634137283799179405805175915282053147919476763041075183292843866843864144978952861249474020891814009141288138901416505581698167882881262824758587899264352105963758711236431498100481482941956882446151678184933776153104269928106531607245511779377113949245553783120559673706865380494760481407574844901845914664522989883860179937736994613298412814130923009476674432264301679564132809865959515539096975558224305514699718020290432143824018084935569819944959554935017926951517947465172688099168873202215643226902134495500680431880564586532507936942484511241169285465562224047204273536444582195492504836685700810884028732025430663279876716771993056054615592954247097918819325099969340898688879878961174740768911530838852252292767842512071020744732984440204413468937338555395752693217983946815510220917100002971600902394900207643664330985217315596456437374892458787082079769714310086055472839641789757446996771103869503426808959933069442804567055267218431130042495039569559240576360930684138737965270204954853648281184121056673566435567942783855645127357676911630261304157801805154106626416600833654293821904772044210228458509626256005922413057382608257502994882107451026115074898873922640844199828733566087214157989975193792639970017288761611039207621990723718779725795431152547639323928284963177318872243641609777303747450549898458778990462066001925103580384263862512057731890048492514844058225198900520610754072591510839896241193989505426541124600585200420876519152723074942348882643636145318143209177470362922570972863080045134326598215601525143537343884560620673176405404143126184737504023658926465466674918108709344543465049204116543991985465376096558868971228220455800337009518590471776552065277429439847249708539105939701308658089799467528453977393253982051990811247861580774409681333252440290447080837248156773789803650448622875817449075755111097221458742351676581775816770779570445817092919240027595459044736040527271085848735514296298290986583011869704592360951147551661929281578399268243344674988490902543826938857219813888713522507289574175315087598852980828498873326291478994011916744407490753970138146016621516406959001392972861285369310577718129511683538846425566583884984483132894807219695935687029822032877745758506665530461982576183763926528225979432741152489244422538308634648739751250572497076395693828199481825869537697251547178952812307721669835568196952594964927671238098771155322827502585023813019350866100213528277178619839213121503713114325669149194341217398500784224857677452615160540860642674692284886523153454304462500634342809527014641643097333976279439934197548410649083760981224063329797010377128590212266108978875368035111132772945059812388007195369299104364550858338964430500842177987812481685320964651663689623123430716490097436628038075417708174683030303235041591465869164447633941544989878561044015379195354438263238188073478883062390528389165295424242531490015593825534621509312095786930094108099718449185879893268784230650427801965839007377009646721356646412265611205402767277616657843736185500870517553777291265919197211404985108433406055077482864653541450153399006000342399781683178231745531432413290997787122134948906963733221216896778162258424074667078047598622416577987782169630460255197844998447842287670705845917662486994155136078298895458700007501860888534097897869430108391283375363399092750225612384823243192417406880969727006897251336525438811751805346176367083974356337559503587506229182716395410912340033223665332875813753765175708228414134063002662003903574774661483948915026325465134018925621256555613406358094375269246713062172453706946702806044469404161891401295935427946136895361587834287189181474196608512054542975015610698932887805839652371132864769140924141525669950991803009773843796309827762113576324264375342977568171031623233528506856662145630269163937230634716927341661788971366413070138770621696218319200929154138839371510106401031765055613778514538205845879366634019487707217122482532331869367826333148466343196419042058723796608911366841777300964866113596257102575238139895391109671806642422322528662039630045684606912536262109419517210043959541150893040474076148402407016319632607700963356757997586638628474057098131797701301247334896327894208891956019157746245762476139965723829504514410884873141946157975877349537937390069117901386016298129126368052065397487860176012901425322200615231089977385691493831756861597459389758629316306902108467949057840717769388236273121513078294044136432250287443274420037954216958998585598861301949704148824412097279024163978463442871353943788165078295501588716624895838672691096597353676955137464084535715910360342170163872065296585330768181036933035407771015906402428377537763039955867907887164657953348333440964440268855508046186328891689877153920621679267560672611394654032235075628096610918636581850137690346122787814150771323374881557163465689208314310941304849660451174802505665747266124654319226041476697288345444427317089605053977227668256682708152230804234636823756256447963932904933515337480337069152859842034377012420078982305397814752725878604062193033673316145427391382616164880238323807262379243975741905488896629878729549818990167117071364066530961382743299335006577445383982302441383538251056242340267641620154917285322685381927393682010193637587375912984161391506992151785889067833672779620826858593461608165737919295573674376593685463820002130942280737640841938580654679606203433285278674469138974293712452135314169621197164699405965943498875430075156921248552495055091279699022329241685874827258467355273084916155916278713568185853040735679062479707716447016227675293992964655294936349809241102038021404436189831907539397953467239275836506065567455022470259394331283659777842967514390464716232985954266756186975637751217886499452919974688504024410410772943224884572028599611430463148614071062039596638482878660170045934973706399086856664359053618452366412833795284403216862978019407271398730631556019990945480244929866220404907370069869274420444308558476484727732233104282049052234983712571537463072396398708789262017270908808455717735508379561948859304219271624023009645879610696999306720483323988798724198500084926258256536205766538783507516220647788846120005129124791036229362942282833995992862200142486365905142513318007261678998069816625168589628676115984974336006621518159297102198358099486446836704955088320090844641397464149369636319280662077610204221367476950761809629296284075570024092295738698533521644478593466063178099046396880997456730745027580041278866920602911732984804668808153331262496985730189118331556589947520495956018427002149635902640973537565504696409815817362731043011557207688376794654134634070436102952934131312673708971797866072954581715034782278980622819466281697316539964931403731856428639420338636649463797631652094269994264265966316802185067518317515571813548628206485936298836565616474497370844915090184360678978000297221789201673476013070477188090205626556208275148121300535865509156712805592657980462294867976736950449025878982981050889533034355426599691536312172156425045714205539159498004938116565699960654349293049087168400107963176380320694330433698781777786348791493680202374059059305003755553750242346213497863807725907508349608387152599825707787524022745212527810733231797026476581003251465488812455468263070798579063913075862219922640837379563509075355252979468795797359903490447003445890327074353314181714676671843835107012695988070921854573832317261736840203271678336521322153216142681572200784668288052308769265200923516851945409539099976577975136923145979175388030460273497776573630371904222498724922673347670827568730449514837996437764213682233513489943330335944766634193743788425505150869407182840353071589830284707398884979368601070860784149388333364847736601299145960391218815249606729293163232930811859470854927102192136203433894331937922074798313335967363952482879892473023283521157175304941406084389045791040186438343379257064647056134176180015218936317163711587982359779538475288964948464270938239509477812747452549453806690490291570354090555041869547553455530778787875340606439022115563852590390130968677804636994469932311987516927016936893025498396117999059075735635888540538104450937655903942061357113873846532801930489588133442369276653908214175137768686947685393090603738245675868847432463785734117425751819116467809186954141725636750684694804155044959836931031537333474870930204720224239940188760910152495103708174299788815050112818739724307906558950607516548030677217079943955290632217115241635231729572483415838501550315968537179754984501779469534954508674147727261111945872541868244047632358338392527581882876700337676496070527112547774795276707450194204245564741638597425522499038972329323224219185779100786901061327869721130963327206549630102742621012250745693501848196488733573677559359163511114569040987288104531785802265445772460287994506647607688707457499552815701432673079131458308117311263918717590905287876303518373384256428637372368584397283579028986812459436130872356389450796337270587516995017776735246279611077238114187090676210389564566376044449003348777593209072008282390963730748384258667768472298254931726515342190743423867308187191759601217449775151609672392610129839789868079379677758039965216016447333320297726331605700102834831480612059260180198369672769007264172443313502342626555252418286475311883932171498639784305049792143741357016322190879585583256090222985104473072084345543833095215410859069137943768001289866784046980259048311505309454434557742506755113026581216301251048457861922539461143706915718473849799074904795548505278926034914378764379389192654797043559538309565798737548209443794099471390495051156643732468523485806522298086739829135008411132284359926315924839557684305456767883910440128698918511715728590150129856187408800835797143080699336018421459641574677794294826928201648752397927545716534244880448082921616248278506404997893150974789271038113292342213137499800397137255259264404515798950224828876789713097452486561941771625781766953765553114767556735490005763352813975768118852090272848277697468776264412167202063105091815464791012847425255594978946261463054501662389232296220934345088644053482002814825986795508950377001309885809767322507784100908131981187380511693944184564466943442245161576792100504532795591644911665559624482298266128319177741568411490379693201345422959518305876117347620561129940600250870534018293843277761456274560702940485925866732909384194298576376982265519933236229093091893228442331671776550253213295468307829820250250405787379504041482104278931510629812609126973567877172638556535647995925162787274527595444202608173714233173844507980013149577686963056684010309979689665319509311462008911724699440374957331973335094480446676610121532977022734536684652763361636982079323049368182708785753240958427610340421487408189567231136648962722804217759033393784566042180233951529110977703034186575776851752097084399718889757143392149474905293799946913250508471810675407048109704289598637195941144343063784489036233614015310736357616909621633208704567619625056501901316989009757106018898976110782720483225397696853018511946247372796541924179780127286942527112494951044491469380903295879277145302765847958792120173572663060291945757524621067447705584339156568042723524732946605842745848073542162922998923790104207231092553730331887091232902532006304896801231071987674794917237297576603479739132776539925546493843395937610680417001305793271525256550615775060046877419164326467314304283771222147134402264673539875071934278029593999950516673252027645434334236998089219394776338797226009986972936059369687278141805445715324643938334335494477113251971363691580469545026371004878240696333028399802580542382555443034870798800996195291558946771267666524668197674046305133507881150190308105471609211832711772507499610400852026999286435734917038958224387238301473334510203481620018010022767329098297429849385953288492520849113148260039450493440192466203760298769111767656258407648263914000400962462432744726190647904692592704204566273765788932213633099447682983938362409045883576587323512706668121252508639597230814409945896765517288735603539891780349835878963303081405102248603961239548883374811118994390302047885287076609905497727357697280910628192632190902269291274542581632800245340746838874965015191496139230029189787478732147380261918862998806170093797480461007061103156437556768282675697931458698964930395437947787128199319139583264963948319849654283902900040252905676553640770771050205219666287137693008599042533650564317037182638962171707733145425712464353127870971757675137075816425367666492430546413648438249312693983385892393788729489990598734645439829843975457124107413302322652832610464191816814578653416035125744151484494370135635694116223337845640846549527489347433711333749965156376411571186993155059553423209460978749550375271924402161439145132752710638975831134228199736469758397932334421301688647261769466305739142380905525689897197280867226963701779571721538437040714118639495471465044621484156195661372761338125498404441606503511104126518047125811640710627511596352658627044300529967174464272214190323811852694459919067816771824987785498356912186887797641382841364397180443433366784352649295638549373842929742159732513734182840433697799872987684944889967452276437637142995669722932015758224018770520372447954398821551821404630312529840869769552284576503745433579456229529350645694005180868897397290737570079301129276032621460444880772537996372816488381182087661631887877726982799437594215851137495760124065055097003027565348519757305511369997174167216664141554233263824453326565783042441245303778955382420778673210146327738115781352623634121369392912836500519467321618348049478316705789646152517997085128907817245990049381732663192886170643818369688359905794495731648569292601147709771204651933794700227100185468863288120223339039040386516197655370005051203505822446414765581697533938557908664628563154215166941967852666233947225753018655348583782344042626195933448983458398812760847116423475081942407335206204108555457219414928668347007165373665792355817707265103465649692437397189247280056425020543052282583196575776688395669442097225217671263069408485388063227642117434119391779272656696956706831144584484144676209207589087420121362330756851201228062031582294074897413591384863389341209710884613882802931821528255625422347502880320172522694980480424497205756233619959514508300545688372197925805706189704007590068604188217397369823357827452100872194131514447469429958981506647028909124087277825784532168266806252692812772792857934980695657565721752763017421623471375661512641286954460555159598497002089442339336311879394070791760834382953664066508438356565497551429010890976765217958796972519544754286221872561764724755166900292711727742951262056409099437689091398522810230394656271688319576659646351003835336787784481917796313302594046006123979388712376792676241171480316080999501835038336378283861781991098241837410976896588738995363332711536533662529983571794286269916401559029873134303836541228225543835388511436106977406044269948266592614362731396476419339383036459862425390381194054517305917512310571961238120973081077257477401752235960819829681884419995443698319877551796957365779036556713979171762891280667652351429224208873888888350010915286092807975892827106441762833199901030543640568520988224296708807077310237795521397681947941872341612220132449739867019583383011918495693186107732021497440875712292231260920708898641566680944599624592761163500391826233227170493508439468816852872269100832698660382017963389159733421882678747903041014636401375433954341649779525791948957649591301319067168942871582675868247579902366677625646311021238759156688195273942508268984430091353160251756412066171827661905077652821408170155598945474714545819014388030673673268217169079043509824074516228405838516959543803484570422954629207436551909291397890572846467473943909299082541774421545746894698725914624222415537851551877734104051495519651043635259158061889549789223522970658625393134982423501962792426801996871802114800863608695134783939112309037948741199373129022581057794510987957701662031537243884862345242852823295630490005355097105924988561569451623022707200589421857547318358551607888799968582885256828849639571400997577238814422938492885589811359453082449357807026537590332319618457694994073463663879119212253680728523037367482671873400742964198123125514282068268822250175946970998160590650719995402863477174535427026771110395938155673268169656510542694170813698588172445711946293560277375959578868630044982537645979875890005175114135832951525275091536821602877430803489236845038042630897839540692073133331995830089053630714472325544816495582802314371831259320582611091376233002159882339950739295757713266840345264700093353127903124786464603269687364290811021559419016426674194028747493679218957346657562088766120418889583598065088462321080029663195021755174203360594224387032681860497098312221212772910489438599367776673484288874579398148757110458063271582913590007325675285473235604893363855797406358355396530981364989816451261883643452576081625936557496376740913343814725019421404932327449995942703247011500470241649285233413368071620727881509290420940133466778532554172954041682926513249113281186652993367950676210292313714736306305357443268162592927153661914447294052403239314325647308154611363340217070287224384878174727033572417924846386561063993835014158150894333240171515558962583918128486772521909132020856021414701719942756350376927334035249931710972613264931544420800866275999928958732461036100888951997277766060330120582739421860177531434542974590619932907609521706274459542541856361139301849185809851954439207389292061644235477189329319377794637331409029889986309533114340308671717358645373102493824885718940927316221361467734843197388463549768005753043476359907365448966410415349098836355789266238113374081142291773150435851701717428992527257544863609487482704540727365835004922528068619048936597689330592220146598054731527181808399317112457465120963219843694589907547306620317234316538189974963033333441634563389594029315592614194913891194936795051745547764528844138967900097384523742474154438244223429539930429444115315266592744174410866733462780857916483342260803321982789232078071970486247946107801813781624161207758047552229813484835771955459110565345520013913279129099837432582875607605547007028194262046716761317960414878878052810349123257051231950130736101720207875686541302684923019397903107378237279205099937219528722456740452142908708905606223276936908256283679787206179452140912563554597298960928630712284925843942717445590498394304638527123267091817321426207487989981479205446935030468000034089737947674527542996957540826167981992585866351505764760397963353516005507072228494426805331286179464666385080634911600467097254225992719224027278585910301188169938788009084189526507427679375235050389423242593304284617829767302145574945044804120098754535303739680998212002458633584385656566173571826170405010811929778739137595154892955730857898176527397569695346155320712286027069300562002560344584675470095379632458723981426663555810861020366689021181591817614958770678138734284571916803144178040005458340801919481674454717368620900778156219250217569985385194133303149397378292830390801417847246059670897404288007416805937363425506567101909345823508601651934643593538369599219817004869175521321749000857080086197450272648812420141414829707120208229868019029199237557739910267972553832683496404241247639803865267403326625000192066165064502224484324123613224048737373429281951414332562269593856029552430400572845597559470572342020054557027036770704199105037138563204397954526803658813039647625700012757843285040023550384236458220934618061048861568106821092704516509868209038449332230705271846563251279015598094373937640308683241605364063891370478832601038346873875115941915948809267049923621086104206088768979910085467171011078816042272199665662270124727083073085920405849411821947890086741690557160486161121663636861722415473206621825683315527610160158222286721345648723304256833299202377354338348637498470796555217586221239562557386060757789216949459330180173367263219868624600011636595323464292114249283475413227775054829966122529195591065491695306785880332910463714858585575719403213676241832601345763744546796232675990134859882270681786866451814773786603409873118647389293535928110595077932012192215044051661033143664031682920740832235956430906053688375777672501033591853402991843482628950145792757966254716920409621939797310028343772516032101070428606362204497427899766610985611330304713828737158511760927960388209007092946897858664363327276684836935625832675014018572919301349947657643513076794302001992944571675559608172201595626621938557558236785537356286584051127198509162646533140183809748716027138112052268981261236622782307923401925468659248634609521194952302638148442557599166300942821265176936622303077588686335073388208867618647688875277120300360847139291005469786136087876741210310529715539135413417012723296675879898746651629048728094021327996867905648171902172369075435494153929442985424374387164050398625491505286685526247750521944769394835815754907447557172676914127051864612724858870670435098588870178607630300925308733975328279702582891570831519699961418027653440762717952627622151923149747130034677830483468583508729040683217122458760869468739462942149697474102423945039099828888508350898911269526700794317873987899976405209577652106965402501767597936993708004717248784529632045092436641234261327328617867788604234609004058082709831027604863117588553188297416525009287334273558034276605381778812446738500576726802896922872850838369073884084114945170158239742950420385127480233683555538073797336282667573181773432765280903476188924390991876042817474411975504335609603606653237347183671203934791602334746205909853560535641029260914106998500403512011762991651977170484075991950435942251483203201780045398617448914357050280284648429536561231956611397067680710649102876575067101940576633816940813518074998550491307267466345729240440362442615821512564998297388063539996530200615543376308627527162011349876819728621631216455453885603670645323183777264139898107452768150519309345783708054447379688235706479715299676195998644592947889228327519100781729366942522904065879104130838662311077543289595949781074293917768844248769678352656630552137011233433169584444334489002991256863037480179467567544088700203252935887471218599228957244526232752307534480873355847537402187350387472912350709993116872532409751869456076197878772601567162815715672845735178901179564420679829824767974621785973781222178452901710015227148585188550187699934306659127872045214027621586232696849276139363136115459153610812146635759523919821492867261178990933800218883692418097955289641342178855361350269053732169373505401524364487596248089627652496152884795077573607429122172180206854266910952393851886857214413632441943728901106064523731827442836685908641633274975493514290087003154590805331161164794968364430585733077259741972103928290888542526776653104370209052231967174761071478935380812813431179849036839551046137805373810335407686823574254309472917851086174620205191014562772408181423973152154067233908329657920819946633400556104737052756024461981465164509954472999122063874140519790924991578032013077698586393778981090293766998427301187782841927008599652456321093847679931910682583741230673180899042714087793881518414300071389196280357607074691027625769522564998153328171106770941247264985901336419861277275002816560716602287992444546434045099806945431496537897831331739022663028497665541903283372466915470475910559616633347610125020069577715280344483908629710560829802331447918512772639557378994835456129392100158698903166300999809331725340580214916590201060714993959964810053022108315189791407512114061594923775737495435399244613815362709997884465071504688942870722772445764951190472851215764021770049392644850769790492475954586687243756466862790530084956212993500753371245946160728590304333417434458032923515706177852096688717870521538316294435070818909671432389023544699636220571066064047029290882537797137385089955344357469185266594491934241709368399009800824083043001311872490916963534193400066179863095156744993981761895542747598561227830752105187891763954184888219291389972960165689142704017206245467604311594685155754160442541820152492840097039165073622005255666750311144556752391812788384944677673431454684234710410554781033027925436745877354988968638576586293177815224260620243588956894863623801651707255426484547676926862816293231924172649356924366419603541867037901600353205180751564102303956094193992096334334569249528762697249029945122263819836742874963513397656426528697629494476128193584898511151998740462244442014177339253307924507591209134501767826565845316488398963374084508332099389743229618544662046235440055171195806282358747556917140593679730450635432831195918778172177281203817068114533917756114564545814674428689728347370729512608557141505797923705682040033447582464254443966896451929491129482227301756613808098415358758727326749704210170242956106882307867613687483487337410601024686940976545246446014773950857312106160881087327721993607415409697230036526376790486420829957853379772956484261201022101393706798353557959252850969768020692834193976549982607524404141736092968527621534140177042122030193204390029066706947203897515622543261668607797020919612928473567225771242751556467950641986053744862555252803777936687908074995712618599779157584343475327714481366081288444783635514786388336151565936146577480960708805865011151226704843094560656363570980795276581843796952599921720905607263868414150087209863378814629955446357767770781864055273624127045840698933242308352290941085827969747704710298817227416321802376191759686907532763775199144883996340426094989959232279319894110506649870112473706553213196550894321644768408177258815879796759293920820514918383606390645652390429493769676866747749423947535025816528992828132339661516751506923290124404489259465568044553954182976644680503120106782847289068036359458070946550312008282634256185883178572945395160260761642066384396239440208452472716218497727822310921385449810233954118752140493543512609797993453730015901999439139990428203595995359794202493114049478760892003945872627685787079414287915520393320776423280557012118975231266142705290271588046144906597306319496045381833168327029799267398648651005554885510737074543190040132501497751327147232444474944167591783293059547348912395480989662391837276423765736046131439850388216046753305887784368088604152412538530832647069807416383633940609759170103646402576411387864658039716333966025295646153656442699222055122505763432063519566410870110139667534687879097804236573635878864516318649648163162129471804821053151336418845734377813239007570555195690984835368089950201183985077379643698424285508380834009046310925274075723876819542947326274942556781626263678135443694495553489584784149927219213362542257823518784408084825048236720747105574766800755132402700558835292511179599059718091473377604278869407911383384976592451230920261027838767879812369292294701523886430164546870814063979621035341058853486487741534418947144237633257176113207097439728110576695191862660335413524268978008850942758388199231990693337880934620124390150496415505895873614493836178447903351985282250572770871015299370708648062033225774968272747596703302879252966480497699933080860840892078772751536395022141009475632781224895964723484333032319754140552659859135125138071891282118365908623093892414364478913097209958437641343122943382680793088565807858898462948056518304025793318274765749324726537010247323067231086312249183863815525317013769613611844186903882086726586397205450668156661349608542639387752252453972811082845728668790453395653246907162052330791282567804290120404667829916927441819317500699572653439019194128199146622163787793301388438087053892258936619812632221947933472101751231644077904655261980905647422501727711681182130019725876399924694047846591015500968830642326196018915398384972231291762363392862414061487827592711375034699878324700406804652597053393585061574219088710636244020890770085365777262058841831719759193228290105430428559199233508845008144891512143937093814802862482016745868763673294665586196387549292207754711023219227343660714756684470086246342969400791652312482898892416539941507164883828486550207673017881919182896136245260017660422322864944159193982253948673954702266770563930420911346453215220856821574335941389002229215424127238363635951456251891488513243640983573196621284105600756748111082519668064459919627544638885110750062427698524686786888614091088697671052072487300320540724802627979723020804925987895633381279303560146662796790258404723003751799220256725904856630521652981915365425290413129953807179494019324997346594911459296624414666760594897350883695307403686266889509998761635468453939461537740025686279008638869606601283440189201717225301637663916703977813490250895327603271478002320473588908827493654265904778605491643053068968960790029711302084885185462261462363699440620565520958857550128969083361556439739633951882067735498173421982218225431634889311584080765912035617518115831925887862991242384357171622023783267119119648857417634268709255928444204578403171291203346937082682810101589349195910950041388658150889250469524528948866878467272598392962613730519744256852140426986217942707330322155949990976019066292325840638250398060225010294067620457868021661701725050285013252407589093480228405388713915796972033610155564204240973214250068158594223430009113341798207113976441905334020267911255887524959406078716756353807369058059089462910679358028710764269352811166972414127806309558336776384343115230640266940911925820046144368470589832921702233839292784549794690187428717512827621392162772350617221597642490580977010218369194516513040949315140132472680229338929584387265314686910364491686688422360264125007024318994672817901907453986867161808178077317291712765091701679044466874190836843482827754207870191537178833907970148361893777305818491273879868364918879236756949664655596148046386327067255175599493472942954334158987641014270416234021097704596947754282247086529937153672549382137908801328113813632174137268279044981013774996787294752643036249380788076247501634866027678310336316797572256373705171637329114924140250058590174704572299922817261644622034867230373775768424712692509514545062673963223991261925883620207389370560429206768687430604233529868045369338448294373917571900194665383228005190959335358342179106622350732019274435298725953663780160556997270114159341964110170320583721654422284040832858460657955358095961366827538373683272934102082238346836468077974021637504557987833974198025591207567728177468838236304948924567352087212736397063342607196645725286383786993651543796356227191608623926969615159853535218641476405661639951482950225028351259271340300189060260333813468636252036579569286890327307996852348328127535952588303975697759550922690847329523351454814446745942212192393429451460646274819921290074100010918519419077456943367897224828118412318804007950449418527742170407835002609056141900883221516660340414915867177419217180171681786153583550852470973316592886597959441870407184579387872130468037212315499216356096694931471718293891723061402340283070649224438309314713116421814462253549556936162652830136801769908099214783225439882076522939560048453059473850291892336278785230157742849504688819243731858408561977181582680844808094180539609621249210095531953014039561486090657337422957432127281348104673027452840105535207996202536522879151828780061038846865266917625904497100272059269498281961233594364715846370446072198508343653414460643274684205568157054536231655196853613861743977264362845025614943904449491600878725286469753465559356833189216601064110774495266832329042631552950662443418267940479942249748391075634906857279546139150957511051524549696002774628485037432354104993182473613448540787982183419739874334922759311151474607880160046130908436985336260855713933523473760195034921056984746136898281744927428852024642245109168462916603055276597689808233832190012756697078936519170991479329226437060492354566275611487742207441648160422710424675905327736683952232651822409200389286254256575286669648843305639636324346440106952051970912065586975425275656186593915521096968433949592727580571468689529190413254541859484191904803538594955166194123368843030476875046808341701028261322344096572714585616856821489899748595155720025695870098328904160285557769816539156026930847996546159321018051997355209631587933045118895828175004553017795506976249267777886996618503120033797274351499741359765071502584355154711095703994052704590408083258185314935137044782580291232018994774013750874068478111803926197208885603634713378384637798215676330647133582093467571958976690826051140266932617893840798431832500590180039719322767329681459385105615383579713099123141939459362421590615841880113529242261781211003415029044960013361463822368030971133056290941099002785642945726153573363294278285553911898110218942373720577616245378148757397658121889135785428763970090364806848112914741882856018205610289367585792949703095743741425760904545948161144660460421135764687600773697719626837700541366358826487894838071423982210170661747785760929174297033130317290877913390100260818745193784158853564786961755276145990575191331021934399427399009268476607188462496303061709253697618863592253862982949147278654041231663487591139706838331422004295153446943337423821409008026704135770053006869009956219956909553181317532293092850328332354981581419777734699528140919952544064753582409291649743947513621445479725028432062531825695960652522742716650947135779151411417930062529138037518887645380624218155347446045842754617237692168468478047909600570671929054738854775348934276770603406617573460522866401656800465699578560045751004678768497459051263288377948554521106480436764927237284649209091961573203761483353603797013506164343442732147240229487879435428865640929959385166358298994586196087728602460557573432068445402518440094022622675956945996086419237363569248474072520916903586748173269434446114752920871486531450567053629687932856330356369978684589565235067558563855298776099037055233557764950768325879097395316203305450397022520914923086971490095999072844348432455415193872863643916450561749617815605952268548570075311973557676305269878416410621238057743163841050981271349380901805594911169372497073182823179723889813854051017746003297539965498080047711899000816264665093872563236576052882771970327810445379580292371169545942605465759804865506522299969692873225116755099098581168701400068753777661037837502416727678769598574878093197683028366018128483215734435243593767119143553819496147069915774337430526238733382744596609206570881961620528611339480154089797004428250217106707676784271514605763967394923118893996179602236109512701649227147517574598500360022230119379096266766523258641646874112325490644801292515210807901990129763593309886132111868879466795193235911119255705123449651069036482454301605431384659705846374667980400482366273582149203483847191061664228587576809458707900668533550481942687760176160069803438577864242350485426637846164890134964354662697379128013215112492923921131709198596789612422205364918038148541487895757419963340759735905932995551090418545776780728185639706268606701779629159831880234980263306677715793782469512469901637365836819000928935109722517393467670509008906365716723003309680954113235121740313687992327165990956714918047848256110527239815273266158308330624216482630531613013646183314946307591297422451395518558057146810292682362662490317115642920085901349267843482973616970765010184641984712038648533109017467335306120561289818111845680618730600670758146682982738408513768708142024217374964618800748050023841946358013016723044575713001233764765165917160689679296058808293386451962819067126654465897946759873773417567295336321741657114350111537335504717118079122722817736859867812215296621140215822301779517863230988056694622833770546790757239029095263412872009019865692939893453798200040355920402082362196262367835213861875936735205846187915518765817449574664860745495379590324485993925287408315491697552175013139240417369749772803573420660072004215236469638414149629076607800156541633260412586955695389857205091914548126791339761099125249057230781835513246884853563317260149148271599731439457469475569060844506297747625175833363457517085979052599991793306234772096920709967212356291818559419756929663690331738932154038630243975468895083070052058628191689360737597843025494641313855518438334289291261388624869241527533639968824096214277642269644839074512023217488121481455252247813167230743771647973786553433514098992585676675739507138914551213574644846868390332113184785632776817903742892810492698533631160947776907424198582774623654310703993775266221683331874299820849664123130631634147143734083081631697470672084884211226670799371301176156745331978671001482064875338952883504914976566247848263166057156645495169950733889295232308763024623458145573241467681719703335051276162169237664634288625745652842684501781476491835738021564203794543870735769022828252301885170277043175332921110322129811024072711156951068644870387316270782243547948144964145762419160004007887238485430980457369956825404491216792023746186959199028600219209932588726645583523235655557577896886066840097952847006547280521333745376528162495034895281887885295282081989927401997305167869219995841151984720160627129965853197994856025505191442373139521706952001487799363066953488947283302885692353088924459039952355492990160379394837407245727568982281603204446816571202140076135599087606264316658442777189991101282054765122286454751359130945986613504010714381188222428873426624946345735366332320776080318892373497596026331122066736822521000505756079728337225029195433066283364995772388676909275308558485266564108819291762910149599559575001046913992086838751227214498019715236151180031679651975290950259305373337215642256235150227845443227036673103963576005779188516966343571252492376741807732268474036776703336055029875989863208111651082523729214066495731551147618665742206866132756121140447666789382845666455360108236664780269168458908618842090267389793596316913223537803848574400976830823679681892449127304514677685009175666790909000940672425496583291322906143686813010112616059318074829700823020295284706952355366265734652518715808161636753956140093059244440938882666953393561532147251078521044256727261735119472317003398099993976650369924938349887489233085626291093691175467109613477295530754239359606762400404439455479358556403785153428021306291232801674074045534164663169421639505018343805461217431111859142205014891295219901836364777073595911470651493737764820434983572059354282625076568084511862764880018187466289261301508928137203253128361502443496311380616235082757085412422889006510897852765240376308548189494691991508805732266581281361742075339987960581087965964359344912304032946521596461933866194832793019574782942296615147729480167799127500962147316459796243713696186192592214734455175238843752881600999662142018739737051559995097649465173267016639802329071976380228155864604151341917902949156730752341923813539401604005822177714310397451835736968862170934042831682491854433774714502099372245643626302828528694374247292378069402127265323738058081108302863190443215924064703831370837476458017084382206978363717225013640022611289013438958371483587271107828970172928277721034164078360646833462195639892128127975037816101278368402253268726131794553815471636062602431980748034488770841693493836373793390846037191613439491789509851974343806904217749945571130230829698883755424009343036223429959688629924844746346772141311838211432773756546169170750234957001449452451251984932779019111631046738714046044833497662768280867208738360669595985152221276827719979077693282429862860120215438315466340963839701556932140749457483735460613550219118011541559620629652879037564368593705662197596541976100159944906703488336898626924910404863644553810015201916985677443639066611777573177836192035613714411333778115913241852911721947062625673118636609795842837359020723155663337816530918772679232104505429126434134596108670775672202214433780063479779613837101295995496634810939357613599279700401399235411469541649125650574220599438642261755075427854489055623298253858979343128643266411380491847981795404833928696527267466349146360702715715104715799274746073121112719015073425469959490700621130617638543911024562110693640873918448575277882952677141427955979437416086096344460027286029596973948381385342936194932534868445764119675133877290997078002013148629884767842476927533011830866068002942912203931052759762920802670663940970411783471455545673756512584648247954044861649056696369154659700678933366211718469325329854868059486522346625813399254393290967450331770352447502781270999927566557018018950234725423833763638516394749009145145388984818593686860691557612416974776808535280307897616947505203166096813624801272760675670118539930445537168360228418874733492296291232628762624304718372967036287792982882541165603811998877322739307478410294955042622649557652027075074818893555290866605808488977268352213733434680113356121307830988132028774751460903393472154181375925033417278828239387585844233857818839036949205080029506196205994270899382082368049298784695314965159690313671305964224398930291623409253660664998456703600773652670119733054872916139546682729544748552546322115875728903656707674818519885489320300789522704826437749677869940388544426550443233301983666513825506440670856201402820588738928298648784377291794963927997821111639210446758869173125914620073476988260570073311640053652786853536027535960017198361335588276684734607629155953386114177409228772986156679516220968554331843672735607565310257425366064816027542991884298656380384958794043163607061263895033090258365571826860891400273113794597337460632271493565757362203819664312186780197068242668288671328762945773243992796388333877740042233778715308354089086198200323046409502675207297155305981633140358346768679101517752117274684094524911971972604217558284819677758489768907347331964736092555733993452817232903900644197497419814322204935059091278268786102389401476604799038148340831791878938651828099813006738971685998025718728959214393946320425017244549138007961924488558991063108847133466226234861610112091003402974556871399800335388644318466566277447050203912926142417683637016678257549295586431065038438726396720301253258429699246671003615254663546956721427416055332392600877246008660011570339619892543945352146611492401302286229184825535131460132323961570065622727386906276017148342378989053290588447271750343453130763048692502314923238116263726990646215866031605869560739390123318498284402294374775598149797583997437093364994426268826763674857480978573113163770396114084968670137146965063418538766422482551581933334316935832725764971868608402628067114749436970711397519762327945515295296246368897040882541646595992085416783388698912261670905182589115074010687801082954557803404233954106790636040165303634773742972188359877473869126391842969054611215937532771270297933604828524847168124432448202735925481007168001551602555404390986682316080973241089232287251533477873340128305130343899255646947467305987521317570120085564768204467593098944276655739063657303216734884022219712082387320866435562139275383165678878758225562599736288833874997348816198257752670186234461168477897731614625040744129950590940625875157415177304996853844113283596856769889766191956808622367146707593026181202829359188552641667871741063002344386134734414166718499749969558340584904842277048723803740572793756546811027962255727877344271343033405295814594486905682991342870193576287079473348998268552196730357185101215909219118859132721100926259899242433283710882409683200117786557036249914373023652918516237968076182723502166372673644796260056754543472677003068673575329260814295811167399352382032981724253632104072876372092860100599968819969733509318160353840614686379737018155146401553714901334757241886407873544340943305492939847727637163024039861766515156355007483621657201466670505130730514528605342245059995817617304716264862911658606062340668930880398725173428745914191662510998156438045065970530144880680355811320404083157835617330665124279260653597612826733912937528647292306386583973819642498068663986284788500246473145904874086197377597851341546202454878056722910974600037299431777170736191444057764818180648921093415992636968222263573045878574856539426215308795217838123435631312200527738679111986753888944400249655944502558562880781699489041348825889830919285621263770910863768703815957520089134121673422346434544337443775400850450892121970735134462124797943045575946850455351451916954341799010686573964276608627823185482118537894190954585664603783354021858052250203842154105652822184490649873348719741996856337843479633825810630995914447601167033997086851993610463592659505150619935616314577028481040165012968908590978465722747277254657946148811927505131345773244958606977970045968750050447842734366320859948907843492720564244894891839404262804068456343737222370511446759908723917285288789495657251936544025058843473846720592574509109080575942185407264631621803352181960502906770719355896290468967129018088424552393473043848831267914348262565069238536908714533634427941441916579423781706283528927096371067464047341600323649507750573762171336385569409341958580617069082243606066158723155807766059485196042317126773941288759968128293760914142027245664371103731565681897641880609608044371531622110628946884998810971387529105919806629024523733105212470984100261562757905237600561542596117710721679081175367197121733687978365544414061728994151169160319278528968232527490625605518778957143510073034241176331825369440525538835164372429014626727682502429469499507980130116861314317126400909401880655455086189529612174669654746663942060425383478396668484221694530822767692229353100131879635877861808166952786419349670905262252405620139380602175013132710564154311212409686157903815451134309884860252169870411167366311096158204639011799683578835880026029643417634456342885245158744525409180735568601100350249210634506319129418743918730200141949155432068429626033099269888594451756405887898752511982863675962935294635984205184990530694837157290791018481787036811252123142798467407332588487261158828568015919984724581360795192754937849474574071510296733866037008648117461083886727828054147753455235361259882244425613763955893853878316744914388652265232225676388119116552966686770766925475304677668038259011679372409676265059325843578406406651663388380966960294503091037083610877112759427662995311151179475943205392737898374548245359454103447992542657337041798913021527202756242892575983120158786863084782968512128613131269655910228848229901538470504934444347428989566392776964376224404450214678474881597493662050662100526957811503246092293264704813692435945627519265070125752549014928289140843932333288385124217594475834835323199139543928881928461632181690893374022238944428814535617478046881242017628990320733454534090504700562187655111492815259814201277427262617838187720058367460632424906779769371885326255870859791280524787767294574177941064967678884590840079249847713527916818115620381793209593613851227037428439858318531439051204464903390038026010986263088798581290157569175429468373923824571560660254729715920993592454902773889849965013578259804464921305814355836769445276089314846896162020632273875152576006234087828605200423972691348788508212783086871094386089448021129445430436537715766279419586288019396073457231676815618699512641736184923933524448835606607950923659666019420109279210226314646253864855681201456274951046595020085518898049974665819471210148485960851158919200303364753528261288013083165621826264462315048069907329124095503347547564037457478202992043555921309968451680947599684254738205072377762754965453142102307545030170045272510289821039682091081058650179258610900091173101796829432070705064291173323212656171493979786174814470441204374261850240049276472933229403161375992177928391561259734078907039628026889288284358199759287657301114899272805148542413097553590641875073809177115000766111079477827111032394307429835621165644573991010987615506840163843390270220607386547114331507914449595180354456898331716698714289063257967105686163935535695595077297886328020264629594424251930414316418124879558379746871873625775387134423931699582283997406932620730845653971229294825540449755513114816232094729074784405168351712649493574783130929628291652647665083407763921716250487742051149839132315057033907186810115396621883382276229126030828038379985886349604745933440348458621276285005208089110007961761346360636199141627196849361826255860669701195529944913715790898786660365420424080913918423398062478468319810879141304144438965134334373831388155699554996342244515038466512808103891990536855310431547057970289690062198267353622071194444776361443669753321735855257262948919040591046497668065339714535832565670548353243124543990684555996475005905539861594668694159168880772138855028324108579801989483633497710010429022039875375178633134478235058526091396428215968956699083302279836953376372659922181963499594644241325071491281327425906109162771628840045389275043358582069284594598241404119857937985513998778303424823951605309491390228066214305296761777280040217412931176426117555861957232878254064302188878589086967242789132458049893190725895887607904359949681426088378794725429592029186867584598210847674845693473510666505780191839096135631743324873645466801022221302505067039313958491256703017890035777828696075450097922049924473950093213271701328589219595611702058565114383880203955641484219403187983503922090387830974118989563079552273720107468506670583408957363700352885665233031440687887213602417626998226695754247664900651777783212961690879277466724417913496924317695337584049528128568198863441700329860434352088558441768777443826395756993979901642904224683379654492222153205599349450526305849814091869720207072444353126098394200950611681751697209877802492315159537458853405000480890741610947303338190520022856292379031349241827500719863971568782817149477488696255875019981059925367379118071697329574883701109191149093598186585870230273435998577492723253654694493672171428272852366169989207776905722164113239154487529603185004100679365315411310541317041210700646276599981969188323425746128061549090443048428762618189978600273314477413217853034902093254708299418572934380530424042357983186100305706199661714031075611602535237377439957699576047270596876082932469861311123238332658521890106857733814598911572428052389031268858826210470156978143803718731482906783375894761570009626929643596085814355145082509827575666245320195045297174798068806415787757534438263648359213401268361674012358079930038844987103426690599024591049259982284657143944086739156348748406358556711628576523935917740559207879131618205834830265340800627988578052196555824465800068525067142913944279372831540750087333893110033616343810139226549877757686302646229649266502166689082572807348342188433780256941642305638564796994385363048971761082876779361419300806791832597239045156861910497970714014068438526396534553934577078992100668782488345606454952309423595951689205354957651441098632721925862380814105213438744011654733530076187997764456535700900557160004126595429648436929305649043134378705901203445579028774777273851475302833194013773150711722567900339832365726235402568930997577498019192757771472208063349649620134801053470694317354242334019135451808994431339566783868507688510755197997412540488925370828876692752563495664847017341767667095548178175076325357538781518067375206779085029022622491949913146735607094202936409658092650114928875973600740052083465999907987961034259311637903125446282674164611185222210372959281723718182681748863776056469508815840736967170094348583588945409175623093479405163355459469605313020079757601703391362240288421519897333170460910677897165527690712877768159279470283972029401139584133032709167130943112607333675372640031076260956497304820935250013701538628990663949074796083661801016656498007171291513642474048539210295009717821879036304642489320800151574166358302700918111025850345401383581011563778970327858980266827354117639158820798474260289604062742645364341542036896947281220714388839820234545603744227828139568024691647904354431694451937997992562240945513757609084403385678973133622630625541623333997489686155978420426379549668741739378967711744760201281455359006819989738726457822736742150809833466368379093523664515557557988333159392325984894562475664725508524056195201180276128353952438547469032909857482969477500879621536511627980255271908378009581141093586444415158002346449662962794311462402599549560467443736810597010640508524008850350658314679874463240269765750741649996570769823615450425686277447366542384693122824624798995240146747368288646683916571593323955786367555447277574271074658657772042797775178795983887661705590893203706631709245120019678348120007847901818392950957208235692524087146895520715287571100357572293187548104846347804211008775712927927439312803539449774177287738896952004171698022391306907325689414240242936623279243986361416907420038952936251618589991038947546736296956464249502960535821606176312662534586210448061793374425666128514552911903853452360184790297913852504066459405163479288968961625681247098953789869359739274591108816976838700000347056195574377701648087307166875297231728349977906352389060472568343742189823288347240275746652918083925583620456537859785300420975772883374319409796842060259835351308971439522843838601244987156015733569565962892860192786392853710409554428818224634750147603698220564744933587730622510052828773513870541045699030276364059470294178386140157066738346607072936977922558752728099697628189263647859721323368470903780707544419326312652959994466447058418456156107597242574380404792005231010714419044433058800707633947271006393317359529807075364235336071116956536569305329329394018129332241656230724520390888530609041529461633889474605498175442755781282968000046532639357725449171033179656705383312781133542438723991396483414769579477514472853462604430517929437278308670517431024787491851977582312514676998294148485855149497451750488819381654440460611704629233870482618174555729759252269579383957538251819442736494727810235673920511311536347357356042281681431827125455365098476183857622704599946502336769181653413184112618155557334981267435248850727335847216410147389603722830452793238321121790556270754395527266124873586002776183246126839340895294851178218766873043882946774739788595441944185810605201071564831609952922747221144887113375471787950000026764339602692170038085165688628904536984016817209842002790512028777215399420222619559942535849122028545486313441926889978334075042685013855738595154890701413190196888586023638961216844109781095973939097795136109613036257693916010796392147404024599226392312220274469339265634353450743364555847948687473502126829002183580226627190133088824649226679915689240498852729442368524020306454332204239860828174609441500499192521379217658153830974455161837437321067857027972610881608202159227481619985542946023293933432632709484245417435526717090588561073637803460329710229850504534150107392730202819501359327564599230291740778191090773902887747022034335636065389890320920595017596529016601635677738686789936309196612615659431562323497870014390361861372029822358150231911187439511130674918720224794046725675114188172158373135365369434156657235320410245842762843877878147563024364886575497814692363578506877922233477603637677288034818246350925456335787796200071486231036368229887476016173452088104833309946145884427566805434605096526881431549454149744731925276096985568592594088449170650876794064086560967228975307674464700540453792858449656527101399606577608923563563551682403036515658342869336428819913946890237459742680629723092745482558188229206424043521932368227843413530834895125011937799343544659548284427500460488272488345057540627728072614219540639190493417950708591137804718563717818334168663237846850934852630243555831563420976887943039449534487378559981654849587698569539188425308780970114997177349322746145334122387685596580281957001066330185851592365354522651332255488261741085446010414439956589848050663457028786352998320987159767780769779033283516728236498436274360626355654389902514320892769978051163659022986153559004328933769352657610273030521247897097188488105122578678101262905348013402567536410246426159212601297234320280238462390711151020873961228223340852057593536822928526802345433222865605823551779658411887555028298061021186855802690419336568371774914283144008864809865041890766806355675995125537399512868655236555125048133900319436778615528086791999242535581212649369998924798053203081299288056545581360453144117583787500602287888072960672606973519893374086483300191392734914711106278233803299796203436876323446789515355634190711148246284412596968774450553143624672630465107873832792557821049092597328663809618534751218727318035085583358537399010706593648205321539098280998412037355001712042291819706324133614904855698047289910560554975887001770665434716241502645434614668189796821690935363493983956992201404339213351935448800428089130178369402308787247593903083803118809673513444088092218609513836377223454593762353812824559856876504891932036309473652762043265144577605185715504502219660070839944763382060526836523925680934391646085560091663866635465125538986792707880979449947580085416275181980593839266892704567222196014972924588668426848660309703069249311958531138215124415186854102433808802875547988603323397399606727592102785579039545680663903171381228482139647536147682662576030520726416486659396547951117128864018372067147838053343871168652047141565311033697956231579557465090381202076055123113252570145494441928948843412499711117131010655141095144577090003752327621311691655136468209550847395660858191178932209979304539566926719311762005918429227854651841436561348862314718812486978230468029701702519423987159912089956216402029112282594529294469908468689780119658305871780412619914265799362530148331954721034396732144209588625532619386132672385852691556890526998906355677948695432365160554810489396254555434489858570264151538050437758929308244625430322637240938573573379911413307822760937888411717610839493788802758775980164837434282652027838845858420872994675252708106546239010649143646613780416085949359549683179770250119527232565129792740007275904995544924378347250116482668628465431178594338692031467657342258635896258655164339092890335469388531926186120027758955833400360545910954372674526625591778419532742766056651151547818429302287475085982372258533541248501528019984104984866743338003231781757118387854047784128271746892853570414192083378690484013071644527481381286231585554952363131250606593338861881860866356403763304703930224074312477537751292768395372720177391210567670678180512141685737672964095906557389993320551604460686268797572780903395623457126179765998760481617298628177819711080348717988982667353448572697668581286675308263663650073585189889072469693168734537605934297936883027469029847693583667824298449109638777434086834594599629087004906690462838568105497486852245102147144492042452550493635728032019579038593658211864746644153189288852117510068517958470442399852197247096883988241396334523259784232463254582500982282107673800784984533081958846796063436236859305007142855990707742626567285536872011203813234663890845853840945602494465475438821386624931279878643528555484340401726810023065772821363011114262129145066367904546547050927355183105933758777128380073770857251050004943239740215442957892768443098224112021103323907025505677877914083685675074397803401949780789816811553990019637469715943841843985506051074626343601566378492465578853929173821208648648613500435741807541420367815768492455527596471530923003695173616236096200916066164442501989173156692804554769229350839653098579956624216990820642501117023416507063282364636378002705929718894345687324575651704029638882304691443134204924171667033712352078112088264727009179913914678026970708240070646490749658180825798340390642032064357436278492536560120795450972002557899103449963544200077008184843574394652429564491248187263839189821209642991348987783515175973005453953796188104203133525191414037742582705197392378942953843934007430719649325498557601879653017998500688747515325216873566416088701739499915756319475516465821907441597649856545724662448826917268594513350213815897630096250746349671448586227757612760095337846776964195574292021136927756322367988544710892325592382681743058066653683806066744575603373758097476332075410143088744258195123876520934028383502528391849874907224076629794746739194501064075118776796799100680638100169345659610753030946589084121745292409240955213180890674519490687640089075384000662278948066278830939934285822570431452809007523934935948782424900857566746280433184536671185767833752605739266236221076754988205633170552484366836102363663599711430861407926567731947971400151074839103912188511407960773133225984611336918163947226077523073403785458879573576134796338809109477394314610422823706308765806811260946392205877226709219885315230903699352683105079901167938652341598884573989299376164190396799591821389137952634291209500198547077258999133083036804530975104305501420850506177439282318442880415248646094734017291893339362913303145715387017482354081185844816700508354780017245906403139587449345554727287046652157791975521203214429813882102214103818380890450582701944946795050344989029169616679759307424984423988120427314393302285611529387055900251008552393149125393461561167796818558914377595336466688840656240599158765810381446337992028583655152441608949030711788103378452089149948518981703838315677010548614311931737836228149151565755251379877420765729165271819187807182572661484632826626974885030332975492527798759910032518476311350276081796974080252436620258149119362678213047984316372222942737468794062438038079802031459456321759572136296520001749571536811436771386509403548980694372317172352088364582731043465528819839873108389195027500925631129744437386321043798558394263084292185520056228889538693588065523623696503371202806376608048886594951466670111400193997695944468952885111815274991658767498907258449716632228213308241207894428803187318419013859014386706491653436299632708897468912058340076893764887368741734987740538800407634391565228128054326217998976511925067104900074094931224850989798580784355183656534554816131278747975074745670289081482492597757020113472625694118617962243160242112440384654610937735330905519704146856731094577795622740728406080118934659453081990466733619396696810056502791676298010789892237984182096049651029545064612734158800978342438614126322608758951379052564871499710887155438393865913425582553937097014145217804721011053524887459645048927441220863407783124150420685875604201245885526593354581546238830889516065450229709851516748799380633234690157344527622651643841592751723045856044749094075668955276905576233249027201939695962731798440363927088276102274864814381242113040464148993281353812573394453314270761215435842488307642203001718456562793599047744830398050376675332273308098165182410887413474062532196975697910254807268852234776995536804960203866471190275055720214325231316042346352244524006412481122226560137881995243484750337083273955640837019007539782735225332679410477459207267658833950411852378840065626326242698253506085448256718092859034325603759152333586132090740640421953016950860084845998851150421037507067317314777644677382207163502927138419322599523173303101107226787412039101949877308136359170983399267935716093505047487128039808016338033040631712311432386635011275094513534776835689256423712571051602249408849727069263790907051460219142585303368311027418231336810479923242533827908361685908702912078172582627930872967808949345679583790805977328160447565148643232048975505839507450224152115068175250722223925695695717282091515742460125585113976977205677118811624419756779818852133096411524090367019099480328149432051429445778021433161339873255404056205141102943862597292663000454804723272602981665493363226629821317489832404859241248885956997868975538555962999435929160035647096039100675771325871073494142839595331923508732853038103829686417772668578450224333466329336676358583011017573903061796923727339364479317102376723465652976951447918399012719427269245590351952364977859234595439279098569193125933265044493335798955597977043731905731745635119129540564539488573930923748155891291953459459131612950835621912540196338879948714152436000908474508575710821524023548218924720017643390891687054215769023959184211184852065999453752902896967389221994289045067377568672379644742649999240890692593299787715384096358911245716265925150460505205587353945590134283759412225361723086576299087414351736649493720871267444881442590723904391468084659986465517885237083594923755284060509952340208411027819583270687017098270985864427008109334962742210403258658210438401007334048014647279420532531120799282478787920700641016226686584884209085430158109846389106496838194735114708952392869265530235423816005166064345439250723237376619195345793762726973842349113136645061295844274758581773877174499515508432086659742141827051697444110127188972182981777090094953820493732352311620771676800096296816734744011651499423311782559289280655403372264075327461682428194670107465689841770260859371866625241680998566762522865546595498904501589545119866743966236316063822292642462232273059326449226373992767773809782518084918349504937488076793268099347502126775714926962887386124762385814461507725921883434905308556902214178312793633562497599500402725961063111420412479511744866190745559856665555304414697372424594940864889487371420915690735539642739119915651877182928614667846367817199853113662051075988991810834265691714729241072184289213520843787391437903672064133066084809619803331631092092777073831975855824991403690696872136051724467250639685187624240520512417588344126893621285809269720731983329491928041601700227826652766511912915037123313311854080265249481968364286657426483690816882976339720225407692979897089033412396751329776182363744131190255311150305659928485224293142705442989053697476503612266831997650052293579093009751921220504887142603854342189841652540712833532274223600024426855390822480026778913127986188542081341748945166619635058259788660553365549608791061424181348305799967843986216844667853783037452606885067382595846856058724734399000751943215256921294800949827599137220533197010579111747579821722357692985348694285586310464982650811338946624095745155190132768024674550099446711815591176937682788850808439490274875333544925451450394382175482421777147638030096449472250110039471223868209182930591782689110966743173737664295388332283769678803698452799716860362856857715169719940316071447223026328609263995427131011116497832525586256471262010689801749244676791173466735810042898536537930487546493812911845028015015218755181461382088023290215959165906140376442648533501043151817018219178004610476132576249638277759504343678865428549983988222709332966914144226699825226318258197903623685219182150331146315417732764121728578266822484182207356252673910982660479033392702198875624663566678486422340544352078446134447626546172927930302229858605482046903220829752343784766031162232913109864947249393933992299653791880102444332009555826861655954756576953369820737949498573617293346414856505728631266665908875493751814845263008286064764284093438050200214378531154257922810564569282592615568504992173140478156429268452865048899977413087353740255089372566222850158979613200740385267873090520493371242598443051579566237890981846298542435809700864261353904974238889157235492940086748010378018749633283812760653321989884846759749681282742603660811389813495298929132429285819613229880589194843346234657613351679855387594330840033231145224105738989994650559187986796860464296290478654269119644111980476035757403878041512739741105348735777605502228559589000054856074117735120656254732288019153716891090819790232618493645038572241853709552387142097159488823102489510826866092925745525513320472946626819584050380078147669340288885081098787883941127831219150316934570933899334706642010566780214188588650262118587785694799303300448385370548581661035173358533015434294798372922693378871322238077345466394443623143386589399212134177173739219660148878375609506748214131616518070687852719052985289386431321397406301571614607948820390071325350835338409234539221197968714694846543167414485073404661090171070216538644740116111099782994847733065130187808029740669741683776397322539081131539269748706058414401674435878784133844642286828792893872249914758583565190313786573422778323184118941990470726845592283605631686031408956777900240243966723576055349721859160797703559168381331580874818198676555593825232543889038709680002143836026714125117793368722750748574550713851582344365531901353875656490979112936639216558615088995794662088442609260216694025161769457426031465025436505347746601142961408316500835811866478610858967990868723169110078537770655581509740137321700450393128876748398621078808288195547370436029979575411607675358924456475308810774297429757961346137024879424371944362873064025014287118843049427677152684477263352928055011539591519822237649206388728633904107173600175954137536949424905556881549773531815725008316719319312510187010446187284684474431747733480731747222696992008447011427640511276759365918126306733260509915132090225364262355005012607981177971062286936860233136973677553081356020046087977069077430451640516142860117152224008741146399800671956807223318735286756569968993690880370146231203068358231648778489392153158480051268039987878018898139497033380705104609605779934056691341315359162027769838525603590127707853037268102436782605484342424722336446976430589393439616825448472280005176423730645506666157421943611877334756550553297304865160107240524120534976065363490129582157542844822738937861324741329834073564027608288425968959026316762527218280513972122884968874913663781429056646206863444935525136283740597817613934643824614570765635893933420901439542595790429886204397550254132559537314746514290949425550147966299820736616965331654428259631538136157679341751935471646892002796960688348860888463488302345080791132973821943067005994187201961767613516693654191825909107721674074343602389635410966287819962481004489631876272576144918981017725264890752279412197535420755548302293147546189394280054480729471485053434861953569744536645225819235052445182547321632024584337832757331988043735031953042679394541996989795588496558949272880151396955781725853461842507007648857907431030916806157168819288341038346494145650625275656581664817878814996873082209536064882532912943116498006002142682864863367586801029046756288170481341337206757128891202301885341870508421196569967626894316876920906758142046397380799597646340328112138183208559610138178015491028576536877367429514103311305750123945047411938681162460152941020169188135819033014891875424568421985039725684825135226198530371306183287509494849061686001294308017982083294223577242830575041360900868119952815892679540027423382726607423302384354354099241051567646300678979566291020956329134080579437955133455419903105587302931322146022567134873916944684647070421841065027581524705516084640914797617152156951299880495575845032240225543971221744630338459025782621104248284962439780538702327313493849585716381024383378566451173467391751500408618061863536355753470375402402719992089840052933830404547968288644694766555256176683647861393370148689067919702234024697353391365021573190626524893585175332193606263508792191885732685188820294019446442448676040084598220584581571264152616581530911062329751727176143923485871977332840367017384607446135932515694239561517216063106316404387126843434425220809136680062941559598304178200776032474140254321381708602011877325709176106874512237290872582189746686115033715349319586669242207268447273503759482259206833765659239436595876847440958448895723029084975378060587505282347272373980625980054233519599282045666839209313561098333347554949838082872817855979640984479638759066242891875300600055456288984258505024548051247620912345966994789589166431154036110950954543010129551752713568375450171942137100567816198986383976388762371113181408558637430732907577425630756316032121317559248871325729165428956303188773926936565526560846260892358641306907232047777985557410519409442628019399117315690127370307064049564212438837475635517149582524947381569003922346154202820683789382640308825093305122296091843358237482676339765317464284287119118975028674809148285982607528372988413002680552925630491964236520039161192528854063719331958078918604095048570918438188144260128603721619391632709851841606343052302453733732948389182151099852904669267116195423182358642101631854923381035411963624088451731294008522367974878166184136188371059096112662874462542790243097780132150063012945661948974661053909920656638870316257995264411447711037848834356418568503471445763768715949849398347807971983983470739608054762505555535406110737278559108128903613487487055963642616520789341832573504652416139925696159042630378843705006518398473687968047538836174694141783715974245090534855807207223383580624351737638183437817287298795948824564213139808256210641047748607912817560224006863943994064448030871990457464400726357521388108128786390566613450883497199413900784073991609019349627707653627865896316654534583698614541508565071832019883793235380617441651577303988926079773368271063087422194802326781426836874085087835983752762774902271886283687994175431127620953520333588568933046119505827984917925841876808544474561091929060935475715180974299569099556852633708001031516691243639828091519839274017414969398412899310716234873258689652215718274054544169360351992705205763661441238258602953125556038009937147514331814453648499373559874052542633757018725548926299768900910024178341919830211159018605787060278583309792957370545238447013023818220661085155080679843959366206057437450742388247868122216517321143583709504472781582677482078198572053982926788216228507700107742199027101337562305772132730511413024579693993888563373531214285100947497522426708975703503321705577017975787414855100277568354550541738794702234793652039009978434393625144588966666764472558276850085028918836384177087688542395959128290344640269917599705979965619933646319155742144150115860114234160180986341845958704488740753324651163025116872959434165354232982933453629225371879422327812034056104669765133888598839347039239199766090972186509176086277867583058242825820608639782734986765401082481354502580408844436334382472392295174842152759037578440919851710406809139410259312647634227404871443255648519105723803248909610818265002787131369584364850203246103637207632641750640790916297342552101718029978204448849382756362225465850166514101210476774538435893801995567518076120627859842270613211781565368490899308338067413343314903277937549566732061750780862382696433681134929545705554909448462547356454963061129662057032875993163666106257490284607568007995522696418307690235344060034064113560650061286918484408741630237225793833048077515450846955650770060400181980400691161274242256995555129561336588061184945270794026326926380035697359073104730598212286106134420706907263747660581335937275786233207581837925356150404971933859119620508889729400869616659842068196422125382693691475252785996715168095303902033533574030174751921427002712949644614003713731986864247210926878147336873216125248348189827894123969982271364602462968521990354429920445660884132236222616430899925058764160071071016494966516917767948300547907450893921237660387331694972853430234497170145336437799643963403847676148193497665290603170733964738672013283349304712279579932210168575993288802807204200032902210599097715862919003260570179357273573249837966276522256462368428905310065153950678800495640194813285727725771573405360330411250877986085266301141123967547824618450165567463869660922185391691221823973739132245956238311120296485850289876833789003679981965438884700918006832043420833084736605812392002133860556156089513361580034732318819485777100673544623554257053773439771483363690480937434365975988757647295558637454045833663242104611981876202754904407605605765042411484336277904304891476193541355152166464699008719358063166747057215135765731639165469949960927483552906145237256015139354614244851737954167402831374462873791733658147455793773923825047862712449573631109832792107392962263164948346487138524297919393208105712854967390260063357665932659322691227769275194368960796959264626615983043319184977352160657185967466436771479569447657309988936073724666257446409848556593463191065830445287089005225807650642907511210421166848739320209319474712931256394445166939582743666591339931492578063860563745576670569906781336226309518436764992345010378580985541724833854666766111007466470686003087762857561918930612058638137540074441748485926295698186711256404229120812666548526000401337295980320036180137408978729518429797488520227663598611839981320421742592819614217469487705163537199861170376691718038905164809697394646736870020419513015069961576671511801318248638690665925725252760181222310426597278841350767523032804027509371080423486719992202788647911528356452069005043939111718881447858290395442454076621857660997819626822458725438167241104204225502848462439883209498266480263306093238983288798328558378307422753151586905362820215283756053319632836410776803909388676642681024315757782356742557837714715067148950445217082611974225754523028742894266651958428825017203555120112697164438587577011376388235517256745224810548797462766897494175193915499685805720780707637920449053457564719315663290502028557315584085837815565051103184871302932794599201891926922883653217578282172897532823015850058973471001561214015797868248295538744059647347257961787481212208973979865918603243452219836199952712987503073522344564161766591812133533535925081350939097902639668991242611226159390412155358765950091297265759515188544375816226062038086004747119361868875558830601632344413730314683576012356231999390774792815037137326949935550914189924258738369457276693326015550183063789700522130619767584297307988826653397840365719678518902873167260985024087008819814755982329556855373692686881592739163937400757795530237168571367670590213019620144790480066941793132400637486153298965202696247349353839415987689831941989596318355866590666078090667691669720733938310231061278390281731066975596027679140745511305690073213601265711445711705399814915347275938689179918383932932890611894494376618901116705399301618982005963967232147837918690331553680492045797640019159316036170062707289850087823611368923328739355848389151236712424389441485823525942434975829489713478407209041097169254193276958196403860514136968415051691310679818319432643942109044375440703291098839096469017727983749070171190517214566428736038853568766868375964944864634457473198023468069664885135329462490819449706041919621757779531353328019971184097183256564911688955509231710555816006615750804262463254642027160585754945274576337921145314405706813826981968145881567101367267510416960062435844822988962966130158565207965188929690089660411041489042595929939910401687508371525143614105238629425950133512181009585854708939089476219925591388658558968162620145203693748930503351280037779904674399691567685649112570258887965206050997169545790553369799110142707369925673441156773487577836801878051332080431841753433876574635143882534485619160226436507701076675201124109962180874782169495874832127160466532564312090573462578738398170590003525555471259680533408446797294013288373444488743225366835481588071422019756969698620198077211372434618434925103387925965176650490744173454981138180817112633181594541927889212433343358445556172292216017458123331868740420540034979555637155740834144311660339514160817657276811626601564325999110323712267568500965582442025381155131132228109483998801837990161681182790498272145159292840396581487410712680918597425538152036576936872430505224455347409480579839966305987531792556704299959077881306138743773496152224824356411268858081219347977668347799521322612797396186365452409393475770932028421472843441367855521941919307417528414824189815177805041219194024165613738512617374410930108921562301333185578403913533426546280638590357232452826510839122425201984908795661937624341564686114500343658938826368159538462161546441520888041940501011212403305007436676409866952347857364463302241468279374647485708140828803728675044744239150260306528976141765205193954138685480974746856233873218974955839611514554451285062144528696301318374591872699344039527207713614217175647867604130340073247961912202080521591610408751587157716096033237725878113953173395725814211706638178569822591652506486287630571679641829137039695356592693748042710754637020182318407326017039506455937377762462749502093283752873294060379025464207514300847829601721940638183888491651983594422163461137601089161539330317763450829976650066892798705775056912586292736499139539529328910641993338881680690684179615741133150114596848076109517016397312953650501591275804042411484735156764766585783749975736496102689536654390701011468669346097154591320620293756844625163714749660846528165361110082416611815337114530603291905082227604295043443876812444487365487492404738246711103836668356064618511034969230131081149923216102071233832230964875754594006046344081295192945901422846625816825962681491122718195253903072211293659244757669435074913707216216256989389918041721751745230686036888630357143252904232150152294661655253758027023644130572744981753403673552933701980747743935434475980336060107978808663576598611469642936160780675248254565795999378226410233559497209943685884322109964228959097979603433091014638241810303305430958956484029260051451516380825349641470279633688647224285670270233657622546111685125066902385388675271022571010371929210787223553064829384212430568920463131371934041168936780529366484949375332961728275216865362415776219361866204879791366081901257281914511503332051364633323707133083979232068840508038626542566310562780682942818467033655286997005901617015444163971211072333651291814255707625750089534528690847796215220734069821552755082179812211330521274240137811228598800375082243824399927279199137490230593456550789725953727243209613694642022848424646473313577360779221386323273662529912956914628505963640274156329245769929048742697330390736861028149701036398031537183278656342434708205685532845884916658517365921419746150078867873935918279228463745348595774845521239757522629429674847955287453300581875683777041039516976085696053247317548452721168752660574733157184709574540745239754529405156304148794155074148794907926252064983701671126594495894672424427510432381629805382050186270515050809128196943162134317196934178369284804202707305190745546921233553202511482456063560919356128121664968532325527420731412226278733718533776601391184378928918668844278869762058639123627501024063138464640265094476138018751456188135959063961823479536105352804683545085949844866635039944956453766281127544840236315511118044077145137550098184078023128180003059699438707568985092306255691330219157468584696511595484140197108542301640076331423806062090215924544114877386078721356550488430473824679781021378498098359478892881334631057043865995370543204660293752201125083324179215200304504845414239506602835341284762852859313345633321451297623329040245381881531706865939469477838367845857441829944204930735875539478570910020415351823325655724310483334229895544651706535546093805276784287604934222275082257370538678235715526523803485295989688098017330985372631361946300021717227260198373739304345663254294360595182209382997951880496361980777069335567417568880792275455757917363315637554116231518451516673352891319396894656914750245335481645690910757492591400593643073940560750514527106140993757957789580031963511825321612319480261799853036502076903903283526610027640050186500313039960407702012914718890286721318757501662404883454975366348288373252935249182430584407968090800481383304658905800387111026380851042139240303326279247992041494736958138872475785709129387200373930177665938730804691148067565645193032324766067324820225981046649276955559183144427526436008263622096168239303143951119000545055140484170249885985798676652700780719538225870742773853015827903754880270369216866815271123588202645565940938210445114983596680312197383300811365564753364757647745138128627902818825117328165526957496268203504623926242471402967762203463092510245408641305166357265433491726776433663922925230322133609404895680567249241786516011211337101461428051604884954363380152084115658158879016153123877369951669628809285625878746477476521851320964486763768795979805571311116462339163619419150861590759511840228956089259789198028553808290560149772605628956714106748657618893663826050501067320060243887197302301778122522513581897279515104887840101004812962359058036929181721734050390455526444683467103968409991056006631042084342646095095542102113190789674345275913127326018252665860609463487427583468851203581268410165865724602326267596293355267852127570728160824405508868183394398906322552139234669737533185533712857206557585300959443005852437570861456770231962148371196490283517532639384125204663971911824774598908283533783318634238984919278551354811613946951726491690230720988051970588860836665807090314255880345369886520933777014874084506238528175071110882678004186655611461135019438879357742220607714930883193036968836780539056430735097226049324784848066063319146383115326093482014908534656731010132626957865847678499148829675355561716809699213379313831944855448852623220262456201275579708671066320112223703284811322390668032284885937874198524896427616295233614843367924767846211448476270419560501374804928826796929248758638603524084415078377579122339771048439330273541434086593939046611037135642208358966249940660904447715430689918698426091071137821679149909925742727026517519845924758282716592478834082886212694695137471120897283366859528956625097317894076173775183409474362214436470422329722907182853583296434210719378814459479178057154790594304619645778078781492586197225432499761412051211278254789285395249684003229021726869942737857018332884842641758580860347263261864944063016011929657435994542632239138750579703564040412004828053324056085156972423971626532636418619166327356807773808869385586539037538986883597729792414752723329073715011448320333832843482031781173591978733851451814070896865059423394667314872944281644763042443676880614321037823524718534877196664620786823449235261602964622738909076246806732365970319565656143522706000530464601406480158633196262214255406547335627217910467910454598401617415558340637506878964772952695018447955576590718629326699920609620786636855188031854789380050341897224377969300789928571454229930487080754598514376277710334360986837872334199551766601365753254929591566139176644332556155025803796849468711211526093772871327749600402451422074229838505792306738145832522188836900787756407950561684479194061198589661361995432223972628077312572767747569831084612444359046806517815187393002256688132606171776421598402009579217742108573680779596726263362509111556101841530925974705983193029133252651010749040906939444769810242540748699376626766558966304485798761544540791390274814604001763663225357340217893249687416702021589195120319514482806873233279791569486689953714239021425026535759434678669489122878554859952913393314241203983163719067960569419217033174390938254671897708205346100684588906545768003646531286476692155837968094696087381099632747574208656510033402937086735677039936150244890153488985366538946045371767024757775073372168539496946094239575696454903924523721729906886663984727476854385482701551686020279481834042014713010673952377948850279207452951202004715179268103820375987526024773860225134889687041066680053114132796427170273995374103119882849854664870891372329761818373667765337402195347371811812722049429004160176079637405158138290809659258195417596776295390956360014389831249682959681802927422636833466799210834356788422169738807144209058597306976807618617227989221566147162271298042788471043072638119392055671717984593924848000581532539491579442651361090233721520874794259349396870385778671655483544061776673468519921108006029366868946758036114622409997459585771032901127652006101619056279252980633526663570972246256205864363512099593495316464549022753730256274802003782896155932510721633757048199516771579964772778578155708432805413414046322505330804673146767273355851028866142576232725958968505053859580770915729254741376518119968200672292323652458693288861241537300863295003022184514694831688521314459804947120283049323606504515929233848616564633308900228967628871428624208157005745247143156182746404013663970822507747715533055101509695673408089520016199648471101912624146435562123170119955506945094022861723621462968581871374231852595123462229248661501206116963230923672928531521888556931021766832138418277698638289390875682997965243681484975132935887263327256431491122695083347749380870637089347398367259277177321736770530981081874941842105469316157451683322132233248400530903175396729973869034047912046389441909370893297764378354873784339509952084015337497260075845956609016358516709480221646801389852964139378014018737694598026446338180326290204935380171492390629001201352925723027097385620493686361324554255016725075606625923655800691064720659348067564894340267169450199791301192865859713319241668184126294458633520451870070730035735347881581176139385398624573054836938616315525506794155269403810942427783619130186928694957323271097075352083846260473714943093899394448215663435627937774646670346202033030621578431028764219079898448217349694657340842701479749029552697516765928060870039275299958154140666763478954932952381501341356432762732215459783799579910894796871234014340924113068310072146670734417979313655239521379890276459957026675124490444412111405778294410682115169052078711569102847555022127912405165726834636669533995134683404734246743767787456083575348217994431193798867200384044002423870082644660392984464581352050018950277979490958503997108594490667290101850645507830854235771606221367198248010242697952227048325788078139867517610561069427260982282183335149428885038804028367150516298617064660963295037586139987093376629354440211262159047852389178324453805638080055985843139867058868880725954046382369709663463950124238938804761168106948903996112942938396347932625575543808640635867221068912055066735306002933878745096804323330340236561704361025385801697549297901155787441071756079743887310454200357792182045774315024899590593507552617124947830562939067016734449853362370013886783767668476041618327283364699767117976534037844786516904637628301580895539417240108858220939350771351215391548501926537237654087384852503526684504721624104377099366206741532204621904733672903248403418516958075610004047559690630118459117509690153315509676918815123919812783883048402707779716492025850110113606079309394083828698122660611485485460204555299823242262380833274704794001408047818166180045893247576556585116208128053347676811377250655839365008097838939357536984435616915736145339047629257398608262646618524103958198523787397746362230664556111512205002558992984884977535066232976441316555725901336529204596237718188161584251242863876563545000379516921887619089571025150043634989986257731935435339217658694573773276098322874391265129270563717919809490800675194558026125952834850183580589410834310316164541896533609835924872704748519667880988681119569265323877237006166040725092383959264953089770844392249360709300692552022365855912634769876703288456600598913034459398695609235122931087337903144566544160723941468373764394787009476631838183032702648624089641689514579718591245106394443061321254709762669988634551423997716473439739932845761584082555706117334035408878526608534978405666177801899010334780260071845416893935311854628436811523958469565287070908951927314923724476685576665160554509068837862202917976901924942561571301409765076024823243271947894527368428953833843580469012330837919883224789864781116039960613271440394624635471491578895822608885012544081750407762033505969981151183059871765576579732134721869879318764285476103973951124388525778935710079873545412454329891682419053125296774157040679271890354147684313072623005294083157388557772907539565881483502027100826059574811718620776314034999490690774538179691182686296883915493141544397384482628892938390523454390877409175126953449672070593403813005747827551148355702405795257291366562814541940938844750387412284903033122725302773116269398278404125792513544131861096605237639085850690648605653872142112774832440297791940272441491109273861332686028321335070843626736348965542479688726812541824406493560153563279165484805277233888309493843884756298527420392540576067134945686845781215946132855463872282155695945402520862347137851240215225730409174652567637912718480112835183156009522478924573731222734749034734146959511249996730397537768162036240281348119048776041068014362838357044709394218025108503555054589126908408188347159029185229948785410338517349353504533784174204567288278229818772290388558093707255757982193307455860570923357030671781071873510124793071129389764697642902626286080584940328766291705768226090715414648408220598971025976494391045552619069280828099083582791080627604379497859717001041883314062626952071236433732019578913173842221362580700655231748568037656630101644327670451671672046665337787390083118989979149219930233646707402487915904052406095087027718049150495480491151806925548856485084647887327522822275027338121569425296043650561633796456028632027872019649129758187443659644440384694381707047963825530962285686824376296706206608010433778693242400147352835960773113478248565251505279005553490815716593330757198666190606560410090023861835448825584970873509416481867007639156822974989410206689720079014240342081884398140902245691786415565867692828728808042175567028793371036635765349100636173175675448311393114483418007225800147898842909809834198234240975015526312196362444813849282130907281541799614939940118891730009710330894264284171289272424496946934961053056501861499959305646575710676637349864749779384319135845999802884605456793654376417090861824851847026353905513721351915158297059044233243214577103347777840221116809534133467727337667848885780952523406373786812946600908843114617764881063622749904697406165774524425694565004458651932234375720514280427643870128433614993515845813940523848457280662757535686936640682355127575701357119639386136100724116026538917669603316140751203220506478946805586645514319906341577275437043790033315255360499730399135053480065225098474033191389229010206235190268334870161352475891499701373075771254688434343411744129988449606859973950132493004282159325304545016106851639728127496746546567655274176504720509671405770965634177961846110009521983723530200252249357099027008655686195664510039795019299408334824140732011973611686047611563778720251156518770190883786238327073755230998590718133856391134914619911875274126146890222604317616278023471431839027440097232652400316756104229624353104108617664950232435966183719657635775206455399291433419880507650179221424469082135585452212983685736279898153613428938703091834102639573529663130746624427717807251988350322805082707048136594404538077768074542650779531912684928924699316400021376527815808060259937604295735656762853833883516927889074702679212181962980377830883455296446273977508410441009653259986845733088604165701922956214246487628808255374701425169188112460747155232883440641824721684601287206492368798557295607423498465342329648350193403668938326639080621180120992476027242095943313486982483881608425376916791649884142987337619576282241204156293041321055503409722662268163815846915428524580781197330077563750270669664283291213505916136225623679872587714548288822795035906118238529764705669388084860561058335601010863011539015969918020582952676968173365633512438841514852678568816507311229214717655159691586718402102244917905238207943065842475219738976541492016321326603059233573471339282050972743553832054524186372309937659349587052585229163628679365928173195675365122455417272810561604950470633391308749702635849565148896298700453828194460699800157303379631082118968087174268535548258363873386437630408056830482829357489027691053364384386119189679724071381737466849224293327518344031638918997002370584704865108259443555479941838510430273420476902120837090738793970325023666695303742976035971877729732153806089361255403012568668018227536807466369019673384053145012226461075309531955265056397646949062601613364155973476927738962117270674204991747875346191049161797428751272031209072098950628012026322779908490273507102019697013677130915182882437292000511718452418797941508586652323518066500860230237828053039410870497346690046260763304077334706562300535740292010111772405911828458210519296617511478256718146536264547967255306093773016919462303999073992032443388213268533760993298713446469576701595688432681751182535278164652029174526099236507955024991854037754063659596874771656454141398641702274954368462740356987870112457466612477843131866510070116684167220861298399293964545943942423688213609792268336293048314862535235556990379240721464635597248059313881810867299691497318569179520486849041824114619378745438999214164004454410206612300233990741244394265325375805624179211447099274036561541383801214288486824165513985376499914025750242173300811605647199415878881314406004686101132258219170321401596480931547746695840301608086697820204058960432961231028788146418313554688740190134472076449020487261552299346879187895786783854330900144681108428393201767162076316554598237680477356683991734281365855979640786599647793545431993712974974603401012160397208822911581289742843442782206001224892635737768659178300757839191965256669493969267000078478552222334211269696624546077835697517043199930136891177540289202122687931951991649417897970414527539030913142870790371345297068318404989079117212365679674755780997768926755808495052297904035297347944044662124180633097668414140514470895515145663697065362710499770669337652666857573061124939403267503773152030826681871912389816000049116987243451251393003382589382566977868203826093337232215684142541823143598696254939157322898478799786173497398369676993405517474361140754222868023317739279491045594004604649663513186536718075126785771766189096284376715048269671487631654681648625327298342348541877966223412359727404128248783028891457297531476843372888093947607156526583328569911515412129938721278459284404112963994300272294639987937643691015500641783886802824933955364860309361232393946744661180909072770371405904138099583036427596974960356726626162397175843859768884410164812548059543533881761602563465567341010160954889484588037895933670049045291747105151878666407852706915087655208781343740988727356609748638259790158371675250369741087035288754929961175715142341063803134178535710987750486869302435992017130985346550786779908720593386945944659299007270121000147299043766656884509967247645185347222710334363444728869303230544426808955194492490110160568275092861985009144532023798280609464433141108172923228582860890737907160203198186330742525974684736983846652241906569214150990046013946652946657103781749896553215047186943667991290562706526022164087523559996475851821645910220092736059355010866731105585727581144104867954661174622973729509367360549950538000678586548830962362683787188149757504163634783624052601398604357433888951191111121602150683635665811702700893761234567763933454840184933368688572894107232940713124326157299636069910628796225954902142337386400784067321374943373557297296794923644319827360528235723868242026936531868870499934323698211888172391799092518438425580142414275623087780966925850066662574597701478076109338755764777392891020711783442640618944261398094941877810499783461759797335366662415912740178484821293945961874838887812507960289418594578352433123291267829654229867136299264453327749153077705683063427107774456647469533419317201380818810591983684758148516117463323935416448071963576436945480104198232753004119035811915729725336607886241799371666592467989897848561036509765539329125778866285736404302415147561544162237988171647977789929681845533266434117888392583821138982221826917343789584960851214719531795859369408483573389050382300484978948433829317779654540492400615583783294836406050027268265766863120617321223816080984653753965229253214593857560746811077089097868546417594169146772141072980743297172078368057496186904605124378827541790332330616266177875600894075141979336056358571199812308491929521431213381389467043430868977385597360011212989984945791331916193790820467102292857108410757330727130432595129908855481816199466739301123460806722960931190630162035673035256430188493134332878624175450337258988918339315488897914446676796722012232763872002877561468436257460310037645754189282974586196959773962607962963414825634565724458886965361875159563672384551005774553974801965849770113156108314419538648408252905041335215368599793124647045309746251231453882717195549424880179311490582001978563448073351426733840484600747734401752880347787204042954331924599654493305215966536353779513769493403052685388460173007927081448385651980186512420030824186075779284720603629104236007140908090230791656586302170638570032852211265957494306241265672001422641318958489970689097404901946667891442641612999126346827176834469376148016951107582802277986956607216381427999099958600282067605740697201744085986758037563522684722248423714274265274399048154666164454395808805589542732377799787929938386367012488308164137258728137508990387014022477355058639002446846833237354023475670891066459227158001739114998324100155839591141314452312681311315877407675180328859888585152203360351185371840339511860229360523460493007893662629420944003938173936381663239598365429072107770423759228267240788801127528610374136540320589435174859638298554784491126718438610620223646626776053909179015186573917379344728024796072985340675384513749431552811352279418623054017927547680262422459996463763913723484017381552454351409024028223654328423457622344600304712344618170430300023090080779645868297122736742477888162799944917154953398225443531260784657406294147212432848662525662622268808440414017323307875506229403136892330949859034993013500238402856075107392082716138192059775690963956738582688822931308880220978932065643078905477535461046721582621349621977118583447630898314665507682463692382190689783351067945852296496254579583966361908728939049476735171087488061236463058113237947983249246582478502594946724456095739692893281613586618137994042555667910783942702132267395032921272312531246875573830830083645443635496708785885535970431277515451495374280163627360449829268174854565046859974603116546321658097026552933947949186404254956579580109770588695665663978544199413399329301033487174356849128596253157081704505442269664776298359493583509827749094052351610811857329494554025245733755637973979785106847802739303545297594428496468008975559854330081297922144210685274560377216482582607039901101755933156210330799654592916742602852713008950812675316356705703710286701109369405899180046147228423769091151705449394875427363551046196008005662998605130494086921457404981827014250690432031714444328414504189892352136651655593258607195069109839160971572681458623508230230211130073482071571913383520322407992827220160271024467185982075329505887136766761298856379465775857170943194607591152940180540388070016815507316342548389351481763532873949292185870025090123128795022584567090399594545206408641201418871233148198384299485710485964701332060801735797536024129772711639258241639723752315051716408123672258644880946568617436094971462129404608522615450647200188536058658129232554413995938838510729936461047508346628686728295945102988121049505435095769712918377122064769176864348403838118561813768100598576762543001792718048776316340830701740094093630430364388965164489305292542534842530016232503668493747333920816849096470067166064899157565653667909174664239684512218370271446192484969726264948800076370539083401930383456237828075323699453369521504271957096267956259693168320165736422217322570417980672757367633667003196209928358420565333224651964577430180750715365427725126414766020957129806864203692990020372312628777845531754985899712212324908069298884150474004207533365124482066948148831828077201424293820500967404794674381223115652614537253814650044915580887510169754099391760799721753895109668880052638885124640838969410249196587804591702728204850416713563540734632550202576716712483440956275715371052812424870890673457728172140483127220590798055782466936595032765682782132022476910498398591334639579678953247218243340218364002977681814607778063186058791450697863713724608457747296521800045398622547728821637722331270416226702236642757218488162655237761497460554560306183444969565526201132133081865395370723326864472962622057135414647032272144472511383637958501029983314041742659093529170741436490764884266165798276720518300309620686832315367688112868997055912027697436480715855960459765785910967061952872608739390367586311260717609891562245262610184335268406371454193118833546263807425737077335132740377169775167100907109419928951530265989734481270424001491558425327312338984210180925235335311949528784505848830780575142675540772698170388834142943401847153949834016513158545769504898470021519038057182778266144884418772750049737345411484662950036535865336404505689522924071712840047578955219592371449691799967193728082102719991512437591177577886182963980598436136718963056900548154249107271412397648447673858858697391383888319939009013946826459980931687572751126937522553950758014132400946461343343008673823464911437351980834600684106752922885864960294859003427931277838325567892054227596903712673611860723836540840719350053796080754761468192817137248794385479439216818294254385314040047005983240769742088150953443670133996766666453286550170633642216575652340962144366906781066992407425702746379951525730107229985336376272333216755005488819751494461842239714842089318653913999047384107907547365525152483151121796989089115191472427025563836427223864300401761477788181889020186381373012477191429253239220006558619555584045282701854147564917056533233273646599783071645784728899559770233505676329706791694592850441419520936920308761794857543337351726807008296582260937859844189166815113048553831527257950072011801599410338434045973794316329350152327133884924901450705399262013165547022361061219973936417964612957500051748639574054970168850896543492782519278979517503013522061274617462354459204873578495927511097555227346423325453344951086204590914546952662134671043660428857036840160363213420568431047846500002626288991704073742819347865289587980593715424636857368355322327238944235730938162203510392827233442414323541763464818120913204495375192017540878777538269111109170835433337585064816554696527954730943790554142645197861357354121187981718108941846691196111091045625284359659626775773760350897925048974442962435022730213351230176388850332085000637014454269891982496329357121579064852193439879260676816187651182080995839936446716605806959696963051644222203863638573346158224391957549909993427700145917005596945253623892324365858347917167524346120373780609885860040323556380621338290150694207052996123663357091861757317861273711703832061279595507883171551695878581194284622754216097576972690881247216406640781242799359915506480892015981592251049592527640279618848215241852152024794010810162077991140738813262389492494585265183227166757726287738384451414462448610735063913415217721668137145774001448867085708269384165668105867962241607901805608900262049712112994497604003892875863535670334036248254687741272333875447338462533350036204940763171255565460281183757893019344795724229140822503934155987158726641633785552124404746962844439433805915434816740637205785497853144879230268266063523219931669731858772355925222476698622529393153241402507470185955747808825649254029412227553157279503570694908537037358597193431020699401345410146295280408015192001025416785017193042787895931979672491331186082052700913624006302425068880061821077132396114656728018015963649698892143218637012091377996771884028867718596902023007791943953818530581987613360293408484117902655977376538827115026094028611640187767000521270082059829922326458033114699624886518409969931599370027798065706200074824916168358278089738364142907803755231380085558346161305862986946024049017830468242433956422755742709694223756497240760782119593578898135404318952959146712886461673450325378783355409326652285092682085691715622937494091478973538647720276954557724087118741805617709084960697285207446590812479036789735001446856505669700112363297128673995050697483185388599438019551092083625760610444118934535115702829092094933304395850563581076736544898597083888985129541377407341572656145670424083675950788203425961631276586916752628080722495806076289182622310920166210228036860067063175996175331082262491951649828265731835517689417626730372714881184405271666533220711222914630817376021052114893953311282904510282660601273775782913094306590391408383832216234959221842880799985800575420795213008385572953654418501777356549945554382428368640580594157915840668079232734726028123167764211879664028964613444497547311993767963346377597377523539760453931399387720042061934623192979566549783795930189542123426435337404602616115868696021965897829157036083791212409487593555540478590285287828897561129260360469377073535863719256930816193767804850299340663489082858963191283783343036411229627336303260356273585493222638721644613238076534849816778675442015193672490157363425453037623608816052737231088219864398978706126770246181952705059099305354936440130545943159202112874900276821259462794631728689217264938431060608197410242891187666766950936811694617076355419627388681168283325524637401547675682857483243018660666541327913875276363815658709603788201043552470722352349557690904017264598456998659973818193994043580047846801103987678914846235163721122690702015359073912544557532128226039187771707183135552567476618232227684336169945064954069711266789353122016715789044128047120072382599337299142275662651477975862469653113719570066132709457731254236955515058405727319777256759410608451326232596560402167666934747722568185685763931431890744848982232862887699207871440433159617983296048154743183887507109965518182460495737145998794579272677347900383856166233943146880067182747425318195201987372613668121214625929850773064328624470361488085416071269047597789286455648937294621442605029634198963547317313297304355480051826570933026510700279671518948391498463348305396154052824699372756496167885968387048870146676387489268193237855491878533314360683858673236358469660129256942993861986908104366175239897147908207825752922553754602080705092435932646039859834285293769960293310974178688215963334875886930241052072202086595315513808286006717375266369837749369244387450104564267526102514855797764919922172575266109849284987304322353050256433327389890734761006927019030099690640103367797653869990882011241510678201008150221708170845375122207671299177740611890740781500802184560358682236899266965480973684969116378991596585901598751302741065259304118807567066345711691458057741241852877999721899974122618347181904242558147992161673247545521880316907552994192990594627438033259161594824815412874100588907831701913163005700764000748456761105886413567200211608743259653680197666602463908521265569123341181186159259505893545374003264832019202532890091932282397423912368234564424014828826780589383661852529642112889326122798374167595374392842757018301497901913498626041930762645259779763383704986223011520147219912846202591358614512763054838319303756935238075576842769313174649740732109761500991765677794703882611308812603443454969262368272453742610033355088473406199501178176841326363352115622038993473892069221729527727554655280686679272627235528298466151280520988322020271273597959214179833460861507769015992994349811307273967013437904963514113653318617519331249771566062685451131532614693204268760714101383870182312236477544128872475204319420334164210384297492610789648948296326925706690621429201109878838962624879327223736312631580927643740181458892838788807125421009239011758854281187388714548773425469401621624595238890480444671452079209705623042515978426336553935867420842312493493295195142164625132486726330488072501385741227974478274327777063554596221549102424514260950087697166391636550782603183934174109911209388830753247276413107636264912825127305896375237720996055114479030745663245114921216064657314340334572000274218275058868785863651868328145745279926207536474426149249613917128394833899798245393795291991181716834320464456252975701829657958629977520536560409245517659119518588336131938457089825061349129061741417733183299042724150462343320713822451173896253153645893876388761176562298446361662849295103417991075065920320109732774495780679575157612704389605678229131022684478952902022464642335472673221117723908012708863166112485093300881695218296566468713208125148001863800535224383585941342818315547101529981771258447026511644537126334883051903740941036343489064663855730496700898112700274958892749595161115834601941887011139151645278912168202095447198021549427260133037885194000076928177679393838150636408539029259369147689848831993821920044627038054055729549597804988053945375601257135578408076884710470740992950176060030164841398236059109904267400667265770449923399999204276720502095366150995262607023887995572718751420048418723088257034379008125176350357900361296917109022416582364255443067492540456087861025005399945468808041021920322350040919771422089185197690584997608302702790530458213646078854651193476479819668846360692470029737404725625029604920356003085890248873343948298641170243593592286889862611426830962027249526002782847062160821069070065661540710822362568027500003658544436455569915041759661497445579515144086431901301544603886691233990904474304168390232588397723183684554703402464939823106244669360314043924232146148499630400613182591970708696579634513744171810096976147746456573005650902672134154825139165658591185481631978068383406905200819346692875656777277357531101305692217970623125406479536678354242107529129280994589933984965692303172078015176828262493830869988660485978814646988045514214181458037627464048780541518823920159121964005436093104880183213293293960407987995309240169770052302589260548264492029983228545391428481976271198752295711615144385129723725874367231152739344937150572384805785673218084224817661759506689034954378907083720584939628517463152033501820600358091191789752314845719241314069031246800960475891766796620755255467682417776990236507209645785691133060206629911956461982958992480781035851688685613505113828779100630117643418584876043057537450274027011390655376581217748693707111506644756206263873164095932132215625261391761978260590697494964059922140468196364667430091837616703769580948553611121807726413545625853280681289156755164313297775422618690229738274707486824812806797622605331930732147662294559396847678007053990827763279639295969910355797332926066880583646341988803232517866334110196685134045934337826844933156021068060534442901527918960007846971479411877255444712604723167433233297135126895804385805305357944031176794517616181852429090013719242665608126749908827643799544924749312863128441730267547979173439193089920671007252912117267075917662103541576272885885423965670907737181373317075963321672688759650849190418406201519221273196656104561037001875846679296373351622873468616905961786588368024273408201085206664474069152297723526248106562399065676356374568195222706754712176076764868032132125174385917077539981539350675305096915061368869822313371746717231345669724844787139637753112861110000029047650959955392436586935465587320138512350974300552258256928716469509696652661641181443213158980853623276840988044049247944025755376813642863175425127700738027246217839813359551607065268090412190423673582863910750382778347181284337682951344253970671606573431958426468600955681403639134164552330975123814448506980023745977763685366894679135782261698352325553599280928475866924869810869414252259636430613011294330101979040000901399320014464405671760321305150519520497784623002427074296913361046801879805023493866033069727114957141134452879095674372791154450036239738200224292237725991886244812597262270055014530602158706570373478846440291747385339487863136518682730170882740287474227857624046303137841699247609592302076121335795140410973315148205775751742783191662720259967506598580880960456236123097248963103033669655160252766464997745140106239910084626256021349301627947852485898340546095778512097672430283219150402618435258668054655942192917325669825439818981332222907757449249308442025107317321652488459609112832089088550400858242836328951211959250368283774244655631804100547814937948623091906818525851647307778404356601246584602902182404124138209299008686831300799171724423211990518785665812795000435945705017281353356363437253407800300401506008623994950355841420696077104948127800190291297918949025950364146830829612042191029323318843293977737711834164342466226607440555271854132985814571047394071595142777305656453493548146195023719914707265103699550618008141948385706569130032083884953484501735576083196773377224012680554324178896801265518392951883682152626037429861003021793549682019265469861322090495356609717154897029347914799830169490718049714099779939925546089812594121478154690802025622028057141304396206887222390179279079301967867402681869960420868082569064321052370075388194999083444193097725135230410328745408211211558619081495836105202303541524641404476923552890837603125060027566694210287684002107495668033600865124713997769545492615375079242939885477850023576789739385005228680998063129494416389007608159917111828924397237314802001962988812201815448750032697452866046993318119515733873109956582694917945716879652450197358802516640242838510220017952001324518513606440815136055545691774467644558442788325585526115266092013038526196621582583063541390814316927208721144648620771498463884025072236926749961352496941666355964530458535079415874175169772657166116985439076716095849150183050566673144156194743542438280456839278710178698263509256711220310600027071319333566504079785243636755195335210230014442327748014227596405009749740310371430198618568102623531726682812663569778306646248183937300500626867784401641786901152716101181997912273414189850869610318289502791205439168899574889602493810353575640248101114909521528096294060405198484449079497325890273451024319342412384740523808133270810673208583700145922710147801352878831397653918416333869514615719530676980166902950721490673696617939508179942200893077396714009553500204101786268785606195385191980881781833423554178301446605878877255089848326428048953929775764194546256750554468943111856215283569077045399656658303596863062739990112920434934919636179017937889300692729387665140734370871341152783381430093169502686648386939712593462495120036938675248511189597790626047649522393473736172081000740379005462091315496830555527171694871076528490470763414954846766273183657654777315339785431930193794885047650282726827051670744848099068701080615984213248412203708859538329872271939585062543125520745508170874721430366489195231009151731263742329874656488014382772464407989677371232473666123326332281899794170012677292009352375691837661829479946777616821272740607545685513767021402399223979890326985615967884855641582273976150737425681299090166040598459184666171748675770914354756301784192567398523636382379102172139960363025306590803544729377036928428116023785515960538842460739802377936581182077474589219997824135043297029363242786087990536257019624145551182986612248438974539078533049450420421258375071040229516524683818489598401595788296807146624592322462452970422245151190074114912071079069488696533846215102716217023779303643852458636973403313660855871292129341439730503999403279666342163635174894392504130221235726556196842297048476083324107301294336419293652443964443118488237895459183358336779075613545596484126221531674123993333133110863338019104371723287379000872396259923748541277102424299082382005707585336488352120364486095339830905312497823060180473115191604151576556086940564173488976357040023213380458409567437568260610413987419912743479196310162183868254827280237571945486476768424201084899148956789689182482503530466202781151423660546745057102199031923008091619002629041611708675064911262441080892100686049130159137890451629317703689147844473741896945105337858631259518663344496299093735578790809549526798600621452189940686023326050368193054022546083970062148462998688628000935057422985376586870778965257265701716403342768536286073340135596060589424043418320790418315177154896015147228128746906457990611654156893000523426653644053882844040975698078629897859624807360929460360790341879205440872967611101803674148681470390540672904901365687205498978258649163196071578057455277848707607516061605863638010768305688569525241002765051066948466624628419550031761911169599061827844647393135832557205453648153059551883258347972689354080372047448403960815894132425768111136354549898485221334426070376418385792359634776686574660629308764561846394050014905736094844085283517792425359764409722935758828977611216855067489440053165132654477138332096655098288060038308881451803756383404350080752181566545137897201545727833035438290265101609813772414254178851520892672497997531514108358970722776408524227773898470553543052327688702793539778247079813061605709357573139204007916350405973436631544256047976334470431149741400256951776061419736247060953063176504204942175251381355482461368483030204573067958024690324672884362340177306524654487829983885081571084834464807443889287215820782924733647217856314254085644043209979491244015806494004867644655691424113872223473408632240397595041630155463613146538681718468132792851625010054000807958388075868697110528784411675280836876547659716347256240997753261346949625601444384720266795920435646173264510550412265064148523127429215599929490046588462005271819788884634708282332327991260557341285907120813980881719884240069447412653256913836733413300347176179036144319201924736242711754831325934918624383959384285873908430389293259262265982547422672118342028443279588999836611186656638143802500119908688553782486709527531485280000172396967072412028865928482812944624511009174428946505194879503169858610802594489943216153195364967700603325471074591020252291260123325577937060475106344196425213448946537250292008816832561811702752491614250947162998142888061186032947593552463217053083003082858163999616374635821745001978888856886775601491813387273190512173186113062464863554770394146012951420377595404179353656822326465896736761336847720591498140865463054151167890273992164497528586154657077758017196581519585929908501668722187959840947051472463921466743662617929503681408675901546634336783308481294949397896871810972848895172552371759665796092491187357733690347073504018883968470314678557056252319092822122872951878635632008608416194012164002418126846471896995428126029240876135540408019536933917776547177562900851163374935367461301027981671041968063075853517567509999721906009068970908508605537875875773902824369841669789879715010787129541299610552590113340403235140769008624830258036277905630470373133971465913677420251861152587778749390049345774257286812806329653613333582920645297586090194826367654408331346911075684977543615647335165295060414175452825844589824714725864109993761155037629350393066125692664108858732047134133073719138629645713040893725115102552719093440484615033030340032938660971897919896930273897741918898801720598192229940270479157369814000859917458339103524471815735928123934890218635080901610721679212799648389852077147881001280476310529906857237253690865042341657021212108209906003928257794818694611317438036651947058305515140449978742745910064472554616699534094662160516220225123048335838774568986308329513472470043320623078914506932714501087643377875207359417418475270899431578485561574117215671856931904430441419663970869446670987871515674126396769050923060095414399920461382492325113634117113159868497248489679755193887651627455295358928960784003909921228289800517749409420876667442679381605436484095295913926560545003487521992942233229549487069102472255289367349025893262896970905157166084972975014729910027423279919314659750838431771554578141358738848194020294181103196143920158028672800616158168728230441625648086321855640095521193666521435734529750323345902126228376578310441927956552734146841775955382933477314213922682579421558723078382039872015011121257095844148014156657033487993272414130354199678591505202351653851114331314975946137019393482626505890673055016503662355993431010679779391204519970419350757915545884600185259151889450383862815192926228293203592665499453364566789262164831197871488299117349924303565722184756047064570811357464667029287868599358546362320367607622852188191141115811253634296495661596158292373683855242088434340432619729049126954104574192933314326527055041173140400347832803798899167805779654898977979339109409245635459279159817230212272140140204409157172349774809021109102960706189065003439298816753705144665006805059971749952037765864302867523370593772379473768725694177714664159254735528199398970304078514876800626990055015815475545087468257726245555861002136469104985014674935744176137657169366014849599424025607100212242759350184944679978274036117629764285753341787752250036634038157490760106556210114081699905874070096907250098936268030968268888210360828210751302324232332919552858453390632619525419790392727467699818856609982816701651856667566397116863035631775787774530164524233516497657941287123851310060008522225187808299303931852410726310087616432851256446374285779882682557205131782650883021578689922818436875340416680882689682999600847576714627059731225221435199123725748900330849626078945166216882884789377888560259421689444146781249731340941432151200042192129302399206336242507048145423888514602649674432404909325822072759361200847280084324426744496257914442199330059668498778327175630501156182197358737826734045910072407911275788661331465316485225242473988121968323532600091182305671607499743193640022759279344659972430406297393173825760341523005241875468764414278808539691999560515883094825136603765195468576683022984234241297599803878616945225196776680054911143793945120565193324470360138583027975533734651132725226283018704247279512562030723945554985322369462271839054609944253365814375334172501319274115927895986137326673897676787370835188553925198215812933327389401890161113642942109961894368089525258372638131620747823253650723606711495148927580340113136672343645081576940108389588427330209109042712756219694664027872026164124643198857732435123149919599270328655150974958461030912834001205440818679101711396671277938226982361708095069195196772706610168595931560758449860119048822227653798925375503860662564613615152700588257279550192498769775713702741399475235678686845059793936113013750020403859430798641324136575569511458985726111396024197504350489653664752282688350039758818896413353582014129583735287846987738600103581328853787255710058954044762784889112661938987832131653109835690162023437132363294867742056478959617630027042920964705372757236639315384143761197072994832018829822215867594953754605794914887840608523136371392521970943148440132721307680205053808423110553588492347846410035520374518364518540382083356539606038836629726861080738218800978746465137017495990636202819926197075977228332549532550082918415170303351840597455902492221370554171095749338537538447192328764250073373528784332810988542652859805768626271859815787730370278910892043841360045292859411245106310072628142576441105110703753471437142886757130235871759505151079405353900255099514978222351269664594533515889537910656041108734564070391410003055622121322300709626610091718968270545790675902538921222493640821117739099703448140131953172786328810079696969890425876894435613037281489999138594886623530968028004006493112211444757848490812981566316593209605893720919974091631101675642307945622955080180812039628126191517094222638375935215183577295741502912763298846815233092411881192819984028489655195767866395552994183266061492293275681283183271468668442231252274628164653243248773420816424315693593988198947185431777816648617647287523281112499345377399311096858758296145961289428434568491305428772106356553335206808398042671564214933140290224555793747796817207087263459949150512769073355368691776636934810508601165699114228746816540988552192388310054268641872975561665143471549562742297172308127319098442225615523394709535219220985101380986332602604885906060477724929311464915997659684868794165896042138206981072170458428747098662314229823228559524322117675659039310396503518972254004154455173610248466341680042424539927766602907183769455230797967315326677437127081592243575872183562773304267078119533285020752498108363035493677822990606265276771137522315184134757390903372438632832392664407867712763430509553907017220229193020858134403108339592564654849372683073726560618537845478633104441421540790913789029259786653534435307565397600299042191989645860641913750718129789937221768124907953466840316199374890465835550512467273481389760535048533397565938517795727943126363798515005690912665984107255615359744598879334521619132249618186118259480127643972804881296141147957440327615008656822109686755648028649190589253943292958689872632415582232448482099517274799463658463294863680182589919731166609951787472690568193951478189032888328377375545930551330826838721280686891083319526538688334707987547315362594208450604705500509687102881858945385366623466596765711456979983703999728386037755250826273955193909122726046625900059106493508309036984054376248491494384179028157516784584732011502178167406326011967497539953565773516118958766895776160026055133305715547957781265886225063805276197953597281610079784556724553069692528587362855531473697962923691778124113853857246762486292845813385439694050098162613023897026848660068507657203739661418987551172702088470276654452092289834842312346492061525785888935580647024505081562674507237999762246277105675802420708834548322563362054202639915274332841800968347664231889487196693942620035799910257105969242624666092636137603740655291193855187129161790773748629236122903401740063780651977904369147166994744106194933143309112212497869809195793869445917191736617583199328334479754347494528311556375911186854394454092459382192319718173624920642202761499117681891016909700551691036858246679176593711812267018256472694457113400350577618030816600259798413026901345277835201947121784298532019721832928867840545139422118017808066348745688789985882242003157245163794402992155770025783383910594328852580944146720618335225260298609002033866992390659909835637321862603333353998395748694658363998981253738750291667396549456942599924606452002041525964396725195023375039779236633266766894204334148148476346652566837488536626873116723344513595417439136899989453844613901149633664820011487554399557485098813021601848893499093886778366759406018323884935483752249297515376762738520236289259059309348173875210377301078595481457361740979855867482484837188187190271148678325185269485923611283402334991608036492410109327154760457694416512886304696546601304889199984069982822984259720557534061104917051176121931766130537494304463820407071299615691321017383396790881458846427997070177354537206851726932041044228334263820205921595400917544317487995737297423960494355666705767307636628795385826713707428530479670336081346247811030013590428424491608712221775840015685879405542151003259664177237311206307529613861096589810063437363985786496759153334085585670572054723235767606079756657661878969581775275898757710784649998394835800812735301052133789416871169948455901069045776569660632425468806225243013605711246192738971218006241366033534713568756792546704498175507824007201209840363353988444174657376662375116398784169903238351943907884681999418641388059812615130252453028881732465568398139437168186608964914626036287297211719673647938284977817174530668430217034980204861014950655772918380320538403415667405797299300053167927025821825679672833227992391143419487075697139496262864294464856568176147074541416577814544434591055053136884146297440148523674491275978938049537792775191885902748107512811011609825692936372568081759876543429213507203138029005632616732173904568981222791545599360323582923008787182642397206039236808589254340971311831848479010658210147815727336762823650311693192299709273349031407543133011707665285125881002238822527143200070505205894579220352922550429657218543543119196899379925890749756860117570511013607670904165692706515925611088301925355092752741292157141183343327083736823953630444894004792541247907224683711761052940494660017911649296126496778022562010682321446488224048204048619441876202089069089230595086624748310253872827142845737465988595684162370539653048160290309460295432878530613486229382398606006759410613474156861050775100149920978048945536441283288499964682152745589192304628392442491724980270645980298574089301070327150166004958646963159638769288427134290237596676068490003906875964582180623413332932780877160683352574709982452031956319274056074864358713201702322861712284874093422641315845779067833704028868071409645297155944962333229325132149157816652988953087294692425063293130406283961177960151937742871279792024699219164117061687362694769923566386809372724413648212807103957213442657439051642052250379878113419524597059270418061717942389122842122001149088741362526885493514149408388693849584018588960020936234608005285026762428475210453868797382980989747579191000848179699383895667930578932241341372202981266147046261577476687597136549604899059082700110959393302650630630987392503383745679017799647235726674088801826200770290584844622154839285073988879652622967081700042614538904863743415769166592595672234313901591017614599703984083473679688621574671302102723794048536107313390568349602663416259790708404583746845875418757664190160520824813105303026830869808401710148389390773336313790202261436177108579252709424720899732501573163532318248903767379962294963753011206278973165971710472109791298385040044516982908698845751607417333443974832381966004675290568646920297230041248530760171303503650340370185463476312986199199454578869163726886241246499063941442542879009577071205030124048126453354865002440478635184329362504980874645620810916000213740007501554742893191811511694772483501433647554409568708738951196411762565760253504040623851641165593198675666709109047151482450228160996564853280619771353986184654882973770257187574035627874395666264507253391815092149229294600002447802517943768875584346085082471522493298226618207675369833724725362470187085429186934897692796605969630245635313919516224261522252133977402310935173074292396304810119113082451467719225085974574729628008556904740136547515311209307549175813319359127223025801165949317445588303575051383905715579307570201088746301602684229621725791998411438639420464582100846707368975477775146163223497372276982934231689919749964011171524065641489653143944921636197908524212838144032574693961915174705072367142570483972815272429000233467546855480871811336193579471068243967576673236881821708177410080579140545173899463890301509133422734003756793412957569723104064767773134635104655046513577448309289190784340071725518435262545486790931997256496489821237104824080996339877904035288916410623357652252250570048134157875099516620456808380786180125177411922069412089123368860627049014758801528931666586244167130811663400893105486554298798250285297384752428187349619774588699726047744322396499219741272288506179387928819614770731916750146923890279602337976541357465803616163784687626953541708683963167865876324206036172398844625816218295722184990909501936744405311355940688390847078814131218448010337036099894448331179213405176666212807037890166720810503486179700762706287217483512243796714926813723916177762937014550436211970050558904705903564930629950625816234685512704025200610622534652862762835653266889323945292978821774392543331770812015181695509209430181251185019072855132247567330799693344866192728091797867030042092230749697604465538173502535229134828375068823939588522051698036365904487428317369069023004295885285998073278940388038724717973999015494830760316873359788466303017829774096608195366011927523342513207857822335400408759664194727494369301345336271469018266583093936422864548758486989360504850642451085548350907403063447951650812692656782732422950425868830499086197303960751254503516398143327969628563103985196786251676619055759606834422838464413140033408285351298965061755018883590579707287865263020773027353925754459815061581346266699340929631884977699769388086384958466811643359934424212181661067972355220652552977302413247764753923484912842819742251448900289483757839935802284682708597358090565240695173787033770259044144204463014358334092712849967643919969530401436206892302508329493181063123143717797528613311771364703852432679875200785378174109087603577465408838496715177450898703066472286825533054272179035995659874543736000175443351051370093756791814068237431711177258072964974169926843148218209031303085218536439952751023443659231314659074455962543644409514192101688199604274867879087828890495084594410959703001671620351516530133432887784652937252279097919000782416482689937512971770118577470316256470067750353769064341502211970143369632857006666852143422579597125634275775512674012104798086946434083869868755328678954187995494012342917278796256184452870249110654784734069624536489121323439303478310498938183488400391118926649663438747280588186433062383855919561934988610074538434940590257828778647458168559259274125797518415177503079669121405168310463364135394261594144218235518107386167819666432515999488049505496295823836582244123004759033995227295939827928010463629156464092068504256828739833600940026482040190689488404931920824403396302839003613300810088336957272775088141172781584506547523654687560419103633075897538423805718005461993201034553202945052632658166521082556380081687008483777388793994973525704813023539586723066906502086864389502776419849697898259672403652091164593576199791655257241507676215753547370101068360569617048014603840974886770561965660285333917604400958250302109711436696267960387358425683282084641987718213127013278371089740921037155252824262093127797561441609884995379607741250552401947286288202909994498913760251833776746931960627714970494107764794032042914157796858008794753027175411336202758461009008897028712353622696720362796905316508991750975579589567784247312130290903330135194410866481365193904846855348235426749463778010362626679402828692870637901936304179385015629144413026640081258427793179629162148900233218112101514911789190590846425699946508820737581127778992020702148722432008520477469337481906290504018174559448038012102122835908496213234773195593100324839042638858910853057302297732151663216896859581237398775835476280613473959330150302477224268270473279067643088838870722780578602255002308045406643088760848336636757796091375832802300528156951672876562036716108028529041081405816088164172035769412205517459340236269715517853215145898260011126555309377858558969409963494744235093099261616985198457675583351351663538619958560315454229630100151837809749790125372500716145014928586672642709525103043930932330321925539143266588937280846362247656306871276913702847428552107701312205805004049003458705397375452594665816803103325513191904474163851319992466937420330922045656622636461618617225314214058973514948240433797493653919330399494879041388778394534610878264717872711590150034410762100119112809555302586491293850684066706929091336617809152834328251035498328568635629189759470681492247282792294013767772964776565318003407867708218843897492160672810407384272731308348821994500199929112093371726662180275132607606689621240074725342916551313289473403895069827166752311669782097695344213326243773999073667358007448361177264631331701980236362856724015271092988775529992802459162233659011451629513736988682065708467174450727747860701689372762515810987867530534957475793261503648237984376071172928704505599962403211781539772456656642342547606384639895111456398878579979000676050750090291592724172157641517361661634287660687018327195517861231136935222439090622301719900666940313755649541233430478129777913816089045075439425364525993879369106368423437263024868070653777980299135792705020617574557270336235438457839961482240743556900967158566564115102673121346346633095262056755086851228366318396959419870382002095976677700912252473948277507266083133881704990713285159361840043333404958188258002782722482633966544868709839922126051473185671263465033870861853738048630624039681946014588533573286863105011493005631638120283754641978226121667842714776814577617158218157231036387079168194156861758407637529507701886804121048727092771216363110031129996961033777944727304768977652667492701957994662092579528211594325352816005502534255145723668264802358826520281045905917067406678603237732119466063757379593798317187309515698169665994590473462501528833590763739079809041641759653644233802856249777860956812907258495635348585440179978059674232609737382017928685911800802774960253697054037256317268778858796544179010156710269046543632929027165189464198281902564274016483085989598133433477293594608344759347307724737252660901397752896831276133004332484960530969819742419700461244409279601308887324127494627950503483948484254989353400435168925853120345022566090200636404666150590571268705402256169509130747622095343837542796223921624356184085294634290029814315361978542343855995197037548333022086756816844559847672721938513725902063090527343465588903124205215061649070696567876605737961863543344157604132277716101018561520427056953402289454184745974927504145539270835324098198983896713538103657666547563662065927369299849454018721201980690657159463952107020569645007014502122064298330197319418397698278391323190912596423084185419680933659122669874054011037384929277779153503738555149742593329519825609852965552743910736048274890119980778364114262814161121597360996486292061786676199689084933498615074457219713683904702160860076969509340287031309517121976150184204687563907290528128136879982345821851188785590949398395594195742952405581174829592137693936903610827697474428140951781272386777519296905308049715332147572139090321728617915600807784639397522690996908526066409450531715000044619221837667799774960837152226916533022179862219491254162252324790121831956100225430178098784247981234104617945315039037709882670046147752830843070393555344160175525059745997672760158642850430694579351516341398178683842875375029759503153425115486602456437998567508160892927783294720805380715628248921375031616653261925383994267995375497328156552144679778321825363026919363332862895715890543465946383491461503591834151686988759532727812299662344316605221939432914135892050322299827371090779204351029908222771946086971861791572379265026228732185855366613561569809039904105734298993930850810658388101469837552636606137484888628224689855304581076839699382447343245269916587409025823196501762279368967707036392784225499976208420526560637292390771891510059002950529354968647382862773280838962131756507672045333835439798092150536482466897363841964804732914544039650987613923499479175370515030843399258767132542877121779269953511173373502943750300760223751092388840043633676489215874149417564391804387478836832652075339673655788371877619398909695335232248232963914598880607404691205860133670281451739348257417082657750588952369706908322855881515120931314292774876489710093840213285062094537577093703365259210323303031202847913659843490378755643341811055084268404707431322403541426005338209963338759094645498517136100585049939882691196235742258413251328576652663717690569696983867982954870431604067933330023755539821023552808993081760829756758868979900390719383927773091925349893819667707644767489178448047278552586082574033010897723193341555650027530216484464837937547163184147307314615494013992207098458755275847124164386735300614817251269257699870225944609451928762882368021218939660646246367728583610228649315161895711012426306347550848053051735324012378426184113969779774587838121776408853699170625616339735126092367645671003834272575727285314659761427149284020824663534260830997392750655505787590217526472687317183305428018384930243194444085723368540525609032153589342790727989703861002232358992396390268748027590441521319771704511068317111920535208501705125286894669928339891517276626456902857097826130148268608015706249974299768881644217114738141579521452149769539649440570460020153445632324821683275456497345302392931710477516136148732736707622012948424638373733505312404642701010267484378814137622375413348889910384955417736216549594262997589715641572489171431884552210638692864008779970368730991802612643180199594459086957248138000202407599424376035893531615110743961958153692328815211904092785559362425071440612351920587827881838195677747278294275444441020901942872520914452349011378618579884701692918407646992358313790370575469161904940315914996955002171220268926461185426004261202635195023052335850909820018575794302801804503614818055014463975623718137941822181869828886138291027054738491862017833726543068056946566474645545367298816111782648873232781712219295319123539331506204799215059758390659562476682754779913445013422216279704903430703855633792331762608729710147063003820232821267262599455976197887754818350194006522794203448728842190724619426909172304541229564851730664911711020731372827896083514200992328909938031115567881811918778937197602444565094468227032693367287428450676766157406538005760000836466906051056498124496357469287349901863217526236782345706897527843885138410665389109260771514392178473840448084538589416938670404192929567211159269349404673921772943149486101569409587972031442640464896726349149438298342013134948452576870571819521591194964746657596137062587156154707895006972942002526834481684767235872043008855829321659200828975427387208447998418064256972819512083773868012911427845527308737475784870844325708476502991370046468000952655481460634602839935038604664931044404097312036835638177868793927553421867608268297789265452726027793445484591173297275816313387816673601420357552205494086427796048955628755700025572003063603807149813816889823475151163214660399642169570373131722261995346119897252444245142343246413305955331821876691188164932990708899233148298275979434439336156754364112470998470108429457848661236889561316712112754777071820510847873317717353244859126997348151800847872604765931191011549541998572581011447329736563212483958221144662827462128630775184332942700305193339203431674251942646216263316262184497939641135953880174748108107536919578381248422413635182044365501204276142417839489368236674823890821770000557812052273641091450595893470577915082671330927700818303489404548400179257169974065552531373316685023204241124249112852131000429268494013686271859367547506093279936080060902441228689300391629307650158047031622740594674878601048110299926881027126288672433784576386793038677783125359400839616221175743651365500109684281686566884870864255293408336469409213733597864312506365082507654835185071520059364860628801640777016495057398815888650354659605880761576775204982725989862438421443412965644674235811815589394404066691239098081762956366441920570957077746572628104891045152814388098817188252859435598009219803090164975344865977306189951875401497793359005050173204369416481219791415815795635492825777505620015773370500174097930095125551673709339497548976585797057895091346037384729164861464198389748989376808935744381505631253234446606093785804110537511290802578263351694810651708465085667792962523204864518022401983094910378491927314316330839777362455309077881657158573968279757699435225082102137857700270214988964878824625760217192370041491758094200698573460461823925467839235434363616950166299790596334093942194714290046931614444472621765605043232409779104667737757142248526384997108744892777084388690042417136882546429544346763473495034215294849007461589506245116195392325006101095929610620201352621582159237050394548306516374685551100341233056788937847426845502424131833284421316211031941876448939602902843556462854104945556625336527883269770513804369322563002242032094412844923577554882273824744783094752196076523758143888271539569765845687236734177236809685091552944860187596726598581157098579641687039175025395037084823960097118543071124397639974925777680265707684692539832210805495705969059861579975210969680186506761663877562597838045292409593796609288687972615122007333961843819549892565480984013337266743104281458564199279635314775901681448447594695579383817105262117033112668833487151121886306705143850499143973594454547435127141559771786769015727259179929777679001385229153303995423194698718325509137563040694568935845982481266375068220048257520779565282667332460604748187075774780145719819663719801659782042265136436487873904657129374662017767929875161204063478489951003323743338906686483774824496130961515537472416518798762338281076423817457655127796508924433826124375767650069728164571070478773466897931382689709059287467149897301626976101952803174083762606630483716819963965069233310077093794679439355275447336506796312522460562367914860506933513515025810696287319177032037011344958527050925825461206087723098087558122437337583351455315936088822246761796940124355341249923596772106999435576408039799201923678698964790492985888224942227930376952178119252903312214851681603903042535842685368981736553830776594856313088629003879445164359194223914531205878656038812660453149512869420056852200405371280450631883996747284228796282877525482157895709495572084725191990953404314617558349859780605335911299435363185637302300074136498368185665753932270142012682636119028555644631949313077155365246236863314044951700031057527641007316505086417264311052416136562519070572692911391147681466878973288005893888688767626982563010417892935811654471367212840931647555491882119867626626167860592980913753526454866448591398946588646849653210835687326848305593921926171603997779585916940476767644664186838563620974317104707387691988530378989350968999837349655270638117288139359328491547120896470217191606860741285645224757698835831472558089499592578091599846438187654509113101851516250497694466629552918755636479091046308700682308266677820115927479796559060863949372860553789184876134865709026584958380425729144879818782913897744520197428213704398495129016919610640580497604842015564605578964462179562517124207530205506432733867707366846395618244827515720968402101525866357189664471986180390094308317586520234994930845883675330335126602639569828561458218580263457909219014240779424733666591162782621906613063422347885028094365665504993783347589791412162436663894298724832783441773738239308279597248930715960090761802194283804203956248531007692169860680722085234720621723922717349058443442975736566033937415134968424888679433440843937134420314037144286047777714841069394976634746263796723492953940438810025650969285205672927689879512140051062389803348200830221625909762947579759044747621164935554718336319475753344203027634673964963875396348638625534066849960771482011920994464350037155877547450299355742514892851915496447672773006783101523810434885316561388963332851281950556497050567268686364320733006652315858168072038626383940131974075330369563665448918649561507360514082881299310409832294270807301167055058252258502305377392864909764779536789733853539772487438890990406458443746484364572252872210950369146683762643552168107391567923329231924663090740201600979319497247812861621128123001594816821055648154750549084597731475658622635663554745342071726180216926795206109684806328079991535739307918249812496858479070451555262839254639316350046407251936704041259266192374936303334733807326202925567798205332464714298087335388857506613988632146021855102149086557394935846172660523891840946216424595036027877316943521948617382354225188438597290532186405391420222409934355300008745857995455122755747504066836027925653321305761954164229538308526402896706470578298880130017258758003273147101739301904077591651299572265769586031986703595361851868530144174655602381960979922193473495170151739979769889775136056947841840952629486883946278323171580571535786829912860717812616166093357003977459827687941006063418791929671881012128844647908772821816384061663753486071606122799369995320009655278014276697424363644055386613389018369675020310918658778660784892045524862468320386423171237298111645488818513523957566963941531419112284579834819985563256334090507125102976938815496662239493271524998102453920233144194258691118866029349489986272923401365980578752102231305919668356775594183866041687455511402386285236924414547954226548077660223646996809425813297535593900652088712782393812784212153387437457508069195396615422773148079538660547268023706654791993036534068319620135479887337629911668016941547042551632683597221406231832271767525689917600641281900420756340951280640029035660358890351513425821284319209130734065185837654947671245845303306508507003074934829393537208804447534411752030076218698441817809706378011901158614940443876678669297661429671755289969785572029240919265394009209439466468945455808656296032923563850069392482520344311571398044832061716681962465062583517959648614328290858159057508981893688868071549040113509254988516712476596983317169208055611707922313494381677629943413482069387364921989358410242342956141010002304335677832263932519140891607080080963614585578884452823842469765341547096830513767412560436660905184138236655288750895132922740864561116257892671708586477527122701727813982044889613225511534667298422558726358654962470791638698372363269204884498409442618462852260127452907874416418389981196640023697629665608179595242385077452357888174785312563608760431285959027384578436105474290346186507315889115978730808933467060356642591244708582636777745420229537971427989976657321111494480758137499314786292126629933177060016105056621962655195877503698481551163001563856294937525979175895786051399160530697205327126181053372028604067934278945582957577695532576262021469926920990896337352592861192155149315125436695866191355559357787440773620227771998897741192304549740357364076440846620156432479324433501786006972844882962984573334056284722477228973604097078411573838583640030590818793579532392536956607382234759828198748406512027815871065208492333990343214369274695888125164441434722176851702365627650395059087185873060832129402218387881754960425656550577898637314485686983757562375635403779167386660783519681706267502943672554190507131539000079514390627135491086875718120326274088558151911270136094384180741439395859745126577767781034403739796676552607933972032797413769682977942147155634695714352122110479656384212677862195056393628316508043179477785719260603037008604628166351440610038908516704961366252979155657010553932716073969803940394877690189453326713056763887831105844350349797022206612850403265507381836219382924070157058634155790345668071143575932680202107164621823231875035996541693687244396181267300731196132007415405360871029513699047610185002000143364337278348026042685033458046535138891931699972531755001188683085524399184491723789825165779779085640565924598696687668820546240157347963914847844294591833294467054042578139190884469381380398682002376010066838592101853725845745821246168800580923382883962533617447591814233297749589555000322180518688538482773724948107337727670861703817257927006154465908062052752440784365365066608477775526140545551028208830882665603695593745079403764727410630472266350226389672142050481699714727924279295261500468012218414713522036494380805957738590158901071914456947485478329750505917999608089783586967010824464195989906872909308156700597636771251460210784287573577182209826565459133405145819129731677976904864788233857699793953880414558446432776801295513673785299792761973398805870852631194223581010828330933487247353772630956841157666790219141505848210500247239466743482986827060640013768928162720228717538264219720685136155134319789404065426340181151347719222143745125141844461180501209271085847391552788732752540813818291068479963631128415228551769132348414307665597991529325647823122470526551644116160574320842901810896096345093675664609375410677070539041614010959246471734683762567711197002996962635022976634613700836024823875856831379777779001346762797918845212172902879803966591822389407286097409869765823118232485269426202204844163436192656057405648187050438300505477444441704774230820178691963843277983766410323377404492132940035303604442492540925971913006691156624476290423526443260802559223577038895343781898590157303863570671315246065116919938354620910443824368773495319480579840413809409517893281976943998536561877251603355546909181761085768094864764459759166554295424587974969090578948143234381312614781832779527505050719353366430680769658678563752107261678810927330138534153840715283646314615494020154336828790828675983003049047932038763086143533161510477239357907009584240349135515514422239334372864984457735572955382224157709278834161612339208545760914791305343506365984924857994438362036799978478518478358802016572150600628881629108721769860629015419330831288051298463296290079539580445334538651776986206401754835178821978026607918691669828443336064572516166344713446256988046652029065521666550283960502909550300073399588656360579765429867369805384895262232419595996274201337424543167141932683069972421569279873828032692728573993209923903265891922956736726524835474674637413997347118322023761490050747516234067508091510800665552047091329021738133076877808100030998455824274492479915071143064005789477286025259026454600607828874563426943875069875274551874024106635751864137714753399135292891158858734839375115420642242861284897072947851520249997914957573584906644034753542346188660572279514036049111960177420081983795159898947691577937149238403870061192296904512767594755106292752466535941919126714588598458019922576126871966079983465438963440279566271951426487666956233045725021707534276512269044543894664506836583240502974491704052888546821587127012515109724634113122061422006730085887373864500397705019099761477897353929639893702158418447072885908746313406581461831355443877889073399528716815897098424238728885116766987752954752439831096498776311016765709152495402352499324388737567787130702741178227576581456368678856999706239994064773661453271972999189641345360375555896535714439865134200637715255245217371061185173191224902077687594751171762530387258565334000499191203039271759005000112174321529579720263116805048628206590936474395529309942025785085155211160451279377674306825396054527571444513414261092713929401908988752878795672108822225738355223469647504544985864491211801231625518393115104318231280086587029034808360259310432292621725713011934526165040580189175921332249143095940896013769328151088855073402708756420534391327326617408141891684493702628735997336168464294145322109236182500514374599755697330479836497981019666693749132558618056813550553463488268059774795733147500081831207996174728451517507780316105529361979729004225294939882898950175342400197536479114134808971417504584101558777608260596433203598091648469294601953239303947761509226186230333253429463980010448800476208947124819634035521661145683727538219511901396976554962361912961364621166963447545001478333938536261636196131365838167628935714200838154050372746499392065599376014230388657986017753145393499979193786751566784176839763647739909176056710229326720433080606138483557821656803344380699474439997137513170907192411474328688824483180731454468355175762328210239101132395900196902925337097135913119490449532397109662758521386448958593722802344042803143397597278472270914169688478095416646386401835758024806681488613559372665767044945671038013391167862746155227716670064150072586662856453487196899008655398171156046857891374724764923144969091703522769896170093087139091120030260593380290519285468689604113462904780705208180351058282833631387796116354598335649624447662986566157112276206498999943644957705318612421634752033677741584791372705072001724127939531265250562980069815934815415079772078013554121527658351603738046594920454303703190646081020015425121501577990811216277085344769034308646139782268836225281619988484826579161944237657763925522109103332811564566117915663269107035509053590587658844906016480433684758683510458859985968763520526611980872583178759883451098429336721176201024464077944259094684614209363895793992950277948823406071318251037696272369278221279979591691561630993571190970528024152759910373008815388472380813676708803117157539719665249637180964212559031121675294712456069607781660931559594357868771207367786443228955662505926244652549993816801476259604310112000760959909617687902329296025057141833527346800830247587139032738357467599106530663991903388110082656472346695131487339850744311962503257515607302990129749434787199126525533039847146777422958799322840276229567174790300183260372016108019122257533020154275783874421062052090342792409292886279556811733031871193693798623421169857651134096597441340955799005711538595163019557836836892418688004904920463880751654121514084143070804274153501430330588975800472925044596602722764595902638538473435731290348190069985372871939847081074769835485363221920308154458808338224578690121842161850061103880903223470124083722655092699836587667439530978291141038058414496273697469201940548901131815045612997097815301160568934464314145866233793707720138063835460735922965574292611291638496960286547968271445633668498151727578362170827269259594178141506594526144929520760108379163478368838317958118832920818978403263191611545670079906080043223923797322233244101094881473546777066536683722044624166600288853405294794462664875869069033352569527243510056443080777082546737559031169237339154774552626652634604561161036405855514318511731706992873254810539407174811791156086412256199065961514397087507803424160068666135754703010157905006517908008969477771157571325436615973868340941288081209870474524878104087521672884306524671290281221191766547508321408340365415978518452207976698576832979963933188914347709287840041916331284270879276391882297987985119230283155276808053099117174677574726342597151264230220378755479049751287087819906253427181878976549190000505369529771463983285763263699377654346763342827885354166744134436501602614950942795660831555758276279916085906552283503705902383773882462584227565368807278449094376382404232771288174758151814446469308883388319761290939139602589301645155569020026452246821934003157889421652622828380813933205298856946601180357730389406689529146712721456802420576538048396513517965973367570875368586787540560114887490842903190922129032124920430656475312577545083869479913051268946129030657462430008295870182405662748008285627216718543657348654143430472113155636425096704389832363272378179564593048728170637973485919606040993113754777767528096894996404976665462025235927072687605035051161615325447976672666016084787670506392381458859070096255573993836280762042762665457713850791161309671328830767043967906101505774246525706501582018744578167472953689115689046113831637841849837701020310018214528457012627209601402613176028252068808618795972563061505335434422657019136362646913164862616110161352595253708844761465352891540512262304406728928050141570539578796209546264334528127074311601596975348778216671076169033031864043907720253886631694494577460382451590771973726867268796460731925612686742102266543159699330084825056485669020115155898017167405594366432863455823127189584238862400577022572926650310460561446151237303054019266398546172075503624215559593340571843749380698579492270505601241362588566539013698455463974389901663633778209966779679966667399580860970466336517644097362080967603513703895442585108709993712964196179943755063374973519360955765650718324707706537982860737738652047661832490083608813038841361042229329446359994989028974321069463985188008487588040738158220166962307545411382293914679556935014605027973611759472905721432732685594969827700677651196454080307564314252203322033348609085801842039220214838323795108780099910821829967691249158098321063258289464064993754645227129292631523231369895791310157174892211222516933560168953690966527727568890954986342319878752768653743184280906377242698102977916974739897113892139252551476203995723587308287113235201067430574986808410905497590773963130735131689854657522300444578047139050852477746424795752169226713936941512906210422439537050257953688466526860458809122930505535262748356917230519108603588846747223510980601503099175634945407657183305703937795466991581603735585817283489734764145791842834501017584943427540770369529269542480008930660889545292874163139783844699742296323718763339937057087875793773141223946535624864461478135062949033053119391825944298768680379919923955437130265752862347720658249328558198365000250552908583032124400686218327761051550978174794382252742724262660877148846712682467719324115867649663536409343226356298236981543168807238853805043694035511336287967511355162970438060806363757183249903397056307781674773743525523401253412778567420835728653440736478925281793652081733779608036011914278722162749046206731802103835459354617556555839833772245742833825691071269388165206485632578409669541418414743620715212083925118995908120259857911653125905921438473667614593948145522298380764423529743531819928785272416671496471204899008599473491947149188166885242772022751883954946425124947808598488253708463084945112966273792079701183928570959296576979145050461519319854428148914708184539130850702204888141136651414204244392815772983066687065817586804436894471614818845090885803132315855014587781177360686582957819393549444216261796770684770016838888943083928976020541266109963532092107495923391138185936563533565497451400497056150955012684121637890257116203296299784597218685529747764598981881969203359657280142121795527433336395639844532781740593938910993971437208759430637151562546313225753798093803892799840433651999177505687794335171990949186999284805594499231872162424121819740690037256168201464616010101087693906644217966995670507413559491630336476627213579171210109782668722005822346628947897001355440950032074078811231857167821764922166102191418897782271931327703797372485376129760167943589153934566497037422945723558015116394735609748385071761024788505231756057557309787111205358016893815955221061483215804412985794142425908985287827767951228856236443459191779772400986325038550096409497732346827221636105230367042829815758278128586046247081708888426970467035068384383638570038371428519803143391693505419273426862483852589226712433957213605313904511655450140795186247071222210564533160125794874242801446771676535910982674375219903751019476221207743343482942471223813642585069215164126308487036944038041284338630783521149468703797923422572151474039032074908412608727326153681101267750499267989116082393521759367447364418226272194241459743228460499539791157874768005040096762676218656341955108986496658703958905160785636696754093898375210227198730266749308342428813260625004335981664505183831176476445385808646858528895181718157738979064125029233391336707873807861135849121626300477835077830005557958031166652350725125927336166425604930030858794591372608224506953402804346972372282734245217373061267757707611207797943847657535106734242716701158486157159395997394752777653958710387429721114486829855595312238254576173603337396985843881600946717061445522386646404164983955714214594167120363192809476712746032760063463377432489962301315944068592906628438292377948502723475403346249138140990988219931297209091670181845817959367062473207297575091765963913625919625052787143956882541810857687182437405852518077661829382345696326725188618363147490185888918928237528820449141214363001643235499090713182085056083291773551619875965392230389128507179466139557559581477661104271417095650133654018122420664939611944216106656705419707733315603543746109163331383172252591043747532413734228345518843380630128547820309390590741537674642719619922760814397621814759248582464146879504443220051228118619427675715285388227344374085327378960472350603268682423004164125906230151532726479043480086598792998086533442552983231081934239130167112397828543701126113714879084376193558303261618253442349850261808539651258121883186836437758093387435082668924335270705298151416344582047244092831182517782288779747523550768001299472897249214116333103034581464974734177670417475805139664213266053302247257973807328439285899683503022822684426155845884099950133090686566626817384261264245321581473083337171631325180820932311932956586422103175219432124531211039349095387408841011204295100432639497852461369835683534666271551493431992279904815637066464543953681459234882321954061089918001620977820694844203182022074070104294287449252057337929694340632571194842758613336422233851143368619439134998360933526882452713356520458471168234912849623092348485227929473343216042127867253633761978851773816469580534033812403034556762438528597233253438919718400831364599461638009089545096071547341599886231838813488368892498540253774447577571920683184047344829569897737705344337291556647758055291611625784402764977741377988832335198059288312965233280750192967765426565961053253242849530509034030524770409699799662734562563079019874952379486533126191826280605831751190440854950386721350676486453854364841375578908994688444262453987607231619265567971854831855503566528873726268427580068939109974372618038671866020938931356938932440574283400358859312950381590153441027924386337965366186030805686396135657878168384574684325926382081102350362568082147760490438380605366863808392336241029332181360785739790774394669051233572860358023072305731236674160603383267010624979181612334947334866265017757092630519478135934700763207782223157335304585398052239855688812713089508909905445663894628680986531231535357057153461482704630903635598724551730044942091967135496184007179313452836464402434880883319928131328570280045663893127270696667231836882148768007204142880629405261327331578715296209973322249520180488639953591749962654608489093468262873571318490056810815619957131620870830036061156074357711041347264046659067801819844332198954272384897187870425217795602138209831543313284416126057439025060375822350963096055511679375596989947429919921503991022136570645499713899821837988915288041910059545968479519144025606806063385360717179963253501050988284735179010134955512143903107109815947321807135613106803833036059157370964986091470393275526811929844348516905206814967945634971634473930320246174992218858792551755457288584449684325870038927048308725546042449201231901119478616845985165387959637998608332984564658840050140765672741200855837079377815358621118486448186922389294784824525911611550227270694661383735083784213046798214324253146489725977803842387853476157150177264100179826898532503566301158029134215474434266132888400430836665898539525454207961733898918059970210124712147349059786157350201271271214701699308014770024542132714276215082155174844364690541140840431997064462551516303306279536437715853252470061006418315390674943275748260527185336763757070205693455884628943376147414299810649560032811010674009250458695610574301842316544352818289788630071437327505618329827471631593461000317580651637520355232056735912183690979825012574831866326976086503386563159790802031701368703063213160685460437853819918572786857840953338849052567532939597599132799418455443945512658310221039158873528555687199336395632471290275450606232245120055988202487617222170216688034611152473696659297792315314417615699354888572003793068566089854138567839112017383422753777171591692569579922028438312490046556326028755933340777732032778412402045819368381085564409911288893590792985656976868850069783669621907115058872507152211461066802662380846621504898537831560964479836801881405268148673619682880078751852202701140821677604698318643747854822616737959942775867781466901416669586301516617483570843239965096002043572115356702904265407273133618537820599542166422282179091050885395409832361767507279187185141070666331906818333606233734234726601357427209613956959401440338826000905768031950747872031363306001521257296576885569949949208737341825077411475602130372317766044142769295632167294412388260637603757023497842709855326666563005103301836833251780219512816341808451841456707630016659842610602318637208760805001911590892792920536623022990028653818849298368667697073234265734266411181331555846202170357314962629690092456254558447843030709879135580536829109673215509000578404736235443637185749436420477373118241160433101457888954819560879663211895863082131534430894374288315518199993748753427284788559622735027632657605232472242411521288479149701069040867513037755110810117094155868128737879623659958466393518745806566385020831056871305575794289480367112420404482851515529060562550807214363251203607874202290365619247644329249245530215192378173795219239632949335883033457412173615107525065443476501731160688334341459512334675617668781671682570957346451922744566463115183518639953366364096244614247134799862940538541893911429524456662486130652640515146377825905679342005935239965082506084919281065080732875894246364091157560051184266112620148244490680104486282960587121830909060118613670290923671984348049945876731787120882933252431215571002757021344468485031599810228109704058319647269907834582157870395568626551169182396307582675519835131302514288708370671231694521559927378079330585300132961299089282199202792048124933713021483064321773318667291259923214931690067730975214591431716709713255385681077090187675062228676479584809532381739478399456850691808463082251404736385034769317852500571856322296404638024338262416072952493375197644999762515714071894857115935711551049407142080632953207014674422181429489210976227145883195208149195305763219563676853657877136667851751028797875946370559030749881534371348122022274420032251966720496182990769071236345910900607261376089968502476961199330658371814116699366857693878339216815318114924542086185523528581488002305799584058501409382030808887920733909280253731480557522840436680877735668935925822598647790143153937028036447545288630699986403737186184322076021159919022496907164060679094177823858951541865448739150707682237537764034437949594029471945750499024967389686264414946247527570481868151655927839943642391293530010822257291895810304065344503556093108320214770931498493119831285478182111222590074383469319694529997051417261057831944545339243792565277443493941515953995012899364538739620590337376187168375906471856686895651530228823080385709783281266759786529095195224321221262242426326549837606939636312767956361097011811443611823229550288917993963036106754723791474784629721287856365477326573084619955700594838333428644828683193156382980455555374820779827684751395079772777630542197771447290852182868223065965428735056080684418421821794447085451577572719790785747577374505502113701295891766297631577931846754541074724131711386497717679967714722928859211477017834175249608462469344989321744128597587756467767027931836134555284101801061270708595490386704510593948609265736837448053492234958636000689765562518130917374152840956772489533190204968367594070004118032682822481339200285213065267314604515168586588490101704447930747298236230693967547921838741745533758243099477319142890951440598019120491192080341848280255644030439441031006980307287955958890684388919921221088728283043981029827030815856916109951680663562659436224572096661712248489142948162150878705805801770352265333452589970706023990679246454957275597389362162396608824103209801104884500013613037713321955544334728890784320486216548270104282437725346081897642246591203260622887619943769149070259450805768643418808163344368410312443738494611002904553737565412437162900605419847126863399840625073546922872441838250296748689082862859260209228146448905021628584605540497587546597231834667086372328113466369788071909378001603229384813230235538729695159386446683463325178746379631164655171656717883514336415936147787827339640057379970519472652992213073864864680957550979273093566038989854683271020442171414326237753156869712880002812074058293448234873767723552703627581098717575990263499596289472247024738328061244838359268933261373524412601435045080590462626679928909795018715797995344475537156899215040504551180509038730916805053679340021381680922969198490553556995879605049258457019762421940481214857497766148822815593540384130488255166556075533653618242409067387552793660147669435923620929175614850157977966776620302086120823674113860671557677553445539801854311248683189656625334895125655065246362016487453667463492098912842925365199771960544014944466002765405360719602020032951608885461687938630470331708311219720738622785288862029402717748337754881663504621030598181708546482823425459429304082597454697699844661025883987118547573948653322976386804959238887055372726687057598000602777448147790071353716602283950759201102021189683208972083665552690447128112952771629201021111076317897763408868438890704487107590824967723756548824144431681808506221744700768973420481578189659320821208330492101811946467218599526517596654127612990600484561077084012933439593049340821667591251679074202840382930524218191063007733309881529589990130104254182817045651211009187491591042807643041476280536374311628836397825496691764773937334844719136120361977765218773637894750450427840596129651460182722258060247594721450081576346204148056283658014654492006851075044455847365722749327009318088069392668929006798370917624819630778775187621439306740313658122995717215286521994844487404853927750425584294744422176174527372778396160338978101007862378130446500261282345064426806122307224252178624860635139293048920766053425029533366987611002734562117031432403139511782558616737121027320516867988075189302810996911956090769946743690935711695073882063517729635683954235933099564898161257218713671326915000289457785019484979116639046787006438202809359551776449781810926507996655854789853866294656560337440997619680439136765967026317244590515687622286691252104688228899444617461163951559790023612253797898040235766374298351243346043939805586093352993977528602800112710456416245063593544081140869428634403702432967746926791324957689866802477363460760691563199771099489362696816551247929005919810911837647895675699674386384744960456540806131354311194646659347567959561637590609680253574223050150787794306067138512634959043497073115133174592962357072807290963966070043350412761055072952644430591433862356839854360089749456363225825372483024134918164399455984276034443301946650925461033138886540276943333202573989920906693212251159914824744659499659857433494173753313070884538993177823131788017111804614618892925306976835806948345715827948278729465094465598619209023622606721098600760673801274023115308324684284926406779912364364390948083343898140163392461270401118196000429507583800398564367989194456289970320195950568773350429905718524538970043077395776874550091908077545457633063530206458756730967855797546908366190843546608234655827166954720603951679316285732350125515019187206914949011818586050556652520535714666727082911408747846624800295659531286557296327672521542159543211575055225395319966662078368654308882397432975813399796626527392786513824698780465507552004901519745759978654866075088372764329393607135531748339820962573175360938941577081263137087732764164221279446212662883844324820748439642926088353670248331508057704636703519370176689695077776085736003134088705519320473238402152990354847436265930995347886968046936117803413519211285882010960818680557565923293876277225144961960431043087323428081170850705047722703932261179498686457214224309530131678222368461333178465856417618084686375278446140794828663196092634819604300736821592593531380991689915086779953281268830518271787596409605847370094618379737937134515048526244828911078741219819456160013216388872977162061800845426093784954342421387775215544340330727627791311868018665977564272175248596341199991064374605958634101258391465455255541236394494435564217357620270148233374166658125218962791178746294358945332692841475276086180580937922249855035987087739015176373291729882614737305720252145472299857452632100735670208539561833815043513504118844108372114649919362542462774836393299928848919108757665627041150298257791141985673206670036753030380697535326030056195552661368628682785186837239343192217979535547020166133496461493687789771693420220937247197524908268742083099541233825963436057014647822839006557050322395744534416778857475645154205422705409333915696027875985767214160307559361119417837488729419249333515232065415929448969478315936927529221030265335001649441974030195129826233832389661636338022359777771782888801803619948050984928327563983455372767574100926205477006551718268635080799858355945110159180401668574536212012754271729854752685127690581984578754851339706135881460411464416099247332941469370567614108043015682239097760731159627018837234059887583643379264790035407178825936605910487099881818816156094349256486226294493942015834274711568531596400169811466717322515575341667202506698312813491060470095770249742812113380458772118074924123729238354382081784948661798476382608582063422334184249159313226193194681724803187678747249400027154698076443201594340296638005377663470410438992873989060235038429333848312931719696751870917163832198686690775526160443115648348590946896939537992378265296058466975262475469763869894208547479680590783078198786179380983199087611762056377251829142394405193824089333238043752663395464244233664424800172515461726097894440335186267242224696841967493505840011944100838673875446326786484631223766781002147854583523066920157288507016242483929325343807352927215765674947676069106419645744779488866008968178624567913917003643662998634733702812946748679125078102061530930719774946062984404782209989383271485863690190499001460683276275134546357758757698007920174114951328543288545254975635727268728972505109589056941224108754366641338492336761112916328514309561075363002090530161845818794145920384379866570541520647815435889177236333037012585111876315861104046586283434705569993894199336118926014449890132782590388867505452572996603215743088705069430130959753268926075520284398956480169714841337437205194634794782755612977294172654611740823845335513606576276426777223480684604646444730036253990978854621140165904098224249061961560599917650907190021600460815635101317473879424093656161716803414033993003868885924428500473842322670495455900602609626026500886406447610960885575952933220187814680339942568026059818850072965003221779139427034699906711754298975375508833051848157490402808024996568274313073018707901841732642027319311585175572396326379268771934475831711173965973603773273973880727009981995144583996291566372819817836779166136426606550908863216948406295355944886815906662891171539804610363750763136528437553534513058701204377392058901657023561532446502714694942924609754927918318440238628897629883581733824242385939437135610277393029997000421138064313709270634055366457764035350277674372816077135018892524252026139530100799300037136379665925370121724355237203813517697542407455571269012129583846676771787523585723948895149899515803784729717639615476316984848766196638132635643095811625350926376782618958002449949382201919036342817011372290054822631342372092279249475377214585212101740033398497106365787675118620754122713700795663794454947589056481339579980082029111411231562361533176144106594613770804907999802943526280718564909531445082853979655843267050209149803191040879519163017592882980772694575655094183660984339079338713320170241771575972845915309489460284643636419692287467090059086570056138645948360047797636810533904694088830698077271606658237022683843119267041078079617306214072834742294607268399771091388615876517339586486287604924495473732342939011691595939190004771078855039231479428932022740427525040132556645855756299378688598047742478523102760266406251626109713446181235591572939547551169940870734389032718438167172815622364377774713339570105613265497830841416684287565214742742052690796753474945027218773490226014778911783597038741260468043199052982210085443067877487324498356201933118409248116069507946105043133835716695167063757397456318027219649293464193751487088361261944145419510427091920431911510088091493729674563613775479719041124264831286396038932645500587255075178958210418988645515065561874263601079582626349123948526268389327694662762331319424275334004172493451422125807634378616186572775759309535090124029467048036475958107363569452880467390674568396859060583174824447569635958400103232856257173591978342082991513923501489905528526310491409815447874490162589699846264374262868318574474111778698727734485118841941888773686429712188947192499807330644446900400972136225086924009441470748508636316662329122570637144250241290498433947120135508783918994567427122385052463248039094770309054721004182166519511997855098239200309551773693453051775901271586102437957508052234405985180714875044219148452842104830243075471163431493178078061099340150415698406418946824592666544409189950254277907269487093157128772300540731712449842801686055136381597217866297616466842678749494141464296498209164907927756637368844584115247329513619340012627885654480828381749500459452544706514544461852682063922592615128044790448368770589397185709765620072974037625249738332042421030469102822623664873664267859292401448216283964011684628449530441746713482066606852951555312774986848703953500965663848830408983822039910639311444620382062379479319489566372076762668813947707351029700706697700051080087118254344376857854696293195634270886018909009179452147763071963711900682763376915676803255182506082310077370094984084374572569575680362177681245657230464488410388951876214165385766768949533871440228559749482445057144020637577708606818950434967368302762658645157007763639870944185685879906869668393802528318525503966956828800022722665780479569422831355201315212592162165779859707881464501475526148201214200605725974324067928167268386818133995592212279688785615582086739487387082507851939471888394000136129353414352013431043280034715459240912191781627048748666392473323116706476237677645439433919338736203772625667890117525718815748741134221447404863549582487951402389219165994960705948495112460735171567593435100906902333088778982499893970710958358681474016475710912924426627176419408918819533593237683134551991187868012089374209541078556247063746979396751139045991548332629491813060706307599895981673661738378292295825378199761832710911691558533140178760787616961981511022969057354492094997984569093833658850252492859301511279456336135567909759432062998333327124962480695705458819005715166700131144958511346804088993772058831413473839101031980636974810718622550772036779582300710263298019756176114188748565977815071587853657444864361414550850866298485776946612788282218021607633652624953548282849342533583076119375684298959452654551874551304258758015242266272455426303807242750523152435285858626630878329102524301008506162326525597382009339381959479297457852625365801651235016538129150899393162212636333080060132934090904144662525243537050959803794391989487145074920846608827716369927365055258545155892579045207144813702531146523252617445158385928477976434247132269626863621846167420443143110146743254694110105649291923078488903743933811305388643712453165730032341708862648360287983667873694633529357797643482719192108694369902264853037170349588078635790278190389686172513368531170794508141029953938350282941763872156998759362728426567138557624248517251042391953165812129364261315070056059977552469634458759166686399520087961585761917755498503701002960309800356547356978560310823606610134817613576340704728209089519095056391137117659423541323058801751642318084163520744707406031370134737583313000026375318357062097339244906273920758444605095829592980500771382335414029955711991076858184332820699481980899847716441139889567671900233300345238592931424052068746939203083651836363567052408012542578413844388981689989929835917951801891192735449360809840007124139573026959316523790449640716765329154819839178184649763585084827769117968819069147702170857620360509619428047391765866604692129513956890467451909156912534121798869096014764161320734128381719132574805748126975890263785858726936725426992420690945639714193194895964248323530572317809280724774558904908033278147349869044245212159877932271741432439832068968622382136900961498340265142507571364173619615991147055108096382312164091158910663367042063751336162102387670259801965271374147818967359411968330827153078104681087833205898303876343622691947678795830892063076806978049017326837474982834102699371824718098752068860571252100659730638238516110181150064301282760566792270520722638618518033718457885901739986732798791371428196153584277090293197146480915170084746627577742438992549213497389352496767754527187432928747833176834328968676078445344135657227895205809149782743910791358016642845588485101173129405397653023994293798803066999307523016079223830203473891141119383459308606122416015663190228412845947276882387538464999329083698278692236513551154976292927212974367851656899616334129563228496326220312074718687224460234873380197967268161416071307276738568717822819715467139248016848034489737229096043358985836445132989071889713097278229640919673404202217419503722805860244698881740836218787150932505260899619291153729162429426343702436642169213405165393342600853912205718665669120685577679947759899584193981379331680618725944244567221526126025436813135529799171673777164652129280109396867093057707314368070855828867255148268360347010309307598328971416134182883942378104063621967957624641687319211756555604522559738251859016461258869081469960937680471617371994625965893108958540348419650548404921880100235810399889409791446755967928668906316398830858003788757579757571385815189579597686739571960933069506108898350016318843756391274210424030136365881773159810402307846869414333808745274737068629138181664130009505592375328017582580906621348627122588630925171330010377254089675968214941859645868770741001212897013364380269814065007614465174396039696191140509973939389950675357966711533851216555696588010473387488780037889632544743296974057471681008641303675506661555173036095083516490993934121050311688565419443187046974291652225109139502698923047067454362322010409956851725310934727180528276575224157857007564760828974000644582854156831885522901481043620637508716456988676140226573556787815861520784270132144158356118892227096460958167214141411433406472018855500491312965332199064202420531120873471687158398776416177346441439997987470513160577920874491913031671289624969270498168383029082511815829599231013933351943356644769995372055878587933991277585518480469887347622466693115319339235774013018679943537680891039713195260622608708611540527518060551522827219551173966433361781207467930293409564112035519122150758986485843590079070938133011310549257474455124046927674896942616584028967664246036566805599091829916440509457402460010645004193142685303154429388516897203099817807447148851703728391015836522467310642735403457311151808051752210292597096175607078151984843202170836685241781810997655756376779814997780628441749040702974340980044667632330830884205574743743931970880578269766107961198321993265481434077873929447754598793553450895787668495955864620534403808595970743119571211865467845983367604607448022963298524408032382612926490749778897045480873671336400143961857027807712346058138708613177027935623359612575175297610135201367600566774803614705322854120636847064250910504118299089628701064572419871237390283901311642852865851181200818429044213800393959653082094928653222554130236199142275339000461729603064348519946972738962506972158891255884230382499578642985218690579895521618812008790082347823294683929298959273825815037029570618272184440703755374494157922882964799757162627338489442356830764632070742750780490689121331226220186499340609334741604027872822107950503325665055746181974368556717304951423767099808515692929129270257486137636500948179571035958625841558637217161906226246165144133009775059887035300783648986782284405419660106579791944456613594616925782627747868206170510078271381566007540449722626035081830852453574114248351830286599798428412481554973843810378578396571682820818328625696066573659662887634430401981844164121608902143174552039805261409781533443042755132178848846155952922724712925353845294977542009126752726895704566834416186942871265622617226461505329654715714166985520523620608205244496440376799675919582438205436790950009232521746656507385082820752877492312176113175067941523772540454650806709404226431579724889247446215598471777781513759817784743108049452908777018518503394744703283940128026396517899634669273315881445372270592293284755143482698091320030775826064166541833528105115635957895457901037417833861692275536964777743394931923153748786282565073813322792061093764934008166269784635531824092585598324676817935038389680866393930292259568520707448204638139993721825841581303126889788412817722769183715006422249750027301921140986266500138133746253513720055883957618867610657308428667061764129566920257936367996667454234412430426344323063822382659759735600576780850955453079309405172080557929589156588169454262880469752600062779024199234778069920307834997376947683441166735039799836225108041575799918661477346486528524279892102214951426208481339540881534867435479810422141852361766529137021081221861301828955772027154285056806566068225083950594390923981228075313540108519848146110840690604513434163754071877033528594902219337652248498762298212623727266543601320439739772626363587952503319765289820248028596312312371595740438130961396368749352058135090562229708038104038588263080617698782637187989785826438691630016831003772704073525867257570182640147381628459876070794025287246143407347839721915964310901424627940862190495313736091495531367953095653551413215283077734364270782662252715965057217862907476127867821329438538913972964269121434604646410381120775152116241949787754656373705178567242120578610270573164114855404082774436763230102650359811109540799728576634988299619869777425575998736555491726032512247516149472632844675931164807190061942922589201191788903681541132612022322379964252915452098331001417555510516686411644534088621990728599888071012768707566458287754670120466010381188707867122134183271318940031644167427935713454945177657985809839079909303109733865918852401789101663478573516954246066119090049166132728533301869818205855556094219230722098098745894893021255716458329422933429185120279802799814105963559068443727064523495661030833810316925053815976838928058665600758554070760783868877685671987508051166411607159671441258575183994134293531817496033863031295594731080715466411675273594890158795289031822204601476458545490709257813442084184426612682706353815937263611179689116710332424659916157441792912472437022024017178565496586320793928972986257338839165525098903374882762107505376517092206319025715897349782704193366823989283510824298083588971564729228776879723434941128949669419029232364997358355613447269153393905792631664939102241773082429049846985751068786212762041249071520302470451716046962689465176029281519705941002701335897035773297311888689997531014452145687158849982776432380972078840363608432778445934323260409611904438863744583362445883987917173587142554077204328365062833835306846200623765180079276348713856192955940696437317204699748322037321843148354480701173052540455644987895971215435958909210318578766469403073399934236570010400446926034518848604664736570746382807041372872994580070933377943941290287031999143289194409735690319780202993158149743163426103781833752967145604599387413057239329552802259437026326680128216733014470584470959844113015642553615314867990219345832643775201662573033221007659383203999418916042941276641376643955307505503219092744246352275328788093595392328497347321194796675495500735410444734322982074338763877630052800098386371993897850425740781389721502616670114950707215830286085889898505587500521163910179559800102149845755675275115511626092202456807592574398215353829250463489903885777581404021228754556183406892410029551768950985376843684752258293330535827947494180497368454489268196119138331215423384055235654018726445224916922107512266629684088565661047665200204793690156890503732652353474865862019271187995000298644098596026180191232512505278955598016885944816344554436820023728623784188139894146969793861359723352608995049400129113024027863083797458506071457772913804140602371983652425506216645308114634424161337693227923383033912626694729299194365122703234375285985597980650057944825630295031966547332967915383616394741590946979039490225691056838279464884187642934109544256731765671827295562337776467061440462283418948376588003752548598194229800767559477778127727497034878304851201396198848824570926546725694085546774868097462767511658277217552794308984162430431424204026551820704330850666271245075372866374064631981119049207534781649400550562413299543551084974653640207205761939373023834546067161808392040681510760000704337089322326867339681539261537669420702982892072472646669130605691009327304897814800020038008901882294640325897757259583142288137188988475121318518965437722708568864688680433666845295271019183581219585174151629570637526721961675084978471471784379164708561540591820076398413452616041392811999800734120172243397616918916870044255905835543937682752732701999514542462268506741061228731028829674228048459678708171780097006984417697157994838202770904308812295884754764098986597220020251834875559050152770092277109763097426423768746262827549401855317698211437616313190292810571015484109551829368812474256120788985586754258487794662362424996766292901989579090002928758196328066609661060714914127777314377680249743581170058739235587701085543651790106952623650358159918470631416877469964789486520925087954255888820901884040439933417482819165270085301678608456151317659018041263002804504672586159655976282158812908276352076624864139283232015138933589506798558094778775380756876746687869163067738415352490257092184106965815270875735588957421296161959851592652072901298709122995350179720889528448158111428664023351760964771379382756361125589154483830303426381538974395685691300457954485368314414301037628537901555898217696078340645984841725409194764177261660270653854063526690939821386747736438176642562437614372078144961061520006746400398649643971023365945630707129141408541193853098923192448773719772384107890711005854584359964822539681023764289230530514820736096487987994693422388132503757422032469506668513683852172950088557417181937420704456238477766448966678697765381049279285469830009888657727561830933473833166921385013860167309588018871456496512975506352517491735838506243912846862170862937661365376747560334792113641705900788986400350870065815856206015399332603235587192865253432288158679536908118713372230003790869812358903809980689560311568079644116882258638011026079219003228110671142374461326117587758411208110227659280990907374371561559263674786926533421348428765334320121037778367717816017767682111277457958608577993779474590142919862043243533841751919351104849063041750049593218088892921796717565904208629316515247878468239117030596152856398977777740854322359875739340141554407430150030057422032893330269631951009880585969826978013492519783549216899235823019871850001688765768030084336299982207726874127776940044489058318989935903677157439596809039755118733136986780752565759939979869400538447414136366932968818741813294288018010245477367175930099757744722440911231341105188033992227558368911726053386131954035476027970713767143142979847617206665881862169260628032321652104695061569053992777626244610758444563353284465820515540395905823879008419925877257877576389982716111587998291789634131519312471559179314875635272883227882932597312654847132878295015300180575944622674649253145181760183105646853066844609298111719643960237837797117603692906739870637567323079601702420717519306969994599568888942472319353871422265895537014117814185116586219867454699346113956332102925565030581655368679597747300129946628640227576406455268827983717649952570785437269280117069103810145183018435881594506292837993395162100795958580398481475036398150458184306581343082001862214511514202208913476511496020312676106307248494336770682840555303286758204108656236244015852596594393730259407939837467549525050687802836076854226532086689001156818596696489791939872562629642623335182973042330159890727785955916425985703376957053449485689076901616554348864164257944082610062418737922269547215761032941012283927979520535259122846665867715696113651122158672150089687637191445430252052835287910029097983357444321281235841121530892137150824309321231084806403736835726409674541770799243484469449103920171932352757152385274122974783915451202387647495891583296138983385726791719314594209410911542697431517731540692009496966602643560127075589044229904508575210680277267427647859418501260538506935670634137197453009165880206998348465270570051871776409211556303398488205259282908007344168454404787798491755317631529923847688931777422812231081685749381528721469011266076699958185195678581409270807354696187092289670639250302456145321527369603129731317650225947534553759530994035709084614757866518601905739223891135264390660337521242723309843665857201921307290252307379805567592950791271471578617820697969455680518583291694902283262836238528502141315624973711885887339064644624517691713901785987384818231915343785828930417352568487400429299898576482643287936768741543435411984270741833774406051539630229357119266215348278660667813848575140435229642534599789756111716770154815510704977439338204187202142025280147665747184947407690551313091890795552409085541055207819136402079944570183851471042961989409727218970799700126679564968373150166748222980961858181900820545472428175908984061679106926226805307145342127558857691317339400656866143532683185039873756231811557918434583722357460079097042806015275200511949450705042686426122191205565904639085747813719189364401051365036597796343656500990325335166224160102230629222327375113917620338155906653826732261792642824658166908101233068692595809865859972094388728558095174870975249337208389975122913003076067730644653713324354614505174224024153768787078155565912755538765175048407135337521543646682855447186080160446482160549726448547728891304190230311998698767798576080516007528423393535559307324410594525513415416154063869308971508815538701302085569879660729858848734564897116385702076245811250551200953657553355917685895949874291843275788541264531169419305119997212536554690554273870468213449304856214638183496831050393290321638256091272622570575064310871839804901537014461261074788522475379858158383621992668887828640980530426720839686223802667367421894731918127672596390665862067491498047105993101038314348967092586106862252077974770114864682551578309158968877378481592876279966465700768087168308680901700824593247624205935005911218003018222491146929038018138994127865333290524978586869813933393942979366627072057723696471482345434305050127107782793183387264546277549194831766936696814924972175589886495068396601661636841821900089529121127392790187764271837800282763695022748806520364436176310014020677114692222669821026558272668766615217390486189138617430050553401395595311956456881794421471191700641615339630874477455930168732422667915489928643336001817582517152391076490388724256654038097944535766940569044385712488532507155327495576286824021394306170568535901083764835237332389192362662441758631564827416405943527190931361654268435144238482891574329125504933653153948934529158084996699628360787485983362485297881059805602561738098664953489458545674096482450661181432925307665778113729114882377283189003957503987827222530996336927953431817269917161027711651860429421648294800063826223763007508466685717286268449606056091600118723528312694495032150925182001544306618536008712721096981749909820026315000316067417102817110234098326980274426008354396861346078281744511220073614416479378012105001505944273794000595878210677791556615420840031490842059666625986867133194057919679405001666326248077741686146004914461783912457029191156739347281561363877572710891348786149329269691662768061198499713256805423126469183182899715737283372611797945682738648020773164159910554500889090159592121085597671507360096644422506228799491763100453844087760377402219722248729375596437586424987921421246366354211626079751935524576987528384538952119012751955357395517956036637438409887569113948011626258612995946138756744302148305055227623277717023931499083618070146205673812035985502163541472011235138805991729972377364839584672690611598837260842475344679209612755284641005609263800863854784589840818304288864901141528857269573502097041242893201584858659999858945319225346442758256532019416978371627395628599749909997932083609398588656266017791828241918596458021520781974515283541244379041216158193334526248319090803236870519449442341794809210386234427822096724582051032314016432016338856187384528566699953295795529929915829637139515795823473082891154575393732567832082583900339404008341760606621491425892730837966765145473574356275228451951690052291229796313196293466785447574608534380773099916219677578246460042120559043231259740697054653734405036165807421845414790551565158444822261594414511416324436914660812171134395387628534823609215263386793730814986394600163545425366087120386618426361438768920399058827700932698207660259916985715485052843031233705858137612579404705021090328456618404316055289908246184377867983278526165234447617980594255801999472023359038951393435866385595916598935837827207583155012809666824813840222175094116484647499894982796858960177096843723573693744688007789232318055799266333138105992259670634504763516227778722817777933055689218769100058265381721679867382820736306597736892940881338325667647942879895341898342939826578649869162831722113128025877985659711874882899205376934209239956838179597825229960212549802263335134907375636376075795101373590182126514337114405601294059843673554962798066727747221259486577452096435403096082050930032854591406983997928071970514717264505981965169535647077813134078538421884845265661332409544899040594980356488708132382396377423397488975623463547653317843421282819218014032758449158800863056569717900945939784928086943121066920236292086098197483059534866895929511626498920443827506309453580028316167821144221905445624743004901600425096265595851530990115224548832146139465162920068187927014613762045749057511757885943612388478083628983305071811550433505202258336999656351371508878737266881832735478371271725448226087556784981734373927790038453998806966810199183417055278955611582547100275654476839347015644663546755442266886159572249021589231728834014594704799296988462048262551358127902055399766362187597985012302957256646545951159988314974023661988689462745834370435646639626684470862108301463666808390720548238882585042464937515869169132659542174348860726325762870817204827836466559085708058477103437771462508437731484114827106464659143676877935483531143212286663369279502298807699872471534002536886634105249133421823817883158266663326542918456990326069962222945457350904979452391361134415572537189513013372657645307562794620349795613224984892087254141290563268080337666324711112863547807090669842815324032076420997325360970111702217259579620737433930033856909987376503985334145276606477481776410898455680671821653095368476514290559706833948122774889683635406893676201577303730059769783804774171461896472506245013126945488331122228227039441266120859358520778586118985289779411469137255898409539345378455072586312856501516921029940368361945330367475960538353834895251206581420668839412875056592045211350208123205320523386257083904216606195233069306122191456445318400031358871813077474198987432357730675911562918364324010957009142780449302779625408265305364067756348550724373816599857310620289728807727956155790253108514354764368169521078148201456416641161296197053601682581542858699669477270797572088144697465136534599365696766171779272547083363116911464206548034936598031758787480286261261125841986491703718024737598940655004924439724827936617748736639353017856974645948585052347476721844580485577070663993525792783193471737213741068970204803779131707433536275629508308924066624127645451948830657655400066056489116217876994081864997547344191830323342604712905896164436625176717347059841722738986868040002879198469592807449344886317581593579673222804227848617249033994649019085316319556735065927591865003495111197490624819236813414070316201354823197834279730345869917993890069693449414141966017033739444531475832504177785730811517913137052680858559953872673317117883378939947066047748658109916034991428772268000631567914614039895245715866542318632334631288621664221693078873104209279002442263268212827571016463308560287285577777151660551941807873562596000346216809781384073227487960621951233492965600430841412315490662464780594320321377391667960855625282063478621254730047462179848236470100977913996085003293112641813087754645824269289147164235523211055117834243517246817440732570922120760723392345309317163262906248155127334395485889691875885872598128924794066656567110845766168734398604888000982635304619721627299832818676961187298789940401296179773695759197006193152647982437777573591320036937535571974494513057502844739176397182839252517463259895955680224786961741941220780998506867743235504164046932642493154813630973766425774531428564088689601370291728338285856288051581742939838308417242210502824298366540326631135342182915832147607946624478175114142380184823261892096688464487415576289609004449095760897513754133729719182447435491610406825097437861738489624717964175766339477714660440586354373695350298532095514927280422527353907542020449775310108423657628715999218590008104023773546909092431841728902236181044326119798001037349893262733367627362228820040820870938299797923750294361154386414603313946487567435027723087036132386415824210373218805496522287176918400512787394727713715596274304601045214936885714213789757148820839746534140801574958460982729313561243609191660894236780666569163990522194684981129555891726034535083343795218795464752873988707715760992966019226522278377652036384157096348499015815572563787107466575437878907678043054427245612116562981508373782521054896210141629889502312408256250339590663518561028757734633195278193313379643617103791002966901635673406862136893110801991092486414598721417008020362320259015479824485525964743771681224255436709282894922874818588210814620437532876349760505777564658432075517904910343563879360016632469023093564774313525501124532745091145123433852381931753238642231742481891286399026750512803533944768351955517861301179702694050057775970701420717568537929074203778330777667483131897140357563538944422908350087098552651128561392953044421701644933627882527716703426303994220333017077966259691791160009487650668742615963349549451667351321484010382328103430903480205232825579368201707021967141952518192781409729773450598651467231045457605756621901543256155820312948326956031980832108788190029490312141038439704404577297888085634551512311690671741613383037752039479238796831794574291055895395289953731538943400601240376198204078709742403915658195759348134388686464790824435016573157799639587087562085943915751635370543697241606520922723736510521024740099481425385118005068957675267540627842398259989002402420984369137170053785588105960557667487117351905044017208975803930045252962645427114698262340590447710977984327875308535234469767469748638757485055085308825916267087798526409210313736828593882809508509296752116449702374273980984731028325620596413987424589156377368882467657328071188994418981766682176824221982725241645098884835269832528298371527796527236602677990042453648274032335258004959071959950400255222249157994547294588758174600434078915049697616820139042959256552263030236465945272673137960793643280232635000340904258065767467962224653032761685737364816926087929309474454962012168876131036932028431939615226359152342561222645878513166620665870956104643609021444017556219829643500103304533074229685428199368349575608620031770377525470836220627011860272569807693633123373434144125742845214915475873390577673488355310294214779805795840742524138525672359763847858718322293168245542681202796053491219960546647615757368736580287661771248883818795954303077096872560489573921315223080918080422479398773826661430873191409527630176476699148960981113181513667635032939390558862678617524128644456755161816800474232229018518714064023924281926186782045885501404544980904634602318681426635469575514368514969969489210032241617134788704446391994402762876035131609996969496813144396135516918634398042072756677797581363902381856786079907717598520224280202867470053309281031607766005015228635234683529497257368700578451558956416149461311649683851919555835925738177061121258296180015634500313326673447009769087525677564482452285690940964731261735254603786355894311906576164766617837487068428872143908196677258826830459099768148673832044526946378827395913143571893101317331380730072291535673751160821270353733839775107920597222681348693050846755358111960067334528264979822030968622553910266578492599039200637425226164846601246623417031824021780145476483945925358103137208062808694329543190045321932331643807108654133565042158556292906703279050053544834143295677142312083369014487497946904614088653231463497898147514724801483723598102126909879942817049962251612195194998486455521398804761677235669848232609614584933101097482031002924522621018528678443813235667019243527221334181831178113896925642265274495686572408968041281829151156811485619505881664080186967937109492577282417176980243842038759226317201971434645502362930690568581691855297863264962843694925902360592961080490779740899302198449795737918246698893283131783771916238419213898907602289124767215077485590905903300723958638754177531387842338296780349928622253645255940341823263869030007902592482682827710170021292689584626216149305761111323890885769606417722991899472200743499958238517909219049991065862799743141293670320692636847042407512143232665595225129511692462104653448575308852131344750522895846488102717454815536708649920281764869773241599368254187551487175989217561658968987445025421378203437790945592277141159153478199418636848387581244649662918526163064750222496633361668889549582221919040871444840985122289842053122391320252690296723384707508313591237343666915130308420228208582586201390362780999193336065022892474468420995452951287914905361068308986482917899580117926700499124637547129125000783589154593695034559673181150346007381709924099057338265938782448289867321250390076396317026857227935324023536368184778582702949290628250458520246187792107486381261227448112291581566455830740846887682750104553605526937109028719185558896639183291273089066481013255250655874274168717620003900228968038553120680877456588678386576674591107588681377570955321815897692203371450393515376441411789014883149308744310972652071453888869894353586883015054429844850002527884176749556753407954718099740673042859633900549365152390042438630936198975063678080636235665914461347248215537350623467800840659694597088419106098108227108739785024990401625945828950002039397386686820936733187924839967716849545500614470306286650111943798934269343664370748760594940545355951413207339854556324325228917927939432875275430971101064828297990846155923774026148837462876641942731310512343624568130648198320349310334346171515733485124919774027879853379437040717512700431452382585392645241742103845583731225110281373258242646337331713576752227598474546795236590586199861617376587328714927796659286194263711114041062867006676955596533792702921571803666330405504264710807162589794698572712800291051688322050106559226990615532813141393415806164797105228455711495761390632511510294910769339903414395756312010896616551981032849983538879260587858868680297077824638457084983696678844571699371097487577667627238863643274897116648996875849264227874520352354316426776551853463813692827533972871442582493918583974925428384253888473360812223177654155891819317332068251357858769193495768052256749252191921934210219141729451657164221887091845621143360394032289557352999336325041268502442717361009381444157634909922193681127175369580243235377817313458670904349159413377979186299394600150032762944727429271365697452787655968942577629405748207482279327411517353565896059421487116041325493978308637115438903081342954517376284563172913383013126373417640006727141893301130631324488783877237763095629466049052907526479748803306800774035544358722183616360136622032727714762836726279932454522577856008859044039469673282630716289345422158064328961972938487459932846200605877016817223087006471018347618972106399421966171182649008263504226160620857713499655977443917943503641587727936162783693128199639294745191259243617967095799131425959786098662845312898113556985281445450321517509821514764296013840986600528041217146399161892349996465394856593242423593589507157011136804851009693535558667734807695204452300536279883377387560868966278958452854670108683300173874330472036164937988149391097665160625263270689364611300112817123495940447677084697148277553378326412749949801092580321569751555344493158121990678946579542100708554163124779782264562399124085016404119457269385254967809033469927437099409800237507100542671705948340626912631772630222023055261773993116700629696671689820866243524032341190733588769093952899247921727121305778099088069211065986900326874605914683087379616925136005188141515818959322084305891896665953118470485721969981724014585025924008527961964670199855519744410319458030380686201745147981354071960326601717321782326900373386040882628238037903707769056606071531131961077712649043945604749158160870174530538644773736017243728112547545442285754220648842503935391970360830641021793504783791253484975102468990107759803911449264389110183502997272975203560511522709208552467807881229922279513804229183069170088314413446494646114943849768423179911543321249366436380958581867942063505218654037570883646970897829961310700481629621096928203141914288424190001295877318099070262204433177600628981970714539919009094082531386858473352528534555581910909025775814048148935119522826903108037851643294847799175257514680119953564109274772202040784170714132990242210906723687186813808661999320982094043568861584981550077890599766861100900709500055693128161595632199148765317245138164513608700508647328965812633741578452118506834028901260613579541652330044959858770866380056384855575797600008197984684795484828574553565709476612072560813366103583453007972868002408493967811931424144091201332776262370705435699239009904583990736958483865346530844412717172577580958892818124278980832047714947080059436055716122124497544069193096677626361768110239039270325326043064083867015469801174763823113436522806751771174944137227634435761407590979716956854081248869499992108693273632494262621903519574788541782414015299164843371792311684093333301665775946372127424419144896656639463398001621721636298274798811283732528865543451668861158669814633828622274095987705508533193323583483191045194646756395287956585540050030249545642319114016027517693815700844156585589090909018051960510407516479817365955166388938430746061260361221459053180515418102527076746921239116893757250649755219882079730841822543739762703932873737762315238705256272353773621973364241443859947833159438169710034234719626848220302904661690314312584901308730612475320465080164305844048807333286988858606604498924411992144983001309583141177419535643391058420002488750827930882625037492080063574206309677993515816137090637885858581059248769363711214037533850446050408194636097021797897095495893103842609906445089330528681074093705616351533705198567070027087769215375335328541376135362620129358449963685089012854279070513179459973909175262546839064007135659672051147452065630988302463683620340649274105671351223454260956091397853109653773300158354881037303499292130635850797641319305619010481332470086195188935130698980945854342407436369347191184484990121667907237950575081010323924507162243300887456365253904619512387796466320846664080667234485607463661657744468971346149456970666560124127869118941615865868895467777928556911312643929258150777864054997643350445509781166310032383542380143121365903874372455738724768801446115348953548844790394751282662394372479508017517576701928584479969623601702952397806193257586460402156068100679698905372481330470750586571487259715824349162138564767551560754387021919844215828857294468358179122492457933809012335947500269396211180909214654546411343996271996809789927717328222126232821219322892845908583069077137197601468045848282321145166775823030556823514905888901877597420373989737076934949555931504833703804139257607575120744677386090299905729112181222302640793937994661598840280667690660969599985192222372697498833549200945570836463412527135817155678162238190875535801530297879749612931547914644281552438709502596154614898514530996391894271785112260905698088721340502193803679958830003579073191719679866721555285318674517203597153071854543866588655893219858422386858516219021215791580514858214562345807172535642346506956559748730069075036386635979714780761810640925340488783894632499927613916317331931934055264331734124903348099803565157774533553854149498884864213874873262687889520228446795527220798433287451243540509264387957709186245495013009838696589879598549880266078180274503829453546569358980222740734638880318121869695101321020611340645427326962477282245560131994690635007724578873964235012089795583205795764125989576438033455062350121719490878431165077464575170996241491964006746900398657697062356506047147230901794337121426843508984304441588359495088679564095680820759294883824389157310347068654768340906889523102121511678244239743803427558878961457425595438509396565096640003995653815503621818737875778452185291177049407852545294945226381717397320242776769646026339264507968785631989498965385778517998558719547161212647865639471575618483507015703333275730901109140145905141759355141527410474885604258563293643908708645398996435635636701458905296053392353779116503876348458629112358880454470273156091899981345419693924185688536800393064485786353329983780404818473578427180135076161945472989177581632950406597739697988840676230143249973676446159315092588030801627901329649169245345502710245170791491660857942659620820849179022775517497692078243014473317679423339256511836553022287197636769228837090296933183355370235238449617110848507024495359198409488366828690669223855324452935266977143561473327205063118756733585331923062390919664342782547284344049495834062025802783728806556111125340871713229975180136559994701508682443150083530772199244356903883794071199659033013204028389330259432193540034514178489072758667692931239825000933645097729504225998960294930109978320149760274097020983971202455672818522645486575559554258472911227807491422613098640128991747360706344407429662319705086668784758490851405506852518338941579372272655291350949717866800942091554612964934066570669311386512708314481029584504494085469137584943083915214218939223835469616778634157760899094030067901549028615545483508105902220481759694505457057737956516225989351862947675778595282404258014683672631591239151420762928977825958799737444140340976760386067756981148395890315224258733906695723553460937610690460430669331997449870656390498428537784113833864911908479042340916274550643433644483906845541708347512073053744012251805215187145627225321435879934279556591346647264268046298738778311272471983925562494829215405873506753565650351175695909506615526233907590276452800298236807532071276717419298710216086924783839031671033189456051728675071255619413233781899821413101436852265801882927565921922226060038111872212958445683651881257135303358922455595062960124656585370888602142464855031086249797970988505372709530007972367848925564030212284512231686062052014467908733232371871694519866572520575654618657283826484399327242025424619250028446016359742261158481178796984278536897643474011452643492833186857121232715760152598516535454420586017378661604127451752565816396954866936536651497594791279859241773641200798967768260871835006373130785739668002741075235021279226768007791117859988302185114292461136712709761750237816472489909947929786305541781291586581006473246786588485121403505680303459553606834568960248956232959662341808752029908992487579906031286402960708588840855392743976622130180609323627656642281834173390483899073546574541862213506227187167591344276271717474675164605770401301113684736353761789127548888903899396509404897150730576619712808107881629369155601046369335515560354459503370349194956769355011147809953528350785231418140136929175755628386303169264266683620144968254747440005099943897044883582639336026993998231394195274896332833437673589407608268452872197282062610252254197793554785983070341751655748364211186740654721561749329274348417758171724174499166217924823812516822292882560011909077439309898535977862656705209925724375716542862848992768301473685046201481010153309925431699361808020064215765194803627147719317340943162176806460866310500753931052258958707585521922538474709893462398611792340387777041507747344406757666379991613896523480042205784244521937620537322263883956923600477512312466306095974585542685723152823280127272773127068501286717996038580155608196555536803963341768038431348009132486821671774703679892166821059463846456246915274450358799393480108186173521119250629290854126585837666109421193120547024434787226211110873239600402122753302131749923084683209777644749867117323224646790935849483721170634226945560793133671140518726918605035854524130454550744700529151263150833423004184448404225790681790131342004266316191513659480436593929237152435705040671953295041652513822923145905534319298928399407764497190211411252551526933044958961858363522964619141988330512910480353004829161826417565952264550862187292834639275164806107878227800625383940908167408020647526119749252644708394190399414285041643186219862402210380698752838438866311484375191673422938766815020168595648854752080056240703327100532854737747082721824893893861240448334461300638244817805672398918371330963104766133174106245817023827186690645941062025787805858393749764804330825149153346717551892722643353564729472485879782029473752854665508065001050146783864799195249776669647654711718505225979634633434533276813501062861630939093418284462861590255680735454760687253167175623299462567463388495182721344161657582621959645195673474756479433042334871072131866232925100051744514201551610517667842468361733150233667890836613259200270791165034750005609931836779691554058044060046927005926646393263548617560751518306561864644624094348158342844867599792662692614676977905328884172410853102279151073727564240450645304512249870150886666308045276447985145303926021364855955904002892029152696910661455480696155574473724157567207619078889114334596693119723146941235522380630269460474765779110191126258195603104709159772952662386520368053943868753622051624393869245143060493162781252376963681357627363710694333127573901983437648123197072100511186136348375377422280661352362666583989936222194986704549372941128155110121069447246112094402164158188655473991904100594052597727367080090615511908510223004028535797087474572379358528960558397124097608021049347000752169916456543419653015641816165657346053381472234043788277251307684428648921762309248093171637104902945974714466593904809224335639026603331698318714384750639797216248456795337049241107513758485416633552299963552315817909887740985120708213991216596202584482653607303703651790919501174756701297472513250867035271708515470053342556213819199384556418434872897015495902367389664223160976801583446221640569899466145445207031024659091803580951897423254970277966822793659233955845691401599417735316079162438440497477910633549475368422462054512176417508574140665078369359580023984414536608367669266070261174624738172837455857396312042305654142510931451144526982573135868238053095596618188198635953462141232859370715021219632421066076951225541786992279192954408032374493307900398419479512866395250310497164627143942819426559361242901753040208916574856289885496336035865757348336595066370654786331099025865230144039026505305963365036128369122822931978924726772848645420458569690111893069736346988082908288881269229449717030483639000688854865204642683093713357648659490604997784669080214638148737413905566927917816004177679973497399759496293899619379785919731524251995384356984177993937129250486205852320817883173680559686640862151378987496147179987045753898364793596639157652525358072489062820555088273767083493350868981923673975430236971142462413101202488046233191714723823780262044843714637768161493597817224676322836243159072815657448677769249289039775655542586949127875182373449367115097203509953259750087258640059570393673677891523151504827306309898388776160336442567065801163167876209869825349302148885963816891839963268358232558549205671030670466645158018116923352907742076895549198119147976562038941336811115167409307554707520158353301620710550752352732358723587873304683463488781073475740228735689599275049370257677782149468402841822476510424937715714550375221206509584282810882056541494364833863459103047203652131765449462628177967480776695409192795491221249940390071516412978140720779993084279108179375667135602667793777407121540859615820024305449373512208289406648324154697393785331596840853211087585364965933579370489518242492137525768133039377600790343819750132162007732029469998363451900252290125953156876806777244532247014397762566584357178191012757373005350814268740668377322431111295559838868326499814084029044947642360271341721664466911919693127517305848060167020387563286980221290403408296828352676280570361146918573193421927527499933667491101657616867902460730069136511040532529243458569103855645636960281444658163160603617839890659812360264871398143228563405499677131479740878517139122635086722117433822373289085546327384178801536550702676727491917894844192489124368935361520106440486759276976287890246538367530666122614745751684389154113341354136867343938375109513775364969137140572429771079188350478991386870598841929409887053800026217014876464470087097322254760525280277320002935150648847490180367750975094342348304155776025864611248128736611637353524288312411047412056579447871675563346729775995685471329907060507262331462640621686358292747114080522006422571263795141790991222139860115389642011546919156590918745798119102056735131978829057405454582622141585124982427173274681002404565308328990137565090509518025721763138233112676927337895138748707554527456908960709758919773008086993951595903000759052503587797058785640592800024722269478819362510665473009899181260794228070770415851279321793965062379061469721192375387269636772631674751119602487750358679637104154089235208534444123434837759046327327459088980772070679288062557697015544622947377490161990005368642441062967468704023258509138234372751185052978354642477221493885711911165441776613659727319464276171640077737779772446790457945759607864339886476199024535344422448002418924675475462275181883379801505100123568071438215992534485129498609332784419418660944050879557480908141119507039860709822330716640640352520599276704559838858369658472308501333217864448119738542356898235675190816087623589675230581046758815234847306370420234147945388862674151958902765110473470932774044217640803969557434646273538619486770724495813380465116230513830259433756680718298230122614906587423290120922284046463702226966416148246902501553097393971973844374837949077721538834663245600975496650581042761682269557567958193931959714489526713463574328735225454909736104271130393892045764396600953163437106289070891537027730361601039413679255395001084546574382923389289137899109328323074291420707324051886458626232679717347925065177658706525726568811593919292693085503041295804733488766233193814432134200072761157582068895073648756273924708201547893157434644969851268476523412798964244831158561221128972296694539339838043286087354265201794987435566183411804591754857238290574591544487688661521699902982695050891322457343228006076136874388224030755475930579160519661432414392161020638558787838178471311226938722770276936141179815118451264703698935125529371281484974206056763116924619943398730909363623459740303340592953450833067464110751309060482093847183647053695699622025356576251492413078882361800976999591349768155541188406034353942022581651598744047829320543834099280564502925677687780288478570431277341680712376749087977013982004895001172024862502796134520342064855000832383999270355782660546747451998396808244699977442109237311411771544251242804018428462590147595407300710414063932131796750352802435192141667646957081396796219351749308771628943706619567529605985625206715045217500650050341160509091487105119629163420755355420371526144971648664008285028744913922024610775432442709163203730080309243138228675757570344979538054959173760403457728973152601063726814279216252683796973845342999596373954111346783345126504634307737721719136801027308040545902438727804106382513849654663262798621944429068196064158066123525482765034366373817839622964600171804952828994555478481431188868350127857433402201901630618274118792194440765230626713518482571794874806109090082801221198380831283762980346027853794534635676357038911301950586561773266926848519652603969573578041586519943607531115581659467898933448045305771320350093134188613950537877333202099016676787126567117892900351334290108438019665258056298339232870405808923295855863277162078881636733198772817480018217978309420473952019037073004931932800561576665748455331885725605153821180477067454856034691040254652336887306751701422743234481889104300768060433965556571120782898874064628950389499895202787648205174316061464154514388083282875843664317117919498063811106230991415683505673900641664513401731155866839126323306466921315707551640588407674962773314833184524475453231349240784517876807253374775271389016088091822918997468786864345786716333284146056851011733457232234653999650499734800684894327211348253004209502366477853378276132695748924656977988020236518975622450423793408047762856799392288079844844156639808318660187348395556104267565446804235974097441468978617702333139355329410278037969492111975236224066710604842456757116150128664431813665480442298249195382716666622499191102492581601597039354345031490430601958932610266093747609397084905356708411171783251428939441159228155575494868206711498788293887908767982525007904847385699422497889407897147885222011738836179370302438560753689290530467740157140994932833050549194224496001379437759019204684666921451488707041470411680031369575649115727596188546330424488781538868881007011098731717861335462405028973053404469691748664094152711675148500164087142451306614304851632035655204198002170101254629591195369898384960031660545749938065444863992250763956110291732175379952167391405431387735906856989540340099032920697885969591024926104118082845819847343282877661877246120704661505559378680975376040046034422739703636362976614155672195568387347392253713351447374775511231803521368298200897040006580162456412765238643093226820673139427728381782446861940136355682380260253903471698859553508342782225768863572574736939176178977397234625066371955763458334430302178787046671324600768444316041255814891332918902636474504452631420733895591509447059378485759642862588461466955641626038460210453738337323740193417544666675451723939977980076441814065464316633681019824827526818621232014176661185229906830714236106409623099313380579416477629398822098594690151529758794700066667667458613229715265341578763947533493503557336891353108598307312205962855536200024621268771813171909495299507703987252952836676609581884053192783244767955478589635225879126435781209926454124811731311419958166959127741737896686169630755933952635930782160122151329638605012792969022550629149039841110854542650879656589893075675897311603837371100044824301448359638047111809991299773960893910438616166003166418186845858377121572831396588260336400186635522710913471631651916437632791905223859941781471576413548370559186721857979762055354273031039319663098416647464051435957382239322369716229983214494342181647240217202456636281709349923635275281838143099334471075105574698926103161440276143070980642029947985621383377306451447141245626105335452935988641095988970649509812840012967706657389525166175110180966532108365821614508028665608615742479196081497386447854414811584895883632540289786247161364338744280938299771182654244052766712645864596769080252101909701015810518753746755187332561127061980416705885196214110456367712686405862983350945228312495736830612872054434352597807654760142005413792188148738141000513796435672993605576212184210152159281706020970664266110189892038098782729056438767445873802800327635406975407585115555521600026378387629272952080014753582018145286959178050401011048248570289244899876795967879582311026656308736614851084482036276554719409600075829356128193659835226463489396710851074470427638824306862057691676955721507428261889778345180722505467996513114689961335360636870168690303308427541901313254284173971487951274031882284236508437129226358327751036083160277179061474389329925732478602882583981815972167254104129662036125993101106434737941349554408509513733642310720312323633972633191043503618308736742465298757925369509276171681206258641578440606009937459873051787992696845023569224033022113293119203779868484659188285401368891988624605838112698138734932491876140002614412312855483179796221466880522940169978067602091444445198233597197918538414349873688524102873248506774325881838553168689446783204164180895607251059664567848355973863539706861082496206330596448555899553745888826320888986546246484552721729440256124857568903733066995921591143935214159729606978174189323990896362229106081541301291347439348496794287115927759159864637435680122870626509860111345824016078165531245377618682611295433706866780432698392628270987634862461471542145228614847407949607416694099878108101896426068993472162551905644219060775898032365115148694157139203697893767296362222600710678511942546339772148127192101307535884898313746925105770913093757818500562416039732247981443101507761736123728022637311178745464640809583088127661547747070584697280397138644868513220652305956356936529679091201964718752347135509156653007532464446652307425245500317928761884206021235830226131028940429580165577652567481147395114409707839919762136571400475525647878170759221656878210984317345204276823016623590612197372688251623110449497279701377749733588952291144491260211470726056421871873322572346673792526625812494265438485846513806446741565720677771195123791077574166981732771598831712230066153703600252042787463597644027722572833333916422889882719109422053870107030425006347233089311033412110827550158506210482554600578101471343685191891328241424129260446662498244443272911198786084837490436929310795315750593121069180245532972439450086689474524523722426961078123347011601022842386772484514613376563171462201508117408106004939508042728334548428966134986721829839633930780956739207846758996032746100322939692229838305261007182396633448873711828102900129240192969018053158624565278748515634947727155755396441134230856145002256679739745619482839313831546302901008928949491340609060219812422769051004567488299481029538060384387477074364770159660051578109915075486967635192704099586216822218535935554960891052792369634683027679311815650779035572023164825502186757390987336604076779646831400545458518682447561080983463882092689824856115540719670750917757166238444813024853274507613247382767240409880579329502061807866318437170126941558743115028533995871390188597696923814903885661057401803924173011612625863987545530249902138994512636539803545710753589342047782373979197259805355000336566892189275305660640363803356741120264039784286411015905612798372802290651946598010457178731966292250092705146842024482314273880320744955650861613614327950898882442659648812723900154965115871131124011084431480657106605019547439546815123499454839133847842560729863858530352452320340303365713185798465909423829587063433467367382193745001865619656681586626353321624407067441288770296182637559262653503570045150633651006015461006554370679880710996745131002362556906705951546510004296422339916704245869969548481106820458664860456659947232171491463662349794585042287532636388819939840949331983219666843978258289327821624777580509440128026891119875898157589702364682414598901200055243886977121848355055666082068805668709714614609478191996768676316753277941099354685029794894874516954364377010298597002047725572024466066486723051066438364687604787613294266208622892034098222485264407965675435751952689036282440207013002502753133561158347086087514541847932466384282900628506165609585401828546765505193582313084652918573863062395194225736675603363154620002858116582347566499881699711571633085314112990971323732245177066483849288773204484796356400058561551605789395845940513706012274433322173096492308311113848710276549949672332797047841720711524189873451518812514790785848052679228767506693931033392181144217170968254068346235998519500044477655574494315865501810778726535606410365525041433622659703864235394385696292573827384171830722414723573351088754118235519110600606896497323572923591270298519160010889802741408890456031363712220563064685450959169694300242738849674114559811942944130833272592081053118367494936787258346789208182537871674776926898459213346117681315054431853911993428050395820008271223638194489593868320338749117334334418809279703794022938651230272267048407733148429236314039335696862608501687460138724204326152084754371718447952057519020897339095516846902443772227436263782019887025213964042816926462096723879652740331458977363635304330716125836334624077712059343018085796689661263762592169302789481703680193344265804597539802376698637026050373242818636437647057769605888318108905625287238494534734754350362424334118916360740432487136090955549480046846142245051071918063770341762970378072577649977596629208405461619695625472458915851141379434263894607311980609605039319305956572379847653368047274943028346622616796338243797312901642891901605969875763819589011395182187106012969187471452966494308393793233180128411758266772886959602320608022233540504179038850897386784399868145547847921455070768763226669173924104073349918007212704444174368900764251089735975218936013072275524213464299584671541015602372058460749072989057247049720392127378160243084370990608422095985629170023395659730075063557772358950144116247995298364384807840548775034843293266210785678948024411263061269524518318448037998308678350027319511076811284840211147173057394113733099382515294764250730890729663560464848632242438826414305312646128165554257634450931619659551637904944923287046170134529882517238462869336346593340867750516745918191813539038189708801148100291050768493594846449850712315241742167656802548586060907246000763012097774226500228263660752462697461045608088421359639387094073318572032472870083905249220322307539846491767221986171205480424255800393660669696121494013108024904570092915992595586632698912402329235685080936885329912685926968577982460928492514231614366711769043134764974145424683392021421603439386969707333811662133777966668151121581841591794818789709376303280178496008279894835290084327608123103480747594821344017013018853788720434187980851333860619055960742281793098324892141600941626874289952195476138536555743726945599371431513820523027211335152762491778462509146296280615311817177993325141903303737433896048070388285587730889089188863074453297873970282117237714779031710105724813027800656912596001141175592216761942813142618131061878058577443301004749920604044340513467515501883705992999425117531070434886119822733402760170766415737281625455728322219680828325646160700289616178641037093704096880099526306422128741727542599875182152184915958426379201504880135463851271810334161828071323963047692993279602864680147344350692512990252597485806034876059682936579718234385060682258686286312143798176313316876086771016131343799800452990139971535459833392446233278393178256559840617336495609688820355684512692133083891747725628032256696686122512084313185719339606759812778661035036998163376322727597421282512238475717892352664735176762963554795225507531235673901843568074216840525375517305526491138422010708996349044959088139738249519130844337026293165313823295095924550695933978911353208146101706784163903590991113246915072697863745007713158416947163481557124633675457016647040747399265103661870763292619175537752610530315558579028391287511485994723945377897648939566565035018106326290274891445092402831448493688553976996573678866961906079423200743504277618123016330997763602388695365342061447838055029658282619219948772753085706155298787868259414790045889883650270431417544416339087855833227051190170962906313706972726955677016966965672100907531095272500902835689390717807444087592325930817275072142759687823988205609735511769431769883088299719129098349814235309209344530997884839736509015221309890651554931554527275975874740468822990413873943969181901148646681549058941182976321193966340753628224642334930587025022783489373915894307119973111092218964789965291895993617121626040736624609594697041127620258681410799555705751491110635717135046577399950057740333712663644815083698704602108562838636252360478235109770985078150637158936916665526462945678199300967621766453855004564448503450395320273050144808457472243489083838874794064106788427712446993515082570564244598092407029967636659277447910213567739310770348259459106398243302725633813845540412406588523020293824042465283030791177718778428399337503239804801673480148352166579587591333198615649791325290950888168427052078449654730488050454108589975797003266247546297879796644375620511250080058787346873061657590227165709119089444656449599594106167099263740976379107894286954246097168688037421574969487434297213134403226114134814102770370074555758574314377391660943914179210158984110694810227027291159875712008501022223829349812083119751951787950892045511805286832437054885887925079336306732389908741645484588794468604948997087791105799072536341059082099813332732381319502183444670222650816337875644320525964449971737891905723394193735707453301966701200047227164581522375164487048132591417087837354811099540682295191851983397228900910251732415776718328804756042177287686815871521127709615279668474263627821291934109480018159053281704918457674813362474949741015861879813011185541002817683413407742055999832180857843773912505299446915660313318007052127920524704975043190297582537525995866604201291173007700365535095851742417634946621870985504381278335022748305755628610956453091053280622803927230439765769963207652545223713792999098909131800885554531025254472196530886752002764924234010146725001463403754046865717567640136507557646297079339509003847054580556658718034754669771862646316519104454623831922607525947578520153457783650567874135334393879059341583882082842873623183541350100924276768692680770429135330614379651193528097881261606264860613115606054790474673362348684639019328951486997862262475484328783978319843108413608813935842898924873221996298662798433890293103580057771828847485255361299663520666655804636457263553113536298081828915288601537663974148645251022578083954579479299348667473401556468853645533377144831381180696289389652462957429234294599784467995597300695727671327360009146394039585583102926573503823431086703621946666408945648605388981557171259900876967155514173178703815709627106998580385329026009590963928104060288810204014233017669705871843202834539612046388945471335436417530097511520112931787034726265993087623775315117361860426291146066238438473783125487032962130332467672112304126835904040084700449688537038121932341092473268227400430891369518170257012229786608192067618338161755263698458216620967205451706042247562370678184180125132972870000851509203455822503026449171053917414191072049698003720311146417733339034813176693847483193383744139478475686733382753174130122929872747626987976428081545598020656041258487584391305887636385993845484357789385695379263130544883629030122065847810509446625138755977490588696371152258864522401614295552200636880654651953344590608364233900007737900554874233928632334926397985831409074859556319006051042785194842943874505997749136216805297721182039712907783453348031632985464648730727854690634694252626798328638050239722762805318297826318525605533218793169188095835082313742997243622764848158186510645561282146633923847285700887764895325500382015397498247784561277096048765974581670725355531762684586983278793699671722358852069881560408330665616477813623259188025125065714033234082690962412655636531428609369478241160542545597164911626909910947208604606961690022009626066117616374053308457337529334451708046076960938560182600936490537939531331146726038917960872271277766183389950754780882464411377168574950360634483487110143349670576925367942010044315053601184489781266942198201223580368075646249077740063437371082750787779628736273326954774075317083391426692450105986075876828548764885703305111499743424769841161605386110285835866003517427847438173380959072485871158311741008597247409829028643658991481152136724471431729371656792398995149975882063612855900749127118560703152557008575463748763524005798351733900835001905477817885294374006132728061939463712894452296890098417277136921388893136802062596353545489842356489367116897157065777818687776413455056082847471650017700475076704521702126969801504443457816059876553076402129103258103396846103753583842157131076916054458488144600703823821129410948470872880651828066144645597069899091864893735251570356600878422748828360113465596889959969881909505668669792547758488358630966205339349273819657850504030825409679386850206148405614182138485345686489780101304102852266437457931047453852157618854771423247641215377861156087721822823530588487794691276086264017582658783382560712139792415262766919178559965580857479483453197973600483693803426724430597577386356021163729720397888724753677853556610972827617016564217494341819759843345843184182108345143901393600297317371154481355234212737316431782413091279083738535168084537332071113316513249852143444501361324214082375648005349323711122886498476379690443972364507962809271746769547980190346039654244394910428612937353340550601165472291282227817100016127957804349437832408225989571092291065066883196149262244625086826088131698991672526980523004118649444304224493423295725340336238419997294834846417662197810413626775150838182245399618785655292372450265974972595258720295557919156717947603818455061329883694380753691909021648046419107369644360468256344001791024204965649985046087212042362022676679837512266315333636956196223571058358254631358468103604855399210381856745592642662838060612270680380507343060224157999539246475460263353925738635368638983766778142932294132833269471712804482650479763573745191742432641192514815435340655826431956953471720005736700271612201983862623894410428896870069382750670459644881360416986175665202854073428867439493793408752004523497293974906750169711551451734181501133383070457643029498423030340434606417373460507218308757943819328874193240128029157526510607756646045422366729193800085181179931931983938320701381873448231333106353878832017388172522765265414884585819504548893815077103386085637199660715790453507046702139766488266119788944746698243706539090576366861733015084842055189251306444177739774218981573097443820875204101755562068643844837199945036924329543725834391096738309464175429805983599579346472987062925342871715770171420438568892682845530847524520113786864452468191791732514719813168353977228792580687173108904758232056863518763335531118077202397914996837633424049748526235061904438783098903434113016981714890679732551656415556570903751743160383190438015791086153762825144398643462532050791753177502941776955089805655799805920864802584281747690025723349456630742349902674109731502330178083799776475863940926217499397192063121063474213425471182416842742862939112318217439321696861710211307571032025189443271016238394933920588498208171899603260424890787337719510525298236886126728928964094059870030936546662924014257306808279903518437203515816698679217723009977861826243540103962898188216338740335101388869455518577120856134917688060579463913389853664493179513255571470219192114894007800607542499936627059798277034635068970110696555931380832898525704398336661198314915372615644167977217378302470919024334867852154826653553337945242480054559894372619290391008214818504123798718120584811738292534196663196934279652627466378387953643721362857677734938491582726080194478688199160168001860830669496584683615215380227660258242837534491367208893263823004264417096128165084482387603792572471346335017103755333966547459846373584398209457724551552504846671985260715397635920586298513431489554859775900983909327331620807831067497228539218015414044322406407653272083267782196442847655901935583476435753361498918777822787159759870629800822130159472281305339415135747655948049457727109468219138262922499924170294639439982146719681408198761587766777840919955707926881805451504850412097898126839384303541112252032742114903839228716489578885237594740874832478599923938962622386148576944360085314423725428132845010870294011232103486925803220594948459839013342741790789649519109675254920063373933855072992613337181347335870281139607094905369970911460714855603983358660685593096558855353459966557058850434197351382211976519367198961009639910519581726596790896848227222632118756815708140636372114584054067338421885459544362646431071883987691928962738758599207539086207630851618482878305579667317421022274199555184051190796985639245985019639062691050708790315546321465295266645459152486318900842113564609375513337728610317213855724670418427045041833273183733437479893012939311314547054343744866452918288550131447579009917847084035659015040801901645270274112753130589895551448919952318369921268305899159923197035404397413081143084241704446578024141997068968857806506378354393566380698737558772512761552235779671545148341927563328742599175853627420446475861932253422643705100830363987493355435010173122833898138134456721491162551618603341806584789259480314913958513931431813827888812115217533844353224114188699742082896388811624998047507544993825401373578358146154095332883455693842902619994834661293154177654351851923554594472574211963911752613842931261567059251992628936178437393376858114271549490181880466349719954181519564412310897094977074828523434171679860694277354851561965039875246043634421197078899099424022345682750224813540352205304018630733013878053971055087429090201596729946853051840830178287713858533224242650836868156628957902539757525841434797097857500724650666392690663367116668590788963133080859224984374433860268007637606836470760309016410367845604016773674936428506743359287570147558830918708330797706450558214735572745264350500621954420623489061446034753308221164764074028379776035179904092906383892879912795847886932951660697708584375876748028537263849915367153834220481299563496320016150942975832899143464131300268285371763469674480529354047930897263051642643730076470791576132492553990186475606946643369460094778302913356622359777927262793250651495362939886960993696135291499744304274886671275095793586903202115386013312583430457760395612279538921289869586839464957717996863267136692436543566534174735042780024022636311466629631565809638498032151132468436100729021550405587960059879261703704451661524050545207930680670279401422646858271572760111363998617691068276223554237377723696914087899556530504309273318909040562941555411509986590913178626676929290131731654943899275474420606486381811425265219247160875324721545510528776206821661162477410197348260260906046681792935149555091772283596745190510473555684305178794264031263747752532022996379024039320366049639038810980341746740633434083585950484520116691031353114208709577888609602820468413761678059832493365876092722775105237878927842781293648583158198963468158548241258459666127525756609046473608602352780511611054803082270176460778268678296898808293111898985500191209921780369215072866027433894199092568100382577537572951938068113520461318141876648425559284957526619694556080413448431270168872329614644582526267400888956998458962607409094897463151398668389987550277458927083423773940073667263448787794760482845162355144141917047866397296720458333422647702208615220203496270372825548427787338907615710040714286329290361945275204578023015424620616510448290823274912290701629102150690901571648946003020080839646164617672337027233495392979835278224749106967645286498115270721549668101298079203924135448308928596327388725493644452222201947511173817483580464729092508577293815052514152264003680265143174730061878113267764220648537718630034860884208069819667517544691156354791639474128727368404768935125936107995219098332407263200110171119010769485535422882352141418288284885279709984369045682800392167556877775538869104029348651063519351113359564251339348587247961022378903229233428935378637411696712310947513016298810885630911013713257077703725216275439299412722434846044168842544806908975966608545160020108978494086170730559877175855593116996256654152596137892857089067168441739485656393567022871737751791927818007667493792293575852403514751370888640645302940153911038126258783179822337487846027070790648244017878168126618358935147771879941615217848609569683179867669751709015559634588408442097964935289785837908103055158399712273308986775050531509391017338415951362971049442850415998685841627769701802606370460453685712162349681660883683369510056698174543963873101706917913369676655755044701367357848863456082223432708414747882235943982432513797978483946759460773934937993501642861932685502247300849009907282277796122455907492589941233905422052139843397098226238214791811667704526081427721878112057513210250567399313529336811179222758365342124065524858897497335400809234631375814100524502232525764343985484346157437441666039674929220790418328048428689359111177534984658983442593819636015225094711970227376562939118965267451518003079663786116308667333530336450103379195415471965819826772354521148332651235220267009925836681237315053683345618778290690473378854565396820568798962640737908044310044558032833409143817585450526370417280665188877623168504498240549129655124917884859088070551363626161408325655449703459551610838326554140949635072536709884705262958220317172106699907294259960766942850391510637492597339463574637151564707614223852461215242019477380292307444097572230985615498734866122458081475706788155097253730184638280748150181878104754485379587273878862455839384263246827394649847114079591012695919023137917179233348150984842457014220809436562588742760761187398692283270751281030594937775260044289874289079489618325933496971497506082599673446079639693669481509423337626298583768781529347848496267429229737794938717164129985656861547885395962027834447897437506929979401472676524914742448224625291701834569129720771195915668150525565313793591027519644208712836578594642107046163933815135263075283298516136376810166044529338070302721108075689947577706192086599405106002616626939052085034071146065457240012625426927056914415597333805743990604092336822853604464979106270540630463209365604993768956798265225504637946261401061227554985115163270008760402759759129733139615403267314221941863041727235279197428404364307887629349337151720360169173254999420961292498557142430205031974636578133187514228259805814719925795862449551061101330369110849080636713580548311528744835691460632988363631069770555712455783286725670346110036734681516558614465197651005096998745963136566838054075987169287938719293419811881994923884001241832220278973194101680271019657608549455456105194157761076074727789825789326735983587503141005465617533702291586456745475352164550718621568557108499402590246186605007784456161836426762536413819327416744932562436366551285303294104574373053065752914506964287046862995807851180058096324344618953461970000918944884778275959717565237412480462660396483393813088780198604528821704624285430116327542676766203414925041987570521442985611390809692225758377054597365924848544111283313425174663395353752381646581539294840961102832776702168132996656028899184934456711262892363891931749053033573754340415881556201827073066992104242104470729734684767867159995017074842760663560616909947830179380823717672747795948628593617867182847718741710442592781468088152429787700884051763182140000199873460904992027655651258406760166723549086619795620104371790054034027614366485292107526861459455951200302580390147019942767937691962451477572336819642802328204579180504039195554193591937274015927665249326901199342083577612477076777288750040320493402367869698049570466248244364200774904136177202724546247278488311112283017059774866602901923010249303473705740553335373957453352062401323842902464287281226865722124608662090436438769292746604973417100169164786358998568757017838642323465903834633840394867727793496340644915673625786631243729689363136639531802721142694776355339219832112947043482549086242122208548827068805806503918756533521335302245215127451452511398644042176501156935824956809386722677038625709941059373602993369020092302538523314231884641735129543802039049416162230737087330294691898103028942489906178556094633256013595564496507257288491123002389551815016237061408804023276542187992384604873755955176143311680675239057250084032349626799677192079809185090448907686327089055775606320670722387100713197581094164476848047532816590982370111722986236359318067067839155548956487183669269068968046054035185952570905190345288031273387208103771641804651682271685368920273646190369892910080818537314519655088283068176809069540244885401267645179039677483608646523455687131673308911595592206089943236861033791280195428783935174202555311090637602894676242934694168960139420804533454988895049882505454464372039966453991037520352336103080394160943039203740585638959110045474131746905986941277306307583139384708638374688486786386267551093026582921700830545052442330353370687853635110469062290622139327536895045505900433068231253450732547017186403007474598336117690501574791072170613616289366047621050190569349276747958423464494155764556314000124537021057039458138346598148813914625380351374765286723254345380743143373210611464589754841307731396657547309288375476400216965309582549322819843106933649502315957291721402569597923944948661207132560707385175194901255263402910729964157006063491313189811768472907929326247026831356515235584881377385769778003995747062193488475226040403147068596487915529961489724722908005125376638687654426408839263128232393933942827763149489226741141568643817458926439731614646502781892150261364763426197874106354066702082328655608047758000640984022290868383286462071935728717077159104443095355557505587178251068887567452773734325901088211966401922508057181078228175826438372022449730005024651173501988287015110250244885586476996112983714797527825580143373375898981034753804439382999288406200676769522767132616261019517097565734260710186430445206244793120950299265160128319053292332334896120089728224349096876566589350215059213162512072029966263127826037333279586209408422892651725100445233547926650527618704622495145858876059657038838617294186199266188928564744629329140984032913602641707811705245364355320765532282990604067981528977899715234765367376001138583237584751839112806576823335434365252618608266791569404788995181560834619635073908009709612210660878164069455393598089201168598103429786502609876771305764064388229247004678433135142039812365491630708679943137694870171163185204677004604636985749810682695351797290858523534449050774049038126708970229624809268500864157239126288494444752133731770781008950153913481670463034748786171086138412754178730221226487007101249268511389953508678243148600098306159783382025338444793904034503350852705292981070924127994762614541748110568141340483876950077724096833276672161156719955126963997768461303147019375061873290522735769075039869471985770965004487571334007081215020631567946309590832148957237416215525919467870041322633036648070550318900938881733529207660588748435496447522220102843357860359551697522415449546153044226438003984547968863929066964910216743384917880609451161736181193713488168809568535401278582780941907401578439088376468688970903042347978952698838737402375893865082873053895582586069341443601456104317852449701360159641237304206922632623186915028362343982257199294592807997960952619373361879425060820933483207346922391402875720476107458742148007138482572156057988381865925460011376412828448206336706745350644595640045377920029982105309483773178732578577690292800436162344866432894187697019213391304570974520334083134719852226786417337072417374745289458308203973974490205772595915978224440920228699239945627662988047920109121484546728584419791579363993259553149275249661537034331686151788497781187821513389679318296854637416646105352879208780835027861787519702009125957895408791012076618731963206633827702919587683508724991410568225008882067249626420579123779292487880120183868671112841012854371450058077883605872499279197420303666190596531264730206057039300129457503294451975755582786267393180421038452176041635313238599913986490698310145299721470442657328795151974225581009376039073821402697872514324466632967387162401624614243512776734659360689363196452029776218887182274896477663950461682406940665417635880170522019337859972825781823061071010298403321950207835266479167295885842448338181120058119245442846571331637977035949184457690643360106917463351978110304754632295591657163027583241782095099585847834580401265207824465958055327101966115587711564102211340701910593549997294802695919430287626762697215959621734798447183871245712423284981623707165051418767424792817214213862719558354128866233800475339462374653686816909005029204278487203471928927374633248698805103817203157628612966212162815025549889054179510283730328395414266096766349066669985968184102696184898800113705108898936408494840167775337793206126103864879105529807808118296500747146653435737361646495326004009989225515096859831783959910270235816152984354502529322671663303959863221704035356550208405686066714997699293505779778133671521907777374284867074389785538619729806226814185481638633941577533167722007441592426247334430945209102487325849290049084426579112305867261575507892747574329076857415350611277631694674679356490778950190956050123305152510486148767040649261430903036998543632951331805328504582690898652115698981605241223914140752329408399964286307028356676649873031968415123656677434579005611008031075955819961372975508188846122360517838753019637854226623327875961046284030326301835145330209873649539866890203452204199414821947027096413728972025897407660433513364643572687041615682825656863925064779113773658378530194304007696056684434315004669030980030703314917334199269449245245124652918062230259954089525433458851864157431903402562635466572718759964522419407710061086530294255977107647107373833778348269943345554390321422313575998484191833424736473622364447010076580752885168147997112716487650315227268950590886193551913013818608852315149045203953026903886525904670843407373027292268397078422347613316386446602421769112116923301408610131765721077094863834972385110463185810672080120921047280308349063084271113593375839862378958724418457663303715082032822336604284526054830608420461421350104052589924933085004938466469082862713049113240662830694903946690144199976969517557225875360166474312426972796645443078690351503129083070082343365844479529514187882747687061784927511438576770210897677428301745261067909961699646058008260133204857094964281928471006894736378779648934163920690452331872828651821494871310424056295095696009466570314782148044018771524204558323174648063814590172052371110141704995358873528232835439662845713039138939744944904746840056349144695265904445163251535064971200814116275120022203146201025799879811957004428178020480811395106597113378443780304507122161055019975425010774323131987883614961775149081515267843500142784316628070351296863950751904420650194260130752671559260797146786344274107979469747110770994045697196204076545991995666479975293750996882021458009766609354004325696566133135372268576708109362682985286232533352903440629678378327304888800254510632660414216950986584854481756509304721160887333621849850994623765891643363129055836441419901528477435417271666852712654207779959840578916780781453585983866485994371969265662114625914571809543783255738775093277518173267998466696975598197514551070371443053056972228809813415712825354399614838212390346015261358481245668791843435281191802714670017922987836960842395975142502481160339856175064596212737165868065204440225438914170267595859410719537595016969175452550766031289437999965808459263062382225377410029828265255100760952335108246486606026353588995665505025846262399767040995035390038458130743284459512379684795926156450940530729410107321949749372929551396371211145230558334952909618953416040554271726230821926231358360068052030020653126648804538341167914882947009718828130226583136240170175291364648603857283555117940763470660668763727927598338221309044186652255296107858539316235596913215838760783188817051842517398834628293154839860625310902459577655993604866378086682098968521144393007218360807606305029212447485449322915566253873036143788161282493060411792596157734887667024428103931500005947885151279900639368048044092040583312637738577366233773503283268558651453222855640382144956169064589343511633106870764295973135705762849209660850803242846673138584792590517223839577804765967956217884264938086802769288147353717596721701454074397707299431072441516291753407908791409682251953172748542318622327861687842466770670181927362487450062744519841372109088322562778762002526258100635072595538433192015687672317781113046846321989909564798954709077201728083161557452747404677406433564109165290133709927470999009209985982291904834411014672441334000334730814154243680940889499596766948084143266534028885401124510582932804032539467304756188113409209880509419709847045988372038743833484633414777722415022712766035074211573111484727208525872168026909647751083181280032295898252227350549563614914159346840446369316991626266174682731891506480058539038834175967573815837306989159036836210673889569375719193132268187833676532479048475731075615822988058013850083467539185014760491885431364281895418144823220157180915351795472886660499632877258319248093769796715285646627243525468723142183132238510102959939848411826142990832189772237811271780462663264685349294697244358581869587456704936460199084849713456086250624544772488402427331137414154025987547550440155923642001398215073651748787877111727505697177540472843745376004502074113777474199674878502088528349124515570892923855367288369649016520018853710195882463764025761373693896676162962168898204587723617209087907232595195256970971472275977540304869969263982752859628664821424093621027479674579569228374355300121298921311293091973909381859418065189021200386764823319976789625971147583006147345798724536259047657968811778154166968390087895663392773174958844593798653379840169517785163956179478045364755218843788934853496056715730353210976323613139612396278869149600907738706333709834500920492688808953720772505963177666249737037121787976450244361435817552367243162497055823360623202610174365048415726916293227070320981132812464224431451961353674746883152438238518398402894566103440152564374301693865869924475836788917648852007814778694282653763226073223809021465411628579723981380182254951519772596927750638686758230117282141990473022992554412162670840475349086382566269616152551001615946118482493826884057258120353553469968032810368392906155680253171282149063257980659047682438704291935141639996560289758834901859700594693218430864832672511560186569250647682787575762340451929956909325338522156199358518425181248630411787709375484457267276427068929067660690801733826414491580053726969990933254766954585357165245836031134734330837596907717071965999922578994484157906133174285424788816426959384872282218755758053063863047543170045712512511290865559559467717706168844557116713888340455067138128366075791215016795083960428853088036243093323746189908875203028432826452608784150770447578690917595334545867535250280011731985725102600759816009534661078837673697086046649748387395451761291900108568101120302271560398320575944561542554134498224095355851941594393082968945222180045732372464658101383545231101743301250491465367024168673431728010713072644315527366486652864702267174877707645568428350105986500317240016805005310443566687072185342697052684699072850821555154229378756063433330956029516444272471967933137364144326660914922580772114839529163019895506231830877521459084411802331066543928605922553859301370931488742133218728357371293915850135014431091143726255791237390679326757443404901884916444759823461652109360801463676238240644403288202940458058247754846115443380459958683889621166058448134424972718376429279863531416966927049838746893963154032630961907657429720257078485595896342747912366472866578693231721167298921511023586862871001045139654767303611056658391012043234960566164807409789862261803495547700336153298158079401107806221996394472119817056816229875879403895145225054010649860699636801419121633239509561084929158550865736244412106363242663900108265521126923624648558238951035109936032190016796298416943931059381904683994555488305311684893449468695652230830254266180988997230591708670546957955586055298048645346718935936588213788645848409022182787328405627960350783763543227003725574957678152790079395615174937446459583160870879874644854364828137471705251525653866863965855534774896358061116081342010045159728719644439356071521928234764471303049360136128256945740271795246742324960109238024637314969306099565359697995696933569600717606521138387044981836876899648466603576387733756340775548618995710668405974760537720789536858077880717689820332435522917323851091401168781184806309625034970898930633655719219238893971199005127089448331034432638709217141578115995785447775259298668544236785642437863938321339496730383357452009963823077832178276376441660556993360746968999585017133312547232651043073629724856457776519114777686492543001196059667957578629379122401095141802462763945159956503223917620079143265696193916370389178906668899208770125594138754888868891864816417596512087993794001202082127243592606623698461244510591518471702483849242967216025520142729221868827350509331043696861480527847573081221740510561335128544491986214523112022655105456247684950940925162524952328452058481606912110092983500552608735575245669261375160703211491934276880781959736856490953698856691430956808013672521082495551350675834337770610955755098749990273378031832634328285786079998145259925586059404469017182302510205247720762370629646626191217337262959290679859835020169074518427472292775844625786200114331144860392722748604703118735218182002010887067180002131324264150408484987369208899369919636724882954100151615110912347220086392348880729602593607076851832733497928872698468821891832905141889302255202256913149268822716120970220124627236373762420211987373393102364863911625333471898398974065965250012478156210036269597286773602104788121689785779893838925929864265228894607950618678176337061371460885019357567052760162377804163329288040815166401286277824223168520199067727383079578817578362059772571085570955975093971171119351396976592560028198113826093510934980018450723861415101228207601458948076486255880436804224839477105136534748550200670441736071637277262297559592662668376318527597890610784287158321887227993454994003291812311208365690917193955616657608006491113087371198185986889825609092392652559152780314091840380143716551277673456359216780027644308612846397177008478503658467387037544658801263044011226601482834996867657210161620365384221339420387465500318086737210685848544266803186762383833938274134644848419940232683949748434825804351335316042337287416988245187009571112261514825524842295443537955234724087360209753092105313231317603397713961495097329152123888199007987546446044555857680216414778846406421223139400411711016395798358687899225279166197553220687111129788876499066308560544678730152904180474080605237110519081910610063554805242663854926954115408383022305901598246762787071267811007058005929891798185380997605766850029378155850560551649579132630810383439212244454321852750671966286486809882936492884244346974127382127884388333272464096620213943156803028703358483376302241147892407089685630935024596037390540191330454723620962552068942038517353353176361170870465190418590010141970236539112057084833964367245546912504986772826728585058724086185982889915867236207751744278326284214532446615439420186871722250778549981884290361527509861025464143316544836117470815206144324949835907007183856355775401518925336068209623749161827289598802725959573373225226008752671257321902452075616111557351109835943761352739265394226217642947488260896015016995197263753540844001913525158530363763518082157727982719949374488831671402446605880044017275302420691389722501609219416063276571972968704648028001075359657224267566393314136774796634490297633238573971423764328549605472188655999902385890380936646627094017855619990751785160893602701236570280975268987821421993493744703607469895375279063776425262174320238117208189572168991879207806817982995794755052881941883152446535434223156247188026930947698680911392664109580090314547069407714167104415371934678766058603807629533046612144229112102407293244499384869143451815017947532387738670258095861529585982435261664312683001648001693564369307783009192063753355402816366299096534852295922210140001041040923180689618395135157053961631353072575451453018321623941053596784403791083915044582542883189346739866753502773115529585722531600229763740586797093819913174675131044654014983686872037345398874069110908869261566813739847345513742973551938843331308610737286752926315774097959678588053594120813913243015778815047250569709150186799929863578489950301625978876499485175035633918514154147815793638230758796926973848507977920981692157827699843835237116602092741440420518693435529368323808383175379284976585083431725189308929379361114538394561514929531127236678068218718172712575863274141686029950712296007580139141566113583846995024431620547252944398610052289865917023770074611598414360727719409881031879741531514568861417099985916563100198663195462493382146037677760229316485812156983020596192274198528269405927007195344451787160496654262654836576519380148124344785414926873283441614463561282123827267986557343744444658425764293039498002654848731117287720858566668837354777268039377306735616859568851666277043102567770115504413937595701883682480133776704779026972745886959457688185950836870324359370702324031793622825853923337082562019788100348120436833915826838722640352916139787354902592073875701181697061780909914045834195287909598790874172902119234694982348134351368337386286034602464625550872963336908043361634492230518846649489813923113304473353062034895431307941731618567104224791364754433529708620782286695629629900357466843726262139880939749786288282715300185292441731914568234229674325666098307765346996620170330497913179218582404006816041638283293959229117198624946143291784162846393969712150470393599820730205141454765251703527314987798030201318575372249643126860708945796682259326312630330923339600793369409755347333925081207935116371231825873648862716373940534110765601281391734024207963501943013256011137131689406104452487773593022144872801129653988500219492436435369278912199473834886103805555795836990257817177900065444147856598383951962409338468658992684072698148300685906214557555427429426001328744474857505385836269299793498367426465848293506080471112414685314604656788934955559974908715886745862079817081057541210521387291252607936182565155994658443288335183403386243241286350702274680737121085979683752392546812451501011906768720233314900581195482166042027396743136875131011636428536116138345016649082271563032704834971155004151576405750231653106942785491677543044509185778690671622124905292440944343035319579021361493125894729246656277259315426627052238453105280350934819960223279345533389142996159688618829935931680717697135103577930824542706986268401274518824789413606850875727552151539356878775171039956998230378904224303290167528315681266158381171501813714400044310939458764963966335655101567078350237348611881227215976179642303078426453033953014305985315992423390384501463273748893588805254160001475202787416770050402976142614759854935401586776834171067317098419656957706978400395532049401821835316720345643093967439535082737606933307969888692405897557974845210236856233352871723016402684882188214920897443537501925664890256498122642908872557123217147490446597942071143044948856252391551932417949709329790709838185799594371324035683228773319027909094127363200929226604221276387663374948917302514681352188024569511148253032563735728937816860537847163064142664843812318603653161893320398779605159609259569084033890832659022219654226427018864685739543123833955350570590454084074790472254467068407333872997173995110723650994573602118904550900916255721581755715248864795690079872830669660275705581634245636876707711509462655296894361740692984326831919047487072467782031640817492693769590870499364624360951935793883950407056681744178075259095632422757219333412678502819452500939172188492375810604762368316475950208404269617421187289757016393991965609027477364468353996785212206352571402024650599615352570859313327526730034579323687497346877342885590574624261400759953420637072199244289747851913503142751445959475114403342516985232012114493598097234264199411450485640210470716359126025515399639648211201003189520019716507125466036688190472496375162961350863226127995740379142310126297521480127940691314343302991369863441028629959189451129624397606011585174186903091702613763032886490181951809305052421867268141763140338340824137574975616151478938289402741619395318024117537408589034374541730565756213881866539948863059460264359448735499682910148202737203758737603948904043742488661318587519914985339910026354162564468107475616176880591553651343798883806206731311023463696119963546531262218601727392366142083393541898618266794514433196387098889074882836045059178239138757458613145498540415825250194566141634660064397275121349990039446101514879352504995801397844598965284007785809117382027860831933334580041447932438540814668925163073396790287961561482082778307072582472490500680211973178211800642782757673359802243214891854301101538289882438670044928532505370584653835735236668268478863728091149770062287444499350525063976480021121920865226092619369229113965164744564866333652922747998072041335232887237442228583518268455600340265790356278906814036660738489377409819662610589760345029586310253599994498994117653851408960334155908662592166467384460366061359425139980756279266111359414875352955021409590904466279678048207616770861033611122258291972866163585645558409209262631222581137778194336176646668999649627552314510148054388574450945527623089519066776217837868588611064841063861728727488971885791491152665768715335989470516558214408214143455874586090956835122018791661413269602276797385052739544721834833082181022740067343861479540539837857705400608699960463934049409682905537086097524354781277418927304729581533408549789314179361958423149479156640139056085916129948788632024807538824359440841517015237557510990470370560515593268061805985725757788914765299672320475869337418095482664875377564747443644079838387403155631523025045831351630122648488114510860396769651081204705919349597703357884434763811349575031011637174430652019678324992331830616104740363716134486931983277742546023470684947975652261960995683455248203034969970542717881905533422776159314897380675006193922280368778662033939950141579075970770385148408743361341109321430519074611177143777948991354058849145312620954683297583222380801093973745471456736375170112044684226703160517635282181183300721601915995621175461206676497972503128901045769257814164854080424359974756418259489328325486821669854368736611685344481348671862015490153860095155640926633304029960667515617281798324368137998678110299837792550545452044383195780368812954972168052981882408916737733607352641059712852175980599918406571659065047140656621213219291862363337576678629703118479152992287295003982026299696904249938680442701050605729633052494290381274228889473390768086431399410872590285238260371760813904735643004681423137890658830831981795816092475457751182528428582770019479049546987140916868661302942600735139196209012580114684256307233723420661331267732325350669748366760025984442599362289625817202688356528704828001997356672730571723695436808345529331958149229198368248742737169425027735358729849077610259946060448566937845624382731184920503786894942275479785954373017963109702735842485367333816639370781947507328242967307335302659867463054479499251534333277412339439734972356307204676097968897447813162012766892199664617511738057894190685263218731189778628487588057689286376428511189869642413679720454298836971012539817463257752665047156239977860350149305216597513290272190978690895888726021390613374636873455987338314859909387721272743511946451528214661012283943031613240505344469659461828108165233432603069740107274841128275375204222195131472267715505346110580452225153988830743914422974317188034720312979583050623449282550936024922870493058984312624146283996316385746006045676092827629369115331809341430672945742441431373645298415336912287376602758834027847008162152546592004224981204781214518745021776645442663391654126596707374760752342045391556780061634089062592130649647684981687043717393220925441527640001242450010028303498807579883759230445941623705245690807083892710206513406203672003276587847536302868887088679391909766069950427125595531938975621226870140390711876462470371507631613574277822802650693125389541706432729990272367675994102733908863339993515974479320093014549130987169751761949335149449644993522793618321197430494798069228356183353814203057450220582657262529379503766323351853919493794038825753556587752714536579351862814321522506297780380874362479926895576909699211934950899254208161390093679173833708784501661083722416239474328194626508530976524122635866602642127204024772932467280809262999457976261680550320395454771137977513663922361258116572444224999186294579504444250461323278049744864002426954603147473724091458369723458474771987695495280038272064880628473557061205907896653764337682335768271071483821432903652449276989214569301785911715842090196056994026102831081009763599459061733239855886532920427684036625412685307856602240334575491624390753383738964522582889686046849476328596550030191653308686792565978611176442938464220725117419467029816570971479144432117886381940143293939645903943595664684618201601895751427772642124950756829253674246607034234618805776658359204412173963707477776804372133115860926419546462321562980734406203043330964025525231724041136174962220410419539208198257357933172289743967305479704059125134223430499797947319336673170569717014131885449394266604714410926162567234238635635537671813805670490076033875236740183139338315502986696482374119440851402455310227503274798729364711094885312486323126301938606753403802870942080455562522826223842901301528345665675404375096724965552409350973249034200452643939900980696996921807309429188282618199683610641130269731724866920387093025069031060067982481721058334068821077625863691896563408310203217684724713823865289780293536496483535781648835030356312005559812230590645594282792007418880999310652464578202273429224252742217888293788386024576965633900772369120568151303692489314609943606338526395243567847315240537232764382048947421346161222538115763072849033568828191618468386849937560646660614042448595356415922486448913921207250079925927564778257115238808642325463691884030128288069367759510663824055051408734267693395881313664580842346603120514999482710533351278544930575594458373505897743337273107660097915881882472770651207307641040762885436058511900114584871755558128805920818663989864148013797654487994203273532616690193657232623872628247946853416251906596082439497725866557745882050180353145825142235511724169837626932570339278540701722622306439847044434726883732881322577248549369482543661305719423971477837005062204473973501854977592485889935308552209407173738651994140609418166087412794526317547814346108202054726257943871230084316639895207938233598516597170772925074483157456666143985682901780474136472774070756081539909561722779376881286569111455356505698420850958652294629105347529811258834091161461108214791850591788798251066668013741177558786420096643625437406491602783698087530872664248829881603712193727520745153866206543490356140618745448538526044539892836131371859764146746261386283048961168676757403113055982752234390603901351167876114412121956153141980705009899848961924702607648836908663376773656100704332729115712645575446055600729834594281580801664289189416580222629760822566780450471401124334325424240934717955824890355522999214683791731303270798219761449319821507995418402978984887043315312516370263623678237871977017916706626675132335653265167380510787593654385517920729448914105497559060591265360787944251217917455909408869518042755713032680931618562226931009767606225115268947033867817984081095254935509794602954260186856455005431301469010206124179438114367329097781569995041105146484772428463873239395282953669931975535904129988724794302301009371191034434850772609107220483994553324922645556710567718130481718014837029022786145567507176517500797465235615030687455376037000156401064794253922503193622253416049117163450935624447000240801184827286942580932122009690049474573382754404008192804940149516889396485089536041752014853410708424339168242135909944214546719171126986224312461951553154797628583056944384692173512389299019411494805395385185073212489728313399226434983686331178498520291141239093763694699981118215870250689315288342386088642550099708528298769055025542624297323056888549042564682196198320203775475521213423328112961148526643115545297968419894520260352122921375738370085459769257525180675025172958861669565824631817036593197855534945343283885677726899469800613957415488594968592370110454617059624279227710681436535715279363674237585873577871403878141471887498985671117311378520486489853047600104876471359507950843424592741874698338785743349167794113872217103289426784101122860229034085736238624958484511685046026803884788913822753096273612052584218943020420776267716815575216830666628862164652689961059174701613498466893115631990228718045153888199583310644992262412157403905387896199051018549336035467998210809949041286057719935796745643772107612347085535317083128308476196183536570757991967753722796795609267553639952301466194672276457515418482055681719438657486204131818501645414116530043829125233123582287326746462252627894490915922032985221074571305720727231737674803542771120823452797325209541745161639446198123490380357045529744034035357581556223026769682100114869864620237929360756934040796361820890876745769794977302359781659859822709482620573251868956914965711057029310468842494730345476258486458780701473795463826072581648036018279673367305139539348066102832924710309176115635532470898022765934990081393972653863995249977953557486961348468113145535003547654401172731783437704775722747350108786965866277599909659900363449183214978585533593623042428448485529632002335829151312806855546745839542963444290827075190142002203733094449575148069935773151394298383357320774244391535953605082700862590520488989089407494785091545391836303293963412920302585400014857467432953076136930000722588723851464892308755137794519602924138426223680197911069683910190826892884107083548340908678479697767677406377658256395079222629970036489654162418777085971284155869600005782405631613598939978997525966420025810433649522427850932147486727786389684357478045123404337960327513365712422391462296334227961027910626650420601796749847682493625719304903937984346649971177878944461022914913962684862533438799228613914742101309709675945110815532959658871764305319317173868406012158980926173282579134475810921634853628905292741837785299486353110236973209645468171264133669773836307034005864643342001086699813728615090754007342248460172054539697486397010476107024179590656429223688625270324178375288040295730661131061444254772638953228656100187524604648410846736439001468366225136462528632085020422595688184028487880650387642511181053926999591520421518333902536097710300982183709344687226816201387325808443037506188119793413195379014319431925169460018448268223691930616196655053327314395974184548293927080891203786273053389282199904941832082395309584657243376815436518511098915985288111633229016970490630014749974658630282964017631855062826961039123248164757113042151550847561721318422058537819252986586440934194695688484542577946786583639451999576617449592464071807544160597391097364802086933547530366073856840046402902425993676880559707937318157507036459955185195764366586570549892892838207795055083395589732994272420100678874985558148665497530400318376879041418991081146008521264861035085268481390054490678254063110101979661445858843137769892940132269961851009624400647874754512354377011282687354215310024497028429452185113017920258233559334133903226943753192516749854654641123975660242261503379790007373267521398745549948162244368959752391366572707573880434877014836188587655666399013354497300420237479365280776568303155455723878548512361388832210724401503247112283311561042188806624306204187623202496711904894783681799835584798583861264881813345991793661535233775165589633986754144543948252366654006878480857683666763946599781360060620692721784609935446939397357620318993639626209773346312938715710132144452457574715247772528941200443689143554235879267576636800833478796156487337737407612965782593651164645884591643310702994734516347238910982863391198959139432487088551845839273261532163597882179124424329877828413987553905191759677788618329848950512305121096967236766634603520974959489257559348448811853909924297223519129414174185659850915550017825628203198831420729675100376024898654091313353472062775677240389224913097134482122589412227343919161649354535206504809073826247014448379233892016104275081657571230645595807921301523564398371540715643059283471005614772811828841849695130477859841925262137328098959349288998132564273155021049021651168685352587800916873772169548468408852151855967834294797487093144100770732781796162605446399766437042581698701087446222460510934009486794412265565262119544226913299563685121835320721696701770995891695481201247210916833855751098376296620886030564342415884954817316281562500018474792371865379430528523639212491328998849772129740655374856252958423047182841276796523651080795768159374136272227918801391864460394674509263503866599142852702893859226874011745641380763946959872316392672592824177759442719856151091598107726054235444683661942421605079009419784415123894341108366309409362276814716478358056678990086970709154139869087436720175617137491282247122191572707830964218049636607057109050705267952123202743100063085247330183669126542157234155713992583405152682846255327731168741645675109758868392494292547505129362069845910630430664569122381188185048425701756261157589708014036786336142289611338320060131613804887313975906582101279470932975977733252138595251656906246901946075974116009668586876613915026874128246893393698657614878227101093161186729553913850929624836979471780902486749192889447714782429215144377427035514338486622343533681756896448671798876634635107064375651861153943004075220903768459595919371038851833751001664636562840735985856361984131154894156539480082447053013110201725397900249328148796195482586028403048072829756028294766058230875821363799322033103477637306234921214654475608150269462836528419071183868344426980514902759524940864000060309682908516903049506675299251336198323247511517555590431334115122512689574954722241396083398996484349015922815943252789650939685446913274338473165824751409145267002959710730963375232438335768455866796650826710920367634543835905605120821061161069692072836269021316598333984538099227021205671138034921726711758988778143095015696430297863409733407047788434116684135652683024834350652280940804668331838430441173457586956837215870473814078957034261254715223979694943197303091516947563931488229775572954173117662986900767228168462531549771320131710161009510406080267202696124427508632643244947629774077751769099773442875973387928084959252417089679013572890218914758276167422732654660085965706710574477370391266884884022378394898578765810770440649563154069702661938124549203696946718300551547127627452177598056328056247383304667726059514947295647188330198438457618658414539123255587920448543243501114264893149190088705984862287378061787510710970440667448831873635366356507593199098672051670056211848885316089744082606956210277808635199316202638164072283275938892691862253140349242737225755999709361658028929997183979453619479019642432356849627226266740210431050277977703951166506016448856998452576123842736601920663139130678924528954081055380088001115711187598805658153908614007263825270728896558789584004051364519022785743197876509709888838825037821892733311673988663619740025267200506712351069007207102070656925946360351763688936710178982388689342043584651176147176217779602693248171452121084073789512844129940849524984326879281441810281114435181614608656960876254923410670345194093485992594142663571871162854732782659974536150915058340452877785899083052171297019487444973180160976000799779130002901258528863086419784594303233314406250131245196408604242105248068082133323561396285080098768383368889793168171521338787553831016561125797081592392133829985738641153281777435442161170632223846176544761112675582899722157457403712625228691313652486846071414598667759479309837695142718057889342379880948291757094248145352642119560604687184445298088716344258092680868709526076638757890364500873237662667508301827977115583557916841330865310719433696698957679342281943241939739029358009043169668157575916018369821955704008643656702757765310929123984287392820820425563573726496292974403350320223363561728678714845519042730771640397948987518126443611910284634442566199894607296438387822312490122829315339912082496679019494642626994345799441152946296612353197883998178705932116158071973466092805427130216206887539072685486373756421934369045406740962604216139145154728114137658787378184723882010584346534707671047038846490078040646030900696457925641785914116655946284606315526190016418282086558092672880025943239285302738035438591130627224294890158589927164550340961688924171297184653756547237759624648208876492770988166188786074413915437712881003555982685312370859115862885049387503365928307785193310245525893444138575991407689108192324817809451567999793664212737955136621150544306877927807125650221874394092727233456128650594767572273964064463417675130691165689534265656189113729337184489178265083787318756293028318397027701906375523197024981169513269379241137670557115440036315713687577652412003766991607089230872255962421367976934224069497141183438396705807547685441331346338569121135334210400518805212782724415855154234210883974263809821601772592968193346021679878254236009903800600749862947486504260971962567610755906002534097862871522880273188073782276826602303713187358007305292810653588899227465106269247273334543428476503713258832129585808619050296810381021413114435617866983797563065155287797416733319819838617311659718323431476036178742206968644031782090231754962286715002238055097684126033603418346969147207611809144674573718517990488738772849904231332504276161575791889294209482056678403312505862463617824428783699777203015580045622231582718613036588675458582465792996506227110083887328571224912532144639936937327006685249533897308406918732242757248716001096594631984931012929825795544634501212391227287977775902716287360754362134390548235164658850694099702774698198102248238191220520705089033784687960194400013267680695814376449839253095799477945248523835646693317632861853904075946716606311478389714845155110236382764172845427719649384943280825810654449864376784070276102102984388796430588642975318274363233792583941608757696894321449702141335626004372855300375010498855510081682019680160460087049689470879142790576994477205442197402047431727878725472533962192353359421705243327521756304327970937960244109732158780998490087280969848750256147353386393170723312369010175772052196469060850470508509523569379901657079464038435811850656525015057754369029445502041653901243178130854521312788149096550494975735871334310738643928246498198610545418177269383504158539217887162254692420044179240023867293792388524907695678570795117291294989819953484324499993897261903542309093163439701390169650937168606481505755850337147561955797827477561166832618272154693046174033679098895689971415702621393332953180530238341389842826678099365057180845891811164550504585873540271158149729304830851538556861921909674601929585540386014781926700650043177058160560061004183033094341237693979424080417206381716721989815722568287044415151794333637091074014885248181552005541258410520649965517253844105580891201585739434353377828801865282590887163132398982632308975264552335426095619792420672198981032220145832050481863376025007530116000220782924588309340493010310300520115148848958395234930329292777962665454015863380735204258945196309092114189491002563902893212099969643335692205122368551974866016869941349522966074733866923504043581060434288881328666782161988458621476761557345736493255302337720059308562606564748063740957141185067994083262895105303277688973073409240045659533998025218625860813205714568131716609927839761588003787265568108152719619039126196769446564404584754377597413798816568399276360540224411821221173545988227254511131324128288734386875550528625146553769835030765807553296420663539221027177261899146608782509091874947575659173766024575286361041315216016271450863806061406304656991226081259747103025077780293355192970047448652679952868421253884214421494699453974800477821244573958749254010650959211064628563839148805964955856884012950218632936505287507565981085093328312245847749765584631442966920437281595225310398450324176740185430651179951367330177573029237186416227641926263727351693789683977955171329399946676890117458119127553242271911737059404381658790574631189296113957926293163181957299238501624816182723375257540941365798652671246615468564473614488699477095322991128767758808009502713113737043004299738637216904031723020841072550477827689995120764923635880969992665515725591049416103041129798462464872689338825474812102883188464071450817600995828652730275085612520245608334140232644284463857073458019801494282365895621260928838672762704213317143623245120290689398733781610778850181517488514361837494151177750210433734645693898830115437609999024321950078767181124103642689800223192510330634141906927637165198590267936655276935142951340166913682725632953284303084296465884419580253170314668698675018611919412103253108480339027337722372244150408044169679124858594835796527485026802104484685814353706992306625983332754633038602787235208145360352632502256752818758045533390173768060656322033936447147338510121803540773234507594959662421532388450683755273479312178370880119786793046336747579514483620745133962502912518442310089972994799239505211730302808189873830940886412703563317159906797910116931053004425342189313881108621838176793674570881021650434934080925519416414462848399607763650713697736205885746461702147621245561883531390593400281758046823276875960228607338765216387204595675134264843115677210147329936465831811492001745059503551222039804008829824671263901305554971076215136547076374821323041964148303862907511913510980197735605384621757474601947864690734383551001966790598505788682971576325426608479506309180023134737213855373582033559339582085483010050285699362192113103091399334957688344018464209253000619812189410441380455992159285820447006518002808789889509706343647333064263073423820530622282295743174855476411303228315112121038510981381008119826219000537890412504077035162638136531476361109713800914320177949514738534714433037699409628547158629615299501639034529928221118623240231049486768992071629273386345132861976327764039094723655092444950962333612428652311370325548325677069697474999785170302421690601669944439447908749494957553729300804699048079820277023468341817988521543053216450907493891446319808864936129485290320041198199948761729411614490281583336953191587671451995045598678536034737123256440208251062172908077882354338413348014435522310739202898996562552831182735643638217673401188859039398197297644861524577406580762795686459099414986246755906182927141484118200945225508661599363769700063552715716255106238334146864533272698142437127459885038112363644990038346395899192388128830257407793668395747754718194307517921378374084854951039013719324270310300953673057529449020052151249679587607867542270662851708277219696713781839804075501960664366013000030497766786457550336484589430745644036555551504642212767554754742730951259453119874766242971504031057174770710549840193196244148365132599037002381937051356888877493182517900361856803763316844608401440741133411183195944513399186063348815404628647117104473316782329297082159743552793975770837826998181242053015598839744208044798511105733560526253431155855987061779362948028395566266518786207152483035795111532335088890542370944320259680614395468445821001450247470415829240886719185781001814190229747056985083213277167985027916909423855341495693093281145085613489062995221149366736860211395642753671198837813375749120000292898839657483823237788815461494644987638291408926331465139976018521953977017897074080562162587609235987487816862999419640950987795812360985160391647527264427631125192136001203255451873792120180735156795984944761073030290560132398708186862789986226897014443877046598718000072319658386827555461448496385097304257516732130044185157110832596980599594183373569612234082997396117630024320408897525168726190977821266404995724514050269685400530819676272800699038307125309103512764034611366995610314551483253156670672299992618849428315679997334715586595648939191755899362165142764906696956408722677347507866407526709226725445508427283623157840468814503195268964254230994247301476255512731409830282244165196265082014494287376720631821247650867493658035687967713729386276080106384123458831337884769829830200744000990201041691869568382333044623336080111953146136942048610255982828152447920824841894641289945850472009771660020637578304989256534876783169362615298360014799593628249905260227820038279885940674661919683364748259783032015829104215905943143518180865073874065144195206900062679266574373304991446855540966978696487480284397833050288594352736440857413820202021129716281293347859782671490614796361413087460281404474845853146486446091855599256975372600422469602228268324997112944279657478087827989172417500188390681619588007775471860415502152699203739648125251384022575452912906504637596209449488647076930416357828327235516313753677959904806567879333539445211653907642387396802364701949965715191794212444795119847393084745882725647437027682936230035628226023892923021535697258134342734619638857975352399201869298619311354716630877326922538029654940532652023837412984183921949805133209648553828990411461786457515856755518836156338043841774501203199940394837675508892722692281533221858097956796888718474488339924979147465078778671996147065820427246853304612452345371774943843250245989219579105941854391909652841613400659668237341003655205440237240164777375620400235843303204194516639496695562806611049882495783122715860149515369670051089008520910629024725103880876709756324265288088371724026483478626364417891552601195823348364598386102136396828036207396109793442927130469301369384793458599322522991886326851373549412817966393961136067493939675399958636989666219115098253735612584241223063612956860271700874394247481645799887528490177997237801684250968881755301500116756503976533529764352173977709135322367913122545441623990475695879811094578951882826516026364660282335761358253448769048248756030388906400599429614322009565889125164781593751400159386074230828112395061045730421718665999933743510279235998428525643643095385915887426337193199130484421947753053714607050313934964381268958314335152443988332749739525991887272338417809514527518065853370031209925422442974999153163596774763206797347362246272453102081992107875277113739611535521855123573052151319020357160706427313293072820133642854253168696568532453255473106773609015559478075402771849846651330711362120378175439178630200705971327248232212098049213912408597617912010315767732679336664356708844133946066561475702462485942367365837931016834041288719840009902678466860117607264030768164067059264916420934642308239675654880935292266076864897315100757393405366405746955254052986075854329419370317007151762320755228144739661178767037717526804256491381162947553230656334437566392156366072320875258896419253658964974293359581846699817146255857367614281020884043014962284199001942985388262034404423285208782183896502905807352480209178042271580053776604661318016742729296552586905843308755732591690331270770075128416091616760057754839097699506053617543094996814995570614725819227900600242988999998491190971429506851269057498170548125592723135527057724651857389393241628678177651791516999505496769644786646897361261834570879921236811367121972462669773057014563529804704848147706037377194766245450139744237668490835239612386242535350158778223216229157697825635803468457793333238809563027929840450741900523676266981680810907796119992021380522727833381977875698855430102847960168540102595886783947558652433643748381187372219137747230831755853362894767012631860540135226846034634232989197704621629793754271490024178857519485447135629978244066869702019205450657465593580154343406307445977268963250988792357106735624065053553369411074361084280139164520975946299409176660704743710209970367419510134835773094253195075104861357707727921057263057909083335333239048913163520212539539301335637061603464039108239005057583916326244787848437803113033382126134161986596599112597616758367492464620192766339613525368139328472661246977602866774220038404739009861998797681183835557582744255546963928608104871677789839311741628716803782534159657700837973366170633621256040405732457125875076620640313439357438764671233074074252933879270173225666273269850036157607556089187961222333938234745370645250161674295248976749655595021383703560875188448607537333884171952078564384382512827626249561935942210754735718160459981064780446709930142143812581830608921974976311033657405924433408838474609597411496969703542168996598763160540308336456960897100753385736121244052059658203932487902394508163442479525975166964976106140558049988454642950688953734235657545710425484272508903791381210099796952211906295260848135116008589660366774542199433119309675045610454029225400156686402537810564362485437592596020968955072418293290297334810156257334570679055182455923648239341180987627687958826862162414556033338907450142717785464872685799335638811772319612136907126337875711189352841260932965184823975668390582139480737881694598443279529067446186651354859575928657413891401003743061252920120047190966467492343362183075052036577478343466218742115946935316053002188998769668292072029446745916643752220820340232676997492234517949399913463817019434441436957741725242040473263320663565097096620562793335697734284266406276123404431713349957413828123104779736649844896466312085792610330865490279556364274150516059453142602615629966213299876727343113219166846044700229357327085121709964746549672918702336253093317993361369480403510326424038806946138071094214735835946881774360214027145402620772380908270197708067603171845090402008548093835389724705143570474350218060709505853512368546209193265575950644107600164793429020532541652686172080785901903223549997201930380622222748107581655148306140912705280768254525811394949430535685140603598271546095878584833160963652635142184694589544255541034231428778421856969175415410079942607879424966645642178256163872628621219209797233536968579625990323553729439182617012284741460449832874202486491365787857143740907659564810611677130779215700027691538610211016427475926695362862358224851967184566940542984656197918385899895713047107693285735169225692619123074700130622928450671393613664771529425583204978400801804598114161224127327823300352675778008966185396256404757581150141916206317013071990904985558266396817161240445771278442323672129067457178480374119704433220510797148753778133087070458965719402055774557631391023044588210774313859003971106526880260791517484590862722024265877071615190853021957577941044738735427807290281030515190983338516071736176698581355151593710333415493059984355071513317098444386832672303026702261120922525527976770988251596148900740604447274873244205178062301179431764442590588748530273369702437381157479507250397393298826361771080523954504938798074099299368121714760276096652355590787879465328767966009481513136172004108954728421500035571292567069497410189799329937869213746539761805499086689845564731367548320067501734333074652228890685753317857719028918103324368451831928936497476737579727718780622261330610492348117302396370138511502943386445371038719236292558694639922497491391469542051132247533968666734848112610217507926555526088295557668329818808871281313370776657658107461278796224678345168139332126834460110807396854065939710615697376642323032161113503063115444145152953513737468659531375982714727104902778629787841237785331218396601911516667954028357889743020073939131886207348497817959726401172368667890199148974749752542973493979353711750992550353645636929489252360853931942360330968122160985176605397786562469827176526784199077280622385494630346872204082611797345985836575353908116712513100606028102780298886350619043476517733200162056645092196033694672007819832918393343290246367229141993817301091471173168000979388661156239544643115472939282807837144687150269994021439776007713482472333977505429017875892278153635535762766789458042031383673725562060295085923158116885978219605655877804070332604459099965205820427113631810965323215196773321265711026597338059261162983439984345967428224977921721363351904828567727894112134061103633839724307131989881497947407252657564487784275371658691272536616914180709742873011171113847398610497751958673027187330344763214287488617061442467202685427730265187252922505877434407460646387441549324898350622420337571375751266135751885267149196162784514225882267467541925641181893341198626876551413350404238041798879929878391575127523484967497799003526572276872036356561304697974395089735439290269463217480061264127044487950008937022995215705898758610171018544289659136916855159370713553498055029732163617011220778488609379162778406736014721226347584302215243671559040697023692538823528662844882578702824736528090983578193006207552071564065797959925799191795837548418446882423456151037520897923728594913359528453076226119458019337741120721843519165542603035273055750160282762222764573919139075709081098375599881367415833895135052152077612699679452888972987174246690747733906776413759797378226467824718542584405003358531870857397293757345599338365605655070986018127148332160215615885619279192334427175106309906487716231537204144597931283313191478465024280626763992510217204733541457672962909446600582023091905152293943500801795908088842544379321063385480112562812688786978794309670470473169206235330204927141122031712009734692201922492159571595763671106257502639550863681374023175390722825782413311065951435891994360188884572198220301414004678390044291486501634240099828652475029970147455547609764184496985153065254059606443810107182714049158518059898016384581384769580473983490134955446236868531290856462042033024878538794326176753453995049085236966890721657017275187825071399501569888957079369581673093050259285521626823100210557540796512133577854927573993363407192463809628303687014512789300140763800986246199899825420556801836629256748834183683085708679825042570378440471575115735123641933437355254543833536660419508072218871094642251202353193336585684737997186372520072523979984284806043598677624857547285280594181681973206921222787693624316612973495702650071098019545983270640989417790259115706118793590190939534252111650401283299279841813552610772844715515287821190802145805535095324132403622433411779435538288860101151602176630689709941297311909515091716005884504674071543198739020340114656927678581066237176115313682212068601931219587064692154280956296175245881704264466853433341036658867296684601663929878530262671882784768585359246203430034488625542327388553916110869481496622478533691741581862795428330747758912149028438454906023108757792496156001641709097691726591084458880429130764230617025853377155595128983702568950862293762435334733217875474322436536200863759311604017108666800322595911810711135474328470557457705806080233830129009059261338459640965842377473386577570385713066177021724982295565191285214425884952934464047499363357643938016715160179025662269738124289505397837719495133680464552538072262782126198920020836277306427461978544001294795598606292762738831344036509626031107113577790615254552288752453734398109759629836643416796446866495186778948693403692437105048608581502001727420312637287723719738246018043518220050593032412896263908359689706064859906914101385557326375430864656021956593498226382969092355720078404360747868837945986549228579345886126866272106280537963041410731733501248192132886146315854062803420586833081257245005603829229495286566064507694067814603675979297454063616854919311816865248617882402070035620309302413017832537906713018831171786334214300513808955961028885492477690744577663683194565107917764626208312889368923275214742905587645867826796616721474207116318647917284337622745536289543153538066228222378608951485202825045968844461841018961661810794573909568547864303210467588376133773436714152156373436945785418255576304447535373583229185566690500583393864558959411135705350002418131276103036180701984104988756344875283771782627353326017101566108663573320926328015611158947635996753605023535285902599590915561798826429574637414366836826772318500727073953927046352517154640465018429239236287219071715574517362015312963349789213648951316639809719420419290229304744332845482295689461972352485340444341971560831849597290739757948449869591469766875650551715548418649546373021561039683138669138424447028030235949947169345486127630739088761155224058803907392841124918729342025000798704870215546371741873449364395574551462806977022083748424403044202636478074799938640330996154526134001344567093559652497126227153861639904954482069202052954534652114801601635292521643643857809412504884848600804015512555743574458508809455831841483700145045675327399353664841614429489207281210824370167082601761034053196920708318529797117869501927555817468237792931530926501073499556807756669471256631739414088348186712833847397591511612862578081397484456424908593732573963009860712695799506212995190810666114955120492100908279366628100026109366420506820759111455938626816250793277163089748716649639519163515247621617962790560726241881406652713083750212499166033285723648811644592800482652369499911299660175170233256990284146805675541432203623508425262133985472259922876100041742338318757197670077486209457349868807562587772645610596585279859002107901099452278677855241551476627932018447987172647970661412183011260216345917349795204667261128113744710965570818962202534408398368455242500310144708328063101747099912608989144738415488122021186968605897154743809898441120044153171506872792558528625855841758923350553346571750271412546301266648906137457634514809096550847162519368025401131708646913380663526277013385684531346718021130988363849346498318065224938032712191714342817888575582098103497471917764303852490613308992496197174979323966020830680654330051762185701960706221835563127280478692292550021831118213982464549208858981754799463910512133935694713462152055263276035144682506868031202070584807488659552654756941137813501596742721215079475977846196318366820946833519206683194336134295993847649988582270608872555440972632844188344556250563643503042004352512013636737693421045670143030316996358309199517410850421212507443354595259832521618297344218069496256731703321733140598105781000601081466285436274074873754786056527761847885584786072290862565405133373074258848034712205714519491779832583500408584254170234057626078219861238874089728593202458124892874210873175343652695239033239852611225370629151233558715854666154046432277206314265031430565844626554582089056083888959965341635315154021929186900294805296181296897395441933082832024539510793496915148698814108527040350201046357522931765027210980415765626805221749398664408699084232656491782085821663892599134040156669884541398780455464130697224900500695970754983575812829084516335707768775836643269444600258270496488957067129586625701703439496969479969561761382842696262635067982702963281569705611926951924925983797461888747079459886892521608277688481609392093141332030207623324382875589924412380159746782787022992609221636237471515944247669778956219201252837550619579147888816856945621003067852457587306791684553153397493352674510156259451889675975271960581470737493070920843280164345247679069614462521951977816122077700258702020310373185158350761894850556089713415078494502006191726226246670030346592734073776548196020178923899845738414429703254371098839347823759331704987043861629738903077831757522401582029631192296260228713633700806646447224965437616843090339019567316869093702490586791989668685791603342403543412721027403243907641691517990879364985098357628772050763383939051405001956814924163884933625363526499996193689735901792534291601762515086422227904922813046164486003871128810574812948438780076243496770025232787489154582342855412854178777205785813026677295388154674174973915347046436393683547406726538500495907270947759605483159609914808759936631244147381158226931271898640022897684342600561418718431978999691349624049884035351491305399610631037240470700690088953386632157005797683530946085039184474370079354211021139136842215427634985903784384053627155058847254556057728311197410897699376632131479385533144285815878875688111789183020962358664125674648586579335086006547573481583155473599106449069224296380410197037870632071223007622994118016595929335244250272450890784011599215992146579743474445452008307689678393259104186794559452593019288170901650615051260350744065720657051132868503779551468580171151258668544890099323075448763885594621791367527246455353819628259841160715170916228079212133654713588698310981307936681895629528460082863888924601687769364259598821564991037293423974904675290774869521600286136299965493749233675980968522303232564591502287745881896916813631960949272634023514500351836756214095457014370102623215902395392610778841695795815546557747994343762222182028310566738730640311822838570903126688913670230120323903722341430019833341747347474133994296445424387401658811662404700381650069085083406208870405674061998892574445409320497631407387151084834710366463216108040006439750996805601837799185104637788599554898250046980970642613061483740576359672501937701132452642407610154067422246610263422465739797885544744607211330150726378175082690050062512081506706209605958030081051547166468133854909183176061409368958951430265856370024165651324681530789413389681947773385179254158604136289504844738823142668084284233958500802239741016825047749855470730705352149939941306187330957566322575937910144302676793690879631880340123307131518279234402727910788595517154062460510612156369278018214500041571017133788976398631238635743870038950744820608096876070912039203967004110193442952751006453603124418076441363777959044428567402398171667410823052041935065953927275824045332407435867249881309475101480795202789719988169699832509592533334718742191398350788455596019354222635221288286145578651547104054296611405728742183896536148018900391826299327938726422653889434191384918931252632196479297808355110098413632332045085480538332472337488272041799081534163680429861851253105156068205884694725761613261385173634582852244530950952326164148463092473268265410176034987128177869072884332363870853606421756213080940087034913016428106131959694671362454722899717157712930868060248363663789033925857437788526434942862158265662300008096023798969640467539092132187567504605687504379346572825592611757081839979714674847742396164607671732364036075007575987798435455879098837926397804132602284372880126907588459994843737258724139397345004247271638490490628212463134115816994126843893352625917711087146976109160558088053936353693111516918387347489588551955188968193604916661828402351653860532661137073723865604260340491471339752178762226011173468265164898462620461798706783061472987382112750051560375989477050715060688414653076080051141851437378844527241442850617256468902670828619152622948075856619473509984260567353471274876932558199926939764855613861629731942636960764799206567416780179850357736149974122381388603246026695196460862119441691362585635599934139343938630085250947414185737960853845187608959946096650678749970480353741451459974782230128107365421495409563120608815907218971304382266618551400330177466945950687296003480937025031432001532740545385544678760643663067503872966354871488180427011237182473571129842719750767548900356518748197205751515479757900342334192221549980010375600887787680553434523042697868287183992798606625441190140222304185884992313893294482116215576489421890806994601610638881583240964092826027861113485167670166025007158914611105809888393440337747756232522076926160177244003856239122382037627665574749303185098075679748098960773854760073108066537461610614456140227922634359285561870258352141318067399615282786915041138176027125318461552763115978315514384209569280465536110088727261038495785402874976847374319900104677528184273265755305264782264837356707587841029008477542026142690169044216848835618636976109619174037959130486692280076691028879630880018260295574780705547287414716359473446112344089023295668186263478088684805604192248211303220129490561359414305582494296163565400493562747996549200795138026590238548040989817367697014195010134540799626737236942994438686075874081977435369246176320410643997272768895468145628156058502386330759335155903152064059014165949626303564555239888323044412315694732518909610451168801771428263499401751928117512471903890902870507792104340184569364834637216138080010424390477491815909072811940417455702117192614727308699556295910522097774317591102675026988385797606633024147127691553960342084533069468860651512684959656077491879028232958043456437061066109004506683572085803347410109698822448842712569892783696114890851354719791466438901631093103397218251545618194078923197609735455981142474843348719116037197295045120633968312136298388634271212604002440807134974472606984354815126139923929749395121989366529365445739427255990308397602498463317710196340814637844461649482030333715606264240787767242738816791524679454304014306814371917666638474462128368627493627270527371323393883561106207412255054704002256282096076413273498387331679209194980053646635235912980760858460618038990336061206265050632934407829548876742218508988884037914074348277049325771238657800108676527845257415675125258672080737308270546958780567979783807546366088343630503896490066935403904809219921421960428971292358807027158615214821549992674919526084476680395084408859715704973116818776291200731652265223670330201608159148721933737597105731133291873018267125967564184873257821385807529969940024711646214157724593061545999086385040577285967324186046574897214820387808735915918831747765320155279606004276794751871720630722293170320350589736991326490906252402849027148615588607343858561101354940490833556737782709190109741151613690512184026903994586211265950101299623096358476132272250571808283944236892405856325605123214044066232223812900584001902461813719113840652746712431614573534904201985051803935888229163571186547386716494218949676277697222404257946841757354444395123264677365503726081420196912928202736059013019207568181744048797765427417909610236088628172410389638993316543634058167114626331370143365382068951574795970193331990852276008367463602408801205373192978433258753928438793015661460351843220909557187000788401531640563287381884717918037583165759356345899368949880227270865896741228357256177211113712731050546271079943942718899709270319328763443216194377880467861373511401871619790827173197186876849158785411354160970561108729407187036449440817133089597253437160955647798676931704260776438490844602218145595255926229674291057491772581272877026740357866343931317167931340534002502470943189815499053381380163274749969510006848683505213481762689925750809072740281921761647559895183995390805330113108337204483450669213338903349259772757084814612071828969997345883272084898937354274421440333216467987541963819378547478496971921509073820964462909837652785233655963973519710432180269807812951172476568899440798001163818348807824950267950873420595011601472321525517734499440772803789920764580291808155175480081891447904911276193313154600145618754958034964995836952170663823633538466330242802425862241405876464562630763239433461844802869896528363408263980132980917456936534183660394691810622430509705583718444376438699095530270960571207220772639717346127788785043549258405810143146081590606943944677690164730114185137866369701430686030800261531000919462241758114951094382938866085475630702874329230692164990198436172253210130620503684587845996801083389154316455582632331040376512391531408969054839030045565833377381149214909709677409748035436968212096108038835947210487970828659090917588644069756513344768102608749412208643585882061551802200062373793119756010717750038315549115310757374350169106692571119557228923739408460482317441448981065866110479406456360438696214622795259735646373581359950813967191521581828714280982293901093288722069358907432385671756484722949626406409550770468325365048756967267866114936918120142571879961759312288929551091417746566111465673906810496390970537840858361126651534892361409120370938595793820712756307648821714617990097112249735643010438348224347485628138742722654014925969362580131534594047306861830998138460712805117461746745627287304533040086401709300299274216226044199578158197153408321472626286869396736766138921381081145719932741201452761355028953085901959572047546799774563895917330126712779694231268519364013742453586669121372124982322119210932928152583854658034739682333073970684358992481206326113561120862965298008899183503490556157556479813352995430721893800536930069076529064263451377039753851158921954934674241233461201657991562779935466611582390516131321745525901246039840679217275926461259425184505478723657553242449980955292494906752877463469970015311542088563395918356824948310881073442407432628673125799858475929151122491991025902126044528912369184856303643326150649456118968627394726829956503797963592604302460733754672017471365424361602178963111067267719912591938941020476625690157942604516600313959542393300096048923715049086767912989584969597347821032044830128768311283221510692113317799382436473149697791455781912390521102030214830581106758592097543168189968456804919127693505922852508428128308102741578209594381606630468420471286029522617500124739581742639053594643714613352387878752611544390738319755823406942546266538441454093488717448224207002770386653286608379396878047664388408833566206361020660796293328149666290099187311416655877447310838201285818664081091266587619416869351427654174916686012635969529566146647131101560165812245468878521053802266918854265482259185073194011225158686956828788975067085724598914409021854256705654279804493906252721144137372561183539867933789495110905926319748712727017478109035503473613020627992792500738431149733931969595966962652848538182846292531485671440602198741521889085229233712529124233377380367524360692178717477702081431162480725101296913066256356572289125845269687099238095617944600811770490156556079649444321264984223693190072915773474036789044261613867506508038707092000948517569013928749904119705894324209195094225447347477443933226351617041963418923864829489510408864900502229577563325936703868756745911222792900629021954879110360014668951042681172218984318480027354577614385033521490912711511624657374920868914978293254771114327909473722414625481013893068510530150864658354867926728710779662598364236852723002472640412906867061176684165180297715512271099845393494106765919847758189195464175655892854567342942561542886119595139093319016781556909840791779373549088757989231256845113122020755678259268922737378383567418762868941411184737250663245665591502931773014372253100305824136562702208336182138412914167334685261165082491456919639816446484433566304695331288805158255637142311211979678815169476085987128214446306086054503840859499007672539935174551486822820679164859811791901768427116997768347316572415198319228265611284240080344522720455685435305840422805831988619818097491926035260239484149509872319462566040868349981424625617662505633721837689194128148350951674770538988514439556026941639714678659085730149132928208092929538818323403694208021777343336021999188677159407466990982896720506708330806336094156758583185216440398096698709795497954535388055375277503698573969265585792754608411407616744280157405350807192287788831804235587259774583317388039524157813538577751580734756451033394900874337901599027918148608873036817745699008338433140482882821808552004163058530592495051424227239917920930103188724083800035009572393533118280436134654701479082813513713584884511848893355242163350494518921251094099232054979453584608240012836404893842076314535570416747378271686106859351663281338199153795911555841035087738428745658330091287369229442797622880090435903513202396206957145721120981773603421230356038867471645522059273798446189830999906073999013999795713238112063231626281103795073413461226314645814859794411047872640294963954628250964184339730677327919478677354426741854422990983948412180973778054543198183963591649505863953580713565961885056507969497424597411951076086155400039354895907781386660027655466248405896109607145923733064774691152550519026268379761989425890439929800577859510315540460202116727116313738600531522149371921419758838725357522812279068059708789354705333801889676654927079890533092345305769604988388397433655069519821962638780177433025261197818637549106428883955130619059145488228598482587985750646301614995945976102963970252085348150694650400915882493033060494384003971486389776792163071341181058718238681086771706273630228010482146762461107372204311863817492736448089010077446540132949032437510422972692398949940155138142217680700637271583245582917633569187631897855696548319630888574740849063646703004512686346089455282182529363432088392917558623762988599331057301984785896612267110419458873004624296124471997168160526066763705477924181617178384744778316920364528723220123905562290471210020272498228600306044867171501934344767497280110477941636230171629966495957119900739737501938879114503179752774513174797012961491617710701880234588821387514001501498258730536485042995669386381931820337674111980172582097288125542324296066707965056960217012157156381571251482501154251011255566970097396423243816715615728668017210578457522712154506826465434654634406851260641623009514225170440579705065764394605027299886187208014068243249990479831560563010611490784149112984259804460895686267065940048611708157033998134468610349257656132125725818428495943127139510855242935714868812467357240659712991847500442383557498108963957279016059836534440303090473564922922782584644435688056373645758555238388009212470017633437172497194493356740168591980771398339947526760131239171997071775343563720263120829838873630774470489913550200552400578975894190236006899983461326378851533823542242052254052277584381992588394777391029315776207283983399560052498483527906423920761095753640009455056723526080869961394428101562145098505832989743231520725903583875487193944565986347083470685050155884698581402441124433577059707515909726210339253948276412179874104630182755891415630256041366845751135933611933265335604122022151740651163752994006811297676662663365613634037696045026069701844462928586733046230995301679553388911432158279552577482017626184010715058447653537528576408095886376294289993740081153023316940002084531765971405212874526779426722873434942115526959034847572272162208155257427743582675416460074793345020930748131061607230282064062276433616320568132210835280505369228787601475763251396613824721824968292068249108519810076674211507763922846684422867554475222532132662014224473041281548410066761508974421634909061460074422656296294244319707359289538244011047765079588166782582342820089235083447462369319684418638896703516309864671973692767576211373891058112266372330506871589742367524851533708216626676472414187302604312899273197379443858242390996243816822152525496470434048088606501244183085681501930631850878292114680710169997968286317709205399017131210285091404868880525940244609000213324471611479229412763933725886896402297651822791989364836695262540951325118649254191674100522455426468363057645600293850402005324608894219102326440401909600737216735487081021572699192581645642403605003658130594335486592943786642749503582379297590338614672280792632571595985330379224205729817340775595478772142012510772229172741953957174976785271974236591035165479608014502519828099180815530393627943838315265147281036933535708264955979058282375703473717989332772736337527411532640033783155649230186220814023401941813978616683685212647234697230713461393646297434846505362816464684794176544419365439813954446998690887791712964990695791099248619281205113208145357582123214844984401328125340803988835735153758892826779885813732977901839190760797259315082650538825123350437485775893812011232548233438614971515648266988161016337801592957825642146265807867818909800788638706190758684435216211821166397536134270893107070468688469431848342269571758842746085949078847018608929891677441057781536432551855533032339225749812301413791706400825017610167104774072159628575119713779771301362664162610286573643028959855149051012202752787055950793011894830359581707825178744115184355276995768213973770551086788522613521235904326327736062316778118229914773741339541985288396667154194588184168442280608333084195241314964830895623602374934305032692875694904706725528382344626626142648040503245571165801579716465023309130135299439072587224453422337496588990065778178953294488031506308468731826226086385813361896796126891671155756508558479404662920684273316712111002748031470123759854518478102312193293222067213989026589504277158737350741116816769471845599650049548259233350153318027862002731434521477321820751961646455170203564161215598059075218136066554372552145770449740800822527790356737614311827657128100505589764839447448839618166275440591491311494697008851982664012552286177839487287424780660868323098041132995870876037595739799321357543866586639364092143860554517391811151235995685116972157352634366153492461436924722392650874164732079729962661493107187060097189115216735848609908851371770573394723019057114441954542730766705254358734348312357920268890647386044200379245813423102861471486009901619865336276848906966094056097564132009259212696706816078459699187835866666879081816618569200973907766941690217785200260243998513393773331369359095197799710664810358960749090906465535662268575216654175725755837865244583737780375260826842181464226839794107100356466436579579771137823508095629885751939871906409326956867750603060789083905684985571389681181042540284528845702071934418632611688635198045654701246869128236819304361462623747620997088125511904979351964776781493007231554465263841048494776074340220432330086342241714843303326133045106604544584126192289199680221284777254588859788626462427966588435661858274202929035192207526785112364146572266740187827694035817447713934823752267950413548017247024636666514772051335459277568551755697185282675892762739089682319895767910819913360276945254364049021651440875871558978928082954187211984711848375391949681993556957637177372111165865358059549640470368362989193667530389759613542663810215480893045279790763536260888221512126598612764419422546783609694637640610936686663194420691688376571680748824489868423317355807384512719724366471402825366392302510987050978354158223484659930504193348885385551555571640990961870835446736024137224561849662317770288542683541819144281991024103731012510981426697737750942752999609064701890639410487691565235534484502945263681517125847885586633440316337265665340707311684244618685329218346296513024782173268906199553807392262419319511004116475089350516436214866930246673814080293600313736474190710770489606974603377220896971385599229362539510613967465182877888681754684907848528483517770317208143765397006711601990808003444095602472383673870477286083173572987888763246236212151597680282994410558805714172676512041391817632654136528832567979389724654247447881932053759198650527045427571903772524743683462808211255215848646465235396643174250001327923417716202215022848249143631890774945124698376173813225202364390697668552013182457689288027571067093044462754389820711874200078738572834962281627757364571463674857142411687448627212892943906900968308652458476206154672043855457151024374438175564494967430242583274393239968930083022573839179212427885994678283042241128307379327373661651290230331075678814814913761634563334250573897513962009087624536093820163462681344273871435997911958741218186732546916256132623098284231786628490395797495859537496737045510184268572566915398488448837793997107210350592035863568464419714101109755802935145320806504259326860449276654422768282931858550519675590097078614807446890943386883528988540267422683643276783870177136105591412293085419310086335733110273239338198035566764414588252411545279371212103100340238973849106109214505369457088141167222760679604030334000334251880283766389247986723777340983762023813551734205027605882769665970528463343056641009195810162374729398894317951090000911496584810617590487477787738974029802445707147675076072101894060048523744730386727992426233755684740728555033810881141142908800674929221196729180898854302342923576847319724347995592455720465429205864304466377989834095218332376782136136918124243691635143414652407618802678886811334909049487259082912418579685687709195619112447562561657415841907279179937826296540169753284423215974692892101424964451454828795137807115591084530016336217776066492004656726965024503885705189773009918692989831278795763454793957279682813609155374170169045611329463288922525661149659282016492180550497894869865556932265317247359818982594941274324039842487066686994886574495228593125611745854126633395030386595623642245062779508443783447623088720296464581498892938395318047499961565075191112933504020827383552440189054061439480230227500258689858126822451294666666937086918020005349839464108837388855727281198671500213409061408110964282057150291061710931145579054154622212417232744569751491891083765946372116597830279235428400665385994049477200384754845407014730249118384577601102552266363421736560254441937843517669592906873109326124352632198606152330023660223276473734310843991267657447840943938081425399147576035804848142617559183512195310959518935642061287857357942758101277737720320144316791432779522707798273217707762383785211417442930048796588456205496017207684954166161948437407248030594869079221764536235700418444277163474509248505567543331757704810725629852930996637259584752373226487999045145958173024234499395708187941283680127971389649303544156058430001741782589703706359215412021008170315979913054000820968006506767835024964018455520604485674817485570806099016818478364999118903976322598935063937556008330881442755484550104188998776589452921402736949985562890074584715905338878031152009237014699944755681305223331306599370576911016873767328095347936891141572876979197135054046064018547135447578633306742221835196400742653296634863385678215859477161679288697464618222067808121241391446178806395627120240567148625671127849115411563938258371334793830202647155737025822015845175361413654674872700186103354255690961690537324008374757610260286046060184902737993601813836914089153480898118470377468419873708641859678462458036826473650041228241276258507902614205307325061155631489492662784245658495457551334930310459671222254063083810094161108855519890847316584806925882369058395096302399726745953584287929477066907071202030080557623864794616886418186201559109228554669474206172622827330322704548502331092267999771275547595219684816789055963221866763943417775286971761161710269508402753427916186674331703186347104454428875580789639146278875373675254512727244087927476844213429495036251042591010494436755119628674012134203260829687550148943396619268491186340991936277212376736722956792424861569538688660130373051718003633693526650409006580400869555448207919946723175438665158918778471186345561633251033324416219979710323125367827516206668619821863844212144240863467964263713581423689521684356194217880530334093345847981782414802269095345629954274285247060689365665373565887442973648670210468315049293161798127826598000852800358432357695558906934431042966415435319055399580950474138955480489330235438963875027100708305363057963641299700600644647921926029896157856563636184788656315843020331068381416530433164721546359762668409335845741344524156169928773950829777666268378133302479615029149019186741302455745141807027565138905488176526927308637005758177404778834874260863310755373859449362182378415840499481183376089109027735178023560278470498006140051801325953954450125371046246686614399396484892692114421226756733106701893474334516789428943146401186887260693071790461730422711641469339725799081342737418929578852878851266190542458531929492687063298537994272148300626080756791344470743869300903067882459402827971328558124677962053169935937015426341793583627079189024285174431730025624169023511990656407563397999785714240309284457566443774399040391118472638398745299971299801188469729186908135393140139832008393047102048258974666181482019680715401961885676921491028667201357320902095377152715881831900500310615961475801013430064400752010462169859766031480007264477580901592089672930031387189960745920268112929414471211735090981641532242974115341583220944750517744402915847412451936582998877459967433476314032252550175214120438983064440749052588841404630587252725696900222829305284346947768390114258761791322607877792293262601002794405706043418722432649739183308967319707364510619863499340725902384143980996932454147390192982695230452661072618805437505907432477299227473515695902445789028332161989158054723887384521998333773412647557385884202085198615741990738201685847392246928046285597687406122239641659716005650901943957867788990586898141759697671060133042361907624479723180023536822640277590228106069391122691525445016288349491944492800328899163123167697265062648395929040476970374171072922166036373088143636286304594566939970017930305617481403992651241318062334892516792233681332545527320410505516000711915806986609573190423036116664140698983831758239934687110263526678234395777652998818735537059916585726034149601512507793088891654230448662792815070827681733205220619660141970445990128217265401345741167094410325197564374349479303841284002745907871084831732574985295300681720442717577478529633136286353639128142862431938709712018098087046887138642704145204130319934553425079526271277219976220367603842820465461902890921785274270852943743602186657427371235514662232137789189461663021174751621042027932848780987453713222218604738821775180539667736102674430517861597884677235788053367314838705406044750665404259623823609300083858817124964262998529791257380802073222318664694877180804821785067987299347356528586410537643706922930852348133317219389824743835509839766665146296431909897884209546798792632955031474360259308709981753201211278692385804790890830497028522643287693155314274803294677692994529799000828876573333648352405041792489182710359232358639242250609959875359925242070709617283365266195081184150223053274988797144490036211174400034997455373003885993846857901988284683556985543026832033483900692791509829371123692855150957794039162399188579489982596302071090960938492438887493980903124352950429190787366361583333533120037057947687487962280552128353223351485387744616107054378321420868066186820987191954338607100278648834030410628461682602867663259535379227308047843750214300539981826511978700552367081152465456326042334713425339496764448427953430068922595775969369452512675700357957870520036184746115055838562342381375395587306001713400012934593899169593859786419688514110188502106406894641528582032744141497554908449180414084362509578097931491975993324641760759607963409115195269888842818203606460629271557153264834857313405567709255292125709871952590705220928590356131627742237705794040327899117563014197918800792042880681877662292300919632444776414960233563067476670204070425798736555721501892329524767391670220309346917052988555156591106177847419149107787568108454078243475417891548268541075159895631029114778165157811318954683388138305995274824893630645273513883709238172246304297510212282461082594848589674620123443856059836151674480833229361914139198381817784572622728169710173202243058364380560081045979653115590336698557283456358912520156084700643792465136633218764549222198417722489485863540178594962483076380104931966376984990410105683818297669855927968290219052252973527496594034428736066227358953087408055589069459835678197115920767683215193295097555487405001135938140474779169191129689783052709227326147055567344880242770675671117816791100656418931874349011020366968917504629707101941909347247765196628295965155904058392026860581744390335595687461951445964555340295302921055456430008460091694626282219732572337234710985457043144676984372245384587632883879512546008081239628213592907451596095426708328527992350685358754191475339293363521687695471478613270498746813079884880534679224360820520509799405857226893530146481091274187625707844439783519511721921490413570654494773490064828750729804722844679386188872209780203775647787448185098795046860829487677042275716154397263140458876304903731675308062527778770805811180773750873961569431954458589187753686349794442921691374428925712557763779820795732173546769850102897064142892762580408482884428888527795021594877649884261452440899919813065903910322596209494550304334196319907176195583495588133326573873251112711677348278734827891513600243705430907029213896299039597002333496801407815119332354530710642529020140712826338637068544625885730164059821086174424398985367525856235835741717178603080049933439616078361464638508688480810068093594599365357670723192366319581346556372592770712681173780816704379977895407689749104862594121861305246001557222825637819713232118708007549737206214114141832033190905735041561983074532865393731791496545060035102381554905510198370814325554183557647888156791670302283146572747469443574444679117401130102747997635741006341390755295470267337903580235183747009701529854330138019720845025827939805522351495869463774477053537407201515691348542709412868937595634282920614285003364221564543365419472070273375788327690164492376669357791700565723438493889520836616771236962331083386335169448098493370944478333101221635618188756252171097207004140816332467668132215977766517749807823873205825255920091390298608660758296520395500393424532576882813095377728097026513447812829593423173561451342531803566733621984433778853617082558552823611850259013986864232584454666215777044424922225079551150345710337068202296297080110190490102573575737206500475903394557459769450397284066752078315973765972226017369043732660590480844737464420396966843190541367295049109352106914235558724837212008271834133571656044104500917266267696686114448521236707240860464235010029117159117316431272704544117142105110534666589483828281869735209063803260464679833066943508249779773942484839410340103869341921100514029851551463071084286284682929115897858335638505275393786352863791565874403563859595803337770149501296971636450703289194967619603418290489977999937707154443982745753876259582357108566505035742946601908545232237498467361478984694152724438350775368039620090122999163786829590978033060675013088990339600610230218839339116986097051813244316850136391395074761506187093437923101408604583294236182791930170069319441119352927499581109870308296968772133430758461728451636215792131627201095660537071511653599639280821276971063649230918185402035474013718010180386871891947660995961123252656289959425851154685892626236251379145621212874491136784797454530386486421278620024795039528562860938133316749900496313896974783304809091552340964117077644529212858050036872109359719568692605325105250184876616068791749950630148899660080752153422112101066288472138285654366635488043469616179306591614816035873665714371571473042761512821208305018064221471973342886527106817177864707276974878212331647570210036403942326615747674540489637678655533010776389421033816181673989020012755657369994528236606895253111647660704553400713689583229787885751853708685914510177430812269094688150147283728972356244214913027255388711677512818282723216841378865992055364773329863229683227895413993324929679991009789539584342673291703912495533936195097628503339856613472234475861092515117410479945326053352081991954501344896047448969789200220738424665260123384897145035724325149377179886360366351062423776038768545773738032733496496147040720194288396950003838676328734345634550643278344391620335575337050318892788410201680032468261502088115627127275965814103029959417437113497515097642846508077867776579054442376799208365047324357624272336145813194183059848626560818576311613206012556029298115710754662233979208000160644916289502196147451088376873560599017247186766127222590142665909502250435357297798863950180501641996390693025312376612057081878435975618506188024509907928286745785304643927102749626015983249601789805459902658467342326516359545589063356044462937242298272715922509356377325576987444431688753915750786521626037474038788775998631122510753066000782518054107145030020845763125409492959674615795775291640391471567681320099375912047155102300093572124162031034432591212864725657732118367743680321241515738050093726638794072765952355242650670863235861321598085197532241343751912847016708197478620615741564987800471927553566518591810348970574400152435014496812297839545539940985861136690225696580769756804351940491013274155666241008651042352966579605951454381470721293443315504732011183989084664036408281229068918252701007653090625219540081945139888093444673344314749711343889895540679525975648407223633750982131371524743784762645773349412109294561288760368932900641685396094908431281432596490425588274504959412201528483680289408666896525584709519784136833071759704744406591296327587534914178888746095384935879442668898926161234440814136715400509700300614873117003803985163859737475869065646087171420984503460689468887645603738964436798160252201134102916808790712027038311020658125793359829589254551533896267646977106069875304324678253778381272963182128440513072315340668776766298317561026251664605151044393703722249413323082551274024771753447372248590286913521527084041983423777465321455655555683193575623876215307685102495985088745297154115590895822565730414964457894526166643388748252209843336755367982494106548539228010107627750450739960661968858952272580925009612928553261807867902134710224507815928144496881744876654183374621347708111043597667728314359255913556379811239122145125799997966492657022025228327180347215411440975105580164398094058720498670675675310435190794663823188223729677361225713678263935403593694828548699286731472197248338225060858433444026908020004211998910640113312178616509292418528218896877159283717561938001707630245756426090660306267004793723051342255279465617211357880203102000242191189964822225467966396092842778830451575507119652560828676776795508817737921622030725203896536148824380807909988347837858697943297583514240883874484871189497353151636090035860668836443734350743710612362337701601244348996931765634911966685254765711869730776646207287841123612171660468644594663693955282226917348151410626693278313324331665177977370262191025759232619361501867955380743534273699023428866288019789194734834293218640315767849338535620323395795863255395399484910907621435437779485657424952571058075839336449382624292877180569094547459178527587528927505288282388886631302368417081032698386647301615709947414298518637941853218349113085879589846498181813393305392267002341798644666313639865898316442843726713339980600810433127528719784124792357813198973769941200201357923234543516842273242994015584322797652261653879457217404666135004697289013845359091881987664686055759312804744972848836371978600550522386276838431160584493385862860031648255957335140851503054588014041450595954302994181263253754432382550815709357768934228212762899140659501971113182320168261445578438113205249370029735286245204174401055616230028938858280332818406784730209850052684767644285411683814719924894950114994963777940834959582128189735228379181050504944393230114918926346494293019238497954311665911777991091113431851814227180772151425136444376337089209779910678307762816401079647918185047542032307755246347299131493050737685311916281242650021972504995190876640421494084059186134627720068528689441232676588184826295122703324625501378577357988441297571332920841742459107298007914372251146254343516474106230606887516133764665832558952624159805372442792749150034512191293889433237571316502318767419112511759327213107951089655431835236367118167454738220947112687426761824828192840731092121452373775426480890788909640499295325689084068799401155386902631605063969656685953531315974006699895259041386255034165213276733927028917205339610966205864581405808817316109037857223486892025372990378651210801484406949946983889607254691632190110437223106917529134537131613253802659569640103368968578104641825934256313071800837253859843549639357855045505161163104160561067434738442667494894889392526737877145664941720970305664589561658921623069626641026329886510034564287617152502521607482620041181410547706369384258468532197997229245834250948959955823871443301168636627081958051886022378859230454799093210345394197276328833678490972832263265038963809816635449122013979543600483199250417044950151029718046963505076085960019194882227346762223960032550521905123293458659005463933959168179619507617363852164838831881990501056010677678597690173179955202281000277440776502955152116104452207848620562025706233681877193570877328408439866128776939703271835416168321525546427350168763398060722497765576725391157715128264554761552714664840695798451852485978518285189352325465714229450205109992687175176983087518887642556986697274336481996558566877494750845818310290953900076554951359738812622405344873596697685391952656058284844599892644615235181309897168594317968817776394840450265497623202318765051920819843010862058384671876051021311039491443169499078506417726464547967218909732105626447028452931816440175629243372220988104138095662129742382168016038461880281413057278164993540903290245691350529586943325499864862509932376305833542877629347670064182134774212793602219237572671058996979833985713195367634254672626011564566954952878921517183926400099124151169056386306730598118141442833801481778314354858698571911870897732240061177926824171753085775023219508240198479259254204710111950355749318076240151730383697750569369751664106064559235050240818928632037334903532625863279560700851776819821756304278122269317709539223109182886793638765716716198354162747635669374037582082305936057751687919439725027681923483427632411197860335732888828350208298387179660508057368501817802500453499839018907340598720825109638012421459202973159213248583981913415797478411425500583040745689045569410352631222748861152476041908799959979771991797395724019429935342107930143995448520127849709238652127696670463848368381420981671916936364482608651412136859619544691581112301134897570037974763071313257872226657843389890804001819614625287284998523233723456827754169119408565155635679808331542077181458158980857781878340724655245661663463359720900436878309457447008513888207693018121955774445792991306524806420207325176656957310466341584841138014567592409100400220444891263240913203336936421637795024579707849848305629998900645714585204116305222391547782587637237811653441119329727604694288079853676408696907983647948778814195427261823749356706519277710845634589833345425507447579971859145564482537573670092600068124799694994416149878944560895573721134638676565449574530564380619875915119958947344138461626769789850209734123293835454906734457114875338792342344073528585281211054032742796158256147642712705449602974794911005789104229820191669222754640042884241086529383153257332574528831714228460755583553140472336864189067546228573202331769646493178798713903116924794872918839681193297600709721927735790537874084745219950847243021592783583071390283274998811908364306892558459172861871387091213855053142011645344132993439799109166313031368638853888329621549634379162583374252793993714790958840926103213587074227112284453403431599255802158247691595984702860673617861789316314736055082126305090064080200477795708959278563707336166051800390415011980380013095568110710081034046576053809696022697676561950467056331799020445105041368002003093667045591960852017889266648541739154399042045142789499891901402576750059906008457295739184618078245126726418200511923307211811775853744094925921936003235903143282991136968160119108065124207941444516690979402052998691450487258958630188383893016169086894729733920498010514094825968092467221779048686363942030352861274607028057327893689767242729199352061537892479398366460216872529746810637101074762389044567973788751846507932862022838363583011518085567565688937097502342618579908170769717212602125093378554226302841785212134880158786462183483827331731538866483776514933165926401053308496697987808645111858144576179153029862639675564088668512704204578475049024100288929372381669645173232301533935006249362835789702750405812842669894072479182972833214804926979317260379316245328613992653984894483217823982266888392902719408906129070194909256102087943698250910728052595347564316489993459458773249266788213015298075174649896727164484860003970391363029350190004465803081710616784944550453680172928592394901303904690503999780756793263732289155929964662518163493860149711538765026077486594155646044113390385969774168471223982887986524141134446174426077458484456843892462826369346496631305300705009240288959905697015084460774672389217659862532076433965515325669307932331173093501979959818577609563368358880255509848270829926254398731794118402199569039302625793241144739463112405012436612274386247522375142200821502340310344968389996065818044499283349384122370932807566037852000067080258356592436518867100924389715652872227019331494495361622279405311573743101492600238518705330719831397628261507115911936734644464306650236462408184970771026803521434613468863291872582053150568168443359780255250152762468092326559093146888695401843477855862893155348713863156459888212907005961839205349974568533289971911161763032794024491252483098109824726211353937656053544903532812496134992858753430901379586932107309142339299542666543874434135760373475740198520101085836691835820803568188133590607950542595656858862581880571619054039046140584187934925964937277056829701317160090047140140490452638305347785604500010297183664134000872922150141648344693528242324617507730716616305670940855391992067964745981522780939020943415830497793956117084022109752751012091742613568352525092728813492233197830046852156008729278497651427453701924005465692109958931143673226683917075414317142872783754691329388837402829426149271983435720531885440542495289155351915273912212624956529969309299399193675796447007099353632928044117125703950177842687788790884673947507050143715927280217524173185877149018964304377462219256267123106193434041458695963174920160216750030657361713299097942386113660047489887284466152686227516106293663532152750679350788951630401775749624227933080815848131428090603127915736475669559986516573401369778425456996134032631445243903356312548832745896231823181164794307663453111742778851787141321687001293261095246327309492338960878486344009743825275300684558460466361936810912882516365832523547275045685000947468217294788105494495053274143529582401156913805142043423164236195100388185676481018695848492398512434684074692140632559481946981588518691032860389279797387850804440864175407941379711819434379769797451522520910565494904180285344868971318271996161945300926890888871930793011251710673077310614114499649227159548930840731308295185281578501343748168061637660511898371758679197808698786710817559822359341063243838293961513426513982791661323490142998647416500786783894278664792980177540123938476153028113574368260339553647313127591035521459442185860891437007171586996057053196578854788865589269260392422997727590426701885214204880217103349249188871000535730125313795603563151960789780367011471369418167141712156351265931457345563915546977962385147625240780368678442807758124094453112825366522690860087170520804390342237115317587141965190995943471162893649637167696004321722145426747759940258140681957988118759816225326960700365239318334498482331350420458074827748198060137785060891347710682228141006988019378467012225576818770163399157414417891950391992604926209044767440798995482163766501794952526525058389477739061867439628971743489415104693026112996810493104731058582690184611295652233137025467848217878567482615523086893513306557312834082024898621591734465822071564899564715141889923642524717985724225617029662421748802147118336557528824103899983863443990449238581447485702768690318218827872400025416309529979629915283382223600631833881570041780532305391947960516635382746013198641356518985622728894489915960004405519164952491596034347828405924334323012789906740294164914293283460828818395739172682050986791980321642947785773311048921747821620196455733206994176509165838617173350761538264188005239660429091492197859403362568692783513007721731131771349406030903052488425348678852201123543112999755909484979117999619122203072599257969114478203561274318819162435223309320249860103422135647130523107317054133127590771651031007862517025942309614657564024168700534219419528473893548106437307277231238029902829078233463021524527121956436239669904817620168412831429761342487896091471200709821089757918673507081096843785582627599098664276160464866479646514742405714400288148750600326518638953607157772294984132167556936184674180770395552633805490870441891868522175197108460826833956616993185803567351741143442655927297192890720783021240784767645044073590189215093340816098525039305557861855159973054178508194747256946357927364681697803156820593403825709577806491117440667185808310576292633296823150599498445255408427602879106519883926671000899968215314012595099100479103821607182913017632475960178789514437923792113341875302250830775415388658242235623568533530990713668762562409864975379961199709387568306564263224507592827998713563678262718882090076004483781460422402466459844268924521745943400350601077765514587884102116443510307013406928907052549363715392497079023991053392914964181777896063378320032131582878317806458297193236595325363574890423511410363100689573433502005243733571363014474331696991164278272883907002379133011787303737733434373176922247132116901418438041841986361820654309152442273925472367991375851734050322313860582238449449489295727532009661909442183953447878578578692176506741925625683008704546350462913663904443843540030902648856470686064465789859345408343091243633688840436112212339589277050371572384943697105048377643143231042011134493006732053638998822677432853913548085329178505396997243527926903915827068973446343420869850081945275982166313658603394105476699618465997704620542784979337054410522711635082580736905226155155890874213387807146273025630039019008464031063146170544846285906873833366472780477962874974568198154609750838642398317921718295438887125457561847622559119142007872525783676685844591438434977674796143953123905131592990690197021111046801696236223955231805991658260060648725665930552709360302007065718432611199090182869317934941180692517746093936003258473737718341127250932031552240864075510635843052351988212912138573016208975063941872776502944988306611170793279741601650947877736075273965980429833048213119593260070705255282411693090248435391583992084886024037182152021940986305746139524753233645861681225695277561992364989037563596390166921760305291503080927397722047797028186080710211647901898341361151739518812191613314119707836681063447686294182138857844262109283714027159971674507467506657127824146713286606001224211171399235705158323782081714610478792975156112607058556602938849075971576241920707405444864991705220761051243783332450055345449318062722547736461264268591953225101239587538004670754246474339350040111061980459926347246434428534014087138814190140859824449046794141148867294346846778810422470565446101244176832161892125640153308560072122911669914028159864041355874086841978282356051600057545330630584100096311952776515707469918957115054733997435650816461729907362230300324536304569068699941298900678687243309259866182492930513666147542410586866560937397806799394436370751417545161078443951050103402750251595811869966868687094488527908357868119085399216438506244339846433189062848775989797217505672822067060043777497064256959382404535336697210069790139013087902206440522731659231445003040868937738427308942492047281267408805170508689350159842406130016078857768662300540267945546409655276759419754852509739490436845610855550968652370664221147382571498422708399034342245859574233521769286061978450654090816471109416911536515696677226100635000968059004327461513054864833307777648397176963749327511573375640271962314185640299298441116520018435869207020648243977005499089312658036122110666983817873807434946469911058215850813527530999576893337350452228706035789581410303029479918203379739275207182974611101212495173137763069658846631535005636665299228882433073734622174319749403033988758384568569741559121479524710788334641744471600591010604026487660448651570834940387264098195547627408053934913690066845513047811559955807320333473117691526664354516357265731236873997521676017193425227321288128983466085946749629080716091817238108634886655621573254642547181289453761768822914543702255464282131843994611315192818191538539723217644265569855180214616329727374663975335735879590929695255224395571157095075813349317580639469482138539816975227495317377553421916916630665691824197637975693948060253804064295374716075233049404767376546300890147828036640915204440504914627229610246948325413153762181765198708321933643877670950756410831203811694308443507222511659601878208762981074595599702136204136303844256480068633809279736707869646466499644832516013229393406516190886405824189205681236457668187564116816932991226786532259413108285705661482327192490581999443482537140913425705512537891309500123980986561539543177687084257705430003793387906632554838326848990323522532020031861586943014439196208009571577672703957636837761508888809824743542361148991850063228216519217270964341525641692007999236890619673034257016789447939310515705695561615116468510678263460339810687125738425042125187612878446460287843033504480640589297652769162679562744228114943911033713791670347679278517854135816064794331602951686153012122054130454293979056727437099542382579400231543679700927832980773112112615571079688919838949268445922247736356183920340004050418051192375053031105205966898154254095164212682879883781519905056302782575439433975826604469756224595526234005766551107702948487024157321565005195201689518349719402902372115629069863065742538070205585964434174706089054266464477243513839227647985605124094014902576763693358443387423277192503253613208147230044146396079835302739960751603628923943304097066988775067972038871468929741479608359914901805334991284899414228351727903261227074705256155104471212874698365040031607844730818425446177998106192611309401525525920784543843030320430358021749506873834134175124770956427075585915566484312279816850804547692638851512905903278925461627612602713683953120965658425646783413007813385392926123730399027010565459583286939570884221470465712853347552529692279682997635930234685591416938942243381066795837433707742135420841869123648089120373180557189351872463830222462762465264506062884774437821132808317360928389943219509626915458024607394786301151157329485557681998206896057497402071564511948099387252204204037248842136955176286768932067354047125750969270272240916751580887276592640112102950419868573951508041408097489719423244141324158152020158556585710251932785490246904948982001710108277249476545121865251814984369753926898212750052825224579307229314254056000563405723862111952192727990990162776850273085708671765084695027829750248160303481373661208987673266315974791044219330690231740564913642523673861184767237945270819818031442180149490150978652923299947304680034976817175973747165049438560519533416203560856745597947262784035875015401924686792001587622051607907958543564190794194554784653992387725401333544573103296571879498665673494547618979514907242616964824657419619767717565796675914914978419131983752443003709912507475799736651224558407752615933766491792451140678215591339206345452164517246536244774608271867690554037762422744402806614892435194623579143936963667023705268515222656033690889312918181969304407518133386163591367799667765239474453961628464692457805227086121257834242666914783022310434822127724902359736560963511180439465065581903376031029008911728466153380499996663255490721599328840935638109985327558580737017251708003960435751855832976120036854692708837315433922817930879401472451052675404543010369722447586173429403426379391135340732647479119103376855302065257127123002778552671570813417402913315304650064353029588814366060504931213301085459180784154487770923195634673600627589391084289904071250021053952724173548039436030060222321973444222222761516407023290085460997826728607883158304508976492671727181045388253265476712940059914186970789344915567257336476456369348112642230451405666536868759338338951031452465747642640791403931231037732227881124806545913841308806276495056471472227556991936717930653970897143233837074867946003446271705761923992549854642476229356337389084026616823617878573269382046316491560062347334354007041803301293797809257703423918454513223265547638411689085808575509029708273379588714793393025487555341494672333074694297576827295703770560349590693107618313073542691365379070445547604457031557332742685614317778344208569862284641939152989019496002562105201604304696688098909368023895066570960894526390795771353013412901845859464097283507715885631293178760255693462378418859217275525425275335937879076464034025949104911597068453048314635726900428337747032845248666349172782604318783207225717475214448908084547214963456092744326253130933512911177444395804514494330504310510151047947885883828822200350029625402283257474398029468518852766767799354219290588153330135654498252917064834435915075576064079602998930142241184019700269496285553607745441129864295622453507482202372088953804842644581969698976951559961478817339681050124543045590664984061835531865016011855787742803727567250588903630225924846342409037514781715071219850916967709680408274291353242090437923574105597942814372245207089160738451554942426106083009737038035602823825393541043116837964533460941236756193259423496103646452628500921675370620790801061610378293388416275770897600060920366053714066830751272734600682485786702040421318906230318979949547049427374834955347619616365663996787613740649472605811760822892855843451946044280644473043169863237671971088841692815129427090382000528094113084767576718911725134384877035195335564622631380187144428431343601703198174343525641270367754947105699084873548061766257426601421549196869463768540874657582696146741378618802489755459380393516276064482928704882110734788879572990978834922302442712339664956230001724176144663271543117897635792236707224345819719426331116302399342493606001944420426720031131174181424165025416838143158187322064595788132488097644594500954691219905219729418639422265724080808111959178445091281435599928697735567084501593398378453621025410073347027263732165302054276044857105659417165372963264320526352978211629112857199745692766326462912583547999672131986602767387630604675254043996692562401193943497926564618583645297831802059192402320033378815893558063545248726892905619585951300222427378858903043146447819077468004455009537363148337342804620644491608103812227348546869406502869115174113144491902551868151884763765404790483418545236762539470569525101985810456750161263277575933785258046920524665709108551228699312802299789249945894680373384099460173421735507422957832339346026722262843707661140098561831834574967218212592825192404080106101145400112498173935011957395208285636531552496711108793437098664976423213555333050075112417416113054192805047703777631096116252632768138633151144850659083101596428740958565412539370784039873160431084748071318059016952584095630307319044297088065133819179339445202205619633407512772865893692462567814449108985663249531209015670841158965213204045756082480377797010421415253881690632981675603067870971187270653996489816237022509439527739072912566663351132816231417783375315797919576837388147490682894210430867795698786813540900410384397810823258984394140859270907953026783842764638495559616063286579846468114328037884441409756454878061898716042268599078509743680412322962270275638469114263183483668896123055712074653904952979966311194227682937758448765536694597604406984683635992491636190628179027842006725516732450445885647442862723515203073042023131899434654565182703108510938050483461385354323515501719002393893883862599333133949661093073176935791296318869095017973393298217549524823349104881144098655586640940831041892614636676909376635984025546116997111729377959738297614533928059503970643671213051289533016059583337216461287438793816109831748159262807918318514560483634050468565197039864832848852112968458424129838645004817651005034360840105653739241141517626608464091437754681270008149217947924227453709935393972141002666633430941769769181028517256028130135230055051214415473357330222351834865985690591189677385607885001257994778158528632306019795450670691495172438618953934604502042293910609425396009921271134236909432842930267962033302331351110741171459432276532702642679714303789196371487792933067702355892283703565811014535154965693131512917221810311033222365628997448484366228658146678971365828976721577165899345689320769612523478571511344089472416917565689784962585579906968270142819420216606238737522541080410612130238992005487368651810769133133757542304129371531601215901847973345230906861562175746577472144921561846952622574127027082443214728251726742912304505930797088800057487160595738914694409503591020284389654362055661786156297649052660627029935691480766715045878982127197470625195806498653155081495039495109290554099639497726241586955279877597107501369189868015127898437962978371731065408081304052992260491634742737340290490966138441053724442179442444132835960195446563578198457588795592713545239405310427339086868259902413681699648162109017427622772996945003049354952129264425394661856385816996814618036293767396126013539769221102876555950140343273095370228198397036338292588850699104307677285168806626350074665745221804568690915339418724213376312650292522937268288706864234871392502827794572161382536160869128746981586347340991596370483641819562001702755015763422948150949978889040028092140277285909517072118541878945661227555734835494658401790179296882417690816812681972973027104756395276227639930997572969947036004976066491186540015721931199868644573737689357829124814357413078853171894341275325131780029676832881834932705550059774971689629840521368863416115725143370287269466537455291862608676469383060286302040280476396353560750231002000657579785218106357042802363747293587590372383330450420245326284196668029738548763401063813656935888587042522740056234349488492801459079911881602052160374725528166673675140860599954602111342422676987919640807622363875038459505310987359404628299897391569713516633499437130799901076728606539155463686618868894061523409216449667774326090879063921776561223189477818421695049821707142466104598433994874569491280350351768779826141313384439926216939532431883429804609186638967257477596192287389296070657006708271963649680008590941257752538840895540765508677344269325244321254649236943988135552693626735824720095811762786801917587233435322189803405429934549177075500159028225898747766802518301620487672537988493913109370622901653505877630456558197356239163837344396361231039687275116547767440951400580875320875043687051187188235838423209930168815287858956159325076893936031133819938662888991437172304105026061991958912221932998772389024996906567508018703032300587784002930176368157920651434326751309545897390258925532169975989104305304672085680975605879004167103618548721109008981317576123147795281861239300958661617899405425578155117653005288581074638973308330939629528834483733551362644766052216810408208798936456792109007127948946295535580992724370765729683079343311819545348736507034786311314574467197498070569876443717798889124413000723495332447781194842839904846795434679848662511802063146387525866057932900366769411743293629014335613570516057488960056014364757812325106943094389352844907222533720423495783410138378644769420583621271547301491512625372395100447512590313501559169625046526612439944534255266924769803736830374533115544561283736003507147849117519531372783787321891633125518696039934276222225623049160375419634511537948533980516560979751173526181828046999874980943227119259788393683143068714026919397465233129551090005648668222097533542851140032251896764907091686904669751311296227330053995027626642500526723922568931088607894491210149967384597754638193248039254949539722886999175932365847420172592047595837076178148346306714161356081173422610753830458007503625136360775693579036687976140355914153339186821871276689536952523423064530157999420852764254364095230513520142901288866843659567721299000519406389502581367344631499048259171780054851351150878011761184114922701011172678876966302000697333124476333944742436170645771439536332723598866347646260237224735402435036871995140184984323016868321513880754500085961480983911743081032576063368527277544275038280268880902802314323305727877115272177185372052569241781498780252725989571046299703504350848786945602732756916748934674599583456215930936825207092619796054856116500420353806587273585750423146774022387626336560885902150818365333075911541094165778718215272266491661096221706453344356388675136289850259769551126127993665455503621107477046400623936503305074491128794572775628126619261590370295723470226109411010602561694639579297236035480376573013949315689196562151771033747855155814978967518469891748465895944628619599190793932671953564247476871547123986665501705574585069103691663172253873644829238402768399222854544765172042402814809520250716763572964249666388814201524807750408153570580085335982604875648047166092814504798847380029789771060192613121370934847216024439195775364250879210376494102007254755533883445361566084434553754021275218380072227358973074802545095038972969752302889385077928012151774108715030527590976425868395951166183540413008808703520453593361717408338210358301505440443430078438051974809668636143219334490605115388820572447386566037918307821610510847427707752630394158418858734423733150797420529642754068311677423434109930549058935950364799102800709186211121798853821898006522077952951514967127014965471298096987286013286700835739035591950542320547429544734711728949893239901373523268298161271399869829005970543782672105507633828922367001160829871373886485820259811646277336227759285160238435618121241657371763952084675610531523809726086297117980040175797880286894583804593232872874465427392988843662392888631320327466179746300591865228768563124964954153248234079794695244642593435469479548441919939143262630968114299627326275227399523558935258264036010336865103190351369361310914533838144477887099371404054861934148311330396826811037391048911412033800232777889193382013843130030868436719717034382923969091493248834304454260906074336868958436762850140426023643054029569390961293582987226319217366407003761659898735221225415514365188119957105009363340114725634776524203692759768978172999217768341906332204700872805911650049585724106650074363826234352038985503553437159414840185528682194376069095931120907290283973050748773943692656408172574430525723233428476190596648569648983377877383302768607323543197532281997634651418427591945153940229723379618967772446555779481967578817685012807071722079253946648667772300223084786871512261846660817668188298047247194947106314159062806822612953967831360863847796518387859380021101185977037541401204540630158481110681073480581013538361200427992892054817298963452557752436982224029786656769074150339135171687525186766615378052238387718590658046420635925328667070918096925121433513582937783972967228400327766976943548933129535683420774166622261501648463500280016805980671715603652242603989134685920438692369376847778485532074587149419527574991289457872148937719551670732802404105485322453309059608391232091929483910519884794918927555041300287517990415536491374016004845100445520778596809002833039060069128679846202548290095356241001634193598292988712009199611417538668165899161729134380640547997420215971370768349727188936033135854445881719085799202749684591920555857202715157218451639865296260071667502773385093165897004366837710669894115246120005859700355344947099997491935080101923453150718816213904170155196409688272072836277311190255583154407841057965999051524822060029775748956375572741989566900684823366639696258904985076510341471304414710393841230980278076726396900596247526490186433971844528896366203849431688866441204054814980438762516293004952814283815687886330052697757584663629896250768248604481750864599184441846454416892758568906635305011689517384083352900953029566841408030102308719351860662512209530323819472907507565446759715813029799620734234893659856533486658237338832534588199879732122951077829716986335967611959610132280465642459987729304618515496166164330917409057774475552170858406126905192016322135559337784073859585190416695023379835313804792627249386132090019500303455457844644808633196099190245648528795938813994375195231733628413388752909757698738977303732471854135622435642792382502160268303090569961109042361427712093497682653409789456701257019267914527253524044127600987300723498550387378044766654592715022965761306398124852090262282455779165012699991047153411863753604074862885908027708769440528172817099779082168161955385956756416327561653770170355754898159655064013420759706336764108527205229605216380177846110568316852640385687193491068976283753627428779428531436741369901893079292486836750260241812491884007591155221878604741205230691692167151239279461845875992885153517442068966635295795064694262366085777601791165319396453580289960901140651247854828088325756987359542421240736817586706637527051092954631489556228613519878561418923430432997004898108643764257263217837252395135656182694965734284869184229090938616683198007668724000506660193468041819366334518116559939798025792532981554316069417945669850024802863882337601831916176500001001872341486878807220080127831775014275989668357735689954305120836668430071592362334284702583720864226006214837820511364586479326956818594668256576074650515333036481638571504777021628347012262146418820546967866129368464729484247063124833789140712557087110335283591265750304929795852177661264273084514977590808789115865878899452626768252975539755011921251723582616131901988398518662782614305953294196684796932854264056708074101990969765821900896129167766188821977767865653528578918886176291628187198606509171290400630583352703156435246000118923917554207030234409403298374685168774613964358209352659408446180263451405105085029957318380839611374977311016693301237547818107274023997432127723729590742747444461348059532051765504605304039063488828721272126961452541419724942518968973821466891160542272667046416736509945175133857744096240868421263151191779813197716631339718410539996690951831365270542532043061609156605786438793241469360508652475376168325919413297462838835658816106567992079201907216301202116282435047581806306905047438818915183504482098115604822296789873456652941175380418956776093959707064178889266597853049698995676806143987809456380423917623383537618416028943093108494976890057519080647585342374355030189163084240517006193206272833701751884804986414202508786416122491876720621341159767613840401887459699189633611279702363370115424531777745781457049847025882425155015619710788321367129275178279068240009240637133733356954920341452712328816930142444955415844586947713993680316092684554644214730592407416986693455367893699067304276205537153126113168530835486875255302991335890456377018026896650847285123784480535604027012273868549085202712228663124069125603506536062634171479812409851893447525395772312885867537887762130508743961663879804770327671708303386286506608666653506124619441276641868890757024305006544680951994323734164015319143539893111771840811631420665835060661914356641575062170787518616554120106424366257449829082654093958122151797182409334077279009163487156675695018994736569005852252563834536990290462482688708345143569010190011768893637628321514201382070585439394001953578324739094271210413426008939447524457795340422576920313058503332106057844569785354051178816269075066410115107961784093073357310250680940484866387245128971708324220363773423321507454009906161889258707862224518110904793804241795256100608015123765096758597085916789421024049730756916602371362569583826795967301844409621429305423014130870451893290495225305341495264169689718649419637347872005625081044907395525493350063012936721897143794373028932267903816190466782032928086810171267389226459252870495092893668775885980476740113862491913242210559647148616216161988360501293680375885426151997465136913755361790613781335390141317031045788791275887718285331012034275335902292363024993309289923034709724518322545027532413118698273849581468240627847324726769944523895698806952866827818349854221984134529736987814582463781060791168114661624557971903074821216491353201717513404465114562162309221311530652576816184196478475547859420526257705443250032027748235138128036028441193214851173748356512547638629227299936804881328526283854850635132758205745556392171292424231116536087224600394994647314870216356928071537952476199264980144235123738656489994854916070804046636278003572409799451095973272660649051894605354975649233586280082390554301567240612850076089501502360904331910856500502702560764955572123529275209299942125248318280433368133995254724487164384505714249402698027292869137307611589308011430566568793975862544668224891000931360092637884000319811656415704574733708814870283841253329169601137599442717938691657004118709854762653459289335957483072398308438356176177814345706358498767691967563534176637813578665752558502700959877707296779566992099673812403287262427681476862102962334724117428417860371946169595806682804559154917628999594232948702614222316256652388081500592971614994427788113156731972211480332565417411229861544332340936659291545255447267694844759480032348986425289321649821931035952204278536407671605893108157690274164784304196515667403602062858959830822397337018794861184584396095806207992351324542054386806162287162027939981873103905464781254141319287865061673712835040573471759151764431329179005561742001865690016896317372489944553520844285587633113138261939439073276054112194179155436070187618660421409104196319711491142511242773883533425976499396189980756772219526257136498383297274355281919758896672044097079758484718591796452212532578003668989428758970089077285169687147553248694350335074389794166567249234050257670245606909479582438132647935457053060156627815142449854241416303603478839164679580533694250735094801672438583549793486303501512150420360956345641798956151073075932824585231987442194629654205831666975036802562292055811588643110189833831217418428844223716910130488679531622573985937318241170152700412178418915157261982177775334673890071073316213487933909717920090803784573747440521075469958026960385199315108132897522865339739449983092722388646434342410584233341179173707365039808083459098903856389377384479690883994420047905401602548055864976840417970398059735072860666288135746644462666563223016026103335051006365621109884043216220249755944756206937068483864583031696784525193348648622484681166284969187359483013513597537981971834281122731537379018743447743767501825771342429262942249307422877089409198170624996704573017923882042991024789795551822506297327432512152672751402676068781893597098831098975085296336796668478657025184784428138020207944982326519960829326548681201249792225577246251898617783500367487831976500410150784684400049901198341240119879064452421294354208026697813942407833450788842350695334118352035544798378922412998461989915511143830562674585875526300430177342104775184135718168393574029580136947606111603951096061908074463132436873258909492415950593028695347703941976144793712907134648766553774577953097654879440441771104338943539780871074903002403879247720212031510686239058469760290036009806750449088602141470682232499094828122166408774430803077269589046420811344886068082995751757640764224194259006474296256100600035225958123164431973567341159694979986769724124825332681222290600119095076350202528981141245837541597292134212051291932445977427572854075515487016708398712813970935241691317739733474145000059055190129067250785945569341880328658444895116689505495177855728239915797698967785207815156920117923441616335255453425006621672994392343476640703843293943883209695168563388075323907721144068407935949702878644562586012307214846986747965107922786918579461236346033478909093709045319670902480118540704710197231515148446034938470617445184863654373989970009705590196881834957394195605388889387182447059088359739856774725895215443063332157242340142965953088229528131183122991523380476392335106565984982138759744637722464759487156318777648517993220630593228500742642192471331891413175480892114879515167265029359785096160215897412910188707526637862844620597729996128161598177628229429262278665287825997070352231599687096590799812537829337523139667198865561032396440157840230467901152329098390934411405053699738956310745902050258428130616484061669570891824696784216179676602308219698150233573631894555439140460608614950369246904967292585030674958439427581948278836780256583400738689924569382296433511987048593814186581859921227987019654333802679629854742854616581460941384306982210960989064434846188946360740887647064335923349683236371266541588251868707372742288695843384614757407890926574602168589391516188046493475682473377676954340415994104354327373808215481155562787049701968649802847236254196476129059610402838458330563376034320995844238192640371509971621398173986576214808249625410008056777153753276575282515783267297794176621655002984824911176281603556809455383084844747292946365746178629417732477963672472062729377963443050570870014214096893267758718502438245685018663168985163253926481961758683747150068568370384498374448144523811631536265913495739529602178152875928494772237655330068431024655887794579193621377790801439360530815123718577417935242840791309711302899628499324057215548073269922366718813290700554425597787657892110187992092967288241579705849721553581693316683068431921670715928282157726142244331924088058793375880199064688770120971295435154110952378592912235360848768929176553897729285562033260886554180549974708099095746003113291326292650415604350807940875920116102230636193282064477119137237157710570303983362545264109955136085733941270919407007735007750112851683833439364598844674441026583892968390186015228941682837425885786542439456453057810469512708849675112380873120334882695717734072849579158780301989339827632610170412294786458894875500669495461399183880715767702047219086307145409089997171250563981317784640543097548969736551289185056408070930713595705681921152963701567952485518824294806531590316346378060955462438080371744851432772976670948705822213410462774321421815954410702013793859289963415857468426808754589252930067477600812562702276570099209984107296269295474459752797512174111899005012402479798818882400033752214626886927176819695519004461186362832527401834066277737194068893711655759457138367948877824922883697269872821959544627967619738478102005309472439433883195835636451641444087635681668111679409087857572711638657740377516201235789406512100053331458771562932513746757674396873500114797329802197544077957929081374454176217102958984084800332887939636742721096704465284447296954642450896654909265334057974373429899695632829065278177851399415857761441642530319497696207241418374646483703416308161732776292695069263232944477204367767132602832252649064844733210543975971870635758830044611541957739239685030992307449585855058034961521383625467796722776082849156851026007789098052529727685238437465195825021127149057587682853928717655320842598685753820011055903264533756814478598721441184163878605709234010861987181037764173192842637287878285314873791920701117452809480250065390036967478499149678955661681156235561462393795723771064353470385284233480502288513613145510951632546667860122034778307387021310609433744635364140383202057821030941372312210142076257012496678168187254519419843259700789577880786925138877814251095154941875248474501730546970212880914611359178198937615056676158040077413178195963369839910102546087061411708453380722039396014717262987852269216917919183790910003964317972923176384647622532093152478251545948232648115996255634953603129024037602555037584480403447774398863966441830234869034317915842188764993243606793181131332098622102833266755125808823154625996439072223417978673080238082170535600082242935626172780180127036471556735895075221230148450698133564804791631537688932480074766171347513770495263982566917186515465988524149174651020876937992340412419111553343286467720292702687144521663328703322136037502694377853361903792153199202368928410017550620971708446752980318529955097981468323852752372727129770789957920136044020820073045542538601749024335349411044748721367544834678047747082412560782920979783398652324318328535328380555158320928464844696348959141557430292150541998495066328370897325167419254315891644499962474583711838986813222983042778746175151080101457243568703703411663670649967074540054668466996962745679930601366773604370035090474214817003470735766705239896247167391770814984099786389838327902316038954322471158723636559882320775812438336515259364433010858289890544366048780106767085207862199368133795304229739679464534824751305217127693432235388835681136116729430321911219205608016879702106372098643579514918498655047903052048827639195505746565584035792681241780980399816510913000395139273293313621723653418020710450447404976352672776123507354534235978188873837082179049217867921008667955910465874556840747975471379450159971723478588634592658372568067906949948689609177687765765773480397938353771307779085032108141299566384166944246809311229694493455304005237574373870935774497137780330489642948681543497019080818794336629215154519297658633980649292983925801213332626679832302340121789712902190205186291098625940253401010342360775008218762213421631384089668519086162236568045524835584858828035691781862532983707610071710545311853326502168368036598496363734813052663286473693323887523195728045337430846963974614402472794712974903289828907813184946837077368175883186123500640273671180431748751413394495502978793069306292910809929313610565602464039196147166747833202930461940767335251010656969748630364259371412532595615604208760142482213593000964705807273443141938334642069187069615425550771647149455771856023297927069685474256905666289873195087993687076194510485823549191634055463624851560934980381722829448022896530884942341227209154545001296217569383295620668754275439541735772053976461020461411093398536175512072455884650518276296976580480149555198554132676651723323104485601490765893005266179893172299744842505045747951929917273881766964147339155629498857936485040485062262425353655107846550337630686492460829794037676635571716737938087934321502740916630764272473044715878315920698631830070971158888857667708345322188566432843540513107084449848523689197794891825092205627211439477633590877345977441861543103676603822627033086339921880718229792786429299551970389049207078488844741824689360959326763901927503544700460335797659713488085922602253118818849709158112937338296506352516454963241146310258843126292219632270037867031896473650260528858765507735224718693661741290893311739532942073688619852484621098891567341196980970019448337318271932712609132555101305138647614061320225361034264546009950431490118795830776267980262843863343589293681969627108009961932759835705687346632243314419163203317098046051797517561295648091373351157324738790227561231643994319846593550055870243918956857035003385896912705484749624109485624915717145888453822149767022280557938816781330663227280662847521520391146914916260918342063686090346676472656746036252570154352256984504768181593100744232447031353825845282022679228487699798475110129478155609242745898250348198918910143619495309598285400164393633242482954310277643683261384191679638500609632567699643042487284193206906206745182005138412466864560946555074265409625925141170085186465152210303536978605260192230576624375791401177514546125150561080427484063525937303306339936731215839952803495523375944084493010160112746980590722828352648891781409951870614464710137920136571120578527839386731041463152102194022425087246966666053200647035235089670805990547130763718868175562765144082100120525393251058744160970351577848522469668937604020494939400302440964133966835146007914219072882554911068109293091581095733936506397730031420120881627520794212520679138573923380841002402439132713159112774873641665166909925522886921912158364149844828357517377530912171022679882735597038994412510418509646486669359313702261951647845277133606525766649088799313652398143037018809441050283633722791650995510174294652023025646656473545220525948666879600339578922806607798035502811289948635121330449623119182001462728237271661238654111184675013976348211722414205160517264724216791624060434206177766601367815305235530446134458335706527919755097852064946055198445424652439869621304761281445982581831910543785935681404757033011523011885587190713398138125128493943757425479204357727740116587584391431081740596843810597951136576272635678531544467200275994185413233971973006810432868211132489940146769723929902943113768065887296234274861194533810598724258069678289953263162314148542627688965902006217915257924253874515486148102697500939998560968479261341860455652674051740052815687704256211670892240948973405377416761599588066104177304440353027391757768432907853903288876090964092293201790869802921647944341518022713635668133054074729118433855707929674495808539705105175583377295296440153068388660185334679747490213749025461081203825037702769552166901601527684756228464636580979843373613075028730165781719646816768670849822033656452789013204000050463356447540493263156457440000479860334845641487590718939691507746323266458476523952868672678521120127015600833361603737305427545635693388801008494267852167482636565580670970522626028317475332082539525717429589336587368636716833305643053880360465328633422706774022412624314076866472646582638841515164062710345577364643883820429578928818335970016302273153360006978107561449134051348940492667122788776693624286075102442351666859672566776577315677192909504834687131433251597904252996162101642778764401517018883291916395182217787819057103508734725580423605204093146645969706400211331990517331383936409979163286556153809673168681675298823906503122196512119064201306123864401535549170513231391985311248475809885060481203822473709604499347640214249228890788878020432534562903833173905033494505309952391199392941901952902136821991094276709477083959118011173444894002349925537020120389545474297883221152121778576493130331545670492847192282676125426770183392588182482825249532072145024576886868333405035922583248037578573467305322143387379899407547719921844252452437349024592137620304924997825692501516708955417979713125802733550458383712980062821827083255832310177903739705616210382095253060503936223809929161143868405545671388095333930603676145163522986676077940587805813072067968064163193397838840845202814833150653378123616239872059951474426478023668654264100710059156551140181338960939957512893913671704127738513075466963422382380511277522980625029181412010237478602317461204235302708798722071068206582432406202469980815980951408932159963653287044919884300368089731461677544419066971546571893199321204373063634703281876304117094428188918559336492169954279921168957412878572205099725145215028293318246176864738707457138201125800135248624739521721865904108841312419610225902398361901252409992141268715098935817971957250329685981924000456756829384603618101666632137178557811174130295378847975301357215849701591318537971761664966250503915304640056123157013476235975104184678922978565941911532978715384242183754810167049976920655223535267394117056884742592466786221802986905864816745996519176503543176005027393798839726891542432575019044923177119445135931336357273915262789963563240985506528668538754063334476136648734507854756609128594749926131399133291367341759039545136396435894500506446556500248616494208387080982573333566851714890414448046588519029380575861596964845906783155680624383037542969888933969069978662958648171790164660627372848298792641105084306078314815417945063660277834764266064044519255460434917560936041542880223463513236929314953207739651422456398199743129810961926009794582216398864249670319212396866206942349480299071718429749019634151335491539671642003364187808462527157662162947482013115172947399524392076678829283469653882307133476129163538963584423949778582457365824850136364605303596161840881931421737483416825037651669105389061571845717029513674289099477273385915096405557839489251398880582076513838679141912814476372907452106995114440773541040731935674878235990636250583989540093811500072552544393868563702647210727611598439408458311114832072004603163871351328044999393170952467820843041174677882439738158850856837709119570792475586736676066516321526422531032027753749852748161999914163663021003458054591052325365943398524264640070716543750174616379749212215951753912486962893400149214853055593458325792801709822185088140531992810740265600202486908281620200794617776316275334308336224050146692238505148860305673600900845991499283292386913740635118119622397559879003143501212330189991829214019049732110406956107836922729109596392423682296295026161550448363833853526640649862201076655221442802812443974267470739110005624119100992457879695593877567977288544180773832215569499093860376130160371173002809998840316399793474228541556581058670767166974952444151975359472637087113389008317034894925406305272524440524108061713080168378492031618598569504408443817766392950130742647331990020492074320092118447632292629934947626589478966731422774171810056405680707423665521995135606210904750627510897148347112131324247404815581513521324540149921147139833067210722467923911511318251820060833896382987175487014451174198367195514115431531087399052638779607840134934042777076543999048698818139939796075601073289769537833782125133562698765036436310777169015462537204791563796875736245456416941076664483618680651614831833348541888284959499099501869939759569751134957237357588306660804171462127755457956747060307791460170541826621752768974010128815033344418376962588980191500774834976559812983488732644035165326134614192293191497917779934267472129409602897514511780657707809244543464121949213819124923933410067312395790216652615673879846860301927899897746288879911640078259978710622847749175017920450474741574049576071877909888888567737259058896959266899777148508459467721556819843446981215144185216330865443211538847730770141829988045749149784220268725042851967382801995557996565667649672765505984594467280862843041482111041473076335760973901576323822815317418638073251123719861671029410308767649550772489445832359561306439045232776622650696880060597299104939749709034205370963069063782607701002666427037881921057542550191562916273081870705933219800038235685267949744469619664871983422495508279825372530366542315039178645105580053831082523288231543531981704795977938854454808118349189233894544586078199598846429544652044712322583923778808193413150722202290054545504949741528397037677890727154883648855562670229452941211543062417422947462865976952095482332455925818454431364438852133035619009039052918789234677661292343568464948791712613081607156470814140795222740280781988742608949512524246715308259687706470324020446802700099167249457201021433844419015813127481203203670863405748933413300605985353094213143583904421160853148218785643887976559358632798842624540582247342577185697612530402102404749538103303632307386683882777736624218799787746507318393525826324542570914088608991898368303110888558495146303008602543411112337651868663153678001796973734717785649250585949424125787857095095095414257754514797052093326663054322144267379677081315945689269972566885025717732637998474566336324819573893848753103055516142773538030569077060701067172296621047186890248501500062678746515402470514228516103034338291747358400293218033290960679701203092210646314147690752524772784893425425591198285864916761824059274596945478873444211779646487145166653661062403976240694429223626699419781326461443890410128943638908868455822075873309260564606409045682256077654216434887450174452434149330099466676435761597979153388668945951230420450100402573889780981942895136415982816893732342379440688086903003567977114177969078603305209463885826736812659751179192931610196578482718954954299799960325569555058834995557305083225900396052599072115671740962755121946452357611300185643151696602403969103678775287771794084849584733753159660976139064613624409210201407508503372736655923118360742167726496844487091671917351268843840496489799039360934348199901847832802168434386808091478877512466551034735214585316584235445089850819026478755172737068766759430456609096120783747774465328659038203517528740477206063289196152440634322868753312599808306006666937355969191919679574388931074620295362371256667335195148916394503772438252159034751205218716535588494148962146923858368096987808400522326301174443470646230593154129210286420494769635072302676109596534540733436552359907817054782010161984381066904839839539169018744947723545205841650704878828797842540777237643036724583436965043948680587587704851539899979180026073987594674968940384822667259999967096797032247714996322310959387498118435718548770638964686640072103385555442658644662210780116680713417369856533059050702465104796989017663047818146114308941282229742232402541994771994933975933446738828496224823298148969040820116694759720508755368682392533797187816017725688769130540357055617622132767582451615450102709225829981879335419773008019386123356020832624990736554918294501187227423791058032890083072320999336371026326048692609936169415559755600222081200561802023031683001373717880882202724624135010374569046829328225376862410080341002079554226662209414470976449703150006756761054137896266910316281609428452688228470131902982670011350674682673128356895786791879680858640339310643157851681234539854426940725730251115021571989491157494446118686953231531288293250076178519583011430221348477739737273365997068862613254040941240606159185316733563881446586435480973912551955059466273374341226247463167387558529758689652576835915027640256250647223820690936677184150618603547525672216496985702251337147864813853685108122701767118410655307194843258076692171073634344352093362921536878465614157364763751862870395148431309491220214805223137161984996436763767470487626483745397201560688750603572043818758841513704613142065734941269006826041402600998292471759638999373518920901976433163856114878347575710149243929957564111941901777288768840078270366805683865468185919190632314542041714639352694669191792689087547476696120875584510190685848578010311970016680642206279420650406002573703575712168776797954178059957300353291060414843589509182709634394823119149905560884597517807755658618052972898082590450920995050700885217128409552347418619677634073412568240233332860693818619521773819262511461804159253009792165861603560089372972310434695581928275288570614669933393937630882209965219699723272896363968633093088136611131909325621602151094504253769724837325365331523297112895137755344228703472109752387840171720459770213113304867447498057626948101119740231989668976180893801936280886707402659080952525217462535921322995985655778843290863720874346641357535285987791671551371873398830517265387142158415656578155587248740588936302324823585233746929276823434908902625013606600390306483063727794223895523679228720097756791494461872804745557716768102577662788687102142508763908930534212676572940145605884456390706297434323788838883649976726421112940104481063492327207254397912793286442925538504933456139446039976661990259042276316453656501380341935824733249864541472803884466252821723560877315276216827510845121973511406458678940678183135685234843000104340888482944601506847846451417785701092980726357103088984094688029813350571685341836159824621246740819585614374172781767108185067726994565608346293639621407530496534789053113756012190857144757212833222007557876295642914499075661507146885852234187256956701297321995371038974814580122665261461972038505583372346693612858897960794491754462778348879464099281841468855604440984015502299234992673184626882044550286933462223129381034028553577833702189716510038664414386714442767094241722963899678013272526564212608748050982360238344826239942871457417691242337153780451244317585017122133598468490981782756357493190850398390871666277748717546895659640051733800935540287979975312581780743382995690144571472101781235815403604984358769097132265017846505000385140174423998143610712060858369697529860367200093700806751019204633362930721212208368007062603995129555733186706870322113086290270176653148219803336432240836088477216347449422462662803279800178983254805646985587364868288431085376397910687649417304023369553005767126537672658701298290467472992917085940291301430442318089346678124283227300802398465452497766335675536467366207383283112158869634014458051543997117590515207345980312560574488207504952573897925243075498594912760315300112490322756708960489398749509415165292822105397025396315111301213525161189677599821701033805189424078639352613847009485108273526248271684730300943380682417587711229188466409154473332282441138089458018678953616014502141213724902293077327075344587370653802474403044188827743487594086093123705524776229808036950665879465283707043080170308324725813751827841288424654566336539973686907622106542320601548652861242217833289659935088499420605862354674125675095069133070604718082647447866512920446287685919711178176325749484951545532556375613152707627795666089607243613232606484516845430765363822620510089362715423261525106394753387996408582405079241484770011625030171530533161940986896627715605320399736740211984943334322132662723815269468663649970218286692724448406682080439924269539401399291017053537216138512904416188789230506622046431950338079339856312810184336697540181861916876587167260075393248276496638977097969341319385070755588026428866002081176604945739575586279996769774699412691989899990234884583762112877806820707093829746983402880569289589372600317806193157765896480253575294641747721998082492693572573423708642515482782698373100019508886594651728529944404505070831369729529522951080933014983540191583200311669292655161681551562183401285422900849793948204069705263907341744177935396808334984158706631005455898499599382244176695821505319738985121447619584812745015636452170538999017220070339030474065013382638561932138927941247999486243342400684424868754606779738236092956442668854584042177097852921925774231111967853962490370190557450037581867254781982740948341397712039302747560408098428328803708431728875776500588203083185441188083808597133214487220612971470741870405943272227657220840672923897054355214511672679379031437648270230067426078471831823361838759342539561053830561371360565940612870953840141588442968439710692214230880515462508917817293785254479702192192362054554904803451228833617519302950904974023431363740857099260061295676269218348917209589242801462906535719889133221622360607825816775187666920820301377797520616978884672503302336711632209888162931751495486277227607867459066831124007927432627093371706060464723446802629473451013869286839492451596230757456127104440861034491645511954770587995003515702975488524856824453600784288751227841121811965593926166317482900850620696105530952731692589860384063401069064707927856766947097543164395702388921041333935029875235121564936971192996462026810745565389895187050771356852480394828388910887811011625736777472322011853123262888490266805271560020685407040317974395806106661226473520405664783547133553720838354805704317610007914583139595316735750143040439805491047772522826184046532389078620666245463446313339351937301964387730919714861923507489118979121475660796867468306501157340246823086291358279956299750589979656591051417760833423435287559773015954920568210775998714655807611918462886740108585747576861221362384332513778230224070161724133982043204795824270093080567020634257349781311837765409742492669110102185602790390683697680514890768445115060105694424943226678946245473634704428159874553023970616262060235176780430680269221799077666668577354672946470134454166669800084429934160637409874070255716092362750810958304112390712135826469096927034588315692846668606065213570124893553908527875150088829552469698260215408780877639792090349083688398646975882850290496607956433419451456301590132930854675725957204962112924469416167579431405925520108322182974081386592068368257177576500856839685631636916756590073675511410268415840789859562333485906252149959982381496284676924204699599469077749238660420589957059837233674563253419938189933938592625070104998070077307775609912383221007263242023585714328210387844754432277372131642209807084020437554955181979967176538296319524613615418241341459970117351257662669349959358675991486961452129525072245297255818800485502321864589956808392050899983088629004506653107379794814886857520371771565780524188624403353484296505277283514570875140958692026969041669372535341506762441425890892406131020748262823922022286414283301389693408006997053469821970222054834340033917023823681845763898382539537900571811935775475778527926525837205265445310036251727787650511754989366552244206829513630699620799138855463807738321184695252609875113241252300111546002941377251935380556903418909454184194866793215800434481816382454811998604023360681756121628687732393642285346551542609954074522921098991176470035383092539524733537189638409869765379615526961231511303502016042412349097576345394345993381327120638909923697178738671017668011995796027268637602560500483893478726868681812257490680338090920611163392447204807088239019710493042499011867574735888041667316768119322844738620373854914710760171093335722755904929248887972892875280058337676564278025168057831665752728712579187030349547435197959011100772340615801244570055700095228177628894042305731085505028142065714662044383469712063953174978659286910977016095995270202965059708296379678372407647626350986361237237695671350856145984340390789033541797191089872763188112595477238641478860845144133431590576266298538397112093109240362245840267471389276803351982151140668660922666821460063119229740684084880941231966131377550234714612614496169591168367872792672505566532371427316461702948577093444110076026421636258003391834952250003811625970686153898717616053393759159797350578364004243371719293981213979610685931165898659614462041142213896019545787388857082560178868856260212376723348449212445074031970029549157719421766866811228453496332979305934264358832915340401285740232550456964704578164296628698198347458513451069789586136730069355501641435805706903053019328240008845305568367428781834986721277702464019705972227170724994443394392493381034646134212110147682816209284627701013953131414167658190030032425848978101761172346155363802619439361537975973395323994331646317126672756718031012121068899563600096568954671985362284532524167411448751203132474555306181025124898318991824736271222426251378294008961592127836593995331508189624871380858170188839087439135984824195013242693672029175241768904127973867901858696719418276945174848675586006709073257044410778573762882403258989165955706936120884837596447782447717608135099940223008560830611407755756527894578037341032732025526309538551605623126034437958716096882316937007417745785776895151455182525880786008444810886091747614758621798758176297815178689062261192601275677586831539042377084685091620501957137535003777361939571523452831088342277668262821436706597404783087081317603118747308213499407609174377678139544999334705918170273638058784951909771832148308576723964497897137868473459503350019073908372109532945445699718701940116550084478092975900032456953490408610666113409486408571444169277113535965302611912173877489281488684095646586463741640864119587906771421631198240303873374914396320289254209379319738565928895867987467304794353500426779592386606188863095154200913619064736169225800919410667077957592579172691879508190471119019384389648690235870667176598799629654544971266272809149612492821574196539677887232861472545509240329252298890974664364629942015441100354217187970364775474831826078366502521975638238592997686751759078462828111981036405529413383764615503740990419284502635746205859502649062229101436693555390937535572095895972584647436103446326287767169988533536272719287624459014936840079391837339199242429077010128048337752417003386655696730187691305384172613979548846482218394821439581918744371708260482236033410080787311262217133230291253131533260034757426425366156459161844501929906315315232666120930807370258074163111256164531155239689139082552296433424102307427267487799620650746106745360341540055779772513824767757548202167158924143435973065937160566608402534978998283659515571718281045310734256173617964172707783258229666420811309474199057423186620170894650095514724240017081454510538262954406113514451334180244530356660845415700542729423966539216823642158085925828252542599047881011261924662934290982922220954204369767934315223261289407979093232208106860015530805332914324982531952234957172068507411209994206746158225188253632350029856059164140840216095039934423289871664049939324824607302290917460335364355248659632981239637225683358432979450149621491078571368426642126855602413236819626793053429350197880598885495669403840246991953707899551368975683172947432411989922139493840829097990207187362021277121365056501288286864597627880827861562726560408625312972658643794090961985386557049026705237658529671142863968926608764144593281958387626282685903428964011008964495273511004301095257155365088187520910707255274986685744931464115576879885591156772380259600934346976801378501095681144446572881688877080844521817465058127545066768849681219298535948075288350740339619520364272926188507630106848611577724922256156386965212708387813338293086048570311695443473533992339639275030488919264191506917743911609888303476505378229549276526182234594455873200012813522904034396324504879802974852721138365751752145361771520607911866150402504099889368349361834777433037990857832625945170601642434884130778683991144078912598434347298394616163973987032430339091419942587775245438337262296405452113216856772109823396514115482295875241923727063193712197800023236705701374966688068047056647941852051254269259776469902311050113757660462454523875941604712916723699850909648978995081137235398590301039308778664340659623360130159029593564590095785918903969794331308617940007540066025469436095168704378752519198286831329560512136360127280592969520201643954234911211510030609300242379594140182950536952954809402356050394308475635289508585964394907049570802510043948089725065093891870341040449907370414682240919750815847986542330789771115850479541081014560283693574688346833785143364222976493439954234317760623724417192598203336134385399563067361883453428706310295412628425172442543492500998779357342543580970648457460753706238716793980617820897455311004324901701248886754824165437208567259789365349818896219626044790448840739726483479341338857513545947639018946825168787509682655814463518630113302676932421628176600692980538385891628391100081979637757894439215262303735789186256750732071148007604557642053155192793522389991345651165560721993353448609240801247688961313362232167489621209714627795363840325653676313603794948861913834657183926454834693736113134018181320908066764373372428466529335970307877051440576358172189855441026926237998435850700084757722932410126746304343146618374590489730626701429717456851619342944509648511164906683026707943631619945292879693872604943793284717208950678490293959467389765459025762540744062170186756207126432048685558941010551487847686597830274020555017434846872036222877943592103146953809919938223846024648456618726430352648953850966786323603372654955167474622111865990495990031878155741399634829690802187184624585129248796925082881244764661030106225609214960529436034329307104454260724414738082601917595680074655717706753072051192960975400096944486575793717488770717237476061058211602685302988970185109314693234272548916407196967915223142802406868330921165105888388432861335499901117088386122091597068289947623972687967959393165268170991745871301159104551768960634108533810455449550233014571317973149573260266850251222956953116738572482170092918786019007666423570190797795282344606954634924139957165761353126183629646962310663989953663758565318157602146578468922880356816175496271859934790980006237611018243545609383099101689955148119910899980183861665224061925699784839049329338273843116717398968794348425008321911368877821938568927294593432305765206055271873653384246069307219502326148866904706896996850005434194050543523382923332167807446053792564486019656438805582075932493473763795391526839394015534802623056468079168390399235966362882916208602420618351484491597726885916891701312634204658291174653748586233950971903085131149246219504046736509243732763946985438196643104326053769634430680834200926588086826172083618198050531347543503615553074084946591820901509652782738873368616203281261920115126269132815516148583266185608110072070853256965595557225877294403392611150928301616462170068859557046781706041482303355236259983735788530224702514877071716752136183142257657276026442792683227363838713491528170657301060204276588286890283579971798957118752312427626356965849555704276393177141250540091766643749721262671971257970405496231887510544287590883651199166087242085059568282999957021151169126346001811822460515589368501881311313089233313654993460337331095289603789411687222107108542978433949525015457363033328529927568690751627164560012370816863547215959884895371098916478924811815655781683393446255942376054109032430920258089154098268910458098201008495380050639871847554696512197677839169388448712249210307801509928705024568093639512325619255556651453532873601488468795459481639443650020472850575787898139739878891916539752700995274880520999179794009651404289285046540762065906427696001925447040544419988712137630608199413592489143885074097218999998588819569479563079152666351174935609779765441215428465336117138274852648318871284862433167873492127939595600029387402950197475017600007177730810789922158365318066527981633497304224578252376920570163208927988541820271169301831159889961544424514869627824100842533321481011875467779282848100821068150196061481264541509473855153973700574469100222644726901688982922381277971275927854374798128503891809248073654863751989783811983980592303355862281902899162281866355722470608786480881034304342321460734689944656396463943282118162649161502633884823046110719505545302071141839344295562343153957972382939871900965131039599965785091404568788306160093175335548808357260273073179110468417991398056542240212806357094528072387521943208748454320617271728632423732218528042399106224208569960548016678194815629400187277991379959145308152854912940194027127992376862312142532413680676037105967238192976120236509054693175955323942712009034015947841633534192042925952673508726023056757075396810141456514753176617254895843106307600267716172061345912428188037719801213374283620297658936140475387497876066971117398775749120922647946782322288479043552555102702919200903567380334129067273113600889042279123179820565689434925145180662707351450749306380829726427156248007962654022559215415835222494084751806064673664904006460168729406930688845598690229008862179644641750797678593459112465049197881738440067977635917011365451530628307707471766639666712888296800313242103146194419377199943543982709535435379703467661886480878947909055141585051939133095375307595524226513365955553412909969227750665842021829689276985882786968957174085819086332704089550526813851939283579630591027203290485057779830402725651082958421843317698321956277792029042834853321885988189849787205764676180709508651478459769684712993281941021264352823293001599694387133474693766543554781965220593009841546604405447861307492391229689475100143987270744601028011146058543478320682091852025128521919742375012046737799831176213698238456599646828236008098543300724701988856471933902737779573448699909135448062377611088593245490935415250265015567230697400525602389619877698036961992093023341754106460702619869019836044475709728204244505763627797550784629883155189854366612525431691669763382060815866354477655848226477742480114129227499509592252650677788760615160412619499678628775030158427215220841038010430757752076996036315846047860766448127430244706862453338791664890855595268939208824265787315831812248142227652841041061835501033847988793234645789674096752760777551567154584670728333121831957779325907372902694424507484038522361557097693664630543913174056092176622608654016090924153535062681822460017961924826768919828462658385591041610521276001750459986114880747824053962522742600225216931738605896988926611128670785421233963407996085938243561924328771044246561037309996988962173358219498318795352289812208954293091988073518940092647862245341986323769904982171398071805385265707804559308195663796395201063515582835335044642986084973888837165414500404138893337730898282042279433639054957292104616484431410810866750356511578165638928576984436160117344567894300175885256355527459841880625413814226443339444553917934417237996520232543455567092537004296062316165492131689829775263902232043478673110130888874519296274073011650352583250198746085115724110373927450100510224417695897319465863056558129697890280230329939695994930552113158402367463557736653957292873242817062011055783306237101687492011136997647299725951046294213363953655066524315771653435890093761691823288754486511058232683243081343329556654309838027475671195643010992150948997208213038107847448501771883473232905378837674939942067077410651229167441670724437196319839602634613354600356473286909688609997899692516565722821738320855594072386136892819587037317312057638080151230877974208629811384989752037823173596545432027750808808446597969985208832951205809595619968709550600775016894036808779491108234454151213924966634590883860792936524963859382475953254127929185940002736456423847716491477288844658492148252845193619140112524095328375516255955077365937737897053012088603262424471624811474397144418372751584704601766806087503778420375091381287021546833771348634085600990156529275020740574245731753068507398189758484737983308591485734821097646143956546188402853759615424285016920089056217706647760493927508592886995959743887854555330212405259949671871118326381136983524692154856509142268224055346884145204178375695364898229903943661343942887745094933786254490423255792076144134903017257068848312890994430953230903837466550088269193074441585400407257133669146321199554431081609405134255471856308884161635657625614251897292745800248894060961555917721313753595033037064618085477466618437344538386485464343390719935987426223483725402148953985919606457251063787292061420876557670264250883621119220167194512360648210572683993407738773280660778201321680400064197624760881735827409626643339173590418664659487141831611629076788223666539152988033259316261505694054518933403910397955597058798839161472807315118343131435765328023907506766372066953768114958545902784370161627830921454011567749045597504544888085956681182875794479449598352697506472896805808156523917797541466447553520736693346828156811054256410830560870454779096939386264068020788359256454213588714900649555174528826061120038876854468823856790965636997132588825443097012906248995941688374067908071535575340278242681305953962584276095500769844777316698622766855732162122975114901632512089199683903571245527517762552739991374436962779648476686242454354876850174009064747767231954302353121930738283972276765366716714074162839190425371308671343042473471827631068620842262892068535706621703013926584323949929603843151140795318054066923507359161011320256169068773420671704092881502742265728138580248875419930968140623017645238260142757533964669132425857205087379054295105695770031618942018316628284244464657364772171507394028484024696264948733500612627409904678260561401686578193745982655842459249063855853280575821520418559369200422660938130858218347330699925970340396401195233287002701617913513793107150784382649333695884690188362502461179359296312612161928465333880388715163219950221486258459627009692177150668561704103335460272708759933539150197761740649561154547064453568893375126883546326784966338680558211092648140318722253210780005060275634878497177850361957013822485145034953536724946574234509538659634493235215191180926531184156095239678659082450330548766852262162700404929117982851541104773991836692518261920735327231278334699297000575938277575249517385960456268394447093448029041636585275240718475102927249528891772015812713527987015215083258970463445115437165393446370302514697376819328554083542572477323444686408356837391602560822226869280144838260253224809058184880338223895875302584071512039772604445662182809543549105955677667045180062675365382430637633768380175824762751811785606674264639621550574263812792045195493723198847943087137709592240492131990288230382404779067272640578165961585978290019957416034438946765129864354922712311208579676047885328038703502859507194692813918359894839791074977667706573661166390264763943825893932457126927285382186743783686010855038313699882262797623840348310883652152512941396203445082604676675144953219503250183465347736890395982721423445730730542832545100308174114868734356317240903956444794413085726053867938880529473257318102676782043956511446630365890908669039475551668775228774557062931700718082091891293632093779358544508821850993956347855410130778106168056161525527612209570253277655692964433956588351379357955845170683788344084991481675600559135679635568906663582607971964060114102577625455677824643674472198213735630105962575305155258507550905120005908559590098541604528595963299003746548549066441464831079178173233991703810459165537760281128792128787814383266628051881832104977315304890218588075799196536410672072132220589590157439001192419054808486168761432511076858139479879108720846882230886659474636632943712189475291650690773725117494875063288074830058875053791218918516764521546878234551178553287306280503185830728300040480637094081369320905225455526012298750707092456410306853690100018786806126621914788291372838071744589600849236885519136715520406649232322269613151643550030074296324831286734744152391447871205146504802354982869079026581323672543129587448111916911080796351093025262065187108498373431439885441074316633044414607956172408014577402918008954169359048687104157184379564871445444779499579100210121525300390513523800151999887491522566073293623614121723620897818234011100968897946052381839505735904985688976408302188113399927551713063157714514443307790847131222717182534382041972485615597649422808528614454666784452291772330239203179114215595850236188714936881452683362279106915571302552489924459424011125257898992852456303534754577705239656949427501778660872028947586982557282418357362613002254670615251392834225930224520341805730493150156136154654222996622456189464775210162123974235315108195084156586720236281827187662111182331244145746662897634336996992337496217808105816324455471881385872989862093573632501454519149757171669098153059257608427783716175073944597773179533127821566514671080165247885073379448701184871311813547720634685536499585078464934380080942794388752550587798161413369767884050469214217075393500659541076319793946472081832734307757306945665732957198251179171509913702898090300235644529167692764413797864457830811866185972506771802317763617316347039079455086000188464301305709224774917999802485839326407179450851327663064894984625621683606997098908138496667294639547589948618547516547850210283619704106110822312950619634973378701944100172256200113646868270362740436495064651277756260228244511225507447791213828226503431250415126399396892825480330781762807174833813748409090508611908507024904036261449334033652170080608768886565055248980763836834030048795728092864908061402693952475112157785332034032570139246282077999488551060000035572978513503175987115116525746698586840180522129877088155097006966677527392216589766193047741869741779314645811819247638837345861761897416034919532043453130915076564321312856550684689706912305424204792624090056718205528664564807007896238247207553233584135155094626561928295620705264831363271441875958473194592291608247705047133771702268389158101867813670911376616879526554812557438835492816716923125054582277634457108893487892969814285154010314411254776575378321850362081109329235489144728475590080886797408836552098430401476226529273727389957675449165329482801238802475678837117061458021104002252604690379902434047885312627853942624787853965800043735319173069236279496055564719993942610772971861201268053386140753730295513432700211102558107762002609240813203391136931356113964977089728238439072420839001496658788798093310750457823692538103027600352529555389836195297155813263590518574043109351574373729010421097821508197698362226572877239921069937335052045176873239240173943696662344357305974186742236895961287818577085640354037502004477161894257018139399245924967577754741944069468144400587069744280465094188130875687017519792608685870905354243442777929137663526125501783939273171496506934576505056260129149645220946117230045252496123454559772609955201838651067044616260540463599096882117136381548261282314349879208641700687904376612781731262020829063446161307197335077086035250792128377893703542180562470026401987035861855899105666830790100888531255649105448677663213729948977663388659382162294695474157336030257333783185462475477386224580371930906374469391675112979285521713773650049813253997407304968981275083916242477777207887012095563699755841124398255729257757420276748340629263678480189667418667495449306947332900953522063680284450365279340707996960108186101614529714850989178722604983442824323753153867557214306884882215703191398149327677246616826255059085733277209698645971160101439701553577220290149173637044835539014574672010382829281530708227706975353042513389066974128272288760335333989261334459114384669242097998832895999059068023604032147887928739782945371318895519659009974506233149691156613408094866952187791842328222696332478935929961690601007058996034287659135861708196855518278530663828155762255553950625761299726465958386395298435935128816093217861713957361267865230727699025863296020979887537081755437794232703870985390057947898207208507894803752757642747835909145834112519857212960318654917340848066129925664665903008552190314138541075316773555698912927605367650463519807081145902158807275402952184164885564404892132382851034810013650309291684472891984506569161796556269734891791198295544305493249068294509077049536459225539949602922309909643247862117316939924283868148647111962584377232073554452223905568292503315125084068181434162003453793410897517191529801168841996103109505201638355517572504766477383809936321964762895196436128326711486744467374642525681564804011923389148518267225057571140145499037030465981474947622584525003834403818146108638640120846234823391279071912969585312925808958312790893189201062598949218663548567822821684492031192879550781709590825161256673485811119712143804604707373271062169880501061694432366964504127715288067851459478581730025550279848352144595649339708218198136745219950807054366889100819434535996479361421328414387366834534477987790469637185774644452891072407982772508451392919920982850970150869059440134645474780885900598418485269975164858270340221787763893800804134642978509701272170959033044563669715380437408626763603836274323021077853389736944778616630024996196106193298935821489667986103578455460482582030926586391102356405649838010976251036616098492898683368431591120145685691265883531944432660385048265179061266948296036465284038109772337406421257585406479142767877466492766697826978938482359167622534277962328175697205143867855400085349515210165434818133271904249412213358691259587277145223431884587927812062209699169490608472238196254161569354186030296309903870508915426689964905466395335312552640202504935941337396866956578387523364719254877984881696404965842878953693001822686948648511862322913404170879826351100865704607287067891465185150059663006346999405960193424476517168706823801197108938575732208029853647149411073700573902406861488073783746857085549828703496157453579522802434050538323838400416028992089718754874925469327935471659945327400448279567509288983938037401725420144202866146942789286608867301368966925404124047411489360191527978431064715575527794633333487798292909693565425815616432549160098974033333924156176717209345140564495499319106656255024088279079375014532671828284664969769120308382719130110763993697693712949523695318109218886965471555996829711331713146727169083175646422992591009049522475069902092059477707978181841584544724429976602399041189057613422385244701868713598055671420295155241046521200466127179818521928689152257254231367027984360639654245488442962908554956831200286119035682133556109570138617473249436276080697570680720323545888376383468972185381237741488094698138994382818234278300397871300571218327734766748414850949050699389359854284343829710105605038670052111664618585382211792608788310295754478166991357498500120278807025022406085337101061090561918269537755029087738935482690871733666502063303243207759135519843360601245652056915279953550489505634671826147131266702030047419969052824220976812193546161904900734465365559500385544348141297878569083070939775577876867562244924172066399189052864133195409002113115888349535037030917709723891863981917829296719134374107174419403409843907996405563769518340403674206119265834971997716704726206534054812603470563507429558957727332937969738366392611477716573560376589141006577292767068174351692150885036589979399267632194386296428882580444904014131592780608615173458305387741568662275412019354387954204105912708407593893603627053533974106243716849013293544234360184916975610602016156567209085418119873688705891063935728838270234173125790126469296636691281564378354414311021584452313566199380051171662984105992869193764142183880353701250613537394278790514072521533433360637563577078251324079400633184677765489476762243970429604912623184654032219192884295443976638177440473573634164015756636153605868651795965881890984612333789693662215091161308577832193540712228902777020616326988840723586602930869207800891478650953382114750811480552397906981437938102737163714009954462200939072452880021883585186467716551755394080250242194439968248411759373631442556139693240258551118090095786948839827475558152476035945695534547695603171050021048253156108980135407983642977654604498851571829346025106158551846380830262089894295756518984965607917292697295694657343266062098136206423635337411508307969861079004001150225140040394910763431832646244022045109489351839067994740113776071485406951508279608171427943735992432475700948753160101302298289499176446468239338421194136334026634177772513374521296178792518664580850894070057000916309324035992497854429228168946747953058179986364025278691202888098341414692478748033676509469219746612810954095788713773446886629949108084541771249209045063011809824700777385817740209530246857336228545496311270168664644940018622031910735357256093537295338788338457859285856507610847507799022997954996246379240950891812763321558116089722908725184676896499090189016810998445747626542983966662333813396355550912301129927423341718315574254614701247395427249563770327251720599965348221777986118166380706959252494895281358788958652480326600165783759461671102558070656485321780947627830953645403714734983315636168244667796747212042448015408320952121988639259533468636849110442644748279675750611669591080041607610505919499356426235086171348521844143987111942805159478999496939438639876791417541646250376037421131864664853243698462275097128977480671683067637137273793475491802825650198387718082691598040423787643382399540368950017079830980363648538021337299234617562849644595130217213441978116868894914145374848042879913486092201705769206102226197474045325193759575255180627153240787624571518897468663926153029661078018631620454271939016190260842009894145589526791579468832780858547344398660969721484346140119620633359267169001605213288036376805975764973437502991810311230578835125797179709385627768828109331660897892019059482714956459553467429097424339226557442340991471165527168170905619881367041151041391954099177139705991214588455012032480946401787716481589994025488466102549022144733479577221942005582999186430041407829635354933283195803800909827147161552176343416672915785119866741279903385173783565440309712685400735161378011654835661248311199234431319627456282039037677628687512835475032438618189272637437849403454523176706627115179032789874085339429259547619438479326841116167154160286842050574464574053737520244722490038839924217255668293245156606878680146937362844177421017490188689295019330013465873756549441815870567965236994336509120766257976943949179807549724091776613394982544669699963811298773790273734605063001211717811905196168829404525963350894117495501815741480370783428717659295958446888503732877495608716779870445195175728313063741094662802329211786841599429857193380654669124625805494960730727458719394433070555969053709445105516792072143766117994665629347500766087852058508252035422306839688037602995604283695645601401697793975743327172022091871226458528706522664374404640671922522935228316061815566417636183633962498313922080033775419565683000674042176380620640003084867904584629369436098255593241494769417611807219991853437024298642422134839010207465204631191955773433423627165019765016242838931537811554394440055414617461328929687952600951900248900639934436606257771297604910252469070683088543301728189903916113643277083640482134269383724509674951668540039095533503950434207423134860828802159099807937944234375407680432025762999183422869213320244627072898581658202801386387674368463572423398789533204274757460178620125674343903988991320509082884766392495006602844665688608559855617856255165760819494905220039436315123611157366330171553015949824521494848890685386669402400598817960360556963017574322524480123533357043122620705448684569321146163789701409182377857738696393346177803526403790094101981429035730682156573393503737627739397121653842134208077525378909710267129881485172793898627468143242147017181619992455052499248179870428810805910970884889186595893870036073875599739821996042334897547556976317862370963697651061924544765945262106726890405234665225768670196543385262107488242095658942027507964159640587270183257697510991033007638422535074745972384184881860233847604411067857399819511582819067153519401762856675760546315327392793664851651145842102744158191522449099337258606550120813792732634027759368355630426442883016998474494725956350165180936889008050600259065216834850656055304570221192784997423414339651432340652477443762802340841409164620948985210513269604964828745264561903195716987204080940560057201186609474153823161245969547493667618645938648706711384023089018756624377484685739680746959069751665857484692671038159339910623132052975129100296917895581425498690936837551338262388282699669854142033785404660543574237104929020614423772364985138691238564300617699092739366622054508628420445367320923112811453957305105331164321443341669578995150735262932823646201326626081374727770048548833747195942887092608134102743290363379461663011698430246425251045849652187028141736395125496146333007621415558566235912540627095654407464436218052912802009099855287906455887073559597485258408901288542247117280831249754441801727514338006449886983431553658029994373234288473680108965369048275505395642311267708049264402924254277600050387199605171917708614101095643855659206420783166918734651871158696685771355620711283345217321720021325442729169104749315147411233419061055220909597987656769753890683374350980012480288135323233686566275750199239342094804365567283743953014363431433150495822818887495367932630929833525370216652182399714202270010746332691266998533685301996392255686541400319387231373729138371305399449885170333562651624559680168752852867887733636997679569787331328065583875093202104977496553306082293599713169282328690865022777371867682106248364164329117505609755505596301060920956312646403931491676320964265909097398454710874228875808954543178031779605865769374797410121869952701592661265083186742415222871379262382294603689314615392189314053001459949100203541722128718408540522015495456119648318846909442829329345163706883462203647893834710190837479086286153094562135335135948358103247797438551584497848518685844919457149660588501668644394034583894553931759312834866748247570874705396098673863591347602445433209923307184375056617772729118619342856528004088699081550386549501786178051355798179174119022301802808433756410522045910898871015448655656624045060041440827722124747137122418736300649130925172467092076686879748445191038260456410845509786259160719584484857253451157646265852482471186654233076359242211159438298974040996211163601181931589867410974575938510778483805849136201612530837357194949105389276284288920482347544242171900177625587653199480816122436452485984330698413228792713335278761186166780629483703802908967255911228416285292193485652767503343148900990160456292784761200469251479307350358743312459328648277954553748429919904359581646331169757844664241420317633252016912483053231264408636461427494791220252061144912001354440642359020714928443405808914295544986377362202223620326031800259748137356489071331011691437901837023532806710788135695369327298141905613130954119522231857650386040924403467230035102069832134468227109580866677223828492683454546465152496296247166016141684364863777839790438932655024615753877073376811213334179924950779084510353975129598967727097180772669820558570019351473820152134788881800566172024949581314178596257143133662638439419707622312987301351612441495101430077758542816787707903951294305580837504166153249532539485681416570342347213414222696863656239075930883435368726363314558492625616220932794574106911822198769143858060770260162355834196979299019296627376971001654793432816951484491605437822383043218679601472622389799446917771794767624310515721538781491281766196857977723703959283163472801311811222817830817248463183821560510465903996835752436184078697793304684420115730212293551303641558526645167998538414733752759234460934300883209441052234184162259668481654158898601477686665141835048609878312478158688096837336923932228597628864981446279060336000302429210253751947471609318842838754508717196152087145995592926320684015538839791129209851390163556497831476113548999899282995387930245242018658498035933694700901312059657567607297333905424564618564676091013587893686078318680441311025671689616877754311668053385746200402499915937162158309193766585903375317989494163106473922789028456823223211451499969803123723028179349955968237835042965815332072887767117142689758734439122110628293724174261123494824333289187856575866058194633451723347504582999532520251451504773238750771452752932408158379073716310595291987650163367874293895236504167433181200001141823594120213429106935113513362797011345402916708709800869260266708340562663556285833278581476460826405585463505305866426400258974082011612992144290074260145413525088736018423071599934316446619093319039399629886074856867090420947473985058542144616730982170334802121086518895424512026173491794149528341846199503786114569157916722510580514088942559460315782588496919079209775498435137583446399427305751829557845483341026509758713256070461610128147954183032831544993628924015594631528714819105614547780706694635937174321635623132275504113694289498810999769829421655384250847729574365097351635408386531355918473476099310665914905352148509332547104860510064110753191768114666488531914526470966399355899250778350194178820299891700088727098031602000287434177729801953524024684694427414157193371502312949632998168807731485552349157725882521703282164375203323260488755240220351718162154532375036864919797513928146526887572522965711421891704914237551599995510486400949204400865712002444035534193006955285398631435491519098369279976447901920819192017388680409090856322335235568248825473814378274842040613390029107844774290672512688969546406286868103854287911676514940847504346386767864988204063284623945597129082338883173922697165577362084455367476623715532208683624636735036955508568701164129814513797305178626350817973502645641365640387962190483432273843207289006845514192304358400425823808160552253694088399519529329102190669395678170277361517038850274458938345488231909340516109151061673650021067313450272165316466401192161060597439446165692928346304214513189771155998874324270781657826357048308169967625716824369339569684629743392728474513648008704291763494505521806087872261879868315672573673579478685502591239248376421273160725561380379198971156635777022690033871821160811416791647658825096889511093358997202696176349474001295893306200834065846542589569801278495215418712446583509215883060797111573532832542926479154628350982367428558591878626099935354659784849781464938061489222573721815671222493267345235119134943106646311986210364784408982143652582885732175011686655397392316410073487908067243609243623511271114506489605514936825735811614758284717853661594482006584043567327598575649955959884372476375377902213022495969540160039605991387001122697744573006107569003633410865483725099544818595355505644665951975539092379559165319531909393152203931873508309637254315356908848771209042128393474525098199518956561086941965126281759303371072658980794986379354128822409678835816089833524835336590393646754520928646732207405839331399266643685609032907737891676516560938901314524091827436035018778264714976519819225209257228427330513208793714231148311797942734338981329340573641257399509832618692272706486556387874335461935908051437426526976604278195661883137517237533142789154479315846737501152636288007261905073738665527279590362099766622659794272168609768920615368144690742692133098395911474835996698701120462705246612704126629057193383968455200341616554758846927471983866924984665744522297807741053831517892165188754946539009217607340262956139285659858783581425825041625329356394847053181293761610487929176154772672377028703569088581435375741835236759498411375894665474243497314042293806691340288691423967165753299995244094073447702374286982346065298632269708112954935303258805759408942919933019057451211532244905407548616282441400940553106594996481982380773858016631612926663643582762292576792088340518132823188713314527373896998959714767622570031218816698403336504928810396890535787525846672940730330946732072573912683515598873715417518865300451468275347425699366155094219464407754869002203791452275535174810107493804948313416281440817191640103635987857681653641696721761950923789974008710552713144864427993086891865254305024065081868372507746694986866595679742725447506809331277104499982553703817650555555261208569162612948373995736075049998864426207576774501033954656176888240595047784459344756769711496169844578650033001259372815984026555483247129629768704504201181618107899311905369174996474854350302716366109025574984419457523330062501407365683342158119126732350124008384158209353159421054205438709423167189388808534342131111634699308236372838253653994096959268393707743679381823096291322106393764346764358407023804471187263824289088909522491343515469450154004926466029328238446309787899767119433301150516683165203438378604284819496161333252984385144658459088092029445063969925112760617744893526026698644085559305749846560952974353979162183096060338744967470862719779445295220117835400646805377375732592934039508629233474054360594992291603737486211790665464939438279869919546940515295444380180585112398292459340415282348604458890394392222070827247110820946510657991174577036842060827951425203231578138479111489808644785572636118266969879462930466451483517486295454193664900607261667996541640062560964497690480339910948458354079014594099444571959586952462983265183059526816183115345112492680371767092184290408003475574182530220917752138902273925498795324332356054296195091809706278953483640209616364259180262792570610280468253910362364418696201231599892798570587046681097118878502010280709476123687844930927910734446888633135539793384556137553983306602003518354578386866928155294517737928449418039934069666852162330000447265571217269176120267830177979431244990606347106953193932265884509668658892179488535113136509966605202346855203098482869467687306794724835682321484327970298846743383391848691292191552050632005448906375145408080747984863963524003923867439904874677117278419147363268313061840057190997570258043187385623295301992743219640849934289250629548217390264763447282814126752325616996372646396663763903615723941180279766512205244720089370482228782907717844723623577738724054723619474694439094511213271795645872133993125530654750763853696469619787329569555718102271680236864663446380759881076988124700896551060655722941056146716641946558539451597338406301128275636776118883169872731873789988144255637317344632523733649397931871936397023152747169890664716004843886922790402997263261269693946848083892843847819889802509565075506789786775168826622292004961285692716035017433254490562500660088400298975457275259219117862519352009449868176186921234115550862725071931670718297506211233015577577387847856327987645789442362828986138853591577374440548259019647888095979191025096908513967991131004534672626175281699869534694687645341761354590372362023181599179142971509747321480709675198789446463539671308372630733989409174143496239915814336967770135068085042556792672957696554817454566022197582082797131842936803631357431097815656390322033934363461862497543734755865205314692563049891789033769922373270623567599730920379798192484623296761312065987167095121343769906227426680812539324237138039394469823893171444860481716796448730765710321980127144290466060036865266933719939319673336360756225677399324545793858754403039344465215016377483962751025373761988810288018008334507018245350389720935754063642961472622100793870235679086108973623042655910746659532525302865384374408211932725451609073091306684647253111406653315238372623664394475555903844395951140062722481668943765356343484798561060306661138071331264078763354256144788933802298732783736493292217487621069479133858157780481665052491335332601260409688984599475398391394400833675977392393788393302499769737962752895942820710535198337554143875180695838673266904083144176791613816834245265452738011933159700081855480545548400222845439660283825956984254078007531353196151750825300096558898555761711310355881372493589369720002956752283556712744782324038642877658914032797571686229065680732210593592922386159920177268559126027399745771342263007967615852647297600337660025312728435279602640918214501514101437317449262649671941844827998965678231263684498812397186810068267243699289744815267656042553552629552085570879644924069533004262386138317230717598366300068628512922137569415200632452051754508360526169887671163409301407351498469297139165527486104882078778864664109813842064966012957341960461549389786321241835558997732006346017994227027253627772437266639056454738659293165722000758421937831149030102519957183078463447857057082028986740381723870569785444922165180416463931498156154019213472502495153881541975075292819504780943626283867023082533203196179682363329990580017048095288599108791334863634481319640909227349988378674118953383476042840684047679779132068744101797313240240999805474330247712175962999876964472251128485392354618519409484558820145963042821774934139520789665227307613559764751687132538553284440183038155985951488509497991989971444066114287426369489382092441796253332332098162530540487869051590137454526970315236558245213271668128069321336537018928009212333129311692158595226624074344990852367533302191927078365919509603332561845501571399309705952865725974349536270135444111892745915255233036274768660631249044410340335315574895428307756758203438131272754151918608307374411822421973494714744578201192649344770902581070217725351862348521463058465400437510770462415201093294355314959225842171502628785421413765853085289384563371622634817872572055756428075124101863349409349673143124629505690864254991117544886387511299452582073990050446748164667531281295054346660350500336732319292639259750765393490944155759862826346836924024240848646516510301192591005864783469832326517337641028222550811803241911049924049498727077087730272008422075418336257622852053126288173681466979118937050168034341033256127456589241382283236072277775582032420953738756443578628145691415552495078282003477982007070125782806645517356620320582695803309153187432955108189093695324392176819556348938468503785465071890883802727492074939133852498574444364867575596165440132029040042102265292148141044455226874051154612014321642172217958057549898037191785598814140043942002400398317801995048032956607668627013038467584828566875600028900754416954745093328961150706171686965172399906622498427902446871267187284655361980291701625402202376686746317956307484951186153324907951601796432120055442135009170679127617851277536440209021095492600779645889433126997251142701039884800651860234464090899697969535320092423071269128783923213595058514480019666864392626676421074838614699918585877733787447863346290187474874633726000119596030889330978778999023388218150102804856318659855730478981014564037524193132432480095858181162640741857384730396252020516105433310613768049091746338141570271541792005826768323084125963647732806405737362726158822536899558315467158728354760034757547694900608639980968944520225343530207008649608448159145908240998752206982136964106817077757046098981549500164966225366531624203407270721042751651629127938745162634659252983907805875805609423921050088873236183380489616606756195077341636920332708653724162492480434847012204758057834706381263049308333333149679469518490324313014249210550366125353843149259476487901180182110031568190503747981136719026724650609435442828325778437173373474342868890114185798047091722510120445983671401429552525865894596456508832480261788113523181270842985239499747831701014590835276139979186793448730117180815193185919393116784330592924894229266576525423959824051724109446364103659488264709553790512922217082480808466252272190485139279216882664510459621505039136820248899044049704748750679573698670032919811886959555869405996236688865947087317229432670063355964561633785183731706250635297696519828138738958242095708314828344577978433569672211068176724943530723331792777698698645031436028990547480495796148343447023574185468171863352565804629710303332194479983163340464452998406489608386602441079420448204322859932049368475758989505655271784905336230149501412956905669180489442952984260316558988695875166664465105201889910237945693641817476906115930977943044048613613241837013255132640688132166763543220904704571193669746670587803242550604555595777337812681262420296620856398973905073314282578656537313325478192770970615974849680405730333856083696843527326622224420333550899067292311850185680041353511616799582003195576763311132058349108047205292526446352864090031126949147631291054856215823925247920592392484165583248762758110875791506264390641625687581432950850641689961824531865412614301814615385718471638870917699223433112532777638088265018001944642475495954701180602128446808779895084618619286794291054243230268019326810768561854339403465956666235763018034429425012372823315125041264472380244946633122704314370996115653855297152236990135682402876450280608240133971696500538412399101108198636062465816858229974794542238365883674712896947463552501234274926220476197778078509617359559291684526652242302122997682574029504813958092753223404869443009562303670289109401074146319312421118780719465737341801382911330250417858298342396795563322044515504830641839449127555252286076347509229312904917818775166380210442949467250475854499329827371515554681307670093851064374082538680224302262645962918540906889005112206159984871943387809761910407827199049628759148087586719156407606511367963856099417388809525643940322878828100780509355150701300845717432505961486324762861722514922908249825628037026793281408882724570138727552065276729700964599023097428946377734677452123188181244007371943009398783598335426373807999340781083658604907152422693591766480583610340950597410812106127423706299917101188301532124832111477323705064746135920376539873873882287284411396881064186353584883788758823304847806217314184894011116987051493150268166430275670624425446124764578752392438344228369140230796702036479633964994733398897497209330933550962265712870005020535313668378755055088227235145574091399660690802683250581148745872724987137872518677251058832524163853093154886327357525324971013325955365439557607673607856910675058521182456102856220068990948387216926794996220767112225506961184751666477084709188979917174552384627319853470597533977974675725970259843872719885060776240230406732578252052045461522950383082698262433033547513291328828402588255674872888042470559295994771910660076953602524196426363932770079256841041523533703124782943738209643269944227587948008179422259907560270147832005547733635668310716374730637061670736831067638240293644898795093853894205605077082067916635465971237929053332661654594047730243424362909329489513406807176306223894044580515284255925710644729245771432195452467419808532009296976369537186091476238617304528900422292920142451731562886348251918093293743123443715846854045955105584954661005015582008886391798327048352228164295846574747133817249309031742496397314672250265195679105401382055665973317386373636361195031607073076650882463461533319068667851831960262565042231156875016810087503739952080758341001813444139715088927615929475330042651950568189488179453320623348852310821683647955441120156459686275796350018056722815420765086193449533936791729895784346993338812328424907920121985309212020939967236078565478202965698562905219131337653913287151104978477801885836398580115371233219138857545058865964297738140070600402215571173744505351362488379362310030192201899134730405918877995382377334855165815225624105831907951550629279055416896200352180732955273089177596436006757008778728435676835215351088959870099600977369774775951068486427004105795793393774274551471528124044144387443030883666987766280851921744584916562654155026871426976154040896278616846433758595705924030759835230959436587750159837468669692274825301862189383748011059955312069956886075312027250094662313643477038885740213998620966560883237522963016107725952985414241927115992207583425980470704975641038253269447559821788672305857255404616812115381850053519126372764501860434075685186398694480044022862478554948386698554951478885950523045099382586460621582933747889122780395969721233900447479382402270226532380958897681337755726595658024118291835631792714951852267260359543687769876872084049471920621367557310270551872675590224504809258506203402890689850342268147749888031108789420297379114102043123944667202794983737764193772810758511082423044825028325970695842111138138686986065676113720373716715011365696502925482798856058525915602256065960280625319942328245093556578739151383422832618514059588392707148054315139465633793069920324636953474754689773968469850452500528827311975576739090834083944795278424422877416329491259371429670285200412881888190634671137400465124685185880694767678857085005490838473773070926467913376763781416315095749923033693289755550865484653535874897622980949824583263424056389401037943463801376133180331974162295850912411238434814018551998076463763043116041860046991961779741452817866821313059829849575553950039980326703682528577594906225864391955028245193740493700256094015961011529534452447067787057997132986995303846312091297823486659161340847687874163007110587899922740137480942917013509542426701192018601517887060916816726738949696275694919281664053406279247272250730927734151429397667488096246588921106422519096604789496289675600569723958561237878181126659829247269106138868782372019682571583809091175815488212536543400117139038032403690263717228364303095454530129688238286788167363841238576459847351414997202432473168316887963598934098610886046899538749404100566295472864955409394478091077431266443279516141813453995534131324640018665718472532001783015130815426993367535886814276693183488585862943973048413203156129620668854917643156502980776169890194551615032709733344778161301033430079334640838657596957604017350559429981608751160929584526602347584336095242417055206861036117317542183979106685423582954924477080269339163693226831441493651428021050805710619592680881883937521706534712803452753575244462122989313110138529276149542346880923878912362573389087102001687228663812419540517064310884142721983797301680978219444410579034510850439826029900802589252463177384726593450620432540641583946933637614740463469478290179751875414174594151552460929642424352438774511357114373157136398499976871394505185265060052545898375185351796217619620792384200862039417213418170904274892728196287098140043670528242880001686891939742357127729648147683460629346628732427020263633359645043382853264961883872096430572354690392042988710997971494258428900603370181702313998797686702629870857456562912414929895997939196660258186489139092638632143441517763816973802968421678925789383367048331592092549010887719494845086192582708578646664099985757987455386703279365860666065432396794309426865345964437420451456780753277964273750257766242329669656340933928806170081335325438811898530549162794912122097473133723889103860450792001455080092586212983379754382389812360774876663190058345511734090364129651772380562763513020421037651745947488457807200376163286454370901126923379251224126824117896442463408229946600489185722559273672477312856574146168991375719622773622119368734993678775686485954920493636649822172641928425044146860549812067820209979202015219135538364750693526361515076778923240180968098208430245579316462516752192819788089240453883426019747766748455026624203610030634669976050362072243343338284705013892479329657453951775065630526339230533587983347215961597201649759596780951793736443031623951756744373766313606487148704662988081437340831779568783786398064339975284048124301759224809072162954915831052950253049380412879004919376311815388813746378197037905892640890995102387782081558939087589797841127114524843288610035075297728683466579225242946023863164940966427843328656006196508972781574324785572315886273623989057254059068462220670184970457017470689473701454495668091634513270765316811080843449243877476780238060660794406815929868114429737941019556600969947439336456544155159601367665546357093453817612804840316434893876794883679627861585581642383270321957710324242498460905905501126713171957022921939140467131114243160410229292574573242226383337994176783621720190015472257027087060976888932870108495369069621891668564965843129942302502808623479640661658612401801600348744330388128273169294973847929851280315516478442570148176834900942056168628434044774567625245577444146756502584468577566963221886790024249316822947255888011838168046456156061470311971184309128423431989014933357138455277813877970487355780543268297985964943553890818285768623401302473488947265948249853659071178280321540423180946706263917892520377510951725391566415208963175702162047083563204834347781969925189458085292059691025057465847521851811688775191111719050785693528100257224536661790827659806584857423764919841358832403865093547457856487724156715282004871632845927265017530157862150937701504481132896902637659210590349683932747532843663213035944031856067616779310421062882427148558271243389840475946182772990879504854846344759862477799895926840873361280043934703386392203761518815254527890305561407447595522949483439420739200444673616034660078416082139196569195067715248412723581008657380452472251824168914848351461879197223339166449813482337292636791349483722118686282841116481687660038438555011085198713440757801080130891154494060753471340929743395913754833875191457896703413145699343078534962058888221152315266580744068742861401856437111046833954551462281416679831357939797988712442141081802486362193079289976450749206832962571448123841220202512612415519945013514690851494370598251021030435582599268662270538002185800590961567176407448534705031964315500547140365288212397809619702316566062767072814640374942955532284242162442845907941798950503396382390956664628303385589817950913973401316825748289806310364493172794276018686528670632223777035558321186932376977446029381492559123397665470715833535086915536011121730969449659815396189099946347855438701642889524347710782613092463764233733048903613499389615171618581697896035464040408402832845130962952763338425513961668053308635928697227981277446303195338308852713061565980809498446894456363281462923477075157772137298934745648848790944100959545124894363404276234821209007345090755685873449976648692700420662281943316693209859225789024982463275263012438521262996212661441019184090554988026791460036195376893814610608225142906466422012573678805581307626707931634860528247254535109633450875669129209084551416130516893478170046643298899882149356542436056319289769720526391720791769876943626163271663399899543430520113285122100818724252349820143163497019678349981248710623011715704077066013921388861987642488695275306308240430139706755658545602603336778901875108749887603451496900914927972902885404970126599897718128957901895843427093234232680085921781377766140325667542856335699713366116511797910993603704115011905368964446577208882061047949457766011211204180624586332366443086069356833959881856799053845792607945513597344274793547866763559196487742285579751238495658238711191211679396623831665975851583701750651649528549857814221104020224141384175934813083734345025362037944681832037103630894736566674271411374011335983345387222083559467728161551825465979145259857796034572362854269460973447712819474255888529217160699331545615432403835280994799203673966138944657912640429498512656478970963863161683309663248160276617167210149984452292689512927237130868900959490756881051001026967672615242764533176845617233393571233823378587777223018218182245145757405501473855747447273711838158953890670132879152792937927521665572109880316410641768034999123744630542382064619921078223903665007159032803454364537008583076977161169395632856391370583537196487054270764382765682832702887035833705218854918568020765718646677958655448587986231684972613656495142479137739062602352939008339306362193126659695739296809560777285675789249762227623949829380438178989675097033254233502270055741633996187202158582760320300730807417282228090872932720254131686629966913591001764128829969850547341954513894854048893973719220045900868137665393987657496542066891052662555066602720020672796539679567135701059316476256532692215932412735629125988656147749962123112821110042009334397713550894768274851611909561228431640925036508789717004257193737076137932983069284396898955686735428438619854637116362712649348181400733393828022410232326168643499208005903116177160476220153273761833039340387020328277469294046074679838420692040409253778602008676529459919926975945129665204219420968617074283111954346729578445725196656363714704984414005071786026743293610985775295214455611670544742661518092764006886190507814369671743798523024400543504234566823067918717069405353540198058872727084244755082067848623316061991821108465441461922565114368981603800593892613989536879412814644596216658792492337413819389956882785791123346225677547925605076928514428750140073895257542047450345872829066957865856444420929457129126572377830563095559033488150542672950369532248422640942990628923459882973215647957676253927787167640815964883413307058826994799792736588845780327402074845945085166134737612385864092068624951269509446538799896370482845968348499034117343873344764741783939882710893912506758831867039193814593405508550603234139199472364105956466946936051193847815024181095600833783597518801012997580774984975857848210803454845281234830931865711076534036771214299955421410429444573244070759705115031940481519984121084744608948982530542997318885647727497594858274020310849813766436780828784055234110800088626205218980247345650757631855305787655296353158500887033306243951994817506503154842159383493561622445305985120667708354611707955571357461601136833524660299780134215236571244516549304311419857525258236898599949816576340347096450808606749401428573390470537236516055691709549314629156598829728476878520124286986805562339036078684085349290111987293730190854077696589479154298314926198418734843913985855715092662974168738134090894591787595375505271348336271597636870110242224873134622365520833030829439366605121965961636530721010723941524522864719246163631884383563908699887866527196577569857536788779264548973393973948697755457540796339409413146077302958923784769469372375198978903718246111727882297395246994262529290723641635551100281501915089637674828497983668097005436842929616048835180576922829514425365377124017986747900370380215558164506289375395464622870976356836287120475107243945013449769675277216494206667593514077569310562214634226163040024765764821971357234802666467066418114267161281987630843240451088914488817407486205251827471120211086820242443990598280050065462257195209498798185372211607083790758052052084841750660015334744198492190545625216542148112201460964134425473803060349698700730675884504791652301004725012325502853550986424761992114523581903765494488636419166103116215195731844720131878265762982175886671472235799467507365382539269212308709041612057902687184656602736307782882462297455820807056577152109677113238453061850486027497296263665573753438758808844817686276802215864298696282799123226291201714265281860749752558325791490902948962639616602587019630959991210505630007834119171120500478872715498821870550357191488850069844795612857784793872740712509729063211358581514230554396095671166016672526321537860948075128327440645169850492015296130653888009044275380798057983505154220470363017981108818092333850917010982804608800548994156859632921492821357277083476525855935448744648819379733117172006607839675282852869226816134979069201612241283043007863577704905219329219307976412689665619998689940725492509474991076948709946888539544681572273163626285625544710687605433393763403062826280202109871098039903976872600885453292892268392805535005299967706034267865008472315309720818514081119684284310836746361237050121033885205824324875430249741630836385339255174778413589647862181333013505558993505709650180351996788275799162081122847394136785039647172336351011143881320632617888254702694586914750826710372363067344849233664877429385984524766885172589366121990404100907154138296657425552906161122451317077767456310554649117679034516973499267848371739645980158712708388760807613342308390453227173655717313477388973895038211171964484365838709949134276764437505044328806292415980446664943084458744119416570354766556068014923344999063102451509849810393746946028211943587913129497855784476562206230282377808431062722594239473764587862507872088542292581970034804756494226917418972320660000548134019105945868819683048981621023702965733569027680754313677086092646535363808545729054903040638009062130834734718588789617874543376050471883123365773854176204280963381625297593934375746751815812645056107606420995105472535737998241018623162619404826345721858557727924208775526089073752425211825496053139268688433538918533299553108182444413453796347122814747776240400839770555921676269215614804846357843639747990318148517258284424591612867654497098316483241824255935845306598839045928768400884332250583681483081915771340228433883635888306462541455629344852131123881628367799162260628866325416448461778146198156376260884579127715142139743122436783203865008412748743026265924999502077613588253946975965346883217138777896141769670181335658043181829932706497783550983313276887965071863524093132133170894140760567471046207006748690864663561187267078672620135821524175353931075431183010934271495968364461050499776293062918353426529502491186416711975958309553739520889718671949058719078555402466300057131432179476677674938421981483383053898423291695901018963902300630901142420894301972717364603431305307236139920767304529318310843030387674414792420979335106136506314321337480512874322772716637000937221276840785446311739834887246634942314670637909726909552486051918748442928164529062889690547796972486226122455328961910348428503347941100572650181104534530871287257090446024422057768839981963867271658990400524978789497708287875315066377950608549348536176287681186157719209538026589756989835265795481821879424372225630026471716521730662097845858318810306091975758212031886734407417589153175704363107989256658064700074966502371526478785892346148665046580855203749212574677066930196528395165306896696065397645235990205646447247290769533446467732659701425551359282700970840074741493203080550157784612472474184311725730061586310332884914627021978618041595486734349373629618108220836817196345703641913416154599131427178641124617069512720207659460410300887655655629337770951896620112427334177988020209775721313751566382379485406093042543885950253027203773242945387532021175037493588027021817355948779648863953362375358522679602824240669839009291546884211369482632916889587772434301671556806527482415605089947900453901346428353194771524420465131110578378918013237310620907337116862024891663736731803639531700205615910106905255476475345986330127833798913861438042164945977507819177723079486367053949299390553459601432929089104746817636626752513516480851304007768657555828262466939731763405021516766065305763391534009577146466438488660495346267716877685382424788441129888603108839729533853734830145870047963915370375345391838776739864200175492240734821359507424296144922606089712793086231328279313805672304827448300559925603428686189486767403462525948596933979960656953911504944405443533083746427553220456682704084773295522248829044627210094216923765955634082723784664084667470382205910418642007170547554017450381929584491150437244668835055395215349228303799589846493945987147211284724929788902332273794140019524934159510782466189671186840104400119760998510007921447390447102054142272975727774060907734672014292496134367707173811754223224481663693790087269437446915653585140649001871332225006084458146512231800029813929353930831353234398236757864696257665134568022254730318785064329012718338676273550105463375729104791959112638283957909000401367654241093024289719165272073998185155053314369199545378747899477523692376243303184961189982836710474895351417553481217736550114486672173053035417832798480955894162522348373415678945153560963534769304577873927128217565292080027595407910365151884462266976540754296702158319683938863688971285711884995689638255437192730095030859248351220524288775575924456949151843173202817287152728375054874856871958839503898527968177790984820005113472883993358103648829164221804763607328091113300026394726189512304988056043857688616874733955763575558849348619170122605863653321700280489346039927079415356415981144662473202194465689771319538834564552997425306148779872585988029144201706726889274932059078936790797229533552977250421233149935695058722067576335264916441304275139798994663492027958815720198281842170417781519771071687316643813525951990821654036172805014427593703069448433717923394731798255246409519875188504754321959636167562394415828232652528957398137573681288831813491345921617706462699503084447471071202407345250022038775256845346869514041291428617365815969041951762401082845195423581500804150723801012957541671023290617737300695481114302022031648440624685565342559109147656126202715186732448198424887703750163449673028240203876446488463272656318433628477516912425878320484295097520117796740130152502382482642678072822582749748282769362719951818142170740395746418782051647923021322584151892561992525856842016262926020646413265622480993672693995273716705328011519456382863632721363664407671431776702545880918836010118580640832071758777076878055589525466249733760416322363118278031318412262444598500790964410628698969744944383529732002566511747645385863856937418620441943800896167747366251651041265783893944307149297616065476517074060915969122722530250803337325894440240722165411472886529870798703232177732517181132578038170720824227506901188834014211991578746786369361684266388213527579427364642757959710980876820131487117739324147536334838091455628327602506853124419908988241523727229211798251162615826138031771637799299044027685350848188668131027779897771712704299121521325937060288974553254422886867646436195430434863451864908901192570113116499146052338350445444826293792816231429800418362966786356831509840059491119262172041834619795219534108284483649938256509316292929554268082922118522738232197760660105072073909132818791097001655996203851678827190600329966598464778397259382251866468323740103114677638428360010970394933408303701243389793510464542840693704422827550883070059445516768938507032062535202802340319516504389489673408502130974267551999118508294015101979483022895223603917098111654238357033005845963647951524822358069687936915063612621119999610455425862493289283660925338503164041649935254896723608740903824952418851315568119976080070179610900588130329440416628349782507567476118081055890047346531011631130473471996181938084447855951570102497304815159154553756451405788037081689764148756922700702120560027884121005097959568375245439251023205235942451873474336510228587121192043396762269736066186007626788533521306999215375247879672470474700992096034746587226915314166888485385651935282240573844540348948497017817895498484722758057815080776777451664900557199164297365808946691882755364653804427167868142358494995122231781327117431160408813306895125244020365382194421850681842304752778295462406819336588133084954128716783104721349548116389848419989379244292894894687957653229364407003376142594858099042453524044341914202334942620311167991738213128729325276085637315196021946818972755696660800918332462735421313108739280189277177447966595299384456897746278762251668840555070718317976590470176116893467448336225200490504453893935016322417712373013839514197857531138208136974489683649216757645257588431879395403260245715134097664255805229634507564538099516874365821267147324704664133864984800049830239689833084795240714387013434406336900187643310849893727471647788362743658921629054127110333853546701702590951007197338880057458501118411343878370020388923508382883906047393380608800840484168826633502883964574780428302969338610813153762882420359907914584925860264115549109364186935418404682818194107460577240986980732707959706336548628635683458153694899066425383225623794346075084796288424443902050786958119433541946169265063110824836989284431050894028084168719627816473567212772514113823535320265287392857072355275022965128960299204646163147303506128605384249711301950508095296902072170621675805563618483947593577740407766563453300220284111015805608671636964314473791525978342865491790949876188876301187622713258632143333388764810637696569636888398272025467060250083399085261146384780169437632549623804359375775742360212610520664647371389318094774395625901772090048518473633379276930281486841408591404517184332917286634382234294195133861750127474386635582420596859311467130213224232447180164244229208094937831901788797064392342955460037509133851592593224488930071713415504230234357919235481960278331303663544380483842860785148330339992434698249484818428961351285729230115323583294350077499035546762579605703790657529631074973425689862595287859373542875128570194260874883924685387132684930058816103499975931090173651371032113376733328426519257529133202600209680155178873219193192662387599367536671958047447158220982585827632615908258702453865708517531570997615548882193724259439568768272501157350450762166487784232452241772561387586820209783253338555094503457808840912204089928317404464349122090836646185284878382566405773060950912120127067697563808074588003945310895778692971509940254582646326334013015366492346681072970869821548772946635238595668645244480458969860971872508990407159373126714146474721676908325683480729938877409263353747536192460778852501684285192213291508328687024412840398326703850454824382222118624890936133311795180951805570959343930423591022959104261731629096781654851013255536588873290340937053834184671804772264600961518135896098119222360305938605676047345849924893708738771829224965276760737794449393003400969819774571170065520063064392779671792314027124913857506626580739580261793263746369776857111850382498589216604050624122340805757061264549681087790863494849707870361159369081531790962333141267786861152810658204739413998982079023435602856816029718575550264644979572086614192758532463358017576441676332099200700971186243535408108677338229580381002722641466780493517568966794418253031241714540047333648336095668420942488854654897764682280147465898678201688905917388100261598368520481277893508667469440121044182896771160648106779796272534562992614346291094332127712094057669296201083058165192597087403739129209422750820470353360386905778477135018428562251747906176363345545939941980504252442242999649925550507705125808797069668887840699497598405206708866135655746966522005517092919233757545954412807986268130872255855732560143709085593229088376106167432383456505342727118362614883362031660151853675995066231674331493987500086858164915408859360206870583829895585370786980444289071213237247583427122215874152477250175585751376617048584534021920577910835615463731023246355852025228217386342401651161214599385346577737644038238157476063893727818557931382263943102124049941480927922579048323775417899267370313258043301454388492324312510033345056684754303179258579861407196186827392091850621810132129560269314174642716215148164201545855233437448817524807732030769300546639912221014836746866659754353061836468634630988918501221549386202580191047570418555906293395819897655978371026827123953307800685864663445950895200430631312642130152645831413944383924808755847198516341031352892065436171657732937719841284128251227988681468022987028429485418379459835174199723336919314472831651951014425498334736716818400150172269640093096839309253557219554604524427387915602653235946841508814358917541662512673818131737205284570635391841406315279022227332638238553779620518648952357629197248821130014470809269371179305429961642622906455477520405903097058073738123264548964971340160997467083858126078064568028961739833678258522237082202892362371857332421691435095613877365694271467344367414433537458449898011357850923116216925392888827048559509364702828729673704904114097364198808599864674890804024214819118293323171468691350867217419394479433865290365844990763204985086622241939092210181776805018030404007359054896746730159313119964309061061525147034720898569917811743301515077713472714565313514826522220251375070148788755254291033084602916999535803648796907397530396817800377309287957186180354930610752751663689332196507581791875836046304409808950237436173702226209496018318180512983314078762742890208456369216017268232672030490886696456508843118432023815491857514349095977469946701265330827243177976050315704722902907637950339466874132527913728314205127489173613415546047403007432207122393959670969028636595432727402566314029661445355257292546529566621490250179527634526357165258252583557554986481458052118860999191963185500618680487002183562804353644252334588413128649096397893359948636381144448693958851325852927962724693607421529777452237040251324730215634566669739215226026606090834761012529068015091809831150498348031834902904920427675683016335114565752207939719572235681704958700338283897577524852904645443045583618623159377760758409859190371818421166668977720586477325555914516568902720372043910910704236331886528944192301885905576265087716443222378387039155896171253260129509976728392995496624534263633733997048621200016558773834392688259181027404035901317761337919013621445065654446672262990469846002529447812566161652819942796622495409485827630977174403862762909743313965058591224295388991947977917084462544835067952502498389600911715081949192749727914912621828707966108779676881887627557699257473510233663854997624996546980830449891844462773995390286700469402122152085545600671925240256662533790548500689359419494607948482102257826162879245536400515189435105236222238120049326174140497900888701624760641872189579815383911391325727051346405737170016098497786745717562839757613967951340027151455470583150103788858506752420565257265188903970150743837970913482231817625282232101196087731752614338892472947891240152131339290963750705686875837798677413705895178349071238283839352777991182216449422533304753815945216037624260964899970264758634074302698613912633487804331496269319136904408223482021195212669552784572233603267991958136994571293899893519158566489553033571414197298049257814883619368212389104546056623441897129610902906583921523313421742578817337445700380339738822136486779503614219023245485920173428534892538355627362958547841825450756809852948379660384206046874699169460215057131623556386774042175229166486729176172690907780706636280818556723781210569617729787940723260299111618663399836224315066460229242850517440960709667553590766073519313527472400221744354234704192496420530282154672189659750154769991523613160290259858162373813418783870544497064441894680152121928501023550990171867865997990171022593002061777177945694063511832536676965573415372045781486280025481997599515373917763045534000541549544046407300105522025426913658002394638437123426932644339432715176130363702700270456489112107686268286561071138648100506663570435706586064959780348547025336362691323627460398448236810570253149538106516493026155575623611157692735057886562511532582472770773215736144182323212197451124307800217405674474846569407099553224901320292820531648238615036149075180288119560466845405565653960459929932794003801828044125090821501288722831805817662080100849241256669740212998796572068141083690394201927345033821932702247790815082666306270520991076237608352015813270377786572458236722657809410886644859511982200024970394216684416932327108428272471814841835877135089318585376731301629467788936528651262596073417591188172170540380519330919405267453792142635404151913741586005757506636839006826981502794775511131911749872081426106626208762199955054708003541788887113420849211895334467379088216078736770162138694931226189108931388146117850878413006658727263549224430349911330473462274127619547978532791888566704967254398193599461260261328349657917448484943722362569757023354646983130842911870093270500545003674855345131549220210671244199540092477536652232345640094685207183014999872750083335625609442094273674017038740854054228899610190619734004525378803779905358046808820753410789788416309147699231496408938234124714890988035056476072462062064234623399302579212066528598297029529218784924978168882804209126951594828394478143615662750835645481258702778202391762748712559568111595630786755558663111332117605377570852265119865827791472044622525542521184987231443578830275412668383159983015684275085702927423259308676483804001455333695837561022338364119988390110216605984863094427107292728172595675557783294544224423442088060740817893512056708465614154116323500693109456487766921991277511014951294303930800590898666824575588087594633296521179584550529433557930240591744300818586065779476585363196060458834588466850185370015284907447509228880996116417805804622078395342197725199079114699283613382321734555579699165276726046437474141733273764331364019131776443118154394063488723698088707979660596001044223437688856412277371023017249148054206149474802312361787236881747042797933621742529204016766453282044275962137163962168843146614353672409616324769110354984655635268142391367774513631156891713832767024225112954305470095310647437795857377029532063417533976580937780526922579827429244373133618334588880792943190605938090459032223980601170997874349696509893677260324020637226246152807645420736616946750808618624908328321882419194223592894251311572252534401848781276771660182967104150059597618860933964188741379700547828061596954616278955349372159224454150734266805767552260779861642418109584463168987714060394277177549727603810098465150516545664313985221123463759384975916940225647949640517026034014010397681485603127026194615415756435843288300808724257292235487526107861419971712047214844945393510622970379350410923828540503063320148892170357596383218481952029963521773242906297663698705075823829563614086398942834357835131281229898843068237021652622057778134607243585964339765489160555526043916147866162796976848402468385998459863793825287660156217624860899774489785488144260646932509131878763485170791381218008663815482888313046141313548110250079667079077990000272445812453436155333904653361443268912574723645234467852615759816801832018547434424945923665038306886267095024881244315905607629585355977454320024129347691046239024276871747467138801531788759586943527177660584512199611669644324547586551331200382590837328242435383398979597267324281470508664010640770829233729042013458214966977667646975022633792535384054939872975274261529979475497173606129007330441368773609197438555073449932504670363385155495699075159523020799677359202982434973365600375167874746396992233399396239926870510141282053072429299542138064941001202794297794804003671410579718933004155200929437477842691212310655717223061364377105528207139927986882372630432804066267936598426112191044183637069575945912008490761680839632828937187067219205958243780585174692751489637736501190097063584592662332891843285615129345515771024745668005951633332958804459364561350088751752661320329087498885830716117652047277297095901537952337541626174341348039945228574923331121873213639519376167342595703279469681336314860715622005999793169739238002777925648943859896794650042366784014443605105306878133909202862082026474876720704461029120979461506675202596524975555985230806986832392489292866089594473223526461630942640748910966029461380617524674159833387879616479916162282029030096371886479617978884773863134143448224652822391831570345653697947701118354677162082702474411456257423934350048904796798803895721061219084212014228172591679302880087251864365890677585619279905181279808878153857277594844893960053168637460186547790961869306585188277393846230162654936728310374526380623118939911870524119556305672090541705731487619384309433427719181574892457110438441961382621308082269256865646829373597627252545391535862031785880449570454495961504773216461713570535385928903685918167546561568445316536530467062761166408641394838545999599277285863589690009928693059682044347239813781140841811052136143856241705027186331775348014661162785465311317327155760124420882428678551760312792292898541734859221302410746385068026741079243654914862197090283990893530201885427300060755680671346845584076492942619735238292079095602545001554741864596708809068483182827680948194920770343987265043459243882438573012425057151139970337313398912951890522968062338594300011040742257030614288025933020044351519359932185924118170689231785121474193591428797384846810120405559184778635272277968321229378389563898647222248179240763731841646377070883949823845300202301908724050689516282463613368751342036612420645602752842758770348166095921434934226543174462776039894377407727469681306953834279443865904521455734612484046957651722200292120371056294527282185098067419277317138529449612732476361141100044990950259080466226481350028979259185621317471400691190264830424366616801055544317069614303167520401562026263147630798173847167375445231301684458998129465310732251947549447331201690220695226439909040117211969795417360406242322148968623870445321489805884543393562604313566992100793941522357422140603451531236380431782752769551960726186041116299700269854588763097061663294495593419900905214162806672828340043580674031640713042519797884557794322122453494628584282473049244610093944290543713383026070360341368609141123907336107457285525735236411477375995639182198938919498077642307096198155447358079066603940817588842307196799317363619471676679162409379210974181646029050059784077599342365097695771177450919583218561959068322556298196249264197121153072361955837194616576504697003236288615864428656586718689071640124734339709987763170284542004879437257023138989792340859390290247363641397694235561028914758575340982763565532503710352959215418458732668471749032057646125364486881465603862355039538139872219763920653047320156810815477097291562227887099686825959489199329128896671932348172838474679263736436559883341049524722007204657585860408351343869802432421866232140182229538476212178931846143877623017516423582711096915749533010371304894668445823058777224114441184956522876618996451310820365478740648380711919730016573087657535037543810915243772524089832915372256461868284000663124415079015982711097366209852716203552322577662659243112641221726494010529380551764307832198314994847470432461745199260432015538442795628027846480145461065128553810235901114206013450167543700289619465785586687437617773017571252227274770587478601669389615887432489154223439492216739111113034891011649985114596402602868257439543588191555439923383010737482166861632661988929996716226734836981003935494602940861332079271962376410835307526630817178542221366082614151357039609787800295589982274725548472851565556529311350869161371270542146956341072096966672380895846368641481929682637278583168687873654034028962405664474686512444316753336220654935464905926487231681199763652849791512715117505069306098741594122447633368658110801805648969199973004039071310859600494582693863197470632471376223573732296692938373378217842366479114886550851982312142303258233472093930103100431400611419209847267044880478162451430590078297776335689131460587855466009766774255550286474658368444265881520753469224636650531683362800099558098245780383954269227621273783661262900553349697195902368447481838829311760837163820726216867143408829200120524555020049113926687200516609438330083884402986232648086451194478311314959992366155918556394177308787130287142112027851242541376003493462949409673277587924404605606541651329014436769053067313306637687604285613477261602972498051390249125376452838022466184012813987366658031579042923392295587002022561547577227222864783058602342868351467035052842926710829919629330793938186014283898647162472343006702123109068333721543419177622021141390217832459228793650944361287969365290610540090002206735768771892605115014464111147739521144856722603382911419687409549314438441935893714286294133858469751178609220074687519179679368476563786676686444780806116751549320242500245226849781923391940329316401940800554607327098134948410318386772288762893197176809174514968470162745120929940542747548261152480302811473101660446696542998074410342541529535106462906654358074104114812976608788693802852492498640833622367333220031471833431699449995948856969561061867292600961342669527190570661435819315869789944625844045116149573096451659669148084630985538888108928588870750036894460336392360371127019492303516988270571024946281532660443887174301372494618110444620396764470847469945686787992359160045329684776781001502892207743073485313912292080788322952940629100127754821829567864030197856452924101543369980633556331234274481023954841302667817502873297415390375788064378775233338539108042101700586804438580227540918594932476086039638121446351083195290611117165153764339978092999146186475030881030143970849935307508198233108393901185023146993876979057404941431575479440125203317614076554799845518434180526296465922680902284417480840957928282811854800686488516095555121004531253576198624547405160688693722114442651692842668492623875724440390128448502365287172830782483121413347128751726525711293981003054696629047022279610255664484986128163460205194936189121982955426326110242968354689714478142462737303811152520584481361593679966359789563847571638345908145908321288951311860765207891197573901671041222928979246405386142317431365176739528420848636196386569893272927060221218216339530480682147853458212650993368013602542768565605548670681083041977072464781299859289243384219013273354572940994485123757902942052116380267960960631545436462241076668973826507367151765924563830613063701353373570765737660055090176491283399423555370419636979696084178664664658781491913715981177018667259283169281635934380470125723740312753210751074067683341944424054078439628056873540458174575674930059116671152498569504889974616763339632299551895532362656050501222806527247300432661525787894616611315856918760876849653770834898147486518520408898129875664107223169543959021852669315327596949933362201944725698358259140901702292873760820304123805174964003641122097587279664377451569718987169804641026302586621479864929576410246191684586539334007083444381109754478234253437608956118787845954170350139824028852494879163449538114408002875977542164139499618667327389023778228866435520693851324184836136447084383255099453017927865398642950783940521953802374113725038768448664517190030549331902684832343675652962553684111035461590945489760113177907951251655748449908664958649366014496373622929277409422191428330839194800736335240341654729142216091760012798686696637347998425810037769385199107390891167675609200276372193204789205363869573699938282483039847954708690840184230286703131925520056324459660890035304446214258694820387371097923935039076322380644310027423884360058580904265230369876465225652551569164645903608185327224554530178729259622790346818552583502708783630248235988495547061704451334802867525702742706733961305089096738367970697071729186523624291536504416767712525052141845143783430316972771409719427777765348206030074560200168664487456446095359696756992308995455966141882178035702355108906449923108284519680237173654971974248662079396696982316679629797074212197706767635749540991470211287531151782597021963328058165234824568231199971034131963262904861127497435164660099964396419670616927764208665270506214250592052041108556807934973832629653425631320099635759076790795630714313150958706597061375254857179022753305228216649317788148614528253620611510999410477610931691298031050620742197147455873360737747234711685418305073433206956647949733513603470640129585261211341247893561438049455662223183589186142209454640418289883684862094085409015281284799966546684139292558247915360570353666570337361576497357882826740247139139102861063480495728377454924531278435399707779997753206989781934728216463042625942987574916038135047272358353565422220754951830433040385342687745988933159347640969119749453912529007168456542753627869226793745595095206760869404286870324023556737028481239223936146392362240328251791450837494172851757441876577518402498009570903285993744408739858079947754979497923553714743501001914672289291316146869197919966275423702673442697066115306036175798087193222548470080131762775892814862868510450826558013753875070331975893601886202240730158497168052008951871016196723711099494887498250074254088921546186086944936542294249353192258031080852805556798408986397523610451142400495353474688865526811649463557693482307926269211299451312410246272692953130288647104081496938945848770613832377464334364210101360230429164942388270142234508677631045434748794983065429634928976083726428619670201287740922476829991944935714815209444537375032317360086985263527800373069678401838599264311805496869206389458162863425658212621003411316971501730407305416643644928750644652605035814157631574558247099739012246233320507171128833863015753474373230345073713615350015588239776170333145825113428430685249735684100276672470080121757973306144021308053005819293703070243333070557972048620441757943873094519701670389841088427543847860895490244969895119026448885498108125131557393059729417446311041109452012616203720045118946479191595064120423435713773437144965382440881342454822873268533526652454502852987701247441199895329918340767763737895434567883089082349187847562652342928498351191479981536506767470955014452647250124614852530032986761424931824499765800539255307762634225262135085425993409286344113072582961902751892779158989548735592185308873337280340926320687216506514904601009557807458158410363687913910710748346156243061967302006413932246555838313632089177411393431051631965808551562183404736784184632359835744482511050718563587134567254136150173508456939123716842025510522991645381149854936415962644085425839367842276340517956714308555715710209833410422479909097334584062536514462861323782036349283810743502265661638949730810424775491017171840441592601082750099179076146818965297074652381420389165243346064223239990123442045123350266133387859971637313404355991516008657737351788811208287647089102503275934471891631394097146154364856253097215753662527719357487725444540209145086028814178019833773284990986066215657294724627325523574636269044395596534752076529602844445741856280669005938471924189161006393917912874562830789954821715399782247123994914393091852018424319409427774501259621160959835889550616414489398711179203712920416437840055857988671667217216782128182943189002508349266745043187315131229010013691056520091905247189330129743701029097268742323115528976020103098829173627821749313727515759218956539126583889899438063154108840697945016976298840390502547139551908695229480401499594679288388664481452869061943717405860867544250704661628887017164624432474727160499548222599411316126433038135484625347291091644560909858790632947997287906421269420223564101553813092312869308542421416708699266299510905661266600462274711808179270108864940888131927564369323273705509314302887756081740024533465159818028096629570020496828430726654267686726438714684617791585860580215739351486602894044910034955896997176454221618342786821436847690741205243422994745730052302869654204691967869178595519291039743651593376348747794108116846968395624159961455638883984297481071501926694490241303923455936067935495608759096566064855508565307059953627870998704349301367964620901775123803577227551389635874543477729510740689748565189007937963653101485874109810669771776508386603899373602405716898177503348434693141024346356853017064239662527598895284126435365659950373418690203228754525470983616796096472169839715832879982762270468700822250448887614219223335990991755524231987147296532023642414816614135420547029997850324313805710040374575110033109710919810736660624396338827224137637429286140231720889608801198295501701632776363459028031152612859435359008534439886265223979737882064621756911907608931369561318447287503172184224507098793903288717425499604613841586643152338387301269064732853879579532742793107086698640283743396395008797221501374068473728751372939607770886273858636338244328202315801407296913680063050421794853163198512362644588868624471865684756618049344738238799665696359602985208311353344404837435757808349055477242116848062893763122830802954019672641785055397552862986838459121270590239479618090035473122678721692102238268823606127528121131835261048926963936366445536474146495629367403530195842432458887393372916906395267879744214747697969940839816941801044798481565498101145070053008843895766544561917729781453106982795139276211048927174496749317327892133928297403813016136464602377608879230887519561150656621351467183888989619104789879968281387679666717110375530820979457139024979975363331618232238517449256380665815877868000889241896052963721491662640389326125424809827712659764325571868135579963260775890757511435755198776477170236663674697395204033947525582720851125214322890561493366223236225933429677466440778028352343192386433937067749129295443275612296198490680696700911299273647269625463989431391442538618864692453888872069685476406491418525830192069882310126471421800292861459259215191508003447404437205912960000952425958372440903863425272281735803934836887761625176735376578471436396621174980305554450900326058773270004016378826025104558699712621619383680716920191602085767564201380835712636070939819880072436106319432277138956334655877230552558812589458026790406962628259996060093164584645188426889015769544449978183205320154638634693426203080742094748425048553464125456099363372630593102775122554833271760853397034754904242420906279783737742263474219632206820187116229720796209044523046666142240000225680500748364265996327293216019417976583392657811498813824414206606682130346040512103429819152135093890173976653506869455844351643764769680037635507566417928511616716707833878113391671491314694185324463050996737927875430282927274184208387108248659747076580004780065192201992657527934967838716796298015718102641907228023540167331914615020017358141341370431696720704404366647824742516257461402485503067348150049353155218930008277070905780682372754578678704358879633202511299861990229429242399158188880312410200211394756664689717448531050713363899214794141997152843455230555253205716003840637733051666253529138405591431875062239446034921295449446528322817062043771302545640298982870421937528386913286137883514175667659757710524646797547046716207331138042978240103067071622228934940092154500054770057796912470487006839824929508191046462422279069197159707633772003441512108502833408065399584089258085502468493502620011250497796240505970297592496025663410173210585304707266603253669662123168394320005743641093511310324998290087428704197769650302661857450920410755971482297077675829409554265478157910024145377475962238555436644472217786838132199260053527273186024327382935255512638990387340463039070938343928208743282837848779892198608930068453184143026540929278734723831818212324609828556096312935160723065958900027326211916927849102751577244874047371389052466267818261555460987371719310710273583576477430377607429647454189492934047722001261671819628832677515147258714013097907536289480220120976844545990731926548584836977403009491593939731073195497523784691812863516891308843043261420701026162891336212516921877029541205314040240566418194659172025624414468757516803038692599514682067257758684990302466099589029760819696570245023322254995932386374291300079183369027814856873047631147437614874282166796244000252463992148402862712514099916882642528182658033961137557264668288078193229786577863403198852555140760171921240004596801979504413235774885265740536136197065057392956387929438534146343925522450449157858765863791980143719804634323190189132255930325413226205170105586274832027500459102611559356065787992770893712174087189066951851817429777148668504687313702776030920727227193561981227645373081972965344745298777901926731723073455113810208526452878553250432288460679205323633465063986537537741823556951218099361901513849817516191878034992991005540913154013040952415045401779729509655074848272884216163852439539874223318532470129284034922929769423349447252712283836684572449673308184997249416791297684003569342035930364530578482476978924780088334047022852528145745197417876973096239992160990565640048035344360967132644311594779033267202602843637260831242091196384577423901406741844268855545080810424218006653152642285063459321752879883459211763701955072602183505293354047808769676890485048855954217634006249573737026021502105249246842470873299177421266503000130280186459858626817718566363352718608454199355692907777105905175313847851448846296006707540128800359476185970653344614736209575516316050153853221578154245057431067337453033528950983023725147941588216529363002610545243823101066990874013242638615172629090125222956257720627987307793134469263991003868423680254047438332573833693483951842036114566048237622431479684028257069913431718311657008991062165748136707559038881119520672335611080961667517598004339637653011616381989898644434331989189763462404096410768644599468790727589857201901983105576399861872350625848373284428869678747095775154807453664679268777863434350353971860705802341659848510546507232928317842678589342465771379650944798350970282258681203688623095365648189879231824748299557619696808130316328570962110520358794355687937528065078557293921856112405120890575608147605383163116627755833641096691434892231539202491753061003997337863103777730331701250523425599978385438905371255336357098105761608781881754477211100590151309482627307502853883097339394685020806796684854858163983995809838213847866520140076799938333958554559351442929351205271660406707922498287995478586528108429009082932628467752347117217688300296673017932712448775159633615207833225845834702254785385156526453867872320309132556892357640821952184720652831351308589740450261945958296529275220713193153491277661347580876647229145759236975865077750362348628132523735170299532715598562359242301614300451402416253543354801273055373840858556412906778276294513481638982877560288824023975476556044342777714420221981965654059722267832539368773546140022100812395687727344098571230611400996252655747065472676101260034205012036204936317523976644994638016796168386578653673472658713833564935443127579566409195665488767271755892243155062349106508129733191499120380489248062344868748565309098012037474799045827441110507303663963816422068999604346854462658954763907766202535055148875804433308622265466912277230445984796479521769617174791829276534238647103599275660385700732625900161808421162424923386432185747368156794071124641962990330538379547201413152957682611936114668626265840946307923023156495357116274571000657739934622013780133541082963911823502981708693947317452281201214566585948008266978781948270941625068703588474788588139329979365370442554606646911436381603533579374473502730841015505773998671448106043209347616295478304326729883445364094294448106042217576210093177865098097077307376675101055696304362713783699009722870709765151779968302729630956352790556229927651124439618227059361874953249209973223068234873160443119064591331957164058212238754963060034458061910082456916420743075675617268838884142762579127802588343056930600430072569851200798211002002047991844188516843473333705747501327727603472994282664906513405298930602805040018323238422071312572735772888844724159029423646736724026276260527193901395738165125526185320602207319910567808374895604022422111655341254215947712079882541611636468040883161312281085749707170044205691378669781077459987154728410253410186923188606644555276377672584735638586327283980869662370550594412997128945859589724108207748914364577539411409635250708471823133538973620857744899053899277059570503713037740767935422374643679954323925620149730907458176754915391193225934848081850573995629992617922577401837140431689443079196617777149781542317838930725293282467215340387505359580499194516138370333801659270869590568931545511390406795620795993234793489695041322804865339146959031840311748438274687250944420288776867876298044426492549848559434264373922795798795605052207322790793842133294895008365093733247773136248187098430828701286357220693981914665926712541982405274191059446935956404351041945027421992550320702494000945132285366690554982675970250687370067422007495808704196458171502369787008113483437255300883148036867764909947535097118762198975243088582904553941561710094381828015198114624975269211148609763672448361165232267196449942536899290968279957779727227474322416631233554773847909939727016216258886197076670799462531080395435335047910003575671348047599161408159003889856321537116790051841777419075739305282090022420761648707700797466426687487330446713286033544461148764542925891084448650735553203200412446277585960821867444227593447079958860257403232971291567477216155157569725356926047336722757375104665626001470711440839430882737190043506534654758961158560335118133419762460283098170119426202759511441087221784122693152716240658515572283143072584937351795636547383894760973442511432034668913920608455534969330956073661028591131845349058784990939212731532869422964802845165287626101286619942571495310599912982381629407986809848537328753039339543069483509916059844699046334439836009655806915142466643413788673585534633276190876401483723356837804770027338881690358200403433503320146204349593219491506879081992536579369726366022375341266145569235724868267293309115450729580028537999654313964313520783381866061876415472303932860894783002447433485571918511698149521835167987511090313267311247555501603164868845023305387053173667201212491094465679349181952417490331426035879913840264607745875555086950125664927569233028200887060050441984386255680043289316967785116761282984750925977467448568131306804126063119381824946203982763197021641042206381042482814378753285872597558601931417060785553404380088300712305410042337817995373813900380345330539931912931263383169205105406000580645422574356806115956734375623240979820787825008606954708849999865234936968233388961657859008362646048768315386060187632072962499021431638519617968841211226495053403010918882152669502832821833446569295002942783196802472290873191416161322233246694213484466703038639352916984498079036046300443225574460242758435854665355548075828659873149235576401826996299260713812078749837909793188306923492248481913966792741870763160109582982382645052663415744058074849405917504312536784871654500172136609966981296791176208802989728050175498638010841910710821947950591483654370550295407658926734905440658740038999574329405529506601974689397856389485749087933623938806922304502514736976629107997213675780257976017374384282556181830651284083684971227414402483156105735097808752303611504257123255645126309367063573792550965414937148589104838949084936067701301457966377338156281725732857312249820367505361076438603972440630208298115255678780035894817966014720971350192773191155389339293648960632313117633355895199059028619274732371005717466007696744661694856896501049804050013682972367761519592974967611052176495250044128506591093682777906058613281193755800980174438275834321554059845306605000610940791125926719039962515605141307882648324956829849378605082491397456126611617479949807067376975123183103452885486411290865627685671685613170750730555627134502615557965949824348193448187438208147063255546504246796816599501913901330971697129292661102471814972457234019941901152156927157815878254434459273203558829045152956445770442387455824245903282774949073250422955808214540404308905239372896895868410233958193334633679831320099489569044820301418202338874332959761242881216520496339005138577086482840993196665868423203521177741098172595523415427749919274959694316348752001402230181184344349748020760303527791141406306871512644856121403248523558652954403949877907101267241992718848556012965308669529149838230081699571796671828829089399058701953852480387352529149383391944344342547198426940209752106168929862126128202350380963294075353443743129487365945612874612025150213717719965299431444558098586718032284188699901340477654737674346229806481777777475943162793931485953087169856577588150506782561077376500577738549852533107048253169472309765618784733982409909880650914564194179903006701416059412837756375511136883641009518429546521509319794657474669466456750036095290045827038887914544169321911219605776811201729519099998643861826136044227968925270373055582810039428535725894078590977150525862839041005958445133529285801126233297427186633279198564984358794834798465545250247941234507850867185725969570523921678243181567681089405687095167012773784719619643523250726962320729148037024777326046032690099782318459458846637916994114032152164930203290611200351676166650231393736093912978474261600733515791139671159510027033645643915347614782172814311212066346696740866729054714544582905905318563585467861619992135286727848920390570422171753330641566815186846278710790268884366025435451935140971001934625904885590949181134180476096028953970790593293514427458085756458406450090293918271329670909311560841532067871289694830789570091208115972803090478330763216593470243116006760295615920281464025158114207874949956450354056804249265326987089547580663167568765482768496552006369556129553752201696643381856968118220633077371061599968971859342549062796810444914775547181810305371314579473408654615765396061340704766407497665761693413108643781655463282627482399869620961562870223352203273980172376698915242462029528595130196536550905915654484809741404036268547909668410670398640683348142758979568648131634017001811206174531571061590478490347175240620030944412943667155685368378055024378415309542313719110802943482410484531525878322505492789900360486523876933706265897650567996844110466608607157331193310245299405787682588217836340114231347234554342432683809378845763339690112430641907405611633573193457694299605006796080128357773844902911843150935525818934061760912553367162723839036004477411906911071017823538242365474196177373446297258309702900525177722204358768535686511532228829783706860197846549336475963479393705657627175767038267532076630032290843422978955349311242931784883692576997770165494984358995008551996280329235636126266973290451352627265491089008039139320323355308386156599122148053885928104645768288276625681133192087297440356155748429340334018521139453645591662459488171832474340506958242279473529361100949306599232718217159685771925480694354171627646375717221698957183936828695750843696696619713912239671953965330272676351501213417519883244471898633446665510845839351483479425675514718410027701548480441199381030544868919876167095317525596469523541792137720123185917062028252841758147335252526773538525878907848384251499552015297528463369467442051697499540559252886042022468212547663014011318517322636705792977002088410201497063023116183532493263747244173827863842586179267539037748476161164439334727626978766996222012014029619149790471627747428954855759523098198927270255813212369622945978220399132359268505941742930714595251122432340933933083554431485966241811140118388100216609037851392878452925940253568627825624466119008033925304429218166336765839860458669970983552072030246890139842948192613614292539381872823600090193433213281003988712917351032212530933645550371480986317614176535223791350423677426864335773610766519787051140800305775220388488854289028133424025143704735055941973467708773470211468879237119253541560733831371634687688881891566058972000343720400720377346110526171305775293616595276431055946841353521037669348485800954988909399881293320520989503944075541814684988562755331904639340801341675325145730463022473209924610911801452494744066052132548335666546506273609598346149380524396757109147129829159278448906810039681607486634699451780748874794365142325048037489567543608331500020815344374719649433121559645258071638988709881318675226623228717093368803326202071968368365396142147087992114843915587022482377058075424582956703200265695163169426489199161361301262426852962095986144396456323613705941303761587069235103018041193974102369599904664791205497302663060623746524934691223435736320686826041375475267021858893886092025338643115471254900804226627639316201685170029129904114451404259802221180105042632303591109847983753701989528462159031018217968820837038976805279114226876942650784297207534673709152627938443462932004690867126956912221523658266890295034527629015543343576624637346532622867052081244337847551248042781545105641516816026111473579724215258312509866134919687495765590453983252820349581780522940457286732478999391634853979068664765411629249334869837332712425070131059293871344329818934974082739960701602132523707620197768743995792719926735858859417032486139041307733169489475942130200792938362707118717577799134073632429210811549167823187587900618132956382106266187822511267076987897779708742617125912527577061446709055122062676844472946126188358010399516822010893957310657509711116052703377471943246856794878934422265684424034559028262117508777076443115192102408148407551032710284021939294865034542656086889644545738624778033229984202705142935389577009015428344186081527745582043412630292542384401511238944282944444732677532987366447322768721476111645979042607425571407762180869265494098767131845659566394069687220410526986109642764217507452392064634221931561721238141114055962991092735820959058191823755660787605584435084872194894863524111404933972435451065502609159653401235595642230967872768045452726120628512234942441046427949241244235444452600232532354363444673140588661901873460766963720943916840019897862714128751022666312695146591010913535721911483435051693939175902583715416907459450852616217739774603150381658315541965258686734704142735030980421823859799082156814418669757915577580151488240327975056144260980119135560161871302212447762577208014362572945294123459898346057280664141993531152162686329787595664212863555764692247098385020592380767185267956209572505026835202614739193993856577893159580492325882562454407513364019545933323772902055987767419951091098094827676550721151733803166824019555262574267878602212896306266357610200971987859714960835408361030460332504849004872603447424418911156219124889825694866736356484387010477052358857436656903997488673902358913974802204218842322547141311814394391159459558272919866705677727794819967432650747111771927453511064614611092105778314982689897850487872233113096407022950474912434713305465322150431844301058435724154717069401974415558190914674952421924431232928070864507106175904750369840612185298575199731146832629138840896295512266237650187879112697178372403694453451442971239015123352461987386208234881465320895589835149264911945252013909857359435231701201419053515465133855582936092157127724959747772861872673423787493895144938825444013875641959706925877938892595644398634172838843722833808480413215121840397574621929773808359655343301602490628353460531179820390067307131037160595549496881267081197500227636210631308507762264011637316556897929098807970491556567938422884187643141629905152946897138238912094473477241829335263369559382303046909651835356578851171000293345332841208308589414258859042573702597286733367062163247659087125424149704013639230311044614857766858130802122855761747831455374087082206441061633511487678299720347124712600611430840624782671341373230960205832077377542890835402862561962197721529258447563529518571794665294642228438262630144662466443011717763873192287986106099286879993198454954852927159129705424313266872061796418781459233689863903608061877025903840877280173724269220467432098998672587779902208255691874176375192483944458615815718861831498491839043120838593158492472190058563898821653358060532155504192420330207078182170566174399692380062413757333011442001811607604868626417815774146248525007703752942909800908132018967382162052077522845444389418170206037573344224437996493525729000247776079875491514354202076614808573659748693742372903201153894889318162741239730504027102168507672484104968805836718927665060551437785381812577608568086324952652902558032509632338988080400244803515052807328588727051908123249660017908648415241180934707450311991997176230978177100137751287460405847028162149748603997849995295190978703013146947658713708962274117184270738029997739408294720385361862967260505872131631986052660361287169653831229278627463695869098102916321803461334834143039740042690709927828166684124047499157867308536645989834315712299744270595826795654482293158284760363521353211477342027740368683362887088326658418146072977781715122911163610940498252644369679019625889843362923307202933208529576498703642421073352590008811102675395237838715461952234964222048803017215103882447983837036681907606433763906695113538630668133104090185885698713164175777572981994120060813245896100712565067501610266067514878716835154623552345726296992869379107907724488237087518231995197869133133281737081187335100846169206081649742807229972365137207004326695928144187520280297192330844151213597440209765128299305734875125104437207577524959693361681293796623350713218689924306573106113910082196872726153033282882847163698568504514477053178751577118322504950796824271750943245285010782518828585581818337563514414902241788952460371757895397560949552203666752592484664112241826808375811520658974784116876497184233467475094537771074822034530241979090494271347501869224248730594964650615339348721346530139441939490893952643760425097034213082168504270476336803341616397412725203818085885637867350973469416870263976139350066858934818819098324790811192635871938855569434827710135664762567887288813161619243681169201208167467850657956328280800981409688985020783103790888472100910704964779631094849453385789560153406781758936716321637146176575013762033421165810473680125546435977718031867846965059544733115321922719022999281303302452357174991973115275813154560381698031960405427771838122741886304647538840484458324183789074266695640724249621436658922729400484239107614488090722695399896929588394184936694708028357649621310263557979269282779796455558742277044754202674316310406457004041894075331728613050399662024581212162918205415561675504162164297057136885888574532673738508311798358717894898858824430603625275156566469114931433896893111429109365643846655540496419341728278593336274601769155201247280082407682728236719576586025744745164239550403609746072808074711098510953982443753484853670361724958280247402394169427499641137367974590839813083987191449557676785772968511688910623012731723865417788370860084503937192336281806648756825759817799852691830653725575046099293776458945205181242373800172646195267872173200516908360427483461480274394731626501651478120268611713066456165192385567720785018033737838505925406774990854399863585769077580367436122585670872428774251506879867455299677195410811693897531783113570280540566585955435702478776268535194711684268332304300350008214571336139700871914651998135091948438712140144726191485963151590333793761785471317600729913586531667164116213003949291369111665868513808903349688858813008271927582910718307549332789434277098807189294937881093495281902562946047626281092759670279864541459504297502945353526830325484614247906740610499118304801530379071678619302341454901276340959764081821924549227312105043706939712923939138990144527310431985810819951254908436583501676839678867739387757996456831720417120430043182993720053386301539623534786876086324779113233897417644748322178110356989387392691544905304087639197377741701705206566836825459233515154718111137393008366335614218837756762925183335464267594483931684011304556329747665612808939138107604145933148136238164049949694420747185473094435919080157017770547307887970826228116266535279812578887652002933801979099112588279158947301521983937523724765274491874052969766392454942576390702603437130258972954149202241004196498551753141983799736687981927971919324188541196763275178575847743577021926602486713961945832294061231992298362165453324949641513713549977518075591660013671829377815274857401254624974206895216474594217014275678987397729098297381658175294742868532404660016166774348959476189476050242718626075417014309948504993437896813744559881222399617459297432981249237943727849167289278027089965619530622784061037857804345894445637786900523281875851349666801834872747528086327089444557285277235551177614410710743297496714639618659789219128040688599808891608565349570268507037731153049419644592787041574815600232262491937218038696440183211879336814348750009981564611731280346047330946888566106705778580371405090164031135380695110381220371796891715278353147821970983364074132484201604406268810330887427837502215130360130857835454328832932130453580798039188326417060136288944870415214438236157183860412975534568628592595510199892013453935103022113205955293887012819257961829325755138242227763587480460691409221013790591538030377467482387097011640923616734501574034393998757320151721450301536893480185294829947702288872788032783021822813690719262498017007012645111396486959306358263662249838835724010292683436116121084538569508711204098979307033521504745448173250488784614186992080124214095576029250961463305260435905619228496430248032908551665708339728206775261899048682445998884679518656133718913864678637206923581785177324768096541216385481083918494416020046203643923461284503208571212127462730698936153833444268497368139370550255805562076570261687567820302846856304122810946535487558678981363798475007929043792963478259509608966982091908433481345294105580910555542250502804186795825710492989486555082333653082727659546935511578537177887006308002807469165554899920712459080552456868253746081446545864321158253277812062027796009242833439590411241496070534312513722978125728366370172050727625074277761262741725663835011358286700911985202463431322985338902609359350946153489872561848704882016667925837056291838791329656995714508103371704805179480980254963753322750833901851747428063200644119885955368938476049220496956846933183917901423481077591521149070055608196575332039313592232287548789328154136136749185785567695971737922225101208200197714212166770974667700485239381783218616312240203515834148842360410621432368392835652549906460643223101585284586798136395324060628342198529843345834722654851418027437143612034118870807903107298803187757761873298862415220344842480999650056865528960802322754703557884309645411268222580271016144359017264311306709743301711655698771036539910443310723470725131951351085743340414481878967589878713882099729084189423368591980739799951613403499845490125724985297300340910299872237151158436312154324579023535051163487588450880791885186013022874923598236662758104393151398352229831747986513273053847167493435863833053738731222276087229128049799803332777290676428990954710314546866697058787961781113391091723373191510272398767758988716063167200684792019757950002900594050760973300077338886261513855693151277206096521713787960685011043415694222368472003309773966024987761896010687220543106025001062163602435505529860888149150731165374843482847105164861020752645360435619163951461133253903871015727752025603842980049567945295030856013846891158846381010323635464306172293052921845798140862357227468371505531182176111406066307569728576273247156288861449624553730395351920222317000680894122348947412365247170025347542212225324043141214824619337740745865697193676989486470284029332482132562816768009888268242339777793009423445239724908281665862188984937559200810543464037986161804342684512818900797084081043111576360321266401134160090360857385925162089164116334254422101271902362277283416464778456866056409676416758721628460782489377114821322133736455379643582268315800847363022906019341786874064247674063611790777640925715293210991254488687251332986796460284389472302202665417622004360815215042186468743363274740559323427885378790497850185253091872491061767946288385905886579626169360897903529362231134389031507820068552458020287821997120155953694991759498065008589200100015728637778898920910626455278394237914845247380431393332290012958683861880434223323147750386203185417238533981807902801062309100379071355986957384840390858997333270834005659360972904059810495648936032806098213014164764830138830454634952092866254699097461580298017615747947480843228724930702467298580918751807390855213577260247912195650744100983652471811646921887963040154779584940557246945072917607256884751260801489098111245889390789286398480237403666012554386767805618001170902555689154244133551891835605234235990993013980367585581887497890394438867532029149028068850200543355804333589946093900345874939777954626892564416706090070361575750580743136558887255878261546020402371840982613969831727962347332884381996526192340104975735607499842895600204100961585790496360487333193476684986891524732133926009159348858272253237381516450643169894113963140990453544023811071146919967229944606562020828650247009046750630547999155441973618442083273306233588881105299296426573562183968665412658370138517048972078038259279430168474785568536653183991439976017192595325450673148822335269166750663246141347917691212453971518107567969517603282826528570431892343879096416980489800972572508793733735517403439732443903594672547081501347549449204935725789883613776039618331609522303023186860605442872876188170605354556953657798346460374892620378424512248191962059508777288150297561140896165659591046004858518962161832410170986279267845398129723046711683818858612725765776889267159080016989396800440424342610691391061053550339346091055912544728036387370892336382392012255348311228040469868953718313502304349910081029364758795982450005698079372801684908142273537651072929855857273634541074405252243409560484021005385485081497787796524483822488684684827698729863885785926125110112110535454153945644744084537487641534680143692816110370998114523730097844058112991290794549395974723956527915977937288706057418323318993984146691973398810762986247754951406579123990496430897532876522793944130579824192023750278477236710728974681237136512011858423679252125787068424389507067746765708861825578408773549926416834773567105735442519849794156479388303207288976186670704187796819511037657525821495021899439914557822243869561287329011256038787835002079830029933957872412501849102518394546671469334958840282533449108763972223269364738005383221821633440376186614064104935304627965044439533839171573424280855765091876713744170729123544202555673907870254208199353621425431001217700171215026120490653383993732008948792804865016834112849352827484510784067559355409618996210524701712899939848430568289210131845131005252227840878719330295169499670419275452593259824092551207515352640615028633100876930342773003821455975648206835308054142617570563091746766838782015179913657944145641492752557030069971784089453826782077101663067769419416294043877892952064497708317096015089918554713098183779085594135245666227718590812156033857552137081880389921404115961560662359118215886499122539107909446794270975265305831815734645291758497815902368213391647531535807685916504372284907344566601286124593857298413084820143064070353300819645799133482950661012684949203295978295249183296451963561585298599449873717755854136996790714004829469954900457711203105585538022407580847593593589511696209749675864274055945042340881671146502954413759884435274438643898277450970910166973050450566524467793715671639807328558602615401293856352852675558039996085466631670219772858084150913276837002598152367087283760092307662897001295225008978352321097666345437789829119948046358897296772629324479453311243491720967220923250786409432948484982376644449337595215386915486494742781985826671962387973135320150118697651233705509446878015495006028845108244147167693300255316713555243015786572672480189194341258023056770310030137215246983024476304584246060212646635207572144294836117437335157226530065626980127045019199548442654920596356034757334282369271123110252767120144230544845775843409686635731876368872940778860528068092018687727813298374231894668258946811869888719432921520557142990930208866882542806420784632017949540399437852838675944067176880938359299762843711403837428405938623391974034308155069751106106440724382408153771374137588577650944515547766202951120661059853199033273308687042379677435395979720726512869084934463904619937145027037415259641209439329181021748250416779439775653526783146566721438310876560270406936681383860889875761277843781365443137542264025943788039284517132318649867451247929716906489197364209045806075619605571588246572832226722304676517713270411154163529710414618707631022230838658311696564758588475830243580064309473662549752844739574659246625205134939967473477530927067517093450768351354047200430034506151754488626949289234335010275119909601216070543111669976928910268904081053699328892829710062287393150389821555626218320703203134507764175124531293179935090187190915246297743016581617312949354251231477195757381077010892902967429110404917595260147812315636175265188146163537562144645320154206960011085130350749470980592874776302809682763110912237142879778439747262700852454857819817857796421881961452743480235893089601134334229018322708194585525783542565441176248114878560408451658073086186413022666493150170492603032196624621186908936476090925126384565439538096273660449493687273781218039959738834384421897957878794339839346374790204073175124808310827213337503038520199180762804261340896110875277102107573871739557376574122623072453963379371334296130476641640148096208437544667358550305335361243229810876855953046028491315738776921884831484289921679193812223568674957109476855114686896939017488754235848405548307822976782754417162498469366554342532904023214557518137850161670087491787565939981938605555743952243374964945610576866454417211745563125879666841349414187925069473176830357463722951686676367841802358491946645647713131268992069837377288369421746694102937489950978780764601358006077106325638298703802898239785435633014294318274603303618874455404500158462557759913429134862029352222311379768798022943962795793805755905272758021424941226907668120853522473376862319330366596119898823846775999084687998578808088977596863999576728544944152072081349912588736662592944795186337233742804577741664664867124076105981093551752258474620656315672535421506509037863325878787258122256167406881623808757148672388350620548609911275672948248747557143388577858381044210040691751708385326563030172629069009824514570662160733536072615071940346960524118302763197028400900001029461845473530212827866213508403154987117566434598985758256941501169478483606994183646242565840972875778089290680312370017308300243100287953224238400883709388183865550375383737062932961488345577867785185493579953815615473907575934324271536350738814331332967005284532933047741383414935957937737242431997776510337533628086297337538541683389268733513995887111766694478572505336636778046180278413023742026423862662091178882896993673695686314848379777510640188448743745680989111563140876488655667509777071210465244751555056889617099756781400472874898113126227309709070459703607586962337695755101134822512521078658726948968525928016178513844094994792230478501658398189292352877157353891191247160786301058789876880601480688164709664583516376286137819315311770676601857954401827733421967837332830271893604290163296475915034988818837403776200370968512105096253203575775122648099100780505209123133418178780081105723265110256229867869222344037415921782898317075740863348929706426557156423949403424212353311779584917945932566795655925775816542904034346733597573966938078112632392918580387973573285176386682913337616058756429034126535364909155282527010214767841747882461420368690956338978664451640357946518770282648896300815566440964803684438344664638398912599126410225268336313411033106272978971360528680242101637318497671466553373552620535009942715565172026525995500596552830735555822005782216474044237091007855243781016578421500764045926572120441667930007981231272336832641746804027213624608363179132020001018012569762471508296250640556493792568798381781747420536201101296321272466521504148495114338701664135072098168584901998199947291421152072907918451063796731839270685103588718359644756530731096335101201465634177482008375388794047052952801251633909652404582062466343390621928912333535011505834099574374325162471062114599314321485120821066721431752019006001175622912926158515357572205407618901281010411105892125457976237275918479928856140598917765542063199995267704234835431842847023473820771489253309341687066757057087244650934733264287665594533854179812637531882527741163799701886885992550890878775133570826642917571751874259406078056476171379269292774866049116842466090090818479100817445761800955735770739078382036110786228600518876458138036000726217120410029076949664891710251825514562734192870739880897370796858032264464861121001174605058335264662131459352504449475274617014954264205035996195764092329442721100786559941097040159630160563842608837869889620171122830694120922752470696658690628080870201973736429526275500207322304325110704220402322763623904979211465109260190623553214626253067112608797370973016462346767560831976101447087640482788756553823901193233613246112901687326630947941023363030235811623968701667863400815429814376712941752517080670680239117115461521770525597831334258558348586723903855134032564258630961019772669130566051476259141474949243971369266855431825573362555003557326651714127741573797337549034789740828496612521244634002689385260718535401379874996787947974452825052523554051156031524534871211769821891006507395672827028034569570623569689055207760028060268176162063819802608590020677243583432964852194573519167854783649498428499023107881774462325715338396283737919392244719000325246067274972665740227314938962605922957113078609306774047416900816037384897483695175618732020833149843758949957453546873402951108939552601598259435864063383869941243966721533822055713625516750868722432215196970461977708554328091156084298609653671246504855548198368331183131442753522657346732783422268122317195118061208484539370962196131214304934715308448710281436763455659344205342024682860357624799739272567893951887589794929796457289570814807023613744912899246906206109568526159756497677675340948527498146539165910595100429038278321365444114950318345161896678770085269594945423235281946134705710363341159176030092565884770179289982153312681434989880060527569033975574867308680355056818778042563451767852312524251892451366416721822103151670399226127270641834410377479368500291489884484224550264273148089493177528612289640787863173933224624316950280308979369958848906403436728384244086592655610044523427054712652224763948100143166732900169235893954986972130409672403319722544431877511024638943503162448742741775471951756363344951048452180245048445834176494329034329624965696896171948521714624217651476274773668415841471226938846782507172900439705066547126918964277813765400563983384416545187707533912619631149299183668891999811496657589995981305824755060254596125545303412063500577698463728103872005746284389378319598478663145434780802259246752980227451441096945539513258145287691950099938932503961807114766111856936407641004418486319706679932560619430673588056102561865943141586898852037273102353847048086302786293854656014152166724510367001914230069096362009811989830573586771674645868044578903433597311593979591247482509233217879194992852599262534017248923082500416606143424379604636420984146101216146368154875400270936292888905954585137996384038047905221948597912298208350681815871789297120660570006942810590754778964939110659154079641099154220858146608273889809930359334246985721944448894622963474389175616795172303534592821698695734666748375552006904954586567008044304048518818499550375771245811654797022384318592071663643506114667989521586868391299829013481310518043927133761111711012258815821296606991718418597839398098234442523107559697703956067411815350013281001526673110175673414765940480155589088369790724393611385777932179427164727004895409636816480044387712632210305410006830181982564977000612530135973255057497515978089855365041245567924805695872609062759183411564073278993358078066217122636854047962380084114824144594594842404036953263963939123033397818302051721702338550431459500878053941972169297412871684426547097495911483284604142644473290393701652050366247189915951067018485157378958658259507243875651655626015229554523374024016789835218226224753997858154291812803084266002925554434686733504653504760089943650414397784807753474108826100186957985488700277555137007610479264481431067590259690153207365098300456614152154553637342571379268512165633268112256008140489064581397063932850897360340618147456447526471282729072719432241018635102253663764567495992138193157833911880820833396485683227339513257547440038894984499793263672401305477037372483573059421923012017763061149325525579944344379816955658477468468151049215063565105589142323884320056366302955509255498630990903916202696106615016109588368500191133002577147451003604100263176154690650377794439468222863406573544125940502912376387342121675848802270025564179847142782105525990765409361525253703632278522390720732328634330492053580710793062474738562864393871123660147705264371818368565039034440007837498141523939870709303748314778592182220107924984200411004108460039881802225756856396992585555080014211794064152438522901002973586421702411984926209018765304100431146625317722477846582209786301735712734027019493321123365131173743319423402145461834121628564063907983419727530606939379511586820444938850512538257553554054124020064195407875125371473922825926868063474734636151903191101189444298139925630873215263568555665781263024857396398824893475302457697837109339990645071770306614679672367006626043753218752936507325863787515412620922975453918986714019842323654898747249002609587209482524404987276867267270408491310442668569002757433369511557263099110718411585896901604004052230182695034969321530172447574175934321738224653101171045327912637163523161305892547998824000517387367058310889330374650838685697374075199073918844403971692824914266183845794016524082197722777413968679907079491595297379667567100969761059151301889753461433757668913775416366713249050805627078585008226770500641421786525586072707755000062711877344212359702998385301287044871377427789041716930589666125511325068066413225054869203705214169290777066800876290312091954628783660519417986950345743615273834302007322683202340275226279859392555031413589984405309134035383401135075743996443723044256775659563213694960764577582374016326716890672737356031904209564461182781919249669034195513397149896670691738353913821849459679088512190053084856175405815124994566936628620413169242593797215075386212217216925973530094805396015738037801595383772108700611231597037703151782661056210258517140177778276386907573024175318843291148087240119094953382659767588705724391273751839496893341345750261264651043993051895012623090633951855187945823197810304375132673806196552040286900056312847447988895841031438441069227595234328897511279848260203742341411548683831745506407424616831570835454476226256926870992538061586283608062805145323037872569405878830551409873319389944879334970105073661124797145110441827097504474415666847436787924494116487690874347371308805834526897957221442132051708774449169907671514818387105152740473909865226260954166488629760695215382969179917160512630777017795042268150801334802053255311471700896850121854041286071468071235151026054901542463933942813053655486722038182947022918401915649303225039229901372287148524930603766753705078338033247343416901818084920030900709615763697569444477348329499665154411854469734409463258896149415982601581514586943919566300327180347670793953851824884363807751946114630515969428665161500541412256766608745824989837656141992239226219809633543503110511062341014021155646401381217044365188071544518938585447961784060015362530158275492567839673389331589988012379784697589026185925073396337570775502469239742935168803976077421297209899401633134835923691573535672579294992366942931861858065845854877574420661760175966121948158894843457727290587951972295998254867449212958357556966799226654770007576084774129231452268893527249912747849688919952929332113832225095060748674916303314946961052137476326615889195801092849564761883080973961609802577738328372609334146159940975637450028696008139694772310404677656625051720338078797750748901260724209087917547951709324809353981274524850024505739445100873477347845198167663032668772155631225388476797815036900622162897906310662390952770155391907634720375801886028948965099748131381676222820595862199866024618427748757513561990639630646260826993424222188722272289458840136819490920689552098461514270073415956496398522601500623384062585665106881676072596092168480776588009497334770952961944431947972622450512596922999066069444781518300392129792613962732714563555127092070058249671529232107283526172568300546434262015035339126858465122120199671272159370391370057447806482845072626130966180588395004754508135443358497387876026959365011427777341291417366404673102852355427068592141687050323257984254773565591922712514898875813268525628176257569265904907667673696248094668426462893105904476707627676836661716789143534178942968749685297305015881285375375502226634307227470777127763019354832172348535001820018098074719840501880251269973443787006095275221458746293256400747611967057992127958921077987290406444170206255772414268992022966869043289095459850900295122833315632329854217289184583866802027929944274954889050923517623826801141445021430845610256247152909926011551331908570915823495016509925090172278341348760997926058999040397496013150561954356699174548772698027051343580649892025017525457950505674119367689455053292379201689972446780994674196802852260111135165233413490034900084217972605603024400945037557892485539129364047626521400108637675959828476641808260404250620792712486385291506803885603750511273666578715118373889261307104252687044758641221698699112904229597243597135056131842598349444070537280616166783838448175559164119582404089209650486139871862100536468902201094606790344870843711350330429132096268177017914574650777321348943358663375228646462790553256289595610474245484042732497061802100879800292547255070143363767104063598346442343296135175522456060010054205930660021304247024717003941585168438044631588247954072496531909636647768073854024854564418760215273638129552384802189322508111258711338028432082332957413616591923411903426947093048987493577538462981861753007198104008803525087642733968779354305272917579498783089169134889382642310677030377589933275281917691268295176014040757898519511303534861569740938258758308526036231925136130375033098364748104768529094796416349165702836118580871256319379422989234506946909129521308259733522230041442698942833346562359812541433368017733181092216107054869982728259662742107594779084274999941710779506033401935243022382843678299688667251452398943574184627760426277753356570589546905010079057386717725335916079620622062581029960705365299264419746449472357109757815974480609583936534306355965172127989827125370731799457859495497241009202264286172001300662060563156178674493458174824611354821895608513539573233198128528355237213605254860332134223193142147446971502198331305035478056580428407696872943867661883105036105976953089961241826153677854463249783897397686281337096899651880100246018764561518789362628524108624627221584202007969036758194803642120830909155571141388776631661511667342530979700666939954447125195131640106196865615895002844775949220819213373656382129676474814771734982183874197327046139501939395004940699989232164253875875227959913334735022533714659195815037299329211721381180141580090784486980958690370029699312375066818504450936762947802981821983175033732254178354719747771028869678383904406228362847184121963687857044982001732573205631646518174235892749028974826009014206557491663399633332141695506054615732577584602780288992544361209974616398248430825353308008937027314959916980320847876066668090197071734680049763828910808934601461745089531607626984725000475358439812520650372772744373336568851189975025758363051512940844666877794166369843449729800702477513841839965455493639028391742279967357422249279959031392957053869818421592261772913746280518511203815185368822848323683878969176166577228550912465227873469654580598254430169103835102855211044674236477287891296146948661913551070997315842715210810413136536850339301265353197991524893155447523650740485653248711599643930745898675196039748250443347294229229214606953701420004591125115941486461452080725746259625882728229617801374345037299457178342680092140653740337101090199970038199390909820755797569497650438475321909745424731156156053488288420565931784504931633079077022281384514712385398499392537183089974692495110701794834870824675809719306833524851338020050066067514895186636517133367846342947092843009912845855824095830090057857291628808612780314240927080490204587728136122942967111994411823381528532225624131213805950990682667165609658408044869794261762003643196754594010561646480383640152215405392289291875922726064869565636067658119818635168771206194279031581689488317116528163123257116969187922355096381717387357945381432050954859005661882120134857983971892372144077904943135997583270247138948495447246581784548118667134516958300143405542574574410079255951521165506792526675533460113119535527333756891109174060679978073628715290583961330776642643478678260642884896850316599361255563099745227152769791884709304006888000405104070518597888588704986449915996805360726078925074939508744355357741250622726125548156968574108692913336424110108056534886933345823967894215168298418751685577121928392834770224551487065298126914150261261640996294560553835584965348079065900036834581538091003423569222134237636496774283086135865822082374568223921403747107555236216692406040101597287339271328438009930682102923355550030912517467050483469801567699992048651054339438303927997149845624053117209944136119391909078732329529406633296008440767737122901776294164359067996317266914678201289940915307060520738137568379465309683416879047437145717234118660472678232102812496283791649101949359058159506794678353306671425717940138445342366602055769126653576863098370938534808095574591229429374641056931089187909532216948117886898799400958184099754763835062372540315549447491135850477119520544034278128859102117642063635060058982781302570264753739710818467929288231580281034993500073618440984466897868193825558594446897163307214120729804419639772197367061859513074094766911759116414863757385829465384630248715708279332828400371532238492740848024383683395454996177505150203305064716714036023432569275421517904047109149625908351503438033442750042802549564743397942925162183888317351127442470638603304615640443318014557130385043211907255304484464818815863538986738521059003895918412143875975404199208193252951382758815393639298825750776323148463257382335889741356971833010639779221493242168515811258166425834079129472331731342187241412116075145610344050724957833613552575882334758635085928810346700537123680402959999003748459137871945023448935363963207101432428994076180038480087006465113503217323289041198610217722886303577180483817160168748020395280299685899553347632859182742814316484997454543119865000985683647187239219288969473472060505541828828484986162035840719893585950401154016277019665214174461816046842314685544040949242761032703937695086546776205860214343873258928791481268025474946377272472278292491952153262335621216890483449678400929896653608470038857657391033224406832143435197607192923317635276400469961017281763550848902873496724999072420463598389985426024816627899792487650755454494486199011545849520945709276116733533017575791039276179537001797338697724239279573205289214855077275243281743933035769297840323592238422623625826388298532838331965877024109752288642016242647540182862947684873265131210065249774788226135825009153100749383985684703861095989759546089980717569875757380841376574577710030372474427396092422492663929716504726943392153275545087195580856173187486530589809348786656201516704336640021419137285442093441581650773776721628515322288292302440493355374619900550513850425083282490545670201604980243715640447180237226757071800497229574442838380987467828728421722199841603886574873380566891700626224961479721226981810427629025712943291265365873224931141764415796017348560691476489263569926945092052914411587173597200232111454359095057039449912486171905761964902023080479792404902887410311087233429938561652431039687079190038207260014793267140500536271494511722340001131786454348550690226329851724766988546254884429916488434381315835781854223534319904748311279301868156686777107040009604600972461134576686178140141412093280454428426616795301212645780720363304851767173105913760403280306242474451705869907178353763264599284832843122016224450727890757411845629211948471782324998441409174615368827784849702499567186696202872712513207580084437077846925370537951405500827163711002705869432189109183103935119214462832824333076559052138706885671318686382983173521940255237133266312806584204146383490917065068375457093481001549400470967021586444855984848495681651581722528399636346907310393376732586977300294968333250967442667437390658153117757502782738745611350486891902262022320200092461002633682145690298158526223000949737386114680233059286549932166610745480305369148247769233338842847754695009979944035395191864969957394372382317176260328662480559879036644290113554644131815016918839534807137926041307750575261564537819348457402437534233554313261975780669511738436808621270621767189680626462470343767985162722238130612219075885781030749316327781539111381224150289593077647340976971673118258459185058744006754773059227937671318657327649697152265284992618574466906873103346762996928858601629632082058697984783254401643757873016873475435925258520848682242276268037182318238906235218429239477923776536770078979561823585511676099956550498447275870339967202632786082790640244636543904500549036142811823745574527990186288283092862407165866742859963761051244116942285526890806287355747226842631693890099303875722010568315680237534424666629548958985895839425797775061860941029265573667568064590450758140216664157209218894061462474092333778280044767425847669138464797408708257534251120751784264593924006884615047283082909026416010579749236439249715002826633868299773874254661892973298183288504460823745092038239669105773494912650317100864263480337247055958289695727357884875021567856367566633155793871504297002189205566127227825308273591187872968842096835944352467014832773727391618583596768115061834901379388792038561405679732749936378175260012413595511795418862434366833814068316976502056422710098806854363179668533823620766351082921134319433751518342875552052062979764474702500314354319607906701736648582905391278061239006624415788688975720441637438624786410228817811261297211475991710516106455905544901904854389615697756111785426174133994200859209324994305055992628699018435932057230032256806336313405976393266624331371563486269487049869223738316357825272719912653957182536243590675827964534500198220288077686933810438735380637697595673568633114447366525842252303427094446821702746585682694875024182488899155984027330800227531065181990197134605691218302376242520932917171131979322542678867999703077790822072257683544385290950934651220785296341430316648628152361353410826063648294824629384380949803856202164691297100039371875351281129482881909632634380970603782117982492893531362605573362024114692437603020310310816166237031288953591571676976901980763332827575777165871107113023594409934615350029271556470436928479204353681152678964623957729353224251168967876352291305631212096880653064340952625314675776167961767560415572339040130768469295982752469127123623154381566580285439069705370076805416330591515626363177821393070629570061282964282505215862774495819419027067998665354036585035090523723111541022209736410428184443930919650936439002194570853326006132974536026668388040188185357299110196370056626914709894899042075647268503106895672604364644673465046804409398451268813914504703353456969180887289432544846429561511967361928422046668827317030048944578064429741127318212465917929673947478083285026111244658804429514700005495060046006154079909681386114517850431078223138629325124727852564477924661571986978416536151330023936432177328876435425830994179181194188062042674374522802204517201153370265472142357147845995010358844291234019308160680643064276994077742978526422951930760152702693646810844361874626446921489748877469331904744607730017611532668138243010377275801060000807754096887725768679045465549069289996849580938447152364214082906485340427110489631795142819910301754188831267659303773602130500513892282192594463462052932409803207389215858406764265051016430545018627548232713922030008318314572849186117766921664244049398869858614278126257665272588638571026008088925303062288146686838728386691114101210850736939334396983705809571106408201988701911895315278468264476868079251615252849179151501834495195130105694443324655773732117941858350066613102160544015297187228997695343731439809084573588164890386423258686744290122678853306177921862878706361832649145979174127674480243428429266324122361823318223299577235326939594729682772056396877913208990316052318810143079741467057858466254600942981951243393527039821492617775419322765917640576608800221219269356082501703705257589929450885165196892426453066476477138273980697564025807884323549269848292997721112437046067552677667974985779200677884510195984980612374676366975526385802026687368955014185929502869429391298936543528746359773961262721935197462026347229799779225774813433673453219635756831205941794207572954594052921339742174312840065100193668135674757830099211576990695139745099164070975944566562525862400353757615602977173236360524786859079047893639472544704447622594424991183923750307254110342479259420911765633723028446683556832155576424167020094518067158364203957487896549640803566595199636601346350230476727174609064217728471097259086383490486816741901680117922125830783391473019107824672978722810965633257522679020149301955788709998346788520379037545856389042817067943017377947913675253616196618293969280876878796467527673474488615432326266330435403146139050883928002964094430951834531114764623199145565305146425237297974084805641190157926596286042048299615937100003072364371079016696967598830689053369851090745112042233124938428568299091575508003973345434102687819796350422253646502750842308928036040992014601519301830323500407532272796023875431968742485806290123115934675327750555395623032861242692477492955378644005145345332735806574570351701540921051659100331720823392941588714992967060449525677357526203273172946406760353126342430871591475420268175591744720268160184009856610347512778876225068889659304059332297825541230435335389019371647000248965303655321841755894571358215034140180869657403482824449857684512173379166804737796348065347534142064624328682789797472973044871761318472356450690744650194763721181310394404907715173760144856359332852366880984242417715612793882863364964843204242995457389017736202699837629466453252810943123758261787350400172194882590563584763922625878637831014684147722990857418147391049066858542476246011499105409510280173741287920383088480594410352337123695098479994765177836880604545294905251004128152506128069265888192131737225222489740966509575647703042908327475451562254801781220911949057055748806005868719609206668936152796316843861168101435361926294921430843135711281279012809735855059567300301115396561148397930457638807123826971107662130692812293348583825271971255171775470823184752247178201207439121701631709067523557600068878265156438056575700245491375918347524174091129825570605509966405659564099194605877995990212329996512394258479131493091563654799525375731032302785650816269888114358562268825009012125310261454395316360638233748130350744479273592564496753686077147737255830351970591143427351374452662871781336942899168407514354516804806098503607597378239210463488107685451659399693009865109918910348229577390110512058856692031953681653068150786585995808955159598169416021023239356232005671100554871977362862972813257480592563919704700093940909694635423108767259524797770998058983395604393686069746099295919569816909597851260244095992736513410990092557087332101823595704485942846002484139254270281123613323877810424791267655914555353316811865841625037020636351614404736896066164180346764562262116602669942549251392338130969099640950247539283318735201569028112661060037619541085134814049560726593084710542275975296389208655485357065594290603501607862566285437010631448343449219227505382866222820065737115014462220272640507699749111799228697333440828036890299074458128534990416983319914386777230290845520168260512999192851379332651576216882394822160446821089845546973964244895409843757340197654566231902793510193224946189852074872403918828671969804609627105420362027754044178829330402098911464596170329036537572224746432423161671958640466814531334738277780237351946676624103514816539156449096505239939052295322883937345824046274887142531447256054108793400655710885551467283734201410384594559787104291406559402613396885825256545622932740861621527405019302398940364726987937784400115771358499934407210192373102769385748047148412853416111559631780698085953473051884466602137210214502423887209204790089217064813873708574713712035929167462566943500044844094681045375392308290382123622517114298118022205460770534452240552632932388966577208069409255447313345579114643492471619569069982506537041061185079972830831310848028254721333893230084574761548371501452399147283365886307053382639384710019221398566209672262567115221292748533848213471991349589923250622607941885113897528589136267988256910982614534584730479064306102188825225308157379939261091966473998026698987376738985711382304575398580965440875509572433357658738865213867310357913490290410377445015195998786977051761565078015387212065496265462008291476947791500741206063339519708222237960941088752631499322952943029270177539484339597685185860144103648398709418168478671611863684022800564210868640459456402249862849380079614536261909669932007183528709772092586297000692405632593495098372253361182056791043454037278333851985687918800766724235093644059749409918592317948497475924529415035133697474148945036721762914731241139006867574426935170759111055173015499503235870211235429368180373278316630738865620694388286646693169192892232587018220251216910729003710055930132728292304089139825358919084758335126787592083487728116768755315505391748375970266096336803356538766234959784325505353773424239161440788056200430985265280194896678457874061726314820210136242660378167289137885218614174762272557018917484252066441669286575853003964230406752789166769702657305682372271189897305492675906265944131029282086302091819122889194653910210847874051200020897332567330230471153820248132478218768083161207471517634345303523446683970570835364230464911057126379433483460877373048502836969494602142028183509145456844475621652294425984783733326502972188198417015099138752916546121267553424782957470416149193950187778778062326485689659899595140944569828378747001331267936547939244957742324662020432894556543654228294432675874394608547686776685780921615280882677102606829747264948855096764310765883396191196921375227846745101894069277383270158971330670587275800650878530241898084713108796632646260588000128891570194332959788188149104692353037690588692966052441757991164293833552727434189026006229670029327265887495541057554595819337881504420155975292414170560877250296027337216903903599822231648226358139686193073796735015539390102563712962294660878300379689068458371638707014519449672885382081459437240534254059584966435938387637786841064660654749511128288038124863523352561529609373774425897231052857697343257064640812514249179555494724173728063000645293977277839795007078850149970172042535734764422496780831953306231590257029408345635436552379541911587654914810297107383021874410638846772230390059016984191113171646841653105765182557247282819283110115697542132699814579191560105285388457669462735586818447133866752765963997004492922776998072608126938654950832349003324451921486188551897173702163894272855734989409526090729198172091948260813762999865022481249236018723959054607063695081320092048780681145712609908007551480305207242417437962363017793085903032106480979037744337144244555345924470080697538004704065736265137599790354736161036767890499380373411686467867168518458135110330722035997147379959517606825348648390940922371974455642891110729830754299314344315834701654043939033096517350411783749883791764681162187930481584475999235338940350218934397613452612595825605428323603305761521474054042692517957709772687952267151352608853316648700616948940659564405264733200176994214800503093497128660962653903692574774456951679586812817104426810162668586202712058024953082090995633703354572789561889175295598572852363995472400068872009014635448796375816970198716972902731593761788679441797228632766715272216624140131646811251926879186338980534903797785380594475088775362903440646065700131588411418919909598658958991104882460903751819905467460474033917160480087667086344976425061628022692900256176952045181414838692078819920401356870581702953776175174721499803637259622461675268197224780108014833041446719359646688624128629558316628050286561046171282544286025980634307794406685932591803043806554143511121839094593161192805923872007847537058012586558298215628910663520829592516139094232084825000863188521081119974198480813647056647218325603143322064244950159245235063381371248734265898945499648310054060686692056210313507199678427473505996733524112870435932726445815051134960246477711350295218434400747983494144907751906719826802817161130281140157760551725177865531104538793778055225029079523039755200788155027009934847998587859736731333591614786419142559479132100658231663154801071903018374897354259593165950231259182610716068136358363884166717007719446405065956008127754349776577984466779939187696534706044983525286678133761550031152071140456385598260004298700689550085037981799842583049996728464446362090199806806321258385521801270616184737756596896813191553553252299700990127437609540477106111581220070679684374231845482127015182719688486767180153555955525715008077288088844845964282062011503583148805880641615810695920569159960523344205608950413271424641683180109765955145165794561427094691138311746812266061036945491196031967294092159972934022060022770697389689727385751817711064382236649340882919862079096326490781529087048332602312150059394470294386676214142969739154623259956943209132094621737601827947110851500411378620279940770151271760324814234130028932901317623369229594068662860153158821509927191344814285869709507787280841158658324439484115473289514620698673798426945821361022749219939301265150255491116950057737765880336378231446334965061122991046181559672076498941886097531899448545257111989281680818339321526021056817703564374866506850391648256037963359712844032387813418009539963221631696641318796656635920153094571294084343879885242562569374061144796247644135042796296718645223528003647803026059080997770741362139845806177401478162618799776880116283282210491037298704654769431651113241165055738917733987222337249947209227819837069802881831660284652040567557272310918746198328628931195367230135992392965706857236280331242473297549173681464021675711153764783431158447812488818349979657942037804967040296966652165302686584010443738876566655241337537320314486829710640255496617832630418425116441698909253614866328743965780874371262943337959117015714520617579733887841602327791054721486257029480305357117616248446686476406676991546242611350947783138239938495339300045499481633290159864672409123974294013499712595705346933894239732517044299478300147460598619289521960149967469466104891989177022274553779729402053595945471424694395794099139974588661120036627575561765290471822753335711187757080839507736462230199784739498253848197533280288409418166648625641376398349720560133664408155404233798812908167205039417793346646498353957447456622841638823410374846378628333706214336654360433412906595496674934025763604271739979016743606208795160950908162090803635769016904023537324797663601144568024029544704501789605388379209159796066656250066166350309611361821569223929624864549178012892067423537073969834642278370887164850405570909417126526919387427044403414375903035611553810552263146719884594452119826201624993368844617788726677699901224712421776737415607304316779748829120487763617765927425007079761704275131012569671443105300499151260162088732978242708956837112650386022967847769856349022341799738585291860864184108512798292641164119184526892266581639326276788059531230063681863881953083494022920239711795712186510126359189157655945809661266999476022673786322609708485840326351721396009699383985752023423906319424975553265122342698814307061993608130987738180511631189885433897177677227356685490993200719406532220483276095795503747922208976375852399863395158713814933476842139005569405657032632622663667740653371901224210502412352177238771518784689950786124356914142788209042661025547702108854075583635502235732065923384061295243868278009419169230945529118606359738033094053825541422453601726053012987662443111028826362516485227751757887864829823011061674170470178237245705624933769748047762025372999605938670541910429088817954494215875504398571838695899591303977179607972832928579997955364224108922373614373162349582741675761936057580442764829801668153349088113464368635344215697167611545061959785895128678650504962466891524913305184249988717196111886084688634197808458984395251163994365425225177154766350617157020507442584928531459468814595437552726807857239779524921640525206505460188795329855871423394956041722915348747333302710287575057475487065142298508134831050374431554840881279339057944597784773169723119769149557450690178089987342825547461536366115210549685164312013506631983854983193605475323792094725754021573540512115159427102027880076838894296167895106431526772380291710779149170575237147923416155006754592040629905525533999564208163686688515366156239419097232669842288039785226062874971176899836833079696149066942100986123805438274591796145430521915692785866403495171550988172807046168097922978622500851889603916127489709558010940201749613756082776974412361663396215170672927882179842748121541554495195570095047344886843396309082412040596600989428143780774355862826155825175432688563028570008768172151532634874021531971034725609153795888486041294981448187524173906512205049644007212503504166696069089916301867109997794635828980066541381633908837021074653117141937727926025638645254164982161705703256314488684790029081249352500398183823413340392969892501151641225891390418410641504340375633797356810294926100408428428697067994016364828175643239075892766048212044219320789739779695034142743202592649253911810406704816848086379940244269337765578887427073871047310214095422962150433992755492316013766944175311223344209414988601539595691965885631427967687229430686719664339537383542793236160186747965448142444101529658882707533550177828519713246410225809285597845591221985272800486452089543886442439729376564319586733704768415944271112552005169228731062606334301414719558091464758225514061995942480898587580200525269517406967790294055435194487621713021214542843679680929225134665615596894218594218776519059652409359426724425034497566323093424835091275219157688702894439317216580435529807128781433609166173576033997153893698826242417468847596339308855311053524139200181830185137140239213217072317332527272305461822024175841901230857244077274382569920498849138878703716585697962046243505601673006118439184152871363184021297271369404325168226747387312123998900531483259485859855277543377681712742400065765597532694869203033131284365864483102500206432815240315684100082770891212867560914660471442408388520763206349687124120075714303489317052466707551329674126779281079713975910230716406144622169082322440768402699488058803678888326717498773919090130172243646560570938049541431485369106550664480603232789543783366670817880962312557010949008927343444573657353567964259396810744635333269003081933670841298888975559426057110430481078086686037377641887980405663781557122806774448534185914422934721486058215819060148109126491546036171746052649050551497286567396204117008237354574921012220833140547901967807249457449294969323218356917113800765933528079245741465132876275445401599606672774105708000952881588915750054567780441409742793212263992885430266253174877428455239623907612179571498834327498225982640830309505969687946344033836932277181666343545986496527326948772214953643073042926284867600006854524378625330596123891116462541264471588634536122710678344522340482210096557011703863518678207411082443124531116480310972939373166376330128282668480061984420781695319034537281871142217395601775299500993165025440207193966403677780197678617009747797565647870726041885463838125719092547000678746679248628554160623211650566656336500357514576613061738691884496555677809015604047585915889391927014478407182442096464619200049146570749162405442938634227588563511438106609954911653195318755279074680492398374399832887514956656228245444032532860991913467615493387592621158535448800124077780073251374792051840872522076527148988324828776839831625620906098500612982652850173232231632318225536209953387401303130511102780594909806637963980626241071674154180054015423523622824083888541182543595765272251286491356484421194181582301796799710386794560330526412496802635919058309218761022393847006017399753838989426746723612557684683784670278315517228462816683788701946385465145778416007236493083525317839926909765275773433971833450706004754688171468731049525756307154930075407859822093774636769115276021218127975934701557087361196601090962016259935596911406355386060614156624994434816712333467496023589725814274740942784953371184299767828439841009636597456125313394144175669047483025441543138491963304214907693824839406856778696995966043038351870081926337019054948162851894715754550838395186399751796029390812674124857160099937227104379672660158895272399142225016245681704426823497924806648417190662154354214997872063095509484401885977039043221945048611392227148187549008470931834096392968611111323662192063519572960518497895639424372091029729453462509210291598921680559042595464265904627619566120950335006636950609779984958263837338494984382381508314592265171275679060904388483635941041140614233150008636054521570718607113251096833457475487932964324240659751178985286828844912927777048592065451510359744096777657606665281228765869112713967666038562399085330053263301913824251068750839901943477212722796153922939592831111516220698387206448426208130952497116635551313500663079020987451697290148555928248111268652827901016935847753118520095388338412895951798518611455586271724991102726316044248747390233907205745277720416712909670231975060420362570310797318006214172709066223233674005701286169501247563044234090993756444893992693468276077382662963641169601863142781682970004907851784514241840625736656064856969453820495044989849899567996460107154810732802341869875243183421064982533762860464667189150374209226907104717880086089506493091944459178769818055525801756196267337288180997124650088048508892179884021532766468972938582419061401274815928637740159404411276835975027008270086190756211786772106263507699517905862145923020818859991852897905892582615452344724034974315333994871867660027735206967465774941094062719628515929114571892753400123731937381291446959699890425020502627349189151729098738710956970184779455305890625404808992306831398884173894014749197108442252976257793259925321344018399438178096173604541731767182241366389686331900024237707461972058383569900498166404820879744684441677955255017708493721090942937828955088489892380517713442302535324974571228320054674258794906750263569542225513420478350771906518132169146022358632147929774863357570675181609506266070337077777228269639252636835524104660870188446642707944430466611055477160047959341023268518056534444758645497818718715203940269534193886481737766969259747109389047329524972168168928809839903406423642233338225600775394287403892835433414259770851912969506541270471074974701380835702970809971565201689857322898533834080076493583869104369843399953643604745037584062995838163458059894334606489440552635456026824308769237349987447863649027288453275981471365266085922384268800624550841042417529120559804947937373439855604061117116233152320446476395231430235692381389741418745306643483943218037313996590777322036179603186082029781562061204778874729955701432514380516875862696198425598412938734101349958066556999981740632520779163904891308078672166387429064685563232129558801758382675594360287374006347333057080559410797870539818388969608121314400727479027207054809080741699485628305498428023767289708704076002605498571903994774290819299089315925780502377604583548428367798554817889789588437969504677572430763401842986773246722893188083836059477846620669515441358281316600037305079834484129989353388847267649098340021642770574087578563921500754935748182275367758168351510368313222707015512592837808996132500787670656407105100274709541265643172727629216692862491943396590265900182359715318525460094727824591082443765718612392007182621888069262660349768785158804567815947607945809496022103797045455178293282973104087310874312201645489341828894418431302719566387584847887715624513054444980048710722103274298754077769350193161889770960112396531766295524537293334275294934672773354813467566596873032899033799333866218197883169536854810782344335610324826465142287420928468803919920630143779521196633305991468665799122008636286180156457204421803290389732591458282254066251927694468041645043125261093681273011140577226951171733353207302979374195470922910746925936327869108993082646645490697979594523789830036824969017144488129952112969649847580091140001105050164070885783850414889165975122405401626420078013087078635077795393432551955060292219255842896411715807897486090552737103668169538877347223950214695723929852177868894371258088096373197234248420565603835607693436968011848046400896399229645754311041176357720966813172679273580783047367827386290801943797605843725838528053578103442519995872813212421842177985511538109196856294079089060200765123919817353463542687980810056569556164787918646704184844610439153990292337648942737853190994561290180308325371278453465983105627789069839180188470768820126360741463584871860195233555713324166487512825957975809419893638290732401064839804585994263939780680311824523042625059973879863080528752153944904648841588066737069575970804521675101320894664796688092282573328928297636926508983913483333027543916370538440437455488344249835833269969491002509389520194448432218123222817416073496144331386589307952093539817010763017384592983103955600732306739103314623861409650272561163699937170577177953322451439735374400061735157424874426170455520218505271172525547216242411825700288386486355616223201086533841360397986651399868004204605913358810486754906212244414773882938819436319904442435912719935039516983166409724695473758923633401326261007770464515114321304788066990053141041514976148523275670355987869955453474884037038240000064322373276791320033249763879692111633146891248770567220988440883738365929261557210696972635279734621962182881643092949618744087756901871900993452005975930944716652606251617367486100541651177170025668585161401683171369539411488857405439411518422546039916294421046440964027220491939915119430720115943721915385043450102523697076468877806099586296259546601219191002464624714584556511065680178045915721327716021275123080479637124133802203395631912363741146102392815265247122536607637986337350039854365523887361806085964325239542995754348395735478332679248807141447909089089550948857379187640822286912012021791925846349033268479894033342984514784526354366887588787229263970740650697760408705022641161835470829767482094640706635280352733161435277449287408844595087523477127469538285105479797294381286841271915087918144066225491743891644396172393648387487347051673492701596009604970935852658194422450713599285260750777044880202082311745837368590117697531625647738370933500340821875090371463466464653530060266385623944765529838204402837672528603370348105813717144434844490971044695847783066865304210860047303845203196696053053266390989413612898669676863899006576557294194126593064645049225964019621716444207351378760778573397626383867679501303097991767553904775914626311783138635524688754249400432933962909887985405415031002187269266924485986806617317245124773330318227516245833919942810521152960143058356783449213391338041899393368542013700162528814340455496519128135135579675123346183090535221028989242188475661996293054057409790781824160267748592966256921823016961296484712571857598565972214507156435486912377570860306557078589125817700005185767427555267078712627788634781048184978030024031823991231616061933372222967464975708361608248128954756515212493122791147568426767890625532858255849938485075576004710035382786513120602852705676165563350643363343007258056683734759100973997307959126497015589131865161811546268128216035218342167718165688207564740951663058990754070775734429283550168024113054622813924790898499794817845441247248996030758472273115028395538201015265028562437671760996856047320106858678466864568010054334275112115591293183753759804311674764560551215232542262813461043171421426436090075863977250009986243828652854993080840888183195756760664361794899945673118666575618821846880278173651348904783280510254332732087003677988623874162919869998234598556127116594369125790062110178351207410892638343246655821476446947432473565598374040204708949431942925598395709525628828657600848593061394973589962356505306424286555879875652495780769928480684977535380326083381347979713923195711360183590684953173153112892004643389763328864815992731974169823017463693656111465146413426357750612459952753679288653216334745742068995134220090816604867935864996669312158120128079775771396036913625668831560124254576432155358779241140741585787655189530536402925986970791219446918359258836002681464009504908207385594882188920348617866164088885303143357628561186255929504926511577086138898006496935268262774178917834465588292648320707710916400028330537736851313414476494812950503387404483887925285403039287124599095442423622772490920107002406222059769999804225793779440731031881140402855088915485020286542614403519923022195870437488512031619895357323315424067577745747012731555993494689175797578908525994829264764326009345832226600489033632976053424611390957056367492143690634513598489881389434039582843673316695358940184144523582605381177287507520929987971601786609494319353513892731541242365103760527804829701772381994964294056558458873076621223140816225202309962237232788059677517722498240519360379538094416852106663654307179554786831734000074662013242057113922774726346108850614198462398622426325851871168158671166477262976864595933264660691824314722801071307039582478872311108868657853457771868718932453572792632675168981521561239983365780451887445925254159867202076154534070411361092220458064254285315033778365079989454956823039719307008372377238801021060193717854428076269327765306743107100443734192849558092203342300094421862608315041814994955193491883348152316793262520559187929957198677868168723844934250189119754992059866027896327308284407720322018120119201974703892256771362903501308659954302533507587844605719832183386198441165622253582474016008974316810400299026900041072009586637341107040092751769744070286140175093787963916691130653241270898489644463904110607948504232260334985193913382351199103982871718776101018508251645888922124514874598084709794953636200323065294285133227239681288256120411709621398006723043481235253329619944712412612268586905433556352970722626950463429570784783504058570832623851684343437639474227265492961304015752071153834895666061288751993737605570662864092158577678671060206577092519427544408238547126826178118343205363019465481055092479783229730028980458367277864252675671743761615863244056249186296241209742955061151461699450161275399248924915376561267821095200200260567222246246465671338293023919194259404367361909068535755189072901000872213850710361465460717105641597204283292090909543130716760068521384437185085616772327019024177250571139091014101860192095001495049082206041593646718044356151583448554561553557527634769355322911200920467335928282110000242536058485524286714673706996616105487613182277441613430771351494546382400761499569626850208124541250301162088343826964729111118723927922443431753549472268185345695732538087594932437997914113475854452067988241126750502470113923737884660042950793598124005751663233882017456209237151642573751200601881743236618841402298263195493326354263028993321657056065464026148919065298169007246833266229465574927606106743942647712691063697259524982531217370796410333765851317583839611316597496468885643864652971404564659182037228550497310059543911496705291522808803795563442815261337420106135332418880786562463938392158278454897514114774596203441893088944997173411355178084338756538281250103371868957083418611391282648988209519332111664042343836875849535430835869714015981666441616699384328388574691836773561063295995140150446598036175344190647242141909594702999974186564795943898236721250708426956200306559130132528194446135671277719023071264050608354495157775146416863277675809610070421040287918618028163293402965408924519146658751770136622043387456403279168615238793031629621772072559529941142410153571973283342529434365221831964100585653312149638216044626390379205534390482962453588486551607103279421125741298416795340035890952536842697810582609235717839724486837784663462874001446159121856340946154927931004783852568108419789948287728518188508711618991074459562830347022450600547043348979554138877438464005199527971838064356265161742645773269389564978983489767319551893497149204061507087967680793815556520882631046715150098765030995131558069281877908240764570294671477360079588341576166555733138072620611044622469195424272553307643627611610426031508663710037521724585018545707377675208794539668073950948394521181341252360571788236335814109426064067007545174675727845354555923176296831004896089697466972206516526136241029633780691104801911220938818370921207908480897809925286042155744309930854665899184128848242014265011921969182307137596550301895108000938738942456236853008892541925534293670693940865855354260977750911749295716032089889159974672973138935884782678752551836043839588146365994608050300230719160958217965763553664007690757940683163463112386974631157321626084707326837358704663638923959495851767879945875744706739884262792918463104339713524102729881671963386712189125927085938134106257635783863279587743895416704995109227496722942097468075705575343072736804299842127470009613447393663317094643058407648172830304672879031723076264653929491036293898124504492139787675576708359792476144892450967845396141969706222387427025212439418288273415554640164249027155789337117565333135894313845328486900949552330482303074231373323089481717164643972019499069118913045281889812280290098268123167269494672186313562553347088371796941949768009917282833851672973939963958018372432550808752022860456507882280612086240591114329042717511607466444217075499386230801201443278806056400600076749507829579357620792864626455216830462069253945907652192135741210294439482487738451070001468512234283567990133731371993573351861396508468876973486106931975713573946129141403959813011399329008729965883582792692074753802562208185362572248716446845826330042667636115098811789227505566531236867762026268382526746162526691295828624037034725370063873698860132520201081407003604514606884451233584134167431716655913874366926207464975180055528449535848936597148082563304222605451892173563406086505604912325114688726728863978887069660307183050606548194359876967161423514155350196879200070009909454872710848739201746124377861893203509812473601858307225677111369691038461047115739600801974083096827801723078507846498913408480077346676903781098961175533220694259413481758656851520760983273945618534399052487640472554690430529080801545507395037908488951696729890072604457144322942471981048419084444300291941328383058969961829927016459528316310588353305026058648865359100889481094006666765198319831179123838416947788345078619877863295870622279107537624982565273504667969046970827872138186983722964787531153367711573835592075420384787150877329617929998944081893385084214099421415114729212721018225133247367511197111386446814626846609451319242140756204558133228956239992118393626272695831727400270229091820151031436410069439580742265917498918863126859263465515943618473500876300178113069150975667473222332188843534945453856445742446682167246095047937715228426664295689506252505257869634942105904542083919872600352315124988155608866613026595491665259068231473754919074618552715569212628776142394467895169648363765735236492369156754397156412390390634709077650811650414174274571620018340877461313759696688289160922838777594144298790521767418791400722594557222983555476712004317922333664145134195619744862784880698268353824656238408977317693042938663154893572030124859327386277266047644878588415499816624419009437453767389371663340887730872007660540833271800299753764513130131655114674256424599872258598606824264350664754200000621770336002070306578467136255229056109420886440546940252263345561322551388287484249330073431248480019558866403637903264050632393568148686115122560278567582087473797446746588083970643557351507222568951591327672580876604214633778973578352405206059019933729107514904243543445585206814264425784284984044346802177875408340498914881109255263304443497067214381312804527667502042969760140272270005611649865232882268072080119837588939843045072762767838982893908185077644575844017053181117441168210564144326243346456266928283962280086402521518609249092926950284619337954377954910521747991384021105499970192140283882253389747831519698497814769034409888653365647494685984217169453323276713736475417396913064719664400885006059074251222752552184626494236104909106623302211156771503498169604969916568505251715256607494471859655370940391434307587271784388031077171277921745119659528901980374027330215029945993687635619655679609247871847229319353331921801065975793590950853914441236824832526310851809255579911653283964504018744522678610491148846147658318810018117478721278342082236412778477713930502732165014917833027290646715090331642336268448657346816824291038318843587681568037899398464148363736835545212702123848297542042890378574809705277164692539655988554273255417675281295877024242977819140664785453691012252815300622844512557888749632579128856677779577008090816970263129706744577036241168974193490621316445972171391859525756175234306621089501026000592242011693517088495020736253958908090746917241515562111650502824897179814690844658436574259103327393343801046937029406799305032232106983896015946749031118386862183157285815323630027385165664853463104325387521803522796064588408148320139033924538563693906427916469625326724646471341661453204429583767615071426792443612264683133736631656843937929118664707020593761320221334218350697157118189417015195992627339196273995281834304892986613282205935847013155595112144849914713315042491887870020654067733303170765287231291400527815334743280792115522283889576067753326627438348874317276337735389824979362499346379643271876295434466839154711111693780217754528271512611916915256560952703011427646558855407356760329563345940046467749303592482902844216759984874479591708684627020577820513066664712073528452857777325218786091003003948911222784675204929881429427684016012219980379923562333588560717444004297611588811547830721075735552834147030533472259837933432661184559119286944519943997701580994390064135885997839732704731060544329713952726993533834956196419315360690185502233667391004535547799044108923937484333624337467575275784824870677149288411302488296572009579407850386381657774630201836082286554441896660820898602987714154939999861336469838480910325712372228874389645730528328692006708246558751778831275521258457093523092362658756995922701479333859069157777965321077706892142922961148639986722958650739027303993575873033852142399663718762085635433059666250250627166057061491654666329185557165117539969164480558502530914797209580097998166625675250132513541555235226697690618160543687619900818742072945284548251232799893603504600469600100079314931890606914186648555536584643473380067755873496512588184633553670644595626394985583332939558351747811665974456611052452310657544409958148255493353952513009874898590029503408612673285145238417958235977031908945542006265667142079433905080609243786832168754782974419807850921513891606711876598110051631759621684507396989249712623631049798849304572310821227689120027885239332207618956232273950830876623250510636469078830901756942242156382652800346031715615941502902038396503651467609011099138705117158539515933754498980529945458854475284851973698393434367346380693790433227005576773741512247118720046217496272087854879287950282359331194009139831303802554350660934705794138931855180687503614570162944018660412937077033416681247555320579733315171613755766012315789256480619818409843385352279538681609787323314918575637244490263016090771666641760308019983354243182270952591621630568703319588938095002159470627532987679358545753917014850807511586287217414851805726646060055473915212201821480925967958785411498558303894254678701373727957979792330819834389062604382781070360451796033339912035400924540348382549541142073106374642378313329908955313518464207648408012633240997388435006074295543339077954613825636255648796827071741243096351686953462633769182279844660436164589340989280833754332212791202632594670612586830836283114416679545994825373025797595805647583487511191973981686429555691662407098890810395029942715170180451713408632998478075399651046905199300115072754235552601484735759306599965623988165448258023878478130762852874307995224448704174317954306498212839798863977297234704529936190407311892150462622152847551040480522374372318114236055205361301151259220396106439073525963769806414887710508544859721139154822446515418681844463246793907575125642840194917295749576104874966002632694776606058165351817229126982743694407018751828528520442183357272465866266870559134410459449236444439458236725630605839898147697262381845524527009712015236140328680332155433625242463640030577153195497641237606165081001858219234617844647579635040666868530634392063240192800984354088818791593989045208205001327529676023087321005917827683517066718265679445429353602507286428375131814038367339826656287641834403128220647096873400803363163359404389464833261286615927113280048505939284545314159192545538265132021086565607507118361744076180765574552195690811273699043734093269576821959927798985817435825072231573680355865908808325866353085062380433066397010707643605283070759955259684651730260981109807377022283591239815951082366492841717776881671500343622203452041375489434592613133107983728487404419128015941891855575244463019114272973847219459732180658127584463478052837652081680255693828697055282499111513963174239209155480133223800820621579140928387502026448355489604369037049597729302228828769376622007043142796311019173532572502119560830007877429453426716263597992238971193768348361736337956683440817484243709478414845380988311969910423525494238898653225465573281086519967430166478510411651395946722499332205252743176584426027062132178148764737058689921275390484284987116685076868997405366924539956527481235950137762335185749295689694440811561680704798001157482442156609601746001489369253153369300061972918459550219998605356520011075428510792627804227844539772793517709883446059995271412445400007657282930336927779280916826004221171736792700340028210377139068345366253952239791071507446062132747437496981696271405214507466496356700230944656021890809048575104647477661276691316892870619962049758541161775147078160528335861933942916885375586121688787944468430435604640604970017477795688163834326052814396775149373347581486248480391388164512219720286423894057118682163318164949192442596290087856641253194598510632511614534286666783933692289006692710878864946509191092276369919406125350145653644686332726147586240745223032929239349106089873085247608347791866508865064052488356530254347479791276882789512004870423710038656402465908945028436607687568713577767526440665632507323721312914487949210463068425799094827770244245832630905904936986755860957183149475925032023247181602200529749426823336952146534010309308681130300191030723898784820367868442916397252250528889378896531464027235427646600376994378613244927391734726867313844398695366486237770883042305377207839335430143605004857186865500561923134598807515662628470452925665969454645694529675074980813971630193069714765895770127256152222999556410599901474384794662499091465667739273253981789765826079775794394887442328213247953539790948034624590639961583687648985493706696318941291065097923801940348878320925211673117505775672647502522995788139260512042922419468613049185941106833038629254210072551473958844418188253377086362650948782610331204286061996314274062806655343716974501119766520324755135732728652431421573280647234124730734793744116414917826686615969080440664098891937992401317883630846060747503554542388835472274558818790004667307002019337119528194664518541945198133803491497222039781604891218753874300547154602467279398443198298530275180284399273780707305116416807972885710846950060019320962475141887796769246476290872519822015901471658378043112913991991192002430877800737607839413876835332549632082796766350981650381151503675310666471077612305051450757865674765172401729118550867141672613144260904891500590991257719283405417839037289565942575435965817716656942981640691113194446948136762922613899035706385910305285944213072444711105791257950463400822425657245711042783355644184625642754348946245218316889044581387591251805584823507774935240525265558802760775375937854845462838637070744118340995642807568151559364976511577337709912867251678112499849954189674348941338612569909331900282140990058633007113622854733341212176531353596014029052850085990420266178100123375256192232575631958850579862346378716358236985707197190689262682371748006226500586966869840373306375729370310315103934924191014230414739800659710120928437819848495797484235545934849881348737111703579799609886609584405372427860800841966587481476230761364780411631846548001501207244684085944486420863565263690029475951257289602917086649152213331217461799554961766889999623708066408249456114784949025933342794844187597226540282878582928920300037073264399756409451034771596410674803037370752025295599867301885100716008911147235452323151227100588184613096476878072498690896433935814209743025897956187646604670815919935715858131315975180123558524143180982721494373013114783043884962532628550712660101149948583236292679729714349277802359333885035851051135691412119126947059147590166782803710941521882698829888104577684508904398697077028149419720768527163933662563079528453507146138139882671452241470849659560626876530866522749373007512765826382622889267127975350066957370683829473839145451988386415583618510186965246532012045142592760291356949347547799245472755749919683526574439996551940635364924506040465970061438702347105199893698475854846194792501560281117664302495374798475081297532434230909911681508422889917905844133984995652399530272393433523544133275083824966693244252240656086713328008986740753920449605022919840410160457185535293363392241743890720698821704091517310314862727825066839927601506985406257843714898622495964572637830697290849505835157987713798262250519459171005878157664457147527967529061203191511462801895402726735641100002813415210637385769956184093153683930696380847385067319409664067315417112244070471618772628337480336094310654331983645404168156723668517574398390007874814734398602121471506411315103505898610089779264816729601979993192392737097218313193618967848693450443222198957107050031912176663792438241619738760728985615843532817560621409479238393397468734862115652927786508749242992001681918441472277785146581791872973088689598944962266491129241623135994843881471561252863958629565351200705162093318782880690728550512501754567623234104800628357187857374639723257361022851705297794072744872975694720807816001359103534852208664788442743119370661063215643746707434927052996444514216007949900569882184293706064815117142385489908243991565415144262946558047765391768727862966724746607435065567853517565917858761628466232019460011342656302155074626052583674895686137457839466298576210774183984993530235954767181715379836162683961628616719879411080131390533253157262869544935035494403106755869264529847768565038160398005280464839247913114292489355968086412853130839980884100348976426492046902423352367429757608820396401781064403321111130187517866345780213027907004953243693993702746052427207678617415410680447316532609581535912616135403094332931594313013365992489208699933856969155974343213535392185642962784195099732573100324292366021650197337532287719201513428004683806669493727185892077292189594717139211960258775651503367777269388203497595413416130856120982028603667737153719257469042311942152758500874702236731839929421824735274206034397260824380385498887435006004190381691051571762464887690250887354526335632285844541122273967725745667741976827631375924430912420572935965649452913996589605966312433845481305330616104383667176370885313726624232530892103233462927156915276994999424164361611180026318109037656186014238937922985996404274559004764520326601504960304293271378968908457343133766822049385166383306616723053777987394575851052856480139356344875117494684004938288407278193971486430010836753363493712800117376812904815873827365157351504907059104753344695266948894445519533304909554486635536860014707816720568183727756433882311290349503684851587718873240264782379357164208720871045034917136609956173374067732798407408602512170898377158338337450719636634308256423543508184130825695614427101025498152202159983971871531034494262751046994208556386512745310815727186069944875956781466635991003867516822083796936924388279303287388374866270714516813677444319118137234038952971727748886889469320868860878804759539451581968078579782711006385350197804173853224822201307568590371603233016595023733896224856875463723661722755118346741735847572186396288939077302668073958048442080596684251756418605464971703501894973907633827493570182012491082349494847929756581761965721194010805284751195850763322959618016804850599378521591050656890177327519645689062180507485605639200344611418564486261444101850988066204023983076543688078336867397225441115413035748159769336555301069194146490106297884828827071496971384451884553654675520029038227693399424510185702709881793969994479369832077838245351414847815539704664695630881223000943014551700121966733916191233208221452697996736646053898318406504795575418793244396601022754294118981826949023318926714860814890491538985972831774114582452851124315573060133685171976714572120428925535758500374150614329204129545556019881455935659426033340566775470943662966742575944240993225664597243063135253700360565144868757644080199447796524533706824485089543735149766311879394739662369281440554129346066227948416629954860737132748556564042335213333125357155476516019749510780801964280601179741458898568824033330983326223993874983299657644281390603576684255725006892285417378815243799728621888834297532623542657232812280291711391034428366770003632717699920195487984295109508780333504408751139554224977483011236075393171325747875870419642122487923702597978605382461190279212008862807890800056500452036168946094420307227471218912723940116288190131660513809399907566627315549636120056041695320062613528082695198417565405158022890437946481023623252754753275706857959670067778101610890395523820576054819042505468176340452171815965008832790213808530936828027835134770676356884789911116897821638865463268281597314156258216632451284886885634300150713629563717738038372005045550433107561890409011302882736609849184392180679756632837938678679117275515769308957088252724532951253327212068380841280156783958434680797007447574439561626898158609635003246072873347638491832721398422839451566818040023146651969365019721724771852088202873682598244353554151845684497467858487231646639631249627730647238950717482141821088536981018442418387689055444320259112002669155853297879889681900883333895242130759774056413631367430376649069574478701222553038191908164113612114811044139530865820105052283041119828164941448720774443602606788596600113321768381884663384065800401040395321259518004927122503043125957841229347292217991729748650176927516834370434168081140105477738730643303674203955534831750822865617653987580783363299055515368940685657484996186577913589829048452038502049945942526114690918062005732175571744390984437868270293366850305576845934147790103461447359511065216793325488526137625634831600869428496794992274244779359581913347390928657774715579627811492979904808386933274077359941959126089912109467619448961478972475706490072636076098924306924610337355712225409141815766411921326643497918925478401378613161882539067193314389429167049002729729226393131540571631089675111757714947172389086788656757807329966167270985550745290431416318634792426340745701068899641873165646338856490289573094177998245073218228519464461023073164052510414331339965609203525046135800737268735413078496485811425443767442215106921776072052392992430195832679304193881891116310074530922336188900532302634087886823177967101268026578252221774148728372618556444300019116186601603965688235709643328080732684769748895184939164582886067689228056515791043697821125748656856054681856308136680100618861379664418835397186481246144115282626388729108098501299004748064551580164226826644737188203195776875947736945841043834258786572509339527098788153590055471851165389677078296638332767009843497988831045759137679973426204296377805682537427709936157916927555829060878775295935408290591958092943388506206007508506567958058470262905336616757910580134760723571844506274088980440282021069842151693843412809617734654691688809822711920671819487605314012543868641498690919290501386795455032007322788270450570488812428066109082042078868434967902758506023659302087237884332236359154426368209991590393496745049413228923825561228019432801580608537735453587849407449150311496602728101404996512308291234332776288978509435932715288260021786104931887470743949555764697600689774310361635339940086914351649373938252759433787524583014979836148887805107608057312780177879218137045980738466029161973239357048902363277799483760169979722522255699608140805247167390868195019839996283321457524813130407330901447021985243489806153855189674695797663506363200256034923645017052977582348067201919719693387933063713414689113606240612229616051984746576843696201133646691035589247733561303532120869815544589807777472827986768143850029631612927442673624639008401859261728435150674083068051214161902580697124761655746362705800232776096222193721072930644754905100420319506342247005356800606428276090338823575922223527229837836494398622053481335955214898312265762992512263708037391995699058658220946527433214555678460858779935012963657470230634802322526639271987239088880504788657945513248481818008208026269049331795621794034487558816625494020833508212753649643123726098798547974064661248374323637290466016967633630083504526405116832034501505326403106904960207951539523336504133577844519478836673821832600249097166199764999189637427350878967617678404836950278319500107839251523822936532697207159769986146717457379655276784548684940087270780478862570552429248401213286253371853518827964559029107362967872231659523085500433458299595065457426559817180038991779169160257919390034055187459262958575178364477264053930989574898681224027579581779747570260508854742296341491592112305442528678033590201574386237284834487202824717248170260490018916065165949775312048801087003211861746040875177881121837653840771188916774577715243705455242617607080686681792379627001125613003596551830252915460284655054341066550889026951146223659406090663585685282548430078037339051912272400732644524292762369025187322743026614641217016514646662204744681404517681336270084135900862033047171341955917508712817147162792219005888547469433050671990775019697369293115222750481709746443198914883209946772636648385496344829175676982500382948143816424676583949475448051973335463612905970530590256046022555128842084083363344460205384341630226016430138177554026884850316465428241741122420895640249274037340197359954559149490821605554866865665051428888896283559575341061439883955117537747874796305435922096699532207675941164401765630240794838007339135274348033199265686905740667091359378615608875226767404023899179130076896680197493245697767723491149058984484648132610668001378102522595655993476569721510444640229430532776067992052928575840352350717335612230876041883170939210726075638075289206619934692436503641314688842542670967871534589503384666678202806153959545532306271873114025365864746232463147866299339188508399028138608019343989850533893956153274261085449564395626527075540161662091277845687478104226040997047300983213567679948020997996346818407747437104735773294999431044291084125628969965590092673252923108172859922076000622344526166225626949414302187630712446208178259706681308794416648843488920585312865276434928079980364432999124829123492403654434568469904184888442671345146699394590593565030697539841355671475711597805301736077728503520818111394730898492223863372815753446154070855410216069897974715971727311660545217210154720205291394877540102398534982711858874694902410033746476078817720397759005732606478936012307640956998111161374554489740242934419256978678185891629247362570723870665133846103575875623989046052311537751797323805122681335708824239778659981420506974109345046336185388152865713885646897128402942390783413865750773272778199598897400659606736267796362557337554361926915941616132970040189408586838657813455682323566412520277926265872061090256793786814321816827807441003164474637747395534389002337275006688124554574451170171576103089109003220481466433763845243244677194703179638492579275636017334738131825455920550503928289522108723391036036684657860075162789597685385516478879696326846009790630246564609279157322371382386942549504522413692507011904564635577085915400140324754576446704313111086108651515015264379614488076928710182851044693761269310891166298579729063640879707672684339015364110994960918497948805732484513496881322261655348507275258696341253541090035865923617966614122851250963210297748958656845691229567180482744659214654911545604906349563486539037829221620467907574728340381942761140354557280081417259187765898992543247880972817655044029135976722818301136218347269816091398584805922473335836669095867966164400731574384887973894648391734744115159361344842213710964673424101667886424100400401411405548296619022553068599979568136068415382651236786420478585325701692851250956976850349074366470005520304972798181688285678328553333278364129410227687186200630393000644980575374596536071148433887616606816949790623604110769716740183361424257040692933555702132974355270857352678857254804717101041133168311693340536221974711516806878568659763811897236204144257198293956980926640133807118892053268707974965576992800159530798096923019622647083044885563247364244465700492996753074611461768032761202633613764095030892668566707934211570362988448559449645413526015331776951195043386543292894305380973560312696210678414212791887507077148059540739088752787217717659862396179310342443734077371547654725657505494047726299138684560970224729449498337107571156205609261135355347468400597873389591913578166178419464841638428575921658277176054088041627286065165355372190193485723059085392016039359115695798987273014660404182958280892539496134198922532895808897684982615591391689681055277213472005761894245044387930742059599630886438762700179418774673554357119752201762387732122422593889012195367895027139925385503497519016642515791415052944826432416297496655150939454372947998494515157566375586712016397484934453331101200573787472675247639355588467308090528893003224731255379280720018409848850185803783057185759287720929258497330096833701452509134416447024406793358946878165418479969203631201614823826669951609218425313381713712084580685403892656642273276383130036888733316570154445390731158698264435339127453800456360089688208701213362870013892539475775268502448269246035200675995606500523310317994808041384114613507679740069969442339312178265879046100446424127259383789024003151713257380185393702220531920512222509776612071070288384964177763380644077187911261863338742693233312809204972303559590020013391114843726804237738951271553014728956337854441563146146291457991944005438100905222774257792637090030451338105147207643355871982483142760098561591745101229650462006545657445778080504069276556378456361148568397787674637308314062543799100200832931636285976472306807388250477995554521446855268524294850073633924444743057357243406176258116775260051765527966296130319000547706304226913614158612509985766209556473513973280250735150052315059380190865055635396563870409525871442267313483857001365852220658516143709577282727066735395129880630341548499806597268034037777300835147396877276921590088707124376414071908027020403606982038472831042236488502806237211899861693916691588705880919747720950613187918406084347469141388938553169582627895323588886785326413714302646818762314880585257362325595141227354098702211003592156119816437177497764297800566050711827038516919515687814906495880691203258512328556159393530239896105073796605594724378742887992201593951105926643425635417939571523998876772196427121629033271244315572110900684350099560867573422666299623215928220191580751670811795220258915099497155204758357360646696701450581323682491984560542011525970085740308889797530395729043644354040094630299099278636231524777379210915738881907665161142042742165500335197837286181746845797555493266845978438333144125107821884357596687567593135972239840301437975423710988600307718434891261186354492983190267166550442201170009472110764566793739242538248415377602942976846134459679308357419742452897948269516055860155315237794114785073378708540865771848880845741049384583862037489079363051402301151844981484485958112197893991476956384869630214127576986005009002499287287961583632346755699908724482158595255104097975742162724627967615522151558758048874578817967106625871216008940816165214155652214786503263120711843667732600281124642602598821876268316573979993277226539733972883846753328585622377784521123844575722638799085432550219322978106245757986981969158830875557093568180929771526145253190510000907660058283544704246361157293125147907181795586406519539294406569435567355099025009925735751198725593454031886965109752582156571634020661300285120604148994946263382794348492315546424585193083566035016663781550627945248954327927869492280211742538275943827514187819507219678464730472077011460231618494423686329030078176625587273782135683346396816608068916643402985463506323541594436561830634623281333594711851109337803705002927101283796213450720734760447763296812054313815908392563932059907077304321830918039338456660960673743907079826275354438222618229775916156832186955938728355110264982943775657879089297887294883284609220817263011839977722496197964964373534653735552170724427064854462358978242851070340246831504656248408108006356628922363401346467462937537721885173428397359800339749263984816517855180976729047866625355399323099174456731260134345422486831513158622234687074511776195727437599231972417733638746575112995818026525044959214469793956617796560870418322380616254394401400886717258286473273127995564083337835541247026066588004554861901837004281197972409866989169978683067300465279842705802541826996459958697568162189338627085799001075115452242354420590248159669251404370243847010875172907883700105144636506402898021866205300384146225732541945081337497915015525106042382969423315786419840792886059250838762791167312403338533007219224806450217229809305838849487975128627587708446080094452943487295693071787856137270541183961994823297247130331929101575561447358078351967322442728999755764942433904012805781099018341806908549418431650812898612497715088111441239988227431860477415209616451212127526302623069296950634666841162574452453343184527432979098528308819427617360507350878456332894835537522721962081408966105450224353341969498895150811515582701927798920337198917647968096868512460724047358990436568050779011691212580565949116529279550775364254756870116177718183576812128885981559943838447547755325052640106631994306631843954731440704708323808641056288994294979942480390085409287040812561283679390961872256360778969807772510661504555351433478004680807556364242494411547303166544078127179905539869064958974703803365802471497736326118767947171351104012174152278837981464572460562029286328181149278581969406155613773928178812992067358309038897599770079244672612729910618354194205449042807640374440586832736647115766668567368717705245139285652790617679991846215533200356107688644983963850602171331435137483972554257120479482857469125057074553960842563662070663531179833542204961780899672269856582596161770549441167290370187846886585914764409038292218054960724877664822590317203479277714736008390924701210352634230144769410540471733691711200111702840312914968200229140576471850506259174007070075160269340695426985163496534244130023526137454063436771817780567281834797426021776555535163672460989254196950161326113391207851904744025775321173404736194670804140386007769488056537195080862857110220501299408642392799866493382622551814992560404103854503134254856310419470760263508814889536647745440633930048516559362097621809555170055878953459067683603858810989049299053567373594083024313297939316336265918892650365616660024501776137093274819506216092626499458910758234646415243315300496156594154970198919306051706849751995474502006196801434138297981126443867026718765510354542514872695832085678397019559942557488630506660416540634157454166009668748262894690018607181020868489593249225090463568859275614723629244607283369563840614130854349936601412304596319827731002407950331488464276547778758614897198952730660888305532276509099208545990431642373394875705125535306764341744626514474572709125537255576547906943800887254707276926274699543224671821520217591852045795796047202199121590495048437921584978884934225705721192882100230294388612728453803322738480545991949882625846653754017086357905764652584808182807013102768662488867767689261492951471209259249702185633550438963524469354983253295230260348453568899553350264388789438436377017212521447460428835406583908183278458049083361350716036385417875526556474132147529519409842506786359881279071788810119817427695947561653141577271025026017273994173728030312710413886275452064934018045869983033187551567582910474669964490041429000225005324524587977238849295572166258275725882941390952477950988079949065070473629795277063814740248100355606660055198656182568945591507142474387579915498738188408976473128640399723056247534312370112425687173763208005091779538163010540677173051597865312687505343888718101686237249102343062154369543759161480969474050523847083595834418179011685176241860009566024032672695503936728336823435789212226630477950264168269467052913808156454117299545296220065515115767862221407027115816517468830155349321103946959981238580473739697868567469451138917414221987669201908231324754462462313695697995543516686926085601387479736697482914370070973266580303709416486109993252734367178320942191986101434326886892090154545586174376904964268449754263434470088349143770673576008609512194114805187469142890490598084397398047626190717669492793078666682618713640870316372302709237481854692884532197634556551243405839164161130473795973096484326078231326467369315462882312344417688493860948974484417642062322670376391988823262212444049556833785034035920513488001281337062249761131289379827945072502477920983497394898572571411016564070820698318576822759906326950995680490183314485842592316177218608817606306640897182084815255857651385509781824351672822784991072040028675790790446633512718202979525150617725334066894988956424703269230153998209003901662752243381844248085893952936525825363565858417548553674481865028924518820644785328079129675504865572929083083485483937583334671019089120671145369551731409294618234664787252895299742040212763523592329330577017942386522596324069402748060412880303092452481034941582735932443887273109397416348896046958192453951513410434339983818746509723369263522579147245424440132631296439639120960780016344851199125420819737407446045899742145731042313644564865019378010635266037440565688238613893754439735168129683156791161888422225114147732261233139618606080373110348692660933940438416300326143449280508211315757377277398215515222865099976624325872139339344590209166227290549349382717820512666902114947192311380933822311224099588372246332501222323378968952690253662639412670103173278649871702571496177610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897